/*
* 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
{
///
/// This object includes the full details of the original request plus the current status
/// and start/end time stamps.
///
public partial class GameSessionPlacement
{
private string _dnsName;
private DateTime? _endTime;
private List _gameProperties = new List();
private string _gameSessionArn;
private string _gameSessionData;
private string _gameSessionId;
private string _gameSessionName;
private string _gameSessionQueueName;
private string _gameSessionRegion;
private string _ipAddress;
private string _matchmakerData;
private int? _maximumPlayerSessionCount;
private List _placedPlayerSessions = new List();
private string _placementId;
private List _playerLatencies = new List();
private int? _port;
private DateTime? _startTime;
private GameSessionPlacementState _status;
///
/// Gets and sets the property DnsName.
///
/// The DNS identifier assigned to the instance that is running the game session. Values
/// have the following format:
///
/// -
///
/// TLS-enabled fleets:
<unique identifier>.<region identifier>.amazongamelift.com
.
///
/// -
///
/// Non-TLS-enabled fleets:
ec2-<unique identifier>.compute.amazonaws.com
.
/// (See Amazon
/// EC2 Instance IP Addressing.)
///
///
///
/// When connecting to a game session that is running on a TLS-enabled fleet, you must
/// use the DNS name, not the IP address.
///
///
public string DnsName
{
get { return this._dnsName; }
set { this._dnsName = value; }
}
// Check to see if DnsName property is set
internal bool IsSetDnsName()
{
return this._dnsName != null;
}
///
/// Gets and sets the property EndTime.
///
/// Time stamp indicating when this request was completed, canceled, or timed out.
///
///
public DateTime EndTime
{
get { return this._endTime.GetValueOrDefault(); }
set { this._endTime = value; }
}
// Check to see if EndTime property is set
internal bool IsSetEndTime()
{
return this._endTime.HasValue;
}
///
/// Gets and sets the property GameProperties.
///
/// A set of custom properties for a game session, formatted as key:value pairs. These
/// properties are passed to a game server process with a request to start a new game
/// session (see Start
/// a Game Session).
///
///
[AWSProperty(Max=16)]
public List GameProperties
{
get { return this._gameProperties; }
set { this._gameProperties = value; }
}
// Check to see if GameProperties property is set
internal bool IsSetGameProperties()
{
return this._gameProperties != null && this._gameProperties.Count > 0;
}
///
/// Gets and sets the property GameSessionArn.
///
/// Identifier for the game session created by this placement request. This value is set
/// once the new game session is placed (placement status is FULFILLED
).
/// This identifier is unique across all Regions. You can use this value as a GameSessionId
/// value as needed.
///
///
[AWSProperty(Min=1, Max=1024)]
public string GameSessionArn
{
get { return this._gameSessionArn; }
set { this._gameSessionArn = value; }
}
// Check to see if GameSessionArn property is set
internal bool IsSetGameSessionArn()
{
return this._gameSessionArn != null;
}
///
/// Gets and sets the property GameSessionData.
///
/// A set of custom game session properties, formatted as a single string value. This
/// data is passed to a game server process in the GameSession
object with
/// a request to start a new game session (see Start
/// a Game Session).
///
///
[AWSProperty(Min=1, Max=262144)]
public string GameSessionData
{
get { return this._gameSessionData; }
set { this._gameSessionData = value; }
}
// Check to see if GameSessionData property is set
internal bool IsSetGameSessionData()
{
return this._gameSessionData != null;
}
///
/// Gets and sets the property GameSessionId.
///
/// A unique identifier for the game session. This value is set once the new game session
/// is placed (placement status is FULFILLED
).
///
///
[AWSProperty(Min=1, Max=1024)]
public string GameSessionId
{
get { return this._gameSessionId; }
set { this._gameSessionId = value; }
}
// Check to see if GameSessionId property is set
internal bool IsSetGameSessionId()
{
return this._gameSessionId != null;
}
///
/// Gets and sets the property GameSessionName.
///
/// A descriptive label that is associated with a game session. Session names do not need
/// to be unique.
///
///
[AWSProperty(Min=1, Max=1024)]
public string GameSessionName
{
get { return this._gameSessionName; }
set { this._gameSessionName = value; }
}
// Check to see if GameSessionName property is set
internal bool IsSetGameSessionName()
{
return this._gameSessionName != null;
}
///
/// Gets and sets the property GameSessionQueueName.
///
/// 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 GameSessionQueueName
{
get { return this._gameSessionQueueName; }
set { this._gameSessionQueueName = value; }
}
// Check to see if GameSessionQueueName property is set
internal bool IsSetGameSessionQueueName()
{
return this._gameSessionQueueName != null;
}
///
/// Gets and sets the property GameSessionRegion.
///
/// Name of the Region where the game session created by this placement request is running.
/// This value is set once the new game session is placed (placement status is FULFILLED
).
///
///
[AWSProperty(Min=1, Max=1024)]
public string GameSessionRegion
{
get { return this._gameSessionRegion; }
set { this._gameSessionRegion = value; }
}
// Check to see if GameSessionRegion property is set
internal bool IsSetGameSessionRegion()
{
return this._gameSessionRegion != null;
}
///
/// Gets and sets the property IpAddress.
///
/// The IP address of the game session. To connect to a Amazon GameLift game server, an
/// app needs both the IP address and port number. This value is set once the new game
/// session is placed (placement status is FULFILLED
).
///
///
[AWSProperty(Min=1, Max=128)]
public string IpAddress
{
get { return this._ipAddress; }
set { this._ipAddress = value; }
}
// Check to see if IpAddress property is set
internal bool IsSetIpAddress()
{
return this._ipAddress != null;
}
///
/// Gets and sets the property MatchmakerData.
///
/// Information on the matchmaking process for this game. Data is in JSON syntax, formatted
/// as a string. It identifies the matchmaking configuration used to create the match,
/// and contains data on all players assigned to the match, including player attributes
/// and team assignments. For more details on matchmaker data, see Match
/// Data.
///
///
[AWSProperty(Min=1, Max=390000)]
public string MatchmakerData
{
get { return this._matchmakerData; }
set { this._matchmakerData = value; }
}
// Check to see if MatchmakerData property is set
internal bool IsSetMatchmakerData()
{
return this._matchmakerData != null;
}
///
/// Gets and sets the property MaximumPlayerSessionCount.
///
/// The maximum number of players that can be connected simultaneously to the game session.
///
///
[AWSProperty(Min=0)]
public int MaximumPlayerSessionCount
{
get { return this._maximumPlayerSessionCount.GetValueOrDefault(); }
set { this._maximumPlayerSessionCount = value; }
}
// Check to see if MaximumPlayerSessionCount property is set
internal bool IsSetMaximumPlayerSessionCount()
{
return this._maximumPlayerSessionCount.HasValue;
}
///
/// Gets and sets the property PlacedPlayerSessions.
///
/// A collection of information on player sessions created in response to the game session
/// placement request. These player sessions are created only once a new game session
/// is successfully placed (placement status is FULFILLED
). This information
/// includes the player ID (as provided in the placement request) and the corresponding
/// player session ID.
///
///
public List PlacedPlayerSessions
{
get { return this._placedPlayerSessions; }
set { this._placedPlayerSessions = value; }
}
// Check to see if PlacedPlayerSessions property is set
internal bool IsSetPlacedPlayerSessions()
{
return this._placedPlayerSessions != null && this._placedPlayerSessions.Count > 0;
}
///
/// Gets and sets the property PlacementId.
///
/// A unique identifier for a game session placement.
///
///
[AWSProperty(Min=1, Max=48)]
public string PlacementId
{
get { return this._placementId; }
set { this._placementId = value; }
}
// Check to see if PlacementId property is set
internal bool IsSetPlacementId()
{
return this._placementId != null;
}
///
/// Gets and sets the property PlayerLatencies.
///
/// A set of values, expressed in milliseconds, that indicates the amount of latency that
/// a player experiences when connected to Amazon Web Services Regions.
///
///
public List PlayerLatencies
{
get { return this._playerLatencies; }
set { this._playerLatencies = value; }
}
// Check to see if PlayerLatencies property is set
internal bool IsSetPlayerLatencies()
{
return this._playerLatencies != null && this._playerLatencies.Count > 0;
}
///
/// Gets and sets the property Port.
///
/// The port number for the game session. To connect to a Amazon GameLift game server,
/// an app needs both the IP address and port number. This value is set once the new game
/// session is placed (placement status is FULFILLED
).
///
///
[AWSProperty(Min=1, Max=60000)]
public int Port
{
get { return this._port.GetValueOrDefault(); }
set { this._port = value; }
}
// Check to see if Port property is set
internal bool IsSetPort()
{
return this._port.HasValue;
}
///
/// Gets and sets the property StartTime.
///
/// Time stamp indicating when this request was placed in the queue. Format is a number
/// expressed in Unix time as milliseconds (for example "1469498468.057"
).
///
///
public DateTime StartTime
{
get { return this._startTime.GetValueOrDefault(); }
set { this._startTime = value; }
}
// Check to see if StartTime property is set
internal bool IsSetStartTime()
{
return this._startTime.HasValue;
}
///
/// Gets and sets the property Status.
///
/// Current status of the game session placement request.
///
/// -
///
/// PENDING -- The placement request is currently in the queue waiting to be processed.
///
///
-
///
/// FULFILLED -- A new game session and player sessions (if requested) have been
/// successfully created. Values for GameSessionArn and GameSessionRegion
/// are available.
///
///
-
///
/// CANCELLED -- The placement request was canceled.
///
///
-
///
/// TIMED_OUT -- A new game session was not successfully created before the time
/// limit expired. You can resubmit the placement request as needed.
///
///
-
///
/// FAILED -- Amazon GameLift is not able to complete the process of placing the
/// game session. Common reasons are the game session terminated before the placement
/// process was completed, or an unexpected internal error.
///
///
///
public GameSessionPlacementState Status
{
get { return this._status; }
set { this._status = value; }
}
// Check to see if Status property is set
internal bool IsSetStatus()
{
return this._status != null;
}
}
}