{-# 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.Evidently.Types.Experiment where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Evidently.Types.ExperimentExecution
import Amazonka.Evidently.Types.ExperimentSchedule
import Amazonka.Evidently.Types.ExperimentStatus
import Amazonka.Evidently.Types.ExperimentType
import Amazonka.Evidently.Types.MetricGoal
import Amazonka.Evidently.Types.OnlineAbDefinition
import Amazonka.Evidently.Types.Treatment
import qualified Amazonka.Prelude as Prelude
data Experiment = Experiment'
{
Experiment -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
Experiment -> Maybe ExperimentExecution
execution :: Prelude.Maybe ExperimentExecution,
Experiment -> Maybe (NonEmpty MetricGoal)
metricGoals :: Prelude.Maybe (Prelude.NonEmpty MetricGoal),
Experiment -> Maybe OnlineAbDefinition
onlineAbDefinition :: Prelude.Maybe OnlineAbDefinition,
Experiment -> Maybe Text
project :: Prelude.Maybe Prelude.Text,
Experiment -> Maybe Text
randomizationSalt :: Prelude.Maybe Prelude.Text,
Experiment -> Maybe Natural
samplingRate :: Prelude.Maybe Prelude.Natural,
Experiment -> Maybe ExperimentSchedule
schedule :: Prelude.Maybe ExperimentSchedule,
Experiment -> Maybe Text
segment :: Prelude.Maybe Prelude.Text,
Experiment -> Maybe Text
statusReason :: Prelude.Maybe Prelude.Text,
Experiment -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
Experiment -> Maybe (NonEmpty Treatment)
treatments :: Prelude.Maybe (Prelude.NonEmpty Treatment),
Experiment -> Text
arn :: Prelude.Text,
Experiment -> POSIX
createdTime :: Data.POSIX,
Experiment -> POSIX
lastUpdatedTime :: Data.POSIX,
Experiment -> Text
name :: Prelude.Text,
Experiment -> ExperimentStatus
status :: ExperimentStatus,
Experiment -> ExperimentType
type' :: ExperimentType
}
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 ::
Prelude.Text ->
Prelude.UTCTime ->
Prelude.UTCTime ->
Prelude.Text ->
ExperimentStatus ->
ExperimentType ->
Experiment
newExperiment :: Text
-> UTCTime
-> UTCTime
-> Text
-> ExperimentStatus
-> ExperimentType
-> Experiment
newExperiment
Text
pArn_
UTCTime
pCreatedTime_
UTCTime
pLastUpdatedTime_
Text
pName_
ExperimentStatus
pStatus_
ExperimentType
pType_ =
Experiment'
{ $sel:description:Experiment' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
$sel:execution:Experiment' :: Maybe ExperimentExecution
execution = forall a. Maybe a
Prelude.Nothing,
$sel:metricGoals:Experiment' :: Maybe (NonEmpty MetricGoal)
metricGoals = forall a. Maybe a
Prelude.Nothing,
$sel:onlineAbDefinition:Experiment' :: Maybe OnlineAbDefinition
onlineAbDefinition = forall a. Maybe a
Prelude.Nothing,
$sel:project:Experiment' :: Maybe Text
project = forall a. Maybe a
Prelude.Nothing,
$sel:randomizationSalt:Experiment' :: Maybe Text
randomizationSalt = forall a. Maybe a
Prelude.Nothing,
$sel:samplingRate:Experiment' :: Maybe Natural
samplingRate = forall a. Maybe a
Prelude.Nothing,
$sel:schedule:Experiment' :: Maybe ExperimentSchedule
schedule = forall a. Maybe a
Prelude.Nothing,
$sel:segment:Experiment' :: Maybe Text
segment = forall a. Maybe a
Prelude.Nothing,
$sel:statusReason:Experiment' :: Maybe Text
statusReason = forall a. Maybe a
Prelude.Nothing,
$sel:tags:Experiment' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
$sel:treatments:Experiment' :: Maybe (NonEmpty Treatment)
treatments = forall a. Maybe a
Prelude.Nothing,
$sel:arn:Experiment' :: Text
arn = Text
pArn_,
$sel:createdTime:Experiment' :: POSIX
createdTime = forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pCreatedTime_,
$sel:lastUpdatedTime:Experiment' :: POSIX
lastUpdatedTime =
forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pLastUpdatedTime_,
$sel:name:Experiment' :: Text
name = Text
pName_,
$sel:status:Experiment' :: ExperimentStatus
status = ExperimentStatus
pStatus_,
$sel:type':Experiment' :: ExperimentType
type' = ExperimentType
pType_
}
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_execution :: Lens.Lens' Experiment (Prelude.Maybe ExperimentExecution)
experiment_execution :: Lens' Experiment (Maybe ExperimentExecution)
experiment_execution = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Maybe ExperimentExecution
execution :: Maybe ExperimentExecution
$sel:execution:Experiment' :: Experiment -> Maybe ExperimentExecution
execution} -> Maybe ExperimentExecution
execution) (\s :: Experiment
s@Experiment' {} Maybe ExperimentExecution
a -> Experiment
s {$sel:execution:Experiment' :: Maybe ExperimentExecution
execution = Maybe ExperimentExecution
a} :: Experiment)
experiment_metricGoals :: Lens.Lens' Experiment (Prelude.Maybe (Prelude.NonEmpty MetricGoal))
experiment_metricGoals :: Lens' Experiment (Maybe (NonEmpty MetricGoal))
experiment_metricGoals = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Maybe (NonEmpty MetricGoal)
metricGoals :: Maybe (NonEmpty MetricGoal)
$sel:metricGoals:Experiment' :: Experiment -> Maybe (NonEmpty MetricGoal)
metricGoals} -> Maybe (NonEmpty MetricGoal)
metricGoals) (\s :: Experiment
s@Experiment' {} Maybe (NonEmpty MetricGoal)
a -> Experiment
s {$sel:metricGoals:Experiment' :: Maybe (NonEmpty MetricGoal)
metricGoals = Maybe (NonEmpty MetricGoal)
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
experiment_onlineAbDefinition :: Lens.Lens' Experiment (Prelude.Maybe OnlineAbDefinition)
experiment_onlineAbDefinition :: Lens' Experiment (Maybe OnlineAbDefinition)
experiment_onlineAbDefinition = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Maybe OnlineAbDefinition
onlineAbDefinition :: Maybe OnlineAbDefinition
$sel:onlineAbDefinition:Experiment' :: Experiment -> Maybe OnlineAbDefinition
onlineAbDefinition} -> Maybe OnlineAbDefinition
onlineAbDefinition) (\s :: Experiment
s@Experiment' {} Maybe OnlineAbDefinition
a -> Experiment
s {$sel:onlineAbDefinition:Experiment' :: Maybe OnlineAbDefinition
onlineAbDefinition = Maybe OnlineAbDefinition
a} :: Experiment)
experiment_project :: Lens.Lens' Experiment (Prelude.Maybe Prelude.Text)
experiment_project :: Lens' Experiment (Maybe Text)
experiment_project = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Maybe Text
project :: Maybe Text
$sel:project:Experiment' :: Experiment -> Maybe Text
project} -> Maybe Text
project) (\s :: Experiment
s@Experiment' {} Maybe Text
a -> Experiment
s {$sel:project:Experiment' :: Maybe Text
project = Maybe Text
a} :: Experiment)
experiment_randomizationSalt :: Lens.Lens' Experiment (Prelude.Maybe Prelude.Text)
experiment_randomizationSalt :: Lens' Experiment (Maybe Text)
experiment_randomizationSalt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Maybe Text
randomizationSalt :: Maybe Text
$sel:randomizationSalt:Experiment' :: Experiment -> Maybe Text
randomizationSalt} -> Maybe Text
randomizationSalt) (\s :: Experiment
s@Experiment' {} Maybe Text
a -> Experiment
s {$sel:randomizationSalt:Experiment' :: Maybe Text
randomizationSalt = Maybe Text
a} :: Experiment)
experiment_samplingRate :: Lens.Lens' Experiment (Prelude.Maybe Prelude.Natural)
experiment_samplingRate :: Lens' Experiment (Maybe Natural)
experiment_samplingRate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Maybe Natural
samplingRate :: Maybe Natural
$sel:samplingRate:Experiment' :: Experiment -> Maybe Natural
samplingRate} -> Maybe Natural
samplingRate) (\s :: Experiment
s@Experiment' {} Maybe Natural
a -> Experiment
s {$sel:samplingRate:Experiment' :: Maybe Natural
samplingRate = Maybe Natural
a} :: Experiment)
experiment_schedule :: Lens.Lens' Experiment (Prelude.Maybe ExperimentSchedule)
experiment_schedule :: Lens' Experiment (Maybe ExperimentSchedule)
experiment_schedule = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Maybe ExperimentSchedule
schedule :: Maybe ExperimentSchedule
$sel:schedule:Experiment' :: Experiment -> Maybe ExperimentSchedule
schedule} -> Maybe ExperimentSchedule
schedule) (\s :: Experiment
s@Experiment' {} Maybe ExperimentSchedule
a -> Experiment
s {$sel:schedule:Experiment' :: Maybe ExperimentSchedule
schedule = Maybe ExperimentSchedule
a} :: Experiment)
experiment_segment :: Lens.Lens' Experiment (Prelude.Maybe Prelude.Text)
experiment_segment :: Lens' Experiment (Maybe Text)
experiment_segment = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Maybe Text
segment :: Maybe Text
$sel:segment:Experiment' :: Experiment -> Maybe Text
segment} -> Maybe Text
segment) (\s :: Experiment
s@Experiment' {} Maybe Text
a -> Experiment
s {$sel:segment:Experiment' :: Maybe Text
segment = Maybe Text
a} :: Experiment)
experiment_statusReason :: Lens.Lens' Experiment (Prelude.Maybe Prelude.Text)
experiment_statusReason :: Lens' Experiment (Maybe Text)
experiment_statusReason = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Maybe Text
statusReason :: Maybe Text
$sel:statusReason:Experiment' :: Experiment -> Maybe Text
statusReason} -> Maybe Text
statusReason) (\s :: Experiment
s@Experiment' {} Maybe Text
a -> Experiment
s {$sel:statusReason:Experiment' :: Maybe Text
statusReason = Maybe Text
a} :: Experiment)
experiment_tags :: Lens.Lens' Experiment (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
experiment_tags :: Lens' Experiment (Maybe (HashMap Text Text))
experiment_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:Experiment' :: Experiment -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: Experiment
s@Experiment' {} Maybe (HashMap Text Text)
a -> Experiment
s {$sel:tags:Experiment' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
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
experiment_treatments :: Lens.Lens' Experiment (Prelude.Maybe (Prelude.NonEmpty Treatment))
experiment_treatments :: Lens' Experiment (Maybe (NonEmpty Treatment))
experiment_treatments = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Maybe (NonEmpty Treatment)
treatments :: Maybe (NonEmpty Treatment)
$sel:treatments:Experiment' :: Experiment -> Maybe (NonEmpty Treatment)
treatments} -> Maybe (NonEmpty Treatment)
treatments) (\s :: Experiment
s@Experiment' {} Maybe (NonEmpty Treatment)
a -> Experiment
s {$sel:treatments:Experiment' :: Maybe (NonEmpty Treatment)
treatments = Maybe (NonEmpty Treatment)
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
experiment_arn :: Lens.Lens' Experiment Prelude.Text
experiment_arn :: Lens' Experiment Text
experiment_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Text
arn :: Text
$sel:arn:Experiment' :: Experiment -> Text
arn} -> Text
arn) (\s :: Experiment
s@Experiment' {} Text
a -> Experiment
s {$sel:arn:Experiment' :: Text
arn = Text
a} :: Experiment)
experiment_createdTime :: Lens.Lens' Experiment Prelude.UTCTime
experiment_createdTime :: Lens' Experiment UTCTime
experiment_createdTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {POSIX
createdTime :: POSIX
$sel:createdTime:Experiment' :: Experiment -> POSIX
createdTime} -> POSIX
createdTime) (\s :: Experiment
s@Experiment' {} POSIX
a -> Experiment
s {$sel:createdTime:Experiment' :: POSIX
createdTime = POSIX
a} :: Experiment) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time
experiment_lastUpdatedTime :: Lens.Lens' Experiment Prelude.UTCTime
experiment_lastUpdatedTime :: Lens' Experiment UTCTime
experiment_lastUpdatedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {POSIX
lastUpdatedTime :: POSIX
$sel:lastUpdatedTime:Experiment' :: Experiment -> POSIX
lastUpdatedTime} -> POSIX
lastUpdatedTime) (\s :: Experiment
s@Experiment' {} POSIX
a -> Experiment
s {$sel:lastUpdatedTime:Experiment' :: POSIX
lastUpdatedTime = POSIX
a} :: Experiment) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time
experiment_name :: Lens.Lens' Experiment Prelude.Text
experiment_name :: Lens' Experiment Text
experiment_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {Text
name :: Text
$sel:name:Experiment' :: Experiment -> Text
name} -> Text
name) (\s :: Experiment
s@Experiment' {} Text
a -> Experiment
s {$sel:name:Experiment' :: Text
name = Text
a} :: Experiment)
experiment_status :: Lens.Lens' Experiment ExperimentStatus
experiment_status :: Lens' Experiment ExperimentStatus
experiment_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {ExperimentStatus
status :: ExperimentStatus
$sel:status:Experiment' :: Experiment -> ExperimentStatus
status} -> ExperimentStatus
status) (\s :: Experiment
s@Experiment' {} ExperimentStatus
a -> Experiment
s {$sel:status:Experiment' :: ExperimentStatus
status = ExperimentStatus
a} :: Experiment)
experiment_type :: Lens.Lens' Experiment ExperimentType
experiment_type :: Lens' Experiment ExperimentType
experiment_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Experiment' {ExperimentType
type' :: ExperimentType
$sel:type':Experiment' :: Experiment -> ExperimentType
type'} -> ExperimentType
type') (\s :: Experiment
s@Experiment' {} ExperimentType
a -> Experiment
s {$sel:type':Experiment' :: ExperimentType
type' = ExperimentType
a} :: Experiment)
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 Text
-> Maybe ExperimentExecution
-> Maybe (NonEmpty MetricGoal)
-> Maybe OnlineAbDefinition
-> Maybe Text
-> Maybe Text
-> Maybe Natural
-> Maybe ExperimentSchedule
-> Maybe Text
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Maybe (NonEmpty Treatment)
-> Text
-> POSIX
-> POSIX
-> Text
-> ExperimentStatus
-> ExperimentType
-> 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
"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
"execution")
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
"metricGoals")
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
"onlineAbDefinition")
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
"project")
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
"randomizationSalt")
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
"samplingRate")
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
"schedule")
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
"segment")
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
"statusReason")
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
"treatments")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"arn")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"createdTime")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"lastUpdatedTime")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"name")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"status")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"type")
)
instance Prelude.Hashable Experiment where
hashWithSalt :: Int -> Experiment -> Int
hashWithSalt Int
_salt Experiment' {Maybe Natural
Maybe (NonEmpty MetricGoal)
Maybe (NonEmpty Treatment)
Maybe Text
Maybe (HashMap Text Text)
Maybe ExperimentExecution
Maybe ExperimentSchedule
Maybe OnlineAbDefinition
Text
POSIX
ExperimentStatus
ExperimentType
type' :: ExperimentType
status :: ExperimentStatus
name :: Text
lastUpdatedTime :: POSIX
createdTime :: POSIX
arn :: Text
treatments :: Maybe (NonEmpty Treatment)
tags :: Maybe (HashMap Text Text)
statusReason :: Maybe Text
segment :: Maybe Text
schedule :: Maybe ExperimentSchedule
samplingRate :: Maybe Natural
randomizationSalt :: Maybe Text
project :: Maybe Text
onlineAbDefinition :: Maybe OnlineAbDefinition
metricGoals :: Maybe (NonEmpty MetricGoal)
execution :: Maybe ExperimentExecution
description :: Maybe Text
$sel:type':Experiment' :: Experiment -> ExperimentType
$sel:status:Experiment' :: Experiment -> ExperimentStatus
$sel:name:Experiment' :: Experiment -> Text
$sel:lastUpdatedTime:Experiment' :: Experiment -> POSIX
$sel:createdTime:Experiment' :: Experiment -> POSIX
$sel:arn:Experiment' :: Experiment -> Text
$sel:treatments:Experiment' :: Experiment -> Maybe (NonEmpty Treatment)
$sel:tags:Experiment' :: Experiment -> Maybe (HashMap Text Text)
$sel:statusReason:Experiment' :: Experiment -> Maybe Text
$sel:segment:Experiment' :: Experiment -> Maybe Text
$sel:schedule:Experiment' :: Experiment -> Maybe ExperimentSchedule
$sel:samplingRate:Experiment' :: Experiment -> Maybe Natural
$sel:randomizationSalt:Experiment' :: Experiment -> Maybe Text
$sel:project:Experiment' :: Experiment -> Maybe Text
$sel:onlineAbDefinition:Experiment' :: Experiment -> Maybe OnlineAbDefinition
$sel:metricGoals:Experiment' :: Experiment -> Maybe (NonEmpty MetricGoal)
$sel:execution:Experiment' :: Experiment -> Maybe ExperimentExecution
$sel:description:Experiment' :: Experiment -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ExperimentExecution
execution
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty MetricGoal)
metricGoals
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe OnlineAbDefinition
onlineAbDefinition
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
project
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
randomizationSalt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
samplingRate
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ExperimentSchedule
schedule
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
segment
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
statusReason
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Treatment)
treatments
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
arn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` POSIX
createdTime
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` POSIX
lastUpdatedTime
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ExperimentStatus
status
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ExperimentType
type'
instance Prelude.NFData Experiment where
rnf :: Experiment -> ()
rnf Experiment' {Maybe Natural
Maybe (NonEmpty MetricGoal)
Maybe (NonEmpty Treatment)
Maybe Text
Maybe (HashMap Text Text)
Maybe ExperimentExecution
Maybe ExperimentSchedule
Maybe OnlineAbDefinition
Text
POSIX
ExperimentStatus
ExperimentType
type' :: ExperimentType
status :: ExperimentStatus
name :: Text
lastUpdatedTime :: POSIX
createdTime :: POSIX
arn :: Text
treatments :: Maybe (NonEmpty Treatment)
tags :: Maybe (HashMap Text Text)
statusReason :: Maybe Text
segment :: Maybe Text
schedule :: Maybe ExperimentSchedule
samplingRate :: Maybe Natural
randomizationSalt :: Maybe Text
project :: Maybe Text
onlineAbDefinition :: Maybe OnlineAbDefinition
metricGoals :: Maybe (NonEmpty MetricGoal)
execution :: Maybe ExperimentExecution
description :: Maybe Text
$sel:type':Experiment' :: Experiment -> ExperimentType
$sel:status:Experiment' :: Experiment -> ExperimentStatus
$sel:name:Experiment' :: Experiment -> Text
$sel:lastUpdatedTime:Experiment' :: Experiment -> POSIX
$sel:createdTime:Experiment' :: Experiment -> POSIX
$sel:arn:Experiment' :: Experiment -> Text
$sel:treatments:Experiment' :: Experiment -> Maybe (NonEmpty Treatment)
$sel:tags:Experiment' :: Experiment -> Maybe (HashMap Text Text)
$sel:statusReason:Experiment' :: Experiment -> Maybe Text
$sel:segment:Experiment' :: Experiment -> Maybe Text
$sel:schedule:Experiment' :: Experiment -> Maybe ExperimentSchedule
$sel:samplingRate:Experiment' :: Experiment -> Maybe Natural
$sel:randomizationSalt:Experiment' :: Experiment -> Maybe Text
$sel:project:Experiment' :: Experiment -> Maybe Text
$sel:onlineAbDefinition:Experiment' :: Experiment -> Maybe OnlineAbDefinition
$sel:metricGoals:Experiment' :: Experiment -> Maybe (NonEmpty MetricGoal)
$sel:execution:Experiment' :: Experiment -> Maybe ExperimentExecution
$sel:description:Experiment' :: Experiment -> Maybe Text
..} =
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 ExperimentExecution
execution
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty MetricGoal)
metricGoals
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe OnlineAbDefinition
onlineAbDefinition
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
project
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
randomizationSalt
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
samplingRate
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ExperimentSchedule
schedule
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
segment
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
statusReason
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Treatment)
treatments
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
arn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf POSIX
createdTime
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf POSIX
lastUpdatedTime
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
name
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ExperimentStatus
status
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ExperimentType
type'