/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace GameLift { namespace Model { /** *

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

*/ class GameSessionQueue { public: AWS_GAMELIFT_API GameSessionQueue(); AWS_GAMELIFT_API GameSessionQueue(Aws::Utils::Json::JsonView jsonValue); AWS_GAMELIFT_API GameSessionQueue& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_GAMELIFT_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

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.

*/ inline const Aws::String& GetGameSessionQueueArn() const{ return m_gameSessionQueueArn; } /** *

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.

*/ inline bool GameSessionQueueArnHasBeenSet() const { return m_gameSessionQueueArnHasBeenSet; } /** *

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.

*/ inline void SetGameSessionQueueArn(const Aws::String& value) { m_gameSessionQueueArnHasBeenSet = true; m_gameSessionQueueArn = 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.

*/ inline void SetGameSessionQueueArn(Aws::String&& value) { m_gameSessionQueueArnHasBeenSet = true; m_gameSessionQueueArn = std::move(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.

*/ inline void SetGameSessionQueueArn(const char* value) { m_gameSessionQueueArnHasBeenSet = true; m_gameSessionQueueArn.assign(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.

*/ inline GameSessionQueue& WithGameSessionQueueArn(const Aws::String& value) { SetGameSessionQueueArn(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.

*/ inline GameSessionQueue& WithGameSessionQueueArn(Aws::String&& value) { SetGameSessionQueueArn(std::move(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.

*/ inline GameSessionQueue& WithGameSessionQueueArn(const char* value) { SetGameSessionQueueArn(value); return *this;} /** *

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.

*/ inline int GetTimeoutInSeconds() const{ return m_timeoutInSeconds; } /** *

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.

*/ inline bool TimeoutInSecondsHasBeenSet() const { return m_timeoutInSecondsHasBeenSet; } /** *

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.

*/ inline void SetTimeoutInSeconds(int value) { m_timeoutInSecondsHasBeenSet = true; m_timeoutInSeconds = 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.

*/ inline GameSessionQueue& WithTimeoutInSeconds(int value) { SetTimeoutInSeconds(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 const Aws::Vector& GetPlayerLatencyPolicies() const{ return m_playerLatencyPolicies; } /** *

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 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::Vector& value) { m_playerLatencyPoliciesHasBeenSet = true; m_playerLatencyPolicies = value; } /** *

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(Aws::Vector&& value) { m_playerLatencyPoliciesHasBeenSet = true; m_playerLatencyPolicies = std::move(value); } /** *

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& WithPlayerLatencyPolicies(const Aws::Vector& value) { SetPlayerLatencyPolicies(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& WithPlayerLatencyPolicies(Aws::Vector&& value) { SetPlayerLatencyPolicies(std::move(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(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::Vector& GetDestinations() const{ return m_destinations; } /** *

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 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::Vector& value) { m_destinationsHasBeenSet = true; m_destinations = value; } /** *

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(Aws::Vector&& value) { m_destinationsHasBeenSet = true; m_destinations = std::move(value); } /** *

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& WithDestinations(const Aws::Vector& value) { SetDestinations(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& WithDestinations(Aws::Vector&& value) { SetDestinations(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 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.

*/ inline const FilterConfiguration& GetFilterConfiguration() const{ return m_filterConfiguration; } /** *

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.

*/ inline bool FilterConfigurationHasBeenSet() const { return m_filterConfigurationHasBeenSet; } /** *

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.

*/ inline void SetFilterConfiguration(const FilterConfiguration& value) { m_filterConfigurationHasBeenSet = true; m_filterConfiguration = value; } /** *

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.

*/ inline void SetFilterConfiguration(FilterConfiguration&& value) { m_filterConfigurationHasBeenSet = true; m_filterConfiguration = std::move(value); } /** *

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.

*/ inline GameSessionQueue& WithFilterConfiguration(const FilterConfiguration& value) { SetFilterConfiguration(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.

*/ inline GameSessionQueue& WithFilterConfiguration(FilterConfiguration&& value) { SetFilterConfiguration(std::move(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 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 m_playerLatencyPolicies; bool m_playerLatencyPoliciesHasBeenSet = false; Aws::Vector m_destinations; bool m_destinationsHasBeenSet = false; FilterConfiguration m_filterConfiguration; bool m_filterConfigurationHasBeenSet = false; PriorityConfiguration m_priorityConfiguration; bool m_priorityConfigurationHasBeenSet = false; Aws::String m_customEventData; bool m_customEventDataHasBeenSet = false; Aws::String m_notificationTarget; bool m_notificationTargetHasBeenSet = false; }; } // namespace Model } // namespace GameLift } // namespace Aws