aws.gamelift.GameServerGroup
Explore with Pulumi AI
Provides an GameLift Game Server Group resource.
Example Usage
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: exampleAwsLaunchTemplate.id,
    },
    maxSize: 1,
    minSize: 1,
    roleArn: exampleAwsIamRole.arn,
}, {
    dependsOn: [exampleAwsIamRolePolicyAttachment],
});
import pulumi
import pulumi_aws as aws
example = aws.gamelift.GameServerGroup("example",
    game_server_group_name="example",
    instance_definitions=[
        {
            "instance_type": "c5.large",
        },
        {
            "instance_type": "c5a.large",
        },
    ],
    launch_template={
        "id": example_aws_launch_template["id"],
    },
    max_size=1,
    min_size=1,
    role_arn=example_aws_iam_role["arn"],
    opts = pulumi.ResourceOptions(depends_on=[example_aws_iam_role_policy_attachment]))
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(exampleAwsLaunchTemplate.Id),
			},
			MaxSize: pulumi.Int(1),
			MinSize: pulumi.Int(1),
			RoleArn: pulumi.Any(exampleAwsIamRole.Arn),
		}, pulumi.DependsOn([]pulumi.Resource{
			exampleAwsIamRolePolicyAttachment,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}
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 = exampleAwsLaunchTemplate.Id,
        },
        MaxSize = 1,
        MinSize = 1,
        RoleArn = exampleAwsIamRole.Arn,
    }, new CustomResourceOptions
    {
        DependsOn =
        {
            exampleAwsIamRolePolicyAttachment,
        },
    });
});
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(exampleAwsLaunchTemplate.id())
                .build())
            .maxSize(1)
            .minSize(1)
            .roleArn(exampleAwsIamRole.arn())
            .build(), CustomResourceOptions.builder()
                .dependsOn(exampleAwsIamRolePolicyAttachment)
                .build());
    }
}
resources:
  example:
    type: aws:gamelift:GameServerGroup
    properties:
      gameServerGroupName: example
      instanceDefinitions:
        - instanceType: c5.large
        - instanceType: c5a.large
      launchTemplate:
        id: ${exampleAwsLaunchTemplate.id}
      maxSize: 1
      minSize: 1
      roleArn: ${exampleAwsIamRole.arn}
    options:
      dependsOn:
        - ${exampleAwsIamRolePolicyAttachment}
Full usage:
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: exampleAwsLaunchTemplate.id,
        version: "1",
    },
    maxSize: 1,
    minSize: 1,
    roleArn: exampleAwsIamRole.arn,
    tags: {
        Name: "example",
    },
    vpcSubnets: [
        "subnet-12345678",
        "subnet-23456789",
    ],
}, {
    dependsOn: [exampleAwsIamRolePolicyAttachment],
});
import pulumi
import pulumi_aws as aws
example = aws.gamelift.GameServerGroup("example",
    auto_scaling_policy={
        "estimated_instance_warmup": 60,
        "target_tracking_configuration": {
            "target_value": 75,
        },
    },
    balancing_strategy="SPOT_ONLY",
    game_server_group_name="example",
    game_server_protection_policy="FULL_PROTECTION",
    instance_definitions=[
        {
            "instance_type": "c5.large",
            "weighted_capacity": "1",
        },
        {
            "instance_type": "c5.2xlarge",
            "weighted_capacity": "2",
        },
    ],
    launch_template={
        "id": example_aws_launch_template["id"],
        "version": "1",
    },
    max_size=1,
    min_size=1,
    role_arn=example_aws_iam_role["arn"],
    tags={
        "Name": "example",
    },
    vpc_subnets=[
        "subnet-12345678",
        "subnet-23456789",
    ],
    opts = pulumi.ResourceOptions(depends_on=[example_aws_iam_role_policy_attachment]))
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(exampleAwsLaunchTemplate.Id),
				Version: pulumi.String("1"),
			},
			MaxSize: pulumi.Int(1),
			MinSize: pulumi.Int(1),
			RoleArn: pulumi.Any(exampleAwsIamRole.Arn),
			Tags: pulumi.StringMap{
				"Name": pulumi.String("example"),
			},
			VpcSubnets: pulumi.StringArray{
				pulumi.String("subnet-12345678"),
				pulumi.String("subnet-23456789"),
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			exampleAwsIamRolePolicyAttachment,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}
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 = exampleAwsLaunchTemplate.Id,
            Version = "1",
        },
        MaxSize = 1,
        MinSize = 1,
        RoleArn = exampleAwsIamRole.Arn,
        Tags = 
        {
            { "Name", "example" },
        },
        VpcSubnets = new[]
        {
            "subnet-12345678",
            "subnet-23456789",
        },
    }, new CustomResourceOptions
    {
        DependsOn =
        {
            exampleAwsIamRolePolicyAttachment,
        },
    });
});
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(exampleAwsLaunchTemplate.id())
                .version("1")
                .build())
            .maxSize(1)
            .minSize(1)
            .roleArn(exampleAwsIamRole.arn())
            .tags(Map.of("Name", "example"))
            .vpcSubnets(            
                "subnet-12345678",
                "subnet-23456789")
            .build(), CustomResourceOptions.builder()
                .dependsOn(exampleAwsIamRolePolicyAttachment)
                .build());
    }
}
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: ${exampleAwsLaunchTemplate.id}
        version: '1'
      maxSize: 1
      minSize: 1
      roleArn: ${exampleAwsIamRole.arn}
      tags:
        Name: example
      vpcSubnets:
        - subnet-12345678
        - subnet-23456789
    options:
      dependsOn:
        - ${exampleAwsIamRolePolicyAttachment}
Example IAM Role for GameLift Game Server Group
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 example = new aws.iam.Role("example", {
    assumeRolePolicy: assumeRole.then(assumeRole => assumeRole.json),
    name: "gamelift-game-server-group-example",
});
const exampleRolePolicyAttachment = new aws.iam.RolePolicyAttachment("example", {
    policyArn: current.then(current => `arn:${current.partition}:iam::aws:policy/GameLiftGameServerGroupPolicy`),
    role: example.name,
});
import pulumi
import pulumi_aws as aws
current = aws.get_partition()
assume_role = aws.iam.get_policy_document(statements=[{
    "effect": "Allow",
    "principals": [{
        "type": "Service",
        "identifiers": [
            "autoscaling.amazonaws.com",
            "gamelift.amazonaws.com",
        ],
    }],
    "actions": ["sts:AssumeRole"],
}])
example = aws.iam.Role("example",
    assume_role_policy=assume_role.json,
    name="gamelift-game-server-group-example")
example_role_policy_attachment = aws.iam.RolePolicyAttachment("example",
    policy_arn=f"arn:{current.partition}:iam::aws:policy/GameLiftGameServerGroupPolicy",
    role=example.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, &aws.GetPartitionArgs{}, 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
		}
		example, err := iam.NewRole(ctx, "example", &iam.RoleArgs{
			AssumeRolePolicy: pulumi.String(assumeRole.Json),
			Name:             pulumi.String("gamelift-game-server-group-example"),
		})
		if err != nil {
			return err
		}
		_, err = iam.NewRolePolicyAttachment(ctx, "example", &iam.RolePolicyAttachmentArgs{
			PolicyArn: pulumi.Sprintf("arn:%v:iam::aws:policy/GameLiftGameServerGroupPolicy", current.Partition),
			Role:      example.Name,
		})
		if err != nil {
			return err
		}
		return nil
	})
}
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 example = new Aws.Iam.Role("example", new()
    {
        AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult => getPolicyDocumentResult.Json),
        Name = "gamelift-game-server-group-example",
    });
    var exampleRolePolicyAttachment = new Aws.Iam.RolePolicyAttachment("example", new()
    {
        PolicyArn = $"arn:{current.Apply(getPartitionResult => getPartitionResult.Partition)}:iam::aws:policy/GameLiftGameServerGroupPolicy",
        Role = example.Name,
    });
});
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 example = new Role("example", RoleArgs.builder()
            .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
            .name("gamelift-game-server-group-example")
            .build());
        var exampleRolePolicyAttachment = new RolePolicyAttachment("exampleRolePolicyAttachment", RolePolicyAttachmentArgs.builder()
            .policyArn(String.format("arn:%s:iam::aws:policy/GameLiftGameServerGroupPolicy", current.applyValue(getPartitionResult -> getPartitionResult.partition())))
            .role(example.name())
            .build());
    }
}
resources:
  example:
    type: aws:iam:Role
    properties:
      assumeRolePolicy: ${assumeRole.json}
      name: gamelift-game-server-group-example
  exampleRolePolicyAttachment:
    type: aws:iam:RolePolicyAttachment
    name: example
    properties:
      policyArn: arn:${current.partition}:iam::aws:policy/GameLiftGameServerGroupPolicy
      role: ${example.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
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new GameServerGroup(name: string, args: GameServerGroupArgs, opts?: CustomResourceOptions);@overload
def GameServerGroup(resource_name: str,
                    args: GameServerGroupArgs,
                    opts: Optional[ResourceOptions] = None)
@overload
def GameServerGroup(resource_name: str,
                    opts: Optional[ResourceOptions] = None,
                    game_server_group_name: 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,
                    auto_scaling_policy: Optional[GameServerGroupAutoScalingPolicyArgs] = None,
                    balancing_strategy: Optional[str] = None,
                    game_server_protection_policy: Optional[str] = None,
                    tags: Optional[Mapping[str, str]] = None,
                    vpc_subnets: Optional[Sequence[str]] = 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.
Parameters
- 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.
Constructor example
The following reference example uses placeholder values for all input properties.
var gameServerGroupResource = new Aws.GameLift.GameServerGroup("gameServerGroupResource", new()
{
    GameServerGroupName = "string",
    InstanceDefinitions = new[]
    {
        new Aws.GameLift.Inputs.GameServerGroupInstanceDefinitionArgs
        {
            InstanceType = "string",
            WeightedCapacity = "string",
        },
    },
    LaunchTemplate = new Aws.GameLift.Inputs.GameServerGroupLaunchTemplateArgs
    {
        Id = "string",
        Name = "string",
        Version = "string",
    },
    MaxSize = 0,
    MinSize = 0,
    RoleArn = "string",
    AutoScalingPolicy = new Aws.GameLift.Inputs.GameServerGroupAutoScalingPolicyArgs
    {
        TargetTrackingConfiguration = new Aws.GameLift.Inputs.GameServerGroupAutoScalingPolicyTargetTrackingConfigurationArgs
        {
            TargetValue = 0,
        },
        EstimatedInstanceWarmup = 0,
    },
    BalancingStrategy = "string",
    GameServerProtectionPolicy = "string",
    Tags = 
    {
        { "string", "string" },
    },
    VpcSubnets = new[]
    {
        "string",
    },
});
example, err := gamelift.NewGameServerGroup(ctx, "gameServerGroupResource", &gamelift.GameServerGroupArgs{
	GameServerGroupName: pulumi.String("string"),
	InstanceDefinitions: gamelift.GameServerGroupInstanceDefinitionArray{
		&gamelift.GameServerGroupInstanceDefinitionArgs{
			InstanceType:     pulumi.String("string"),
			WeightedCapacity: pulumi.String("string"),
		},
	},
	LaunchTemplate: &gamelift.GameServerGroupLaunchTemplateArgs{
		Id:      pulumi.String("string"),
		Name:    pulumi.String("string"),
		Version: pulumi.String("string"),
	},
	MaxSize: pulumi.Int(0),
	MinSize: pulumi.Int(0),
	RoleArn: pulumi.String("string"),
	AutoScalingPolicy: &gamelift.GameServerGroupAutoScalingPolicyArgs{
		TargetTrackingConfiguration: &gamelift.GameServerGroupAutoScalingPolicyTargetTrackingConfigurationArgs{
			TargetValue: pulumi.Float64(0),
		},
		EstimatedInstanceWarmup: pulumi.Int(0),
	},
	BalancingStrategy:          pulumi.String("string"),
	GameServerProtectionPolicy: pulumi.String("string"),
	Tags: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
	VpcSubnets: pulumi.StringArray{
		pulumi.String("string"),
	},
})
var gameServerGroupResource = new GameServerGroup("gameServerGroupResource", GameServerGroupArgs.builder()
    .gameServerGroupName("string")
    .instanceDefinitions(GameServerGroupInstanceDefinitionArgs.builder()
        .instanceType("string")
        .weightedCapacity("string")
        .build())
    .launchTemplate(GameServerGroupLaunchTemplateArgs.builder()
        .id("string")
        .name("string")
        .version("string")
        .build())
    .maxSize(0)
    .minSize(0)
    .roleArn("string")
    .autoScalingPolicy(GameServerGroupAutoScalingPolicyArgs.builder()
        .targetTrackingConfiguration(GameServerGroupAutoScalingPolicyTargetTrackingConfigurationArgs.builder()
            .targetValue(0)
            .build())
        .estimatedInstanceWarmup(0)
        .build())
    .balancingStrategy("string")
    .gameServerProtectionPolicy("string")
    .tags(Map.of("string", "string"))
    .vpcSubnets("string")
    .build());
game_server_group_resource = aws.gamelift.GameServerGroup("gameServerGroupResource",
    game_server_group_name="string",
    instance_definitions=[{
        "instance_type": "string",
        "weighted_capacity": "string",
    }],
    launch_template={
        "id": "string",
        "name": "string",
        "version": "string",
    },
    max_size=0,
    min_size=0,
    role_arn="string",
    auto_scaling_policy={
        "target_tracking_configuration": {
            "target_value": 0,
        },
        "estimated_instance_warmup": 0,
    },
    balancing_strategy="string",
    game_server_protection_policy="string",
    tags={
        "string": "string",
    },
    vpc_subnets=["string"])
const gameServerGroupResource = new aws.gamelift.GameServerGroup("gameServerGroupResource", {
    gameServerGroupName: "string",
    instanceDefinitions: [{
        instanceType: "string",
        weightedCapacity: "string",
    }],
    launchTemplate: {
        id: "string",
        name: "string",
        version: "string",
    },
    maxSize: 0,
    minSize: 0,
    roleArn: "string",
    autoScalingPolicy: {
        targetTrackingConfiguration: {
            targetValue: 0,
        },
        estimatedInstanceWarmup: 0,
    },
    balancingStrategy: "string",
    gameServerProtectionPolicy: "string",
    tags: {
        string: "string",
    },
    vpcSubnets: ["string"],
});
type: aws:gamelift:GameServerGroup
properties:
    autoScalingPolicy:
        estimatedInstanceWarmup: 0
        targetTrackingConfiguration:
            targetValue: 0
    balancingStrategy: string
    gameServerGroupName: string
    gameServerProtectionPolicy: string
    instanceDefinitions:
        - instanceType: string
          weightedCapacity: string
    launchTemplate:
        id: string
        name: string
        version: string
    maxSize: 0
    minSize: 0
    roleArn: string
    tags:
        string: string
    vpcSubnets:
        - string
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
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The GameServerGroup resource accepts the following input properties:
- GameServer stringGroup Name 
- 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<GameServer Group Instance Definition> 
- LaunchTemplate GameServer Group Launch Template 
- 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.
- AutoScaling GamePolicy Server Group Auto Scaling Policy 
- 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 toSPOT_PREFERRED.
- GameServer stringProtection Policy 
- 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 toNO_PROTECTION.
- 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.
- GameServer stringGroup Name 
- 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 []GameServer Group Instance Definition Args 
- LaunchTemplate GameServer Group Launch Template Args 
- 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.
- AutoScaling GamePolicy Server Group Auto Scaling Policy Args 
- 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 toSPOT_PREFERRED.
- GameServer stringProtection Policy 
- 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 toNO_PROTECTION.
- 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.
- gameServer StringGroup Name 
- 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<GameServer Group Instance Definition> 
- launchTemplate GameServer Group Launch Template 
- 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.
- autoScaling GamePolicy Server Group Auto Scaling Policy 
- 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 toSPOT_PREFERRED.
- gameServer StringProtection Policy 
- 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 toNO_PROTECTION.
- 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.
- gameServer stringGroup Name 
- 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 GameServer Group Instance Definition[] 
- launchTemplate GameServer Group Launch Template 
- 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.
- autoScaling GamePolicy Server Group Auto Scaling Policy 
- 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 toSPOT_PREFERRED.
- gameServer stringProtection Policy 
- 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 toNO_PROTECTION.
- {[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_ strgroup_ name 
- 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[GameServer Group Instance Definition Args] 
- launch_template GameServer Group Launch Template Args 
- 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_ Gamepolicy Server Group Auto Scaling Policy Args 
- 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 toSPOT_PREFERRED.
- game_server_ strprotection_ policy 
- 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 toNO_PROTECTION.
- 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.
- gameServer StringGroup Name 
- 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.
- autoScaling Property MapPolicy 
- 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 toSPOT_PREFERRED.
- gameServer StringProtection Policy 
- 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 toNO_PROTECTION.
- 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.
- AutoScaling stringGroup Arn 
- The ARN of the created EC2 Auto Scaling group.
- Id string
- The provider-assigned unique ID for this managed resource.
- Dictionary<string, string>
- Arn string
- The ARN of the GameLift Game Server Group.
- AutoScaling stringGroup Arn 
- The ARN of the created EC2 Auto Scaling group.
- Id string
- The provider-assigned unique ID for this managed resource.
- map[string]string
- arn String
- The ARN of the GameLift Game Server Group.
- autoScaling StringGroup Arn 
- The ARN of the created EC2 Auto Scaling group.
- id String
- The provider-assigned unique ID for this managed resource.
- Map<String,String>
- arn string
- The ARN of the GameLift Game Server Group.
- autoScaling stringGroup Arn 
- The ARN of the created EC2 Auto Scaling group.
- id string
- The provider-assigned unique ID for this managed resource.
- {[key: string]: string}
- arn str
- The ARN of the GameLift Game Server Group.
- auto_scaling_ strgroup_ arn 
- The ARN of the created EC2 Auto Scaling group.
- id str
- The provider-assigned unique ID for this managed resource.
- Mapping[str, str]
- arn String
- The ARN of the GameLift Game Server Group.
- autoScaling StringGroup Arn 
- The ARN of the created EC2 Auto Scaling group.
- id String
- The provider-assigned unique ID for this managed resource.
- Map<String>
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) -> GameServerGroupfunc 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)resources:  _:    type: aws:gamelift:GameServerGroup    get:      id: ${id}- 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.
- Arn string
- The ARN of the GameLift Game Server Group.
- AutoScaling stringGroup Arn 
- The ARN of the created EC2 Auto Scaling group.
- AutoScaling GamePolicy Server Group Auto Scaling Policy 
- 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 toSPOT_PREFERRED.
- GameServer stringGroup Name 
- 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.
- GameServer stringProtection Policy 
- 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 toNO_PROTECTION.
- InstanceDefinitions List<GameServer Group Instance Definition> 
- LaunchTemplate GameServer Group Launch Template 
- 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.
- Dictionary<string, string>
- Key-value map of resource tags
- Dictionary<string, string>
- 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.
- AutoScaling stringGroup Arn 
- The ARN of the created EC2 Auto Scaling group.
- AutoScaling GamePolicy Server Group Auto Scaling Policy Args 
- 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 toSPOT_PREFERRED.
- GameServer stringGroup Name 
- 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.
- GameServer stringProtection Policy 
- 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 toNO_PROTECTION.
- InstanceDefinitions []GameServer Group Instance Definition Args 
- LaunchTemplate GameServer Group Launch Template Args 
- 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.
- map[string]string
- Key-value map of resource tags
- map[string]string
- 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.
- autoScaling StringGroup Arn 
- The ARN of the created EC2 Auto Scaling group.
- autoScaling GamePolicy Server Group Auto Scaling Policy 
- 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 toSPOT_PREFERRED.
- gameServer StringGroup Name 
- 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.
- gameServer StringProtection Policy 
- 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 toNO_PROTECTION.
- instanceDefinitions List<GameServer Group Instance Definition> 
- launchTemplate GameServer Group Launch Template 
- 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.
- Map<String,String>
- Key-value map of resource tags
- Map<String,String>
- 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.
- autoScaling stringGroup Arn 
- The ARN of the created EC2 Auto Scaling group.
- autoScaling GamePolicy Server Group Auto Scaling Policy 
- 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 toSPOT_PREFERRED.
- gameServer stringGroup Name 
- 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.
- gameServer stringProtection Policy 
- 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 toNO_PROTECTION.
- instanceDefinitions GameServer Group Instance Definition[] 
- launchTemplate GameServer Group Launch Template 
- 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.
- {[key: string]: string}
- Key-value map of resource tags
- {[key: string]: string}
- 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_ strgroup_ arn 
- The ARN of the created EC2 Auto Scaling group.
- auto_scaling_ Gamepolicy Server Group Auto Scaling Policy Args 
- 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 toSPOT_PREFERRED.
- game_server_ strgroup_ name 
- 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_ strprotection_ policy 
- 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 toNO_PROTECTION.
- instance_definitions Sequence[GameServer Group Instance Definition Args] 
- launch_template GameServer Group Launch Template Args 
- 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.
- Mapping[str, str]
- Key-value map of resource tags
- Mapping[str, str]
- 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.
- autoScaling StringGroup Arn 
- The ARN of the created EC2 Auto Scaling group.
- autoScaling Property MapPolicy 
- 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 toSPOT_PREFERRED.
- gameServer StringGroup Name 
- 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.
- gameServer StringProtection Policy 
- 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 toNO_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.
- Map<String>
- Key-value map of resource tags
- Map<String>
- 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            
- TargetTracking GameConfiguration Server Group Auto Scaling Policy Target Tracking Configuration 
- EstimatedInstance intWarmup 
- 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.
- TargetTracking GameConfiguration Server Group Auto Scaling Policy Target Tracking Configuration 
- EstimatedInstance intWarmup 
- 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.
- targetTracking GameConfiguration Server Group Auto Scaling Policy Target Tracking Configuration 
- estimatedInstance IntegerWarmup 
- 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.
- targetTracking GameConfiguration Server Group Auto Scaling Policy Target Tracking Configuration 
- estimatedInstance numberWarmup 
- 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_ Gameconfiguration Server Group Auto Scaling Policy Target Tracking Configuration 
- estimated_instance_ intwarmup 
- 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.
- targetTracking Property MapConfiguration 
- estimatedInstance NumberWarmup 
- 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          
Import
Using pulumi import, import GameLift Game Server Group using the name. For example:
$ pulumi import aws:gamelift/gameServerGroup:GameServerGroup example example
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- AWS Classic pulumi/pulumi-aws
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the awsTerraform Provider.