/*
* 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
{
///
/// 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.
///
public partial class GameSessionQueue
{
private string _customEventData;
private List _destinations = new List();
private FilterConfiguration _filterConfiguration;
private string _gameSessionQueueArn;
private string _name;
private string _notificationTarget;
private List _playerLatencyPolicies = new List();
private PriorityConfiguration _priorityConfiguration;
private int? _timeoutInSeconds;
///
/// Gets and sets the property CustomEventData.
///
/// Information that is 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 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.
///
///
[AWSProperty(Min=1, Max=256)]
public string GameSessionQueueArn
{
get { return this._gameSessionQueueArn; }
set { this._gameSessionQueueArn = value; }
}
// Check to see if GameSessionQueueArn property is set
internal bool IsSetGameSessionQueueArn()
{
return this._gameSessionQueueArn != 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(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 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;
}
}
}