import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class TargetTrackingConfiguration { TargetValue ! : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LaunchTemplate { LaunchTemplateId ? : Value < string > ; LaunchTemplateName ? : Value < string > ; Version ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AutoScalingPolicy { EstimatedInstanceWarmup ? : Value < number > ; TargetTrackingConfiguration ! : TargetTrackingConfiguration ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class InstanceDefinition { InstanceType ! : Value < string > ; WeightedCapacity ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface GameServerGroupProperties { AutoScalingPolicy ? : AutoScalingPolicy ; BalancingStrategy ? : Value < string > ; DeleteOption ? : Value < string > ; GameServerGroupName : Value < string > ; GameServerProtectionPolicy ? : Value < string > ; InstanceDefinitions : List < InstanceDefinition > ; LaunchTemplate : LaunchTemplate ; MaxSize ? : Value < number > ; MinSize ? : Value < number > ; RoleArn : Value < string > ; Tags ? : List < ResourceTag > ; VpcSubnets ? : List < Value < string > > ; } export default class GameServerGroup extends ResourceBase < GameServerGroupProperties > { static TargetTrackingConfiguration = TargetTrackingConfiguration ; static LaunchTemplate = LaunchTemplate ; static AutoScalingPolicy = AutoScalingPolicy ; static InstanceDefinition = InstanceDefinition ; constructor ( properties ) { super ( 'AWS::GameLift::GameServerGroup' , properties ) ; } }