{-# 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.Trial
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.SageMaker.Types.Trial where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.SageMaker.Types.MetadataProperties
import Amazonka.SageMaker.Types.Tag
import Amazonka.SageMaker.Types.TrialComponentSimpleSummary
import Amazonka.SageMaker.Types.TrialSource
import Amazonka.SageMaker.Types.UserContext

-- | The properties of a trial as returned by the Search API.
--
-- /See:/ 'newTrial' smart constructor.
data Trial = Trial'
  { -- | Who created the trial.
    Trial -> Maybe UserContext
createdBy :: Prelude.Maybe UserContext,
    -- | When the trial was created.
    Trial -> Maybe POSIX
creationTime :: Prelude.Maybe Data.POSIX,
    -- | The name of the trial as displayed. If @DisplayName@ isn\'t specified,
    -- @TrialName@ is displayed.
    Trial -> Maybe Text
displayName :: Prelude.Maybe Prelude.Text,
    -- | The name of the experiment the trial is part of.
    Trial -> Maybe Text
experimentName :: Prelude.Maybe Prelude.Text,
    Trial -> Maybe UserContext
lastModifiedBy :: Prelude.Maybe UserContext,
    -- | Who last modified the trial.
    Trial -> Maybe POSIX
lastModifiedTime :: Prelude.Maybe Data.POSIX,
    Trial -> Maybe MetadataProperties
metadataProperties :: Prelude.Maybe MetadataProperties,
    Trial -> Maybe TrialSource
source :: Prelude.Maybe TrialSource,
    -- | The list of tags that are associated with the trial. You can use Search
    -- API to search on the tags.
    Trial -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The Amazon Resource Name (ARN) of the trial.
    Trial -> Maybe Text
trialArn :: Prelude.Maybe Prelude.Text,
    -- | A list of the components associated with the trial. For each component,
    -- a summary of the component\'s properties is included.
    Trial -> Maybe [TrialComponentSimpleSummary]
trialComponentSummaries :: Prelude.Maybe [TrialComponentSimpleSummary],
    -- | The name of the trial.
    Trial -> Maybe Text
trialName :: Prelude.Maybe Prelude.Text
  }
  deriving (Trial -> Trial -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Trial -> Trial -> Bool
$c/= :: Trial -> Trial -> Bool
== :: Trial -> Trial -> Bool
$c== :: Trial -> Trial -> Bool
Prelude.Eq, ReadPrec [Trial]
ReadPrec Trial
Int -> ReadS Trial
ReadS [Trial]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Trial]
$creadListPrec :: ReadPrec [Trial]
readPrec :: ReadPrec Trial
$creadPrec :: ReadPrec Trial
readList :: ReadS [Trial]
$creadList :: ReadS [Trial]
readsPrec :: Int -> ReadS Trial
$creadsPrec :: Int -> ReadS Trial
Prelude.Read, Int -> Trial -> ShowS
[Trial] -> ShowS
Trial -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Trial] -> ShowS
$cshowList :: [Trial] -> ShowS
show :: Trial -> String
$cshow :: Trial -> String
showsPrec :: Int -> Trial -> ShowS
$cshowsPrec :: Int -> Trial -> ShowS
Prelude.Show, forall x. Rep Trial x -> Trial
forall x. Trial -> Rep Trial x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Trial x -> Trial
$cfrom :: forall x. Trial -> Rep Trial x
Prelude.Generic)

-- |
-- Create a value of 'Trial' 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:
--
-- 'createdBy', 'trial_createdBy' - Who created the trial.
--
-- 'creationTime', 'trial_creationTime' - When the trial was created.
--
-- 'displayName', 'trial_displayName' - The name of the trial as displayed. If @DisplayName@ isn\'t specified,
-- @TrialName@ is displayed.
--
-- 'experimentName', 'trial_experimentName' - The name of the experiment the trial is part of.
--
-- 'lastModifiedBy', 'trial_lastModifiedBy' - Undocumented member.
--
-- 'lastModifiedTime', 'trial_lastModifiedTime' - Who last modified the trial.
--
-- 'metadataProperties', 'trial_metadataProperties' - Undocumented member.
--
-- 'source', 'trial_source' - Undocumented member.
--
-- 'tags', 'trial_tags' - The list of tags that are associated with the trial. You can use Search
-- API to search on the tags.
--
-- 'trialArn', 'trial_trialArn' - The Amazon Resource Name (ARN) of the trial.
--
-- 'trialComponentSummaries', 'trial_trialComponentSummaries' - A list of the components associated with the trial. For each component,
-- a summary of the component\'s properties is included.
--
-- 'trialName', 'trial_trialName' - The name of the trial.
newTrial ::
  Trial
newTrial :: Trial
newTrial =
  Trial'
    { $sel:createdBy:Trial' :: Maybe UserContext
createdBy = forall a. Maybe a
Prelude.Nothing,
      $sel:creationTime:Trial' :: Maybe POSIX
creationTime = forall a. Maybe a
Prelude.Nothing,
      $sel:displayName:Trial' :: Maybe Text
displayName = forall a. Maybe a
Prelude.Nothing,
      $sel:experimentName:Trial' :: Maybe Text
experimentName = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedBy:Trial' :: Maybe UserContext
lastModifiedBy = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedTime:Trial' :: Maybe POSIX
lastModifiedTime = forall a. Maybe a
Prelude.Nothing,
      $sel:metadataProperties:Trial' :: Maybe MetadataProperties
metadataProperties = forall a. Maybe a
Prelude.Nothing,
      $sel:source:Trial' :: Maybe TrialSource
source = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:Trial' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:trialArn:Trial' :: Maybe Text
trialArn = forall a. Maybe a
Prelude.Nothing,
      $sel:trialComponentSummaries:Trial' :: Maybe [TrialComponentSimpleSummary]
trialComponentSummaries = forall a. Maybe a
Prelude.Nothing,
      $sel:trialName:Trial' :: Maybe Text
trialName = forall a. Maybe a
Prelude.Nothing
    }

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

-- | When the trial was created.
trial_creationTime :: Lens.Lens' Trial (Prelude.Maybe Prelude.UTCTime)
trial_creationTime :: Lens' Trial (Maybe UTCTime)
trial_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Trial' {Maybe POSIX
creationTime :: Maybe POSIX
$sel:creationTime:Trial' :: Trial -> Maybe POSIX
creationTime} -> Maybe POSIX
creationTime) (\s :: Trial
s@Trial' {} Maybe POSIX
a -> Trial
s {$sel:creationTime:Trial' :: Maybe POSIX
creationTime = Maybe POSIX
a} :: Trial) 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 name of the trial as displayed. If @DisplayName@ isn\'t specified,
-- @TrialName@ is displayed.
trial_displayName :: Lens.Lens' Trial (Prelude.Maybe Prelude.Text)
trial_displayName :: Lens' Trial (Maybe Text)
trial_displayName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Trial' {Maybe Text
displayName :: Maybe Text
$sel:displayName:Trial' :: Trial -> Maybe Text
displayName} -> Maybe Text
displayName) (\s :: Trial
s@Trial' {} Maybe Text
a -> Trial
s {$sel:displayName:Trial' :: Maybe Text
displayName = Maybe Text
a} :: Trial)

-- | The name of the experiment the trial is part of.
trial_experimentName :: Lens.Lens' Trial (Prelude.Maybe Prelude.Text)
trial_experimentName :: Lens' Trial (Maybe Text)
trial_experimentName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Trial' {Maybe Text
experimentName :: Maybe Text
$sel:experimentName:Trial' :: Trial -> Maybe Text
experimentName} -> Maybe Text
experimentName) (\s :: Trial
s@Trial' {} Maybe Text
a -> Trial
s {$sel:experimentName:Trial' :: Maybe Text
experimentName = Maybe Text
a} :: Trial)

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

-- | Who last modified the trial.
trial_lastModifiedTime :: Lens.Lens' Trial (Prelude.Maybe Prelude.UTCTime)
trial_lastModifiedTime :: Lens' Trial (Maybe UTCTime)
trial_lastModifiedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Trial' {Maybe POSIX
lastModifiedTime :: Maybe POSIX
$sel:lastModifiedTime:Trial' :: Trial -> Maybe POSIX
lastModifiedTime} -> Maybe POSIX
lastModifiedTime) (\s :: Trial
s@Trial' {} Maybe POSIX
a -> Trial
s {$sel:lastModifiedTime:Trial' :: Maybe POSIX
lastModifiedTime = Maybe POSIX
a} :: Trial) 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

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

-- | Undocumented member.
trial_source :: Lens.Lens' Trial (Prelude.Maybe TrialSource)
trial_source :: Lens' Trial (Maybe TrialSource)
trial_source = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Trial' {Maybe TrialSource
source :: Maybe TrialSource
$sel:source:Trial' :: Trial -> Maybe TrialSource
source} -> Maybe TrialSource
source) (\s :: Trial
s@Trial' {} Maybe TrialSource
a -> Trial
s {$sel:source:Trial' :: Maybe TrialSource
source = Maybe TrialSource
a} :: Trial)

-- | The list of tags that are associated with the trial. You can use Search
-- API to search on the tags.
trial_tags :: Lens.Lens' Trial (Prelude.Maybe [Tag])
trial_tags :: Lens' Trial (Maybe [Tag])
trial_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Trial' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:Trial' :: Trial -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: Trial
s@Trial' {} Maybe [Tag]
a -> Trial
s {$sel:tags:Trial' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: Trial) 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 Amazon Resource Name (ARN) of the trial.
trial_trialArn :: Lens.Lens' Trial (Prelude.Maybe Prelude.Text)
trial_trialArn :: Lens' Trial (Maybe Text)
trial_trialArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Trial' {Maybe Text
trialArn :: Maybe Text
$sel:trialArn:Trial' :: Trial -> Maybe Text
trialArn} -> Maybe Text
trialArn) (\s :: Trial
s@Trial' {} Maybe Text
a -> Trial
s {$sel:trialArn:Trial' :: Maybe Text
trialArn = Maybe Text
a} :: Trial)

-- | A list of the components associated with the trial. For each component,
-- a summary of the component\'s properties is included.
trial_trialComponentSummaries :: Lens.Lens' Trial (Prelude.Maybe [TrialComponentSimpleSummary])
trial_trialComponentSummaries :: Lens' Trial (Maybe [TrialComponentSimpleSummary])
trial_trialComponentSummaries = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Trial' {Maybe [TrialComponentSimpleSummary]
trialComponentSummaries :: Maybe [TrialComponentSimpleSummary]
$sel:trialComponentSummaries:Trial' :: Trial -> Maybe [TrialComponentSimpleSummary]
trialComponentSummaries} -> Maybe [TrialComponentSimpleSummary]
trialComponentSummaries) (\s :: Trial
s@Trial' {} Maybe [TrialComponentSimpleSummary]
a -> Trial
s {$sel:trialComponentSummaries:Trial' :: Maybe [TrialComponentSimpleSummary]
trialComponentSummaries = Maybe [TrialComponentSimpleSummary]
a} :: Trial) 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 name of the trial.
trial_trialName :: Lens.Lens' Trial (Prelude.Maybe Prelude.Text)
trial_trialName :: Lens' Trial (Maybe Text)
trial_trialName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Trial' {Maybe Text
trialName :: Maybe Text
$sel:trialName:Trial' :: Trial -> Maybe Text
trialName} -> Maybe Text
trialName) (\s :: Trial
s@Trial' {} Maybe Text
a -> Trial
s {$sel:trialName:Trial' :: Maybe Text
trialName = Maybe Text
a} :: Trial)

instance Data.FromJSON Trial where
  parseJSON :: Value -> Parser Trial
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"Trial"
      ( \Object
x ->
          Maybe UserContext
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe UserContext
-> Maybe POSIX
-> Maybe MetadataProperties
-> Maybe TrialSource
-> Maybe [Tag]
-> Maybe Text
-> Maybe [TrialComponentSimpleSummary]
-> Maybe Text
-> Trial
Trial'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CreatedBy")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CreationTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DisplayName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ExperimentName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"LastModifiedBy")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"LastModifiedTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"MetadataProperties")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Source")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Tags" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"TrialArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"TrialComponentSummaries"
                            forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"TrialName")
      )

instance Prelude.Hashable Trial where
  hashWithSalt :: Int -> Trial -> Int
hashWithSalt Int
_salt Trial' {Maybe [Tag]
Maybe [TrialComponentSimpleSummary]
Maybe Text
Maybe POSIX
Maybe MetadataProperties
Maybe TrialSource
Maybe UserContext
trialName :: Maybe Text
trialComponentSummaries :: Maybe [TrialComponentSimpleSummary]
trialArn :: Maybe Text
tags :: Maybe [Tag]
source :: Maybe TrialSource
metadataProperties :: Maybe MetadataProperties
lastModifiedTime :: Maybe POSIX
lastModifiedBy :: Maybe UserContext
experimentName :: Maybe Text
displayName :: Maybe Text
creationTime :: Maybe POSIX
createdBy :: Maybe UserContext
$sel:trialName:Trial' :: Trial -> Maybe Text
$sel:trialComponentSummaries:Trial' :: Trial -> Maybe [TrialComponentSimpleSummary]
$sel:trialArn:Trial' :: Trial -> Maybe Text
$sel:tags:Trial' :: Trial -> Maybe [Tag]
$sel:source:Trial' :: Trial -> Maybe TrialSource
$sel:metadataProperties:Trial' :: Trial -> Maybe MetadataProperties
$sel:lastModifiedTime:Trial' :: Trial -> Maybe POSIX
$sel:lastModifiedBy:Trial' :: Trial -> Maybe UserContext
$sel:experimentName:Trial' :: Trial -> Maybe Text
$sel:displayName:Trial' :: Trial -> Maybe Text
$sel:creationTime:Trial' :: Trial -> Maybe POSIX
$sel:createdBy:Trial' :: Trial -> Maybe UserContext
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UserContext
createdBy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
creationTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
displayName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
experimentName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UserContext
lastModifiedBy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastModifiedTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MetadataProperties
metadataProperties
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TrialSource
source
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
trialArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [TrialComponentSimpleSummary]
trialComponentSummaries
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
trialName

instance Prelude.NFData Trial where
  rnf :: Trial -> ()
rnf Trial' {Maybe [Tag]
Maybe [TrialComponentSimpleSummary]
Maybe Text
Maybe POSIX
Maybe MetadataProperties
Maybe TrialSource
Maybe UserContext
trialName :: Maybe Text
trialComponentSummaries :: Maybe [TrialComponentSimpleSummary]
trialArn :: Maybe Text
tags :: Maybe [Tag]
source :: Maybe TrialSource
metadataProperties :: Maybe MetadataProperties
lastModifiedTime :: Maybe POSIX
lastModifiedBy :: Maybe UserContext
experimentName :: Maybe Text
displayName :: Maybe Text
creationTime :: Maybe POSIX
createdBy :: Maybe UserContext
$sel:trialName:Trial' :: Trial -> Maybe Text
$sel:trialComponentSummaries:Trial' :: Trial -> Maybe [TrialComponentSimpleSummary]
$sel:trialArn:Trial' :: Trial -> Maybe Text
$sel:tags:Trial' :: Trial -> Maybe [Tag]
$sel:source:Trial' :: Trial -> Maybe TrialSource
$sel:metadataProperties:Trial' :: Trial -> Maybe MetadataProperties
$sel:lastModifiedTime:Trial' :: Trial -> Maybe POSIX
$sel:lastModifiedBy:Trial' :: Trial -> Maybe UserContext
$sel:experimentName:Trial' :: Trial -> Maybe Text
$sel:displayName:Trial' :: Trial -> Maybe Text
$sel:creationTime:Trial' :: Trial -> Maybe POSIX
$sel:createdBy:Trial' :: Trial -> Maybe UserContext
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe UserContext
createdBy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
displayName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
experimentName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UserContext
lastModifiedBy
      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 MetadataProperties
metadataProperties
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TrialSource
source
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
trialArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [TrialComponentSimpleSummary]
trialComponentSummaries
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
trialName