{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.Evidently.UpdateExperiment
(
UpdateExperiment (..),
newUpdateExperiment,
updateExperiment_description,
updateExperiment_metricGoals,
updateExperiment_onlineAbConfig,
updateExperiment_randomizationSalt,
updateExperiment_removeSegment,
updateExperiment_samplingRate,
updateExperiment_segment,
updateExperiment_treatments,
updateExperiment_experiment,
updateExperiment_project,
UpdateExperimentResponse (..),
newUpdateExperimentResponse,
updateExperimentResponse_httpStatus,
updateExperimentResponse_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
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data UpdateExperiment = UpdateExperiment'
{
UpdateExperiment -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
UpdateExperiment -> Maybe (NonEmpty MetricGoalConfig)
metricGoals :: Prelude.Maybe (Prelude.NonEmpty MetricGoalConfig),
UpdateExperiment -> Maybe OnlineAbConfig
onlineAbConfig :: Prelude.Maybe OnlineAbConfig,
UpdateExperiment -> Maybe Text
randomizationSalt :: Prelude.Maybe Prelude.Text,
UpdateExperiment -> Maybe Bool
removeSegment :: Prelude.Maybe Prelude.Bool,
UpdateExperiment -> Maybe Natural
samplingRate :: Prelude.Maybe Prelude.Natural,
UpdateExperiment -> Maybe Text
segment :: Prelude.Maybe Prelude.Text,
UpdateExperiment -> Maybe [TreatmentConfig]
treatments :: Prelude.Maybe [TreatmentConfig],
UpdateExperiment -> Text
experiment :: Prelude.Text,
UpdateExperiment -> Text
project :: Prelude.Text
}
deriving (UpdateExperiment -> UpdateExperiment -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateExperiment -> UpdateExperiment -> Bool
$c/= :: UpdateExperiment -> UpdateExperiment -> Bool
== :: UpdateExperiment -> UpdateExperiment -> Bool
$c== :: UpdateExperiment -> UpdateExperiment -> Bool
Prelude.Eq, ReadPrec [UpdateExperiment]
ReadPrec UpdateExperiment
Int -> ReadS UpdateExperiment
ReadS [UpdateExperiment]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateExperiment]
$creadListPrec :: ReadPrec [UpdateExperiment]
readPrec :: ReadPrec UpdateExperiment
$creadPrec :: ReadPrec UpdateExperiment
readList :: ReadS [UpdateExperiment]
$creadList :: ReadS [UpdateExperiment]
readsPrec :: Int -> ReadS UpdateExperiment
$creadsPrec :: Int -> ReadS UpdateExperiment
Prelude.Read, Int -> UpdateExperiment -> ShowS
[UpdateExperiment] -> ShowS
UpdateExperiment -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateExperiment] -> ShowS
$cshowList :: [UpdateExperiment] -> ShowS
show :: UpdateExperiment -> String
$cshow :: UpdateExperiment -> String
showsPrec :: Int -> UpdateExperiment -> ShowS
$cshowsPrec :: Int -> UpdateExperiment -> ShowS
Prelude.Show, forall x. Rep UpdateExperiment x -> UpdateExperiment
forall x. UpdateExperiment -> Rep UpdateExperiment x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateExperiment x -> UpdateExperiment
$cfrom :: forall x. UpdateExperiment -> Rep UpdateExperiment x
Prelude.Generic)
newUpdateExperiment ::
Prelude.Text ->
Prelude.Text ->
UpdateExperiment
newUpdateExperiment :: Text -> Text -> UpdateExperiment
newUpdateExperiment Text
pExperiment_ Text
pProject_ =
UpdateExperiment'
{ $sel:description:UpdateExperiment' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
$sel:metricGoals:UpdateExperiment' :: Maybe (NonEmpty MetricGoalConfig)
metricGoals = forall a. Maybe a
Prelude.Nothing,
$sel:onlineAbConfig:UpdateExperiment' :: Maybe OnlineAbConfig
onlineAbConfig = forall a. Maybe a
Prelude.Nothing,
$sel:randomizationSalt:UpdateExperiment' :: Maybe Text
randomizationSalt = forall a. Maybe a
Prelude.Nothing,
$sel:removeSegment:UpdateExperiment' :: Maybe Bool
removeSegment = forall a. Maybe a
Prelude.Nothing,
$sel:samplingRate:UpdateExperiment' :: Maybe Natural
samplingRate = forall a. Maybe a
Prelude.Nothing,
$sel:segment:UpdateExperiment' :: Maybe Text
segment = forall a. Maybe a
Prelude.Nothing,
$sel:treatments:UpdateExperiment' :: Maybe [TreatmentConfig]
treatments = forall a. Maybe a
Prelude.Nothing,
$sel:experiment:UpdateExperiment' :: Text
experiment = Text
pExperiment_,
$sel:project:UpdateExperiment' :: Text
project = Text
pProject_
}
updateExperiment_description :: Lens.Lens' UpdateExperiment (Prelude.Maybe Prelude.Text)
updateExperiment_description :: Lens' UpdateExperiment (Maybe Text)
updateExperiment_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateExperiment' {Maybe Text
description :: Maybe Text
$sel:description:UpdateExperiment' :: UpdateExperiment -> Maybe Text
description} -> Maybe Text
description) (\s :: UpdateExperiment
s@UpdateExperiment' {} Maybe Text
a -> UpdateExperiment
s {$sel:description:UpdateExperiment' :: Maybe Text
description = Maybe Text
a} :: UpdateExperiment)
updateExperiment_metricGoals :: Lens.Lens' UpdateExperiment (Prelude.Maybe (Prelude.NonEmpty MetricGoalConfig))
updateExperiment_metricGoals :: Lens' UpdateExperiment (Maybe (NonEmpty MetricGoalConfig))
updateExperiment_metricGoals = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateExperiment' {Maybe (NonEmpty MetricGoalConfig)
metricGoals :: Maybe (NonEmpty MetricGoalConfig)
$sel:metricGoals:UpdateExperiment' :: UpdateExperiment -> Maybe (NonEmpty MetricGoalConfig)
metricGoals} -> Maybe (NonEmpty MetricGoalConfig)
metricGoals) (\s :: UpdateExperiment
s@UpdateExperiment' {} Maybe (NonEmpty MetricGoalConfig)
a -> UpdateExperiment
s {$sel:metricGoals:UpdateExperiment' :: Maybe (NonEmpty MetricGoalConfig)
metricGoals = Maybe (NonEmpty MetricGoalConfig)
a} :: UpdateExperiment) 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
updateExperiment_onlineAbConfig :: Lens.Lens' UpdateExperiment (Prelude.Maybe OnlineAbConfig)
updateExperiment_onlineAbConfig :: Lens' UpdateExperiment (Maybe OnlineAbConfig)
updateExperiment_onlineAbConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateExperiment' {Maybe OnlineAbConfig
onlineAbConfig :: Maybe OnlineAbConfig
$sel:onlineAbConfig:UpdateExperiment' :: UpdateExperiment -> Maybe OnlineAbConfig
onlineAbConfig} -> Maybe OnlineAbConfig
onlineAbConfig) (\s :: UpdateExperiment
s@UpdateExperiment' {} Maybe OnlineAbConfig
a -> UpdateExperiment
s {$sel:onlineAbConfig:UpdateExperiment' :: Maybe OnlineAbConfig
onlineAbConfig = Maybe OnlineAbConfig
a} :: UpdateExperiment)
updateExperiment_randomizationSalt :: Lens.Lens' UpdateExperiment (Prelude.Maybe Prelude.Text)
updateExperiment_randomizationSalt :: Lens' UpdateExperiment (Maybe Text)
updateExperiment_randomizationSalt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateExperiment' {Maybe Text
randomizationSalt :: Maybe Text
$sel:randomizationSalt:UpdateExperiment' :: UpdateExperiment -> Maybe Text
randomizationSalt} -> Maybe Text
randomizationSalt) (\s :: UpdateExperiment
s@UpdateExperiment' {} Maybe Text
a -> UpdateExperiment
s {$sel:randomizationSalt:UpdateExperiment' :: Maybe Text
randomizationSalt = Maybe Text
a} :: UpdateExperiment)
updateExperiment_removeSegment :: Lens.Lens' UpdateExperiment (Prelude.Maybe Prelude.Bool)
updateExperiment_removeSegment :: Lens' UpdateExperiment (Maybe Bool)
updateExperiment_removeSegment = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateExperiment' {Maybe Bool
removeSegment :: Maybe Bool
$sel:removeSegment:UpdateExperiment' :: UpdateExperiment -> Maybe Bool
removeSegment} -> Maybe Bool
removeSegment) (\s :: UpdateExperiment
s@UpdateExperiment' {} Maybe Bool
a -> UpdateExperiment
s {$sel:removeSegment:UpdateExperiment' :: Maybe Bool
removeSegment = Maybe Bool
a} :: UpdateExperiment)
updateExperiment_samplingRate :: Lens.Lens' UpdateExperiment (Prelude.Maybe Prelude.Natural)
updateExperiment_samplingRate :: Lens' UpdateExperiment (Maybe Natural)
updateExperiment_samplingRate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateExperiment' {Maybe Natural
samplingRate :: Maybe Natural
$sel:samplingRate:UpdateExperiment' :: UpdateExperiment -> Maybe Natural
samplingRate} -> Maybe Natural
samplingRate) (\s :: UpdateExperiment
s@UpdateExperiment' {} Maybe Natural
a -> UpdateExperiment
s {$sel:samplingRate:UpdateExperiment' :: Maybe Natural
samplingRate = Maybe Natural
a} :: UpdateExperiment)
updateExperiment_segment :: Lens.Lens' UpdateExperiment (Prelude.Maybe Prelude.Text)
updateExperiment_segment :: Lens' UpdateExperiment (Maybe Text)
updateExperiment_segment = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateExperiment' {Maybe Text
segment :: Maybe Text
$sel:segment:UpdateExperiment' :: UpdateExperiment -> Maybe Text
segment} -> Maybe Text
segment) (\s :: UpdateExperiment
s@UpdateExperiment' {} Maybe Text
a -> UpdateExperiment
s {$sel:segment:UpdateExperiment' :: Maybe Text
segment = Maybe Text
a} :: UpdateExperiment)
updateExperiment_treatments :: Lens.Lens' UpdateExperiment (Prelude.Maybe [TreatmentConfig])
updateExperiment_treatments :: Lens' UpdateExperiment (Maybe [TreatmentConfig])
updateExperiment_treatments = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateExperiment' {Maybe [TreatmentConfig]
treatments :: Maybe [TreatmentConfig]
$sel:treatments:UpdateExperiment' :: UpdateExperiment -> Maybe [TreatmentConfig]
treatments} -> Maybe [TreatmentConfig]
treatments) (\s :: UpdateExperiment
s@UpdateExperiment' {} Maybe [TreatmentConfig]
a -> UpdateExperiment
s {$sel:treatments:UpdateExperiment' :: Maybe [TreatmentConfig]
treatments = Maybe [TreatmentConfig]
a} :: UpdateExperiment) 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
updateExperiment_experiment :: Lens.Lens' UpdateExperiment Prelude.Text
updateExperiment_experiment :: Lens' UpdateExperiment Text
updateExperiment_experiment = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateExperiment' {Text
experiment :: Text
$sel:experiment:UpdateExperiment' :: UpdateExperiment -> Text
experiment} -> Text
experiment) (\s :: UpdateExperiment
s@UpdateExperiment' {} Text
a -> UpdateExperiment
s {$sel:experiment:UpdateExperiment' :: Text
experiment = Text
a} :: UpdateExperiment)
updateExperiment_project :: Lens.Lens' UpdateExperiment Prelude.Text
updateExperiment_project :: Lens' UpdateExperiment Text
updateExperiment_project = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateExperiment' {Text
project :: Text
$sel:project:UpdateExperiment' :: UpdateExperiment -> Text
project} -> Text
project) (\s :: UpdateExperiment
s@UpdateExperiment' {} Text
a -> UpdateExperiment
s {$sel:project:UpdateExperiment' :: Text
project = Text
a} :: UpdateExperiment)
instance Core.AWSRequest UpdateExperiment where
type
AWSResponse UpdateExperiment =
UpdateExperimentResponse
request :: (Service -> Service)
-> UpdateExperiment -> Request UpdateExperiment
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.patchJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdateExperiment
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse UpdateExperiment)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
( \Int
s ResponseHeaders
h Object
x ->
Int -> Experiment -> UpdateExperimentResponse
UpdateExperimentResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"experiment")
)
instance Prelude.Hashable UpdateExperiment where
hashWithSalt :: Int -> UpdateExperiment -> Int
hashWithSalt Int
_salt UpdateExperiment' {Maybe Bool
Maybe Natural
Maybe [TreatmentConfig]
Maybe (NonEmpty MetricGoalConfig)
Maybe Text
Maybe OnlineAbConfig
Text
project :: Text
experiment :: Text
treatments :: Maybe [TreatmentConfig]
segment :: Maybe Text
samplingRate :: Maybe Natural
removeSegment :: Maybe Bool
randomizationSalt :: Maybe Text
onlineAbConfig :: Maybe OnlineAbConfig
metricGoals :: Maybe (NonEmpty MetricGoalConfig)
description :: Maybe Text
$sel:project:UpdateExperiment' :: UpdateExperiment -> Text
$sel:experiment:UpdateExperiment' :: UpdateExperiment -> Text
$sel:treatments:UpdateExperiment' :: UpdateExperiment -> Maybe [TreatmentConfig]
$sel:segment:UpdateExperiment' :: UpdateExperiment -> Maybe Text
$sel:samplingRate:UpdateExperiment' :: UpdateExperiment -> Maybe Natural
$sel:removeSegment:UpdateExperiment' :: UpdateExperiment -> Maybe Bool
$sel:randomizationSalt:UpdateExperiment' :: UpdateExperiment -> Maybe Text
$sel:onlineAbConfig:UpdateExperiment' :: UpdateExperiment -> Maybe OnlineAbConfig
$sel:metricGoals:UpdateExperiment' :: UpdateExperiment -> Maybe (NonEmpty MetricGoalConfig)
$sel:description:UpdateExperiment' :: UpdateExperiment -> 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 (NonEmpty MetricGoalConfig)
metricGoals
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe OnlineAbConfig
onlineAbConfig
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
randomizationSalt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
removeSegment
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
samplingRate
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
segment
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [TreatmentConfig]
treatments
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
experiment
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
project
instance Prelude.NFData UpdateExperiment where
rnf :: UpdateExperiment -> ()
rnf UpdateExperiment' {Maybe Bool
Maybe Natural
Maybe [TreatmentConfig]
Maybe (NonEmpty MetricGoalConfig)
Maybe Text
Maybe OnlineAbConfig
Text
project :: Text
experiment :: Text
treatments :: Maybe [TreatmentConfig]
segment :: Maybe Text
samplingRate :: Maybe Natural
removeSegment :: Maybe Bool
randomizationSalt :: Maybe Text
onlineAbConfig :: Maybe OnlineAbConfig
metricGoals :: Maybe (NonEmpty MetricGoalConfig)
description :: Maybe Text
$sel:project:UpdateExperiment' :: UpdateExperiment -> Text
$sel:experiment:UpdateExperiment' :: UpdateExperiment -> Text
$sel:treatments:UpdateExperiment' :: UpdateExperiment -> Maybe [TreatmentConfig]
$sel:segment:UpdateExperiment' :: UpdateExperiment -> Maybe Text
$sel:samplingRate:UpdateExperiment' :: UpdateExperiment -> Maybe Natural
$sel:removeSegment:UpdateExperiment' :: UpdateExperiment -> Maybe Bool
$sel:randomizationSalt:UpdateExperiment' :: UpdateExperiment -> Maybe Text
$sel:onlineAbConfig:UpdateExperiment' :: UpdateExperiment -> Maybe OnlineAbConfig
$sel:metricGoals:UpdateExperiment' :: UpdateExperiment -> Maybe (NonEmpty MetricGoalConfig)
$sel:description:UpdateExperiment' :: UpdateExperiment -> 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 (NonEmpty MetricGoalConfig)
metricGoals
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe OnlineAbConfig
onlineAbConfig
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 Bool
removeSegment
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 Text
segment
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [TreatmentConfig]
treatments
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
experiment
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
project
instance Data.ToHeaders UpdateExperiment where
toHeaders :: UpdateExperiment -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON UpdateExperiment where
toJSON :: UpdateExperiment -> Value
toJSON UpdateExperiment' {Maybe Bool
Maybe Natural
Maybe [TreatmentConfig]
Maybe (NonEmpty MetricGoalConfig)
Maybe Text
Maybe OnlineAbConfig
Text
project :: Text
experiment :: Text
treatments :: Maybe [TreatmentConfig]
segment :: Maybe Text
samplingRate :: Maybe Natural
removeSegment :: Maybe Bool
randomizationSalt :: Maybe Text
onlineAbConfig :: Maybe OnlineAbConfig
metricGoals :: Maybe (NonEmpty MetricGoalConfig)
description :: Maybe Text
$sel:project:UpdateExperiment' :: UpdateExperiment -> Text
$sel:experiment:UpdateExperiment' :: UpdateExperiment -> Text
$sel:treatments:UpdateExperiment' :: UpdateExperiment -> Maybe [TreatmentConfig]
$sel:segment:UpdateExperiment' :: UpdateExperiment -> Maybe Text
$sel:samplingRate:UpdateExperiment' :: UpdateExperiment -> Maybe Natural
$sel:removeSegment:UpdateExperiment' :: UpdateExperiment -> Maybe Bool
$sel:randomizationSalt:UpdateExperiment' :: UpdateExperiment -> Maybe Text
$sel:onlineAbConfig:UpdateExperiment' :: UpdateExperiment -> Maybe OnlineAbConfig
$sel:metricGoals:UpdateExperiment' :: UpdateExperiment -> Maybe (NonEmpty MetricGoalConfig)
$sel:description:UpdateExperiment' :: UpdateExperiment -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"description" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
description,
(Key
"metricGoals" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (NonEmpty MetricGoalConfig)
metricGoals,
(Key
"onlineAbConfig" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe OnlineAbConfig
onlineAbConfig,
(Key
"randomizationSalt" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
randomizationSalt,
(Key
"removeSegment" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
removeSegment,
(Key
"samplingRate" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
samplingRate,
(Key
"segment" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
segment,
(Key
"treatments" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [TreatmentConfig]
treatments
]
)
instance Data.ToPath UpdateExperiment where
toPath :: UpdateExperiment -> ByteString
toPath UpdateExperiment' {Maybe Bool
Maybe Natural
Maybe [TreatmentConfig]
Maybe (NonEmpty MetricGoalConfig)
Maybe Text
Maybe OnlineAbConfig
Text
project :: Text
experiment :: Text
treatments :: Maybe [TreatmentConfig]
segment :: Maybe Text
samplingRate :: Maybe Natural
removeSegment :: Maybe Bool
randomizationSalt :: Maybe Text
onlineAbConfig :: Maybe OnlineAbConfig
metricGoals :: Maybe (NonEmpty MetricGoalConfig)
description :: Maybe Text
$sel:project:UpdateExperiment' :: UpdateExperiment -> Text
$sel:experiment:UpdateExperiment' :: UpdateExperiment -> Text
$sel:treatments:UpdateExperiment' :: UpdateExperiment -> Maybe [TreatmentConfig]
$sel:segment:UpdateExperiment' :: UpdateExperiment -> Maybe Text
$sel:samplingRate:UpdateExperiment' :: UpdateExperiment -> Maybe Natural
$sel:removeSegment:UpdateExperiment' :: UpdateExperiment -> Maybe Bool
$sel:randomizationSalt:UpdateExperiment' :: UpdateExperiment -> Maybe Text
$sel:onlineAbConfig:UpdateExperiment' :: UpdateExperiment -> Maybe OnlineAbConfig
$sel:metricGoals:UpdateExperiment' :: UpdateExperiment -> Maybe (NonEmpty MetricGoalConfig)
$sel:description:UpdateExperiment' :: UpdateExperiment -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"/projects/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
project,
ByteString
"/experiments/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
experiment
]
instance Data.ToQuery UpdateExperiment where
toQuery :: UpdateExperiment -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data UpdateExperimentResponse = UpdateExperimentResponse'
{
UpdateExperimentResponse -> Int
httpStatus :: Prelude.Int,
UpdateExperimentResponse -> Experiment
experiment :: Experiment
}
deriving (UpdateExperimentResponse -> UpdateExperimentResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateExperimentResponse -> UpdateExperimentResponse -> Bool
$c/= :: UpdateExperimentResponse -> UpdateExperimentResponse -> Bool
== :: UpdateExperimentResponse -> UpdateExperimentResponse -> Bool
$c== :: UpdateExperimentResponse -> UpdateExperimentResponse -> Bool
Prelude.Eq, ReadPrec [UpdateExperimentResponse]
ReadPrec UpdateExperimentResponse
Int -> ReadS UpdateExperimentResponse
ReadS [UpdateExperimentResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateExperimentResponse]
$creadListPrec :: ReadPrec [UpdateExperimentResponse]
readPrec :: ReadPrec UpdateExperimentResponse
$creadPrec :: ReadPrec UpdateExperimentResponse
readList :: ReadS [UpdateExperimentResponse]
$creadList :: ReadS [UpdateExperimentResponse]
readsPrec :: Int -> ReadS UpdateExperimentResponse
$creadsPrec :: Int -> ReadS UpdateExperimentResponse
Prelude.Read, Int -> UpdateExperimentResponse -> ShowS
[UpdateExperimentResponse] -> ShowS
UpdateExperimentResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateExperimentResponse] -> ShowS
$cshowList :: [UpdateExperimentResponse] -> ShowS
show :: UpdateExperimentResponse -> String
$cshow :: UpdateExperimentResponse -> String
showsPrec :: Int -> UpdateExperimentResponse -> ShowS
$cshowsPrec :: Int -> UpdateExperimentResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateExperimentResponse x -> UpdateExperimentResponse
forall x.
UpdateExperimentResponse -> Rep UpdateExperimentResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateExperimentResponse x -> UpdateExperimentResponse
$cfrom :: forall x.
UpdateExperimentResponse -> Rep UpdateExperimentResponse x
Prelude.Generic)
newUpdateExperimentResponse ::
Prelude.Int ->
Experiment ->
UpdateExperimentResponse
newUpdateExperimentResponse :: Int -> Experiment -> UpdateExperimentResponse
newUpdateExperimentResponse Int
pHttpStatus_ Experiment
pExperiment_ =
UpdateExperimentResponse'
{ $sel:httpStatus:UpdateExperimentResponse' :: Int
httpStatus =
Int
pHttpStatus_,
$sel:experiment:UpdateExperimentResponse' :: Experiment
experiment = Experiment
pExperiment_
}
updateExperimentResponse_httpStatus :: Lens.Lens' UpdateExperimentResponse Prelude.Int
updateExperimentResponse_httpStatus :: Lens' UpdateExperimentResponse Int
updateExperimentResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateExperimentResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateExperimentResponse' :: UpdateExperimentResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateExperimentResponse
s@UpdateExperimentResponse' {} Int
a -> UpdateExperimentResponse
s {$sel:httpStatus:UpdateExperimentResponse' :: Int
httpStatus = Int
a} :: UpdateExperimentResponse)
updateExperimentResponse_experiment :: Lens.Lens' UpdateExperimentResponse Experiment
updateExperimentResponse_experiment :: Lens' UpdateExperimentResponse Experiment
updateExperimentResponse_experiment = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateExperimentResponse' {Experiment
experiment :: Experiment
$sel:experiment:UpdateExperimentResponse' :: UpdateExperimentResponse -> Experiment
experiment} -> Experiment
experiment) (\s :: UpdateExperimentResponse
s@UpdateExperimentResponse' {} Experiment
a -> UpdateExperimentResponse
s {$sel:experiment:UpdateExperimentResponse' :: Experiment
experiment = Experiment
a} :: UpdateExperimentResponse)
instance Prelude.NFData UpdateExperimentResponse where
rnf :: UpdateExperimentResponse -> ()
rnf UpdateExperimentResponse' {Int
Experiment
experiment :: Experiment
httpStatus :: Int
$sel:experiment:UpdateExperimentResponse' :: UpdateExperimentResponse -> Experiment
$sel:httpStatus:UpdateExperimentResponse' :: UpdateExperimentResponse -> Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Experiment
experiment