aws-elixir v0.0.9 AWS.GameLift

Amazon GameLift Service

Welcome to the Amazon GameLift API Reference. Amazon GameLift is a managed Amazon Web Services (AWS) service for developers who need a scalable, server-based solution for multiplayer games. Amazon GameLift provides setup and deployment of game servers, and handles infrastructure scaling and session management. For more information about the GameLift service, including a feature overview, getting started guide, and tutorial, see the accompanying Amazon GameLift Developer Guide.

This reference describes the low-level service API for GameLift. You can call this API directly or use the AWS SDK for your preferred language. The AWS SDK includes a set of high-level GameLift actions multiplayer game sessions. Alternatively, you can use the AWS command-line interface (CLI) tool, which includes commands for GameLift. For administrative actions, you can use the Amazon GameLift console.

Setting Up Your Game Servers

Use these administrative actions to configure GameLift to host your game servers. When configuring GameLift, you’ll need to (1) configure a build for your game and provide build files, and (2) set up one or more fleets to host game sessions.

  • **Build actions:**
    • `ListBuilds`
    • `CreateBuild`
    • `DescribeBuild`
    • `UpdateBuild`
    • `DeleteBuild`
    • `RequestUploadCredentials`
  • **Fleet actions:**
    • `ListFleets`
    • `CreateFleet`
    • Describe fleet actions:
      • `DescribeFleetAttributes`
      • `DescribeFleetCapacity`
      • `DescribeFleetPortSettings`
      • `DescribeFleetUtilization`
      • `DescribeEC2InstanceLimits`
      • `DescribeFleetEvents`
    • Update fleet actions:
      • `UpdateFleetAttributes`
      • `UpdateFleetCapacity`
      • `UpdateFleetPortSettings`
    • `DeleteFleet`
  • **Alias actions:**
    • `ListAliases`
    • `CreateAlias`
    • `DescribeAlias`
    • `UpdateAlias`
    • `DeleteAlias`
    • `ResolveAlias`
**Managing Game and Player Sessions Through GameLift** Call these actions from your game clients and/or services to create and manage multiplayer game sessions.
  • **Game sessions**
    • `CreateGameSession`
    • `DescribeGameSessions`
    • `UpdateGameSession`
  • **Player sessions**
    • `CreatePlayerSession`
    • `CreatePlayerSessions`
    • `DescribePlayerSessions`
  • **Other actions:**
    • `GetGameSessionLogUrl`

Summary

Functions

Creates an alias for a fleet. You can use an alias to anonymize your fleet by referencing an alias instead of a specific fleet when you create game sessions. Amazon GameLift supports two types of routing strategies for aliases: simple and terminal. Use a simple alias to point to an active fleet. Use a terminal alias to display a message to incoming traffic instead of routing players to an active fleet. This option is useful when a game server is no longer supported but you want to provide better messaging than a standard 404 error

Initializes a new build record and generates information required to upload a game build to Amazon GameLift. Once the build record has been created and is in an INITIALIZED state, you can upload your game build

Creates a new fleet to host game servers. A fleet consists of a set of Amazon Elastic Compute Cloud (Amazon EC2) instances of a certain type, which defines the CPU, memory, storage, and networking capacity of each host in the fleet. See Amazon EC2 Instance Types for more information. Each instance in the fleet hosts a game server created from the specified game build. Once a fleet is in an ACTIVE state, it can begin hosting game sessions

Creates a multiplayer game session for players. This action creates a game session record and assigns the new session to an instance in the specified fleet, which activates the server initialization process in your game server. A fleet must be in an ACTIVE state before a game session can be created for it

Adds a player to a game session and creates a player session record. A game session must be in an ACTIVE state, have a creation policy of ALLOW_ALL, and have an open player slot before players can be added to the session

Adds a group of players to a game session. Similar to CreatePlayerSession, this action allows you to add multiple players in a single call, which is useful for games that provide party and/or matchmaking features. A game session must be in an ACTIVE state, have a creation policy of ALLOW_ALL, and have an open player slot before players can be added to the session

Deletes an alias. This action removes all record of the alias; game clients attempting to access a game server using the deleted alias receive an error. To delete an alias, specify the alias ID to be deleted

Deletes a build. This action permanently deletes the build record and any uploaded build files

Deletes everything related to a fleet. Before deleting a fleet, you must set the fleet’s desired capacity to zero. See UpdateFleetCapacity

Retrieves properties for a specified alias. To get the alias, specify an alias ID. If successful, an Alias object is returned

Retrieves properties for a build. To get a build record, specify a build ID. If successful, an object containing the build properties is returned

Retrieves the maximum number of instances allowed, per AWS account, for each specified EC2 instance type. The current usage level for the AWS account is also retrieved

Retrieves fleet properties, including metadata, status, and configuration, for one or more fleets. You can request attributes for all fleets, or specify a list of one or more fleet IDs. When requesting all fleets, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a FleetAttributes object is returned for each requested fleet ID. When specifying a list of fleet IDs, attribute objects are returned only for fleets that currently exist

Retrieves the current status of fleet capacity for one or more fleets. This information includes the number of instances that have been requested for the fleet and the number currently active. You can request capacity for all fleets, or specify a list of one or more fleet IDs. When requesting all fleets, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a FleetCapacity object is returned for each requested fleet ID. When specifying a list of fleet IDs, attribute objects are returned only for fleets that currently exist

Retrieves entries from the fleet event log. You can specify a time range to limit the result set. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, a collection of event log entries matching the request are returned

Retrieves the port settings for a fleet. Port settings are used to limit incoming traffic access to game servers in the fleet. To get a fleet’s port settings, specify a fleet ID. If successful, an IpPermission object is returned for the requested fleet ID. If the requested fleet has been deleted, the result set will be empty

Retrieves utilization statistics for one or more fleets. You can request utilization data for all fleets, or specify a list of one or more fleet IDs. When requesting all fleets, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a FleetUtilization object is returned for each requested fleet ID. When specifying a list of fleet IDs, utilization objects are returned only for fleets that currently exist

Retrieves properties for one or more game sessions. This action can be used in several ways: (1) provide a GameSessionId parameter to request properties for a specific game session; (2) provide a FleetId or AliasId parameter to request properties for all game sessions running on a fleet

Retrieves properties for one or more player sessions. This action can be used in several ways: (1) provide a PlayerSessionId parameter to request properties for a specific player session; (2) provide a GameSessionId parameter to request properties for all player sessions in the specified game session; (3) provide a PlayerId parameter to request properties for all player sessions of a specified player

Retrieves the location of stored game session logs for a specified game session. When a game session is terminated, Amazon GameLift automatically stores the logs in Amazon S3. Use this URL to download the logs

Retrieves a collection of alias records for this AWS account. You can filter the result set by alias name and/or routing strategy type. Use the pagination parameters to retrieve results in sequential pages

Retrieves build records for all builds associated with an AWS account. You can filter the result set by build status. Use the pagination parameters to retrieve results in a set of sequential pages

Retrieves a collection of fleet records for this AWS account. You can filter the result set by build ID. Use the pagination parameters to retrieve results in sequential pages

Retrieves a fresh set of upload credentials and the assigned Amazon S3 storage location for a specific build. Valid credentials are required to upload your game build files to Amazon S3

Retrieves the fleet ID that a specified alias is currently pointing to

Updates properties for an alias. To update properties, specify the alias ID to be updated and provide the information to be changed. To reassign an alias to another fleet, provide an updated routing strategy. If successful, the updated alias record is returned

Updates metadata in a build record, including the build name and version. To update the metadata, specify the build ID to update and provide the new values. If successful, a build object containing the updated metadata is returned

Updates fleet properties, including name and description, for a fleet. To update metadata, specify the fleet ID and the property values you want to change. If successful, the fleet ID for the updated fleet is returned

Updates capacity settings for a fleet. Use this action to specify the number of EC2 instances (hosts) you want this fleet to contain. Before calling this action, you may want to call DescribeEC2InstanceLimits to get the maximum capacity based on the fleet’s EC2 instance type

Updates port settings for a fleet. To update settings, specify the fleet ID to be updated and list the permissions you want to update. List the permissions you want to add in InboundPermissionAuthorizations, and permissions you want to remove in InboundPermissionRevocations. Permissions to be removed must match existing fleet permissions. If successful, the fleet ID for the updated fleet is returned

Updates game session properties. This includes the session name, maximum player count and the player session creation policy, which either allows or denies new players from joining the session. To update a game session, specify the game session ID and the values you want to change. If successful, an updated GameSession object is returned

Functions

create_alias(client, input, options \\ [])

Creates an alias for a fleet. You can use an alias to anonymize your fleet by referencing an alias instead of a specific fleet when you create game sessions. Amazon GameLift supports two types of routing strategies for aliases: simple and terminal. Use a simple alias to point to an active fleet. Use a terminal alias to display a message to incoming traffic instead of routing players to an active fleet. This option is useful when a game server is no longer supported but you want to provide better messaging than a standard 404 error.

To create a fleet alias, specify an alias name, routing strategy, and optional description. If successful, a new alias record is returned, including an alias ID, which you can reference when creating a game session. To reassign the alias to another fleet ID, call UpdateAlias.

create_build(client, input, options \\ [])

Initializes a new build record and generates information required to upload a game build to Amazon GameLift. Once the build record has been created and is in an INITIALIZED state, you can upload your game build.

To create a build, use the CLI command `upload-build`, which creates a new build record and uploads the build files in one step. (See the [Amazon GameLift Developer Guide](http://docs.aws.amazon.com/gamelift/latest/developerguide/) for more details on the CLI and the upload process.) Call the `CreateBuild` action only if you have your own Amazon Simple Storage Service (Amazon S3) client and need to manually upload your build files. To create a new build, optionally specify a build name and

version. This metadata is stored with other properties in the build record and is displayed in the GameLift console (but not visible to players). If successful, this action returns the newly created build record along with an Amazon S3 storage location and AWS account credentials. Use the location and credentials to upload your game build.

create_fleet(client, input, options \\ [])

Creates a new fleet to host game servers. A fleet consists of a set of Amazon Elastic Compute Cloud (Amazon EC2) instances of a certain type, which defines the CPU, memory, storage, and networking capacity of each host in the fleet. See Amazon EC2 Instance Types for more information. Each instance in the fleet hosts a game server created from the specified game build. Once a fleet is in an ACTIVE state, it can begin hosting game sessions.

To create a new fleet, provide a name and the EC2 instance type for the new fleet, and specify the build and server launch path. Builds must be in a READY state before they can be used to build fleets. When configuring the new fleet, you can optionally (1) provide a set of launch parameters to be passed to a game server when activated; (2) limit incoming traffic to a specified range of IP addresses and port numbers; and (3) configure Amazon GameLift to store game session logs by specifying the path to the logs stored in your game server files. If the call is successful, Amazon GameLift performs the following tasks:

  • Creates a fleet record and sets the state to NEW.
  • Sets the fleet's capacity to 1 "desired" and 1 "active" EC2 instance count.
  • Creates an EC2 instance and begins the process of initializing the fleet and activating a game server on the instance.
  • Begins writing events to the fleet event log, which can be accessed in the GameLift console.
Once a fleet is created, use the following actions to change certain fleet properties (server launch parameters and log paths cannot be changed):
  • `UpdateFleetAttributes` -- Update fleet metadata, including name and description.
  • `UpdateFleetCapacity` -- Increase or decrease the number of instances you want the fleet to maintain.
  • `UpdateFleetPortSettings` -- Change the IP addresses and ports that allow access to incoming traffic.
create_game_session(client, input, options \\ [])

Creates a multiplayer game session for players. This action creates a game session record and assigns the new session to an instance in the specified fleet, which activates the server initialization process in your game server. A fleet must be in an ACTIVE state before a game session can be created for it.

To create a game session, specify either a fleet ID or an alias ID and indicate the maximum number of players the game session allows. You can also provide a name and a set of properties for your game (optional). If successful, a GameSession object is returned containing session properties, including an IP address. By default, newly created game sessions are set to accept adding any new players to the game session. Use UpdateGameSession to change the creation policy.

create_player_session(client, input, options \\ [])

Adds a player to a game session and creates a player session record. A game session must be in an ACTIVE state, have a creation policy of ALLOW_ALL, and have an open player slot before players can be added to the session.

To create a player session, specify a game session ID and player ID. If successful, the player is added to the game session and a new PlayerSession object is returned.

create_player_sessions(client, input, options \\ [])

Adds a group of players to a game session. Similar to CreatePlayerSession, this action allows you to add multiple players in a single call, which is useful for games that provide party and/or matchmaking features. A game session must be in an ACTIVE state, have a creation policy of ALLOW_ALL, and have an open player slot before players can be added to the session.

To create player sessions, specify a game session ID and a list of player IDs. If successful, the players are added to the game session and a set of new PlayerSession objects is returned.

delete_alias(client, input, options \\ [])

Deletes an alias. This action removes all record of the alias; game clients attempting to access a game server using the deleted alias receive an error. To delete an alias, specify the alias ID to be deleted.

delete_build(client, input, options \\ [])

Deletes a build. This action permanently deletes the build record and any uploaded build files.

To delete a build, specify its ID. Deleting a build does not affect the status of any active fleets, but you can no longer create new fleets for the deleted build.

delete_fleet(client, input, options \\ [])

Deletes everything related to a fleet. Before deleting a fleet, you must set the fleet’s desired capacity to zero. See UpdateFleetCapacity.

This action removes the fleet’s resources and the fleet record. Once a fleet is deleted, you can no longer use that fleet.

describe_alias(client, input, options \\ [])

Retrieves properties for a specified alias. To get the alias, specify an alias ID. If successful, an Alias object is returned.

describe_build(client, input, options \\ [])

Retrieves properties for a build. To get a build record, specify a build ID. If successful, an object containing the build properties is returned.

describe_e_c2_instance_limits(client, input, options \\ [])

Retrieves the maximum number of instances allowed, per AWS account, for each specified EC2 instance type. The current usage level for the AWS account is also retrieved.

describe_fleet_attributes(client, input, options \\ [])

Retrieves fleet properties, including metadata, status, and configuration, for one or more fleets. You can request attributes for all fleets, or specify a list of one or more fleet IDs. When requesting all fleets, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a FleetAttributes object is returned for each requested fleet ID. When specifying a list of fleet IDs, attribute objects are returned only for fleets that currently exist.

Some API actions may limit the number of fleet IDs allowed in one request. If a request exceeds this limit, the request fails and the error message includes the maximum allowed.
describe_fleet_capacity(client, input, options \\ [])

Retrieves the current status of fleet capacity for one or more fleets. This information includes the number of instances that have been requested for the fleet and the number currently active. You can request capacity for all fleets, or specify a list of one or more fleet IDs. When requesting all fleets, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a FleetCapacity object is returned for each requested fleet ID. When specifying a list of fleet IDs, attribute objects are returned only for fleets that currently exist.

Some API actions may limit the number of fleet IDs allowed in one request. If a request exceeds this limit, the request fails and the error message includes the maximum allowed.
describe_fleet_events(client, input, options \\ [])

Retrieves entries from the fleet event log. You can specify a time range to limit the result set. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, a collection of event log entries matching the request are returned.

describe_fleet_port_settings(client, input, options \\ [])

Retrieves the port settings for a fleet. Port settings are used to limit incoming traffic access to game servers in the fleet. To get a fleet’s port settings, specify a fleet ID. If successful, an IpPermission object is returned for the requested fleet ID. If the requested fleet has been deleted, the result set will be empty.

describe_fleet_utilization(client, input, options \\ [])

Retrieves utilization statistics for one or more fleets. You can request utilization data for all fleets, or specify a list of one or more fleet IDs. When requesting all fleets, use the pagination parameters to retrieve results as a set of sequential pages. If successful, a FleetUtilization object is returned for each requested fleet ID. When specifying a list of fleet IDs, utilization objects are returned only for fleets that currently exist.

Some API actions may limit the number of fleet IDs allowed in one request. If a request exceeds this limit, the request fails and the error message includes the maximum allowed.
describe_game_sessions(client, input, options \\ [])

Retrieves properties for one or more game sessions. This action can be used in several ways: (1) provide a GameSessionId parameter to request properties for a specific game session; (2) provide a FleetId or AliasId parameter to request properties for all game sessions running on a fleet.

To get game session record(s), specify only one of the following: game session ID, fleet ID, or alias ID. You can filter this request by game session status. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, a GameSession object is returned for each session matching the request.

describe_player_sessions(client, input, options \\ [])

Retrieves properties for one or more player sessions. This action can be used in several ways: (1) provide a PlayerSessionId parameter to request properties for a specific player session; (2) provide a GameSessionId parameter to request properties for all player sessions in the specified game session; (3) provide a PlayerId parameter to request properties for all player sessions of a specified player.

To get game session record(s), specify only one of the following: a player session ID, a game session ID, or a player ID. You can filter this request by player session status. Use the pagination parameters to retrieve results as a set of sequential pages. If successful, a PlayerSession object is returned for each session matching the request.

get_game_session_log_url(client, input, options \\ [])

Retrieves the location of stored game session logs for a specified game session. When a game session is terminated, Amazon GameLift automatically stores the logs in Amazon S3. Use this URL to download the logs.

See the [AWS Service Limits](http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_gamelift) page for maximum log file sizes. Log files that exceed this limit are not saved.
list_aliases(client, input, options \\ [])

Retrieves a collection of alias records for this AWS account. You can filter the result set by alias name and/or routing strategy type. Use the pagination parameters to retrieve results in sequential pages.

Aliases are not listed in any particular order.
list_builds(client, input, options \\ [])

Retrieves build records for all builds associated with an AWS account. You can filter the result set by build status. Use the pagination parameters to retrieve results in a set of sequential pages.

Build records are not listed in any particular order.
list_fleets(client, input, options \\ [])

Retrieves a collection of fleet records for this AWS account. You can filter the result set by build ID. Use the pagination parameters to retrieve results in sequential pages.

Fleet records are not listed in any particular order.
request_upload_credentials(client, input, options \\ [])

Retrieves a fresh set of upload credentials and the assigned Amazon S3 storage location for a specific build. Valid credentials are required to upload your game build files to Amazon S3.

Call this action only if you need credentials for a build created with `CreateBuild`. This is a rare situation; in most cases, builds are created using the CLI command `upload-build`, which creates a build record and also uploads build files. Upload credentials are returned when you create the build, but

they have a limited lifespan. You can get fresh credentials and use them to re-upload game files until the state of that build changes to READY. Once this happens, you must create a brand new build.

resolve_alias(client, input, options \\ [])

Retrieves the fleet ID that a specified alias is currently pointing to.

update_alias(client, input, options \\ [])

Updates properties for an alias. To update properties, specify the alias ID to be updated and provide the information to be changed. To reassign an alias to another fleet, provide an updated routing strategy. If successful, the updated alias record is returned.

update_build(client, input, options \\ [])

Updates metadata in a build record, including the build name and version. To update the metadata, specify the build ID to update and provide the new values. If successful, a build object containing the updated metadata is returned.

update_fleet_attributes(client, input, options \\ [])

Updates fleet properties, including name and description, for a fleet. To update metadata, specify the fleet ID and the property values you want to change. If successful, the fleet ID for the updated fleet is returned.

update_fleet_capacity(client, input, options \\ [])

Updates capacity settings for a fleet. Use this action to specify the number of EC2 instances (hosts) you want this fleet to contain. Before calling this action, you may want to call DescribeEC2InstanceLimits to get the maximum capacity based on the fleet’s EC2 instance type.

To update fleet capacity, specify the fleet ID and the desired number of instances. If successful, Amazon GameLift starts or terminates instances so that the fleet’s active instance count matches the desired instance count. You can view a fleet’s current capacity information by calling DescribeFleetCapacity. If the desired instance count is higher than the instance type’s limit, the “Limit Exceeded” exception will occur.

update_fleet_port_settings(client, input, options \\ [])

Updates port settings for a fleet. To update settings, specify the fleet ID to be updated and list the permissions you want to update. List the permissions you want to add in InboundPermissionAuthorizations, and permissions you want to remove in InboundPermissionRevocations. Permissions to be removed must match existing fleet permissions. If successful, the fleet ID for the updated fleet is returned.

update_game_session(client, input, options \\ [])

Updates game session properties. This includes the session name, maximum player count and the player session creation policy, which either allows or denies new players from joining the session. To update a game session, specify the game session ID and the values you want to change. If successful, an updated GameSession object is returned.