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

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

-- |
-- Module      : Amazonka.SageMaker.Types.TrialComponent
-- 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)
module Amazonka.SageMaker.Types.TrialComponent where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import Amazonka.SageMaker.Types.MetadataProperties
import Amazonka.SageMaker.Types.Parent
import Amazonka.SageMaker.Types.Tag
import Amazonka.SageMaker.Types.TrialComponentArtifact
import Amazonka.SageMaker.Types.TrialComponentMetricSummary
import Amazonka.SageMaker.Types.TrialComponentParameterValue
import Amazonka.SageMaker.Types.TrialComponentSource
import Amazonka.SageMaker.Types.TrialComponentSourceDetail
import Amazonka.SageMaker.Types.TrialComponentStatus
import Amazonka.SageMaker.Types.UserContext

-- | The properties of a trial component as returned by the Search API.
--
-- /See:/ 'newTrialComponent' smart constructor.
data TrialComponent = TrialComponent'
  { -- | When the component was created.
    TrialComponent -> Maybe POSIX
creationTime :: Prelude.Maybe Core.POSIX,
    TrialComponent -> Maybe MetadataProperties
metadataProperties :: Prelude.Maybe MetadataProperties,
    TrialComponent -> Maybe TrialComponentStatus
status :: Prelude.Maybe TrialComponentStatus,
    -- | Details of the source of the component.
    TrialComponent -> Maybe TrialComponentSourceDetail
sourceDetail :: Prelude.Maybe TrialComponentSourceDetail,
    -- | The metrics for the component.
    TrialComponent -> Maybe [TrialComponentMetricSummary]
metrics :: Prelude.Maybe [TrialComponentMetricSummary],
    -- | The output artifacts of the component.
    TrialComponent -> Maybe (HashMap Text TrialComponentArtifact)
outputArtifacts :: Prelude.Maybe (Prelude.HashMap Prelude.Text TrialComponentArtifact),
    -- | When the component started.
    TrialComponent -> Maybe POSIX
startTime :: Prelude.Maybe Core.POSIX,
    -- | Who created the trial component.
    TrialComponent -> Maybe UserContext
createdBy :: Prelude.Maybe UserContext,
    -- | When the component was last modified.
    TrialComponent -> Maybe POSIX
lastModifiedTime :: Prelude.Maybe Core.POSIX,
    -- | An array of the parents of the component. A parent is a trial the
    -- component is associated with and the experiment the trial is part of. A
    -- component might not have any parents.
    TrialComponent -> Maybe [Parent]
parents :: Prelude.Maybe [Parent],
    -- | When the component ended.
    TrialComponent -> Maybe POSIX
endTime :: Prelude.Maybe Core.POSIX,
    -- | The name of the trial component.
    TrialComponent -> Maybe Text
trialComponentName :: Prelude.Maybe Prelude.Text,
    -- | The hyperparameters of the component.
    TrialComponent -> Maybe (HashMap Text TrialComponentParameterValue)
parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text TrialComponentParameterValue),
    -- | The Amazon Resource Name (ARN) and job type of the source of the
    -- component.
    TrialComponent -> Maybe TrialComponentSource
source :: Prelude.Maybe TrialComponentSource,
    -- | The name of the component as displayed. If @DisplayName@ isn\'t
    -- specified, @TrialComponentName@ is displayed.
    TrialComponent -> Maybe Text
displayName :: Prelude.Maybe Prelude.Text,
    TrialComponent -> Maybe UserContext
lastModifiedBy :: Prelude.Maybe UserContext,
    -- | The Amazon Resource Name (ARN) of the trial component.
    TrialComponent -> Maybe Text
trialComponentArn :: Prelude.Maybe Prelude.Text,
    -- | The input artifacts of the component.
    TrialComponent -> Maybe (HashMap Text TrialComponentArtifact)
inputArtifacts :: Prelude.Maybe (Prelude.HashMap Prelude.Text TrialComponentArtifact),
    -- | The list of tags that are associated with the component. You can use
    -- Search API to search on the tags.
    TrialComponent -> Maybe [Tag]
tags :: Prelude.Maybe [Tag]
  }
  deriving (TrialComponent -> TrialComponent -> Bool
(TrialComponent -> TrialComponent -> Bool)
-> (TrialComponent -> TrialComponent -> Bool) -> Eq TrialComponent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TrialComponent -> TrialComponent -> Bool
$c/= :: TrialComponent -> TrialComponent -> Bool
== :: TrialComponent -> TrialComponent -> Bool
$c== :: TrialComponent -> TrialComponent -> Bool
Prelude.Eq, ReadPrec [TrialComponent]
ReadPrec TrialComponent
Int -> ReadS TrialComponent
ReadS [TrialComponent]
(Int -> ReadS TrialComponent)
-> ReadS [TrialComponent]
-> ReadPrec TrialComponent
-> ReadPrec [TrialComponent]
-> Read TrialComponent
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [TrialComponent]
$creadListPrec :: ReadPrec [TrialComponent]
readPrec :: ReadPrec TrialComponent
$creadPrec :: ReadPrec TrialComponent
readList :: ReadS [TrialComponent]
$creadList :: ReadS [TrialComponent]
readsPrec :: Int -> ReadS TrialComponent
$creadsPrec :: Int -> ReadS TrialComponent
Prelude.Read, Int -> TrialComponent -> ShowS
[TrialComponent] -> ShowS
TrialComponent -> String
(Int -> TrialComponent -> ShowS)
-> (TrialComponent -> String)
-> ([TrialComponent] -> ShowS)
-> Show TrialComponent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TrialComponent] -> ShowS
$cshowList :: [TrialComponent] -> ShowS
show :: TrialComponent -> String
$cshow :: TrialComponent -> String
showsPrec :: Int -> TrialComponent -> ShowS
$cshowsPrec :: Int -> TrialComponent -> ShowS
Prelude.Show, (forall x. TrialComponent -> Rep TrialComponent x)
-> (forall x. Rep TrialComponent x -> TrialComponent)
-> Generic TrialComponent
forall x. Rep TrialComponent x -> TrialComponent
forall x. TrialComponent -> Rep TrialComponent x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep TrialComponent x -> TrialComponent
$cfrom :: forall x. TrialComponent -> Rep TrialComponent x
Prelude.Generic)

-- |
-- Create a value of 'TrialComponent' 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:
--
-- 'creationTime', 'trialComponent_creationTime' - When the component was created.
--
-- 'metadataProperties', 'trialComponent_metadataProperties' - Undocumented member.
--
-- 'status', 'trialComponent_status' - Undocumented member.
--
-- 'sourceDetail', 'trialComponent_sourceDetail' - Details of the source of the component.
--
-- 'metrics', 'trialComponent_metrics' - The metrics for the component.
--
-- 'outputArtifacts', 'trialComponent_outputArtifacts' - The output artifacts of the component.
--
-- 'startTime', 'trialComponent_startTime' - When the component started.
--
-- 'createdBy', 'trialComponent_createdBy' - Who created the trial component.
--
-- 'lastModifiedTime', 'trialComponent_lastModifiedTime' - When the component was last modified.
--
-- 'parents', 'trialComponent_parents' - An array of the parents of the component. A parent is a trial the
-- component is associated with and the experiment the trial is part of. A
-- component might not have any parents.
--
-- 'endTime', 'trialComponent_endTime' - When the component ended.
--
-- 'trialComponentName', 'trialComponent_trialComponentName' - The name of the trial component.
--
-- 'parameters', 'trialComponent_parameters' - The hyperparameters of the component.
--
-- 'source', 'trialComponent_source' - The Amazon Resource Name (ARN) and job type of the source of the
-- component.
--
-- 'displayName', 'trialComponent_displayName' - The name of the component as displayed. If @DisplayName@ isn\'t
-- specified, @TrialComponentName@ is displayed.
--
-- 'lastModifiedBy', 'trialComponent_lastModifiedBy' - Undocumented member.
--
-- 'trialComponentArn', 'trialComponent_trialComponentArn' - The Amazon Resource Name (ARN) of the trial component.
--
-- 'inputArtifacts', 'trialComponent_inputArtifacts' - The input artifacts of the component.
--
-- 'tags', 'trialComponent_tags' - The list of tags that are associated with the component. You can use
-- Search API to search on the tags.
newTrialComponent ::
  TrialComponent
newTrialComponent :: TrialComponent
newTrialComponent =
  TrialComponent' :: Maybe POSIX
-> Maybe MetadataProperties
-> Maybe TrialComponentStatus
-> Maybe TrialComponentSourceDetail
-> Maybe [TrialComponentMetricSummary]
-> Maybe (HashMap Text TrialComponentArtifact)
-> Maybe POSIX
-> Maybe UserContext
-> Maybe POSIX
-> Maybe [Parent]
-> Maybe POSIX
-> Maybe Text
-> Maybe (HashMap Text TrialComponentParameterValue)
-> Maybe TrialComponentSource
-> Maybe Text
-> Maybe UserContext
-> Maybe Text
-> Maybe (HashMap Text TrialComponentArtifact)
-> Maybe [Tag]
-> TrialComponent
TrialComponent'
    { $sel:creationTime:TrialComponent' :: Maybe POSIX
creationTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:metadataProperties:TrialComponent' :: Maybe MetadataProperties
metadataProperties = Maybe MetadataProperties
forall a. Maybe a
Prelude.Nothing,
      $sel:status:TrialComponent' :: Maybe TrialComponentStatus
status = Maybe TrialComponentStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:sourceDetail:TrialComponent' :: Maybe TrialComponentSourceDetail
sourceDetail = Maybe TrialComponentSourceDetail
forall a. Maybe a
Prelude.Nothing,
      $sel:metrics:TrialComponent' :: Maybe [TrialComponentMetricSummary]
metrics = Maybe [TrialComponentMetricSummary]
forall a. Maybe a
Prelude.Nothing,
      $sel:outputArtifacts:TrialComponent' :: Maybe (HashMap Text TrialComponentArtifact)
outputArtifacts = Maybe (HashMap Text TrialComponentArtifact)
forall a. Maybe a
Prelude.Nothing,
      $sel:startTime:TrialComponent' :: Maybe POSIX
startTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:createdBy:TrialComponent' :: Maybe UserContext
createdBy = Maybe UserContext
forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedTime:TrialComponent' :: Maybe POSIX
lastModifiedTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:parents:TrialComponent' :: Maybe [Parent]
parents = Maybe [Parent]
forall a. Maybe a
Prelude.Nothing,
      $sel:endTime:TrialComponent' :: Maybe POSIX
endTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:trialComponentName:TrialComponent' :: Maybe Text
trialComponentName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:parameters:TrialComponent' :: Maybe (HashMap Text TrialComponentParameterValue)
parameters = Maybe (HashMap Text TrialComponentParameterValue)
forall a. Maybe a
Prelude.Nothing,
      $sel:source:TrialComponent' :: Maybe TrialComponentSource
source = Maybe TrialComponentSource
forall a. Maybe a
Prelude.Nothing,
      $sel:displayName:TrialComponent' :: Maybe Text
displayName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedBy:TrialComponent' :: Maybe UserContext
lastModifiedBy = Maybe UserContext
forall a. Maybe a
Prelude.Nothing,
      $sel:trialComponentArn:TrialComponent' :: Maybe Text
trialComponentArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:inputArtifacts:TrialComponent' :: Maybe (HashMap Text TrialComponentArtifact)
inputArtifacts = Maybe (HashMap Text TrialComponentArtifact)
forall a. Maybe a
Prelude.Nothing,
      $sel:tags:TrialComponent' :: Maybe [Tag]
tags = Maybe [Tag]
forall a. Maybe a
Prelude.Nothing
    }

-- | When the component was created.
trialComponent_creationTime :: Lens.Lens' TrialComponent (Prelude.Maybe Prelude.UTCTime)
trialComponent_creationTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> TrialComponent -> f TrialComponent
trialComponent_creationTime = (TrialComponent -> Maybe POSIX)
-> (TrialComponent -> Maybe POSIX -> TrialComponent)
-> Lens TrialComponent TrialComponent (Maybe POSIX) (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TrialComponent' {Maybe POSIX
creationTime :: Maybe POSIX
$sel:creationTime:TrialComponent' :: TrialComponent -> Maybe POSIX
creationTime} -> Maybe POSIX
creationTime) (\s :: TrialComponent
s@TrialComponent' {} Maybe POSIX
a -> TrialComponent
s {$sel:creationTime:TrialComponent' :: Maybe POSIX
creationTime = Maybe POSIX
a} :: TrialComponent) ((Maybe POSIX -> f (Maybe POSIX))
 -> TrialComponent -> f TrialComponent)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> TrialComponent
-> f TrialComponent
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

-- | Undocumented member.
trialComponent_metadataProperties :: Lens.Lens' TrialComponent (Prelude.Maybe MetadataProperties)
trialComponent_metadataProperties :: (Maybe MetadataProperties -> f (Maybe MetadataProperties))
-> TrialComponent -> f TrialComponent
trialComponent_metadataProperties = (TrialComponent -> Maybe MetadataProperties)
-> (TrialComponent -> Maybe MetadataProperties -> TrialComponent)
-> Lens
     TrialComponent
     TrialComponent
     (Maybe MetadataProperties)
     (Maybe MetadataProperties)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TrialComponent' {Maybe MetadataProperties
metadataProperties :: Maybe MetadataProperties
$sel:metadataProperties:TrialComponent' :: TrialComponent -> Maybe MetadataProperties
metadataProperties} -> Maybe MetadataProperties
metadataProperties) (\s :: TrialComponent
s@TrialComponent' {} Maybe MetadataProperties
a -> TrialComponent
s {$sel:metadataProperties:TrialComponent' :: Maybe MetadataProperties
metadataProperties = Maybe MetadataProperties
a} :: TrialComponent)

-- | Undocumented member.
trialComponent_status :: Lens.Lens' TrialComponent (Prelude.Maybe TrialComponentStatus)
trialComponent_status :: (Maybe TrialComponentStatus -> f (Maybe TrialComponentStatus))
-> TrialComponent -> f TrialComponent
trialComponent_status = (TrialComponent -> Maybe TrialComponentStatus)
-> (TrialComponent -> Maybe TrialComponentStatus -> TrialComponent)
-> Lens
     TrialComponent
     TrialComponent
     (Maybe TrialComponentStatus)
     (Maybe TrialComponentStatus)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TrialComponent' {Maybe TrialComponentStatus
status :: Maybe TrialComponentStatus
$sel:status:TrialComponent' :: TrialComponent -> Maybe TrialComponentStatus
status} -> Maybe TrialComponentStatus
status) (\s :: TrialComponent
s@TrialComponent' {} Maybe TrialComponentStatus
a -> TrialComponent
s {$sel:status:TrialComponent' :: Maybe TrialComponentStatus
status = Maybe TrialComponentStatus
a} :: TrialComponent)

-- | Details of the source of the component.
trialComponent_sourceDetail :: Lens.Lens' TrialComponent (Prelude.Maybe TrialComponentSourceDetail)
trialComponent_sourceDetail :: (Maybe TrialComponentSourceDetail
 -> f (Maybe TrialComponentSourceDetail))
-> TrialComponent -> f TrialComponent
trialComponent_sourceDetail = (TrialComponent -> Maybe TrialComponentSourceDetail)
-> (TrialComponent
    -> Maybe TrialComponentSourceDetail -> TrialComponent)
-> Lens
     TrialComponent
     TrialComponent
     (Maybe TrialComponentSourceDetail)
     (Maybe TrialComponentSourceDetail)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TrialComponent' {Maybe TrialComponentSourceDetail
sourceDetail :: Maybe TrialComponentSourceDetail
$sel:sourceDetail:TrialComponent' :: TrialComponent -> Maybe TrialComponentSourceDetail
sourceDetail} -> Maybe TrialComponentSourceDetail
sourceDetail) (\s :: TrialComponent
s@TrialComponent' {} Maybe TrialComponentSourceDetail
a -> TrialComponent
s {$sel:sourceDetail:TrialComponent' :: Maybe TrialComponentSourceDetail
sourceDetail = Maybe TrialComponentSourceDetail
a} :: TrialComponent)

-- | The metrics for the component.
trialComponent_metrics :: Lens.Lens' TrialComponent (Prelude.Maybe [TrialComponentMetricSummary])
trialComponent_metrics :: (Maybe [TrialComponentMetricSummary]
 -> f (Maybe [TrialComponentMetricSummary]))
-> TrialComponent -> f TrialComponent
trialComponent_metrics = (TrialComponent -> Maybe [TrialComponentMetricSummary])
-> (TrialComponent
    -> Maybe [TrialComponentMetricSummary] -> TrialComponent)
-> Lens
     TrialComponent
     TrialComponent
     (Maybe [TrialComponentMetricSummary])
     (Maybe [TrialComponentMetricSummary])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TrialComponent' {Maybe [TrialComponentMetricSummary]
metrics :: Maybe [TrialComponentMetricSummary]
$sel:metrics:TrialComponent' :: TrialComponent -> Maybe [TrialComponentMetricSummary]
metrics} -> Maybe [TrialComponentMetricSummary]
metrics) (\s :: TrialComponent
s@TrialComponent' {} Maybe [TrialComponentMetricSummary]
a -> TrialComponent
s {$sel:metrics:TrialComponent' :: Maybe [TrialComponentMetricSummary]
metrics = Maybe [TrialComponentMetricSummary]
a} :: TrialComponent) ((Maybe [TrialComponentMetricSummary]
  -> f (Maybe [TrialComponentMetricSummary]))
 -> TrialComponent -> f TrialComponent)
-> ((Maybe [TrialComponentMetricSummary]
     -> f (Maybe [TrialComponentMetricSummary]))
    -> Maybe [TrialComponentMetricSummary]
    -> f (Maybe [TrialComponentMetricSummary]))
-> (Maybe [TrialComponentMetricSummary]
    -> f (Maybe [TrialComponentMetricSummary]))
-> TrialComponent
-> f TrialComponent
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [TrialComponentMetricSummary]
  [TrialComponentMetricSummary]
  [TrialComponentMetricSummary]
  [TrialComponentMetricSummary]
-> Iso
     (Maybe [TrialComponentMetricSummary])
     (Maybe [TrialComponentMetricSummary])
     (Maybe [TrialComponentMetricSummary])
     (Maybe [TrialComponentMetricSummary])
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
  [TrialComponentMetricSummary]
  [TrialComponentMetricSummary]
  [TrialComponentMetricSummary]
  [TrialComponentMetricSummary]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The output artifacts of the component.
trialComponent_outputArtifacts :: Lens.Lens' TrialComponent (Prelude.Maybe (Prelude.HashMap Prelude.Text TrialComponentArtifact))
trialComponent_outputArtifacts :: (Maybe (HashMap Text TrialComponentArtifact)
 -> f (Maybe (HashMap Text TrialComponentArtifact)))
-> TrialComponent -> f TrialComponent
trialComponent_outputArtifacts = (TrialComponent -> Maybe (HashMap Text TrialComponentArtifact))
-> (TrialComponent
    -> Maybe (HashMap Text TrialComponentArtifact) -> TrialComponent)
-> Lens
     TrialComponent
     TrialComponent
     (Maybe (HashMap Text TrialComponentArtifact))
     (Maybe (HashMap Text TrialComponentArtifact))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TrialComponent' {Maybe (HashMap Text TrialComponentArtifact)
outputArtifacts :: Maybe (HashMap Text TrialComponentArtifact)
$sel:outputArtifacts:TrialComponent' :: TrialComponent -> Maybe (HashMap Text TrialComponentArtifact)
outputArtifacts} -> Maybe (HashMap Text TrialComponentArtifact)
outputArtifacts) (\s :: TrialComponent
s@TrialComponent' {} Maybe (HashMap Text TrialComponentArtifact)
a -> TrialComponent
s {$sel:outputArtifacts:TrialComponent' :: Maybe (HashMap Text TrialComponentArtifact)
outputArtifacts = Maybe (HashMap Text TrialComponentArtifact)
a} :: TrialComponent) ((Maybe (HashMap Text TrialComponentArtifact)
  -> f (Maybe (HashMap Text TrialComponentArtifact)))
 -> TrialComponent -> f TrialComponent)
-> ((Maybe (HashMap Text TrialComponentArtifact)
     -> f (Maybe (HashMap Text TrialComponentArtifact)))
    -> Maybe (HashMap Text TrialComponentArtifact)
    -> f (Maybe (HashMap Text TrialComponentArtifact)))
-> (Maybe (HashMap Text TrialComponentArtifact)
    -> f (Maybe (HashMap Text TrialComponentArtifact)))
-> TrialComponent
-> f TrialComponent
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (HashMap Text TrialComponentArtifact)
  (HashMap Text TrialComponentArtifact)
  (HashMap Text TrialComponentArtifact)
  (HashMap Text TrialComponentArtifact)
-> Iso
     (Maybe (HashMap Text TrialComponentArtifact))
     (Maybe (HashMap Text TrialComponentArtifact))
     (Maybe (HashMap Text TrialComponentArtifact))
     (Maybe (HashMap Text TrialComponentArtifact))
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 TrialComponentArtifact)
  (HashMap Text TrialComponentArtifact)
  (HashMap Text TrialComponentArtifact)
  (HashMap Text TrialComponentArtifact)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | When the component started.
trialComponent_startTime :: Lens.Lens' TrialComponent (Prelude.Maybe Prelude.UTCTime)
trialComponent_startTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> TrialComponent -> f TrialComponent
trialComponent_startTime = (TrialComponent -> Maybe POSIX)
-> (TrialComponent -> Maybe POSIX -> TrialComponent)
-> Lens TrialComponent TrialComponent (Maybe POSIX) (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TrialComponent' {Maybe POSIX
startTime :: Maybe POSIX
$sel:startTime:TrialComponent' :: TrialComponent -> Maybe POSIX
startTime} -> Maybe POSIX
startTime) (\s :: TrialComponent
s@TrialComponent' {} Maybe POSIX
a -> TrialComponent
s {$sel:startTime:TrialComponent' :: Maybe POSIX
startTime = Maybe POSIX
a} :: TrialComponent) ((Maybe POSIX -> f (Maybe POSIX))
 -> TrialComponent -> f TrialComponent)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> TrialComponent
-> f TrialComponent
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

-- | Who created the trial component.
trialComponent_createdBy :: Lens.Lens' TrialComponent (Prelude.Maybe UserContext)
trialComponent_createdBy :: (Maybe UserContext -> f (Maybe UserContext))
-> TrialComponent -> f TrialComponent
trialComponent_createdBy = (TrialComponent -> Maybe UserContext)
-> (TrialComponent -> Maybe UserContext -> TrialComponent)
-> Lens
     TrialComponent
     TrialComponent
     (Maybe UserContext)
     (Maybe UserContext)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TrialComponent' {Maybe UserContext
createdBy :: Maybe UserContext
$sel:createdBy:TrialComponent' :: TrialComponent -> Maybe UserContext
createdBy} -> Maybe UserContext
createdBy) (\s :: TrialComponent
s@TrialComponent' {} Maybe UserContext
a -> TrialComponent
s {$sel:createdBy:TrialComponent' :: Maybe UserContext
createdBy = Maybe UserContext
a} :: TrialComponent)

-- | When the component was last modified.
trialComponent_lastModifiedTime :: Lens.Lens' TrialComponent (Prelude.Maybe Prelude.UTCTime)
trialComponent_lastModifiedTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> TrialComponent -> f TrialComponent
trialComponent_lastModifiedTime = (TrialComponent -> Maybe POSIX)
-> (TrialComponent -> Maybe POSIX -> TrialComponent)
-> Lens TrialComponent TrialComponent (Maybe POSIX) (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TrialComponent' {Maybe POSIX
lastModifiedTime :: Maybe POSIX
$sel:lastModifiedTime:TrialComponent' :: TrialComponent -> Maybe POSIX
lastModifiedTime} -> Maybe POSIX
lastModifiedTime) (\s :: TrialComponent
s@TrialComponent' {} Maybe POSIX
a -> TrialComponent
s {$sel:lastModifiedTime:TrialComponent' :: Maybe POSIX
lastModifiedTime = Maybe POSIX
a} :: TrialComponent) ((Maybe POSIX -> f (Maybe POSIX))
 -> TrialComponent -> f TrialComponent)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> TrialComponent
-> f TrialComponent
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

-- | An array of the parents of the component. A parent is a trial the
-- component is associated with and the experiment the trial is part of. A
-- component might not have any parents.
trialComponent_parents :: Lens.Lens' TrialComponent (Prelude.Maybe [Parent])
trialComponent_parents :: (Maybe [Parent] -> f (Maybe [Parent]))
-> TrialComponent -> f TrialComponent
trialComponent_parents = (TrialComponent -> Maybe [Parent])
-> (TrialComponent -> Maybe [Parent] -> TrialComponent)
-> Lens
     TrialComponent TrialComponent (Maybe [Parent]) (Maybe [Parent])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TrialComponent' {Maybe [Parent]
parents :: Maybe [Parent]
$sel:parents:TrialComponent' :: TrialComponent -> Maybe [Parent]
parents} -> Maybe [Parent]
parents) (\s :: TrialComponent
s@TrialComponent' {} Maybe [Parent]
a -> TrialComponent
s {$sel:parents:TrialComponent' :: Maybe [Parent]
parents = Maybe [Parent]
a} :: TrialComponent) ((Maybe [Parent] -> f (Maybe [Parent]))
 -> TrialComponent -> f TrialComponent)
-> ((Maybe [Parent] -> f (Maybe [Parent]))
    -> Maybe [Parent] -> f (Maybe [Parent]))
-> (Maybe [Parent] -> f (Maybe [Parent]))
-> TrialComponent
-> f TrialComponent
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Parent] [Parent] [Parent] [Parent]
-> Iso
     (Maybe [Parent]) (Maybe [Parent]) (Maybe [Parent]) (Maybe [Parent])
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 [Parent] [Parent] [Parent] [Parent]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | When the component ended.
trialComponent_endTime :: Lens.Lens' TrialComponent (Prelude.Maybe Prelude.UTCTime)
trialComponent_endTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> TrialComponent -> f TrialComponent
trialComponent_endTime = (TrialComponent -> Maybe POSIX)
-> (TrialComponent -> Maybe POSIX -> TrialComponent)
-> Lens TrialComponent TrialComponent (Maybe POSIX) (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TrialComponent' {Maybe POSIX
endTime :: Maybe POSIX
$sel:endTime:TrialComponent' :: TrialComponent -> Maybe POSIX
endTime} -> Maybe POSIX
endTime) (\s :: TrialComponent
s@TrialComponent' {} Maybe POSIX
a -> TrialComponent
s {$sel:endTime:TrialComponent' :: Maybe POSIX
endTime = Maybe POSIX
a} :: TrialComponent) ((Maybe POSIX -> f (Maybe POSIX))
 -> TrialComponent -> f TrialComponent)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> TrialComponent
-> f TrialComponent
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 name of the trial component.
trialComponent_trialComponentName :: Lens.Lens' TrialComponent (Prelude.Maybe Prelude.Text)
trialComponent_trialComponentName :: (Maybe Text -> f (Maybe Text))
-> TrialComponent -> f TrialComponent
trialComponent_trialComponentName = (TrialComponent -> Maybe Text)
-> (TrialComponent -> Maybe Text -> TrialComponent)
-> Lens TrialComponent TrialComponent (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TrialComponent' {Maybe Text
trialComponentName :: Maybe Text
$sel:trialComponentName:TrialComponent' :: TrialComponent -> Maybe Text
trialComponentName} -> Maybe Text
trialComponentName) (\s :: TrialComponent
s@TrialComponent' {} Maybe Text
a -> TrialComponent
s {$sel:trialComponentName:TrialComponent' :: Maybe Text
trialComponentName = Maybe Text
a} :: TrialComponent)

-- | The hyperparameters of the component.
trialComponent_parameters :: Lens.Lens' TrialComponent (Prelude.Maybe (Prelude.HashMap Prelude.Text TrialComponentParameterValue))
trialComponent_parameters :: (Maybe (HashMap Text TrialComponentParameterValue)
 -> f (Maybe (HashMap Text TrialComponentParameterValue)))
-> TrialComponent -> f TrialComponent
trialComponent_parameters = (TrialComponent
 -> Maybe (HashMap Text TrialComponentParameterValue))
-> (TrialComponent
    -> Maybe (HashMap Text TrialComponentParameterValue)
    -> TrialComponent)
-> Lens
     TrialComponent
     TrialComponent
     (Maybe (HashMap Text TrialComponentParameterValue))
     (Maybe (HashMap Text TrialComponentParameterValue))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TrialComponent' {Maybe (HashMap Text TrialComponentParameterValue)
parameters :: Maybe (HashMap Text TrialComponentParameterValue)
$sel:parameters:TrialComponent' :: TrialComponent -> Maybe (HashMap Text TrialComponentParameterValue)
parameters} -> Maybe (HashMap Text TrialComponentParameterValue)
parameters) (\s :: TrialComponent
s@TrialComponent' {} Maybe (HashMap Text TrialComponentParameterValue)
a -> TrialComponent
s {$sel:parameters:TrialComponent' :: Maybe (HashMap Text TrialComponentParameterValue)
parameters = Maybe (HashMap Text TrialComponentParameterValue)
a} :: TrialComponent) ((Maybe (HashMap Text TrialComponentParameterValue)
  -> f (Maybe (HashMap Text TrialComponentParameterValue)))
 -> TrialComponent -> f TrialComponent)
-> ((Maybe (HashMap Text TrialComponentParameterValue)
     -> f (Maybe (HashMap Text TrialComponentParameterValue)))
    -> Maybe (HashMap Text TrialComponentParameterValue)
    -> f (Maybe (HashMap Text TrialComponentParameterValue)))
-> (Maybe (HashMap Text TrialComponentParameterValue)
    -> f (Maybe (HashMap Text TrialComponentParameterValue)))
-> TrialComponent
-> f TrialComponent
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (HashMap Text TrialComponentParameterValue)
  (HashMap Text TrialComponentParameterValue)
  (HashMap Text TrialComponentParameterValue)
  (HashMap Text TrialComponentParameterValue)
-> Iso
     (Maybe (HashMap Text TrialComponentParameterValue))
     (Maybe (HashMap Text TrialComponentParameterValue))
     (Maybe (HashMap Text TrialComponentParameterValue))
     (Maybe (HashMap Text TrialComponentParameterValue))
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 TrialComponentParameterValue)
  (HashMap Text TrialComponentParameterValue)
  (HashMap Text TrialComponentParameterValue)
  (HashMap Text TrialComponentParameterValue)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The Amazon Resource Name (ARN) and job type of the source of the
-- component.
trialComponent_source :: Lens.Lens' TrialComponent (Prelude.Maybe TrialComponentSource)
trialComponent_source :: (Maybe TrialComponentSource -> f (Maybe TrialComponentSource))
-> TrialComponent -> f TrialComponent
trialComponent_source = (TrialComponent -> Maybe TrialComponentSource)
-> (TrialComponent -> Maybe TrialComponentSource -> TrialComponent)
-> Lens
     TrialComponent
     TrialComponent
     (Maybe TrialComponentSource)
     (Maybe TrialComponentSource)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TrialComponent' {Maybe TrialComponentSource
source :: Maybe TrialComponentSource
$sel:source:TrialComponent' :: TrialComponent -> Maybe TrialComponentSource
source} -> Maybe TrialComponentSource
source) (\s :: TrialComponent
s@TrialComponent' {} Maybe TrialComponentSource
a -> TrialComponent
s {$sel:source:TrialComponent' :: Maybe TrialComponentSource
source = Maybe TrialComponentSource
a} :: TrialComponent)

-- | The name of the component as displayed. If @DisplayName@ isn\'t
-- specified, @TrialComponentName@ is displayed.
trialComponent_displayName :: Lens.Lens' TrialComponent (Prelude.Maybe Prelude.Text)
trialComponent_displayName :: (Maybe Text -> f (Maybe Text))
-> TrialComponent -> f TrialComponent
trialComponent_displayName = (TrialComponent -> Maybe Text)
-> (TrialComponent -> Maybe Text -> TrialComponent)
-> Lens TrialComponent TrialComponent (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TrialComponent' {Maybe Text
displayName :: Maybe Text
$sel:displayName:TrialComponent' :: TrialComponent -> Maybe Text
displayName} -> Maybe Text
displayName) (\s :: TrialComponent
s@TrialComponent' {} Maybe Text
a -> TrialComponent
s {$sel:displayName:TrialComponent' :: Maybe Text
displayName = Maybe Text
a} :: TrialComponent)

-- | Undocumented member.
trialComponent_lastModifiedBy :: Lens.Lens' TrialComponent (Prelude.Maybe UserContext)
trialComponent_lastModifiedBy :: (Maybe UserContext -> f (Maybe UserContext))
-> TrialComponent -> f TrialComponent
trialComponent_lastModifiedBy = (TrialComponent -> Maybe UserContext)
-> (TrialComponent -> Maybe UserContext -> TrialComponent)
-> Lens
     TrialComponent
     TrialComponent
     (Maybe UserContext)
     (Maybe UserContext)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TrialComponent' {Maybe UserContext
lastModifiedBy :: Maybe UserContext
$sel:lastModifiedBy:TrialComponent' :: TrialComponent -> Maybe UserContext
lastModifiedBy} -> Maybe UserContext
lastModifiedBy) (\s :: TrialComponent
s@TrialComponent' {} Maybe UserContext
a -> TrialComponent
s {$sel:lastModifiedBy:TrialComponent' :: Maybe UserContext
lastModifiedBy = Maybe UserContext
a} :: TrialComponent)

-- | The Amazon Resource Name (ARN) of the trial component.
trialComponent_trialComponentArn :: Lens.Lens' TrialComponent (Prelude.Maybe Prelude.Text)
trialComponent_trialComponentArn :: (Maybe Text -> f (Maybe Text))
-> TrialComponent -> f TrialComponent
trialComponent_trialComponentArn = (TrialComponent -> Maybe Text)
-> (TrialComponent -> Maybe Text -> TrialComponent)
-> Lens TrialComponent TrialComponent (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TrialComponent' {Maybe Text
trialComponentArn :: Maybe Text
$sel:trialComponentArn:TrialComponent' :: TrialComponent -> Maybe Text
trialComponentArn} -> Maybe Text
trialComponentArn) (\s :: TrialComponent
s@TrialComponent' {} Maybe Text
a -> TrialComponent
s {$sel:trialComponentArn:TrialComponent' :: Maybe Text
trialComponentArn = Maybe Text
a} :: TrialComponent)

-- | The input artifacts of the component.
trialComponent_inputArtifacts :: Lens.Lens' TrialComponent (Prelude.Maybe (Prelude.HashMap Prelude.Text TrialComponentArtifact))
trialComponent_inputArtifacts :: (Maybe (HashMap Text TrialComponentArtifact)
 -> f (Maybe (HashMap Text TrialComponentArtifact)))
-> TrialComponent -> f TrialComponent
trialComponent_inputArtifacts = (TrialComponent -> Maybe (HashMap Text TrialComponentArtifact))
-> (TrialComponent
    -> Maybe (HashMap Text TrialComponentArtifact) -> TrialComponent)
-> Lens
     TrialComponent
     TrialComponent
     (Maybe (HashMap Text TrialComponentArtifact))
     (Maybe (HashMap Text TrialComponentArtifact))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TrialComponent' {Maybe (HashMap Text TrialComponentArtifact)
inputArtifacts :: Maybe (HashMap Text TrialComponentArtifact)
$sel:inputArtifacts:TrialComponent' :: TrialComponent -> Maybe (HashMap Text TrialComponentArtifact)
inputArtifacts} -> Maybe (HashMap Text TrialComponentArtifact)
inputArtifacts) (\s :: TrialComponent
s@TrialComponent' {} Maybe (HashMap Text TrialComponentArtifact)
a -> TrialComponent
s {$sel:inputArtifacts:TrialComponent' :: Maybe (HashMap Text TrialComponentArtifact)
inputArtifacts = Maybe (HashMap Text TrialComponentArtifact)
a} :: TrialComponent) ((Maybe (HashMap Text TrialComponentArtifact)
  -> f (Maybe (HashMap Text TrialComponentArtifact)))
 -> TrialComponent -> f TrialComponent)
-> ((Maybe (HashMap Text TrialComponentArtifact)
     -> f (Maybe (HashMap Text TrialComponentArtifact)))
    -> Maybe (HashMap Text TrialComponentArtifact)
    -> f (Maybe (HashMap Text TrialComponentArtifact)))
-> (Maybe (HashMap Text TrialComponentArtifact)
    -> f (Maybe (HashMap Text TrialComponentArtifact)))
-> TrialComponent
-> f TrialComponent
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (HashMap Text TrialComponentArtifact)
  (HashMap Text TrialComponentArtifact)
  (HashMap Text TrialComponentArtifact)
  (HashMap Text TrialComponentArtifact)
-> Iso
     (Maybe (HashMap Text TrialComponentArtifact))
     (Maybe (HashMap Text TrialComponentArtifact))
     (Maybe (HashMap Text TrialComponentArtifact))
     (Maybe (HashMap Text TrialComponentArtifact))
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 TrialComponentArtifact)
  (HashMap Text TrialComponentArtifact)
  (HashMap Text TrialComponentArtifact)
  (HashMap Text TrialComponentArtifact)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The list of tags that are associated with the component. You can use
-- Search API to search on the tags.
trialComponent_tags :: Lens.Lens' TrialComponent (Prelude.Maybe [Tag])
trialComponent_tags :: (Maybe [Tag] -> f (Maybe [Tag]))
-> TrialComponent -> f TrialComponent
trialComponent_tags = (TrialComponent -> Maybe [Tag])
-> (TrialComponent -> Maybe [Tag] -> TrialComponent)
-> Lens TrialComponent TrialComponent (Maybe [Tag]) (Maybe [Tag])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TrialComponent' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:TrialComponent' :: TrialComponent -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: TrialComponent
s@TrialComponent' {} Maybe [Tag]
a -> TrialComponent
s {$sel:tags:TrialComponent' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: TrialComponent) ((Maybe [Tag] -> f (Maybe [Tag]))
 -> TrialComponent -> f TrialComponent)
-> ((Maybe [Tag] -> f (Maybe [Tag]))
    -> Maybe [Tag] -> f (Maybe [Tag]))
-> (Maybe [Tag] -> f (Maybe [Tag]))
-> TrialComponent
-> f TrialComponent
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Tag] [Tag] [Tag] [Tag]
-> Iso (Maybe [Tag]) (Maybe [Tag]) (Maybe [Tag]) (Maybe [Tag])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso [Tag] [Tag] [Tag] [Tag]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance Core.FromJSON TrialComponent where
  parseJSON :: Value -> Parser TrialComponent
parseJSON =
    String
-> (Object -> Parser TrialComponent)
-> Value
-> Parser TrialComponent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"TrialComponent"
      ( \Object
x ->
          Maybe POSIX
-> Maybe MetadataProperties
-> Maybe TrialComponentStatus
-> Maybe TrialComponentSourceDetail
-> Maybe [TrialComponentMetricSummary]
-> Maybe (HashMap Text TrialComponentArtifact)
-> Maybe POSIX
-> Maybe UserContext
-> Maybe POSIX
-> Maybe [Parent]
-> Maybe POSIX
-> Maybe Text
-> Maybe (HashMap Text TrialComponentParameterValue)
-> Maybe TrialComponentSource
-> Maybe Text
-> Maybe UserContext
-> Maybe Text
-> Maybe (HashMap Text TrialComponentArtifact)
-> Maybe [Tag]
-> TrialComponent
TrialComponent'
            (Maybe POSIX
 -> Maybe MetadataProperties
 -> Maybe TrialComponentStatus
 -> Maybe TrialComponentSourceDetail
 -> Maybe [TrialComponentMetricSummary]
 -> Maybe (HashMap Text TrialComponentArtifact)
 -> Maybe POSIX
 -> Maybe UserContext
 -> Maybe POSIX
 -> Maybe [Parent]
 -> Maybe POSIX
 -> Maybe Text
 -> Maybe (HashMap Text TrialComponentParameterValue)
 -> Maybe TrialComponentSource
 -> Maybe Text
 -> Maybe UserContext
 -> Maybe Text
 -> Maybe (HashMap Text TrialComponentArtifact)
 -> Maybe [Tag]
 -> TrialComponent)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe MetadataProperties
      -> Maybe TrialComponentStatus
      -> Maybe TrialComponentSourceDetail
      -> Maybe [TrialComponentMetricSummary]
      -> Maybe (HashMap Text TrialComponentArtifact)
      -> Maybe POSIX
      -> Maybe UserContext
      -> Maybe POSIX
      -> Maybe [Parent]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentParameterValue)
      -> Maybe TrialComponentSource
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentArtifact)
      -> Maybe [Tag]
      -> TrialComponent)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"CreationTime")
            Parser
  (Maybe MetadataProperties
   -> Maybe TrialComponentStatus
   -> Maybe TrialComponentSourceDetail
   -> Maybe [TrialComponentMetricSummary]
   -> Maybe (HashMap Text TrialComponentArtifact)
   -> Maybe POSIX
   -> Maybe UserContext
   -> Maybe POSIX
   -> Maybe [Parent]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentParameterValue)
   -> Maybe TrialComponentSource
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentArtifact)
   -> Maybe [Tag]
   -> TrialComponent)
-> Parser (Maybe MetadataProperties)
-> Parser
     (Maybe TrialComponentStatus
      -> Maybe TrialComponentSourceDetail
      -> Maybe [TrialComponentMetricSummary]
      -> Maybe (HashMap Text TrialComponentArtifact)
      -> Maybe POSIX
      -> Maybe UserContext
      -> Maybe POSIX
      -> Maybe [Parent]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentParameterValue)
      -> Maybe TrialComponentSource
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentArtifact)
      -> Maybe [Tag]
      -> TrialComponent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe MetadataProperties)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"MetadataProperties")
            Parser
  (Maybe TrialComponentStatus
   -> Maybe TrialComponentSourceDetail
   -> Maybe [TrialComponentMetricSummary]
   -> Maybe (HashMap Text TrialComponentArtifact)
   -> Maybe POSIX
   -> Maybe UserContext
   -> Maybe POSIX
   -> Maybe [Parent]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentParameterValue)
   -> Maybe TrialComponentSource
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentArtifact)
   -> Maybe [Tag]
   -> TrialComponent)
-> Parser (Maybe TrialComponentStatus)
-> Parser
     (Maybe TrialComponentSourceDetail
      -> Maybe [TrialComponentMetricSummary]
      -> Maybe (HashMap Text TrialComponentArtifact)
      -> Maybe POSIX
      -> Maybe UserContext
      -> Maybe POSIX
      -> Maybe [Parent]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentParameterValue)
      -> Maybe TrialComponentSource
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentArtifact)
      -> Maybe [Tag]
      -> TrialComponent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe TrialComponentStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Status")
            Parser
  (Maybe TrialComponentSourceDetail
   -> Maybe [TrialComponentMetricSummary]
   -> Maybe (HashMap Text TrialComponentArtifact)
   -> Maybe POSIX
   -> Maybe UserContext
   -> Maybe POSIX
   -> Maybe [Parent]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentParameterValue)
   -> Maybe TrialComponentSource
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentArtifact)
   -> Maybe [Tag]
   -> TrialComponent)
-> Parser (Maybe TrialComponentSourceDetail)
-> Parser
     (Maybe [TrialComponentMetricSummary]
      -> Maybe (HashMap Text TrialComponentArtifact)
      -> Maybe POSIX
      -> Maybe UserContext
      -> Maybe POSIX
      -> Maybe [Parent]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentParameterValue)
      -> Maybe TrialComponentSource
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentArtifact)
      -> Maybe [Tag]
      -> TrialComponent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe TrialComponentSourceDetail)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"SourceDetail")
            Parser
  (Maybe [TrialComponentMetricSummary]
   -> Maybe (HashMap Text TrialComponentArtifact)
   -> Maybe POSIX
   -> Maybe UserContext
   -> Maybe POSIX
   -> Maybe [Parent]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentParameterValue)
   -> Maybe TrialComponentSource
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentArtifact)
   -> Maybe [Tag]
   -> TrialComponent)
-> Parser (Maybe [TrialComponentMetricSummary])
-> Parser
     (Maybe (HashMap Text TrialComponentArtifact)
      -> Maybe POSIX
      -> Maybe UserContext
      -> Maybe POSIX
      -> Maybe [Parent]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentParameterValue)
      -> Maybe TrialComponentSource
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentArtifact)
      -> Maybe [Tag]
      -> TrialComponent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object
-> Text -> Parser (Maybe (Maybe [TrialComponentMetricSummary]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Metrics" Parser (Maybe (Maybe [TrialComponentMetricSummary]))
-> Maybe [TrialComponentMetricSummary]
-> Parser (Maybe [TrialComponentMetricSummary])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [TrialComponentMetricSummary]
forall a. Monoid a => a
Prelude.mempty)
            Parser
  (Maybe (HashMap Text TrialComponentArtifact)
   -> Maybe POSIX
   -> Maybe UserContext
   -> Maybe POSIX
   -> Maybe [Parent]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentParameterValue)
   -> Maybe TrialComponentSource
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentArtifact)
   -> Maybe [Tag]
   -> TrialComponent)
-> Parser (Maybe (HashMap Text TrialComponentArtifact))
-> Parser
     (Maybe POSIX
      -> Maybe UserContext
      -> Maybe POSIX
      -> Maybe [Parent]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentParameterValue)
      -> Maybe TrialComponentSource
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentArtifact)
      -> Maybe [Tag]
      -> TrialComponent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Text
-> Parser (Maybe (Maybe (HashMap Text TrialComponentArtifact)))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"OutputArtifacts"
                            Parser (Maybe (Maybe (HashMap Text TrialComponentArtifact)))
-> Maybe (HashMap Text TrialComponentArtifact)
-> Parser (Maybe (HashMap Text TrialComponentArtifact))
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe (HashMap Text TrialComponentArtifact)
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe POSIX
   -> Maybe UserContext
   -> Maybe POSIX
   -> Maybe [Parent]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentParameterValue)
   -> Maybe TrialComponentSource
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentArtifact)
   -> Maybe [Tag]
   -> TrialComponent)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe UserContext
      -> Maybe POSIX
      -> Maybe [Parent]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentParameterValue)
      -> Maybe TrialComponentSource
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentArtifact)
      -> Maybe [Tag]
      -> TrialComponent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"StartTime")
            Parser
  (Maybe UserContext
   -> Maybe POSIX
   -> Maybe [Parent]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentParameterValue)
   -> Maybe TrialComponentSource
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentArtifact)
   -> Maybe [Tag]
   -> TrialComponent)
-> Parser (Maybe UserContext)
-> Parser
     (Maybe POSIX
      -> Maybe [Parent]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentParameterValue)
      -> Maybe TrialComponentSource
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentArtifact)
      -> Maybe [Tag]
      -> TrialComponent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe UserContext)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"CreatedBy")
            Parser
  (Maybe POSIX
   -> Maybe [Parent]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentParameterValue)
   -> Maybe TrialComponentSource
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentArtifact)
   -> Maybe [Tag]
   -> TrialComponent)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe [Parent]
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentParameterValue)
      -> Maybe TrialComponentSource
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentArtifact)
      -> Maybe [Tag]
      -> TrialComponent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"LastModifiedTime")
            Parser
  (Maybe [Parent]
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentParameterValue)
   -> Maybe TrialComponentSource
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentArtifact)
   -> Maybe [Tag]
   -> TrialComponent)
-> Parser (Maybe [Parent])
-> Parser
     (Maybe POSIX
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentParameterValue)
      -> Maybe TrialComponentSource
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentArtifact)
      -> Maybe [Tag]
      -> TrialComponent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe (Maybe [Parent]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Parents" Parser (Maybe (Maybe [Parent]))
-> Maybe [Parent] -> Parser (Maybe [Parent])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [Parent]
forall a. Monoid a => a
Prelude.mempty)
            Parser
  (Maybe POSIX
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentParameterValue)
   -> Maybe TrialComponentSource
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentArtifact)
   -> Maybe [Tag]
   -> TrialComponent)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe Text
      -> Maybe (HashMap Text TrialComponentParameterValue)
      -> Maybe TrialComponentSource
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentArtifact)
      -> Maybe [Tag]
      -> TrialComponent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"EndTime")
            Parser
  (Maybe Text
   -> Maybe (HashMap Text TrialComponentParameterValue)
   -> Maybe TrialComponentSource
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentArtifact)
   -> Maybe [Tag]
   -> TrialComponent)
-> Parser (Maybe Text)
-> Parser
     (Maybe (HashMap Text TrialComponentParameterValue)
      -> Maybe TrialComponentSource
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentArtifact)
      -> Maybe [Tag]
      -> TrialComponent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"TrialComponentName")
            Parser
  (Maybe (HashMap Text TrialComponentParameterValue)
   -> Maybe TrialComponentSource
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentArtifact)
   -> Maybe [Tag]
   -> TrialComponent)
-> Parser (Maybe (HashMap Text TrialComponentParameterValue))
-> Parser
     (Maybe TrialComponentSource
      -> Maybe Text
      -> Maybe UserContext
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentArtifact)
      -> Maybe [Tag]
      -> TrialComponent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object
-> Text
-> Parser
     (Maybe (Maybe (HashMap Text TrialComponentParameterValue)))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Parameters" Parser (Maybe (Maybe (HashMap Text TrialComponentParameterValue)))
-> Maybe (HashMap Text TrialComponentParameterValue)
-> Parser (Maybe (HashMap Text TrialComponentParameterValue))
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe (HashMap Text TrialComponentParameterValue)
forall a. Monoid a => a
Prelude.mempty)
            Parser
  (Maybe TrialComponentSource
   -> Maybe Text
   -> Maybe UserContext
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentArtifact)
   -> Maybe [Tag]
   -> TrialComponent)
-> Parser (Maybe TrialComponentSource)
-> Parser
     (Maybe Text
      -> Maybe UserContext
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentArtifact)
      -> Maybe [Tag]
      -> TrialComponent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe TrialComponentSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Source")
            Parser
  (Maybe Text
   -> Maybe UserContext
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentArtifact)
   -> Maybe [Tag]
   -> TrialComponent)
-> Parser (Maybe Text)
-> Parser
     (Maybe UserContext
      -> Maybe Text
      -> Maybe (HashMap Text TrialComponentArtifact)
      -> Maybe [Tag]
      -> TrialComponent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DisplayName")
            Parser
  (Maybe UserContext
   -> Maybe Text
   -> Maybe (HashMap Text TrialComponentArtifact)
   -> Maybe [Tag]
   -> TrialComponent)
-> Parser (Maybe UserContext)
-> Parser
     (Maybe Text
      -> Maybe (HashMap Text TrialComponentArtifact)
      -> Maybe [Tag]
      -> TrialComponent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe UserContext)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"LastModifiedBy")
            Parser
  (Maybe Text
   -> Maybe (HashMap Text TrialComponentArtifact)
   -> Maybe [Tag]
   -> TrialComponent)
-> Parser (Maybe Text)
-> Parser
     (Maybe (HashMap Text TrialComponentArtifact)
      -> Maybe [Tag] -> TrialComponent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"TrialComponentArn")
            Parser
  (Maybe (HashMap Text TrialComponentArtifact)
   -> Maybe [Tag] -> TrialComponent)
-> Parser (Maybe (HashMap Text TrialComponentArtifact))
-> Parser (Maybe [Tag] -> TrialComponent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object
-> Text
-> Parser (Maybe (Maybe (HashMap Text TrialComponentArtifact)))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"InputArtifacts" Parser (Maybe (Maybe (HashMap Text TrialComponentArtifact)))
-> Maybe (HashMap Text TrialComponentArtifact)
-> Parser (Maybe (HashMap Text TrialComponentArtifact))
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe (HashMap Text TrialComponentArtifact)
forall a. Monoid a => a
Prelude.mempty)
            Parser (Maybe [Tag] -> TrialComponent)
-> Parser (Maybe [Tag]) -> Parser TrialComponent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe (Maybe [Tag]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Tags" Parser (Maybe (Maybe [Tag])) -> Maybe [Tag] -> Parser (Maybe [Tag])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [Tag]
forall a. Monoid a => a
Prelude.mempty)
      )

instance Prelude.Hashable TrialComponent

instance Prelude.NFData TrialComponent