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.42.0 published on Wednesday, Jun 26, 2024 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.42.0 published on Wednesday, Jun 26, 2024 by Pulumi

    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=[
            {
                "instanceType": "c5.large",
            },
            {
                "instanceType": "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={
            "estimatedInstanceWarmup": 60,
            "targetTrackingConfiguration": {
                "targetValue": 75,
            },
        },
        balancing_strategy="SPOT_ONLY",
        game_server_group_name="example",
        game_server_protection_policy="FULL_PROTECTION",
        instance_definitions=[
            {
                "instanceType": "c5.large",
                "weightedCapacity": "1",
            },
            {
                "instanceType": "c5.2xlarge",
                "weightedCapacity": "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, 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
    		}
    		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.String(fmt.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=[{
            "instanceType": "string",
            "weightedCapacity": "string",
        }],
        launch_template={
            "id": "string",
            "name": "string",
            "version": "string",
        },
        max_size=0,
        min_size=0,
        role_arn="string",
        auto_scaling_policy={
            "targetTrackingConfiguration": {
                "targetValue": 0,
            },
            "estimatedInstanceWarmup": 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

    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

    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 aws Terraform Provider.
    aws logo

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

    AWS Classic v6.42.0 published on Wednesday, Jun 26, 2024 by Pulumi