{-# 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.GamesParks.CreateStage
(
CreateStage (..),
newCreateStage,
createStage_clientToken,
createStage_description,
createStage_tags,
createStage_gameName,
createStage_role,
createStage_stageName,
CreateStageResponse (..),
newCreateStageResponse,
createStageResponse_stage,
createStageResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.GamesParks.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateStage = CreateStage'
{
CreateStage -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
CreateStage -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
CreateStage -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
CreateStage -> Text
gameName :: Prelude.Text,
CreateStage -> Text
role' :: Prelude.Text,
CreateStage -> Text
stageName :: Prelude.Text
}
deriving (CreateStage -> CreateStage -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateStage -> CreateStage -> Bool
$c/= :: CreateStage -> CreateStage -> Bool
== :: CreateStage -> CreateStage -> Bool
$c== :: CreateStage -> CreateStage -> Bool
Prelude.Eq, ReadPrec [CreateStage]
ReadPrec CreateStage
Int -> ReadS CreateStage
ReadS [CreateStage]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateStage]
$creadListPrec :: ReadPrec [CreateStage]
readPrec :: ReadPrec CreateStage
$creadPrec :: ReadPrec CreateStage
readList :: ReadS [CreateStage]
$creadList :: ReadS [CreateStage]
readsPrec :: Int -> ReadS CreateStage
$creadsPrec :: Int -> ReadS CreateStage
Prelude.Read, Int -> CreateStage -> ShowS
[CreateStage] -> ShowS
CreateStage -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateStage] -> ShowS
$cshowList :: [CreateStage] -> ShowS
show :: CreateStage -> String
$cshow :: CreateStage -> String
showsPrec :: Int -> CreateStage -> ShowS
$cshowsPrec :: Int -> CreateStage -> ShowS
Prelude.Show, forall x. Rep CreateStage x -> CreateStage
forall x. CreateStage -> Rep CreateStage x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateStage x -> CreateStage
$cfrom :: forall x. CreateStage -> Rep CreateStage x
Prelude.Generic)
newCreateStage ::
Prelude.Text ->
Prelude.Text ->
Prelude.Text ->
CreateStage
newCreateStage :: Text -> Text -> Text -> CreateStage
newCreateStage Text
pGameName_ Text
pRole_ Text
pStageName_ =
CreateStage'
{ $sel:clientToken:CreateStage' :: Maybe Text
clientToken = forall a. Maybe a
Prelude.Nothing,
$sel:description:CreateStage' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
$sel:tags:CreateStage' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
$sel:gameName:CreateStage' :: Text
gameName = Text
pGameName_,
$sel:role':CreateStage' :: Text
role' = Text
pRole_,
$sel:stageName:CreateStage' :: Text
stageName = Text
pStageName_
}
createStage_clientToken :: Lens.Lens' CreateStage (Prelude.Maybe Prelude.Text)
createStage_clientToken :: Lens' CreateStage (Maybe Text)
createStage_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStage' {Maybe Text
clientToken :: Maybe Text
$sel:clientToken:CreateStage' :: CreateStage -> Maybe Text
clientToken} -> Maybe Text
clientToken) (\s :: CreateStage
s@CreateStage' {} Maybe Text
a -> CreateStage
s {$sel:clientToken:CreateStage' :: Maybe Text
clientToken = Maybe Text
a} :: CreateStage)
createStage_description :: Lens.Lens' CreateStage (Prelude.Maybe Prelude.Text)
createStage_description :: Lens' CreateStage (Maybe Text)
createStage_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStage' {Maybe Text
description :: Maybe Text
$sel:description:CreateStage' :: CreateStage -> Maybe Text
description} -> Maybe Text
description) (\s :: CreateStage
s@CreateStage' {} Maybe Text
a -> CreateStage
s {$sel:description:CreateStage' :: Maybe Text
description = Maybe Text
a} :: CreateStage)
createStage_tags :: Lens.Lens' CreateStage (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
createStage_tags :: Lens' CreateStage (Maybe (HashMap Text Text))
createStage_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStage' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:CreateStage' :: CreateStage -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: CreateStage
s@CreateStage' {} Maybe (HashMap Text Text)
a -> CreateStage
s {$sel:tags:CreateStage' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: CreateStage) 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
createStage_gameName :: Lens.Lens' CreateStage Prelude.Text
createStage_gameName :: Lens' CreateStage Text
createStage_gameName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStage' {Text
gameName :: Text
$sel:gameName:CreateStage' :: CreateStage -> Text
gameName} -> Text
gameName) (\s :: CreateStage
s@CreateStage' {} Text
a -> CreateStage
s {$sel:gameName:CreateStage' :: Text
gameName = Text
a} :: CreateStage)
createStage_role :: Lens.Lens' CreateStage Prelude.Text
createStage_role :: Lens' CreateStage Text
createStage_role = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStage' {Text
role' :: Text
$sel:role':CreateStage' :: CreateStage -> Text
role'} -> Text
role') (\s :: CreateStage
s@CreateStage' {} Text
a -> CreateStage
s {$sel:role':CreateStage' :: Text
role' = Text
a} :: CreateStage)
createStage_stageName :: Lens.Lens' CreateStage Prelude.Text
createStage_stageName :: Lens' CreateStage Text
createStage_stageName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStage' {Text
stageName :: Text
$sel:stageName:CreateStage' :: CreateStage -> Text
stageName} -> Text
stageName) (\s :: CreateStage
s@CreateStage' {} Text
a -> CreateStage
s {$sel:stageName:CreateStage' :: Text
stageName = Text
a} :: CreateStage)
instance Core.AWSRequest CreateStage where
type AWSResponse CreateStage = CreateStageResponse
request :: (Service -> Service) -> CreateStage -> Request CreateStage
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 CreateStage
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateStage)))
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 StageDetails -> Int -> CreateStageResponse
CreateStageResponse'
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
"Stage")
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 CreateStage where
hashWithSalt :: Int -> CreateStage -> Int
hashWithSalt Int
_salt CreateStage' {Maybe Text
Maybe (HashMap Text Text)
Text
stageName :: Text
role' :: Text
gameName :: Text
tags :: Maybe (HashMap Text Text)
description :: Maybe Text
clientToken :: Maybe Text
$sel:stageName:CreateStage' :: CreateStage -> Text
$sel:role':CreateStage' :: CreateStage -> Text
$sel:gameName:CreateStage' :: CreateStage -> Text
$sel:tags:CreateStage' :: CreateStage -> Maybe (HashMap Text Text)
$sel:description:CreateStage' :: CreateStage -> Maybe Text
$sel:clientToken:CreateStage' :: CreateStage -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clientToken
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
gameName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
role'
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
stageName
instance Prelude.NFData CreateStage where
rnf :: CreateStage -> ()
rnf CreateStage' {Maybe Text
Maybe (HashMap Text Text)
Text
stageName :: Text
role' :: Text
gameName :: Text
tags :: Maybe (HashMap Text Text)
description :: Maybe Text
clientToken :: Maybe Text
$sel:stageName:CreateStage' :: CreateStage -> Text
$sel:role':CreateStage' :: CreateStage -> Text
$sel:gameName:CreateStage' :: CreateStage -> Text
$sel:tags:CreateStage' :: CreateStage -> Maybe (HashMap Text Text)
$sel:description:CreateStage' :: CreateStage -> Maybe Text
$sel:clientToken:CreateStage' :: CreateStage -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientToken
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 (HashMap Text Text)
tags
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
gameName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
role'
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
stageName
instance Data.ToHeaders CreateStage where
toHeaders :: CreateStage -> 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 CreateStage where
toJSON :: CreateStage -> Value
toJSON CreateStage' {Maybe Text
Maybe (HashMap Text Text)
Text
stageName :: Text
role' :: Text
gameName :: Text
tags :: Maybe (HashMap Text Text)
description :: Maybe Text
clientToken :: Maybe Text
$sel:stageName:CreateStage' :: CreateStage -> Text
$sel:role':CreateStage' :: CreateStage -> Text
$sel:gameName:CreateStage' :: CreateStage -> Text
$sel:tags:CreateStage' :: CreateStage -> Maybe (HashMap Text Text)
$sel:description:CreateStage' :: CreateStage -> Maybe Text
$sel:clientToken:CreateStage' :: CreateStage -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"ClientToken" 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
clientToken,
(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
"Tags" 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 (HashMap Text Text)
tags,
forall a. a -> Maybe a
Prelude.Just (Key
"Role" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
role'),
forall a. a -> Maybe a
Prelude.Just (Key
"StageName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
stageName)
]
)
instance Data.ToPath CreateStage where
toPath :: CreateStage -> ByteString
toPath CreateStage' {Maybe Text
Maybe (HashMap Text Text)
Text
stageName :: Text
role' :: Text
gameName :: Text
tags :: Maybe (HashMap Text Text)
description :: Maybe Text
clientToken :: Maybe Text
$sel:stageName:CreateStage' :: CreateStage -> Text
$sel:role':CreateStage' :: CreateStage -> Text
$sel:gameName:CreateStage' :: CreateStage -> Text
$sel:tags:CreateStage' :: CreateStage -> Maybe (HashMap Text Text)
$sel:description:CreateStage' :: CreateStage -> Maybe Text
$sel:clientToken:CreateStage' :: CreateStage -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ByteString
"/game/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
gameName, ByteString
"/stage"]
instance Data.ToQuery CreateStage where
toQuery :: CreateStage -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateStageResponse = CreateStageResponse'
{
CreateStageResponse -> Maybe StageDetails
stage :: Prelude.Maybe StageDetails,
CreateStageResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateStageResponse -> CreateStageResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateStageResponse -> CreateStageResponse -> Bool
$c/= :: CreateStageResponse -> CreateStageResponse -> Bool
== :: CreateStageResponse -> CreateStageResponse -> Bool
$c== :: CreateStageResponse -> CreateStageResponse -> Bool
Prelude.Eq, ReadPrec [CreateStageResponse]
ReadPrec CreateStageResponse
Int -> ReadS CreateStageResponse
ReadS [CreateStageResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateStageResponse]
$creadListPrec :: ReadPrec [CreateStageResponse]
readPrec :: ReadPrec CreateStageResponse
$creadPrec :: ReadPrec CreateStageResponse
readList :: ReadS [CreateStageResponse]
$creadList :: ReadS [CreateStageResponse]
readsPrec :: Int -> ReadS CreateStageResponse
$creadsPrec :: Int -> ReadS CreateStageResponse
Prelude.Read, Int -> CreateStageResponse -> ShowS
[CreateStageResponse] -> ShowS
CreateStageResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateStageResponse] -> ShowS
$cshowList :: [CreateStageResponse] -> ShowS
show :: CreateStageResponse -> String
$cshow :: CreateStageResponse -> String
showsPrec :: Int -> CreateStageResponse -> ShowS
$cshowsPrec :: Int -> CreateStageResponse -> ShowS
Prelude.Show, forall x. Rep CreateStageResponse x -> CreateStageResponse
forall x. CreateStageResponse -> Rep CreateStageResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateStageResponse x -> CreateStageResponse
$cfrom :: forall x. CreateStageResponse -> Rep CreateStageResponse x
Prelude.Generic)
newCreateStageResponse ::
Prelude.Int ->
CreateStageResponse
newCreateStageResponse :: Int -> CreateStageResponse
newCreateStageResponse Int
pHttpStatus_ =
CreateStageResponse'
{ $sel:stage:CreateStageResponse' :: Maybe StageDetails
stage = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateStageResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createStageResponse_stage :: Lens.Lens' CreateStageResponse (Prelude.Maybe StageDetails)
createStageResponse_stage :: Lens' CreateStageResponse (Maybe StageDetails)
createStageResponse_stage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStageResponse' {Maybe StageDetails
stage :: Maybe StageDetails
$sel:stage:CreateStageResponse' :: CreateStageResponse -> Maybe StageDetails
stage} -> Maybe StageDetails
stage) (\s :: CreateStageResponse
s@CreateStageResponse' {} Maybe StageDetails
a -> CreateStageResponse
s {$sel:stage:CreateStageResponse' :: Maybe StageDetails
stage = Maybe StageDetails
a} :: CreateStageResponse)
createStageResponse_httpStatus :: Lens.Lens' CreateStageResponse Prelude.Int
createStageResponse_httpStatus :: Lens' CreateStageResponse Int
createStageResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateStageResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateStageResponse' :: CreateStageResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateStageResponse
s@CreateStageResponse' {} Int
a -> CreateStageResponse
s {$sel:httpStatus:CreateStageResponse' :: Int
httpStatus = Int
a} :: CreateStageResponse)
instance Prelude.NFData CreateStageResponse where
rnf :: CreateStageResponse -> ()
rnf CreateStageResponse' {Int
Maybe StageDetails
httpStatus :: Int
stage :: Maybe StageDetails
$sel:httpStatus:CreateStageResponse' :: CreateStageResponse -> Int
$sel:stage:CreateStageResponse' :: CreateStageResponse -> Maybe StageDetails
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe StageDetails
stage
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus