1. Packages
  2. AWS Classic
  3. API Docs
  4. gamelift
  5. GameServerGroup

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.3.0 published on Thursday, Sep 28, 2023 by Pulumi

aws.gamelift.GameServerGroup

Explore with Pulumi AI

aws logo

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.3.0 published on Thursday, Sep 28, 2023 by Pulumi

    Provides an GameLift Game Server Group resource.

    Example Usage

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new Aws.GameLift.GameServerGroup("example", new()
        {
            GameServerGroupName = "example",
            InstanceDefinitions = new[]
            {
                new Aws.GameLift.Inputs.GameServerGroupInstanceDefinitionArgs
                {
                    InstanceType = "c5.large",
                },
                new Aws.GameLift.Inputs.GameServerGroupInstanceDefinitionArgs
                {
                    InstanceType = "c5a.large",
                },
            },
            LaunchTemplate = new Aws.GameLift.Inputs.GameServerGroupLaunchTemplateArgs
            {
                Id = aws_launch_template.Example.Id,
            },
            MaxSize = 1,
            MinSize = 1,
            RoleArn = aws_iam_role.Example.Arn,
        }, new CustomResourceOptions
        {
            DependsOn = new[]
            {
                aws_iam_role_policy_attachment.Example,
            },
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/gamelift"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := gamelift.NewGameServerGroup(ctx, "example", &gamelift.GameServerGroupArgs{
    			GameServerGroupName: pulumi.String("example"),
    			InstanceDefinitions: gamelift.GameServerGroupInstanceDefinitionArray{
    				&gamelift.GameServerGroupInstanceDefinitionArgs{
    					InstanceType: pulumi.String("c5.large"),
    				},
    				&gamelift.GameServerGroupInstanceDefinitionArgs{
    					InstanceType: pulumi.String("c5a.large"),
    				},
    			},
    			LaunchTemplate: &gamelift.GameServerGroupLaunchTemplateArgs{
    				Id: pulumi.Any(aws_launch_template.Example.Id),
    			},
    			MaxSize: pulumi.Int(1),
    			MinSize: pulumi.Int(1),
    			RoleArn: pulumi.Any(aws_iam_role.Example.Arn),
    		}, pulumi.DependsOn([]pulumi.Resource{
    			aws_iam_role_policy_attachment.Example,
    		}))
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.gamelift.GameServerGroup;
    import com.pulumi.aws.gamelift.GameServerGroupArgs;
    import com.pulumi.aws.gamelift.inputs.GameServerGroupInstanceDefinitionArgs;
    import com.pulumi.aws.gamelift.inputs.GameServerGroupLaunchTemplateArgs;
    import com.pulumi.resources.CustomResourceOptions;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var example = new GameServerGroup("example", GameServerGroupArgs.builder()        
                .gameServerGroupName("example")
                .instanceDefinitions(            
                    GameServerGroupInstanceDefinitionArgs.builder()
                        .instanceType("c5.large")
                        .build(),
                    GameServerGroupInstanceDefinitionArgs.builder()
                        .instanceType("c5a.large")
                        .build())
                .launchTemplate(GameServerGroupLaunchTemplateArgs.builder()
                    .id(aws_launch_template.example().id())
                    .build())
                .maxSize(1)
                .minSize(1)
                .roleArn(aws_iam_role.example().arn())
                .build(), CustomResourceOptions.builder()
                    .dependsOn(aws_iam_role_policy_attachment.example())
                    .build());
    
        }
    }
    
    import pulumi
    import pulumi_aws as aws
    
    example = aws.gamelift.GameServerGroup("example",
        game_server_group_name="example",
        instance_definitions=[
            aws.gamelift.GameServerGroupInstanceDefinitionArgs(
                instance_type="c5.large",
            ),
            aws.gamelift.GameServerGroupInstanceDefinitionArgs(
                instance_type="c5a.large",
            ),
        ],
        launch_template=aws.gamelift.GameServerGroupLaunchTemplateArgs(
            id=aws_launch_template["example"]["id"],
        ),
        max_size=1,
        min_size=1,
        role_arn=aws_iam_role["example"]["arn"],
        opts=pulumi.ResourceOptions(depends_on=[aws_iam_role_policy_attachment["example"]]))
    
    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const example = new aws.gamelift.GameServerGroup("example", {
        gameServerGroupName: "example",
        instanceDefinitions: [
            {
                instanceType: "c5.large",
            },
            {
                instanceType: "c5a.large",
            },
        ],
        launchTemplate: {
            id: aws_launch_template.example.id,
        },
        maxSize: 1,
        minSize: 1,
        roleArn: aws_iam_role.example.arn,
    }, {
        dependsOn: [aws_iam_role_policy_attachment.example],
    });
    
    resources:
      example:
        type: aws:gamelift:GameServerGroup
        properties:
          gameServerGroupName: example
          instanceDefinitions:
            - instanceType: c5.large
            - instanceType: c5a.large
          launchTemplate:
            id: ${aws_launch_template.example.id}
          maxSize: 1
          minSize: 1
          roleArn: ${aws_iam_role.example.arn}
        options:
          dependson:
            - ${aws_iam_role_policy_attachment.example}
    

    Full usage

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new Aws.GameLift.GameServerGroup("example", new()
        {
            AutoScalingPolicy = new Aws.GameLift.Inputs.GameServerGroupAutoScalingPolicyArgs
            {
                EstimatedInstanceWarmup = 60,
                TargetTrackingConfiguration = new Aws.GameLift.Inputs.GameServerGroupAutoScalingPolicyTargetTrackingConfigurationArgs
                {
                    TargetValue = 75,
                },
            },
            BalancingStrategy = "SPOT_ONLY",
            GameServerGroupName = "example",
            GameServerProtectionPolicy = "FULL_PROTECTION",
            InstanceDefinitions = new[]
            {
                new Aws.GameLift.Inputs.GameServerGroupInstanceDefinitionArgs
                {
                    InstanceType = "c5.large",
                    WeightedCapacity = "1",
                },
                new Aws.GameLift.Inputs.GameServerGroupInstanceDefinitionArgs
                {
                    InstanceType = "c5.2xlarge",
                    WeightedCapacity = "2",
                },
            },
            LaunchTemplate = new Aws.GameLift.Inputs.GameServerGroupLaunchTemplateArgs
            {
                Id = aws_launch_template.Example.Id,
                Version = "1",
            },
            MaxSize = 1,
            MinSize = 1,
            RoleArn = aws_iam_role.Example.Arn,
            Tags = 
            {
                { "Name", "example" },
            },
            VpcSubnets = new[]
            {
                "subnet-12345678",
                "subnet-23456789",
            },
        }, new CustomResourceOptions
        {
            DependsOn = new[]
            {
                aws_iam_role_policy_attachment.Example,
            },
        });
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/gamelift"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := gamelift.NewGameServerGroup(ctx, "example", &gamelift.GameServerGroupArgs{
    			AutoScalingPolicy: &gamelift.GameServerGroupAutoScalingPolicyArgs{
    				EstimatedInstanceWarmup: pulumi.Int(60),
    				TargetTrackingConfiguration: &gamelift.GameServerGroupAutoScalingPolicyTargetTrackingConfigurationArgs{
    					TargetValue: pulumi.Float64(75),
    				},
    			},
    			BalancingStrategy:          pulumi.String("SPOT_ONLY"),
    			GameServerGroupName:        pulumi.String("example"),
    			GameServerProtectionPolicy: pulumi.String("FULL_PROTECTION"),
    			InstanceDefinitions: gamelift.GameServerGroupInstanceDefinitionArray{
    				&gamelift.GameServerGroupInstanceDefinitionArgs{
    					InstanceType:     pulumi.String("c5.large"),
    					WeightedCapacity: pulumi.String("1"),
    				},
    				&gamelift.GameServerGroupInstanceDefinitionArgs{
    					InstanceType:     pulumi.String("c5.2xlarge"),
    					WeightedCapacity: pulumi.String("2"),
    				},
    			},
    			LaunchTemplate: &gamelift.GameServerGroupLaunchTemplateArgs{
    				Id:      pulumi.Any(aws_launch_template.Example.Id),
    				Version: pulumi.String("1"),
    			},
    			MaxSize: pulumi.Int(1),
    			MinSize: pulumi.Int(1),
    			RoleArn: pulumi.Any(aws_iam_role.Example.Arn),
    			Tags: pulumi.StringMap{
    				"Name": pulumi.String("example"),
    			},
    			VpcSubnets: pulumi.StringArray{
    				pulumi.String("subnet-12345678"),
    				pulumi.String("subnet-23456789"),
    			},
    		}, pulumi.DependsOn([]pulumi.Resource{
    			aws_iam_role_policy_attachment.Example,
    		}))
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.gamelift.GameServerGroup;
    import com.pulumi.aws.gamelift.GameServerGroupArgs;
    import com.pulumi.aws.gamelift.inputs.GameServerGroupAutoScalingPolicyArgs;
    import com.pulumi.aws.gamelift.inputs.GameServerGroupAutoScalingPolicyTargetTrackingConfigurationArgs;
    import com.pulumi.aws.gamelift.inputs.GameServerGroupInstanceDefinitionArgs;
    import com.pulumi.aws.gamelift.inputs.GameServerGroupLaunchTemplateArgs;
    import com.pulumi.resources.CustomResourceOptions;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var example = new GameServerGroup("example", GameServerGroupArgs.builder()        
                .autoScalingPolicy(GameServerGroupAutoScalingPolicyArgs.builder()
                    .estimatedInstanceWarmup(60)
                    .targetTrackingConfiguration(GameServerGroupAutoScalingPolicyTargetTrackingConfigurationArgs.builder()
                        .targetValue(75)
                        .build())
                    .build())
                .balancingStrategy("SPOT_ONLY")
                .gameServerGroupName("example")
                .gameServerProtectionPolicy("FULL_PROTECTION")
                .instanceDefinitions(            
                    GameServerGroupInstanceDefinitionArgs.builder()
                        .instanceType("c5.large")
                        .weightedCapacity("1")
                        .build(),
                    GameServerGroupInstanceDefinitionArgs.builder()
                        .instanceType("c5.2xlarge")
                        .weightedCapacity("2")
                        .build())
                .launchTemplate(GameServerGroupLaunchTemplateArgs.builder()
                    .id(aws_launch_template.example().id())
                    .version("1")
                    .build())
                .maxSize(1)
                .minSize(1)
                .roleArn(aws_iam_role.example().arn())
                .tags(Map.of("Name", "example"))
                .vpcSubnets(            
                    "subnet-12345678",
                    "subnet-23456789")
                .build(), CustomResourceOptions.builder()
                    .dependsOn(aws_iam_role_policy_attachment.example())
                    .build());
    
        }
    }
    
    import pulumi
    import pulumi_aws as aws
    
    example = aws.gamelift.GameServerGroup("example",
        auto_scaling_policy=aws.gamelift.GameServerGroupAutoScalingPolicyArgs(
            estimated_instance_warmup=60,
            target_tracking_configuration=aws.gamelift.GameServerGroupAutoScalingPolicyTargetTrackingConfigurationArgs(
                target_value=75,
            ),
        ),
        balancing_strategy="SPOT_ONLY",
        game_server_group_name="example",
        game_server_protection_policy="FULL_PROTECTION",
        instance_definitions=[
            aws.gamelift.GameServerGroupInstanceDefinitionArgs(
                instance_type="c5.large",
                weighted_capacity="1",
            ),
            aws.gamelift.GameServerGroupInstanceDefinitionArgs(
                instance_type="c5.2xlarge",
                weighted_capacity="2",
            ),
        ],
        launch_template=aws.gamelift.GameServerGroupLaunchTemplateArgs(
            id=aws_launch_template["example"]["id"],
            version="1",
        ),
        max_size=1,
        min_size=1,
        role_arn=aws_iam_role["example"]["arn"],
        tags={
            "Name": "example",
        },
        vpc_subnets=[
            "subnet-12345678",
            "subnet-23456789",
        ],
        opts=pulumi.ResourceOptions(depends_on=[aws_iam_role_policy_attachment["example"]]))
    
    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const example = new aws.gamelift.GameServerGroup("example", {
        autoScalingPolicy: {
            estimatedInstanceWarmup: 60,
            targetTrackingConfiguration: {
                targetValue: 75,
            },
        },
        balancingStrategy: "SPOT_ONLY",
        gameServerGroupName: "example",
        gameServerProtectionPolicy: "FULL_PROTECTION",
        instanceDefinitions: [
            {
                instanceType: "c5.large",
                weightedCapacity: "1",
            },
            {
                instanceType: "c5.2xlarge",
                weightedCapacity: "2",
            },
        ],
        launchTemplate: {
            id: aws_launch_template.example.id,
            version: "1",
        },
        maxSize: 1,
        minSize: 1,
        roleArn: aws_iam_role.example.arn,
        tags: {
            Name: "example",
        },
        vpcSubnets: [
            "subnet-12345678",
            "subnet-23456789",
        ],
    }, {
        dependsOn: [aws_iam_role_policy_attachment.example],
    });
    
    resources:
      example:
        type: aws:gamelift:GameServerGroup
        properties:
          autoScalingPolicy:
            estimatedInstanceWarmup: 60
            targetTrackingConfiguration:
              targetValue: 75
          balancingStrategy: SPOT_ONLY
          gameServerGroupName: example
          gameServerProtectionPolicy: FULL_PROTECTION
          instanceDefinitions:
            - instanceType: c5.large
              weightedCapacity: '1'
            - instanceType: c5.2xlarge
              weightedCapacity: '2'
          launchTemplate:
            id: ${aws_launch_template.example.id}
            version: '1'
          maxSize: 1
          minSize: 1
          roleArn: ${aws_iam_role.example.arn}
          tags:
            Name: example
          vpcSubnets:
            - subnet-12345678
            - subnet-23456789
        options:
          dependson:
            - ${aws_iam_role_policy_attachment.example}
    

    Example IAM Role for GameLift Game Server Group

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var current = Aws.GetPartition.Invoke();
    
        var assumeRole = Aws.Iam.GetPolicyDocument.Invoke(new()
        {
            Statements = new[]
            {
                new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
                {
                    Effect = "Allow",
                    Principals = new[]
                    {
                        new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs
                        {
                            Type = "Service",
                            Identifiers = new[]
                            {
                                "autoscaling.amazonaws.com",
                                "gamelift.amazonaws.com",
                            },
                        },
                    },
                    Actions = new[]
                    {
                        "sts:AssumeRole",
                    },
                },
            },
        });
    
        var exampleRole = new Aws.Iam.Role("exampleRole", new()
        {
            AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult => getPolicyDocumentResult.Json),
        });
    
        var exampleRolePolicyAttachment = new Aws.Iam.RolePolicyAttachment("exampleRolePolicyAttachment", new()
        {
            PolicyArn = $"arn:{current.Apply(getPartitionResult => getPartitionResult.Partition)}:iam::aws:policy/GameLiftGameServerGroupPolicy",
            Role = exampleRole.Name,
        });
    
    });
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		current, err := aws.GetPartition(ctx, nil, nil)
    		if err != nil {
    			return err
    		}
    		assumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
    			Statements: []iam.GetPolicyDocumentStatement{
    				{
    					Effect: pulumi.StringRef("Allow"),
    					Principals: []iam.GetPolicyDocumentStatementPrincipal{
    						{
    							Type: "Service",
    							Identifiers: []string{
    								"autoscaling.amazonaws.com",
    								"gamelift.amazonaws.com",
    							},
    						},
    					},
    					Actions: []string{
    						"sts:AssumeRole",
    					},
    				},
    			},
    		}, nil)
    		if err != nil {
    			return err
    		}
    		exampleRole, err := iam.NewRole(ctx, "exampleRole", &iam.RoleArgs{
    			AssumeRolePolicy: *pulumi.String(assumeRole.Json),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = iam.NewRolePolicyAttachment(ctx, "exampleRolePolicyAttachment", &iam.RolePolicyAttachmentArgs{
    			PolicyArn: pulumi.String(fmt.Sprintf("arn:%v:iam::aws:policy/GameLiftGameServerGroupPolicy", current.Partition)),
    			Role:      exampleRole.Name,
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.AwsFunctions;
    import com.pulumi.aws.inputs.GetPartitionArgs;
    import com.pulumi.aws.iam.IamFunctions;
    import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
    import com.pulumi.aws.iam.Role;
    import com.pulumi.aws.iam.RoleArgs;
    import com.pulumi.aws.iam.RolePolicyAttachment;
    import com.pulumi.aws.iam.RolePolicyAttachmentArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            final var current = AwsFunctions.getPartition();
    
            final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                .statements(GetPolicyDocumentStatementArgs.builder()
                    .effect("Allow")
                    .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                        .type("Service")
                        .identifiers(                    
                            "autoscaling.amazonaws.com",
                            "gamelift.amazonaws.com")
                        .build())
                    .actions("sts:AssumeRole")
                    .build())
                .build());
    
            var exampleRole = new Role("exampleRole", RoleArgs.builder()        
                .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
                .build());
    
            var exampleRolePolicyAttachment = new RolePolicyAttachment("exampleRolePolicyAttachment", RolePolicyAttachmentArgs.builder()        
                .policyArn(String.format("arn:%s:iam::aws:policy/GameLiftGameServerGroupPolicy", current.applyValue(getPartitionResult -> getPartitionResult.partition())))
                .role(exampleRole.name())
                .build());
    
        }
    }
    
    import pulumi
    import pulumi_aws as aws
    
    current = aws.get_partition()
    assume_role = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(
        effect="Allow",
        principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(
            type="Service",
            identifiers=[
                "autoscaling.amazonaws.com",
                "gamelift.amazonaws.com",
            ],
        )],
        actions=["sts:AssumeRole"],
    )])
    example_role = aws.iam.Role("exampleRole", assume_role_policy=assume_role.json)
    example_role_policy_attachment = aws.iam.RolePolicyAttachment("exampleRolePolicyAttachment",
        policy_arn=f"arn:{current.partition}:iam::aws:policy/GameLiftGameServerGroupPolicy",
        role=example_role.name)
    
    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const current = aws.getPartition({});
    const assumeRole = aws.iam.getPolicyDocument({
        statements: [{
            effect: "Allow",
            principals: [{
                type: "Service",
                identifiers: [
                    "autoscaling.amazonaws.com",
                    "gamelift.amazonaws.com",
                ],
            }],
            actions: ["sts:AssumeRole"],
        }],
    });
    const exampleRole = new aws.iam.Role("exampleRole", {assumeRolePolicy: assumeRole.then(assumeRole => assumeRole.json)});
    const exampleRolePolicyAttachment = new aws.iam.RolePolicyAttachment("exampleRolePolicyAttachment", {
        policyArn: current.then(current => `arn:${current.partition}:iam::aws:policy/GameLiftGameServerGroupPolicy`),
        role: exampleRole.name,
    });
    
    resources:
      exampleRole:
        type: aws:iam:Role
        properties:
          assumeRolePolicy: ${assumeRole.json}
      exampleRolePolicyAttachment:
        type: aws:iam:RolePolicyAttachment
        properties:
          policyArn: arn:${current.partition}:iam::aws:policy/GameLiftGameServerGroupPolicy
          role: ${exampleRole.name}
    variables:
      current:
        fn::invoke:
          Function: aws:getPartition
          Arguments: {}
      assumeRole:
        fn::invoke:
          Function: aws:iam:getPolicyDocument
          Arguments:
            statements:
              - effect: Allow
                principals:
                  - type: Service
                    identifiers:
                      - autoscaling.amazonaws.com
                      - gamelift.amazonaws.com
                actions:
                  - sts:AssumeRole
    

    Create GameServerGroup Resource

    new GameServerGroup(name: string, args: GameServerGroupArgs, opts?: CustomResourceOptions);
    @overload
    def GameServerGroup(resource_name: str,
                        opts: Optional[ResourceOptions] = None,
                        auto_scaling_policy: Optional[GameServerGroupAutoScalingPolicyArgs] = None,
                        balancing_strategy: Optional[str] = None,
                        game_server_group_name: Optional[str] = None,
                        game_server_protection_policy: Optional[str] = None,
                        instance_definitions: Optional[Sequence[GameServerGroupInstanceDefinitionArgs]] = None,
                        launch_template: Optional[GameServerGroupLaunchTemplateArgs] = None,
                        max_size: Optional[int] = None,
                        min_size: Optional[int] = None,
                        role_arn: Optional[str] = None,
                        tags: Optional[Mapping[str, str]] = None,
                        vpc_subnets: Optional[Sequence[str]] = None)
    @overload
    def GameServerGroup(resource_name: str,
                        args: GameServerGroupArgs,
                        opts: Optional[ResourceOptions] = None)
    func NewGameServerGroup(ctx *Context, name string, args GameServerGroupArgs, opts ...ResourceOption) (*GameServerGroup, error)
    public GameServerGroup(string name, GameServerGroupArgs args, CustomResourceOptions? opts = null)
    public GameServerGroup(String name, GameServerGroupArgs args)
    public GameServerGroup(String name, GameServerGroupArgs args, CustomResourceOptions options)
    
    type: aws:gamelift:GameServerGroup
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    name string
    The unique name of the resource.
    args GameServerGroupArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args GameServerGroupArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args GameServerGroupArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args GameServerGroupArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args GameServerGroupArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    GameServerGroup Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    The GameServerGroup resource accepts the following input properties:

    GameServerGroupName string

    Name of the game server group. This value is used to generate unique ARN identifiers for the EC2 Auto Scaling group and the GameLift FleetIQ game server group.

    InstanceDefinitions List<GameServerGroupInstanceDefinition>
    LaunchTemplate GameServerGroupLaunchTemplate
    MaxSize int

    The maximum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale up the group above this maximum.

    MinSize int

    The minimum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale down the group below this minimum.

    RoleArn string

    ARN for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups.

    AutoScalingPolicy GameServerGroupAutoScalingPolicy
    BalancingStrategy string

    Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances. Valid values: SPOT_ONLY, SPOT_PREFERRED, ON_DEMAND_ONLY. Defaults to SPOT_PREFERRED.

    GameServerProtectionPolicy string

    Indicates whether instances in the game server group are protected from early termination. Unprotected instances that have active game servers running might be terminated during a scale-down event, causing players to be dropped from the game. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion. Valid values: NO_PROTECTION, FULL_PROTECTION. Defaults to NO_PROTECTION.

    Tags Dictionary<string, string>

    Key-value map of resource tags

    VpcSubnets List<string>

    A list of VPC subnets to use with instances in the game server group. By default, all GameLift FleetIQ-supported Availability Zones are used.

    GameServerGroupName string

    Name of the game server group. This value is used to generate unique ARN identifiers for the EC2 Auto Scaling group and the GameLift FleetIQ game server group.

    InstanceDefinitions []GameServerGroupInstanceDefinitionArgs
    LaunchTemplate GameServerGroupLaunchTemplateArgs
    MaxSize int

    The maximum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale up the group above this maximum.

    MinSize int

    The minimum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale down the group below this minimum.

    RoleArn string

    ARN for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups.

    AutoScalingPolicy GameServerGroupAutoScalingPolicyArgs
    BalancingStrategy string

    Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances. Valid values: SPOT_ONLY, SPOT_PREFERRED, ON_DEMAND_ONLY. Defaults to SPOT_PREFERRED.

    GameServerProtectionPolicy string

    Indicates whether instances in the game server group are protected from early termination. Unprotected instances that have active game servers running might be terminated during a scale-down event, causing players to be dropped from the game. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion. Valid values: NO_PROTECTION, FULL_PROTECTION. Defaults to NO_PROTECTION.

    Tags map[string]string

    Key-value map of resource tags

    VpcSubnets []string

    A list of VPC subnets to use with instances in the game server group. By default, all GameLift FleetIQ-supported Availability Zones are used.

    gameServerGroupName String

    Name of the game server group. This value is used to generate unique ARN identifiers for the EC2 Auto Scaling group and the GameLift FleetIQ game server group.

    instanceDefinitions List<GameServerGroupInstanceDefinition>
    launchTemplate GameServerGroupLaunchTemplate
    maxSize Integer

    The maximum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale up the group above this maximum.

    minSize Integer

    The minimum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale down the group below this minimum.

    roleArn String

    ARN for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups.

    autoScalingPolicy GameServerGroupAutoScalingPolicy
    balancingStrategy String

    Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances. Valid values: SPOT_ONLY, SPOT_PREFERRED, ON_DEMAND_ONLY. Defaults to SPOT_PREFERRED.

    gameServerProtectionPolicy String

    Indicates whether instances in the game server group are protected from early termination. Unprotected instances that have active game servers running might be terminated during a scale-down event, causing players to be dropped from the game. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion. Valid values: NO_PROTECTION, FULL_PROTECTION. Defaults to NO_PROTECTION.

    tags Map<String,String>

    Key-value map of resource tags

    vpcSubnets List<String>

    A list of VPC subnets to use with instances in the game server group. By default, all GameLift FleetIQ-supported Availability Zones are used.

    gameServerGroupName string

    Name of the game server group. This value is used to generate unique ARN identifiers for the EC2 Auto Scaling group and the GameLift FleetIQ game server group.

    instanceDefinitions GameServerGroupInstanceDefinition[]
    launchTemplate GameServerGroupLaunchTemplate
    maxSize number

    The maximum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale up the group above this maximum.

    minSize number

    The minimum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale down the group below this minimum.

    roleArn string

    ARN for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups.

    autoScalingPolicy GameServerGroupAutoScalingPolicy
    balancingStrategy string

    Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances. Valid values: SPOT_ONLY, SPOT_PREFERRED, ON_DEMAND_ONLY. Defaults to SPOT_PREFERRED.

    gameServerProtectionPolicy string

    Indicates whether instances in the game server group are protected from early termination. Unprotected instances that have active game servers running might be terminated during a scale-down event, causing players to be dropped from the game. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion. Valid values: NO_PROTECTION, FULL_PROTECTION. Defaults to NO_PROTECTION.

    tags {[key: string]: string}

    Key-value map of resource tags

    vpcSubnets string[]

    A list of VPC subnets to use with instances in the game server group. By default, all GameLift FleetIQ-supported Availability Zones are used.

    game_server_group_name str

    Name of the game server group. This value is used to generate unique ARN identifiers for the EC2 Auto Scaling group and the GameLift FleetIQ game server group.

    instance_definitions Sequence[GameServerGroupInstanceDefinitionArgs]
    launch_template GameServerGroupLaunchTemplateArgs
    max_size int

    The maximum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale up the group above this maximum.

    min_size int

    The minimum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale down the group below this minimum.

    role_arn str

    ARN for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups.

    auto_scaling_policy GameServerGroupAutoScalingPolicyArgs
    balancing_strategy str

    Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances. Valid values: SPOT_ONLY, SPOT_PREFERRED, ON_DEMAND_ONLY. Defaults to SPOT_PREFERRED.

    game_server_protection_policy str

    Indicates whether instances in the game server group are protected from early termination. Unprotected instances that have active game servers running might be terminated during a scale-down event, causing players to be dropped from the game. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion. Valid values: NO_PROTECTION, FULL_PROTECTION. Defaults to NO_PROTECTION.

    tags Mapping[str, str]

    Key-value map of resource tags

    vpc_subnets Sequence[str]

    A list of VPC subnets to use with instances in the game server group. By default, all GameLift FleetIQ-supported Availability Zones are used.

    gameServerGroupName String

    Name of the game server group. This value is used to generate unique ARN identifiers for the EC2 Auto Scaling group and the GameLift FleetIQ game server group.

    instanceDefinitions List<Property Map>
    launchTemplate Property Map
    maxSize Number

    The maximum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale up the group above this maximum.

    minSize Number

    The minimum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale down the group below this minimum.

    roleArn String

    ARN for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups.

    autoScalingPolicy Property Map
    balancingStrategy String

    Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances. Valid values: SPOT_ONLY, SPOT_PREFERRED, ON_DEMAND_ONLY. Defaults to SPOT_PREFERRED.

    gameServerProtectionPolicy String

    Indicates whether instances in the game server group are protected from early termination. Unprotected instances that have active game servers running might be terminated during a scale-down event, causing players to be dropped from the game. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion. Valid values: NO_PROTECTION, FULL_PROTECTION. Defaults to NO_PROTECTION.

    tags Map<String>

    Key-value map of resource tags

    vpcSubnets List<String>

    A list of VPC subnets to use with instances in the game server group. By default, all GameLift FleetIQ-supported Availability Zones are used.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the GameServerGroup resource produces the following output properties:

    Arn string

    The ARN of the GameLift Game Server Group.

    AutoScalingGroupArn string

    The ARN of the created EC2 Auto Scaling group.

    Id string

    The provider-assigned unique ID for this managed resource.

    TagsAll Dictionary<string, string>

    Deprecated:

    Please use tags instead.

    Arn string

    The ARN of the GameLift Game Server Group.

    AutoScalingGroupArn string

    The ARN of the created EC2 Auto Scaling group.

    Id string

    The provider-assigned unique ID for this managed resource.

    TagsAll map[string]string

    Deprecated:

    Please use tags instead.

    arn String

    The ARN of the GameLift Game Server Group.

    autoScalingGroupArn String

    The ARN of the created EC2 Auto Scaling group.

    id String

    The provider-assigned unique ID for this managed resource.

    tagsAll Map<String,String>

    Deprecated:

    Please use tags instead.

    arn string

    The ARN of the GameLift Game Server Group.

    autoScalingGroupArn string

    The ARN of the created EC2 Auto Scaling group.

    id string

    The provider-assigned unique ID for this managed resource.

    tagsAll {[key: string]: string}

    Deprecated:

    Please use tags instead.

    arn str

    The ARN of the GameLift Game Server Group.

    auto_scaling_group_arn str

    The ARN of the created EC2 Auto Scaling group.

    id str

    The provider-assigned unique ID for this managed resource.

    tags_all Mapping[str, str]

    Deprecated:

    Please use tags instead.

    arn String

    The ARN of the GameLift Game Server Group.

    autoScalingGroupArn String

    The ARN of the created EC2 Auto Scaling group.

    id String

    The provider-assigned unique ID for this managed resource.

    tagsAll Map<String>

    Deprecated:

    Please use tags instead.

    Look up Existing GameServerGroup Resource

    Get an existing GameServerGroup resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: GameServerGroupState, opts?: CustomResourceOptions): GameServerGroup
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            arn: Optional[str] = None,
            auto_scaling_group_arn: Optional[str] = None,
            auto_scaling_policy: Optional[GameServerGroupAutoScalingPolicyArgs] = None,
            balancing_strategy: Optional[str] = None,
            game_server_group_name: Optional[str] = None,
            game_server_protection_policy: Optional[str] = None,
            instance_definitions: Optional[Sequence[GameServerGroupInstanceDefinitionArgs]] = None,
            launch_template: Optional[GameServerGroupLaunchTemplateArgs] = None,
            max_size: Optional[int] = None,
            min_size: Optional[int] = None,
            role_arn: Optional[str] = None,
            tags: Optional[Mapping[str, str]] = None,
            tags_all: Optional[Mapping[str, str]] = None,
            vpc_subnets: Optional[Sequence[str]] = None) -> GameServerGroup
    func GetGameServerGroup(ctx *Context, name string, id IDInput, state *GameServerGroupState, opts ...ResourceOption) (*GameServerGroup, error)
    public static GameServerGroup Get(string name, Input<string> id, GameServerGroupState? state, CustomResourceOptions? opts = null)
    public static GameServerGroup get(String name, Output<String> id, GameServerGroupState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    Arn string

    The ARN of the GameLift Game Server Group.

    AutoScalingGroupArn string

    The ARN of the created EC2 Auto Scaling group.

    AutoScalingPolicy GameServerGroupAutoScalingPolicy
    BalancingStrategy string

    Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances. Valid values: SPOT_ONLY, SPOT_PREFERRED, ON_DEMAND_ONLY. Defaults to SPOT_PREFERRED.

    GameServerGroupName string

    Name of the game server group. This value is used to generate unique ARN identifiers for the EC2 Auto Scaling group and the GameLift FleetIQ game server group.

    GameServerProtectionPolicy string

    Indicates whether instances in the game server group are protected from early termination. Unprotected instances that have active game servers running might be terminated during a scale-down event, causing players to be dropped from the game. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion. Valid values: NO_PROTECTION, FULL_PROTECTION. Defaults to NO_PROTECTION.

    InstanceDefinitions List<GameServerGroupInstanceDefinition>
    LaunchTemplate GameServerGroupLaunchTemplate
    MaxSize int

    The maximum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale up the group above this maximum.

    MinSize int

    The minimum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale down the group below this minimum.

    RoleArn string

    ARN for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups.

    Tags Dictionary<string, string>

    Key-value map of resource tags

    TagsAll Dictionary<string, string>

    Deprecated:

    Please use tags instead.

    VpcSubnets List<string>

    A list of VPC subnets to use with instances in the game server group. By default, all GameLift FleetIQ-supported Availability Zones are used.

    Arn string

    The ARN of the GameLift Game Server Group.

    AutoScalingGroupArn string

    The ARN of the created EC2 Auto Scaling group.

    AutoScalingPolicy GameServerGroupAutoScalingPolicyArgs
    BalancingStrategy string

    Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances. Valid values: SPOT_ONLY, SPOT_PREFERRED, ON_DEMAND_ONLY. Defaults to SPOT_PREFERRED.

    GameServerGroupName string

    Name of the game server group. This value is used to generate unique ARN identifiers for the EC2 Auto Scaling group and the GameLift FleetIQ game server group.

    GameServerProtectionPolicy string

    Indicates whether instances in the game server group are protected from early termination. Unprotected instances that have active game servers running might be terminated during a scale-down event, causing players to be dropped from the game. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion. Valid values: NO_PROTECTION, FULL_PROTECTION. Defaults to NO_PROTECTION.

    InstanceDefinitions []GameServerGroupInstanceDefinitionArgs
    LaunchTemplate GameServerGroupLaunchTemplateArgs
    MaxSize int

    The maximum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale up the group above this maximum.

    MinSize int

    The minimum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale down the group below this minimum.

    RoleArn string

    ARN for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups.

    Tags map[string]string

    Key-value map of resource tags

    TagsAll map[string]string

    Deprecated:

    Please use tags instead.

    VpcSubnets []string

    A list of VPC subnets to use with instances in the game server group. By default, all GameLift FleetIQ-supported Availability Zones are used.

    arn String

    The ARN of the GameLift Game Server Group.

    autoScalingGroupArn String

    The ARN of the created EC2 Auto Scaling group.

    autoScalingPolicy GameServerGroupAutoScalingPolicy
    balancingStrategy String

    Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances. Valid values: SPOT_ONLY, SPOT_PREFERRED, ON_DEMAND_ONLY. Defaults to SPOT_PREFERRED.

    gameServerGroupName String

    Name of the game server group. This value is used to generate unique ARN identifiers for the EC2 Auto Scaling group and the GameLift FleetIQ game server group.

    gameServerProtectionPolicy String

    Indicates whether instances in the game server group are protected from early termination. Unprotected instances that have active game servers running might be terminated during a scale-down event, causing players to be dropped from the game. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion. Valid values: NO_PROTECTION, FULL_PROTECTION. Defaults to NO_PROTECTION.

    instanceDefinitions List<GameServerGroupInstanceDefinition>
    launchTemplate GameServerGroupLaunchTemplate
    maxSize Integer

    The maximum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale up the group above this maximum.

    minSize Integer

    The minimum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale down the group below this minimum.

    roleArn String

    ARN for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups.

    tags Map<String,String>

    Key-value map of resource tags

    tagsAll Map<String,String>

    Deprecated:

    Please use tags instead.

    vpcSubnets List<String>

    A list of VPC subnets to use with instances in the game server group. By default, all GameLift FleetIQ-supported Availability Zones are used.

    arn string

    The ARN of the GameLift Game Server Group.

    autoScalingGroupArn string

    The ARN of the created EC2 Auto Scaling group.

    autoScalingPolicy GameServerGroupAutoScalingPolicy
    balancingStrategy string

    Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances. Valid values: SPOT_ONLY, SPOT_PREFERRED, ON_DEMAND_ONLY. Defaults to SPOT_PREFERRED.

    gameServerGroupName string

    Name of the game server group. This value is used to generate unique ARN identifiers for the EC2 Auto Scaling group and the GameLift FleetIQ game server group.

    gameServerProtectionPolicy string

    Indicates whether instances in the game server group are protected from early termination. Unprotected instances that have active game servers running might be terminated during a scale-down event, causing players to be dropped from the game. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion. Valid values: NO_PROTECTION, FULL_PROTECTION. Defaults to NO_PROTECTION.

    instanceDefinitions GameServerGroupInstanceDefinition[]
    launchTemplate GameServerGroupLaunchTemplate
    maxSize number

    The maximum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale up the group above this maximum.

    minSize number

    The minimum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale down the group below this minimum.

    roleArn string

    ARN for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups.

    tags {[key: string]: string}

    Key-value map of resource tags

    tagsAll {[key: string]: string}

    Deprecated:

    Please use tags instead.

    vpcSubnets string[]

    A list of VPC subnets to use with instances in the game server group. By default, all GameLift FleetIQ-supported Availability Zones are used.

    arn str

    The ARN of the GameLift Game Server Group.

    auto_scaling_group_arn str

    The ARN of the created EC2 Auto Scaling group.

    auto_scaling_policy GameServerGroupAutoScalingPolicyArgs
    balancing_strategy str

    Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances. Valid values: SPOT_ONLY, SPOT_PREFERRED, ON_DEMAND_ONLY. Defaults to SPOT_PREFERRED.

    game_server_group_name str

    Name of the game server group. This value is used to generate unique ARN identifiers for the EC2 Auto Scaling group and the GameLift FleetIQ game server group.

    game_server_protection_policy str

    Indicates whether instances in the game server group are protected from early termination. Unprotected instances that have active game servers running might be terminated during a scale-down event, causing players to be dropped from the game. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion. Valid values: NO_PROTECTION, FULL_PROTECTION. Defaults to NO_PROTECTION.

    instance_definitions Sequence[GameServerGroupInstanceDefinitionArgs]
    launch_template GameServerGroupLaunchTemplateArgs
    max_size int

    The maximum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale up the group above this maximum.

    min_size int

    The minimum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale down the group below this minimum.

    role_arn str

    ARN for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups.

    tags Mapping[str, str]

    Key-value map of resource tags

    tags_all Mapping[str, str]

    Deprecated:

    Please use tags instead.

    vpc_subnets Sequence[str]

    A list of VPC subnets to use with instances in the game server group. By default, all GameLift FleetIQ-supported Availability Zones are used.

    arn String

    The ARN of the GameLift Game Server Group.

    autoScalingGroupArn String

    The ARN of the created EC2 Auto Scaling group.

    autoScalingPolicy Property Map
    balancingStrategy String

    Indicates how GameLift FleetIQ balances the use of Spot Instances and On-Demand Instances. Valid values: SPOT_ONLY, SPOT_PREFERRED, ON_DEMAND_ONLY. Defaults to SPOT_PREFERRED.

    gameServerGroupName String

    Name of the game server group. This value is used to generate unique ARN identifiers for the EC2 Auto Scaling group and the GameLift FleetIQ game server group.

    gameServerProtectionPolicy String

    Indicates whether instances in the game server group are protected from early termination. Unprotected instances that have active game servers running might be terminated during a scale-down event, causing players to be dropped from the game. Protected instances cannot be terminated while there are active game servers running except in the event of a forced game server group deletion. Valid values: NO_PROTECTION, FULL_PROTECTION. Defaults to NO_PROTECTION.

    instanceDefinitions List<Property Map>
    launchTemplate Property Map
    maxSize Number

    The maximum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale up the group above this maximum.

    minSize Number

    The minimum number of instances allowed in the EC2 Auto Scaling group. During automatic scaling events, GameLift FleetIQ and EC2 do not scale down the group below this minimum.

    roleArn String

    ARN for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups.

    tags Map<String>

    Key-value map of resource tags

    tagsAll Map<String>

    Deprecated:

    Please use tags instead.

    vpcSubnets List<String>

    A list of VPC subnets to use with instances in the game server group. By default, all GameLift FleetIQ-supported Availability Zones are used.

    Supporting Types

    GameServerGroupAutoScalingPolicy, GameServerGroupAutoScalingPolicyArgs

    TargetTrackingConfiguration GameServerGroupAutoScalingPolicyTargetTrackingConfiguration
    EstimatedInstanceWarmup int

    Length of time, in seconds, it takes for a new instance to start new game server processes and register with GameLift FleetIQ. Specifying a warm-up time can be useful, particularly with game servers that take a long time to start up, because it avoids prematurely starting new instances. Defaults to 60.

    TargetTrackingConfiguration GameServerGroupAutoScalingPolicyTargetTrackingConfiguration
    EstimatedInstanceWarmup int

    Length of time, in seconds, it takes for a new instance to start new game server processes and register with GameLift FleetIQ. Specifying a warm-up time can be useful, particularly with game servers that take a long time to start up, because it avoids prematurely starting new instances. Defaults to 60.

    targetTrackingConfiguration GameServerGroupAutoScalingPolicyTargetTrackingConfiguration
    estimatedInstanceWarmup Integer

    Length of time, in seconds, it takes for a new instance to start new game server processes and register with GameLift FleetIQ. Specifying a warm-up time can be useful, particularly with game servers that take a long time to start up, because it avoids prematurely starting new instances. Defaults to 60.

    targetTrackingConfiguration GameServerGroupAutoScalingPolicyTargetTrackingConfiguration
    estimatedInstanceWarmup number

    Length of time, in seconds, it takes for a new instance to start new game server processes and register with GameLift FleetIQ. Specifying a warm-up time can be useful, particularly with game servers that take a long time to start up, because it avoids prematurely starting new instances. Defaults to 60.

    target_tracking_configuration GameServerGroupAutoScalingPolicyTargetTrackingConfiguration
    estimated_instance_warmup int

    Length of time, in seconds, it takes for a new instance to start new game server processes and register with GameLift FleetIQ. Specifying a warm-up time can be useful, particularly with game servers that take a long time to start up, because it avoids prematurely starting new instances. Defaults to 60.

    targetTrackingConfiguration Property Map
    estimatedInstanceWarmup Number

    Length of time, in seconds, it takes for a new instance to start new game server processes and register with GameLift FleetIQ. Specifying a warm-up time can be useful, particularly with game servers that take a long time to start up, because it avoids prematurely starting new instances. Defaults to 60.

    GameServerGroupAutoScalingPolicyTargetTrackingConfiguration, GameServerGroupAutoScalingPolicyTargetTrackingConfigurationArgs

    TargetValue double

    Desired value to use with a game server group target-based scaling policy.

    TargetValue float64

    Desired value to use with a game server group target-based scaling policy.

    targetValue Double

    Desired value to use with a game server group target-based scaling policy.

    targetValue number

    Desired value to use with a game server group target-based scaling policy.

    target_value float

    Desired value to use with a game server group target-based scaling policy.

    targetValue Number

    Desired value to use with a game server group target-based scaling policy.

    GameServerGroupInstanceDefinition, GameServerGroupInstanceDefinitionArgs

    InstanceType string

    An EC2 instance type.

    WeightedCapacity string

    Instance weighting that indicates how much this instance type contributes to the total capacity of a game server group. Instance weights are used by GameLift FleetIQ to calculate the instance type's cost per unit hour and better identify the most cost-effective options.

    InstanceType string

    An EC2 instance type.

    WeightedCapacity string

    Instance weighting that indicates how much this instance type contributes to the total capacity of a game server group. Instance weights are used by GameLift FleetIQ to calculate the instance type's cost per unit hour and better identify the most cost-effective options.

    instanceType String

    An EC2 instance type.

    weightedCapacity String

    Instance weighting that indicates how much this instance type contributes to the total capacity of a game server group. Instance weights are used by GameLift FleetIQ to calculate the instance type's cost per unit hour and better identify the most cost-effective options.

    instanceType string

    An EC2 instance type.

    weightedCapacity string

    Instance weighting that indicates how much this instance type contributes to the total capacity of a game server group. Instance weights are used by GameLift FleetIQ to calculate the instance type's cost per unit hour and better identify the most cost-effective options.

    instance_type str

    An EC2 instance type.

    weighted_capacity str

    Instance weighting that indicates how much this instance type contributes to the total capacity of a game server group. Instance weights are used by GameLift FleetIQ to calculate the instance type's cost per unit hour and better identify the most cost-effective options.

    instanceType String

    An EC2 instance type.

    weightedCapacity String

    Instance weighting that indicates how much this instance type contributes to the total capacity of a game server group. Instance weights are used by GameLift FleetIQ to calculate the instance type's cost per unit hour and better identify the most cost-effective options.

    GameServerGroupLaunchTemplate, GameServerGroupLaunchTemplateArgs

    Id string

    A unique identifier for an existing EC2 launch template.

    Name string

    A readable identifier for an existing EC2 launch template.

    Version string

    The version of the EC2 launch template to use. If none is set, the default is the first version created.

    Id string

    A unique identifier for an existing EC2 launch template.

    Name string

    A readable identifier for an existing EC2 launch template.

    Version string

    The version of the EC2 launch template to use. If none is set, the default is the first version created.

    id String

    A unique identifier for an existing EC2 launch template.

    name String

    A readable identifier for an existing EC2 launch template.

    version String

    The version of the EC2 launch template to use. If none is set, the default is the first version created.

    id string

    A unique identifier for an existing EC2 launch template.

    name string

    A readable identifier for an existing EC2 launch template.

    version string

    The version of the EC2 launch template to use. If none is set, the default is the first version created.

    id str

    A unique identifier for an existing EC2 launch template.

    name str

    A readable identifier for an existing EC2 launch template.

    version str

    The version of the EC2 launch template to use. If none is set, the default is the first version created.

    id String

    A unique identifier for an existing EC2 launch template.

    name String

    A readable identifier for an existing EC2 launch template.

    version String

    The version of the EC2 launch template to use. If none is set, the default is the first version created.

    Import

    In TODO v1.5.0 and later, use an import block to import GameLift Game Server Group using the name. For exampleterraform import {

    to = aws_gamelift_game_server_group.example

    id = “example” } Using TODO import, import GameLift Game Server Group using the name. For exampleconsole % TODO import aws_gamelift_game_server_group.example example

    Package Details

    Repository
    AWS Classic pulumi/pulumi-aws
    License
    Apache-2.0
    Notes

    This Pulumi package is based on the aws Terraform Provider.

    aws logo

    Try AWS Native preview for resources not in the classic version.

    AWS Classic v6.3.0 published on Thursday, Sep 28, 2023 by Pulumi