@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Amazon GameLift
@version 2015-10-01
@auth AWS SigV4
@endpoints 108
@hint download_for_search
@toc root(108)

@endpoint POST /
@required {TicketId: str, PlayerIds: [str], AcceptanceType: str}

@endpoint POST /
@required {GameServerGroupName: str}
@optional {GameServerId: str, GameServerData: str, FilterOption: ClaimFilterOption}
@returns(200) {GameServer: GameServer?{GameServerGroupName: str?, GameServerGroupArn: str?, GameServerId: str?, InstanceId: str?, ConnectionInfo: str?, GameServerData: str?, ClaimStatus: str?, UtilizationStatus: str?, RegistrationTime: str(timestamp)?, LastClaimTime: str(timestamp)?, LastHealthCheckTime: str(timestamp)?}}

@endpoint POST /
@required {Name: str, RoutingStrategy: RoutingStrategy}
@optional {Description: str, Tags: [Tag]}
@returns(200) {Alias: Alias?{AliasId: str?, Name: str?, AliasArn: str?, Description: str?, RoutingStrategy: RoutingStrategy?{Type: str?, FleetId: str?, Message: str?}, CreationTime: str(timestamp)?, LastUpdatedTime: str(timestamp)?}}

@endpoint POST /
@optional {Name: str, Version: str, StorageLocation: S3Location, OperatingSystem: str, Tags: [Tag], ServerSdkVersion: str}
@returns(200) {Build: Build?{BuildId: str?, BuildArn: str?, Name: str?, Version: str?, Status: str?, SizeOnDisk: int(i64)?, OperatingSystem: str?, CreationTime: str(timestamp)?, ServerSdkVersion: str?}, UploadCredentials: AwsCredentials?{AccessKeyId: str?, SecretAccessKey: str?, SessionToken: str?}, StorageLocation: S3Location?{Bucket: str?, Key: str?, RoleArn: str?, ObjectVersion: str?}}

@endpoint POST /
@required {Name: str, TotalMemoryLimit: int, TotalCpuLimit: int, ContainerDefinitions: [ContainerDefinitionInput], OperatingSystem: str}
@optional {SchedulingStrategy: str, Tags: [Tag]}
@returns(200) {ContainerGroupDefinition: ContainerGroupDefinition?{ContainerGroupDefinitionArn: str?, CreationTime: str(timestamp)?, OperatingSystem: str?, Name: str?, SchedulingStrategy: str?, TotalMemoryLimit: int?, TotalCpuLimit: int?, ContainerDefinitions: [ContainerDefinition]?, Status: str?, StatusReason: str?}}

@endpoint POST /
@required {Name: str}
@optional {Description: str, BuildId: str, ScriptId: str, ServerLaunchPath: str, ServerLaunchParameters: str, LogPaths: [str], EC2InstanceType: str, EC2InboundPermissions: [IpPermission], NewGameSessionProtectionPolicy: str, RuntimeConfiguration: RuntimeConfiguration, ResourceCreationLimitPolicy: ResourceCreationLimitPolicy, MetricGroups: [str], PeerVpcAwsAccountId: str, PeerVpcId: str, FleetType: str, InstanceRoleArn: str, CertificateConfiguration: CertificateConfiguration, Locations: [LocationConfiguration], Tags: [Tag], ComputeType: str, AnywhereConfiguration: AnywhereConfiguration, InstanceRoleCredentialsProvider: str, ContainerGroupsConfiguration: ContainerGroupsConfiguration}
@returns(200) {FleetAttributes: FleetAttributes?{FleetId: str?, FleetArn: str?, FleetType: str?, InstanceType: str?, Description: str?, Name: str?, CreationTime: str(timestamp)?, TerminationTime: str(timestamp)?, Status: str?, BuildId: str?, BuildArn: str?, ScriptId: str?, ScriptArn: str?, ServerLaunchPath: str?, ServerLaunchParameters: str?, LogPaths: [str]?, NewGameSessionProtectionPolicy: str?, OperatingSystem: str?, ResourceCreationLimitPolicy: ResourceCreationLimitPolicy?{NewGameSessionsPerCreator: int?, PolicyPeriodInMinutes: int?}, MetricGroups: [str]?, StoppedActions: [str]?, InstanceRoleArn: str?, CertificateConfiguration: CertificateConfiguration?{CertificateType: str}, ComputeType: str?, AnywhereConfiguration: AnywhereConfiguration?{Cost: str}, InstanceRoleCredentialsProvider: str?, ContainerGroupsAttributes: ContainerGroupsAttributes?{ContainerGroupDefinitionProperties: [ContainerGroupDefinitionProperty]?, ConnectionPortRange: ConnectionPortRange?{FromPort: int, ToPort: int}, ContainerGroupsPerInstance: ContainerGroupsPerInstance?{DesiredReplicaContainerGroupsPerInstance: int?, MaxReplicaContainerGroupsPerInstance: int?}}}, LocationStates: [LocationState]?}

@endpoint POST /
@required {FleetId: str, Locations: [LocationConfiguration]}
@returns(200) {FleetId: str?, FleetArn: str?, LocationStates: [LocationState]?}

@endpoint POST /
@required {GameServerGroupName: str, RoleArn: str, MinSize: int, MaxSize: int, LaunchTemplate: LaunchTemplateSpecification, InstanceDefinitions: [InstanceDefinition]}
@optional {AutoScalingPolicy: GameServerGroupAutoScalingPolicy, BalancingStrategy: str, GameServerProtectionPolicy: str, VpcSubnets: [str], Tags: [Tag]}
@returns(200) {GameServerGroup: GameServerGroup?{GameServerGroupName: str?, GameServerGroupArn: str?, RoleArn: str?, InstanceDefinitions: [InstanceDefinition]?, BalancingStrategy: str?, GameServerProtectionPolicy: str?, AutoScalingGroupArn: str?, Status: str?, StatusReason: str?, SuspendedActions: [str]?, CreationTime: str(timestamp)?, LastUpdatedTime: str(timestamp)?}}

@endpoint POST /
@required {MaximumPlayerSessionCount: int}
@optional {FleetId: str, AliasId: str, Name: str, GameProperties: [GameProperty], CreatorId: str, GameSessionId: str, IdempotencyToken: str, GameSessionData: str, Location: str}
@returns(200) {GameSession: GameSession?{GameSessionId: str?, Name: str?, FleetId: str?, FleetArn: str?, CreationTime: str(timestamp)?, TerminationTime: str(timestamp)?, CurrentPlayerSessionCount: int?, MaximumPlayerSessionCount: int?, Status: str?, StatusReason: str?, GameProperties: [GameProperty]?, IpAddress: str?, DnsName: str?, Port: int?, PlayerSessionCreationPolicy: str?, CreatorId: str?, GameSessionData: str?, MatchmakerData: str?, Location: str?}}

@endpoint POST /
@required {Name: str}
@optional {TimeoutInSeconds: int, PlayerLatencyPolicies: [PlayerLatencyPolicy], Destinations: [GameSessionQueueDestination], FilterConfiguration: FilterConfiguration, PriorityConfiguration: PriorityConfiguration, CustomEventData: str, NotificationTarget: str, Tags: [Tag]}
@returns(200) {GameSessionQueue: GameSessionQueue?{Name: str?, GameSessionQueueArn: str?, TimeoutInSeconds: int?, PlayerLatencyPolicies: [PlayerLatencyPolicy]?, Destinations: [GameSessionQueueDestination]?, FilterConfiguration: FilterConfiguration?{AllowedLocations: [str]?}, PriorityConfiguration: PriorityConfiguration?{PriorityOrder: [str]?, LocationOrder: [str]?}, CustomEventData: str?, NotificationTarget: str?}}

@endpoint POST /
@required {LocationName: str}
@optional {Tags: [Tag]}
@returns(200) {Location: LocationModel?{LocationName: str?, LocationArn: str?}}

@endpoint POST /
@required {Name: str, RequestTimeoutSeconds: int, AcceptanceRequired: bool, RuleSetName: str}
@optional {Description: str, GameSessionQueueArns: [str], AcceptanceTimeoutSeconds: int, NotificationTarget: str, AdditionalPlayerCount: int, CustomEventData: str, GameProperties: [GameProperty], GameSessionData: str, BackfillMode: str, FlexMatchMode: str, Tags: [Tag]}
@returns(200) {Configuration: MatchmakingConfiguration?{Name: str?, ConfigurationArn: str?, Description: str?, GameSessionQueueArns: [str]?, RequestTimeoutSeconds: int?, AcceptanceTimeoutSeconds: int?, AcceptanceRequired: bool?, RuleSetName: str?, RuleSetArn: str?, NotificationTarget: str?, AdditionalPlayerCount: int?, CustomEventData: str?, CreationTime: str(timestamp)?, GameProperties: [GameProperty]?, GameSessionData: str?, BackfillMode: str?, FlexMatchMode: str?}}

@endpoint POST /
@required {Name: str, RuleSetBody: str}
@optional {Tags: [Tag]}
@returns(200) {RuleSet: MatchmakingRuleSet{RuleSetName: str?, RuleSetArn: str?, RuleSetBody: str, CreationTime: str(timestamp)?}}

@endpoint POST /
@required {GameSessionId: str, PlayerId: str}
@optional {PlayerData: str}
@returns(200) {PlayerSession: PlayerSession?{PlayerSessionId: str?, PlayerId: str?, GameSessionId: str?, FleetId: str?, FleetArn: str?, CreationTime: str(timestamp)?, TerminationTime: str(timestamp)?, Status: str?, IpAddress: str?, DnsName: str?, Port: int?, PlayerData: str?}}

@endpoint POST /
@required {GameSessionId: str, PlayerIds: [str]}
@optional {PlayerDataMap: map<str,str>}
@returns(200) {PlayerSessions: [PlayerSession]?}

@endpoint POST /
@optional {Name: str, Version: str, StorageLocation: S3Location, ZipFile: bytes, Tags: [Tag]}
@returns(200) {Script: Script?{ScriptId: str?, ScriptArn: str?, Name: str?, Version: str?, SizeOnDisk: int(i64)?, CreationTime: str(timestamp)?, StorageLocation: S3Location?{Bucket: str?, Key: str?, RoleArn: str?, ObjectVersion: str?}}}

@endpoint POST /
@required {GameLiftAwsAccountId: str, PeerVpcId: str}
@returns(200) {VpcPeeringAuthorization: VpcPeeringAuthorization?{GameLiftAwsAccountId: str?, PeerVpcAwsAccountId: str?, PeerVpcId: str?, CreationTime: str(timestamp)?, ExpirationTime: str(timestamp)?}}

@endpoint POST /
@required {FleetId: str, PeerVpcAwsAccountId: str, PeerVpcId: str}

@endpoint POST /
@required {AliasId: str}

@endpoint POST /
@required {BuildId: str}

@endpoint POST /
@required {Name: str}

@endpoint POST /
@required {FleetId: str}

@endpoint POST /
@required {FleetId: str, Locations: [str]}
@returns(200) {FleetId: str?, FleetArn: str?, LocationStates: [LocationState]?}

@endpoint POST /
@required {GameServerGroupName: str}
@optional {DeleteOption: str}
@returns(200) {GameServerGroup: GameServerGroup?{GameServerGroupName: str?, GameServerGroupArn: str?, RoleArn: str?, InstanceDefinitions: [InstanceDefinition]?, BalancingStrategy: str?, GameServerProtectionPolicy: str?, AutoScalingGroupArn: str?, Status: str?, StatusReason: str?, SuspendedActions: [str]?, CreationTime: str(timestamp)?, LastUpdatedTime: str(timestamp)?}}

@endpoint POST /
@required {Name: str}

@endpoint POST /
@required {LocationName: str}

@endpoint POST /
@required {Name: str}

@endpoint POST /
@required {Name: str}

@endpoint POST /
@required {Name: str, FleetId: str}

@endpoint POST /
@required {ScriptId: str}

@endpoint POST /
@required {GameLiftAwsAccountId: str, PeerVpcId: str}

@endpoint POST /
@required {FleetId: str, VpcPeeringConnectionId: str}

@endpoint POST /
@required {FleetId: str, ComputeName: str}

@endpoint POST /
@required {GameServerGroupName: str, GameServerId: str}

@endpoint POST /
@required {AliasId: str}
@returns(200) {Alias: Alias?{AliasId: str?, Name: str?, AliasArn: str?, Description: str?, RoutingStrategy: RoutingStrategy?{Type: str?, FleetId: str?, Message: str?}, CreationTime: str(timestamp)?, LastUpdatedTime: str(timestamp)?}}

@endpoint POST /
@required {BuildId: str}
@returns(200) {Build: Build?{BuildId: str?, BuildArn: str?, Name: str?, Version: str?, Status: str?, SizeOnDisk: int(i64)?, OperatingSystem: str?, CreationTime: str(timestamp)?, ServerSdkVersion: str?}}

@endpoint POST /
@required {FleetId: str, ComputeName: str}
@returns(200) {Compute: Compute?{FleetId: str?, FleetArn: str?, ComputeName: str?, ComputeArn: str?, IpAddress: str?, DnsName: str?, ComputeStatus: str?, Location: str?, CreationTime: str(timestamp)?, OperatingSystem: str?, Type: str?, GameLiftServiceSdkEndpoint: str?, GameLiftAgentEndpoint: str?, InstanceId: str?, ContainerAttributes: ContainerAttributes?{ContainerPortMappings: [ContainerPortMapping]?}}}

@endpoint POST /
@required {Name: str}
@returns(200) {ContainerGroupDefinition: ContainerGroupDefinition?{ContainerGroupDefinitionArn: str?, CreationTime: str(timestamp)?, OperatingSystem: str?, Name: str?, SchedulingStrategy: str?, TotalMemoryLimit: int?, TotalCpuLimit: int?, ContainerDefinitions: [ContainerDefinition]?, Status: str?, StatusReason: str?}}

@endpoint POST /
@optional {EC2InstanceType: str, Location: str}
@returns(200) {EC2InstanceLimits: [EC2InstanceLimit]?}

@endpoint POST /
@optional {FleetIds: [str], Limit: int, NextToken: str}
@returns(200) {FleetAttributes: [FleetAttributes]?, NextToken: str?}

@endpoint POST /
@optional {FleetIds: [str], Limit: int, NextToken: str}
@returns(200) {FleetCapacity: [FleetCapacity]?, NextToken: str?}

@endpoint POST /
@required {FleetId: str}
@optional {StartTime: str(timestamp), EndTime: str(timestamp), Limit: int, NextToken: str}
@returns(200) {Events: [Event]?, NextToken: str?}

@endpoint POST /
@required {FleetId: str}
@optional {Locations: [str], Limit: int, NextToken: str}
@returns(200) {FleetId: str?, FleetArn: str?, LocationAttributes: [LocationAttributes]?, NextToken: str?}

@endpoint POST /
@required {FleetId: str, Location: str}
@returns(200) {FleetCapacity: FleetCapacity?{FleetId: str?, FleetArn: str?, InstanceType: str?, InstanceCounts: EC2InstanceCounts?{DESIRED: int?, MINIMUM: int?, MAXIMUM: int?, PENDING: int?, ACTIVE: int?, IDLE: int?, TERMINATING: int?}, Location: str?, ReplicaContainerGroupCounts: ReplicaContainerGroupCounts?{PENDING: int?, ACTIVE: int?, IDLE: int?, TERMINATING: int?}}}

@endpoint POST /
@required {FleetId: str, Location: str}
@returns(200) {FleetUtilization: FleetUtilization?{FleetId: str?, FleetArn: str?, ActiveServerProcessCount: int?, ActiveGameSessionCount: int?, CurrentPlayerSessionCount: int?, MaximumPlayerSessionCount: int?, Location: str?}}

@endpoint POST /
@required {FleetId: str}
@optional {Location: str}
@returns(200) {FleetId: str?, FleetArn: str?, InboundPermissions: [IpPermission]?, UpdateStatus: str?, Location: str?}

@endpoint POST /
@optional {FleetIds: [str], Limit: int, NextToken: str}
@returns(200) {FleetUtilization: [FleetUtilization]?, NextToken: str?}

@endpoint POST /
@required {GameServerGroupName: str, GameServerId: str}
@returns(200) {GameServer: GameServer?{GameServerGroupName: str?, GameServerGroupArn: str?, GameServerId: str?, InstanceId: str?, ConnectionInfo: str?, GameServerData: str?, ClaimStatus: str?, UtilizationStatus: str?, RegistrationTime: str(timestamp)?, LastClaimTime: str(timestamp)?, LastHealthCheckTime: str(timestamp)?}}

@endpoint POST /
@required {GameServerGroupName: str}
@returns(200) {GameServerGroup: GameServerGroup?{GameServerGroupName: str?, GameServerGroupArn: str?, RoleArn: str?, InstanceDefinitions: [InstanceDefinition]?, BalancingStrategy: str?, GameServerProtectionPolicy: str?, AutoScalingGroupArn: str?, Status: str?, StatusReason: str?, SuspendedActions: [str]?, CreationTime: str(timestamp)?, LastUpdatedTime: str(timestamp)?}}

@endpoint POST /
@required {GameServerGroupName: str}
@optional {InstanceIds: [str], Limit: int, NextToken: str}
@returns(200) {GameServerInstances: [GameServerInstance]?, NextToken: str?}

@endpoint POST /
@optional {FleetId: str, GameSessionId: str, AliasId: str, Location: str, StatusFilter: str, Limit: int, NextToken: str}
@returns(200) {GameSessionDetails: [GameSessionDetail]?, NextToken: str?}

@endpoint POST /
@required {PlacementId: str}
@returns(200) {GameSessionPlacement: GameSessionPlacement?{PlacementId: str?, GameSessionQueueName: str?, Status: str?, GameProperties: [GameProperty]?, MaximumPlayerSessionCount: int?, GameSessionName: str?, GameSessionId: str?, GameSessionArn: str?, GameSessionRegion: str?, PlayerLatencies: [PlayerLatency]?, StartTime: str(timestamp)?, EndTime: str(timestamp)?, IpAddress: str?, DnsName: str?, Port: int?, PlacedPlayerSessions: [PlacedPlayerSession]?, GameSessionData: str?, MatchmakerData: str?}}

@endpoint POST /
@optional {Names: [str], Limit: int, NextToken: str}
@returns(200) {GameSessionQueues: [GameSessionQueue]?, NextToken: str?}

@endpoint POST /
@optional {FleetId: str, GameSessionId: str, AliasId: str, Location: str, StatusFilter: str, Limit: int, NextToken: str}
@returns(200) {GameSessions: [GameSession]?, NextToken: str?}

@endpoint POST /
@required {FleetId: str}
@optional {InstanceId: str, Limit: int, NextToken: str, Location: str}
@returns(200) {Instances: [Instance]?, NextToken: str?}

@endpoint POST /
@required {TicketIds: [str]}
@returns(200) {TicketList: [MatchmakingTicket]?}

@endpoint POST /
@optional {Names: [str], RuleSetName: str, Limit: int, NextToken: str}
@returns(200) {Configurations: [MatchmakingConfiguration]?, NextToken: str?}

@endpoint POST /
@optional {Names: [str], Limit: int, NextToken: str}
@returns(200) {RuleSets: [MatchmakingRuleSet], NextToken: str?}

@endpoint POST /
@optional {GameSessionId: str, PlayerId: str, PlayerSessionId: str, PlayerSessionStatusFilter: str, Limit: int, NextToken: str}
@returns(200) {PlayerSessions: [PlayerSession]?, NextToken: str?}

@endpoint POST /
@required {FleetId: str}
@returns(200) {RuntimeConfiguration: RuntimeConfiguration?{ServerProcesses: [ServerProcess]?, MaxConcurrentGameSessionActivations: int?, GameSessionActivationTimeoutSeconds: int?}}

@endpoint POST /
@required {FleetId: str}
@optional {StatusFilter: str, Limit: int, NextToken: str, Location: str}
@returns(200) {ScalingPolicies: [ScalingPolicy]?, NextToken: str?}

@endpoint POST /
@required {ScriptId: str}
@returns(200) {Script: Script?{ScriptId: str?, ScriptArn: str?, Name: str?, Version: str?, SizeOnDisk: int(i64)?, CreationTime: str(timestamp)?, StorageLocation: S3Location?{Bucket: str?, Key: str?, RoleArn: str?, ObjectVersion: str?}}}

@endpoint POST /
@returns(200) {VpcPeeringAuthorizations: [VpcPeeringAuthorization]?}

@endpoint POST /
@optional {FleetId: str}
@returns(200) {VpcPeeringConnections: [VpcPeeringConnection]?}

@endpoint POST /
@required {FleetId: str, ComputeName: str}
@returns(200) {FleetId: str?, FleetArn: str?, ComputeName: str?, ComputeArn: str?, Credentials: AwsCredentials?{AccessKeyId: str?, SecretAccessKey: str?, SessionToken: str?}, Target: str?}

@endpoint POST /
@required {FleetId: str, ComputeName: str}
@returns(200) {FleetId: str?, FleetArn: str?, ComputeName: str?, ComputeArn: str?, AuthToken: str?, ExpirationTimestamp: str(timestamp)?}

@endpoint POST /
@required {GameSessionId: str}
@returns(200) {PreSignedUrl: str?}

@endpoint POST /
@required {FleetId: str, InstanceId: str}
@returns(200) {InstanceAccess: InstanceAccess?{FleetId: str?, InstanceId: str?, IpAddress: str?, OperatingSystem: str?, Credentials: InstanceCredentials?{UserName: str?, Secret: str?}}}

@endpoint POST /
@optional {RoutingStrategyType: str, Name: str, Limit: int, NextToken: str}
@returns(200) {Aliases: [Alias]?, NextToken: str?}

@endpoint POST /
@optional {Status: str, Limit: int, NextToken: str}
@returns(200) {Builds: [Build]?, NextToken: str?}

@endpoint POST /
@required {FleetId: str}
@optional {Location: str, Limit: int, NextToken: str}
@returns(200) {ComputeList: [Compute]?, NextToken: str?}

@endpoint POST /
@optional {SchedulingStrategy: str, Limit: int, NextToken: str}
@returns(200) {ContainerGroupDefinitions: [ContainerGroupDefinition]?, NextToken: str?}

@endpoint POST /
@optional {BuildId: str, ScriptId: str, ContainerGroupDefinitionName: str, Limit: int, NextToken: str}
@returns(200) {FleetIds: [str]?, NextToken: str?}

@endpoint POST /
@optional {Limit: int, NextToken: str}
@returns(200) {GameServerGroups: [GameServerGroup]?, NextToken: str?}

@endpoint POST /
@required {GameServerGroupName: str}
@optional {SortOrder: str, Limit: int, NextToken: str}
@returns(200) {GameServers: [GameServer]?, NextToken: str?}

@endpoint POST /
@optional {Filters: [str], Limit: int, NextToken: str}
@returns(200) {Locations: [LocationModel]?, NextToken: str?}

@endpoint POST /
@optional {Limit: int, NextToken: str}
@returns(200) {Scripts: [Script]?, NextToken: str?}

@endpoint POST /
@required {ResourceARN: str}
@returns(200) {Tags: [Tag]?}

@endpoint POST /
@required {Name: str, FleetId: str, MetricName: str}
@optional {ScalingAdjustment: int, ScalingAdjustmentType: str, Threshold: num(f64), ComparisonOperator: str, EvaluationPeriods: int, PolicyType: str, TargetConfiguration: TargetConfiguration}
@returns(200) {Name: str?}

@endpoint POST /
@required {FleetId: str, ComputeName: str}
@optional {CertificatePath: str, DnsName: str, IpAddress: str, Location: str}
@returns(200) {Compute: Compute?{FleetId: str?, FleetArn: str?, ComputeName: str?, ComputeArn: str?, IpAddress: str?, DnsName: str?, ComputeStatus: str?, Location: str?, CreationTime: str(timestamp)?, OperatingSystem: str?, Type: str?, GameLiftServiceSdkEndpoint: str?, GameLiftAgentEndpoint: str?, InstanceId: str?, ContainerAttributes: ContainerAttributes?{ContainerPortMappings: [ContainerPortMapping]?}}}

@endpoint POST /
@required {GameServerGroupName: str, GameServerId: str, InstanceId: str}
@optional {ConnectionInfo: str, GameServerData: str}
@returns(200) {GameServer: GameServer?{GameServerGroupName: str?, GameServerGroupArn: str?, GameServerId: str?, InstanceId: str?, ConnectionInfo: str?, GameServerData: str?, ClaimStatus: str?, UtilizationStatus: str?, RegistrationTime: str(timestamp)?, LastClaimTime: str(timestamp)?, LastHealthCheckTime: str(timestamp)?}}

@endpoint POST /
@required {BuildId: str}
@returns(200) {UploadCredentials: AwsCredentials?{AccessKeyId: str?, SecretAccessKey: str?, SessionToken: str?}, StorageLocation: S3Location?{Bucket: str?, Key: str?, RoleArn: str?, ObjectVersion: str?}}

@endpoint POST /
@required {AliasId: str}
@returns(200) {FleetId: str?, FleetArn: str?}

@endpoint POST /
@required {GameServerGroupName: str, ResumeActions: [str]}
@returns(200) {GameServerGroup: GameServerGroup?{GameServerGroupName: str?, GameServerGroupArn: str?, RoleArn: str?, InstanceDefinitions: [InstanceDefinition]?, BalancingStrategy: str?, GameServerProtectionPolicy: str?, AutoScalingGroupArn: str?, Status: str?, StatusReason: str?, SuspendedActions: [str]?, CreationTime: str(timestamp)?, LastUpdatedTime: str(timestamp)?}}

@endpoint POST /
@optional {FleetId: str, AliasId: str, Location: str, FilterExpression: str, SortExpression: str, Limit: int, NextToken: str}
@returns(200) {GameSessions: [GameSession]?, NextToken: str?}

@endpoint POST /
@required {FleetId: str, Actions: [str]}
@optional {Location: str}
@returns(200) {FleetId: str?, FleetArn: str?}

@endpoint POST /
@required {PlacementId: str, GameSessionQueueName: str, MaximumPlayerSessionCount: int}
@optional {GameProperties: [GameProperty], GameSessionName: str, PlayerLatencies: [PlayerLatency], DesiredPlayerSessions: [DesiredPlayerSession], GameSessionData: str}
@returns(200) {GameSessionPlacement: GameSessionPlacement?{PlacementId: str?, GameSessionQueueName: str?, Status: str?, GameProperties: [GameProperty]?, MaximumPlayerSessionCount: int?, GameSessionName: str?, GameSessionId: str?, GameSessionArn: str?, GameSessionRegion: str?, PlayerLatencies: [PlayerLatency]?, StartTime: str(timestamp)?, EndTime: str(timestamp)?, IpAddress: str?, DnsName: str?, Port: int?, PlacedPlayerSessions: [PlacedPlayerSession]?, GameSessionData: str?, MatchmakerData: str?}}

@endpoint POST /
@required {ConfigurationName: str, Players: [Player]}
@optional {TicketId: str, GameSessionArn: str}
@returns(200) {MatchmakingTicket: MatchmakingTicket?{TicketId: str?, ConfigurationName: str?, ConfigurationArn: str?, Status: str?, StatusReason: str?, StatusMessage: str?, StartTime: str(timestamp)?, EndTime: str(timestamp)?, Players: [Player]?, GameSessionConnectionInfo: GameSessionConnectionInfo?{GameSessionArn: str?, IpAddress: str?, DnsName: str?, Port: int?, MatchedPlayerSessions: [MatchedPlayerSession]?}, EstimatedWaitTime: int?}}

@endpoint POST /
@required {ConfigurationName: str, Players: [Player]}
@optional {TicketId: str}
@returns(200) {MatchmakingTicket: MatchmakingTicket?{TicketId: str?, ConfigurationName: str?, ConfigurationArn: str?, Status: str?, StatusReason: str?, StatusMessage: str?, StartTime: str(timestamp)?, EndTime: str(timestamp)?, Players: [Player]?, GameSessionConnectionInfo: GameSessionConnectionInfo?{GameSessionArn: str?, IpAddress: str?, DnsName: str?, Port: int?, MatchedPlayerSessions: [MatchedPlayerSession]?}, EstimatedWaitTime: int?}}

@endpoint POST /
@required {FleetId: str, Actions: [str]}
@optional {Location: str}
@returns(200) {FleetId: str?, FleetArn: str?}

@endpoint POST /
@required {PlacementId: str}
@returns(200) {GameSessionPlacement: GameSessionPlacement?{PlacementId: str?, GameSessionQueueName: str?, Status: str?, GameProperties: [GameProperty]?, MaximumPlayerSessionCount: int?, GameSessionName: str?, GameSessionId: str?, GameSessionArn: str?, GameSessionRegion: str?, PlayerLatencies: [PlayerLatency]?, StartTime: str(timestamp)?, EndTime: str(timestamp)?, IpAddress: str?, DnsName: str?, Port: int?, PlacedPlayerSessions: [PlacedPlayerSession]?, GameSessionData: str?, MatchmakerData: str?}}

@endpoint POST /
@required {TicketId: str}

@endpoint POST /
@required {GameServerGroupName: str, SuspendActions: [str]}
@returns(200) {GameServerGroup: GameServerGroup?{GameServerGroupName: str?, GameServerGroupArn: str?, RoleArn: str?, InstanceDefinitions: [InstanceDefinition]?, BalancingStrategy: str?, GameServerProtectionPolicy: str?, AutoScalingGroupArn: str?, Status: str?, StatusReason: str?, SuspendedActions: [str]?, CreationTime: str(timestamp)?, LastUpdatedTime: str(timestamp)?}}

@endpoint POST /
@required {ResourceARN: str, Tags: [Tag]}

@endpoint POST /
@required {ResourceARN: str, TagKeys: [str]}

@endpoint POST /
@required {AliasId: str}
@optional {Name: str, Description: str, RoutingStrategy: RoutingStrategy}
@returns(200) {Alias: Alias?{AliasId: str?, Name: str?, AliasArn: str?, Description: str?, RoutingStrategy: RoutingStrategy?{Type: str?, FleetId: str?, Message: str?}, CreationTime: str(timestamp)?, LastUpdatedTime: str(timestamp)?}}

@endpoint POST /
@required {BuildId: str}
@optional {Name: str, Version: str}
@returns(200) {Build: Build?{BuildId: str?, BuildArn: str?, Name: str?, Version: str?, Status: str?, SizeOnDisk: int(i64)?, OperatingSystem: str?, CreationTime: str(timestamp)?, ServerSdkVersion: str?}}

@endpoint POST /
@required {FleetId: str}
@optional {Name: str, Description: str, NewGameSessionProtectionPolicy: str, ResourceCreationLimitPolicy: ResourceCreationLimitPolicy, MetricGroups: [str], AnywhereConfiguration: AnywhereConfiguration}
@returns(200) {FleetId: str?, FleetArn: str?}

@endpoint POST /
@required {FleetId: str}
@optional {DesiredInstances: int, MinSize: int, MaxSize: int, Location: str}
@returns(200) {FleetId: str?, FleetArn: str?, Location: str?}

@endpoint POST /
@required {FleetId: str}
@optional {InboundPermissionAuthorizations: [IpPermission], InboundPermissionRevocations: [IpPermission]}
@returns(200) {FleetId: str?, FleetArn: str?}

@endpoint POST /
@required {GameServerGroupName: str, GameServerId: str}
@optional {GameServerData: str, UtilizationStatus: str, HealthCheck: str}
@returns(200) {GameServer: GameServer?{GameServerGroupName: str?, GameServerGroupArn: str?, GameServerId: str?, InstanceId: str?, ConnectionInfo: str?, GameServerData: str?, ClaimStatus: str?, UtilizationStatus: str?, RegistrationTime: str(timestamp)?, LastClaimTime: str(timestamp)?, LastHealthCheckTime: str(timestamp)?}}

@endpoint POST /
@required {GameServerGroupName: str}
@optional {RoleArn: str, InstanceDefinitions: [InstanceDefinition], GameServerProtectionPolicy: str, BalancingStrategy: str}
@returns(200) {GameServerGroup: GameServerGroup?{GameServerGroupName: str?, GameServerGroupArn: str?, RoleArn: str?, InstanceDefinitions: [InstanceDefinition]?, BalancingStrategy: str?, GameServerProtectionPolicy: str?, AutoScalingGroupArn: str?, Status: str?, StatusReason: str?, SuspendedActions: [str]?, CreationTime: str(timestamp)?, LastUpdatedTime: str(timestamp)?}}

@endpoint POST /
@required {GameSessionId: str}
@optional {MaximumPlayerSessionCount: int, Name: str, PlayerSessionCreationPolicy: str, ProtectionPolicy: str, GameProperties: [GameProperty]}
@returns(200) {GameSession: GameSession?{GameSessionId: str?, Name: str?, FleetId: str?, FleetArn: str?, CreationTime: str(timestamp)?, TerminationTime: str(timestamp)?, CurrentPlayerSessionCount: int?, MaximumPlayerSessionCount: int?, Status: str?, StatusReason: str?, GameProperties: [GameProperty]?, IpAddress: str?, DnsName: str?, Port: int?, PlayerSessionCreationPolicy: str?, CreatorId: str?, GameSessionData: str?, MatchmakerData: str?, Location: str?}}

@endpoint POST /
@required {Name: str}
@optional {TimeoutInSeconds: int, PlayerLatencyPolicies: [PlayerLatencyPolicy], Destinations: [GameSessionQueueDestination], FilterConfiguration: FilterConfiguration, PriorityConfiguration: PriorityConfiguration, CustomEventData: str, NotificationTarget: str}
@returns(200) {GameSessionQueue: GameSessionQueue?{Name: str?, GameSessionQueueArn: str?, TimeoutInSeconds: int?, PlayerLatencyPolicies: [PlayerLatencyPolicy]?, Destinations: [GameSessionQueueDestination]?, FilterConfiguration: FilterConfiguration?{AllowedLocations: [str]?}, PriorityConfiguration: PriorityConfiguration?{PriorityOrder: [str]?, LocationOrder: [str]?}, CustomEventData: str?, NotificationTarget: str?}}

@endpoint POST /
@required {Name: str}
@optional {Description: str, GameSessionQueueArns: [str], RequestTimeoutSeconds: int, AcceptanceTimeoutSeconds: int, AcceptanceRequired: bool, RuleSetName: str, NotificationTarget: str, AdditionalPlayerCount: int, CustomEventData: str, GameProperties: [GameProperty], GameSessionData: str, BackfillMode: str, FlexMatchMode: str}
@returns(200) {Configuration: MatchmakingConfiguration?{Name: str?, ConfigurationArn: str?, Description: str?, GameSessionQueueArns: [str]?, RequestTimeoutSeconds: int?, AcceptanceTimeoutSeconds: int?, AcceptanceRequired: bool?, RuleSetName: str?, RuleSetArn: str?, NotificationTarget: str?, AdditionalPlayerCount: int?, CustomEventData: str?, CreationTime: str(timestamp)?, GameProperties: [GameProperty]?, GameSessionData: str?, BackfillMode: str?, FlexMatchMode: str?}}

@endpoint POST /
@required {FleetId: str, RuntimeConfiguration: RuntimeConfiguration}
@returns(200) {RuntimeConfiguration: RuntimeConfiguration?{ServerProcesses: [ServerProcess]?, MaxConcurrentGameSessionActivations: int?, GameSessionActivationTimeoutSeconds: int?}}

@endpoint POST /
@required {ScriptId: str}
@optional {Name: str, Version: str, StorageLocation: S3Location, ZipFile: bytes}
@returns(200) {Script: Script?{ScriptId: str?, ScriptArn: str?, Name: str?, Version: str?, SizeOnDisk: int(i64)?, CreationTime: str(timestamp)?, StorageLocation: S3Location?{Bucket: str?, Key: str?, RoleArn: str?, ObjectVersion: str?}}}

@endpoint POST /
@required {RuleSetBody: str}
@returns(200) {Valid: bool?}

@end
