/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ /* * Do not modify this file. This file is generated from the gamelift-2015-10-01.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.GameLift.Model { /// /// Container for the parameters to the CreateGameSessionQueue operation. /// Creates a placement queue that processes requests for new game sessions. A queue uses /// FleetIQ algorithms to determine the best placement locations and find an available /// game server there, then prompts the game server process to start a new game session. /// /// /// /// /// A game session queue is configured with a set of destinations (Amazon GameLift fleets /// or aliases), which determine the locations where the queue can place new game sessions. /// These destinations can span multiple fleet types (Spot and On-Demand), instance types, /// and Amazon Web Services Regions. If the queue includes multi-location fleets, the /// queue is able to place game sessions in all of a fleet's remote locations. You can /// opt to filter out individual locations if needed. /// /// /// /// The queue configuration also determines how FleetIQ selects the best available placement /// for a new game session. Before searching for an available game server, FleetIQ first /// prioritizes the queue's destinations and locations, with the best placement locations /// on top. You can set up the queue to use the FleetIQ default prioritization or provide /// an alternate set of priorities. /// /// /// /// To create a new queue, provide a name, timeout value, and a list of destinations. /// Optionally, specify a sort configuration and/or a filter, and define a set of latency /// cap policies. You can also include the ARN for an Amazon Simple Notification Service /// (SNS) topic to receive notifications of game session placement activity. Notifications /// using SNS or CloudWatch events is the preferred way to track placement activity. /// /// /// /// If successful, a new GameSessionQueue object is returned with an assigned /// queue ARN. New game session requests, which are submitted to queue with StartGameSessionPlacement /// or StartMatchmaking, /// reference a queue's name or ARN. /// /// /// /// Learn more /// /// /// /// /// Design a game session queue /// /// /// /// /// Create a game session queue /// /// /// /// Related actions /// /// /// /// CreateGameSessionQueue /// | DescribeGameSessionQueues /// | UpdateGameSessionQueue /// | DeleteGameSessionQueue /// | All /// APIs by task /// /// public partial class CreateGameSessionQueueRequest : AmazonGameLiftRequest { private string _customEventData; private List _destinations = new List(); private FilterConfiguration _filterConfiguration; private string _name; private string _notificationTarget; private List _playerLatencyPolicies = new List(); private PriorityConfiguration _priorityConfiguration; private List _tags = new List(); private int? _timeoutInSeconds; /// /// Gets and sets the property CustomEventData. /// /// Information to be added to all events that are related to this game session queue. /// /// [AWSProperty(Min=0, Max=256)] public string CustomEventData { get { return this._customEventData; } set { this._customEventData = value; } } // Check to see if CustomEventData property is set internal bool IsSetCustomEventData() { return this._customEventData != null; } /// /// Gets and sets the property 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. /// /// public List Destinations { get { return this._destinations; } set { this._destinations = value; } } // Check to see if Destinations property is set internal bool IsSetDestinations() { return this._destinations != null && this._destinations.Count > 0; } /// /// Gets and sets the property 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. /// /// public FilterConfiguration FilterConfiguration { get { return this._filterConfiguration; } set { this._filterConfiguration = value; } } // Check to see if FilterConfiguration property is set internal bool IsSetFilterConfiguration() { return this._filterConfiguration != null; } /// /// Gets and sets the property Name. /// /// A descriptive label that is associated with game session queue. Queue names must be /// unique within each Region. /// /// [AWSProperty(Required=true, Min=1, Max=128)] public string Name { get { return this._name; } set { this._name = value; } } // Check to see if Name property is set internal bool IsSetName() { return this._name != null; } /// /// Gets and sets the property NotificationTarget. /// /// An SNS topic ARN that is set up to receive game session placement notifications. See /// /// Setting up notifications for game session placement. /// /// [AWSProperty(Min=0, Max=300)] public string NotificationTarget { get { return this._notificationTarget; } set { this._notificationTarget = value; } } // Check to see if NotificationTarget property is set internal bool IsSetNotificationTarget() { return this._notificationTarget != null; } /// /// Gets and sets the property 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. /// /// public List PlayerLatencyPolicies { get { return this._playerLatencyPolicies; } set { this._playerLatencyPolicies = value; } } // Check to see if PlayerLatencyPolicies property is set internal bool IsSetPlayerLatencyPolicies() { return this._playerLatencyPolicies != null && this._playerLatencyPolicies.Count > 0; } /// /// Gets and sets the property 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. /// /// public PriorityConfiguration PriorityConfiguration { get { return this._priorityConfiguration; } set { this._priorityConfiguration = value; } } // Check to see if PriorityConfiguration property is set internal bool IsSetPriorityConfiguration() { return this._priorityConfiguration != null; } /// /// Gets and sets the property 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. /// /// [AWSProperty(Min=0, Max=200)] public List Tags { get { return this._tags; } set { this._tags = value; } } // Check to see if Tags property is set internal bool IsSetTags() { return this._tags != null && this._tags.Count > 0; } /// /// Gets and sets the property 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. /// /// [AWSProperty(Min=0)] public int TimeoutInSeconds { get { return this._timeoutInSeconds.GetValueOrDefault(); } set { this._timeoutInSeconds = value; } } // Check to see if TimeoutInSeconds property is set internal bool IsSetTimeoutInSeconds() { return this._timeoutInSeconds.HasValue; } } }