/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Configuration for a game session placement mechanism that processes requests
* for new game sessions. A queue can be used on its own or as part of a
* matchmaking solution.See Also:
AWS
* API Reference
A descriptive label that is associated with game session queue. Queue names * must be unique within each Region.
*/ inline const Aws::String& GetName() const{ return m_name; } /** *A descriptive label that is associated with game session queue. Queue names * must be unique within each Region.
*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *A descriptive label that is associated with game session queue. Queue names * must be unique within each Region.
*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *A descriptive label that is associated with game session queue. Queue names * must be unique within each Region.
*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *A descriptive label that is associated with game session queue. Queue names * must be unique within each Region.
*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *A descriptive label that is associated with game session queue. Queue names * must be unique within each Region.
*/ inline GameSessionQueue& WithName(const Aws::String& value) { SetName(value); return *this;} /** *A descriptive label that is associated with game session queue. Queue names * must be unique within each Region.
*/ inline GameSessionQueue& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *A descriptive label that is associated with game session queue. Queue names * must be unique within each Region.
*/ inline GameSessionQueue& WithName(const char* value) { SetName(value); return *this;} /** *The Amazon Resource Name (ARN)
* that is assigned to a Amazon GameLift game session queue resource and uniquely
* identifies it. ARNs are unique across all Regions. Format is
* arn:aws:gamelift:<region>::gamesessionqueue/<queue
* name>
. In a Amazon GameLift game session queue ARN, the resource ID
* matches the Name value.
The Amazon Resource Name (ARN)
* that is assigned to a Amazon GameLift game session queue resource and uniquely
* identifies it. ARNs are unique across all Regions. Format is
* arn:aws:gamelift:<region>::gamesessionqueue/<queue
* name>
. In a Amazon GameLift game session queue ARN, the resource ID
* matches the Name value.
The Amazon Resource Name (ARN)
* that is assigned to a Amazon GameLift game session queue resource and uniquely
* identifies it. ARNs are unique across all Regions. Format is
* arn:aws:gamelift:<region>::gamesessionqueue/<queue
* name>
. In a Amazon GameLift game session queue ARN, the resource ID
* matches the Name value.
The Amazon Resource Name (ARN)
* that is assigned to a Amazon GameLift game session queue resource and uniquely
* identifies it. ARNs are unique across all Regions. Format is
* arn:aws:gamelift:<region>::gamesessionqueue/<queue
* name>
. In a Amazon GameLift game session queue ARN, the resource ID
* matches the Name value.
The Amazon Resource Name (ARN)
* that is assigned to a Amazon GameLift game session queue resource and uniquely
* identifies it. ARNs are unique across all Regions. Format is
* arn:aws:gamelift:<region>::gamesessionqueue/<queue
* name>
. In a Amazon GameLift game session queue ARN, the resource ID
* matches the Name value.
The Amazon Resource Name (ARN)
* that is assigned to a Amazon GameLift game session queue resource and uniquely
* identifies it. ARNs are unique across all Regions. Format is
* arn:aws:gamelift:<region>::gamesessionqueue/<queue
* name>
. In a Amazon GameLift game session queue ARN, the resource ID
* matches the Name value.
The Amazon Resource Name (ARN)
* that is assigned to a Amazon GameLift game session queue resource and uniquely
* identifies it. ARNs are unique across all Regions. Format is
* arn:aws:gamelift:<region>::gamesessionqueue/<queue
* name>
. In a Amazon GameLift game session queue ARN, the resource ID
* matches the Name value.
The Amazon Resource Name (ARN)
* that is assigned to a Amazon GameLift game session queue resource and uniquely
* identifies it. ARNs are unique across all Regions. Format is
* arn:aws:gamelift:<region>::gamesessionqueue/<queue
* name>
. In a Amazon GameLift game session queue ARN, the resource ID
* matches the Name value.
The maximum time, in seconds, that a new game session placement request
* remains in the queue. When a request exceeds this time, the game session
* placement changes to a TIMED_OUT
status. By default, this property
* is set to 600
.
The maximum time, in seconds, that a new game session placement request
* remains in the queue. When a request exceeds this time, the game session
* placement changes to a TIMED_OUT
status. By default, this property
* is set to 600
.
The maximum time, in seconds, that a new game session placement request
* remains in the queue. When a request exceeds this time, the game session
* placement changes to a TIMED_OUT
status. By default, this property
* is set to 600
.
The maximum time, in seconds, that a new game session placement request
* remains in the queue. When a request exceeds this time, the game session
* placement changes to a TIMED_OUT
status. By default, this property
* is set to 600
.
A set of policies that act as a sliding cap on player latency. FleetIQ works * to deliver low latency for most players in a game session. These policies ensure * that no individual player can be placed into a game with unreasonably high * latency. Use multiple policies to gradually relax latency requirements a step at * a time. Multiple policies are applied based on their maximum allowed latency, * starting with the lowest value.
*/ inline const Aws::VectorA set of policies that act as a sliding cap on player latency. FleetIQ works * to deliver low latency for most players in a game session. These policies ensure * that no individual player can be placed into a game with unreasonably high * latency. Use multiple policies to gradually relax latency requirements a step at * a time. Multiple policies are applied based on their maximum allowed latency, * starting with the lowest value.
*/ inline bool PlayerLatencyPoliciesHasBeenSet() const { return m_playerLatencyPoliciesHasBeenSet; } /** *A set of policies that act as a sliding cap on player latency. FleetIQ works * to deliver low latency for most players in a game session. These policies ensure * that no individual player can be placed into a game with unreasonably high * latency. Use multiple policies to gradually relax latency requirements a step at * a time. Multiple policies are applied based on their maximum allowed latency, * starting with the lowest value.
*/ inline void SetPlayerLatencyPolicies(const Aws::VectorA set of policies that act as a sliding cap on player latency. FleetIQ works * to deliver low latency for most players in a game session. These policies ensure * that no individual player can be placed into a game with unreasonably high * latency. Use multiple policies to gradually relax latency requirements a step at * a time. Multiple policies are applied based on their maximum allowed latency, * starting with the lowest value.
*/ inline void SetPlayerLatencyPolicies(Aws::VectorA set of policies that act as a sliding cap on player latency. FleetIQ works * to deliver low latency for most players in a game session. These policies ensure * that no individual player can be placed into a game with unreasonably high * latency. Use multiple policies to gradually relax latency requirements a step at * a time. Multiple policies are applied based on their maximum allowed latency, * starting with the lowest value.
*/ inline GameSessionQueue& WithPlayerLatencyPolicies(const Aws::VectorA set of policies that act as a sliding cap on player latency. FleetIQ works * to deliver low latency for most players in a game session. These policies ensure * that no individual player can be placed into a game with unreasonably high * latency. Use multiple policies to gradually relax latency requirements a step at * a time. Multiple policies are applied based on their maximum allowed latency, * starting with the lowest value.
*/ inline GameSessionQueue& WithPlayerLatencyPolicies(Aws::VectorA set of policies that act as a sliding cap on player latency. FleetIQ works * to deliver low latency for most players in a game session. These policies ensure * that no individual player can be placed into a game with unreasonably high * latency. Use multiple policies to gradually relax latency requirements a step at * a time. Multiple policies are applied based on their maximum allowed latency, * starting with the lowest value.
*/ inline GameSessionQueue& AddPlayerLatencyPolicies(const PlayerLatencyPolicy& value) { m_playerLatencyPoliciesHasBeenSet = true; m_playerLatencyPolicies.push_back(value); return *this; } /** *A set of policies that act as a sliding cap on player latency. FleetIQ works * to deliver low latency for most players in a game session. These policies ensure * that no individual player can be placed into a game with unreasonably high * latency. Use multiple policies to gradually relax latency requirements a step at * a time. Multiple policies are applied based on their maximum allowed latency, * starting with the lowest value.
*/ inline GameSessionQueue& AddPlayerLatencyPolicies(PlayerLatencyPolicy&& value) { m_playerLatencyPoliciesHasBeenSet = true; m_playerLatencyPolicies.push_back(std::move(value)); return *this; } /** *A list of fleets and/or fleet aliases that can be used to fulfill game * session placement requests in the queue. Destinations are identified by either a * fleet ARN or a fleet alias ARN, and are listed in order of placement * preference.
*/ inline const Aws::VectorA list of fleets and/or fleet aliases that can be used to fulfill game * session placement requests in the queue. Destinations are identified by either a * fleet ARN or a fleet alias ARN, and are listed in order of placement * preference.
*/ inline bool DestinationsHasBeenSet() const { return m_destinationsHasBeenSet; } /** *A list of fleets and/or fleet aliases that can be used to fulfill game * session placement requests in the queue. Destinations are identified by either a * fleet ARN or a fleet alias ARN, and are listed in order of placement * preference.
*/ inline void SetDestinations(const Aws::VectorA list of fleets and/or fleet aliases that can be used to fulfill game * session placement requests in the queue. Destinations are identified by either a * fleet ARN or a fleet alias ARN, and are listed in order of placement * preference.
*/ inline void SetDestinations(Aws::VectorA list of fleets and/or fleet aliases that can be used to fulfill game * session placement requests in the queue. Destinations are identified by either a * fleet ARN or a fleet alias ARN, and are listed in order of placement * preference.
*/ inline GameSessionQueue& WithDestinations(const Aws::VectorA list of fleets and/or fleet aliases that can be used to fulfill game * session placement requests in the queue. Destinations are identified by either a * fleet ARN or a fleet alias ARN, and are listed in order of placement * preference.
*/ inline GameSessionQueue& WithDestinations(Aws::VectorA list of fleets and/or fleet aliases that can be used to fulfill game * session placement requests in the queue. Destinations are identified by either a * fleet ARN or a fleet alias ARN, and are listed in order of placement * preference.
*/ inline GameSessionQueue& AddDestinations(const GameSessionQueueDestination& value) { m_destinationsHasBeenSet = true; m_destinations.push_back(value); return *this; } /** *A list of fleets and/or fleet aliases that can be used to fulfill game * session placement requests in the queue. Destinations are identified by either a * fleet ARN or a fleet alias ARN, and are listed in order of placement * preference.
*/ inline GameSessionQueue& AddDestinations(GameSessionQueueDestination&& value) { m_destinationsHasBeenSet = true; m_destinations.push_back(std::move(value)); return *this; } /** *A list of locations where a queue is allowed to place new game sessions.
* Locations are specified in the form of Amazon Web Services Region codes, such as
* us-west-2
. If this parameter is not set, game sessions can be
* placed in any queue location.
A list of locations where a queue is allowed to place new game sessions.
* Locations are specified in the form of Amazon Web Services Region codes, such as
* us-west-2
. If this parameter is not set, game sessions can be
* placed in any queue location.
A list of locations where a queue is allowed to place new game sessions.
* Locations are specified in the form of Amazon Web Services Region codes, such as
* us-west-2
. If this parameter is not set, game sessions can be
* placed in any queue location.
A list of locations where a queue is allowed to place new game sessions.
* Locations are specified in the form of Amazon Web Services Region codes, such as
* us-west-2
. If this parameter is not set, game sessions can be
* placed in any queue location.
A list of locations where a queue is allowed to place new game sessions.
* Locations are specified in the form of Amazon Web Services Region codes, such as
* us-west-2
. If this parameter is not set, game sessions can be
* placed in any queue location.
A list of locations where a queue is allowed to place new game sessions.
* Locations are specified in the form of Amazon Web Services Region codes, such as
* us-west-2
. If this parameter is not set, game sessions can be
* placed in any queue location.
Custom settings to use when prioritizing destinations and locations for game * session placements. This configuration replaces the FleetIQ default * prioritization process. Priority types that are not explicitly named will be * automatically applied at the end of the prioritization process.
*/ inline const PriorityConfiguration& GetPriorityConfiguration() const{ return m_priorityConfiguration; } /** *Custom settings to use when prioritizing destinations and locations for game * session placements. This configuration replaces the FleetIQ default * prioritization process. Priority types that are not explicitly named will be * automatically applied at the end of the prioritization process.
*/ inline bool PriorityConfigurationHasBeenSet() const { return m_priorityConfigurationHasBeenSet; } /** *Custom settings to use when prioritizing destinations and locations for game * session placements. This configuration replaces the FleetIQ default * prioritization process. Priority types that are not explicitly named will be * automatically applied at the end of the prioritization process.
*/ inline void SetPriorityConfiguration(const PriorityConfiguration& value) { m_priorityConfigurationHasBeenSet = true; m_priorityConfiguration = value; } /** *Custom settings to use when prioritizing destinations and locations for game * session placements. This configuration replaces the FleetIQ default * prioritization process. Priority types that are not explicitly named will be * automatically applied at the end of the prioritization process.
*/ inline void SetPriorityConfiguration(PriorityConfiguration&& value) { m_priorityConfigurationHasBeenSet = true; m_priorityConfiguration = std::move(value); } /** *Custom settings to use when prioritizing destinations and locations for game * session placements. This configuration replaces the FleetIQ default * prioritization process. Priority types that are not explicitly named will be * automatically applied at the end of the prioritization process.
*/ inline GameSessionQueue& WithPriorityConfiguration(const PriorityConfiguration& value) { SetPriorityConfiguration(value); return *this;} /** *Custom settings to use when prioritizing destinations and locations for game * session placements. This configuration replaces the FleetIQ default * prioritization process. Priority types that are not explicitly named will be * automatically applied at the end of the prioritization process.
*/ inline GameSessionQueue& WithPriorityConfiguration(PriorityConfiguration&& value) { SetPriorityConfiguration(std::move(value)); return *this;} /** *Information that is added to all events that are related to this game * session queue.
*/ inline const Aws::String& GetCustomEventData() const{ return m_customEventData; } /** *Information that is added to all events that are related to this game * session queue.
*/ inline bool CustomEventDataHasBeenSet() const { return m_customEventDataHasBeenSet; } /** *Information that is added to all events that are related to this game * session queue.
*/ inline void SetCustomEventData(const Aws::String& value) { m_customEventDataHasBeenSet = true; m_customEventData = value; } /** *Information that is added to all events that are related to this game * session queue.
*/ inline void SetCustomEventData(Aws::String&& value) { m_customEventDataHasBeenSet = true; m_customEventData = std::move(value); } /** *Information that is added to all events that are related to this game * session queue.
*/ inline void SetCustomEventData(const char* value) { m_customEventDataHasBeenSet = true; m_customEventData.assign(value); } /** *Information that is added to all events that are related to this game * session queue.
*/ inline GameSessionQueue& WithCustomEventData(const Aws::String& value) { SetCustomEventData(value); return *this;} /** *Information that is added to all events that are related to this game * session queue.
*/ inline GameSessionQueue& WithCustomEventData(Aws::String&& value) { SetCustomEventData(std::move(value)); return *this;} /** *Information that is added to all events that are related to this game * session queue.
*/ inline GameSessionQueue& WithCustomEventData(const char* value) { SetCustomEventData(value); return *this;} /** *An SNS topic ARN that is set up to receive game session placement * notifications. See * Setting up notifications for game session placement.
*/ inline const Aws::String& GetNotificationTarget() const{ return m_notificationTarget; } /** *An SNS topic ARN that is set up to receive game session placement * notifications. See * Setting up notifications for game session placement.
*/ inline bool NotificationTargetHasBeenSet() const { return m_notificationTargetHasBeenSet; } /** *An SNS topic ARN that is set up to receive game session placement * notifications. See * Setting up notifications for game session placement.
*/ inline void SetNotificationTarget(const Aws::String& value) { m_notificationTargetHasBeenSet = true; m_notificationTarget = value; } /** *An SNS topic ARN that is set up to receive game session placement * notifications. See * Setting up notifications for game session placement.
*/ inline void SetNotificationTarget(Aws::String&& value) { m_notificationTargetHasBeenSet = true; m_notificationTarget = std::move(value); } /** *An SNS topic ARN that is set up to receive game session placement * notifications. See * Setting up notifications for game session placement.
*/ inline void SetNotificationTarget(const char* value) { m_notificationTargetHasBeenSet = true; m_notificationTarget.assign(value); } /** *An SNS topic ARN that is set up to receive game session placement * notifications. See * Setting up notifications for game session placement.
*/ inline GameSessionQueue& WithNotificationTarget(const Aws::String& value) { SetNotificationTarget(value); return *this;} /** *An SNS topic ARN that is set up to receive game session placement * notifications. See * Setting up notifications for game session placement.
*/ inline GameSessionQueue& WithNotificationTarget(Aws::String&& value) { SetNotificationTarget(std::move(value)); return *this;} /** *An SNS topic ARN that is set up to receive game session placement * notifications. See * Setting up notifications for game session placement.
*/ inline GameSessionQueue& WithNotificationTarget(const char* value) { SetNotificationTarget(value); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_gameSessionQueueArn; bool m_gameSessionQueueArnHasBeenSet = false; int m_timeoutInSeconds; bool m_timeoutInSecondsHasBeenSet = false; Aws::Vector