{-# 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.StartExperiment
(
StartExperiment (..),
newStartExperiment,
startExperiment_analysisCompleteTime,
startExperiment_experiment,
startExperiment_project,
StartExperimentResponse (..),
newStartExperimentResponse,
startExperimentResponse_startedTime,
startExperimentResponse_httpStatus,
)
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 StartExperiment = StartExperiment'
{
StartExperiment -> POSIX
analysisCompleteTime :: Data.POSIX,
StartExperiment -> Text
experiment :: Prelude.Text,
StartExperiment -> Text
project :: Prelude.Text
}
deriving (StartExperiment -> StartExperiment -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StartExperiment -> StartExperiment -> Bool
$c/= :: StartExperiment -> StartExperiment -> Bool
== :: StartExperiment -> StartExperiment -> Bool
$c== :: StartExperiment -> StartExperiment -> Bool
Prelude.Eq, ReadPrec [StartExperiment]
ReadPrec StartExperiment
Int -> ReadS StartExperiment
ReadS [StartExperiment]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StartExperiment]
$creadListPrec :: ReadPrec [StartExperiment]
readPrec :: ReadPrec StartExperiment
$creadPrec :: ReadPrec StartExperiment
readList :: ReadS [StartExperiment]
$creadList :: ReadS [StartExperiment]
readsPrec :: Int -> ReadS StartExperiment
$creadsPrec :: Int -> ReadS StartExperiment
Prelude.Read, Int -> StartExperiment -> ShowS
[StartExperiment] -> ShowS
StartExperiment -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StartExperiment] -> ShowS
$cshowList :: [StartExperiment] -> ShowS
show :: StartExperiment -> String
$cshow :: StartExperiment -> String
showsPrec :: Int -> StartExperiment -> ShowS
$cshowsPrec :: Int -> StartExperiment -> ShowS
Prelude.Show, forall x. Rep StartExperiment x -> StartExperiment
forall x. StartExperiment -> Rep StartExperiment x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep StartExperiment x -> StartExperiment
$cfrom :: forall x. StartExperiment -> Rep StartExperiment x
Prelude.Generic)
newStartExperiment ::
Prelude.UTCTime ->
Prelude.Text ->
Prelude.Text ->
StartExperiment
newStartExperiment :: UTCTime -> Text -> Text -> StartExperiment
newStartExperiment
UTCTime
pAnalysisCompleteTime_
Text
pExperiment_
Text
pProject_ =
StartExperiment'
{ $sel:analysisCompleteTime:StartExperiment' :: POSIX
analysisCompleteTime =
forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pAnalysisCompleteTime_,
$sel:experiment:StartExperiment' :: Text
experiment = Text
pExperiment_,
$sel:project:StartExperiment' :: Text
project = Text
pProject_
}
startExperiment_analysisCompleteTime :: Lens.Lens' StartExperiment Prelude.UTCTime
startExperiment_analysisCompleteTime :: Lens' StartExperiment UTCTime
startExperiment_analysisCompleteTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartExperiment' {POSIX
analysisCompleteTime :: POSIX
$sel:analysisCompleteTime:StartExperiment' :: StartExperiment -> POSIX
analysisCompleteTime} -> POSIX
analysisCompleteTime) (\s :: StartExperiment
s@StartExperiment' {} POSIX
a -> StartExperiment
s {$sel:analysisCompleteTime:StartExperiment' :: POSIX
analysisCompleteTime = POSIX
a} :: StartExperiment) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time
startExperiment_experiment :: Lens.Lens' StartExperiment Prelude.Text
startExperiment_experiment :: Lens' StartExperiment Text
startExperiment_experiment = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartExperiment' {Text
experiment :: Text
$sel:experiment:StartExperiment' :: StartExperiment -> Text
experiment} -> Text
experiment) (\s :: StartExperiment
s@StartExperiment' {} Text
a -> StartExperiment
s {$sel:experiment:StartExperiment' :: Text
experiment = Text
a} :: StartExperiment)
startExperiment_project :: Lens.Lens' StartExperiment Prelude.Text
startExperiment_project :: Lens' StartExperiment Text
startExperiment_project = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartExperiment' {Text
project :: Text
$sel:project:StartExperiment' :: StartExperiment -> Text
project} -> Text
project) (\s :: StartExperiment
s@StartExperiment' {} Text
a -> StartExperiment
s {$sel:project:StartExperiment' :: Text
project = Text
a} :: StartExperiment)
instance Core.AWSRequest StartExperiment where
type
AWSResponse StartExperiment =
StartExperimentResponse
request :: (Service -> Service) -> StartExperiment -> Request StartExperiment
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy StartExperiment
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse StartExperiment)))
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 ->
Maybe POSIX -> Int -> StartExperimentResponse
StartExperimentResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"startedTime")
forall (f :: * -> *) a b. Applicative f => 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))
)
instance Prelude.Hashable StartExperiment where
hashWithSalt :: Int -> StartExperiment -> Int
hashWithSalt Int
_salt StartExperiment' {Text
POSIX
project :: Text
experiment :: Text
analysisCompleteTime :: POSIX
$sel:project:StartExperiment' :: StartExperiment -> Text
$sel:experiment:StartExperiment' :: StartExperiment -> Text
$sel:analysisCompleteTime:StartExperiment' :: StartExperiment -> POSIX
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` POSIX
analysisCompleteTime
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 StartExperiment where
rnf :: StartExperiment -> ()
rnf StartExperiment' {Text
POSIX
project :: Text
experiment :: Text
analysisCompleteTime :: POSIX
$sel:project:StartExperiment' :: StartExperiment -> Text
$sel:experiment:StartExperiment' :: StartExperiment -> Text
$sel:analysisCompleteTime:StartExperiment' :: StartExperiment -> POSIX
..} =
forall a. NFData a => a -> ()
Prelude.rnf POSIX
analysisCompleteTime
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 StartExperiment where
toHeaders :: StartExperiment -> 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 StartExperiment where
toJSON :: StartExperiment -> Value
toJSON StartExperiment' {Text
POSIX
project :: Text
experiment :: Text
analysisCompleteTime :: POSIX
$sel:project:StartExperiment' :: StartExperiment -> Text
$sel:experiment:StartExperiment' :: StartExperiment -> Text
$sel:analysisCompleteTime:StartExperiment' :: StartExperiment -> POSIX
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just
( Key
"analysisCompleteTime"
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= POSIX
analysisCompleteTime
)
]
)
instance Data.ToPath StartExperiment where
toPath :: StartExperiment -> ByteString
toPath StartExperiment' {Text
POSIX
project :: Text
experiment :: Text
analysisCompleteTime :: POSIX
$sel:project:StartExperiment' :: StartExperiment -> Text
$sel:experiment:StartExperiment' :: StartExperiment -> Text
$sel:analysisCompleteTime:StartExperiment' :: StartExperiment -> POSIX
..} =
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,
ByteString
"/start"
]
instance Data.ToQuery StartExperiment where
toQuery :: StartExperiment -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data StartExperimentResponse = StartExperimentResponse'
{
StartExperimentResponse -> Maybe POSIX
startedTime :: Prelude.Maybe Data.POSIX,
StartExperimentResponse -> Int
httpStatus :: Prelude.Int
}
deriving (StartExperimentResponse -> StartExperimentResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StartExperimentResponse -> StartExperimentResponse -> Bool
$c/= :: StartExperimentResponse -> StartExperimentResponse -> Bool
== :: StartExperimentResponse -> StartExperimentResponse -> Bool
$c== :: StartExperimentResponse -> StartExperimentResponse -> Bool
Prelude.Eq, ReadPrec [StartExperimentResponse]
ReadPrec StartExperimentResponse
Int -> ReadS StartExperimentResponse
ReadS [StartExperimentResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StartExperimentResponse]
$creadListPrec :: ReadPrec [StartExperimentResponse]
readPrec :: ReadPrec StartExperimentResponse
$creadPrec :: ReadPrec StartExperimentResponse
readList :: ReadS [StartExperimentResponse]
$creadList :: ReadS [StartExperimentResponse]
readsPrec :: Int -> ReadS StartExperimentResponse
$creadsPrec :: Int -> ReadS StartExperimentResponse
Prelude.Read, Int -> StartExperimentResponse -> ShowS
[StartExperimentResponse] -> ShowS
StartExperimentResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StartExperimentResponse] -> ShowS
$cshowList :: [StartExperimentResponse] -> ShowS
show :: StartExperimentResponse -> String
$cshow :: StartExperimentResponse -> String
showsPrec :: Int -> StartExperimentResponse -> ShowS
$cshowsPrec :: Int -> StartExperimentResponse -> ShowS
Prelude.Show, forall x. Rep StartExperimentResponse x -> StartExperimentResponse
forall x. StartExperimentResponse -> Rep StartExperimentResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep StartExperimentResponse x -> StartExperimentResponse
$cfrom :: forall x. StartExperimentResponse -> Rep StartExperimentResponse x
Prelude.Generic)
newStartExperimentResponse ::
Prelude.Int ->
StartExperimentResponse
newStartExperimentResponse :: Int -> StartExperimentResponse
newStartExperimentResponse Int
pHttpStatus_ =
StartExperimentResponse'
{ $sel:startedTime:StartExperimentResponse' :: Maybe POSIX
startedTime =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:StartExperimentResponse' :: Int
httpStatus = Int
pHttpStatus_
}
startExperimentResponse_startedTime :: Lens.Lens' StartExperimentResponse (Prelude.Maybe Prelude.UTCTime)
startExperimentResponse_startedTime :: Lens' StartExperimentResponse (Maybe UTCTime)
startExperimentResponse_startedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartExperimentResponse' {Maybe POSIX
startedTime :: Maybe POSIX
$sel:startedTime:StartExperimentResponse' :: StartExperimentResponse -> Maybe POSIX
startedTime} -> Maybe POSIX
startedTime) (\s :: StartExperimentResponse
s@StartExperimentResponse' {} Maybe POSIX
a -> StartExperimentResponse
s {$sel:startedTime:StartExperimentResponse' :: Maybe POSIX
startedTime = Maybe POSIX
a} :: StartExperimentResponse) 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
startExperimentResponse_httpStatus :: Lens.Lens' StartExperimentResponse Prelude.Int
startExperimentResponse_httpStatus :: Lens' StartExperimentResponse Int
startExperimentResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartExperimentResponse' {Int
httpStatus :: Int
$sel:httpStatus:StartExperimentResponse' :: StartExperimentResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: StartExperimentResponse
s@StartExperimentResponse' {} Int
a -> StartExperimentResponse
s {$sel:httpStatus:StartExperimentResponse' :: Int
httpStatus = Int
a} :: StartExperimentResponse)
instance Prelude.NFData StartExperimentResponse where
rnf :: StartExperimentResponse -> ()
rnf StartExperimentResponse' {Int
Maybe POSIX
httpStatus :: Int
startedTime :: Maybe POSIX
$sel:httpStatus:StartExperimentResponse' :: StartExperimentResponse -> Int
$sel:startedTime:StartExperimentResponse' :: StartExperimentResponse -> Maybe POSIX
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
startedTime
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus