import * as core from "@terrascript/core"; export interface LaunchTemplateArgs extends core.SchemaArgs { id?: string | core.StringOut; name?: string | core.StringOut; version?: string | core.StringOut; } export class LaunchTemplate extends core.Schema { @core.attr(String, { computed: true }) public id?: string | core.StringOut; @core.attr(String, { computed: true }) public name?: string | core.StringOut; @core.attr(String) public version?: string | core.StringOut; } export interface InstanceDefinitionArgs extends core.SchemaArgs { instanceType: string | core.StringOut; weightedCapacity?: string | core.StringOut; } export class InstanceDefinition extends core.Schema { @core.attr(String) public instanceType!: string | core.StringOut; @core.attr(String) public weightedCapacity?: string | core.StringOut; } export interface TargetTrackingConfigurationArgs extends core.SchemaArgs { targetValue: number | core.NumberOut; } export class TargetTrackingConfiguration extends core.Schema { @core.attr(Number) public targetValue!: number | core.NumberOut; } export interface AutoScalingPolicyArgs extends core.SchemaArgs { estimatedInstanceWarmup?: number | core.NumberOut; targetTrackingConfiguration: TargetTrackingConfiguration; } export class AutoScalingPolicy extends core.Schema { @core.attr(Number, { computed: true }) public estimatedInstanceWarmup?: number | core.NumberOut; @core.attr(TargetTrackingConfiguration) public targetTrackingConfiguration!: TargetTrackingConfiguration; } export interface GameServerGroupArgs extends core.ResourceArgs { autoScalingPolicy?: AutoScalingPolicy; balancingStrategy?: string | core.StringOut; gameServerGroupName: string | core.StringOut; gameServerProtectionPolicy?: string | core.StringOut; instanceDefinition: | core.Array | core.ArrayOut; launchTemplate: LaunchTemplate; maxSize: number | core.NumberOut; minSize: number | core.NumberOut; roleArn: string | core.StringOut; tags?: core.Map | core.MapOut; tagsAll?: core.Map | core.MapOut; vpcSubnets?: core.Array | core.ArrayOut; } export class GameServerGroup extends core.Resource { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public autoScalingGroupArn!: string | core.StringOut; @core.attr(AutoScalingPolicy) public autoScalingPolicy?: AutoScalingPolicy; @core.attr(String, { computed: true }) public balancingStrategy?: string | core.StringOut; @core.attr(String) public gameServerGroupName!: string | core.StringOut; @core.attr(String, { computed: true }) public gameServerProtectionPolicy?: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(InstanceDefinition, { kind: "array" }) public instanceDefinition!: | core.Array | core.ArrayOut; @core.attr(LaunchTemplate) public launchTemplate!: LaunchTemplate; @core.attr(Number) public maxSize!: number | core.NumberOut; @core.attr(Number) public minSize!: number | core.NumberOut; @core.attr(String) public roleArn!: string | core.StringOut; @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; @core.attr(String, { kind: "array" }) public vpcSubnets?: core.Array | core.ArrayOut; constructor(name: string, args?: GameServerGroupArgs) { super(name, "aws_gamelift_game_server_group", args); } public override getNamespace(): string { return "aws_gamelift"; } }