{-# 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 #-}
module Amazonka.SageMaker.Types.Experiment 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.ExperimentSource
import Amazonka.SageMaker.Types.Tag
import Amazonka.SageMaker.Types.UserContext
data Experiment = Experiment'
{
Experiment -> Maybe UserContext
createdBy :: Prelude.Maybe UserContext,
Experiment -> Maybe POSIX
creationTime :: Prelude.Maybe Data.POSIX,
Experiment -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
Experiment -> Maybe Text
displayName :: Prelude.Maybe Prelude.Text,
Experiment -> Maybe Text
experimentArn :: Prelude.Maybe Prelude.Text,
Experiment -> Maybe Text
experimentName :: Prelude.Maybe Prelude.Text,
Experiment -> Maybe UserContext
lastModifiedBy :: Prelude.Maybe UserContext,
Experiment -> Maybe POSIX
lastModifiedTime :: Prelude.Maybe Data.POSIX,
Experiment -> Maybe ExperimentSource
source :: Prelude.Maybe ExperimentSource,
Experiment -> Maybe [Tag]
tags :: Prelude.Maybe [Tag]
}
deriving (Experiment -> Experiment -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Experiment -> Experiment -> Bool
$c/= :: Experiment -> Experiment -> Bool
== :: Experiment -> Experiment -> Bool
$c== :: Experiment -> Experiment -> Bool
Prelude.Eq, ReadPrec [Experiment]
ReadPrec Experiment
Int -> ReadS Experiment
ReadS [Experiment]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Experiment]
$creadListPrec :: ReadPrec [Experiment]
readPrec :: ReadPrec Experiment
$creadPrec :: ReadPrec Experiment
readList :: ReadS [Experiment]
$creadList :: ReadS [Experiment]
readsPrec :: Int -> ReadS Experiment
$creadsPrec :: Int -> ReadS Experiment
Prelude.Read, Int -> Experiment -> ShowS
[Experiment] -> ShowS
Experiment -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Experiment] -> ShowS
$cshowList :: [Experiment] -> ShowS
show :: Experiment -> String
$cshow :: Experiment -> String
showsPrec :: Int -> Experiment -> ShowS
$cshowsPrec :: Int -> Experiment -> ShowS
Prelude.Show, forall x. Rep Experiment x -> Experiment
forall x. Experiment -> Rep Experiment x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Experiment x -> Experiment
$cfrom :: forall x. Experiment -> Rep Experiment x
Prelude.Generic)
newExperiment ::
Experiment
newExperiment :: Experiment
newExperiment =
Experiment'
{ $sel:createdBy:Experiment' :: Maybe UserContext
createdBy = forall a. Maybe a
Prelude.Nothing,
$sel:creationTime:Experiment' :: Maybe POSIX
creationTime = forall a. Maybe a
Prelude.Nothing,
$sel:description:Experiment' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
$sel:displayName:Experiment' :: Maybe Text
displayName = forall a. Maybe a
Prelude.Nothing,
$sel:experimentArn:Experiment' :: Maybe Text
experimentArn = forall a. Maybe a
Prelude.Nothing,
$sel:experimentName:Experiment' :: Maybe Text
experimentName = forall a. Maybe a
Prelude.Nothing,
$sel:lastModifiedBy:Experiment' :: Maybe UserContext
lastModifiedBy = forall a. Maybe a
Prelude.Nothing,
$sel:lastModifiedTime:Experiment' :: Maybe POSIX
lastModifiedTime = forall a. Maybe a
Prelude.Nothing,
$sel:source:Experiment' :: Maybe ExperimentSource
source = forall a. Maybe a
Prelude.Nothing,
$sel:tags:Experiment' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing
}
experiment_createdBy :: Lens.Lens' Experiment (Prelude.Maybe UserContext)
experiment_createdBy :: Lens' Experiment (Maybe UserContext)
experiment_createdBy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Maybe UserContext
createdBy :: Maybe UserContext
$sel:createdBy:Experiment' :: Experiment -> Maybe UserContext
createdBy} -> Maybe UserContext
createdBy) (\s :: Experiment
s@Experiment' {} Maybe UserContext
a -> Experiment
s {$sel:createdBy:Experiment' :: Maybe UserContext
createdBy = Maybe UserContext
a} :: Experiment)
experiment_creationTime :: Lens.Lens' Experiment (Prelude.Maybe Prelude.UTCTime)
experiment_creationTime :: Lens' Experiment (Maybe UTCTime)
experiment_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Maybe POSIX
creationTime :: Maybe POSIX
$sel:creationTime:Experiment' :: Experiment -> Maybe POSIX
creationTime} -> Maybe POSIX
creationTime) (\s :: Experiment
s@Experiment' {} Maybe POSIX
a -> Experiment
s {$sel:creationTime:Experiment' :: Maybe POSIX
creationTime = Maybe POSIX
a} :: Experiment) 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
experiment_description :: Lens.Lens' Experiment (Prelude.Maybe Prelude.Text)
experiment_description :: Lens' Experiment (Maybe Text)
experiment_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Maybe Text
description :: Maybe Text
$sel:description:Experiment' :: Experiment -> Maybe Text
description} -> Maybe Text
description) (\s :: Experiment
s@Experiment' {} Maybe Text
a -> Experiment
s {$sel:description:Experiment' :: Maybe Text
description = Maybe Text
a} :: Experiment)
experiment_displayName :: Lens.Lens' Experiment (Prelude.Maybe Prelude.Text)
experiment_displayName :: Lens' Experiment (Maybe Text)
experiment_displayName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Maybe Text
displayName :: Maybe Text
$sel:displayName:Experiment' :: Experiment -> Maybe Text
displayName} -> Maybe Text
displayName) (\s :: Experiment
s@Experiment' {} Maybe Text
a -> Experiment
s {$sel:displayName:Experiment' :: Maybe Text
displayName = Maybe Text
a} :: Experiment)
experiment_experimentArn :: Lens.Lens' Experiment (Prelude.Maybe Prelude.Text)
experiment_experimentArn :: Lens' Experiment (Maybe Text)
experiment_experimentArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Maybe Text
experimentArn :: Maybe Text
$sel:experimentArn:Experiment' :: Experiment -> Maybe Text
experimentArn} -> Maybe Text
experimentArn) (\s :: Experiment
s@Experiment' {} Maybe Text
a -> Experiment
s {$sel:experimentArn:Experiment' :: Maybe Text
experimentArn = Maybe Text
a} :: Experiment)
experiment_experimentName :: Lens.Lens' Experiment (Prelude.Maybe Prelude.Text)
experiment_experimentName :: Lens' Experiment (Maybe Text)
experiment_experimentName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Maybe Text
experimentName :: Maybe Text
$sel:experimentName:Experiment' :: Experiment -> Maybe Text
experimentName} -> Maybe Text
experimentName) (\s :: Experiment
s@Experiment' {} Maybe Text
a -> Experiment
s {$sel:experimentName:Experiment' :: Maybe Text
experimentName = Maybe Text
a} :: Experiment)
experiment_lastModifiedBy :: Lens.Lens' Experiment (Prelude.Maybe UserContext)
experiment_lastModifiedBy :: Lens' Experiment (Maybe UserContext)
experiment_lastModifiedBy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Maybe UserContext
lastModifiedBy :: Maybe UserContext
$sel:lastModifiedBy:Experiment' :: Experiment -> Maybe UserContext
lastModifiedBy} -> Maybe UserContext
lastModifiedBy) (\s :: Experiment
s@Experiment' {} Maybe UserContext
a -> Experiment
s {$sel:lastModifiedBy:Experiment' :: Maybe UserContext
lastModifiedBy = Maybe UserContext
a} :: Experiment)
experiment_lastModifiedTime :: Lens.Lens' Experiment (Prelude.Maybe Prelude.UTCTime)
experiment_lastModifiedTime :: Lens' Experiment (Maybe UTCTime)
experiment_lastModifiedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Maybe POSIX
lastModifiedTime :: Maybe POSIX
$sel:lastModifiedTime:Experiment' :: Experiment -> Maybe POSIX
lastModifiedTime} -> Maybe POSIX
lastModifiedTime) (\s :: Experiment
s@Experiment' {} Maybe POSIX
a -> Experiment
s {$sel:lastModifiedTime:Experiment' :: Maybe POSIX
lastModifiedTime = Maybe POSIX
a} :: Experiment) 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
experiment_source :: Lens.Lens' Experiment (Prelude.Maybe ExperimentSource)
experiment_source :: Lens' Experiment (Maybe ExperimentSource)
experiment_source = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Maybe ExperimentSource
source :: Maybe ExperimentSource
$sel:source:Experiment' :: Experiment -> Maybe ExperimentSource
source} -> Maybe ExperimentSource
source) (\s :: Experiment
s@Experiment' {} Maybe ExperimentSource
a -> Experiment
s {$sel:source:Experiment' :: Maybe ExperimentSource
source = Maybe ExperimentSource
a} :: Experiment)
experiment_tags :: Lens.Lens' Experiment (Prelude.Maybe [Tag])
experiment_tags :: Lens' Experiment (Maybe [Tag])
experiment_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:Experiment' :: Experiment -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: Experiment
s@Experiment' {} Maybe [Tag]
a -> Experiment
s {$sel:tags:Experiment' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: Experiment) 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
instance Data.FromJSON Experiment where
parseJSON :: Value -> Parser Experiment
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"Experiment"
( \Object
x ->
Maybe UserContext
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe UserContext
-> Maybe POSIX
-> Maybe ExperimentSource
-> Maybe [Tag]
-> Experiment
Experiment'
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
"Description")
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
"ExperimentArn")
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
"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)
)
instance Prelude.Hashable Experiment where
hashWithSalt :: Int -> Experiment -> Int
hashWithSalt Int
_salt Experiment' {Maybe [Tag]
Maybe Text
Maybe POSIX
Maybe ExperimentSource
Maybe UserContext
tags :: Maybe [Tag]
source :: Maybe ExperimentSource
lastModifiedTime :: Maybe POSIX
lastModifiedBy :: Maybe UserContext
experimentName :: Maybe Text
experimentArn :: Maybe Text
displayName :: Maybe Text
description :: Maybe Text
creationTime :: Maybe POSIX
createdBy :: Maybe UserContext
$sel:tags:Experiment' :: Experiment -> Maybe [Tag]
$sel:source:Experiment' :: Experiment -> Maybe ExperimentSource
$sel:lastModifiedTime:Experiment' :: Experiment -> Maybe POSIX
$sel:lastModifiedBy:Experiment' :: Experiment -> Maybe UserContext
$sel:experimentName:Experiment' :: Experiment -> Maybe Text
$sel:experimentArn:Experiment' :: Experiment -> Maybe Text
$sel:displayName:Experiment' :: Experiment -> Maybe Text
$sel:description:Experiment' :: Experiment -> Maybe Text
$sel:creationTime:Experiment' :: Experiment -> Maybe POSIX
$sel:createdBy:Experiment' :: Experiment -> 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
description
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
displayName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
experimentArn
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 ExperimentSource
source
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
instance Prelude.NFData Experiment where
rnf :: Experiment -> ()
rnf Experiment' {Maybe [Tag]
Maybe Text
Maybe POSIX
Maybe ExperimentSource
Maybe UserContext
tags :: Maybe [Tag]
source :: Maybe ExperimentSource
lastModifiedTime :: Maybe POSIX
lastModifiedBy :: Maybe UserContext
experimentName :: Maybe Text
experimentArn :: Maybe Text
displayName :: Maybe Text
description :: Maybe Text
creationTime :: Maybe POSIX
createdBy :: Maybe UserContext
$sel:tags:Experiment' :: Experiment -> Maybe [Tag]
$sel:source:Experiment' :: Experiment -> Maybe ExperimentSource
$sel:lastModifiedTime:Experiment' :: Experiment -> Maybe POSIX
$sel:lastModifiedBy:Experiment' :: Experiment -> Maybe UserContext
$sel:experimentName:Experiment' :: Experiment -> Maybe Text
$sel:experimentArn:Experiment' :: Experiment -> Maybe Text
$sel:displayName:Experiment' :: Experiment -> Maybe Text
$sel:description:Experiment' :: Experiment -> Maybe Text
$sel:creationTime:Experiment' :: Experiment -> Maybe POSIX
$sel:createdBy:Experiment' :: Experiment -> 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
description
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
experimentArn
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 ExperimentSource
source
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags