/** * 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 #include #include namespace Aws { namespace GameLift { namespace Model { /** */ class CreateGameSessionQueueRequest : public GameLiftRequest { public: AWS_GAMELIFT_API CreateGameSessionQueueRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateGameSessionQueue"; } AWS_GAMELIFT_API Aws::String SerializePayload() const override; AWS_GAMELIFT_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

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 CreateGameSessionQueueRequest& 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 CreateGameSessionQueueRequest& 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 CreateGameSessionQueueRequest& WithName(const char* value) { SetName(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 CreateGameSessionQueueRequest& 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 CreateGameSessionQueueRequest& 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 CreateGameSessionQueueRequest& 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 CreateGameSessionQueueRequest& 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 CreateGameSessionQueueRequest& 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 CreateGameSessionQueueRequest& 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 CreateGameSessionQueueRequest& 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 CreateGameSessionQueueRequest& 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 CreateGameSessionQueueRequest& 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 CreateGameSessionQueueRequest& 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 CreateGameSessionQueueRequest& 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 CreateGameSessionQueueRequest& 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 CreateGameSessionQueueRequest& WithPriorityConfiguration(PriorityConfiguration&& value) { SetPriorityConfiguration(std::move(value)); return *this;} /** *

Information to be added to all events that are related to this game session * queue.

*/ inline const Aws::String& GetCustomEventData() const{ return m_customEventData; } /** *

Information to be added to all events that are related to this game session * queue.

*/ inline bool CustomEventDataHasBeenSet() const { return m_customEventDataHasBeenSet; } /** *

Information to be 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 to be 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 to be 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 to be added to all events that are related to this game session * queue.

*/ inline CreateGameSessionQueueRequest& WithCustomEventData(const Aws::String& value) { SetCustomEventData(value); return *this;} /** *

Information to be added to all events that are related to this game session * queue.

*/ inline CreateGameSessionQueueRequest& WithCustomEventData(Aws::String&& value) { SetCustomEventData(std::move(value)); return *this;} /** *

Information to be added to all events that are related to this game session * queue.

*/ inline CreateGameSessionQueueRequest& 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 CreateGameSessionQueueRequest& 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 CreateGameSessionQueueRequest& 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 CreateGameSessionQueueRequest& WithNotificationTarget(const char* value) { SetNotificationTarget(value); return *this;} /** *

A list of labels to assign to the new game session queue resource. Tags are * developer-defined key-value pairs. Tagging Amazon Web Services resources are * useful for resource management, access management and cost allocation. For more * information, see Tagging * Amazon Web Services Resources in the Amazon Web Services General * Reference.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

A list of labels to assign to the new game session queue resource. Tags are * developer-defined key-value pairs. Tagging Amazon Web Services resources are * useful for resource management, access management and cost allocation. For more * information, see Tagging * Amazon Web Services Resources in the Amazon Web Services General * Reference.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

A list of labels to assign to the new game session queue resource. Tags are * developer-defined key-value pairs. Tagging Amazon Web Services resources are * useful for resource management, access management and cost allocation. For more * information, see Tagging * Amazon Web Services Resources in the Amazon Web Services General * Reference.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

A list of labels to assign to the new game session queue resource. Tags are * developer-defined key-value pairs. Tagging Amazon Web Services resources are * useful for resource management, access management and cost allocation. For more * information, see Tagging * Amazon Web Services Resources in the Amazon Web Services General * Reference.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

A list of labels to assign to the new game session queue resource. Tags are * developer-defined key-value pairs. Tagging Amazon Web Services resources are * useful for resource management, access management and cost allocation. For more * information, see Tagging * Amazon Web Services Resources in the Amazon Web Services General * Reference.

*/ inline CreateGameSessionQueueRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

A list of labels to assign to the new game session queue resource. Tags are * developer-defined key-value pairs. Tagging Amazon Web Services resources are * useful for resource management, access management and cost allocation. For more * information, see Tagging * Amazon Web Services Resources in the Amazon Web Services General * Reference.

*/ inline CreateGameSessionQueueRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

A list of labels to assign to the new game session queue resource. Tags are * developer-defined key-value pairs. Tagging Amazon Web Services resources are * useful for resource management, access management and cost allocation. For more * information, see Tagging * Amazon Web Services Resources in the Amazon Web Services General * Reference.

*/ inline CreateGameSessionQueueRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

A list of labels to assign to the new game session queue resource. Tags are * developer-defined key-value pairs. Tagging Amazon Web Services resources are * useful for resource management, access management and cost allocation. For more * information, see Tagging * Amazon Web Services Resources in the Amazon Web Services General * Reference.

*/ inline CreateGameSessionQueueRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::String m_name; bool m_nameHasBeenSet = 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; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace GameLift } // namespace Aws