{-# 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.GameLift.CreateGameServerGroup
(
CreateGameServerGroup (..),
newCreateGameServerGroup,
createGameServerGroup_autoScalingPolicy,
createGameServerGroup_balancingStrategy,
createGameServerGroup_gameServerProtectionPolicy,
createGameServerGroup_tags,
createGameServerGroup_vpcSubnets,
createGameServerGroup_gameServerGroupName,
createGameServerGroup_roleArn,
createGameServerGroup_minSize,
createGameServerGroup_maxSize,
createGameServerGroup_launchTemplate,
createGameServerGroup_instanceDefinitions,
CreateGameServerGroupResponse (..),
newCreateGameServerGroupResponse,
createGameServerGroupResponse_gameServerGroup,
createGameServerGroupResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.GameLift.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateGameServerGroup = CreateGameServerGroup'
{
CreateGameServerGroup -> Maybe GameServerGroupAutoScalingPolicy
autoScalingPolicy :: Prelude.Maybe GameServerGroupAutoScalingPolicy,
CreateGameServerGroup -> Maybe BalancingStrategy
balancingStrategy :: Prelude.Maybe BalancingStrategy,
CreateGameServerGroup -> Maybe GameServerProtectionPolicy
gameServerProtectionPolicy :: Prelude.Maybe GameServerProtectionPolicy,
CreateGameServerGroup -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
CreateGameServerGroup -> Maybe (NonEmpty Text)
vpcSubnets :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),
CreateGameServerGroup -> Text
gameServerGroupName :: Prelude.Text,
CreateGameServerGroup -> Text
roleArn :: Prelude.Text,
CreateGameServerGroup -> Natural
minSize :: Prelude.Natural,
CreateGameServerGroup -> Natural
maxSize :: Prelude.Natural,
CreateGameServerGroup -> LaunchTemplateSpecification
launchTemplate :: LaunchTemplateSpecification,
CreateGameServerGroup -> NonEmpty InstanceDefinition
instanceDefinitions :: Prelude.NonEmpty InstanceDefinition
}
deriving (CreateGameServerGroup -> CreateGameServerGroup -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateGameServerGroup -> CreateGameServerGroup -> Bool
$c/= :: CreateGameServerGroup -> CreateGameServerGroup -> Bool
== :: CreateGameServerGroup -> CreateGameServerGroup -> Bool
$c== :: CreateGameServerGroup -> CreateGameServerGroup -> Bool
Prelude.Eq, ReadPrec [CreateGameServerGroup]
ReadPrec CreateGameServerGroup
Int -> ReadS CreateGameServerGroup
ReadS [CreateGameServerGroup]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateGameServerGroup]
$creadListPrec :: ReadPrec [CreateGameServerGroup]
readPrec :: ReadPrec CreateGameServerGroup
$creadPrec :: ReadPrec CreateGameServerGroup
readList :: ReadS [CreateGameServerGroup]
$creadList :: ReadS [CreateGameServerGroup]
readsPrec :: Int -> ReadS CreateGameServerGroup
$creadsPrec :: Int -> ReadS CreateGameServerGroup
Prelude.Read, Int -> CreateGameServerGroup -> ShowS
[CreateGameServerGroup] -> ShowS
CreateGameServerGroup -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateGameServerGroup] -> ShowS
$cshowList :: [CreateGameServerGroup] -> ShowS
show :: CreateGameServerGroup -> String
$cshow :: CreateGameServerGroup -> String
showsPrec :: Int -> CreateGameServerGroup -> ShowS
$cshowsPrec :: Int -> CreateGameServerGroup -> ShowS
Prelude.Show, forall x. Rep CreateGameServerGroup x -> CreateGameServerGroup
forall x. CreateGameServerGroup -> Rep CreateGameServerGroup x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateGameServerGroup x -> CreateGameServerGroup
$cfrom :: forall x. CreateGameServerGroup -> Rep CreateGameServerGroup x
Prelude.Generic)
newCreateGameServerGroup ::
Prelude.Text ->
Prelude.Text ->
Prelude.Natural ->
Prelude.Natural ->
LaunchTemplateSpecification ->
Prelude.NonEmpty InstanceDefinition ->
CreateGameServerGroup
newCreateGameServerGroup :: Text
-> Text
-> Natural
-> Natural
-> LaunchTemplateSpecification
-> NonEmpty InstanceDefinition
-> CreateGameServerGroup
newCreateGameServerGroup
Text
pGameServerGroupName_
Text
pRoleArn_
Natural
pMinSize_
Natural
pMaxSize_
LaunchTemplateSpecification
pLaunchTemplate_
NonEmpty InstanceDefinition
pInstanceDefinitions_ =
CreateGameServerGroup'
{ $sel:autoScalingPolicy:CreateGameServerGroup' :: Maybe GameServerGroupAutoScalingPolicy
autoScalingPolicy =
forall a. Maybe a
Prelude.Nothing,
$sel:balancingStrategy:CreateGameServerGroup' :: Maybe BalancingStrategy
balancingStrategy = forall a. Maybe a
Prelude.Nothing,
$sel:gameServerProtectionPolicy:CreateGameServerGroup' :: Maybe GameServerProtectionPolicy
gameServerProtectionPolicy = forall a. Maybe a
Prelude.Nothing,
$sel:tags:CreateGameServerGroup' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
$sel:vpcSubnets:CreateGameServerGroup' :: Maybe (NonEmpty Text)
vpcSubnets = forall a. Maybe a
Prelude.Nothing,
$sel:gameServerGroupName:CreateGameServerGroup' :: Text
gameServerGroupName = Text
pGameServerGroupName_,
$sel:roleArn:CreateGameServerGroup' :: Text
roleArn = Text
pRoleArn_,
$sel:minSize:CreateGameServerGroup' :: Natural
minSize = Natural
pMinSize_,
$sel:maxSize:CreateGameServerGroup' :: Natural
maxSize = Natural
pMaxSize_,
$sel:launchTemplate:CreateGameServerGroup' :: LaunchTemplateSpecification
launchTemplate = LaunchTemplateSpecification
pLaunchTemplate_,
$sel:instanceDefinitions:CreateGameServerGroup' :: NonEmpty InstanceDefinition
instanceDefinitions =
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced forall t b. AReview t b -> b -> t
Lens.# NonEmpty InstanceDefinition
pInstanceDefinitions_
}
createGameServerGroup_autoScalingPolicy :: Lens.Lens' CreateGameServerGroup (Prelude.Maybe GameServerGroupAutoScalingPolicy)
createGameServerGroup_autoScalingPolicy :: Lens'
CreateGameServerGroup (Maybe GameServerGroupAutoScalingPolicy)
createGameServerGroup_autoScalingPolicy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGameServerGroup' {Maybe GameServerGroupAutoScalingPolicy
autoScalingPolicy :: Maybe GameServerGroupAutoScalingPolicy
$sel:autoScalingPolicy:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe GameServerGroupAutoScalingPolicy
autoScalingPolicy} -> Maybe GameServerGroupAutoScalingPolicy
autoScalingPolicy) (\s :: CreateGameServerGroup
s@CreateGameServerGroup' {} Maybe GameServerGroupAutoScalingPolicy
a -> CreateGameServerGroup
s {$sel:autoScalingPolicy:CreateGameServerGroup' :: Maybe GameServerGroupAutoScalingPolicy
autoScalingPolicy = Maybe GameServerGroupAutoScalingPolicy
a} :: CreateGameServerGroup)
createGameServerGroup_balancingStrategy :: Lens.Lens' CreateGameServerGroup (Prelude.Maybe BalancingStrategy)
createGameServerGroup_balancingStrategy :: Lens' CreateGameServerGroup (Maybe BalancingStrategy)
createGameServerGroup_balancingStrategy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGameServerGroup' {Maybe BalancingStrategy
balancingStrategy :: Maybe BalancingStrategy
$sel:balancingStrategy:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe BalancingStrategy
balancingStrategy} -> Maybe BalancingStrategy
balancingStrategy) (\s :: CreateGameServerGroup
s@CreateGameServerGroup' {} Maybe BalancingStrategy
a -> CreateGameServerGroup
s {$sel:balancingStrategy:CreateGameServerGroup' :: Maybe BalancingStrategy
balancingStrategy = Maybe BalancingStrategy
a} :: CreateGameServerGroup)
createGameServerGroup_gameServerProtectionPolicy :: Lens.Lens' CreateGameServerGroup (Prelude.Maybe GameServerProtectionPolicy)
createGameServerGroup_gameServerProtectionPolicy :: Lens' CreateGameServerGroup (Maybe GameServerProtectionPolicy)
createGameServerGroup_gameServerProtectionPolicy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGameServerGroup' {Maybe GameServerProtectionPolicy
gameServerProtectionPolicy :: Maybe GameServerProtectionPolicy
$sel:gameServerProtectionPolicy:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe GameServerProtectionPolicy
gameServerProtectionPolicy} -> Maybe GameServerProtectionPolicy
gameServerProtectionPolicy) (\s :: CreateGameServerGroup
s@CreateGameServerGroup' {} Maybe GameServerProtectionPolicy
a -> CreateGameServerGroup
s {$sel:gameServerProtectionPolicy:CreateGameServerGroup' :: Maybe GameServerProtectionPolicy
gameServerProtectionPolicy = Maybe GameServerProtectionPolicy
a} :: CreateGameServerGroup)
createGameServerGroup_tags :: Lens.Lens' CreateGameServerGroup (Prelude.Maybe [Tag])
createGameServerGroup_tags :: Lens' CreateGameServerGroup (Maybe [Tag])
createGameServerGroup_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGameServerGroup' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: CreateGameServerGroup
s@CreateGameServerGroup' {} Maybe [Tag]
a -> CreateGameServerGroup
s {$sel:tags:CreateGameServerGroup' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: CreateGameServerGroup) 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
createGameServerGroup_vpcSubnets :: Lens.Lens' CreateGameServerGroup (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
createGameServerGroup_vpcSubnets :: Lens' CreateGameServerGroup (Maybe (NonEmpty Text))
createGameServerGroup_vpcSubnets = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGameServerGroup' {Maybe (NonEmpty Text)
vpcSubnets :: Maybe (NonEmpty Text)
$sel:vpcSubnets:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe (NonEmpty Text)
vpcSubnets} -> Maybe (NonEmpty Text)
vpcSubnets) (\s :: CreateGameServerGroup
s@CreateGameServerGroup' {} Maybe (NonEmpty Text)
a -> CreateGameServerGroup
s {$sel:vpcSubnets:CreateGameServerGroup' :: Maybe (NonEmpty Text)
vpcSubnets = Maybe (NonEmpty Text)
a} :: CreateGameServerGroup) 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
createGameServerGroup_gameServerGroupName :: Lens.Lens' CreateGameServerGroup Prelude.Text
createGameServerGroup_gameServerGroupName :: Lens' CreateGameServerGroup Text
createGameServerGroup_gameServerGroupName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGameServerGroup' {Text
gameServerGroupName :: Text
$sel:gameServerGroupName:CreateGameServerGroup' :: CreateGameServerGroup -> Text
gameServerGroupName} -> Text
gameServerGroupName) (\s :: CreateGameServerGroup
s@CreateGameServerGroup' {} Text
a -> CreateGameServerGroup
s {$sel:gameServerGroupName:CreateGameServerGroup' :: Text
gameServerGroupName = Text
a} :: CreateGameServerGroup)
createGameServerGroup_roleArn :: Lens.Lens' CreateGameServerGroup Prelude.Text
createGameServerGroup_roleArn :: Lens' CreateGameServerGroup Text
createGameServerGroup_roleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGameServerGroup' {Text
roleArn :: Text
$sel:roleArn:CreateGameServerGroup' :: CreateGameServerGroup -> Text
roleArn} -> Text
roleArn) (\s :: CreateGameServerGroup
s@CreateGameServerGroup' {} Text
a -> CreateGameServerGroup
s {$sel:roleArn:CreateGameServerGroup' :: Text
roleArn = Text
a} :: CreateGameServerGroup)
createGameServerGroup_minSize :: Lens.Lens' CreateGameServerGroup Prelude.Natural
createGameServerGroup_minSize :: Lens' CreateGameServerGroup Natural
createGameServerGroup_minSize = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGameServerGroup' {Natural
minSize :: Natural
$sel:minSize:CreateGameServerGroup' :: CreateGameServerGroup -> Natural
minSize} -> Natural
minSize) (\s :: CreateGameServerGroup
s@CreateGameServerGroup' {} Natural
a -> CreateGameServerGroup
s {$sel:minSize:CreateGameServerGroup' :: Natural
minSize = Natural
a} :: CreateGameServerGroup)
createGameServerGroup_maxSize :: Lens.Lens' CreateGameServerGroup Prelude.Natural
createGameServerGroup_maxSize :: Lens' CreateGameServerGroup Natural
createGameServerGroup_maxSize = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGameServerGroup' {Natural
maxSize :: Natural
$sel:maxSize:CreateGameServerGroup' :: CreateGameServerGroup -> Natural
maxSize} -> Natural
maxSize) (\s :: CreateGameServerGroup
s@CreateGameServerGroup' {} Natural
a -> CreateGameServerGroup
s {$sel:maxSize:CreateGameServerGroup' :: Natural
maxSize = Natural
a} :: CreateGameServerGroup)
createGameServerGroup_launchTemplate :: Lens.Lens' CreateGameServerGroup LaunchTemplateSpecification
createGameServerGroup_launchTemplate :: Lens' CreateGameServerGroup LaunchTemplateSpecification
createGameServerGroup_launchTemplate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGameServerGroup' {LaunchTemplateSpecification
launchTemplate :: LaunchTemplateSpecification
$sel:launchTemplate:CreateGameServerGroup' :: CreateGameServerGroup -> LaunchTemplateSpecification
launchTemplate} -> LaunchTemplateSpecification
launchTemplate) (\s :: CreateGameServerGroup
s@CreateGameServerGroup' {} LaunchTemplateSpecification
a -> CreateGameServerGroup
s {$sel:launchTemplate:CreateGameServerGroup' :: LaunchTemplateSpecification
launchTemplate = LaunchTemplateSpecification
a} :: CreateGameServerGroup)
createGameServerGroup_instanceDefinitions :: Lens.Lens' CreateGameServerGroup (Prelude.NonEmpty InstanceDefinition)
createGameServerGroup_instanceDefinitions :: Lens' CreateGameServerGroup (NonEmpty InstanceDefinition)
createGameServerGroup_instanceDefinitions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGameServerGroup' {NonEmpty InstanceDefinition
instanceDefinitions :: NonEmpty InstanceDefinition
$sel:instanceDefinitions:CreateGameServerGroup' :: CreateGameServerGroup -> NonEmpty InstanceDefinition
instanceDefinitions} -> NonEmpty InstanceDefinition
instanceDefinitions) (\s :: CreateGameServerGroup
s@CreateGameServerGroup' {} NonEmpty InstanceDefinition
a -> CreateGameServerGroup
s {$sel:instanceDefinitions:CreateGameServerGroup' :: NonEmpty InstanceDefinition
instanceDefinitions = NonEmpty InstanceDefinition
a} :: CreateGameServerGroup) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
instance Core.AWSRequest CreateGameServerGroup where
type
AWSResponse CreateGameServerGroup =
CreateGameServerGroupResponse
request :: (Service -> Service)
-> CreateGameServerGroup -> Request CreateGameServerGroup
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 CreateGameServerGroup
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateGameServerGroup)))
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 GameServerGroup -> Int -> CreateGameServerGroupResponse
CreateGameServerGroupResponse'
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
"GameServerGroup")
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 CreateGameServerGroup where
hashWithSalt :: Int -> CreateGameServerGroup -> Int
hashWithSalt Int
_salt CreateGameServerGroup' {Natural
Maybe [Tag]
Maybe (NonEmpty Text)
Maybe BalancingStrategy
Maybe GameServerProtectionPolicy
Maybe GameServerGroupAutoScalingPolicy
NonEmpty InstanceDefinition
Text
LaunchTemplateSpecification
instanceDefinitions :: NonEmpty InstanceDefinition
launchTemplate :: LaunchTemplateSpecification
maxSize :: Natural
minSize :: Natural
roleArn :: Text
gameServerGroupName :: Text
vpcSubnets :: Maybe (NonEmpty Text)
tags :: Maybe [Tag]
gameServerProtectionPolicy :: Maybe GameServerProtectionPolicy
balancingStrategy :: Maybe BalancingStrategy
autoScalingPolicy :: Maybe GameServerGroupAutoScalingPolicy
$sel:instanceDefinitions:CreateGameServerGroup' :: CreateGameServerGroup -> NonEmpty InstanceDefinition
$sel:launchTemplate:CreateGameServerGroup' :: CreateGameServerGroup -> LaunchTemplateSpecification
$sel:maxSize:CreateGameServerGroup' :: CreateGameServerGroup -> Natural
$sel:minSize:CreateGameServerGroup' :: CreateGameServerGroup -> Natural
$sel:roleArn:CreateGameServerGroup' :: CreateGameServerGroup -> Text
$sel:gameServerGroupName:CreateGameServerGroup' :: CreateGameServerGroup -> Text
$sel:vpcSubnets:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe (NonEmpty Text)
$sel:tags:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe [Tag]
$sel:gameServerProtectionPolicy:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe GameServerProtectionPolicy
$sel:balancingStrategy:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe BalancingStrategy
$sel:autoScalingPolicy:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe GameServerGroupAutoScalingPolicy
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe GameServerGroupAutoScalingPolicy
autoScalingPolicy
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BalancingStrategy
balancingStrategy
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe GameServerProtectionPolicy
gameServerProtectionPolicy
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Text)
vpcSubnets
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
gameServerGroupName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
roleArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Natural
minSize
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Natural
maxSize
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` LaunchTemplateSpecification
launchTemplate
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` NonEmpty InstanceDefinition
instanceDefinitions
instance Prelude.NFData CreateGameServerGroup where
rnf :: CreateGameServerGroup -> ()
rnf CreateGameServerGroup' {Natural
Maybe [Tag]
Maybe (NonEmpty Text)
Maybe BalancingStrategy
Maybe GameServerProtectionPolicy
Maybe GameServerGroupAutoScalingPolicy
NonEmpty InstanceDefinition
Text
LaunchTemplateSpecification
instanceDefinitions :: NonEmpty InstanceDefinition
launchTemplate :: LaunchTemplateSpecification
maxSize :: Natural
minSize :: Natural
roleArn :: Text
gameServerGroupName :: Text
vpcSubnets :: Maybe (NonEmpty Text)
tags :: Maybe [Tag]
gameServerProtectionPolicy :: Maybe GameServerProtectionPolicy
balancingStrategy :: Maybe BalancingStrategy
autoScalingPolicy :: Maybe GameServerGroupAutoScalingPolicy
$sel:instanceDefinitions:CreateGameServerGroup' :: CreateGameServerGroup -> NonEmpty InstanceDefinition
$sel:launchTemplate:CreateGameServerGroup' :: CreateGameServerGroup -> LaunchTemplateSpecification
$sel:maxSize:CreateGameServerGroup' :: CreateGameServerGroup -> Natural
$sel:minSize:CreateGameServerGroup' :: CreateGameServerGroup -> Natural
$sel:roleArn:CreateGameServerGroup' :: CreateGameServerGroup -> Text
$sel:gameServerGroupName:CreateGameServerGroup' :: CreateGameServerGroup -> Text
$sel:vpcSubnets:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe (NonEmpty Text)
$sel:tags:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe [Tag]
$sel:gameServerProtectionPolicy:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe GameServerProtectionPolicy
$sel:balancingStrategy:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe BalancingStrategy
$sel:autoScalingPolicy:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe GameServerGroupAutoScalingPolicy
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe GameServerGroupAutoScalingPolicy
autoScalingPolicy
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe BalancingStrategy
balancingStrategy
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe GameServerProtectionPolicy
gameServerProtectionPolicy
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Tag]
tags
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Text)
vpcSubnets
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
gameServerGroupName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
roleArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Natural
minSize
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Natural
maxSize
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf LaunchTemplateSpecification
launchTemplate
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf NonEmpty InstanceDefinition
instanceDefinitions
instance Data.ToHeaders CreateGameServerGroup where
toHeaders :: CreateGameServerGroup -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Target"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"GameLift.CreateGameServerGroup" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON CreateGameServerGroup where
toJSON :: CreateGameServerGroup -> Value
toJSON CreateGameServerGroup' {Natural
Maybe [Tag]
Maybe (NonEmpty Text)
Maybe BalancingStrategy
Maybe GameServerProtectionPolicy
Maybe GameServerGroupAutoScalingPolicy
NonEmpty InstanceDefinition
Text
LaunchTemplateSpecification
instanceDefinitions :: NonEmpty InstanceDefinition
launchTemplate :: LaunchTemplateSpecification
maxSize :: Natural
minSize :: Natural
roleArn :: Text
gameServerGroupName :: Text
vpcSubnets :: Maybe (NonEmpty Text)
tags :: Maybe [Tag]
gameServerProtectionPolicy :: Maybe GameServerProtectionPolicy
balancingStrategy :: Maybe BalancingStrategy
autoScalingPolicy :: Maybe GameServerGroupAutoScalingPolicy
$sel:instanceDefinitions:CreateGameServerGroup' :: CreateGameServerGroup -> NonEmpty InstanceDefinition
$sel:launchTemplate:CreateGameServerGroup' :: CreateGameServerGroup -> LaunchTemplateSpecification
$sel:maxSize:CreateGameServerGroup' :: CreateGameServerGroup -> Natural
$sel:minSize:CreateGameServerGroup' :: CreateGameServerGroup -> Natural
$sel:roleArn:CreateGameServerGroup' :: CreateGameServerGroup -> Text
$sel:gameServerGroupName:CreateGameServerGroup' :: CreateGameServerGroup -> Text
$sel:vpcSubnets:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe (NonEmpty Text)
$sel:tags:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe [Tag]
$sel:gameServerProtectionPolicy:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe GameServerProtectionPolicy
$sel:balancingStrategy:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe BalancingStrategy
$sel:autoScalingPolicy:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe GameServerGroupAutoScalingPolicy
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"AutoScalingPolicy" 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 GameServerGroupAutoScalingPolicy
autoScalingPolicy,
(Key
"BalancingStrategy" 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 BalancingStrategy
balancingStrategy,
(Key
"GameServerProtectionPolicy" 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 GameServerProtectionPolicy
gameServerProtectionPolicy,
(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 [Tag]
tags,
(Key
"VpcSubnets" 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 Text)
vpcSubnets,
forall a. a -> Maybe a
Prelude.Just
(Key
"GameServerGroupName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
gameServerGroupName),
forall a. a -> Maybe a
Prelude.Just (Key
"RoleArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
roleArn),
forall a. a -> Maybe a
Prelude.Just (Key
"MinSize" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Natural
minSize),
forall a. a -> Maybe a
Prelude.Just (Key
"MaxSize" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Natural
maxSize),
forall a. a -> Maybe a
Prelude.Just
(Key
"LaunchTemplate" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= LaunchTemplateSpecification
launchTemplate),
forall a. a -> Maybe a
Prelude.Just
(Key
"InstanceDefinitions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= NonEmpty InstanceDefinition
instanceDefinitions)
]
)
instance Data.ToPath CreateGameServerGroup where
toPath :: CreateGameServerGroup -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateGameServerGroup where
toQuery :: CreateGameServerGroup -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateGameServerGroupResponse = CreateGameServerGroupResponse'
{
CreateGameServerGroupResponse -> Maybe GameServerGroup
gameServerGroup :: Prelude.Maybe GameServerGroup,
CreateGameServerGroupResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateGameServerGroupResponse
-> CreateGameServerGroupResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateGameServerGroupResponse
-> CreateGameServerGroupResponse -> Bool
$c/= :: CreateGameServerGroupResponse
-> CreateGameServerGroupResponse -> Bool
== :: CreateGameServerGroupResponse
-> CreateGameServerGroupResponse -> Bool
$c== :: CreateGameServerGroupResponse
-> CreateGameServerGroupResponse -> Bool
Prelude.Eq, ReadPrec [CreateGameServerGroupResponse]
ReadPrec CreateGameServerGroupResponse
Int -> ReadS CreateGameServerGroupResponse
ReadS [CreateGameServerGroupResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateGameServerGroupResponse]
$creadListPrec :: ReadPrec [CreateGameServerGroupResponse]
readPrec :: ReadPrec CreateGameServerGroupResponse
$creadPrec :: ReadPrec CreateGameServerGroupResponse
readList :: ReadS [CreateGameServerGroupResponse]
$creadList :: ReadS [CreateGameServerGroupResponse]
readsPrec :: Int -> ReadS CreateGameServerGroupResponse
$creadsPrec :: Int -> ReadS CreateGameServerGroupResponse
Prelude.Read, Int -> CreateGameServerGroupResponse -> ShowS
[CreateGameServerGroupResponse] -> ShowS
CreateGameServerGroupResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateGameServerGroupResponse] -> ShowS
$cshowList :: [CreateGameServerGroupResponse] -> ShowS
show :: CreateGameServerGroupResponse -> String
$cshow :: CreateGameServerGroupResponse -> String
showsPrec :: Int -> CreateGameServerGroupResponse -> ShowS
$cshowsPrec :: Int -> CreateGameServerGroupResponse -> ShowS
Prelude.Show, forall x.
Rep CreateGameServerGroupResponse x
-> CreateGameServerGroupResponse
forall x.
CreateGameServerGroupResponse
-> Rep CreateGameServerGroupResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateGameServerGroupResponse x
-> CreateGameServerGroupResponse
$cfrom :: forall x.
CreateGameServerGroupResponse
-> Rep CreateGameServerGroupResponse x
Prelude.Generic)
newCreateGameServerGroupResponse ::
Prelude.Int ->
CreateGameServerGroupResponse
newCreateGameServerGroupResponse :: Int -> CreateGameServerGroupResponse
newCreateGameServerGroupResponse Int
pHttpStatus_ =
CreateGameServerGroupResponse'
{ $sel:gameServerGroup:CreateGameServerGroupResponse' :: Maybe GameServerGroup
gameServerGroup =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateGameServerGroupResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createGameServerGroupResponse_gameServerGroup :: Lens.Lens' CreateGameServerGroupResponse (Prelude.Maybe GameServerGroup)
createGameServerGroupResponse_gameServerGroup :: Lens' CreateGameServerGroupResponse (Maybe GameServerGroup)
createGameServerGroupResponse_gameServerGroup = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGameServerGroupResponse' {Maybe GameServerGroup
gameServerGroup :: Maybe GameServerGroup
$sel:gameServerGroup:CreateGameServerGroupResponse' :: CreateGameServerGroupResponse -> Maybe GameServerGroup
gameServerGroup} -> Maybe GameServerGroup
gameServerGroup) (\s :: CreateGameServerGroupResponse
s@CreateGameServerGroupResponse' {} Maybe GameServerGroup
a -> CreateGameServerGroupResponse
s {$sel:gameServerGroup:CreateGameServerGroupResponse' :: Maybe GameServerGroup
gameServerGroup = Maybe GameServerGroup
a} :: CreateGameServerGroupResponse)
createGameServerGroupResponse_httpStatus :: Lens.Lens' CreateGameServerGroupResponse Prelude.Int
createGameServerGroupResponse_httpStatus :: Lens' CreateGameServerGroupResponse Int
createGameServerGroupResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateGameServerGroupResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateGameServerGroupResponse' :: CreateGameServerGroupResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateGameServerGroupResponse
s@CreateGameServerGroupResponse' {} Int
a -> CreateGameServerGroupResponse
s {$sel:httpStatus:CreateGameServerGroupResponse' :: Int
httpStatus = Int
a} :: CreateGameServerGroupResponse)
instance Prelude.NFData CreateGameServerGroupResponse where
rnf :: CreateGameServerGroupResponse -> ()
rnf CreateGameServerGroupResponse' {Int
Maybe GameServerGroup
httpStatus :: Int
gameServerGroup :: Maybe GameServerGroup
$sel:httpStatus:CreateGameServerGroupResponse' :: CreateGameServerGroupResponse -> Int
$sel:gameServerGroup:CreateGameServerGroupResponse' :: CreateGameServerGroupResponse -> Maybe GameServerGroup
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe GameServerGroup
gameServerGroup
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus