{-# 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_vpcSubnets,
createGameServerGroup_balancingStrategy,
createGameServerGroup_autoScalingPolicy,
createGameServerGroup_gameServerProtectionPolicy,
createGameServerGroup_tags,
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 Amazonka.GameLift.Types
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateGameServerGroup = CreateGameServerGroup'
{
CreateGameServerGroup -> Maybe (NonEmpty Text)
vpcSubnets :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),
CreateGameServerGroup -> Maybe BalancingStrategy
balancingStrategy :: Prelude.Maybe BalancingStrategy,
CreateGameServerGroup -> Maybe GameServerGroupAutoScalingPolicy
autoScalingPolicy :: Prelude.Maybe GameServerGroupAutoScalingPolicy,
CreateGameServerGroup -> Maybe GameServerProtectionPolicy
gameServerProtectionPolicy :: Prelude.Maybe GameServerProtectionPolicy,
CreateGameServerGroup -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
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
(CreateGameServerGroup -> CreateGameServerGroup -> Bool)
-> (CreateGameServerGroup -> CreateGameServerGroup -> Bool)
-> Eq CreateGameServerGroup
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]
(Int -> ReadS CreateGameServerGroup)
-> ReadS [CreateGameServerGroup]
-> ReadPrec CreateGameServerGroup
-> ReadPrec [CreateGameServerGroup]
-> Read 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
(Int -> CreateGameServerGroup -> ShowS)
-> (CreateGameServerGroup -> String)
-> ([CreateGameServerGroup] -> ShowS)
-> Show CreateGameServerGroup
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. CreateGameServerGroup -> Rep CreateGameServerGroup x)
-> (forall x. Rep CreateGameServerGroup x -> CreateGameServerGroup)
-> Generic CreateGameServerGroup
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' :: Maybe (NonEmpty Text)
-> Maybe BalancingStrategy
-> Maybe GameServerGroupAutoScalingPolicy
-> Maybe GameServerProtectionPolicy
-> Maybe [Tag]
-> Text
-> Text
-> Natural
-> Natural
-> LaunchTemplateSpecification
-> NonEmpty InstanceDefinition
-> CreateGameServerGroup
CreateGameServerGroup'
{ $sel:vpcSubnets:CreateGameServerGroup' :: Maybe (NonEmpty Text)
vpcSubnets =
Maybe (NonEmpty Text)
forall a. Maybe a
Prelude.Nothing,
$sel:balancingStrategy:CreateGameServerGroup' :: Maybe BalancingStrategy
balancingStrategy = Maybe BalancingStrategy
forall a. Maybe a
Prelude.Nothing,
$sel:autoScalingPolicy:CreateGameServerGroup' :: Maybe GameServerGroupAutoScalingPolicy
autoScalingPolicy = Maybe GameServerGroupAutoScalingPolicy
forall a. Maybe a
Prelude.Nothing,
$sel:gameServerProtectionPolicy:CreateGameServerGroup' :: Maybe GameServerProtectionPolicy
gameServerProtectionPolicy = Maybe GameServerProtectionPolicy
forall a. Maybe a
Prelude.Nothing,
$sel:tags:CreateGameServerGroup' :: Maybe [Tag]
tags = Maybe [Tag]
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 =
Tagged
(NonEmpty InstanceDefinition)
(Identity (NonEmpty InstanceDefinition))
-> Tagged
(NonEmpty InstanceDefinition)
(Identity (NonEmpty InstanceDefinition))
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced (Tagged
(NonEmpty InstanceDefinition)
(Identity (NonEmpty InstanceDefinition))
-> Tagged
(NonEmpty InstanceDefinition)
(Identity (NonEmpty InstanceDefinition)))
-> NonEmpty InstanceDefinition -> NonEmpty InstanceDefinition
forall t b. AReview t b -> b -> t
Lens.# NonEmpty InstanceDefinition
pInstanceDefinitions_
}
createGameServerGroup_vpcSubnets :: Lens.Lens' CreateGameServerGroup (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
createGameServerGroup_vpcSubnets :: (Maybe (NonEmpty Text) -> f (Maybe (NonEmpty Text)))
-> CreateGameServerGroup -> f CreateGameServerGroup
createGameServerGroup_vpcSubnets = (CreateGameServerGroup -> Maybe (NonEmpty Text))
-> (CreateGameServerGroup
-> Maybe (NonEmpty Text) -> CreateGameServerGroup)
-> Lens
CreateGameServerGroup
CreateGameServerGroup
(Maybe (NonEmpty Text))
(Maybe (NonEmpty Text))
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) ((Maybe (NonEmpty Text) -> f (Maybe (NonEmpty Text)))
-> CreateGameServerGroup -> f CreateGameServerGroup)
-> ((Maybe (NonEmpty Text) -> f (Maybe (NonEmpty Text)))
-> Maybe (NonEmpty Text) -> f (Maybe (NonEmpty Text)))
-> (Maybe (NonEmpty Text) -> f (Maybe (NonEmpty Text)))
-> CreateGameServerGroup
-> f CreateGameServerGroup
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
(NonEmpty Text) (NonEmpty Text) (NonEmpty Text) (NonEmpty Text)
-> Iso
(Maybe (NonEmpty Text))
(Maybe (NonEmpty Text))
(Maybe (NonEmpty Text))
(Maybe (NonEmpty Text))
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 AnIso
(NonEmpty Text) (NonEmpty Text) (NonEmpty Text) (NonEmpty Text)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
createGameServerGroup_balancingStrategy :: Lens.Lens' CreateGameServerGroup (Prelude.Maybe BalancingStrategy)
createGameServerGroup_balancingStrategy :: (Maybe BalancingStrategy -> f (Maybe BalancingStrategy))
-> CreateGameServerGroup -> f CreateGameServerGroup
createGameServerGroup_balancingStrategy = (CreateGameServerGroup -> Maybe BalancingStrategy)
-> (CreateGameServerGroup
-> Maybe BalancingStrategy -> CreateGameServerGroup)
-> Lens
CreateGameServerGroup
CreateGameServerGroup
(Maybe BalancingStrategy)
(Maybe 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_autoScalingPolicy :: Lens.Lens' CreateGameServerGroup (Prelude.Maybe GameServerGroupAutoScalingPolicy)
createGameServerGroup_autoScalingPolicy :: (Maybe GameServerGroupAutoScalingPolicy
-> f (Maybe GameServerGroupAutoScalingPolicy))
-> CreateGameServerGroup -> f CreateGameServerGroup
createGameServerGroup_autoScalingPolicy = (CreateGameServerGroup -> Maybe GameServerGroupAutoScalingPolicy)
-> (CreateGameServerGroup
-> Maybe GameServerGroupAutoScalingPolicy -> CreateGameServerGroup)
-> Lens
CreateGameServerGroup
CreateGameServerGroup
(Maybe GameServerGroupAutoScalingPolicy)
(Maybe GameServerGroupAutoScalingPolicy)
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_gameServerProtectionPolicy :: Lens.Lens' CreateGameServerGroup (Prelude.Maybe GameServerProtectionPolicy)
createGameServerGroup_gameServerProtectionPolicy :: (Maybe GameServerProtectionPolicy
-> f (Maybe GameServerProtectionPolicy))
-> CreateGameServerGroup -> f CreateGameServerGroup
createGameServerGroup_gameServerProtectionPolicy = (CreateGameServerGroup -> Maybe GameServerProtectionPolicy)
-> (CreateGameServerGroup
-> Maybe GameServerProtectionPolicy -> CreateGameServerGroup)
-> Lens
CreateGameServerGroup
CreateGameServerGroup
(Maybe GameServerProtectionPolicy)
(Maybe 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 :: (Maybe [Tag] -> f (Maybe [Tag]))
-> CreateGameServerGroup -> f CreateGameServerGroup
createGameServerGroup_tags = (CreateGameServerGroup -> Maybe [Tag])
-> (CreateGameServerGroup -> Maybe [Tag] -> CreateGameServerGroup)
-> Lens
CreateGameServerGroup
CreateGameServerGroup
(Maybe [Tag])
(Maybe [Tag])
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) ((Maybe [Tag] -> f (Maybe [Tag]))
-> CreateGameServerGroup -> f CreateGameServerGroup)
-> ((Maybe [Tag] -> f (Maybe [Tag]))
-> Maybe [Tag] -> f (Maybe [Tag]))
-> (Maybe [Tag] -> f (Maybe [Tag]))
-> CreateGameServerGroup
-> f CreateGameServerGroup
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Tag] [Tag] [Tag] [Tag]
-> Iso (Maybe [Tag]) (Maybe [Tag]) (Maybe [Tag]) (Maybe [Tag])
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 AnIso [Tag] [Tag] [Tag] [Tag]
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 :: (Text -> f Text)
-> CreateGameServerGroup -> f CreateGameServerGroup
createGameServerGroup_gameServerGroupName = (CreateGameServerGroup -> Text)
-> (CreateGameServerGroup -> Text -> CreateGameServerGroup)
-> Lens CreateGameServerGroup CreateGameServerGroup Text Text
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 :: (Text -> f Text)
-> CreateGameServerGroup -> f CreateGameServerGroup
createGameServerGroup_roleArn = (CreateGameServerGroup -> Text)
-> (CreateGameServerGroup -> Text -> CreateGameServerGroup)
-> Lens CreateGameServerGroup CreateGameServerGroup Text Text
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 :: (Natural -> f Natural)
-> CreateGameServerGroup -> f CreateGameServerGroup
createGameServerGroup_minSize = (CreateGameServerGroup -> Natural)
-> (CreateGameServerGroup -> Natural -> CreateGameServerGroup)
-> Lens CreateGameServerGroup CreateGameServerGroup Natural Natural
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 :: (Natural -> f Natural)
-> CreateGameServerGroup -> f CreateGameServerGroup
createGameServerGroup_maxSize = (CreateGameServerGroup -> Natural)
-> (CreateGameServerGroup -> Natural -> CreateGameServerGroup)
-> Lens CreateGameServerGroup CreateGameServerGroup Natural Natural
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 :: (LaunchTemplateSpecification -> f LaunchTemplateSpecification)
-> CreateGameServerGroup -> f CreateGameServerGroup
createGameServerGroup_launchTemplate = (CreateGameServerGroup -> LaunchTemplateSpecification)
-> (CreateGameServerGroup
-> LaunchTemplateSpecification -> CreateGameServerGroup)
-> Lens
CreateGameServerGroup
CreateGameServerGroup
LaunchTemplateSpecification
LaunchTemplateSpecification
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 :: (NonEmpty InstanceDefinition -> f (NonEmpty InstanceDefinition))
-> CreateGameServerGroup -> f CreateGameServerGroup
createGameServerGroup_instanceDefinitions = (CreateGameServerGroup -> NonEmpty InstanceDefinition)
-> (CreateGameServerGroup
-> NonEmpty InstanceDefinition -> CreateGameServerGroup)
-> Lens
CreateGameServerGroup
CreateGameServerGroup
(NonEmpty InstanceDefinition)
(NonEmpty InstanceDefinition)
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) ((NonEmpty InstanceDefinition -> f (NonEmpty InstanceDefinition))
-> CreateGameServerGroup -> f CreateGameServerGroup)
-> ((NonEmpty InstanceDefinition
-> f (NonEmpty InstanceDefinition))
-> NonEmpty InstanceDefinition -> f (NonEmpty InstanceDefinition))
-> (NonEmpty InstanceDefinition -> f (NonEmpty InstanceDefinition))
-> CreateGameServerGroup
-> f CreateGameServerGroup
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. (NonEmpty InstanceDefinition -> f (NonEmpty InstanceDefinition))
-> NonEmpty InstanceDefinition -> f (NonEmpty InstanceDefinition)
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 :: CreateGameServerGroup -> Request CreateGameServerGroup
request = Service -> CreateGameServerGroup -> Request CreateGameServerGroup
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON Service
defaultService
response :: Logger
-> Service
-> Proxy CreateGameServerGroup
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateGameServerGroup)))
response =
(Int
-> ResponseHeaders
-> Object
-> Either String (AWSResponse CreateGameServerGroup))
-> Logger
-> Service
-> Proxy CreateGameServerGroup
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateGameServerGroup)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
( \Int
s ResponseHeaders
h Object
x ->
Maybe GameServerGroup -> Int -> CreateGameServerGroupResponse
CreateGameServerGroupResponse'
(Maybe GameServerGroup -> Int -> CreateGameServerGroupResponse)
-> Either String (Maybe GameServerGroup)
-> Either String (Int -> CreateGameServerGroupResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Either String (Maybe GameServerGroup)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"GameServerGroup")
Either String (Int -> CreateGameServerGroupResponse)
-> Either String Int -> Either String CreateGameServerGroupResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
)
instance Prelude.Hashable CreateGameServerGroup
instance Prelude.NFData CreateGameServerGroup
instance Core.ToHeaders CreateGameServerGroup where
toHeaders :: CreateGameServerGroup -> ResponseHeaders
toHeaders =
ResponseHeaders -> CreateGameServerGroup -> ResponseHeaders
forall a b. a -> b -> a
Prelude.const
( [ResponseHeaders] -> ResponseHeaders
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Target"
HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"GameLift.CreateGameServerGroup" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Core.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
tags :: Maybe [Tag]
gameServerProtectionPolicy :: Maybe GameServerProtectionPolicy
autoScalingPolicy :: Maybe GameServerGroupAutoScalingPolicy
balancingStrategy :: Maybe BalancingStrategy
vpcSubnets :: Maybe (NonEmpty Text)
$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:tags:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe [Tag]
$sel:gameServerProtectionPolicy:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe GameServerProtectionPolicy
$sel:autoScalingPolicy:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe GameServerGroupAutoScalingPolicy
$sel:balancingStrategy:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe BalancingStrategy
$sel:vpcSubnets:CreateGameServerGroup' :: CreateGameServerGroup -> Maybe (NonEmpty Text)
..} =
[Pair] -> Value
Core.object
( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Text
"VpcSubnets" Text -> NonEmpty Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (NonEmpty Text -> Pair) -> Maybe (NonEmpty Text) -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (NonEmpty Text)
vpcSubnets,
(Text
"BalancingStrategy" Text -> BalancingStrategy -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
(BalancingStrategy -> Pair)
-> Maybe BalancingStrategy -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe BalancingStrategy
balancingStrategy,
(Text
"AutoScalingPolicy" Text -> GameServerGroupAutoScalingPolicy -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
(GameServerGroupAutoScalingPolicy -> Pair)
-> Maybe GameServerGroupAutoScalingPolicy -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe GameServerGroupAutoScalingPolicy
autoScalingPolicy,
(Text
"GameServerProtectionPolicy" Text -> GameServerProtectionPolicy -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
(GameServerProtectionPolicy -> Pair)
-> Maybe GameServerProtectionPolicy -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe GameServerProtectionPolicy
gameServerProtectionPolicy,
(Text
"Tags" Text -> [Tag] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) ([Tag] -> Pair) -> Maybe [Tag] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Tag]
tags,
Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just
(Text
"GameServerGroupName" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
gameServerGroupName),
Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Text
"RoleArn" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
roleArn),
Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Text
"MinSize" Text -> Natural -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Natural
minSize),
Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Text
"MaxSize" Text -> Natural -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Natural
maxSize),
Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just
(Text
"LaunchTemplate" Text -> LaunchTemplateSpecification -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= LaunchTemplateSpecification
launchTemplate),
Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just
(Text
"InstanceDefinitions" Text -> NonEmpty InstanceDefinition -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= NonEmpty InstanceDefinition
instanceDefinitions)
]
)
instance Core.ToPath CreateGameServerGroup where
toPath :: CreateGameServerGroup -> ByteString
toPath = ByteString -> CreateGameServerGroup -> ByteString
forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Core.ToQuery CreateGameServerGroup where
toQuery :: CreateGameServerGroup -> QueryString
toQuery = QueryString -> CreateGameServerGroup -> QueryString
forall a b. a -> b -> a
Prelude.const QueryString
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
(CreateGameServerGroupResponse
-> CreateGameServerGroupResponse -> Bool)
-> (CreateGameServerGroupResponse
-> CreateGameServerGroupResponse -> Bool)
-> Eq CreateGameServerGroupResponse
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]
(Int -> ReadS CreateGameServerGroupResponse)
-> ReadS [CreateGameServerGroupResponse]
-> ReadPrec CreateGameServerGroupResponse
-> ReadPrec [CreateGameServerGroupResponse]
-> Read 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
(Int -> CreateGameServerGroupResponse -> ShowS)
-> (CreateGameServerGroupResponse -> String)
-> ([CreateGameServerGroupResponse] -> ShowS)
-> Show CreateGameServerGroupResponse
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.
CreateGameServerGroupResponse
-> Rep CreateGameServerGroupResponse x)
-> (forall x.
Rep CreateGameServerGroupResponse x
-> CreateGameServerGroupResponse)
-> Generic CreateGameServerGroupResponse
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' :: Maybe GameServerGroup -> Int -> CreateGameServerGroupResponse
CreateGameServerGroupResponse'
{ $sel:gameServerGroup:CreateGameServerGroupResponse' :: Maybe GameServerGroup
gameServerGroup =
Maybe GameServerGroup
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateGameServerGroupResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createGameServerGroupResponse_gameServerGroup :: Lens.Lens' CreateGameServerGroupResponse (Prelude.Maybe GameServerGroup)
createGameServerGroupResponse_gameServerGroup :: (Maybe GameServerGroup -> f (Maybe GameServerGroup))
-> CreateGameServerGroupResponse -> f CreateGameServerGroupResponse
createGameServerGroupResponse_gameServerGroup = (CreateGameServerGroupResponse -> Maybe GameServerGroup)
-> (CreateGameServerGroupResponse
-> Maybe GameServerGroup -> CreateGameServerGroupResponse)
-> Lens
CreateGameServerGroupResponse
CreateGameServerGroupResponse
(Maybe GameServerGroup)
(Maybe 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 :: (Int -> f Int)
-> CreateGameServerGroupResponse -> f CreateGameServerGroupResponse
createGameServerGroupResponse_httpStatus = (CreateGameServerGroupResponse -> Int)
-> (CreateGameServerGroupResponse
-> Int -> CreateGameServerGroupResponse)
-> Lens
CreateGameServerGroupResponse CreateGameServerGroupResponse Int Int
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