%% WARNING: DO NOT EDIT, AUTO-GENERATED CODE!
%% See https://github.com/aws-beam/aws-codegen for more details.
%% @doc Amazon GameLift Service
%%
%% Amazon GameLift provides a range of multiplayer game hosting solutions. As
%% a fully managed service, GameLift helps you:
%%
%%
- Set up EC2-based computing resources and use GameLift FleetIQ to
%% and deploy your game servers on low-cost, reliable Spot instances.
%%
%%
- Track game server availability and route players into game
%% sessions to minimize latency.
%%
%%
- Automatically scale your resources to meet player demand and
%% manage costs
%%
%%
- Optionally add FlexMatch matchmaking.
%%
%%
With GameLift as a managed service, you have the option to
%% deploy your custom game server or use Amazon GameLift Realtime Servers to
%% quickly stand up lightweight game servers for your game. Realtime Servers
%% provides an efficient game server framework with core Amazon GameLift
%% infrastructure already built in.
%%
%% Now in Public Preview:
%%
%% Use GameLift FleetIQ as a standalone feature with EC2 instances and Auto
%% Scaling groups. GameLift FleetIQ provides optimizations that make low-cost
%% Spot instances viable for game hosting. This extension of GameLift FleetIQ
%% gives you access to these optimizations while managing your EC2 instances
%% and Auto Scaling groups within your own AWS account.
%%
%% Get Amazon GameLift Tools and Resources
%%
%% This reference guide describes the low-level service API for Amazon
%% GameLift and provides links to language-specific SDK reference topics. See
%% also
%% Amazon GameLift Tools and Resources.
%%
%% API Summary
%%
%% The Amazon GameLift service API includes two key sets of actions:
%%
%% - Manage game sessions and player access -- Integrate this
%% functionality into game client services in order to create new game
%% sessions, retrieve information on existing game sessions; reserve a player
%% slot in a game session, request matchmaking, etc.
%%
%%
- Configure and manage game server resources -- Manage your
%% Amazon GameLift hosting resources, including builds, scripts, fleets,
%% queues, and aliases. Set up matchmakers, configure auto-scaling, retrieve
%% game logs, and get hosting and game metrics.
%%
%%
%% Task-based list of API actions
-module(aws_gamelift).
-export([accept_match/2,
accept_match/3,
claim_game_server/2,
claim_game_server/3,
create_alias/2,
create_alias/3,
create_build/2,
create_build/3,
create_fleet/2,
create_fleet/3,
create_game_server_group/2,
create_game_server_group/3,
create_game_session/2,
create_game_session/3,
create_game_session_queue/2,
create_game_session_queue/3,
create_matchmaking_configuration/2,
create_matchmaking_configuration/3,
create_matchmaking_rule_set/2,
create_matchmaking_rule_set/3,
create_player_session/2,
create_player_session/3,
create_player_sessions/2,
create_player_sessions/3,
create_script/2,
create_script/3,
create_vpc_peering_authorization/2,
create_vpc_peering_authorization/3,
create_vpc_peering_connection/2,
create_vpc_peering_connection/3,
delete_alias/2,
delete_alias/3,
delete_build/2,
delete_build/3,
delete_fleet/2,
delete_fleet/3,
delete_game_server_group/2,
delete_game_server_group/3,
delete_game_session_queue/2,
delete_game_session_queue/3,
delete_matchmaking_configuration/2,
delete_matchmaking_configuration/3,
delete_matchmaking_rule_set/2,
delete_matchmaking_rule_set/3,
delete_scaling_policy/2,
delete_scaling_policy/3,
delete_script/2,
delete_script/3,
delete_vpc_peering_authorization/2,
delete_vpc_peering_authorization/3,
delete_vpc_peering_connection/2,
delete_vpc_peering_connection/3,
deregister_game_server/2,
deregister_game_server/3,
describe_alias/2,
describe_alias/3,
describe_build/2,
describe_build/3,
describe_e_c2_instance_limits/2,
describe_e_c2_instance_limits/3,
describe_fleet_attributes/2,
describe_fleet_attributes/3,
describe_fleet_capacity/2,
describe_fleet_capacity/3,
describe_fleet_events/2,
describe_fleet_events/3,
describe_fleet_port_settings/2,
describe_fleet_port_settings/3,
describe_fleet_utilization/2,
describe_fleet_utilization/3,
describe_game_server/2,
describe_game_server/3,
describe_game_server_group/2,
describe_game_server_group/3,
describe_game_session_details/2,
describe_game_session_details/3,
describe_game_session_placement/2,
describe_game_session_placement/3,
describe_game_session_queues/2,
describe_game_session_queues/3,
describe_game_sessions/2,
describe_game_sessions/3,
describe_instances/2,
describe_instances/3,
describe_matchmaking/2,
describe_matchmaking/3,
describe_matchmaking_configurations/2,
describe_matchmaking_configurations/3,
describe_matchmaking_rule_sets/2,
describe_matchmaking_rule_sets/3,
describe_player_sessions/2,
describe_player_sessions/3,
describe_runtime_configuration/2,
describe_runtime_configuration/3,
describe_scaling_policies/2,
describe_scaling_policies/3,
describe_script/2,
describe_script/3,
describe_vpc_peering_authorizations/2,
describe_vpc_peering_authorizations/3,
describe_vpc_peering_connections/2,
describe_vpc_peering_connections/3,
get_game_session_log_url/2,
get_game_session_log_url/3,
get_instance_access/2,
get_instance_access/3,
list_aliases/2,
list_aliases/3,
list_builds/2,
list_builds/3,
list_fleets/2,
list_fleets/3,
list_game_server_groups/2,
list_game_server_groups/3,
list_game_servers/2,
list_game_servers/3,
list_scripts/2,
list_scripts/3,
list_tags_for_resource/2,
list_tags_for_resource/3,
put_scaling_policy/2,
put_scaling_policy/3,
register_game_server/2,
register_game_server/3,
request_upload_credentials/2,
request_upload_credentials/3,
resolve_alias/2,
resolve_alias/3,
resume_game_server_group/2,
resume_game_server_group/3,
search_game_sessions/2,
search_game_sessions/3,
start_fleet_actions/2,
start_fleet_actions/3,
start_game_session_placement/2,
start_game_session_placement/3,
start_match_backfill/2,
start_match_backfill/3,
start_matchmaking/2,
start_matchmaking/3,
stop_fleet_actions/2,
stop_fleet_actions/3,
stop_game_session_placement/2,
stop_game_session_placement/3,
stop_matchmaking/2,
stop_matchmaking/3,
suspend_game_server_group/2,
suspend_game_server_group/3,
tag_resource/2,
tag_resource/3,
untag_resource/2,
untag_resource/3,
update_alias/2,
update_alias/3,
update_build/2,
update_build/3,
update_fleet_attributes/2,
update_fleet_attributes/3,
update_fleet_capacity/2,
update_fleet_capacity/3,
update_fleet_port_settings/2,
update_fleet_port_settings/3,
update_game_server/2,
update_game_server/3,
update_game_server_group/2,
update_game_server_group/3,
update_game_session/2,
update_game_session/3,
update_game_session_queue/2,
update_game_session_queue/3,
update_matchmaking_configuration/2,
update_matchmaking_configuration/3,
update_runtime_configuration/2,
update_runtime_configuration/3,
update_script/2,
update_script/3,
validate_matchmaking_rule_set/2,
validate_matchmaking_rule_set/3]).
-include_lib("hackney/include/hackney_lib.hrl").
%%====================================================================
%% API
%%====================================================================
%% @doc Registers a player's acceptance or rejection of a proposed FlexMatch
%% match. A matchmaking configuration may require player acceptance; if so,
%% then matches built with that configuration cannot be completed unless all
%% players accept the proposed match within a specified time limit.
%%
%% When FlexMatch builds a match, all the matchmaking tickets involved in the
%% proposed match are placed into status REQUIRES_ACCEPTANCE.
%% This is a trigger for your game to get acceptance from all players in the
%% ticket. Acceptances are only valid for tickets when they are in this
%% status; all other acceptances result in an error.
%%
%% To register acceptance, specify the ticket ID, a response, and one or more
%% players. Once all players have registered acceptance, the matchmaking
%% tickets advance to status PLACING, where a new game session
%% is created for the match.
%%
%% If any player rejects the match, or if acceptances are not received before
%% a specified timeout, the proposed match is dropped. The matchmaking
%% tickets are then handled in one of two ways: For tickets where one or more
%% players rejected the match, the ticket status is returned to
%% SEARCHING to find a new match. For tickets where one or more
%% players failed to respond, the ticket status is set to
%% CANCELLED, and processing is terminated. A new matchmaking
%% request for these players can be submitted as needed.
%%
%% Learn more
%%
%%
%% Add FlexMatch to a Game Client
%%
%%
%% FlexMatch Events Reference
%%
%% Related operations
%%
%%
accept_match(Client, Input)
when is_map(Client), is_map(Input) ->
accept_match(Client, Input, []).
accept_match(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"AcceptMatch">>, Input, Options).
%% @doc This action is part of Amazon GameLift FleetIQ with game server
%% groups, which is in preview release and is subject to change.
%%
%% Locates an available game server and temporarily reserves it to host
%% gameplay and players. This action is called by a game client or client
%% service (such as a matchmaker) to request hosting resources for a new game
%% session. In response, GameLift FleetIQ searches for an available game
%% server in the specified game server group, places the game server in
%% "claimed" status for 60 seconds, and returns connection information back
%% to the requester so that players can connect to the game server.
%%
%% There are two ways you can claim a game server. For the first option, you
%% provide a game server group ID only, which prompts GameLift FleetIQ to
%% search for an available game server in the specified group and claim it.
%% With this option, GameLift FleetIQ attempts to consolidate gameplay on as
%% few instances as possible to minimize hosting costs. For the second
%% option, you request a specific game server by its ID. This option results
%% in a less efficient claiming process because it does not take advantage of
%% consolidation and may fail if the requested game server is unavailable.
%%
%% To claim a game server, identify a game server group and (optionally) a
%% game server ID. If your game requires that game data be provided to the
%% game server at the start of a game, such as a game map or player
%% information, you can provide it in your claim request.
%%
%% When a game server is successfully claimed, connection information is
%% returned. A claimed game server's utilization status remains AVAILABLE,
%% while the claim status is set to CLAIMED for up to 60 seconds. This time
%% period allows the game server to be prompted to update its status to
%% UTILIZED (using UpdateGameServer). If the game server's status is
%% not updated within 60 seconds, the game server reverts to unclaimed status
%% and is available to be claimed by another request.
%%
%% If you try to claim a specific game server, this request will fail in the
%% following cases: (1) if the game server utilization status is UTILIZED,
%% (2) if the game server claim status is CLAIMED, or (3) if the instance
%% that the game server is running on is flagged as draining.
%%
%% Learn more
%%
%% GameLift
%% FleetIQ Guide
%%
%% Related operations
%%
%%
claim_game_server(Client, Input)
when is_map(Client), is_map(Input) ->
claim_game_server(Client, Input, []).
claim_game_server(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ClaimGameServer">>, Input, Options).
%% @doc Creates an alias for a fleet. In most situations, you can use an
%% alias ID in place of a fleet ID. An alias provides a level of abstraction
%% for a fleet that is useful when redirecting player traffic from one fleet
%% to another, such as when updating your game build.
%%
%% Amazon GameLift supports two types of routing strategies for aliases:
%% simple and terminal. A simple alias points to an active fleet. A terminal
%% alias is used to display messaging or link to a URL instead of routing
%% players to an active fleet. For example, you might use a terminal alias
%% when a game version is no longer supported and you want to direct players
%% to an upgrade site.
%%
%% To create a fleet alias, specify an alias name, routing strategy, and
%% optional description. Each simple alias can point to only one fleet, but a
%% fleet can have multiple aliases. If successful, a new alias record is
%% returned, including an alias ID and an ARN. You can reassign an alias to
%% another fleet by calling UpdateAlias.
%%
%%
create_alias(Client, Input)
when is_map(Client), is_map(Input) ->
create_alias(Client, Input, []).
create_alias(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreateAlias">>, Input, Options).
%% @doc Creates a new Amazon GameLift build resource for your game server
%% binary files. Game server binaries must be combined into a zip file for
%% use with Amazon GameLift.
%%
%% When setting up a new game build for GameLift, we recommend
%% using the AWS CLI command upload-build
%% . This helper command combines two tasks: (1) it uploads your build
%% files from a file directory to a GameLift Amazon S3 location, and (2) it
%% creates a new build resource.
%%
%% The CreateBuild operation can used in the
%% following scenarios:
%%
%% - To create a new game build with build files that are in an S3
%% location under an AWS account that you control. To use this option, you
%% must first give Amazon GameLift access to the S3 bucket. With permissions
%% in place, call
CreateBuild and specify a build name,
%% operating system, and the S3 storage location of your game build.
%%
%% - To directly upload your build files to a GameLift S3 location.
%% To use this option, first call
CreateBuild and specify a
%% build name and operating system. This action creates a new build resource
%% and also returns an S3 location with temporary access credentials. Use the
%% credentials to manually upload your build files to the specified S3
%% location. For more information, see Uploading
%% Objects in the Amazon S3 Developer Guide. Build files can be
%% uploaded to the GameLift S3 location once only; that can't be updated.
%%
%%
If successful, this operation creates a new build resource
%% with a unique build ID and places it in INITIALIZED status. A
%% build must be in READY status before you can create fleets
%% with it.
%%
%% Learn more
%%
%% Uploading
%% Your Game
%%
%%
%% Create a Build with Files in Amazon S3
%%
%% Related operations
%%
%%
create_build(Client, Input)
when is_map(Client), is_map(Input) ->
create_build(Client, Input, []).
create_build(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreateBuild">>, Input, Options).
%% @doc Creates a new fleet to run your game servers. whether they are custom
%% game builds or Realtime Servers with game-specific script. A fleet is a
%% set of Amazon Elastic Compute Cloud (Amazon EC2) instances, each of which
%% can host multiple game sessions. When creating a fleet, you choose the
%% hardware specifications, set some configuration options, and specify the
%% game server to deploy on the new fleet.
%%
%% To create a new fleet, provide the following: (1) a fleet name, (2) an EC2
%% instance type and fleet type (spot or on-demand), (3) the build ID for
%% your game build or script ID if using Realtime Servers, and (4) a runtime
%% configuration, which determines how game servers will run on each instance
%% in the fleet.
%%
%% If the CreateFleet call is successful, Amazon GameLift
%% performs the following tasks. You can track the process of a fleet by
%% checking the fleet status or by monitoring fleet creation events:
%%
%% - Creates a fleet resource. Status:
NEW.
%%
%% - Begins writing events to the fleet event log, which can be
%% accessed in the Amazon GameLift console.
%%
%%
- Sets the fleet's target capacity to 1 (desired instances),
%% which triggers Amazon GameLift to start one new EC2 instance.
%%
%%
- Downloads the game build or Realtime script to the new instance
%% and installs it. Statuses:
DOWNLOADING,
%% VALIDATING, BUILDING.
%%
%% - Starts launching server processes on the instance. If the fleet
%% is configured to run multiple server processes per instance, Amazon
%% GameLift staggers each process launch by a few seconds. Status:
%%
ACTIVATING.
%%
%% - Sets the fleet's status to
ACTIVE as soon as one
%% server process is ready to host a game session.
%%
%%
Learn more
%%
%% Setting
%% Up Fleets
%%
%% Debug
%% Fleet Creation Issues
%%
%% Related operations
%%
%%
create_fleet(Client, Input)
when is_map(Client), is_map(Input) ->
create_fleet(Client, Input, []).
create_fleet(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreateFleet">>, Input, Options).
%% @doc This action is part of Amazon GameLift FleetIQ with game server
%% groups, which is in preview release and is subject to change.
%%
%% Creates a GameLift FleetIQ game server group to manage a collection of EC2
%% instances for game hosting. In addition to creating the game server group,
%% this action also creates an Auto Scaling group in your AWS account and
%% establishes a link between the two groups. You have full control over
%% configuration of the Auto Scaling group, but GameLift FleetIQ routinely
%% certain Auto Scaling group properties in order to optimize the group's
%% instances for low-cost game hosting. You can view the status of your game
%% server groups in the GameLift Console. Game server group metrics and
%% events are emitted to Amazon CloudWatch.
%%
%% Prior creating a new game server group, you must set up the following:
%%
%% - An EC2 launch template. The template provides configuration
%% settings for a set of EC2 instances and includes the game server build
%% that you want to deploy and run on each instance. For more information on
%% creating a launch template, see
%% Launching an Instance from a Launch Template in the Amazon EC2 User
%% Guide.
%%
%%
- An IAM role. The role sets up limited access to your AWS
%% account, allowing GameLift FleetIQ to create and manage the EC2 Auto
%% Scaling group, get instance data, and emit metrics and events to
%% CloudWatch. For more information on setting up an IAM permissions policy
%% with principal access for GameLift, see
%% Specifying a Principal in a Policy in the Amazon S3 Developer
%% Guide.
%%
%%
To create a new game server group, provide a name and specify
%% the IAM role and EC2 launch template. You also need to provide a list of
%% instance types to be used in the group and set initial maximum and minimum
%% limits on the group's instance count. You can optionally set an
%% autoscaling policy with target tracking based on a GameLift FleetIQ
%% metric.
%%
%% Once the game server group and corresponding Auto Scaling group are
%% created, you have full access to change the Auto Scaling group's
%% configuration as needed. Keep in mind, however, that some properties are
%% periodically updated by GameLift FleetIQ as it balances the group's
%% instances based on availability and cost.
%%
%% Learn more
%%
%% GameLift
%% FleetIQ Guide
%%
%% Updating
%% a GameLift FleetIQ-Linked Auto Scaling Group
%%
%% Related operations
%%
%%
create_game_server_group(Client, Input)
when is_map(Client), is_map(Input) ->
create_game_server_group(Client, Input, []).
create_game_server_group(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreateGameServerGroup">>, Input, Options).
%% @doc Creates a multiplayer game session for players. This action creates a
%% game session record and assigns an available server process in the
%% specified fleet to host the game session. A fleet must have an
%% ACTIVE status before a game session can be created in it.
%%
%% To create a game session, specify either fleet ID or alias ID and indicate
%% a maximum number of players to allow in the game session. You can also
%% provide a name and game-specific properties for this game session. If
%% successful, a GameSession object is returned containing the game
%% session properties and other settings you specified.
%%
%% Idempotency tokens. You can add a token that uniquely identifies
%% game session requests. This is useful for ensuring that game session
%% requests are idempotent. Multiple requests with the same idempotency token
%% are processed only once; subsequent requests return the original result.
%% All response values are the same with the exception of game session
%% status, which may change.
%%
%% Resource creation limits. If you are creating a game session on a
%% fleet with a resource creation limit policy in force, then you must
%% specify a creator ID. Without this ID, Amazon GameLift has no way to
%% evaluate the policy for this new game session request.
%%
%% Player acceptance policy. By default, newly created game sessions
%% are open to new players. You can restrict new player access by using
%% UpdateGameSession to change the game session's player session
%% creation policy.
%%
%% Game session logs. Logs are retained for all active game sessions
%% for 14 days. To access the logs, call GetGameSessionLogUrl to
%% download the log files.
%%
%% Available in Amazon GameLift Local.
%%
%%
create_game_session(Client, Input)
when is_map(Client), is_map(Input) ->
create_game_session(Client, Input, []).
create_game_session(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreateGameSession">>, Input, Options).
%% @doc Establishes a new queue for processing requests to place new game
%% sessions. A queue identifies where new game sessions can be hosted -- by
%% specifying a list of destinations (fleets or aliases) -- and how long
%% requests can wait in the queue before timing out. You can set up a queue
%% to try to place game sessions on fleets in multiple Regions. To add
%% placement requests to a queue, call StartGameSessionPlacement and
%% reference the queue name.
%%
%% Destination order. When processing a request for a game session,
%% Amazon GameLift tries each destination in order until it finds one with
%% available resources to host the new game session. A queue's default order
%% is determined by how destinations are listed. The default order is
%% overridden when a game session placement request provides player latency
%% information. Player latency information enables Amazon GameLift to
%% prioritize destinations where players report the lowest average latency,
%% as a result placing the new game session where the majority of players
%% will have the best possible gameplay experience.
%%
%% Player latency policies. For placement requests containing player
%% latency information, use player latency policies to protect individual
%% players from very high latencies. With a latency cap, even when a
%% destination can deliver a low latency for most players, the game is not
%% placed where any individual player is reporting latency higher than a
%% policy's maximum. A queue can have multiple latency policies, which are
%% enforced consecutively starting with the policy with the lowest latency
%% cap. Use multiple policies to gradually relax latency controls; for
%% example, you might set a policy with a low latency cap for the first 60
%% seconds, a second policy with a higher cap for the next 60 seconds, etc.
%%
%% To create a new queue, provide a name, timeout value, a list of
%% destinations and, if desired, a set of latency policies. If successful, a
%% new queue object is returned.
%%
%% Learn more
%%
%%
%% Design a Game Session Queue
%%
%%
%% Create a Game Session Queue
%%
%% Related operations
%%
%%
create_game_session_queue(Client, Input)
when is_map(Client), is_map(Input) ->
create_game_session_queue(Client, Input, []).
create_game_session_queue(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreateGameSessionQueue">>, Input, Options).
%% @doc Defines a new matchmaking configuration for use with FlexMatch. A
%% matchmaking configuration sets out guidelines for matching players and
%% getting the matches into games. You can set up multiple matchmaking
%% configurations to handle the scenarios needed for your game. Each
%% matchmaking ticket (StartMatchmaking or StartMatchBackfill)
%% specifies a configuration for the match and provides player attributes to
%% support the configuration being used.
%%
%% To create a matchmaking configuration, at a minimum you must specify the
%% following: configuration name; a rule set that governs how to evaluate
%% players and find acceptable matches; a game session queue to use when
%% placing a new game session for the match; and the maximum time allowed for
%% a matchmaking attempt.
%%
%% There are two ways to track the progress of matchmaking tickets: (1)
%% polling ticket status with DescribeMatchmaking; or (2) receiving
%% notifications with Amazon Simple Notification Service (SNS). To use
%% notifications, you first need to set up an SNS topic to receive the
%% notifications, and provide the topic ARN in the matchmaking configuration.
%% Since notifications promise only "best effort" delivery, we recommend
%% calling DescribeMatchmaking if no notifications are received
%% within 30 seconds.
%%
%% Learn more
%%
%%
%% Design a FlexMatch Matchmaker
%%
%%
%% Setting up Notifications for Matchmaking
%%
%% Related operations
%%
%%
create_matchmaking_configuration(Client, Input)
when is_map(Client), is_map(Input) ->
create_matchmaking_configuration(Client, Input, []).
create_matchmaking_configuration(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreateMatchmakingConfiguration">>, Input, Options).
%% @doc Creates a new rule set for FlexMatch matchmaking. A rule set
%% describes the type of match to create, such as the number and size of
%% teams. It also sets the parameters for acceptable player matches, such as
%% minimum skill level or character type. A rule set is used by a
%% MatchmakingConfiguration.
%%
%% To create a matchmaking rule set, provide unique rule set name and the
%% rule set body in JSON format. Rule sets must be defined in the same Region
%% as the matchmaking configuration they are used with.
%%
%% Since matchmaking rule sets cannot be edited, it is a good idea to check
%% the rule set syntax using ValidateMatchmakingRuleSet before
%% creating a new rule set.
%%
%% Learn more
%%
%% Related operations
%%
%%
create_matchmaking_rule_set(Client, Input)
when is_map(Client), is_map(Input) ->
create_matchmaking_rule_set(Client, Input, []).
create_matchmaking_rule_set(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreateMatchmakingRuleSet">>, Input, Options).
%% @doc Reserves an open player slot in an active game session. Before a
%% player can be added, a game session must have an ACTIVE
%% status, have a creation policy of ALLOW_ALL, and have an open
%% player slot. To add a group of players to a game session, use
%% CreatePlayerSessions. When the player connects to the game server
%% and references a player session ID, the game server contacts the Amazon
%% GameLift service to validate the player reservation and accept the player.
%%
%% To create a player session, specify a game session ID, player ID, and
%% optionally a string of player data. If successful, a slot is reserved in
%% the game session for the player and a new PlayerSession object is
%% returned. Player sessions cannot be updated.
%%
%% Available in Amazon GameLift Local.
%%
%%
create_player_session(Client, Input)
when is_map(Client), is_map(Input) ->
create_player_session(Client, Input, []).
create_player_session(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreatePlayerSession">>, Input, Options).
%% @doc Reserves open slots in a game session for a group of players. Before
%% players can be added, a game session must have an ACTIVE
%% status, have a creation policy of ALLOW_ALL, and have an open
%% player slot. To add a single player to a game session, use
%% CreatePlayerSession. When a player connects to the game server and
%% references a player session ID, the game server contacts the Amazon
%% GameLift service to validate the player reservation and accept the player.
%%
%% To create player sessions, specify a game session ID, a list of player
%% IDs, and optionally a set of player data strings. If successful, a slot is
%% reserved in the game session for each player and a set of new
%% PlayerSession objects is returned. Player sessions cannot be
%% updated.
%%
%% Available in Amazon GameLift Local.
%%
%%
create_player_sessions(Client, Input)
when is_map(Client), is_map(Input) ->
create_player_sessions(Client, Input, []).
create_player_sessions(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreatePlayerSessions">>, Input, Options).
%% @doc Creates a new script record for your Realtime Servers script.
%% Realtime scripts are JavaScript that provide configuration settings and
%% optional custom game logic for your game. The script is deployed when you
%% create a Realtime Servers fleet to host your game sessions. Script logic
%% is executed during an active game session.
%%
%% To create a new script record, specify a script name and provide the
%% script file(s). The script files and all dependencies must be zipped into
%% a single file. You can pull the zip file from either of these locations:
%%
%% - A locally available directory. Use the ZipFile parameter
%% for this option.
%%
%%
- An Amazon Simple Storage Service (Amazon S3) bucket under your
%% AWS account. Use the StorageLocation parameter for this option.
%% You'll need to have an Identity Access Management (IAM) role that allows
%% the Amazon GameLift service to access your S3 bucket.
%%
%%
If the call is successful, a new script record is created with
%% a unique script ID. If the script file is provided as a local file, the
%% file is uploaded to an Amazon GameLift-owned S3 bucket and the script
%% record's storage location reflects this location. If the script file is
%% provided as an S3 bucket, Amazon GameLift accesses the file at this
%% storage location as needed for deployment.
%%
%% Learn more
%%
%% Amazon
%% GameLift Realtime Servers
%%
%% Set
%% Up a Role for Amazon GameLift Access
%%
%% Related operations
%%
%%
create_script(Client, Input)
when is_map(Client), is_map(Input) ->
create_script(Client, Input, []).
create_script(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreateScript">>, Input, Options).
%% @doc Requests authorization to create or delete a peer connection between
%% the VPC for your Amazon GameLift fleet and a virtual private cloud (VPC)
%% in your AWS account. VPC peering enables the game servers on your fleet to
%% communicate directly with other AWS resources. Once you've received
%% authorization, call CreateVpcPeeringConnection to establish the
%% peering connection. For more information, see VPC
%% Peering with Amazon GameLift Fleets.
%%
%% You can peer with VPCs that are owned by any AWS account you have access
%% to, including the account that you use to manage your Amazon GameLift
%% fleets. You cannot peer with VPCs that are in different Regions.
%%
%% To request authorization to create a connection, call this operation from
%% the AWS account with the VPC that you want to peer to your Amazon GameLift
%% fleet. For example, to enable your game servers to retrieve data from a
%% DynamoDB table, use the account that manages that DynamoDB resource.
%% Identify the following values: (1) The ID of the VPC that you want to peer
%% with, and (2) the ID of the AWS account that you use to manage Amazon
%% GameLift. If successful, VPC peering is authorized for the specified VPC.
%%
%% To request authorization to delete a connection, call this operation from
%% the AWS account with the VPC that is peered with your Amazon GameLift
%% fleet. Identify the following values: (1) VPC ID that you want to delete
%% the peering connection for, and (2) ID of the AWS account that you use to
%% manage Amazon GameLift.
%%
%% The authorization remains valid for 24 hours unless it is canceled by a
%% call to DeleteVpcPeeringAuthorization. You must create or delete
%% the peering connection while the authorization is valid.
%%
%%
create_vpc_peering_authorization(Client, Input)
when is_map(Client), is_map(Input) ->
create_vpc_peering_authorization(Client, Input, []).
create_vpc_peering_authorization(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreateVpcPeeringAuthorization">>, Input, Options).
%% @doc Establishes a VPC peering connection between a virtual private cloud
%% (VPC) in an AWS account with the VPC for your Amazon GameLift fleet. VPC
%% peering enables the game servers on your fleet to communicate directly
%% with other AWS resources. You can peer with VPCs in any AWS account that
%% you have access to, including the account that you use to manage your
%% Amazon GameLift fleets. You cannot peer with VPCs that are in different
%% Regions. For more information, see VPC
%% Peering with Amazon GameLift Fleets.
%%
%% Before calling this operation to establish the peering connection, you
%% first need to call CreateVpcPeeringAuthorization and identify the
%% VPC you want to peer with. Once the authorization for the specified VPC is
%% issued, you have 24 hours to establish the connection. These two
%% operations handle all tasks necessary to peer the two VPCs, including
%% acceptance, updating routing tables, etc.
%%
%% To establish the connection, call this operation from the AWS account that
%% is used to manage the Amazon GameLift fleets. Identify the following
%% values: (1) The ID of the fleet you want to be enable a VPC peering
%% connection for; (2) The AWS account with the VPC that you want to peer
%% with; and (3) The ID of the VPC you want to peer with. This operation is
%% asynchronous. If successful, a VpcPeeringConnection request is
%% created. You can use continuous polling to track the request's status
%% using DescribeVpcPeeringConnections, or by monitoring fleet events
%% for success or failure using DescribeFleetEvents.
%%
%%
create_vpc_peering_connection(Client, Input)
when is_map(Client), is_map(Input) ->
create_vpc_peering_connection(Client, Input, []).
create_vpc_peering_connection(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreateVpcPeeringConnection">>, Input, Options).
%% @doc Deletes an alias. This action removes all record of the alias. Game
%% clients attempting to access a server process using the deleted alias
%% receive an error. To delete an alias, specify the alias ID to be deleted.
%%
%%
delete_alias(Client, Input)
when is_map(Client), is_map(Input) ->
delete_alias(Client, Input, []).
delete_alias(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteAlias">>, Input, Options).
%% @doc Deletes a build. This action permanently deletes the build resource
%% and any uploaded build files. Deleting a build does not affect the status
%% of any active fleets using the build, but you can no longer create new
%% fleets with the deleted build.
%%
%% To delete a build, specify the build ID.
%%
%% Learn more
%%
%%
%% Upload a Custom Server Build
%%
%% Related operations
%%
%%
delete_build(Client, Input)
when is_map(Client), is_map(Input) ->
delete_build(Client, Input, []).
delete_build(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteBuild">>, Input, Options).
%% @doc Deletes everything related to a fleet. Before deleting a fleet, you
%% must set the fleet's desired capacity to zero. See
%% UpdateFleetCapacity.
%%
%% If the fleet being deleted has a VPC peering connection, you first need to
%% get a valid authorization (good for 24 hours) by calling
%% CreateVpcPeeringAuthorization. You do not need to explicitly delete
%% the VPC peering connection--this is done as part of the delete fleet
%% process.
%%
%% This action removes the fleet and its resources. Once a fleet is deleted,
%% you can no longer use any of the resource in that fleet.
%%
%% Learn more
%%
%% Setting
%% up GameLift Fleets
%%
%% Related operations
%%
%%
delete_fleet(Client, Input)
when is_map(Client), is_map(Input) ->
delete_fleet(Client, Input, []).
delete_fleet(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteFleet">>, Input, Options).
%% @doc This action is part of Amazon GameLift FleetIQ with game server
%% groups, which is in preview release and is subject to change.
%%
%% Terminates a game server group and permanently deletes the game server
%% group record. You have several options for how these resources are
%% impacted when deleting the game server group. Depending on the type of
%% delete action selected, this action may affect three types of resources:
%% the game server group, the corresponding Auto Scaling group, and all game
%% servers currently running in the group.
%%
%% To delete a game server group, identify the game server group to delete
%% and specify the type of delete action to initiate. Game server groups can
%% only be deleted if they are in ACTIVE or ERROR status.
%%
%% If the delete request is successful, a series of actions are kicked off.
%% The game server group status is changed to DELETE_SCHEDULED, which
%% prevents new game servers from being registered and stops autoscaling
%% activity. Once all game servers in the game server group are
%% de-registered, GameLift FleetIQ can begin deleting resources. If any of
%% the delete actions fail, the game server group is placed in ERROR status.
%%
%% GameLift FleetIQ emits delete events to Amazon CloudWatch.
%%
%% Learn more
%%
%% GameLift
%% FleetIQ Guide
%%
%% Related operations
%%
%%
delete_game_server_group(Client, Input)
when is_map(Client), is_map(Input) ->
delete_game_server_group(Client, Input, []).
delete_game_server_group(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteGameServerGroup">>, Input, Options).
%% @doc Deletes a game session queue. This action means that any
%% StartGameSessionPlacement requests that reference this queue will
%% fail. To delete a queue, specify the queue name.
%%
%% Learn more
%%
%%
%% Using Multi-Region Queues
%%
%% Related operations
%%
%%
delete_game_session_queue(Client, Input)
when is_map(Client), is_map(Input) ->
delete_game_session_queue(Client, Input, []).
delete_game_session_queue(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteGameSessionQueue">>, Input, Options).
%% @doc Permanently removes a FlexMatch matchmaking configuration. To delete,
%% specify the configuration name. A matchmaking configuration cannot be
%% deleted if it is being used in any active matchmaking tickets.
%%
%% Related operations
%%
%%
delete_matchmaking_configuration(Client, Input)
when is_map(Client), is_map(Input) ->
delete_matchmaking_configuration(Client, Input, []).
delete_matchmaking_configuration(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteMatchmakingConfiguration">>, Input, Options).
%% @doc Deletes an existing matchmaking rule set. To delete the rule set,
%% provide the rule set name. Rule sets cannot be deleted if they are
%% currently being used by a matchmaking configuration.
%%
%% Learn more
%%
%% Related operations
%%
%%
delete_matchmaking_rule_set(Client, Input)
when is_map(Client), is_map(Input) ->
delete_matchmaking_rule_set(Client, Input, []).
delete_matchmaking_rule_set(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteMatchmakingRuleSet">>, Input, Options).
%% @doc Deletes a fleet scaling policy. This action means that the policy is
%% no longer in force and removes all record of it. To delete a scaling
%% policy, specify both the scaling policy name and the fleet ID it is
%% associated with.
%%
%% To temporarily suspend scaling policies, call StopFleetActions.
%% This operation suspends all policies for the fleet.
%%
%%
delete_scaling_policy(Client, Input)
when is_map(Client), is_map(Input) ->
delete_scaling_policy(Client, Input, []).
delete_scaling_policy(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteScalingPolicy">>, Input, Options).
%% @doc Deletes a Realtime script. This action permanently deletes the script
%% record. If script files were uploaded, they are also deleted (files stored
%% in an S3 bucket are not deleted).
%%
%% To delete a script, specify the script ID. Before deleting a script, be
%% sure to terminate all fleets that are deployed with the script being
%% deleted. Fleet instances periodically check for script updates, and if the
%% script record no longer exists, the instance will go into an error state
%% and be unable to host game sessions.
%%
%% Learn more
%%
%% Amazon
%% GameLift Realtime Servers
%%
%% Related operations
%%
%%
delete_script(Client, Input)
when is_map(Client), is_map(Input) ->
delete_script(Client, Input, []).
delete_script(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteScript">>, Input, Options).
%% @doc Cancels a pending VPC peering authorization for the specified VPC. If
%% you need to delete an existing VPC peering connection, call
%% DeleteVpcPeeringConnection.
%%
%%
delete_vpc_peering_authorization(Client, Input)
when is_map(Client), is_map(Input) ->
delete_vpc_peering_authorization(Client, Input, []).
delete_vpc_peering_authorization(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteVpcPeeringAuthorization">>, Input, Options).
%% @doc Removes a VPC peering connection. To delete the connection, you must
%% have a valid authorization for the VPC peering connection that you want to
%% delete. You can check for an authorization by calling
%% DescribeVpcPeeringAuthorizations or request a new one using
%% CreateVpcPeeringAuthorization.
%%
%% Once a valid authorization exists, call this operation from the AWS
%% account that is used to manage the Amazon GameLift fleets. Identify the
%% connection to delete by the connection ID and fleet ID. If successful, the
%% connection is removed.
%%
%%
delete_vpc_peering_connection(Client, Input)
when is_map(Client), is_map(Input) ->
delete_vpc_peering_connection(Client, Input, []).
delete_vpc_peering_connection(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteVpcPeeringConnection">>, Input, Options).
%% @doc This action is part of Amazon GameLift FleetIQ with game server
%% groups, which is in preview release and is subject to change.
%%
%% Removes the game server resource from the game server group. As a result
%% of this action, the de-registered game server can no longer be claimed and
%% will not returned in a list of active game servers.
%%
%% To de-register a game server, specify the game server group and game
%% server ID. If successful, this action emits a CloudWatch event with
%% termination time stamp and reason.
%%
%% Learn more
%%
%% GameLift
%% FleetIQ Guide
%%
%% Related operations
%%
%%
deregister_game_server(Client, Input)
when is_map(Client), is_map(Input) ->
deregister_game_server(Client, Input, []).
deregister_game_server(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeregisterGameServer">>, Input, Options).
%% @doc Retrieves properties for an alias. This operation returns all alias
%% metadata and settings. To get an alias's target fleet ID only, use
%% ResolveAlias.
%%
%% To get alias properties, specify the alias ID. If successful, the
%% requested alias record is returned.
%%
%%
describe_alias(Client, Input)
when is_map(Client), is_map(Input) ->
describe_alias(Client, Input, []).
describe_alias(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeAlias">>, Input, Options).
%% @doc Retrieves properties for a custom game build. To request a build
%% resource, specify a build ID. If successful, an object containing the
%% build properties is returned.
%%
%% Learn more
%%
%%
%% Upload a Custom Server Build
%%
%% Related operations
%%
%%
describe_build(Client, Input)
when is_map(Client), is_map(Input) ->
describe_build(Client, Input, []).
describe_build(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeBuild">>, Input, Options).
%% @doc Retrieves the following information for the specified EC2 instance
%% type:
%%
%% - Maximum number of instances allowed per AWS account (service
%% limit).
%%
%%
- Current usage for the AWS account.
%%
%%
To learn more about the capabilities of each instance type,
%% see Amazon EC2
%% Instance Types. Note that the instance types offered may vary
%% depending on the region.
%%
%% Learn more
%%
%% Setting
%% up GameLift Fleets
%%
%% Related operations
%%
%%
describe_e_c2_instance_limits(Client, Input)
when is_map(Client), is_map(Input) ->
describe_e_c2_instance_limits(Client, Input, []).
describe_e_c2_instance_limits(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeEC2InstanceLimits">>, Input, Options).
%% @doc Retrieves core properties, including configuration, status, and
%% metadata, for a fleet.
%%
%% To get attributes for one or more fleets, provide a list of fleet IDs or
%% fleet ARNs. To get attributes for all fleets, do not specify a fleet
%% identifier. When requesting attributes for multiple fleets, use the
%% pagination parameters to retrieve results as a set of sequential pages. If
%% successful, a FleetAttributes object is returned for each fleet
%% requested, unless the fleet identifier is not found.
%%
%% 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 number.
%%
%% Learn more
%%
%% Setting
%% up GameLift Fleets
%%
%% Related operations
%%
%%
describe_fleet_attributes(Client, Input)
when is_map(Client), is_map(Input) ->
describe_fleet_attributes(Client, Input, []).
describe_fleet_attributes(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeFleetAttributes">>, Input, Options).
%% @doc Retrieves the current capacity statistics for one or more fleets.
%% These statistics present a snapshot of the fleet's instances and provide
%% insight on current or imminent scaling activity. To get statistics on game
%% hosting activity in the fleet, see DescribeFleetUtilization.
%%
%% You can request capacity for all fleets or specify a list of one or more
%% fleet identifiers. When requesting multiple 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 a list of fleet IDs is provided, 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.
%%
%% Learn more
%%
%% Setting
%% up GameLift Fleets
%%
%% GameLift
%% Metrics for Fleets
%%
%% Related operations
%%
%%
describe_fleet_capacity(Client, Input)
when is_map(Client), is_map(Input) ->
describe_fleet_capacity(Client, Input, []).
describe_fleet_capacity(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeFleetCapacity">>, Input, Options).
%% @doc Retrieves entries from the specified fleet's 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.
%%
%% Learn more
%%
%% Setting
%% up GameLift Fleets
%%
%% Related operations
%%
%%
describe_fleet_events(Client, Input)
when is_map(Client), is_map(Input) ->
describe_fleet_events(Client, Input, []).
describe_fleet_events(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeFleetEvents">>, Input, Options).
%% @doc Retrieves a fleet's inbound connection permissions. Connection
%% permissions specify the range of IP addresses and port settings that
%% incoming traffic can use to access server processes in the fleet. Game
%% sessions that are running on instances in the fleet use connections that
%% fall in this range.
%%
%% To get a fleet's inbound connection permissions, specify the fleet's
%% unique identifier. If successful, a collection of IpPermission
%% objects is returned for the requested fleet ID. If the requested fleet has
%% been deleted, the result set is empty.
%%
%% Learn more
%%
%% Setting
%% up GameLift Fleets
%%
%% Related operations
%%
%%
describe_fleet_port_settings(Client, Input)
when is_map(Client), is_map(Input) ->
describe_fleet_port_settings(Client, Input, []).
describe_fleet_port_settings(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeFleetPortSettings">>, Input, Options).
%% @doc Retrieves utilization statistics for one or more fleets. These
%% statistics provide insight into how available hosting resources are
%% currently being used. To get statistics on available hosting resources,
%% see DescribeFleetCapacity.
%%
%% You can request utilization data for all fleets, or specify a list of one
%% or more fleet IDs. When requesting multiple 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, unless the fleet identifier is not found.
%%
%% 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.
%%
%% Learn more
%%
%% Setting
%% up GameLift Fleets
%%
%% GameLift
%% Metrics for Fleets
%%
%% Related operations
%%
%%
describe_fleet_utilization(Client, Input)
when is_map(Client), is_map(Input) ->
describe_fleet_utilization(Client, Input, []).
describe_fleet_utilization(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeFleetUtilization">>, Input, Options).
%% @doc This action is part of Amazon GameLift FleetIQ with game server
%% groups, which is in preview release and is subject to change.
%%
%% Retrieves information for a game server resource. Information includes the
%% game server statuses, health check info, and the instance the game server
%% is running on.
%%
%% To retrieve game server information, specify the game server ID. If
%% successful, the requested game server object is returned.
%%
%% Learn more
%%
%% GameLift
%% FleetIQ Guide
%%
%% Related operations
%%
%%
describe_game_server(Client, Input)
when is_map(Client), is_map(Input) ->
describe_game_server(Client, Input, []).
describe_game_server(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeGameServer">>, Input, Options).
%% @doc This action is part of Amazon GameLift FleetIQ with game server
%% groups, which is in preview release and is subject to change.
%%
%% Retrieves information on a game server group.
%%
%% To get attributes for a game server group, provide a group name or ARN
%% value. If successful, a GameServerGroup object is returned.
%%
%% Learn more
%%
%% GameLift
%% FleetIQ Guide
%%
%% Related operations
%%
%%
describe_game_server_group(Client, Input)
when is_map(Client), is_map(Input) ->
describe_game_server_group(Client, Input, []).
describe_game_server_group(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeGameServerGroup">>, Input, Options).
%% @doc Retrieves properties, including the protection policy in force, for
%% one or more game sessions. This action can be used in several ways: (1)
%% provide a GameSessionId or GameSessionArn to
%% request details for a specific game session; (2) provide either a
%% FleetId or an AliasId to request properties for
%% all game sessions running on a fleet.
%%
%% To get game session record(s), specify just 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 GameSessionDetail object is
%% returned for each session matching the request.
%%
%%
describe_game_session_details(Client, Input)
when is_map(Client), is_map(Input) ->
describe_game_session_details(Client, Input, []).
describe_game_session_details(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeGameSessionDetails">>, Input, Options).
%% @doc Retrieves properties and current status of a game session placement
%% request. To get game session placement details, specify the placement ID.
%% If successful, a GameSessionPlacement object is returned.
%%
%%
describe_game_session_placement(Client, Input)
when is_map(Client), is_map(Input) ->
describe_game_session_placement(Client, Input, []).
describe_game_session_placement(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeGameSessionPlacement">>, Input, Options).
%% @doc Retrieves the properties for one or more game session queues. When
%% requesting multiple queues, use the pagination parameters to retrieve
%% results as a set of sequential pages. If successful, a
%% GameSessionQueue object is returned for each requested queue. When
%% specifying a list of queues, objects are returned only for queues that
%% currently exist in the Region.
%%
%% Learn more
%%
%%
%% View Your Queues
%%
%% Related operations
%%
%%
describe_game_session_queues(Client, Input)
when is_map(Client), is_map(Input) ->
describe_game_session_queues(Client, Input, []).
describe_game_session_queues(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeGameSessionQueues">>, Input, Options).
%% @doc Retrieves a set of one or more game sessions. Request a specific game
%% session or request all game sessions on a fleet. Alternatively, use
%% SearchGameSessions to request a set of active game sessions that
%% are filtered by certain criteria. To retrieve protection policy settings
%% for game sessions, use DescribeGameSessionDetails.
%%
%% To get game sessions, specify 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
%% game session matching the request.
%%
%% Available in Amazon GameLift Local.
%%
%%
describe_game_sessions(Client, Input)
when is_map(Client), is_map(Input) ->
describe_game_sessions(Client, Input, []).
describe_game_sessions(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeGameSessions">>, Input, Options).
%% @doc Retrieves information about a fleet's instances, including instance
%% IDs. Use this action to get details on all instances in the fleet or get
%% details on one specific instance.
%%
%% To get a specific instance, specify fleet ID and instance ID. To get all
%% instances in a fleet, specify a fleet ID only. Use the pagination
%% parameters to retrieve results as a set of sequential pages. If
%% successful, an Instance object is returned for each result.
%%
%% Learn more
%%
%% Remotely
%% Access Fleet Instances
%%
%% Debug
%% Fleet Issues
%%
%% Related operations
%%
%%
describe_instances(Client, Input)
when is_map(Client), is_map(Input) ->
describe_instances(Client, Input, []).
describe_instances(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeInstances">>, Input, Options).
%% @doc Retrieves one or more matchmaking tickets. Use this operation to
%% retrieve ticket information, including status and--once a successful match
%% is made--acquire connection information for the resulting new game
%% session.
%%
%% You can use this operation to track the progress of matchmaking requests
%% (through polling) as an alternative to using event notifications. See more
%% details on tracking matchmaking requests through polling or notifications
%% in StartMatchmaking.
%%
%% To request matchmaking tickets, provide a list of up to 10 ticket IDs. If
%% the request is successful, a ticket object is returned for each requested
%% ID that currently exists.
%%
%% Learn more
%%
%%
%% Add FlexMatch to a Game Client
%%
%%
%% Set Up FlexMatch Event Notification
%%
%% Related operations
%%
%%
describe_matchmaking(Client, Input)
when is_map(Client), is_map(Input) ->
describe_matchmaking(Client, Input, []).
describe_matchmaking(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeMatchmaking">>, Input, Options).
%% @doc Retrieves the details of FlexMatch matchmaking configurations. With
%% this operation, you have the following options: (1) retrieve all existing
%% configurations, (2) provide the names of one or more configurations to
%% retrieve, or (3) retrieve all configurations that use a specified rule set
%% name. When requesting multiple items, use the pagination parameters to
%% retrieve results as a set of sequential pages. If successful, a
%% configuration is returned for each requested name. When specifying a list
%% of names, only configurations that currently exist are returned.
%%
%% Learn more
%%
%%
%% Setting Up FlexMatch Matchmakers
%%
%% Related operations
%%
%%
describe_matchmaking_configurations(Client, Input)
when is_map(Client), is_map(Input) ->
describe_matchmaking_configurations(Client, Input, []).
describe_matchmaking_configurations(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeMatchmakingConfigurations">>, Input, Options).
%% @doc Retrieves the details for FlexMatch matchmaking rule sets. You can
%% request all existing rule sets for the Region, or provide a list of one or
%% more rule set names. When requesting multiple items, use the pagination
%% parameters to retrieve results as a set of sequential pages. If
%% successful, a rule set is returned for each requested name.
%%
%% Learn more
%%
%% Related operations
%%
%%
describe_matchmaking_rule_sets(Client, Input)
when is_map(Client), is_map(Input) ->
describe_matchmaking_rule_sets(Client, Input, []).
describe_matchmaking_rule_sets(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeMatchmakingRuleSets">>, Input, Options).
%% @doc Retrieves properties for one or more player sessions. This action can
%% be used in several ways: (1) provide a PlayerSessionId to
%% request properties for a specific player session; (2) provide a
%% GameSessionId to request properties for all player sessions
%% in the specified game session; (3) provide a PlayerId 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.
%%
%% Available in Amazon GameLift Local.
%%
%%
describe_player_sessions(Client, Input)
when is_map(Client), is_map(Input) ->
describe_player_sessions(Client, Input, []).
describe_player_sessions(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribePlayerSessions">>, Input, Options).
%% @doc Retrieves a fleet's runtime configuration settings. The runtime
%% configuration tells Amazon GameLift which server processes to run (and
%% how) on each instance in the fleet.
%%
%% To get a runtime configuration, specify the fleet's unique identifier. If
%% successful, a RuntimeConfiguration object is returned for the
%% requested fleet. If the requested fleet has been deleted, the result set
%% is empty.
%%
%% Learn more
%%
%% Setting
%% up GameLift Fleets
%%
%% Running
%% Multiple Processes on a Fleet
%%
%% Related operations
%%
%%
describe_runtime_configuration(Client, Input)
when is_map(Client), is_map(Input) ->
describe_runtime_configuration(Client, Input, []).
describe_runtime_configuration(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeRuntimeConfiguration">>, Input, Options).
%% @doc Retrieves all scaling policies applied to a fleet.
%%
%% To get a fleet's scaling policies, specify the fleet ID. You can filter
%% this request by policy status, such as to retrieve only active scaling
%% policies. Use the pagination parameters to retrieve results as a set of
%% sequential pages. If successful, set of ScalingPolicy objects is
%% returned for the fleet.
%%
%% A fleet may have all of its scaling policies suspended
%% (StopFleetActions). This action does not affect the status of the
%% scaling policies, which remains ACTIVE. To see whether a fleet's scaling
%% policies are in force or suspended, call DescribeFleetAttributes
%% and check the stopped actions.
%%
%%
describe_scaling_policies(Client, Input)
when is_map(Client), is_map(Input) ->
describe_scaling_policies(Client, Input, []).
describe_scaling_policies(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeScalingPolicies">>, Input, Options).
%% @doc Retrieves properties for a Realtime script.
%%
%% To request a script record, specify the script ID. If successful, an
%% object containing the script properties is returned.
%%
%% Learn more
%%
%% Amazon
%% GameLift Realtime Servers
%%
%% Related operations
%%
%%
describe_script(Client, Input)
when is_map(Client), is_map(Input) ->
describe_script(Client, Input, []).
describe_script(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeScript">>, Input, Options).
%% @doc Retrieves valid VPC peering authorizations that are pending for the
%% AWS account. This operation returns all VPC peering authorizations and
%% requests for peering. This includes those initiated and received by this
%% account.
%%
%%
describe_vpc_peering_authorizations(Client, Input)
when is_map(Client), is_map(Input) ->
describe_vpc_peering_authorizations(Client, Input, []).
describe_vpc_peering_authorizations(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeVpcPeeringAuthorizations">>, Input, Options).
%% @doc Retrieves information on VPC peering connections. Use this operation
%% to get peering information for all fleets or for one specific fleet ID.
%%
%% To retrieve connection information, call this operation from the AWS
%% account that is used to manage the Amazon GameLift fleets. Specify a fleet
%% ID or leave the parameter empty to retrieve all connection records. If
%% successful, the retrieved information includes both active and pending
%% connections. Active connections identify the IpV4 CIDR block that the VPC
%% uses to connect.
%%
%%
describe_vpc_peering_connections(Client, Input)
when is_map(Client), is_map(Input) ->
describe_vpc_peering_connections(Client, Input, []).
describe_vpc_peering_connections(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeVpcPeeringConnections">>, Input, Options).
%% @doc 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 and retains them for 14 days.
%% Use this URL to download the logs.
%%
%% See the AWS
%% Service Limits page for maximum log file sizes. Log files that exceed
%% this limit are not saved.
%%
%%
get_game_session_log_url(Client, Input)
when is_map(Client), is_map(Input) ->
get_game_session_log_url(Client, Input, []).
get_game_session_log_url(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetGameSessionLogUrl">>, Input, Options).
%% @doc Requests remote access to a fleet instance. Remote access is useful
%% for debugging, gathering benchmarking data, or observing activity in real
%% time.
%%
%% To remotely access an instance, you need credentials that match the
%% operating system of the instance. For a Windows instance, Amazon GameLift
%% returns a user name and password as strings for use with a Windows Remote
%% Desktop client. For a Linux instance, Amazon GameLift returns a user name
%% and RSA private key, also as strings, for use with an SSH client. The
%% private key must be saved in the proper format to a .pem file
%% before using. If you're making this request using the AWS CLI, saving the
%% secret can be handled as part of the GetInstanceAccess request, as shown
%% in one of the examples for this action.
%%
%% To request access to a specific instance, specify the IDs of both the
%% instance and the fleet it belongs to. You can retrieve a fleet's instance
%% IDs by calling DescribeInstances. If successful, an
%% InstanceAccess object is returned that contains the instance's IP
%% address and a set of credentials.
%%
%% Learn more
%%
%% Remotely
%% Access Fleet Instances
%%
%% Debug
%% Fleet Issues
%%
%% Related operations
%%
%%
get_instance_access(Client, Input)
when is_map(Client), is_map(Input) ->
get_instance_access(Client, Input, []).
get_instance_access(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetInstanceAccess">>, Input, Options).
%% @doc Retrieves all aliases 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.
%%
%% Returned aliases are not listed in any particular order.
%%
%%
list_aliases(Client, Input)
when is_map(Client), is_map(Input) ->
list_aliases(Client, Input, []).
list_aliases(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListAliases">>, Input, Options).
%% @doc Retrieves build resources for all builds associated with the AWS
%% account in use. You can limit results to builds that are in a specific
%% status by using the Status parameter. Use the pagination
%% parameters to retrieve results in a set of sequential pages.
%%
%% Build resources are not listed in any particular order.
%%
%% Learn more
%%
%%
%% Upload a Custom Server Build
%%
%% Related operations
%%
%%
list_builds(Client, Input)
when is_map(Client), is_map(Input) ->
list_builds(Client, Input, []).
list_builds(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListBuilds">>, Input, Options).
%% @doc Retrieves a collection of fleet resources for this AWS account. You
%% can filter the result set to find only those fleets that are deployed with
%% a specific build or script. Use the pagination parameters to retrieve
%% results in sequential pages.
%%
%% Fleet resources are not listed in a particular order.
%%
%% Learn more
%%
%% Setting
%% up GameLift Fleets
%%
%% Related operations
%%
%%
list_fleets(Client, Input)
when is_map(Client), is_map(Input) ->
list_fleets(Client, Input, []).
list_fleets(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListFleets">>, Input, Options).
%% @doc This action is part of Amazon GameLift FleetIQ with game server
%% groups, which is in preview release and is subject to change.
%%
%% Retrieves information on all game servers groups that exist in the current
%% AWS account for the selected region. Use the pagination parameters to
%% retrieve results in a set of sequential pages.
%%
%% Learn more
%%
%% GameLift
%% FleetIQ Guide
%%
%% Related operations
%%
%%
list_game_server_groups(Client, Input)
when is_map(Client), is_map(Input) ->
list_game_server_groups(Client, Input, []).
list_game_server_groups(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListGameServerGroups">>, Input, Options).
%% @doc This action is part of Amazon GameLift FleetIQ with game server
%% groups, which is in preview release and is subject to change.
%%
%% Retrieves information on all game servers that are currently running in a
%% specified game server group. If there are custom key sort values for your
%% game servers, you can opt to have the returned list sorted based on these
%% values. Use the pagination parameters to retrieve results in a set of
%% sequential pages.
%%
%% Learn more
%%
%% GameLift
%% FleetIQ Guide
%%
%% Related operations
%%
%%
list_game_servers(Client, Input)
when is_map(Client), is_map(Input) ->
list_game_servers(Client, Input, []).
list_game_servers(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListGameServers">>, Input, Options).
%% @doc Retrieves script records for all Realtime scripts that are associated
%% with the AWS account in use.
%%
%% Learn more
%%
%% Amazon
%% GameLift Realtime Servers
%%
%% Related operations
%%
%%
list_scripts(Client, Input)
when is_map(Client), is_map(Input) ->
list_scripts(Client, Input, []).
list_scripts(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListScripts">>, Input, Options).
%% @doc Retrieves all tags that are assigned to a GameLift resource. Resource
%% tags are used to organize AWS resources for a range of purposes. This
%% action handles the permissions necessary to manage tags for the following
%% GameLift resource types:
%%
%% - Build
%%
%%
- Script
%%
%%
- Fleet
%%
%%
- Alias
%%
%%
- GameSessionQueue
%%
%%
- MatchmakingConfiguration
%%
%%
- MatchmakingRuleSet
%%
%%
To list tags for a resource, specify the unique ARN value for
%% the resource.
%%
%% Learn more
%%
%% Tagging
%% AWS Resources in the AWS General Reference
%%
%%
%% AWS Tagging Strategies
%%
%% Related operations
%%
%%
list_tags_for_resource(Client, Input)
when is_map(Client), is_map(Input) ->
list_tags_for_resource(Client, Input, []).
list_tags_for_resource(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListTagsForResource">>, Input, Options).
%% @doc Creates or updates a scaling policy for a fleet. Scaling policies are
%% used to automatically scale a fleet's hosting capacity to meet player
%% demand. An active scaling policy instructs Amazon GameLift to track a
%% fleet metric and automatically change the fleet's capacity when a certain
%% threshold is reached. There are two types of scaling policies:
%% target-based and rule-based. Use a target-based policy to quickly and
%% efficiently manage fleet scaling; this option is the most commonly used.
%% Use rule-based policies when you need to exert fine-grained control over
%% auto-scaling.
%%
%% Fleets can have multiple scaling policies of each type in force at the
%% same time; you can have one target-based policy, one or multiple
%% rule-based scaling policies, or both. We recommend caution, however,
%% because multiple auto-scaling policies can have unintended consequences.
%%
%% You can temporarily suspend all scaling policies for a fleet by calling
%% StopFleetActions with the fleet action AUTO_SCALING. To resume
%% scaling policies, call StartFleetActions with the same fleet
%% action. To stop just one scaling policy--or to permanently remove it, you
%% must delete the policy with DeleteScalingPolicy.
%%
%% Learn more about how to work with auto-scaling in Set
%% Up Fleet Automatic Scaling.
%%
%% Target-based policy
%%
%% A target-based policy tracks a single metric:
%% PercentAvailableGameSessions. This metric tells us how much of a fleet's
%% hosting capacity is ready to host game sessions but is not currently in
%% use. This is the fleet's buffer; it measures the additional player demand
%% that the fleet could handle at current capacity. With a target-based
%% policy, you set your ideal buffer size and leave it to Amazon GameLift to
%% take whatever action is needed to maintain that target.
%%
%% For example, you might choose to maintain a 10% buffer for a fleet that
%% has the capacity to host 100 simultaneous game sessions. This policy tells
%% Amazon GameLift to take action whenever the fleet's available capacity
%% falls below or rises above 10 game sessions. Amazon GameLift will start
%% new instances or stop unused instances in order to return to the 10%
%% buffer.
%%
%% To create or update a target-based policy, specify a fleet ID and name,
%% and set the policy type to "TargetBased". Specify the metric to track
%% (PercentAvailableGameSessions) and reference a TargetConfiguration
%% object with your desired buffer value. Exclude all other parameters. On a
%% successful request, the policy name is returned. The scaling policy is
%% automatically in force as soon as it's successfully created. If the
%% fleet's auto-scaling actions are temporarily suspended, the new policy
%% will be in force once the fleet actions are restarted.
%%
%% Rule-based policy
%%
%% A rule-based policy tracks specified fleet metric, sets a threshold value,
%% and specifies the type of action to initiate when triggered. With a
%% rule-based policy, you can select from several available fleet metrics.
%% Each policy specifies whether to scale up or scale down (and by how much),
%% so you need one policy for each type of action.
%%
%% For example, a policy may make the following statement: "If the percentage
%% of idle instances is greater than 20% for more than 15 minutes, then
%% reduce the fleet capacity by 10%."
%%
%% A policy's rule statement has the following structure:
%%
%% If [MetricName] is [ComparisonOperator]
%% [Threshold] for [EvaluationPeriods] minutes,
%% then [ScalingAdjustmentType] to/by
%% [ScalingAdjustment].
%%
%% To implement the example, the rule statement would look like this:
%%
%% If [PercentIdleInstances] is
%% [GreaterThanThreshold] [20] for
%% [15] minutes, then [PercentChangeInCapacity]
%% to/by [10].
%%
%% To create or update a scaling policy, specify a unique combination of name
%% and fleet ID, and set the policy type to "RuleBased". Specify the
%% parameter values for a policy rule statement. On a successful request, the
%% policy name is returned. Scaling policies are automatically in force as
%% soon as they're successfully created. If the fleet's auto-scaling actions
%% are temporarily suspended, the new policy will be in force once the fleet
%% actions are restarted.
%%
%%
put_scaling_policy(Client, Input)
when is_map(Client), is_map(Input) ->
put_scaling_policy(Client, Input, []).
put_scaling_policy(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"PutScalingPolicy">>, Input, Options).
%% @doc This action is part of Amazon GameLift FleetIQ with game server
%% groups, which is in preview release and is subject to change.
%%
%% Creates a new game server resource and notifies GameLift FleetIQ that the
%% game server is ready to host gameplay and players. This action is called
%% by a game server process that is running on an instance in a game server
%% group. Registering game servers enables GameLift FleetIQ to track
%% available game servers and enables game clients and services to claim a
%% game server for a new game session.
%%
%% To register a game server, identify the game server group and instance
%% where the game server is running, and provide a unique identifier for the
%% game server. You can also include connection and game server data; when a
%% game client or service requests a game server by calling
%% ClaimGameServer, this information is returned in response.
%%
%% Once a game server is successfully registered, it is put in status
%% AVAILABLE. A request to register a game server may fail if the instance it
%% is in the process of shutting down as part of instance rebalancing or
%% scale-down activity.
%%
%% Learn more
%%
%% GameLift
%% FleetIQ Guide
%%
%% Related operations
%%
%%
register_game_server(Client, Input)
when is_map(Client), is_map(Input) ->
register_game_server(Client, Input, []).
register_game_server(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"RegisterGameServer">>, Input, Options).
%% @doc Retrieves a fresh set of credentials for use when uploading a new set
%% of game build files to Amazon GameLift's Amazon S3. This is done as part
%% of the build creation process; see CreateBuild.
%%
%% To request new credentials, specify the build ID as returned with an
%% initial CreateBuild request. If successful, a new set of
%% credentials are returned, along with the S3 storage location associated
%% with the build ID.
%%
%% Learn more
%%
%%
%% Create a Build with Files in S3
%%
%% Related operations
%%
%%
request_upload_credentials(Client, Input)
when is_map(Client), is_map(Input) ->
request_upload_credentials(Client, Input, []).
request_upload_credentials(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"RequestUploadCredentials">>, Input, Options).
%% @doc Retrieves the fleet ID that an alias is currently pointing to.
%%
%%
resolve_alias(Client, Input)
when is_map(Client), is_map(Input) ->
resolve_alias(Client, Input, []).
resolve_alias(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ResolveAlias">>, Input, Options).
%% @doc This action is part of Amazon GameLift FleetIQ with game server
%% groups, which is in preview release and is subject to change.
%%
%% Reinstates activity on a game server group after it has been suspended. A
%% game server group may be suspended by calling
%% SuspendGameServerGroup, or it may have been involuntarily suspended
%% due to a configuration problem. You can manually resume activity on the
%% group once the configuration problem has been resolved. Refer to the game
%% server group status and status reason for more information on why group
%% activity is suspended.
%%
%% To resume activity, specify a game server group ARN and the type of
%% activity to be resumed.
%%
%% Learn more
%%
%% GameLift
%% FleetIQ Guide
%%
%% Related operations
%%
%%
resume_game_server_group(Client, Input)
when is_map(Client), is_map(Input) ->
resume_game_server_group(Client, Input, []).
resume_game_server_group(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ResumeGameServerGroup">>, Input, Options).
%% @doc Retrieves all active game sessions that match a set of search
%% criteria and sorts them in a specified order. You can search or sort by
%% the following game session attributes:
%%
%% - gameSessionId -- A unique identifier for the game
%% session. You can use either a
GameSessionId or
%% GameSessionArn value.
%%
%% - gameSessionName -- Name assigned to a game session. This
%% value is set when requesting a new game session with
%% CreateGameSession or updating with UpdateGameSession. Game
%% session names do not need to be unique to a game session.
%%
%%
- gameSessionProperties -- Custom data defined in a game
%% session's
GameProperty parameter. GameProperty
%% values are stored as key:value pairs; the filter expression must indicate
%% the key and a string to search the data values for. For example, to search
%% for game sessions with custom data containing the key:value pair
%% "gameMode:brawl", specify the following:
%% gameSessionProperties.gameMode = "brawl". All custom data
%% values are searched as strings.
%%
%% - maximumSessions -- Maximum number of player sessions
%% allowed for a game session. This value is set when requesting a new game
%% session with CreateGameSession or updating with
%% UpdateGameSession.
%%
%%
- creationTimeMillis -- Value indicating when a game
%% session was created. It is expressed in Unix time as milliseconds.
%%
%%
- playerSessionCount -- Number of players currently
%% connected to a game session. This value changes rapidly as players join
%% the session or drop out.
%%
%%
- hasAvailablePlayerSessions -- Boolean value indicating
%% whether a game session has reached its maximum number of players. It is
%% highly recommended that all search requests include this filter attribute
%% to optimize search performance and return only sessions that players can
%% join.
%%
%%
Returned values for playerSessionCount and
%% hasAvailablePlayerSessions change quickly as players join
%% sessions and others drop out. Results should be considered a snapshot in
%% time. Be sure to refresh search results often, and handle sessions that
%% fill up before a player can join.
%%
%% To search or sort, specify either a fleet ID or an alias ID, and
%% provide a search filter expression, a sort expression, or both. If
%% successful, a collection of GameSession objects matching the
%% request is returned. Use the pagination parameters to retrieve results as
%% a set of sequential pages.
%%
%% You can search for game sessions one fleet at a time only. To find game
%% sessions across multiple fleets, you must search each fleet separately and
%% combine the results. This search feature finds only game sessions that are
%% in ACTIVE status. To locate games in statuses other than
%% active, use DescribeGameSessionDetails.
%%
%%
search_game_sessions(Client, Input)
when is_map(Client), is_map(Input) ->
search_game_sessions(Client, Input, []).
search_game_sessions(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"SearchGameSessions">>, Input, Options).
%% @doc Resumes activity on a fleet that was suspended with
%% StopFleetActions. Currently, this operation is used to restart a
%% fleet's auto-scaling activity.
%%
%% To start fleet actions, specify the fleet ID and the type of actions to
%% restart. When auto-scaling fleet actions are restarted, Amazon GameLift
%% once again initiates scaling events as triggered by the fleet's scaling
%% policies. If actions on the fleet were never stopped, this operation will
%% have no effect. You can view a fleet's stopped actions using
%% DescribeFleetAttributes.
%%
%% Learn more
%%
%% Setting
%% up GameLift Fleets
%%
%% Related operations
%%
%%
start_fleet_actions(Client, Input)
when is_map(Client), is_map(Input) ->
start_fleet_actions(Client, Input, []).
start_fleet_actions(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"StartFleetActions">>, Input, Options).
%% @doc Places a request for a new game session in a queue (see
%% CreateGameSessionQueue). When processing a placement request,
%% Amazon GameLift searches for available resources on the queue's
%% destinations, scanning each until it finds resources or the placement
%% request times out.
%%
%% A game session placement request can also request player sessions. When a
%% new game session is successfully created, Amazon GameLift creates a player
%% session for each player included in the request.
%%
%% When placing a game session, by default Amazon GameLift tries each fleet
%% in the order they are listed in the queue configuration. Ideally, a
%% queue's destinations are listed in preference order.
%%
%% Alternatively, when requesting a game session with players, you can also
%% provide latency data for each player in relevant Regions. Latency data
%% indicates the performance lag a player experiences when connected to a
%% fleet in the Region. Amazon GameLift uses latency data to reorder the list
%% of destinations to place the game session in a Region with minimal lag. If
%% latency data is provided for multiple players, Amazon GameLift calculates
%% each Region's average lag for all players and reorders to get the best
%% game play across all players.
%%
%% To place a new game session request, specify the following:
%%
%% - The queue name and a set of game session properties and settings
%%
%%
- A unique ID (such as a UUID) for the placement. You use this ID
%% to track the status of the placement request
%%
%%
- (Optional) A set of player data and a unique player ID for each
%% player that you are joining to the new game session (player data is
%% optional, but if you include it, you must also provide a unique ID for
%% each player)
%%
%%
- Latency data for all players (if you want to optimize game play
%% for the players)
%%
%%
If successful, a new game session placement is created.
%%
%% To track the status of a placement request, call
%% DescribeGameSessionPlacement and check the request's status. If the
%% status is FULFILLED, a new game session has been created and
%% a game session ARN and Region are referenced. If the placement request
%% times out, you can resubmit the request or retry it with a different
%% queue.
%%
%%
start_game_session_placement(Client, Input)
when is_map(Client), is_map(Input) ->
start_game_session_placement(Client, Input, []).
start_game_session_placement(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"StartGameSessionPlacement">>, Input, Options).
%% @doc Finds new players to fill open slots in an existing game session.
%% This operation can be used to add players to matched games that start with
%% fewer than the maximum number of players or to replace players when they
%% drop out. By backfilling with the same matchmaker used to create the
%% original match, you ensure that new players meet the match criteria and
%% maintain a consistent experience throughout the game session. You can
%% backfill a match anytime after a game session has been created.
%%
%% To request a match backfill, specify a unique ticket ID, the existing game
%% session's ARN, a matchmaking configuration, and a set of data that
%% describes all current players in the game session. If successful, a match
%% backfill ticket is created and returned with status set to QUEUED. The
%% ticket is placed in the matchmaker's ticket pool and processed. Track the
%% status of the ticket to respond as needed.
%%
%% The process of finding backfill matches is essentially identical to the
%% initial matchmaking process. The matchmaker searches the pool and groups
%% tickets together to form potential matches, allowing only one backfill
%% ticket per potential match. Once the a match is formed, the matchmaker
%% creates player sessions for the new players. All tickets in the match are
%% updated with the game session's connection information, and the
%% GameSession object is updated to include matchmaker data on the new
%% players. For more detail on how match backfill requests are processed, see
%%
%% How Amazon GameLift FlexMatch Works.
%%
%% Learn more
%%
%%
%% Backfill Existing Games with FlexMatch
%%
%%
%% How GameLift FlexMatch Works
%%
%% Related operations
%%
%%
start_match_backfill(Client, Input)
when is_map(Client), is_map(Input) ->
start_match_backfill(Client, Input, []).
start_match_backfill(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"StartMatchBackfill">>, Input, Options).
%% @doc Uses FlexMatch to create a game match for a group of players based on
%% custom matchmaking rules, and starts a new game for the matched players.
%% Each matchmaking request specifies the type of match to build (team
%% configuration, rules for an acceptable match, etc.). The request also
%% specifies the players to find a match for and where to host the new game
%% session for optimal performance. A matchmaking request might start with a
%% single player or a group of players who want to play together. FlexMatch
%% finds additional players as needed to fill the match. Match type, rules,
%% and the queue used to place a new game session are defined in a
%% MatchmakingConfiguration.
%%
%% To start matchmaking, provide a unique ticket ID, specify a matchmaking
%% configuration, and include the players to be matched. You must also
%% include a set of player attributes relevant for the matchmaking
%% configuration. If successful, a matchmaking ticket is returned with status
%% set to QUEUED. Track the status of the ticket to respond as
%% needed and acquire game session connection information for successfully
%% completed matches.
%%
%% Tracking ticket status -- A couple of options are available for
%% tracking the status of matchmaking requests:
%%
%% - Polling -- Call
DescribeMatchmaking. This operation
%% returns the full ticket object, including current status and (for
%% completed tickets) game session connection info. We recommend polling no
%% more than once every 10 seconds.
%%
%% - Notifications -- Get event notifications for changes in ticket
%% status using Amazon Simple Notification Service (SNS). Notifications are
%% easy to set up (see CreateMatchmakingConfiguration) and typically
%% deliver match status changes faster and more efficiently than polling. We
%% recommend that you use polling to back up to notifications (since delivery
%% is not guaranteed) and call
DescribeMatchmaking only when
%% notifications are not received within 30 seconds.
%%
%%
Processing a matchmaking request -- FlexMatch handles a
%% matchmaking request as follows:
%%
%% - Your client code submits a
StartMatchmaking request
%% for one or more players and tracks the status of the request ticket.
%%
%% - FlexMatch uses this ticket and others in process to build an
%% acceptable match. When a potential match is identified, all tickets in the
%% proposed match are advanced to the next status.
%%
%%
- If the match requires player acceptance (set in the matchmaking
%% configuration), the tickets move into status
%%
REQUIRES_ACCEPTANCE. This status triggers your client code to
%% solicit acceptance from all players in every ticket involved in the match,
%% and then call AcceptMatch for each player. If any player rejects or
%% fails to accept the match before a specified timeout, the proposed match
%% is dropped (see AcceptMatch for more details).
%%
%% - Once a match is proposed and accepted, the matchmaking tickets
%% move into status
PLACING. FlexMatch locates resources for a
%% new game session using the game session queue (set in the matchmaking
%% configuration) and creates the game session based on the match data.
%%
%% - When the match is successfully placed, the matchmaking tickets
%% move into
COMPLETED status. Connection information (including
%% game session endpoint and player session) is added to the matchmaking
%% tickets. Matched players can use the connection information to join the
%% game.
%%
%%
Learn more
%%
%%
%% Add FlexMatch to a Game Client
%%
%%
%% Set Up FlexMatch Event Notification
%%
%%
%% FlexMatch Integration Roadmap
%%
%%
%% How GameLift FlexMatch Works
%%
%% Related operations
%%
%%
start_matchmaking(Client, Input)
when is_map(Client), is_map(Input) ->
start_matchmaking(Client, Input, []).
start_matchmaking(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"StartMatchmaking">>, Input, Options).
%% @doc Suspends activity on a fleet. Currently, this operation is used to
%% stop a fleet's auto-scaling activity. It is used to temporarily stop
%% triggering scaling events. The policies can be retained and auto-scaling
%% activity can be restarted using StartFleetActions. You can view a
%% fleet's stopped actions using DescribeFleetAttributes.
%%
%% To stop fleet actions, specify the fleet ID and the type of actions to
%% suspend. When auto-scaling fleet actions are stopped, Amazon GameLift no
%% longer initiates scaling events except in response to manual changes using
%% UpdateFleetCapacity.
%%
%% Learn more
%%
%% Setting
%% up GameLift Fleets
%%
%% Related operations
%%
%%
stop_fleet_actions(Client, Input)
when is_map(Client), is_map(Input) ->
stop_fleet_actions(Client, Input, []).
stop_fleet_actions(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"StopFleetActions">>, Input, Options).
%% @doc Cancels a game session placement that is in PENDING
%% status. To stop a placement, provide the placement ID values. If
%% successful, the placement is moved to CANCELLED status.
%%
%%
stop_game_session_placement(Client, Input)
when is_map(Client), is_map(Input) ->
stop_game_session_placement(Client, Input, []).
stop_game_session_placement(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"StopGameSessionPlacement">>, Input, Options).
%% @doc Cancels a matchmaking ticket or match backfill ticket that is
%% currently being processed. To stop the matchmaking operation, specify the
%% ticket ID. If successful, work on the ticket is stopped, and the ticket
%% status is changed to CANCELLED.
%%
%% This call is also used to turn off automatic backfill for an individual
%% game session. This is for game sessions that are created with a
%% matchmaking configuration that has automatic backfill enabled. The ticket
%% ID is included in the MatchmakerData of an updated game
%% session object, which is provided to the game server.
%%
%% If the action is successful, the service sends back an empty JSON
%% struct with the HTTP 200 response (not an empty HTTP body).
%%
%% Learn more
%%
%%
%% Add FlexMatch to a Game Client
%%
%% Related operations
%%
%%
stop_matchmaking(Client, Input)
when is_map(Client), is_map(Input) ->
stop_matchmaking(Client, Input, []).
stop_matchmaking(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"StopMatchmaking">>, Input, Options).
%% @doc This action is part of Amazon GameLift FleetIQ with game server
%% groups, which is in preview release and is subject to change.
%%
%% Temporarily stops activity on a game server group without terminating
%% instances or the game server group. Activity can be restarted by calling
%% ResumeGameServerGroup. Activities that can suspended are:
%%
%% - Instance type replacement. This activity evaluates the current
%% Spot viability of all instance types that are defined for the game server
%% group. It updates the Auto Scaling group to remove nonviable Spot instance
%% types (which have a higher chance of game server interruptions) and
%% rebalances capacity across the remaining viable Spot instance types. When
%% this activity is suspended, the Auto Scaling group continues with its
%% current balance, regardless of viability. Instance protection, utilization
%% metrics, and capacity autoscaling activities continue to be active.
%%
%%
To suspend activity, specify a game server group ARN and the
%% type of activity to be suspended.
%%
%% Learn more
%%
%% GameLift
%% FleetIQ Guide
%%
%% Related operations
%%
%%
suspend_game_server_group(Client, Input)
when is_map(Client), is_map(Input) ->
suspend_game_server_group(Client, Input, []).
suspend_game_server_group(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"SuspendGameServerGroup">>, Input, Options).
%% @doc Assigns a tag to a GameLift resource. AWS resource tags provide an
%% additional management tool set. You can use tags to organize resources,
%% create IAM permissions policies to manage access to groups of resources,
%% customize AWS cost breakdowns, etc. This action handles the permissions
%% necessary to manage tags for the following GameLift resource types:
%%
%% - Build
%%
%%
- Script
%%
%%
- Fleet
%%
%%
- Alias
%%
%%
- GameSessionQueue
%%
%%
- MatchmakingConfiguration
%%
%%
- MatchmakingRuleSet
%%
%%
To add a tag to a resource, specify the unique ARN value for
%% the resource and provide a tag list containing one or more tags. The
%% operation succeeds even if the list includes tags that are already
%% assigned to the specified resource.
%%
%% Learn more
%%
%% Tagging
%% AWS Resources in the AWS General Reference
%%
%%
%% AWS Tagging Strategies
%%
%% Related operations
%%
%%
tag_resource(Client, Input)
when is_map(Client), is_map(Input) ->
tag_resource(Client, Input, []).
tag_resource(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"TagResource">>, Input, Options).
%% @doc Removes a tag that is assigned to a GameLift resource. Resource tags
%% are used to organize AWS resources for a range of purposes. This action
%% handles the permissions necessary to manage tags for the following
%% GameLift resource types:
%%
%% - Build
%%
%%
- Script
%%
%%
- Fleet
%%
%%
- Alias
%%
%%
- GameSessionQueue
%%
%%
- MatchmakingConfiguration
%%
%%
- MatchmakingRuleSet
%%
%%
To remove a tag from a resource, specify the unique ARN value
%% for the resource and provide a string list containing one or more tags to
%% be removed. This action succeeds even if the list includes tags that are
%% not currently assigned to the specified resource.
%%
%% Learn more
%%
%% Tagging
%% AWS Resources in the AWS General Reference
%%
%%
%% AWS Tagging Strategies
%%
%% Related operations
%%
%%
untag_resource(Client, Input)
when is_map(Client), is_map(Input) ->
untag_resource(Client, Input, []).
untag_resource(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UntagResource">>, Input, Options).
%% @doc 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_alias(Client, Input)
when is_map(Client), is_map(Input) ->
update_alias(Client, Input, []).
update_alias(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateAlias">>, Input, Options).
%% @doc Updates metadata in a build resource, 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.
%%
%% Learn more
%%
%%
%% Upload a Custom Server Build
%%
%% Related operations
%%
%%
update_build(Client, Input)
when is_map(Client), is_map(Input) ->
update_build(Client, Input, []).
update_build(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateBuild">>, Input, Options).
%% @doc Updates fleet properties, including name and description, for a
%% fleet. To update metadata, specify the fleet ID and the property values
%% that you want to change. If successful, the fleet ID for the updated fleet
%% is returned.
%%
%% Learn more
%%
%% Setting
%% up GameLift Fleets
%%
%% Related operations
%%
%%
update_fleet_attributes(Client, Input)
when is_map(Client), is_map(Input) ->
update_fleet_attributes(Client, Input, []).
update_fleet_attributes(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateFleetAttributes">>, Input, Options).
%% @doc Updates capacity settings for a fleet. Use this action to specify the
%% number of EC2 instances (hosts) that 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.
%%
%% Specify minimum and maximum number of instances. Amazon GameLift will not
%% change fleet capacity to values fall outside of this range. This is
%% particularly important when using auto-scaling (see
%% PutScalingPolicy) to allow capacity to adjust based on player
%% demand while imposing limits on automatic adjustments.
%%
%% To update fleet capacity, specify the fleet ID and the number of instances
%% you want the fleet to host. 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 occurs.
%%
%% Learn more
%%
%% Setting
%% up GameLift Fleets
%%
%% Related operations
%%
%%
update_fleet_capacity(Client, Input)
when is_map(Client), is_map(Input) ->
update_fleet_capacity(Client, Input, []).
update_fleet_capacity(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateFleetCapacity">>, Input, Options).
%% @doc 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.
%%
%% Learn more
%%
%% Setting
%% up GameLift Fleets
%%
%% Related operations
%%
%%
update_fleet_port_settings(Client, Input)
when is_map(Client), is_map(Input) ->
update_fleet_port_settings(Client, Input, []).
update_fleet_port_settings(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateFleetPortSettings">>, Input, Options).
%% @doc This action is part of Amazon GameLift FleetIQ with game server
%% groups, which is in preview release and is subject to change.
%%
%% Updates information about a registered game server. This action is called
%% by a game server process that is running on an instance in a game server
%% group. There are three reasons to update game server information: (1) to
%% change the utilization status of the game server, (2) to report game
%% server health status, and (3) to change game server metadata. A registered
%% game server should regularly report health and should update utilization
%% status when it is supporting gameplay so that GameLift FleetIQ can
%% accurately track game server availability. You can make all three types of
%% updates in the same request.
%%
%% - To update the game server's utilization status, identify the
%% game server and game server group and specify the current utilization
%% status. Use this status to identify when game servers are currently
%% hosting games and when they are available to be claimed.
%%
%%
- To report health status, identify the game server and game
%% server group and set health check to HEALTHY. If a game server does not
%% report health status for a certain length of time, the game server is no
%% longer considered healthy and will be eventually de-registered from the
%% game server group to avoid affecting utilization metrics. The best
%% practice is to report health every 60 seconds.
%%
%%
- To change game server metadata, provide updated game server
%% data and custom sort key values.
%%
%%
Once a game server is successfully updated, the relevant
%% statuses and timestamps are updated.
%%
%% Learn more
%%
%% GameLift
%% FleetIQ Guide
%%
%% Related operations
%%
%%
update_game_server(Client, Input)
when is_map(Client), is_map(Input) ->
update_game_server(Client, Input, []).
update_game_server(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateGameServer">>, Input, Options).
%% @doc This action is part of Amazon GameLift FleetIQ with game server
%% groups, which is in preview release and is subject to change.
%%
%% Updates GameLift FleetIQ-specific properties for a game server group.
%% These properties include instance rebalancing and game server protection.
%% Many Auto Scaling group properties are updated directly. These include
%% autoscaling policies, minimum/maximum/desired instance counts, and launch
%% template.
%%
%% To update the game server group, specify the game server group ID and
%% provide the updated values.
%%
%% Updated properties are validated to ensure that GameLift FleetIQ can
%% continue to perform its core instance rebalancing activity. When you
%% change Auto Scaling group properties directly and the changes cause errors
%% with GameLift FleetIQ activities, an alert is sent.
%%
%% Learn more
%%
%% GameLift
%% FleetIQ Guide
%%
%% Updating
%% a GameLift FleetIQ-Linked Auto Scaling Group
%%
%% Related operations
%%
%%
update_game_server_group(Client, Input)
when is_map(Client), is_map(Input) ->
update_game_server_group(Client, Input, []).
update_game_server_group(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateGameServerGroup">>, Input, Options).
%% @doc Updates game session properties. This includes the session name,
%% maximum player count, protection policy, which controls whether or not an
%% active game session can be terminated during a scale-down event, and the
%% player session creation policy, which controls whether or not new players
%% can join 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.
%%
%%
update_game_session(Client, Input)
when is_map(Client), is_map(Input) ->
update_game_session(Client, Input, []).
update_game_session(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateGameSession">>, Input, Options).
%% @doc Updates settings for a game session queue, which determines how new
%% game session requests in the queue are processed. To update settings,
%% specify the queue name to be updated and provide the new settings. When
%% updating destinations, provide a complete list of destinations.
%%
%% Learn more
%%
%%
%% Using Multi-Region Queues
%%
%% Related operations
%%
%%
update_game_session_queue(Client, Input)
when is_map(Client), is_map(Input) ->
update_game_session_queue(Client, Input, []).
update_game_session_queue(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateGameSessionQueue">>, Input, Options).
%% @doc Updates settings for a FlexMatch matchmaking configuration. These
%% changes affect all matches and game sessions that are created after the
%% update. To update settings, specify the configuration name to be updated
%% and provide the new settings.
%%
%% Learn more
%%
%%
%% Design a FlexMatch Matchmaker
%%
%% Related operations
%%
%%
update_matchmaking_configuration(Client, Input)
when is_map(Client), is_map(Input) ->
update_matchmaking_configuration(Client, Input, []).
update_matchmaking_configuration(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateMatchmakingConfiguration">>, Input, Options).
%% @doc Updates the current runtime configuration for the specified fleet,
%% which tells Amazon GameLift how to launch server processes on instances in
%% the fleet. You can update a fleet's runtime configuration at any time
%% after the fleet is created; it does not need to be in an
%% ACTIVE status.
%%
%% To update runtime configuration, specify the fleet ID and provide a
%% RuntimeConfiguration object with an updated set of server
%% process configurations.
%%
%% Each instance in a Amazon GameLift fleet checks regularly for an updated
%% runtime configuration and changes how it launches server processes to
%% comply with the latest version. Existing server processes are not affected
%% by the update; runtime configuration changes are applied gradually as
%% existing processes shut down and new processes are launched during Amazon
%% GameLift's normal process recycling activity.
%%
%% Learn more
%%
%% Setting
%% up GameLift Fleets
%%
%% Related operations
%%
%%
update_runtime_configuration(Client, Input)
when is_map(Client), is_map(Input) ->
update_runtime_configuration(Client, Input, []).
update_runtime_configuration(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateRuntimeConfiguration">>, Input, Options).
%% @doc Updates Realtime script metadata and content.
%%
%% To update script metadata, specify the script ID and provide updated name
%% and/or version values.
%%
%% To update script content, provide an updated zip file by pointing to
%% either a local file or an Amazon S3 bucket location. You can use either
%% method regardless of how the original script was uploaded. Use the
%% Version parameter to track updates to the script.
%%
%% If the call is successful, the updated metadata is stored in the script
%% record and a revised script is uploaded to the Amazon GameLift service.
%% Once the script is updated and acquired by a fleet instance, the new
%% version is used for all new game sessions.
%%
%% Learn more
%%
%% Amazon
%% GameLift Realtime Servers
%%
%% Related operations
%%
%%
update_script(Client, Input)
when is_map(Client), is_map(Input) ->
update_script(Client, Input, []).
update_script(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateScript">>, Input, Options).
%% @doc Validates the syntax of a matchmaking rule or rule set. This
%% operation checks that the rule set is using syntactically correct JSON and
%% that it conforms to allowed property expressions. To validate syntax,
%% provide a rule set JSON string.
%%
%% Learn more
%%
%% Related operations
%%
%%
validate_matchmaking_rule_set(Client, Input)
when is_map(Client), is_map(Input) ->
validate_matchmaking_rule_set(Client, Input, []).
validate_matchmaking_rule_set(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ValidateMatchmakingRuleSet">>, Input, Options).
%%====================================================================
%% Internal functions
%%====================================================================
-spec request(aws_client:aws_client(), binary(), map(), list()) ->
{ok, Result, {integer(), list(), hackney:client()}} |
{error, Error, {integer(), list(), hackney:client()}} |
{error, term()} when
Result :: map() | undefined,
Error :: {binary(), binary()}.
request(Client, Action, Input, Options) ->
Client1 = Client#{service => <<"gamelift">>},
Host = get_host(<<"gamelift">>, Client1),
URL = get_url(Host, Client1),
Headers = [
{<<"Host">>, Host},
{<<"Content-Type">>, <<"application/x-amz-json-1.1">>},
{<<"X-Amz-Target">>, << <<"GameLift.">>/binary, Action/binary>>}
],
Payload = jsx:encode(Input),
SignedHeaders = aws_request:sign_request(Client1, <<"POST">>, URL, Headers, Payload),
Response = hackney:request(post, URL, SignedHeaders, Payload, Options),
handle_response(Response).
handle_response({ok, 200, ResponseHeaders, Client}) ->
case hackney:body(Client) of
{ok, <<>>} ->
{ok, undefined, {200, ResponseHeaders, Client}};
{ok, Body} ->
Result = jsx:decode(Body, [return_maps]),
{ok, Result, {200, ResponseHeaders, Client}}
end;
handle_response({ok, StatusCode, ResponseHeaders, Client}) ->
{ok, Body} = hackney:body(Client),
Error = jsx:decode(Body, [return_maps]),
Exception = maps:get(<<"__type">>, Error, undefined),
Reason = maps:get(<<"message">>, Error, undefined),
{error, {Exception, Reason}, {StatusCode, ResponseHeaders, Client}};
handle_response({error, Reason}) ->
{error, Reason}.
get_host(_EndpointPrefix, #{region := <<"local">>}) ->
<<"localhost">>;
get_host(EndpointPrefix, #{region := Region, endpoint := Endpoint}) ->
aws_util:binary_join([EndpointPrefix, <<".">>, Region, <<".">>, Endpoint], <<"">>).
get_url(Host, Client) ->
Proto = maps:get(proto, Client),
Port = maps:get(port, Client),
aws_util:binary_join([Proto, <<"://">>, Host, <<":">>, Port, <<"/">>], <<"">>).