/*
* 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
{
///
/// Guidelines for use with FlexMatch to match players into games. All matchmaking requests
/// must specify a matchmaking configuration.
///
public partial class MatchmakingConfiguration
{
private bool? _acceptanceRequired;
private int? _acceptanceTimeoutSeconds;
private int? _additionalPlayerCount;
private BackfillMode _backfillMode;
private string _configurationArn;
private DateTime? _creationTime;
private string _customEventData;
private string _description;
private FlexMatchMode _flexMatchMode;
private List _gameProperties = new List();
private string _gameSessionData;
private List _gameSessionQueueArns = new List();
private string _name;
private string _notificationTarget;
private int? _requestTimeoutSeconds;
private string _ruleSetArn;
private string _ruleSetName;
///
/// Gets and sets the property AcceptanceRequired.
///
/// A flag that indicates whether a match that was created with this configuration must
/// be accepted by the matched players. To require acceptance, set to TRUE. When this
/// option is enabled, matchmaking tickets use the status REQUIRES_ACCEPTANCE
/// to indicate when a completed potential match is waiting for player acceptance.
///
///
public bool AcceptanceRequired
{
get { return this._acceptanceRequired.GetValueOrDefault(); }
set { this._acceptanceRequired = value; }
}
// Check to see if AcceptanceRequired property is set
internal bool IsSetAcceptanceRequired()
{
return this._acceptanceRequired.HasValue;
}
///
/// Gets and sets the property AcceptanceTimeoutSeconds.
///
/// The length of time (in seconds) to wait for players to accept a proposed match, if
/// acceptance is required. If any player rejects the match or fails to accept before
/// the timeout, the ticket continues to look for an acceptable match.
///
///
[AWSProperty(Min=1, Max=600)]
public int AcceptanceTimeoutSeconds
{
get { return this._acceptanceTimeoutSeconds.GetValueOrDefault(); }
set { this._acceptanceTimeoutSeconds = value; }
}
// Check to see if AcceptanceTimeoutSeconds property is set
internal bool IsSetAcceptanceTimeoutSeconds()
{
return this._acceptanceTimeoutSeconds.HasValue;
}
///
/// Gets and sets the property AdditionalPlayerCount.
///
/// The number of player slots in a match to keep open for future players. For example,
/// if the configuration's rule set specifies a match for a single 10-person team, and
/// the additional player count is set to 2, 10 players will be selected for the match
/// and 2 more player slots will be open for future players. This parameter is not used
/// when FlexMatchMode
is set to STANDALONE
.
///
///
[AWSProperty(Min=0)]
public int AdditionalPlayerCount
{
get { return this._additionalPlayerCount.GetValueOrDefault(); }
set { this._additionalPlayerCount = value; }
}
// Check to see if AdditionalPlayerCount property is set
internal bool IsSetAdditionalPlayerCount()
{
return this._additionalPlayerCount.HasValue;
}
///
/// Gets and sets the property BackfillMode.
///
/// The method used to backfill game sessions created with this matchmaking configuration.
/// MANUAL indicates that the game makes backfill requests or does not use the match backfill
/// feature. AUTOMATIC indicates that GameLift creates backfill requests whenever a game
/// session has one or more open slots. Learn more about manual and automatic backfill
/// in Backfill
/// existing games with FlexMatch. Automatic backfill is not available when FlexMatchMode
/// is set to STANDALONE
.
///
///
public BackfillMode BackfillMode
{
get { return this._backfillMode; }
set { this._backfillMode = value; }
}
// Check to see if BackfillMode property is set
internal bool IsSetBackfillMode()
{
return this._backfillMode != null;
}
///
/// Gets and sets the property ConfigurationArn.
///
/// The Amazon Resource Name (ARN)
/// that is assigned to a Amazon GameLift matchmaking configuration resource and uniquely
/// identifies it. ARNs are unique across all Regions. Format is arn:aws:gamelift:<region>::matchmakingconfiguration/<matchmaking
/// configuration name>
. In a Amazon GameLift configuration ARN, the resource
/// ID matches the Name value.
///
///
public string ConfigurationArn
{
get { return this._configurationArn; }
set { this._configurationArn = value; }
}
// Check to see if ConfigurationArn property is set
internal bool IsSetConfigurationArn()
{
return this._configurationArn != null;
}
///
/// Gets and sets the property CreationTime.
///
/// A time stamp indicating when this data object was created. Format is a number expressed
/// in Unix time as milliseconds (for example "1469498468.057"
).
///
///
public DateTime CreationTime
{
get { return this._creationTime.GetValueOrDefault(); }
set { this._creationTime = value; }
}
// Check to see if CreationTime property is set
internal bool IsSetCreationTime()
{
return this._creationTime.HasValue;
}
///
/// Gets and sets the property CustomEventData.
///
/// Information to attach to all events related to the matchmaking configuration.
///
///
[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 Description.
///
/// A descriptive label that is associated with matchmaking configuration.
///
///
[AWSProperty(Min=1, Max=1024)]
public string Description
{
get { return this._description; }
set { this._description = value; }
}
// Check to see if Description property is set
internal bool IsSetDescription()
{
return this._description != null;
}
///
/// Gets and sets the property FlexMatchMode.
///
/// Indicates whether this matchmaking configuration is being used with Amazon GameLift
/// hosting or as a standalone matchmaking solution.
///
/// -
///
/// STANDALONE - FlexMatch forms matches and returns match information, including
/// players and team assignments, in a
/// MatchmakingSucceeded event.
///
///
-
///
/// WITH_QUEUE - FlexMatch forms matches and uses the specified Amazon GameLift
/// queue to start a game session for the match.
///
///
///
public FlexMatchMode FlexMatchMode
{
get { return this._flexMatchMode; }
set { this._flexMatchMode = value; }
}
// Check to see if FlexMatchMode property is set
internal bool IsSetFlexMatchMode()
{
return this._flexMatchMode != null;
}
///
/// 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). This information is added to the new GameSession
/// object that is created for a successful match. This parameter is not used when FlexMatchMode
/// is set to STANDALONE
.
///
///
[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 GameSessionData.
///
/// A set of custom game session properties, formatted as a single string value. This
/// data is passed to a game server process with a request to start a new game session
/// (see Start
/// a Game Session). This information is added to the new GameSession
/// object that is created for a successful match. This parameter is not used when FlexMatchMode
/// is set to STANDALONE
.
///
///
[AWSProperty(Min=1, Max=4096)]
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 GameSessionQueueArns.
///
/// 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>
. Queues can be located in any Region. Queues are used to start new
/// Amazon GameLift-hosted game sessions for matches that are created with this matchmaking
/// configuration. This property is not set when FlexMatchMode
is set to
/// STANDALONE
.
///
///
public List GameSessionQueueArns
{
get { return this._gameSessionQueueArns; }
set { this._gameSessionQueueArns = value; }
}
// Check to see if GameSessionQueueArns property is set
internal bool IsSetGameSessionQueueArns()
{
return this._gameSessionQueueArns != null && this._gameSessionQueueArns.Count > 0;
}
///
/// Gets and sets the property Name.
///
/// A unique identifier for the matchmaking configuration. This name is used to identify
/// the configuration associated with a matchmaking request or ticket.
///
///
[AWSProperty(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 matchmaking notifications.
///
///
[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 RequestTimeoutSeconds.
///
/// The maximum duration, in seconds, that a matchmaking ticket can remain in process
/// before timing out. Requests that fail due to timing out can be resubmitted as needed.
///
///
[AWSProperty(Min=1, Max=43200)]
public int RequestTimeoutSeconds
{
get { return this._requestTimeoutSeconds.GetValueOrDefault(); }
set { this._requestTimeoutSeconds = value; }
}
// Check to see if RequestTimeoutSeconds property is set
internal bool IsSetRequestTimeoutSeconds()
{
return this._requestTimeoutSeconds.HasValue;
}
///
/// Gets and sets the property RuleSetArn.
///
/// The Amazon Resource Name (ARN)
/// associated with the GameLift matchmaking rule set resource that this configuration
/// uses.
///
///
public string RuleSetArn
{
get { return this._ruleSetArn; }
set { this._ruleSetArn = value; }
}
// Check to see if RuleSetArn property is set
internal bool IsSetRuleSetArn()
{
return this._ruleSetArn != null;
}
///
/// Gets and sets the property RuleSetName.
///
/// A unique identifier for the matchmaking rule set to use with this configuration. A
/// matchmaking configuration can only use rule sets that are defined in the same Region.
///
///
[AWSProperty(Max=128)]
public string RuleSetName
{
get { return this._ruleSetName; }
set { this._ruleSetName = value; }
}
// Check to see if RuleSetName property is set
internal bool IsSetRuleSetName()
{
return this._ruleSetName != null;
}
}
}