com.amazonaws.services.gamelift.model.CreateMatchmakingConfigurationRequest Maven / Gradle / Ivy
/*
* Copyright 2017-2022 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.
*/
package com.amazonaws.services.gamelift.model;
import java.io.Serializable;
import javax.annotation.Generated;
import com.amazonaws.AmazonWebServiceRequest;
/**
*
* Represents the input for a request operation.
*
*
* @see AWS API Documentation
*/
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class CreateMatchmakingConfigurationRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable {
/**
*
* A unique identifier for the matchmaking configuration. This name is used to identify the configuration associated
* with a matchmaking request or ticket.
*
*/
private String name;
/**
*
* A human-readable description of the matchmaking configuration.
*
*/
private String description;
/**
*
* The Amazon Resource Name (ARN)
* that is assigned to a 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 GameLift-hosted game sessions for matches that are created
* with this matchmaking configuration. If FlexMatchMode
is set to STANDALONE
, do not set
* this parameter.
*
*/
private java.util.List gameSessionQueueArns;
/**
*
* 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.
*
*/
private Integer requestTimeoutSeconds;
/**
*
* The length of time (in seconds) to wait for players to accept a proposed match, if acceptance is required.
*
*/
private Integer acceptanceTimeoutSeconds;
/**
*
* A flag that determines whether a match that was created with this configuration must be accepted by the matched
* players. To require acceptance, set to TRUE
. With this option enabled, matchmaking tickets use the
* status REQUIRES_ACCEPTANCE
to indicate when a completed potential match is waiting for player
* acceptance.
*
*/
private Boolean acceptanceRequired;
/**
*
* A unique identifier for the matchmaking rule set to use with this configuration. You can use either the rule set
* name or ARN value. A matchmaking configuration can only use rule sets that are defined in the same Region.
*
*/
private String ruleSetName;
/**
*
* An SNS topic ARN that is set up to receive matchmaking notifications. See Setting up
* notifications for matchmaking for more information.
*
*/
private String notificationTarget;
/**
*
* 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 12-person team, and the additional player count is set to 2, only 10 players
* are selected for the match. This parameter is not used if FlexMatchMode
is set to
* STANDALONE
.
*
*/
private Integer additionalPlayerCount;
/**
*
* Information to be added to all events related to this matchmaking configuration.
*
*/
private String customEventData;
/**
*
* A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a
* game server process in the GameSession object 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 if FlexMatchMode
is set to STANDALONE
.
*
*/
private java.util.List gameProperties;
/**
*
* 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). This information is added to the new GameSession object that is created for a
* successful match. This parameter is not used if FlexMatchMode
is set to STANDALONE
.
*
*/
private String gameSessionData;
/**
*
* The method used to backfill game sessions that are created with this matchmaking configuration. Specify
* MANUAL
when your game manages backfill requests manually or does not use the match backfill feature.
* Specify AUTOMATIC
to have GameLift create a StartMatchBackfill request 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
.
*
*/
private String backfillMode;
/**
*
* Indicates whether this matchmaking configuration is being used with 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 GameLift queue to start a game session for the
* match.
*
*
*
*/
private String flexMatchMode;
/**
*
* A list of labels to assign to the new matchmaking configuration 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. Once the resource
* is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove,
* and view tags. The maximum tag limit may be lower than stated. See the Amazon Web Services General Reference for
* actual tagging limits.
*
*/
private java.util.List tags;
/**
*
* A unique identifier for the matchmaking configuration. This name is used to identify the configuration associated
* with a matchmaking request or ticket.
*
*
* @param name
* A unique identifier for the matchmaking configuration. This name is used to identify the configuration
* associated with a matchmaking request or ticket.
*/
public void setName(String name) {
this.name = name;
}
/**
*
* A unique identifier for the matchmaking configuration. This name is used to identify the configuration associated
* with a matchmaking request or ticket.
*
*
* @return A unique identifier for the matchmaking configuration. This name is used to identify the configuration
* associated with a matchmaking request or ticket.
*/
public String getName() {
return this.name;
}
/**
*
* A unique identifier for the matchmaking configuration. This name is used to identify the configuration associated
* with a matchmaking request or ticket.
*
*
* @param name
* A unique identifier for the matchmaking configuration. This name is used to identify the configuration
* associated with a matchmaking request or ticket.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMatchmakingConfigurationRequest withName(String name) {
setName(name);
return this;
}
/**
*
* A human-readable description of the matchmaking configuration.
*
*
* @param description
* A human-readable description of the matchmaking configuration.
*/
public void setDescription(String description) {
this.description = description;
}
/**
*
* A human-readable description of the matchmaking configuration.
*
*
* @return A human-readable description of the matchmaking configuration.
*/
public String getDescription() {
return this.description;
}
/**
*
* A human-readable description of the matchmaking configuration.
*
*
* @param description
* A human-readable description of the matchmaking configuration.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMatchmakingConfigurationRequest withDescription(String description) {
setDescription(description);
return this;
}
/**
*
* The Amazon Resource Name (ARN)
* that is assigned to a 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 GameLift-hosted game sessions for matches that are created
* with this matchmaking configuration. If FlexMatchMode
is set to STANDALONE
, do not set
* this parameter.
*
*
* @return The Amazon Resource Name (ARN) that is assigned to a
* 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 GameLift-hosted game sessions for matches that are
* created with this matchmaking configuration. If FlexMatchMode
is set to
* STANDALONE
, do not set this parameter.
*/
public java.util.List getGameSessionQueueArns() {
return gameSessionQueueArns;
}
/**
*
* The Amazon Resource Name (ARN)
* that is assigned to a 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 GameLift-hosted game sessions for matches that are created
* with this matchmaking configuration. If FlexMatchMode
is set to STANDALONE
, do not set
* this parameter.
*
*
* @param gameSessionQueueArns
* The Amazon Resource Name (ARN) that is assigned to a
* 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 GameLift-hosted game sessions for matches that are
* created with this matchmaking configuration. If FlexMatchMode
is set to
* STANDALONE
, do not set this parameter.
*/
public void setGameSessionQueueArns(java.util.Collection gameSessionQueueArns) {
if (gameSessionQueueArns == null) {
this.gameSessionQueueArns = null;
return;
}
this.gameSessionQueueArns = new java.util.ArrayList(gameSessionQueueArns);
}
/**
*
* The Amazon Resource Name (ARN)
* that is assigned to a 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 GameLift-hosted game sessions for matches that are created
* with this matchmaking configuration. If FlexMatchMode
is set to STANDALONE
, do not set
* this parameter.
*
*
* NOTE: This method appends the values to the existing list (if any). Use
* {@link #setGameSessionQueueArns(java.util.Collection)} or {@link #withGameSessionQueueArns(java.util.Collection)}
* if you want to override the existing values.
*
*
* @param gameSessionQueueArns
* The Amazon Resource Name (ARN) that is assigned to a
* 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 GameLift-hosted game sessions for matches that are
* created with this matchmaking configuration. If FlexMatchMode
is set to
* STANDALONE
, do not set this parameter.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMatchmakingConfigurationRequest withGameSessionQueueArns(String... gameSessionQueueArns) {
if (this.gameSessionQueueArns == null) {
setGameSessionQueueArns(new java.util.ArrayList(gameSessionQueueArns.length));
}
for (String ele : gameSessionQueueArns) {
this.gameSessionQueueArns.add(ele);
}
return this;
}
/**
*
* The Amazon Resource Name (ARN)
* that is assigned to a 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 GameLift-hosted game sessions for matches that are created
* with this matchmaking configuration. If FlexMatchMode
is set to STANDALONE
, do not set
* this parameter.
*
*
* @param gameSessionQueueArns
* The Amazon Resource Name (ARN) that is assigned to a
* 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 GameLift-hosted game sessions for matches that are
* created with this matchmaking configuration. If FlexMatchMode
is set to
* STANDALONE
, do not set this parameter.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMatchmakingConfigurationRequest withGameSessionQueueArns(java.util.Collection gameSessionQueueArns) {
setGameSessionQueueArns(gameSessionQueueArns);
return this;
}
/**
*
* 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.
*
*
* @param 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.
*/
public void setRequestTimeoutSeconds(Integer requestTimeoutSeconds) {
this.requestTimeoutSeconds = 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.
*
*
* @return 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.
*/
public Integer getRequestTimeoutSeconds() {
return this.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.
*
*
* @param 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.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMatchmakingConfigurationRequest withRequestTimeoutSeconds(Integer requestTimeoutSeconds) {
setRequestTimeoutSeconds(requestTimeoutSeconds);
return this;
}
/**
*
* The length of time (in seconds) to wait for players to accept a proposed match, if acceptance is required.
*
*
* @param acceptanceTimeoutSeconds
* The length of time (in seconds) to wait for players to accept a proposed match, if acceptance is required.
*/
public void setAcceptanceTimeoutSeconds(Integer acceptanceTimeoutSeconds) {
this.acceptanceTimeoutSeconds = acceptanceTimeoutSeconds;
}
/**
*
* The length of time (in seconds) to wait for players to accept a proposed match, if acceptance is required.
*
*
* @return The length of time (in seconds) to wait for players to accept a proposed match, if acceptance is
* required.
*/
public Integer getAcceptanceTimeoutSeconds() {
return this.acceptanceTimeoutSeconds;
}
/**
*
* The length of time (in seconds) to wait for players to accept a proposed match, if acceptance is required.
*
*
* @param acceptanceTimeoutSeconds
* The length of time (in seconds) to wait for players to accept a proposed match, if acceptance is required.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMatchmakingConfigurationRequest withAcceptanceTimeoutSeconds(Integer acceptanceTimeoutSeconds) {
setAcceptanceTimeoutSeconds(acceptanceTimeoutSeconds);
return this;
}
/**
*
* A flag that determines whether a match that was created with this configuration must be accepted by the matched
* players. To require acceptance, set to TRUE
. With this option enabled, matchmaking tickets use the
* status REQUIRES_ACCEPTANCE
to indicate when a completed potential match is waiting for player
* acceptance.
*
*
* @param acceptanceRequired
* A flag that determines whether a match that was created with this configuration must be accepted by the
* matched players. To require acceptance, set to TRUE
. With this option enabled, matchmaking
* tickets use the status REQUIRES_ACCEPTANCE
to indicate when a completed potential match is
* waiting for player acceptance.
*/
public void setAcceptanceRequired(Boolean acceptanceRequired) {
this.acceptanceRequired = acceptanceRequired;
}
/**
*
* A flag that determines whether a match that was created with this configuration must be accepted by the matched
* players. To require acceptance, set to TRUE
. With this option enabled, matchmaking tickets use the
* status REQUIRES_ACCEPTANCE
to indicate when a completed potential match is waiting for player
* acceptance.
*
*
* @return A flag that determines whether a match that was created with this configuration must be accepted by the
* matched players. To require acceptance, set to TRUE
. With this option enabled, matchmaking
* tickets use the status REQUIRES_ACCEPTANCE
to indicate when a completed potential match is
* waiting for player acceptance.
*/
public Boolean getAcceptanceRequired() {
return this.acceptanceRequired;
}
/**
*
* A flag that determines whether a match that was created with this configuration must be accepted by the matched
* players. To require acceptance, set to TRUE
. With this option enabled, matchmaking tickets use the
* status REQUIRES_ACCEPTANCE
to indicate when a completed potential match is waiting for player
* acceptance.
*
*
* @param acceptanceRequired
* A flag that determines whether a match that was created with this configuration must be accepted by the
* matched players. To require acceptance, set to TRUE
. With this option enabled, matchmaking
* tickets use the status REQUIRES_ACCEPTANCE
to indicate when a completed potential match is
* waiting for player acceptance.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMatchmakingConfigurationRequest withAcceptanceRequired(Boolean acceptanceRequired) {
setAcceptanceRequired(acceptanceRequired);
return this;
}
/**
*
* A flag that determines whether a match that was created with this configuration must be accepted by the matched
* players. To require acceptance, set to TRUE
. With this option enabled, matchmaking tickets use the
* status REQUIRES_ACCEPTANCE
to indicate when a completed potential match is waiting for player
* acceptance.
*
*
* @return A flag that determines whether a match that was created with this configuration must be accepted by the
* matched players. To require acceptance, set to TRUE
. With this option enabled, matchmaking
* tickets use the status REQUIRES_ACCEPTANCE
to indicate when a completed potential match is
* waiting for player acceptance.
*/
public Boolean isAcceptanceRequired() {
return this.acceptanceRequired;
}
/**
*
* A unique identifier for the matchmaking rule set to use with this configuration. You can use either the rule set
* name or ARN value. A matchmaking configuration can only use rule sets that are defined in the same Region.
*
*
* @param ruleSetName
* A unique identifier for the matchmaking rule set to use with this configuration. You can use either the
* rule set name or ARN value. A matchmaking configuration can only use rule sets that are defined in the
* same Region.
*/
public void setRuleSetName(String ruleSetName) {
this.ruleSetName = ruleSetName;
}
/**
*
* A unique identifier for the matchmaking rule set to use with this configuration. You can use either the rule set
* name or ARN value. A matchmaking configuration can only use rule sets that are defined in the same Region.
*
*
* @return A unique identifier for the matchmaking rule set to use with this configuration. You can use either the
* rule set name or ARN value. A matchmaking configuration can only use rule sets that are defined in the
* same Region.
*/
public String getRuleSetName() {
return this.ruleSetName;
}
/**
*
* A unique identifier for the matchmaking rule set to use with this configuration. You can use either the rule set
* name or ARN value. A matchmaking configuration can only use rule sets that are defined in the same Region.
*
*
* @param ruleSetName
* A unique identifier for the matchmaking rule set to use with this configuration. You can use either the
* rule set name or ARN value. A matchmaking configuration can only use rule sets that are defined in the
* same Region.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMatchmakingConfigurationRequest withRuleSetName(String ruleSetName) {
setRuleSetName(ruleSetName);
return this;
}
/**
*
* An SNS topic ARN that is set up to receive matchmaking notifications. See Setting up
* notifications for matchmaking for more information.
*
*
* @param notificationTarget
* An SNS topic ARN that is set up to receive matchmaking notifications. See Setting up
* notifications for matchmaking for more information.
*/
public void setNotificationTarget(String notificationTarget) {
this.notificationTarget = notificationTarget;
}
/**
*
* An SNS topic ARN that is set up to receive matchmaking notifications. See Setting up
* notifications for matchmaking for more information.
*
*
* @return An SNS topic ARN that is set up to receive matchmaking notifications. See Setting up
* notifications for matchmaking for more information.
*/
public String getNotificationTarget() {
return this.notificationTarget;
}
/**
*
* An SNS topic ARN that is set up to receive matchmaking notifications. See Setting up
* notifications for matchmaking for more information.
*
*
* @param notificationTarget
* An SNS topic ARN that is set up to receive matchmaking notifications. See Setting up
* notifications for matchmaking for more information.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMatchmakingConfigurationRequest withNotificationTarget(String notificationTarget) {
setNotificationTarget(notificationTarget);
return this;
}
/**
*
* 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 12-person team, and the additional player count is set to 2, only 10 players
* are selected for the match. This parameter is not used if FlexMatchMode
is set to
* STANDALONE
.
*
*
* @param 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 12-person team, and the additional player count is set to 2, only
* 10 players are selected for the match. This parameter is not used if FlexMatchMode
is set to
* STANDALONE
.
*/
public void setAdditionalPlayerCount(Integer additionalPlayerCount) {
this.additionalPlayerCount = 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 12-person team, and the additional player count is set to 2, only 10 players
* are selected for the match. This parameter is not used if FlexMatchMode
is set to
* STANDALONE
.
*
*
* @return 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 12-person team, and the additional player count
* is set to 2, only 10 players are selected for the match. This parameter is not used if
* FlexMatchMode
is set to STANDALONE
.
*/
public Integer getAdditionalPlayerCount() {
return this.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 12-person team, and the additional player count is set to 2, only 10 players
* are selected for the match. This parameter is not used if FlexMatchMode
is set to
* STANDALONE
.
*
*
* @param 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 12-person team, and the additional player count is set to 2, only
* 10 players are selected for the match. This parameter is not used if FlexMatchMode
is set to
* STANDALONE
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMatchmakingConfigurationRequest withAdditionalPlayerCount(Integer additionalPlayerCount) {
setAdditionalPlayerCount(additionalPlayerCount);
return this;
}
/**
*
* Information to be added to all events related to this matchmaking configuration.
*
*
* @param customEventData
* Information to be added to all events related to this matchmaking configuration.
*/
public void setCustomEventData(String customEventData) {
this.customEventData = customEventData;
}
/**
*
* Information to be added to all events related to this matchmaking configuration.
*
*
* @return Information to be added to all events related to this matchmaking configuration.
*/
public String getCustomEventData() {
return this.customEventData;
}
/**
*
* Information to be added to all events related to this matchmaking configuration.
*
*
* @param customEventData
* Information to be added to all events related to this matchmaking configuration.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMatchmakingConfigurationRequest withCustomEventData(String customEventData) {
setCustomEventData(customEventData);
return this;
}
/**
*
* A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a
* game server process in the GameSession object 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 if FlexMatchMode
is set to STANDALONE
.
*
*
* @return A set of custom properties for a game session, formatted as key:value pairs. These properties are passed
* to a game server process in the GameSession object 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 if FlexMatchMode
is set to
* STANDALONE
.
*/
public java.util.List getGameProperties() {
return gameProperties;
}
/**
*
* A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a
* game server process in the GameSession object 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 if FlexMatchMode
is set to STANDALONE
.
*
*
* @param gameProperties
* A set of custom properties for a game session, formatted as key:value pairs. These properties are passed
* to a game server process in the GameSession object 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 if FlexMatchMode
is set to
* STANDALONE
.
*/
public void setGameProperties(java.util.Collection gameProperties) {
if (gameProperties == null) {
this.gameProperties = null;
return;
}
this.gameProperties = new java.util.ArrayList(gameProperties);
}
/**
*
* A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a
* game server process in the GameSession object 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 if FlexMatchMode
is set to STANDALONE
.
*
*
* NOTE: This method appends the values to the existing list (if any). Use
* {@link #setGameProperties(java.util.Collection)} or {@link #withGameProperties(java.util.Collection)} if you want
* to override the existing values.
*
*
* @param gameProperties
* A set of custom properties for a game session, formatted as key:value pairs. These properties are passed
* to a game server process in the GameSession object 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 if FlexMatchMode
is set to
* STANDALONE
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMatchmakingConfigurationRequest withGameProperties(GameProperty... gameProperties) {
if (this.gameProperties == null) {
setGameProperties(new java.util.ArrayList(gameProperties.length));
}
for (GameProperty ele : gameProperties) {
this.gameProperties.add(ele);
}
return this;
}
/**
*
* A set of custom properties for a game session, formatted as key:value pairs. These properties are passed to a
* game server process in the GameSession object 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 if FlexMatchMode
is set to STANDALONE
.
*
*
* @param gameProperties
* A set of custom properties for a game session, formatted as key:value pairs. These properties are passed
* to a game server process in the GameSession object 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 if FlexMatchMode
is set to
* STANDALONE
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMatchmakingConfigurationRequest withGameProperties(java.util.Collection gameProperties) {
setGameProperties(gameProperties);
return this;
}
/**
*
* 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). This information is added to the new GameSession object that is created for a
* successful match. This parameter is not used if FlexMatchMode
is set to STANDALONE
.
*
*
* @param 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). This information is added to the new GameSession object that is created
* for a successful match. This parameter is not used if FlexMatchMode
is set to
* STANDALONE
.
*/
public void setGameSessionData(String gameSessionData) {
this.gameSessionData = 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). This information is added to the new GameSession object that is created for a
* successful match. This parameter is not used if FlexMatchMode
is set to STANDALONE
.
*
*
* @return 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). This information is added to the new GameSession object that is
* created for a successful match. This parameter is not used if FlexMatchMode
is set to
* STANDALONE
.
*/
public String getGameSessionData() {
return this.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). This information is added to the new GameSession object that is created for a
* successful match. This parameter is not used if FlexMatchMode
is set to STANDALONE
.
*
*
* @param 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). This information is added to the new GameSession object that is created
* for a successful match. This parameter is not used if FlexMatchMode
is set to
* STANDALONE
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMatchmakingConfigurationRequest withGameSessionData(String gameSessionData) {
setGameSessionData(gameSessionData);
return this;
}
/**
*
* The method used to backfill game sessions that are created with this matchmaking configuration. Specify
* MANUAL
when your game manages backfill requests manually or does not use the match backfill feature.
* Specify AUTOMATIC
to have GameLift create a StartMatchBackfill request 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
.
*
*
* @param backfillMode
* The method used to backfill game sessions that are created with this matchmaking configuration. Specify
* MANUAL
when your game manages backfill requests manually or does not use the match backfill
* feature. Specify AUTOMATIC
to have GameLift create a StartMatchBackfill request
* 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
.
* @see BackfillMode
*/
public void setBackfillMode(String backfillMode) {
this.backfillMode = backfillMode;
}
/**
*
* The method used to backfill game sessions that are created with this matchmaking configuration. Specify
* MANUAL
when your game manages backfill requests manually or does not use the match backfill feature.
* Specify AUTOMATIC
to have GameLift create a StartMatchBackfill request 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
.
*
*
* @return The method used to backfill game sessions that are created with this matchmaking configuration. Specify
* MANUAL
when your game manages backfill requests manually or does not use the match backfill
* feature. Specify AUTOMATIC
to have GameLift create a StartMatchBackfill request
* 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
.
* @see BackfillMode
*/
public String getBackfillMode() {
return this.backfillMode;
}
/**
*
* The method used to backfill game sessions that are created with this matchmaking configuration. Specify
* MANUAL
when your game manages backfill requests manually or does not use the match backfill feature.
* Specify AUTOMATIC
to have GameLift create a StartMatchBackfill request 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
.
*
*
* @param backfillMode
* The method used to backfill game sessions that are created with this matchmaking configuration. Specify
* MANUAL
when your game manages backfill requests manually or does not use the match backfill
* feature. Specify AUTOMATIC
to have GameLift create a StartMatchBackfill request
* 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
.
* @return Returns a reference to this object so that method calls can be chained together.
* @see BackfillMode
*/
public CreateMatchmakingConfigurationRequest withBackfillMode(String backfillMode) {
setBackfillMode(backfillMode);
return this;
}
/**
*
* The method used to backfill game sessions that are created with this matchmaking configuration. Specify
* MANUAL
when your game manages backfill requests manually or does not use the match backfill feature.
* Specify AUTOMATIC
to have GameLift create a StartMatchBackfill request 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
.
*
*
* @param backfillMode
* The method used to backfill game sessions that are created with this matchmaking configuration. Specify
* MANUAL
when your game manages backfill requests manually or does not use the match backfill
* feature. Specify AUTOMATIC
to have GameLift create a StartMatchBackfill request
* 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
.
* @return Returns a reference to this object so that method calls can be chained together.
* @see BackfillMode
*/
public CreateMatchmakingConfigurationRequest withBackfillMode(BackfillMode backfillMode) {
this.backfillMode = backfillMode.toString();
return this;
}
/**
*
* Indicates whether this matchmaking configuration is being used with 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 GameLift queue to start a game session for the
* match.
*
*
*
*
* @param flexMatchMode
* Indicates whether this matchmaking configuration is being used with 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 GameLift queue to start a game session
* for the match.
*
*
* @see FlexMatchMode
*/
public void setFlexMatchMode(String flexMatchMode) {
this.flexMatchMode = flexMatchMode;
}
/**
*
* Indicates whether this matchmaking configuration is being used with 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 GameLift queue to start a game session for the
* match.
*
*
*
*
* @return Indicates whether this matchmaking configuration is being used with 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 GameLift queue to start a game session
* for the match.
*
*
* @see FlexMatchMode
*/
public String getFlexMatchMode() {
return this.flexMatchMode;
}
/**
*
* Indicates whether this matchmaking configuration is being used with 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 GameLift queue to start a game session for the
* match.
*
*
*
*
* @param flexMatchMode
* Indicates whether this matchmaking configuration is being used with 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 GameLift queue to start a game session
* for the match.
*
*
* @return Returns a reference to this object so that method calls can be chained together.
* @see FlexMatchMode
*/
public CreateMatchmakingConfigurationRequest withFlexMatchMode(String flexMatchMode) {
setFlexMatchMode(flexMatchMode);
return this;
}
/**
*
* Indicates whether this matchmaking configuration is being used with 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 GameLift queue to start a game session for the
* match.
*
*
*
*
* @param flexMatchMode
* Indicates whether this matchmaking configuration is being used with 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 GameLift queue to start a game session
* for the match.
*
*
* @return Returns a reference to this object so that method calls can be chained together.
* @see FlexMatchMode
*/
public CreateMatchmakingConfigurationRequest withFlexMatchMode(FlexMatchMode flexMatchMode) {
this.flexMatchMode = flexMatchMode.toString();
return this;
}
/**
*
* A list of labels to assign to the new matchmaking configuration 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. Once the resource
* is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove,
* and view tags. The maximum tag limit may be lower than stated. See the Amazon Web Services General Reference for
* actual tagging limits.
*
*
* @return A list of labels to assign to the new matchmaking configuration 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. Once the resource is created, you can
* use TagResource, UntagResource, and ListTagsForResource to add, remove, and view
* tags. The maximum tag limit may be lower than stated. See the Amazon Web Services General Reference for
* actual tagging limits.
*/
public java.util.List getTags() {
return tags;
}
/**
*
* A list of labels to assign to the new matchmaking configuration 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. Once the resource
* is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove,
* and view tags. The maximum tag limit may be lower than stated. See the Amazon Web Services General Reference for
* actual tagging limits.
*
*
* @param tags
* A list of labels to assign to the new matchmaking configuration 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. Once the resource is created, you can
* use TagResource, UntagResource, and ListTagsForResource to add, remove, and view
* tags. The maximum tag limit may be lower than stated. See the Amazon Web Services General Reference for
* actual tagging limits.
*/
public void setTags(java.util.Collection tags) {
if (tags == null) {
this.tags = null;
return;
}
this.tags = new java.util.ArrayList(tags);
}
/**
*
* A list of labels to assign to the new matchmaking configuration 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. Once the resource
* is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove,
* and view tags. The maximum tag limit may be lower than stated. See the Amazon Web Services General Reference for
* actual tagging limits.
*
*
* NOTE: This method appends the values to the existing list (if any). Use
* {@link #setTags(java.util.Collection)} or {@link #withTags(java.util.Collection)} if you want to override the
* existing values.
*
*
* @param tags
* A list of labels to assign to the new matchmaking configuration 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. Once the resource is created, you can
* use TagResource, UntagResource, and ListTagsForResource to add, remove, and view
* tags. The maximum tag limit may be lower than stated. See the Amazon Web Services General Reference for
* actual tagging limits.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMatchmakingConfigurationRequest withTags(Tag... tags) {
if (this.tags == null) {
setTags(new java.util.ArrayList(tags.length));
}
for (Tag ele : tags) {
this.tags.add(ele);
}
return this;
}
/**
*
* A list of labels to assign to the new matchmaking configuration 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. Once the resource
* is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove,
* and view tags. The maximum tag limit may be lower than stated. See the Amazon Web Services General Reference for
* actual tagging limits.
*
*
* @param tags
* A list of labels to assign to the new matchmaking configuration 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. Once the resource is created, you can
* use TagResource, UntagResource, and ListTagsForResource to add, remove, and view
* tags. The maximum tag limit may be lower than stated. See the Amazon Web Services General Reference for
* actual tagging limits.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateMatchmakingConfigurationRequest withTags(java.util.Collection tags) {
setTags(tags);
return this;
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*
* @return A string representation of this object.
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getName() != null)
sb.append("Name: ").append(getName()).append(",");
if (getDescription() != null)
sb.append("Description: ").append(getDescription()).append(",");
if (getGameSessionQueueArns() != null)
sb.append("GameSessionQueueArns: ").append(getGameSessionQueueArns()).append(",");
if (getRequestTimeoutSeconds() != null)
sb.append("RequestTimeoutSeconds: ").append(getRequestTimeoutSeconds()).append(",");
if (getAcceptanceTimeoutSeconds() != null)
sb.append("AcceptanceTimeoutSeconds: ").append(getAcceptanceTimeoutSeconds()).append(",");
if (getAcceptanceRequired() != null)
sb.append("AcceptanceRequired: ").append(getAcceptanceRequired()).append(",");
if (getRuleSetName() != null)
sb.append("RuleSetName: ").append(getRuleSetName()).append(",");
if (getNotificationTarget() != null)
sb.append("NotificationTarget: ").append(getNotificationTarget()).append(",");
if (getAdditionalPlayerCount() != null)
sb.append("AdditionalPlayerCount: ").append(getAdditionalPlayerCount()).append(",");
if (getCustomEventData() != null)
sb.append("CustomEventData: ").append(getCustomEventData()).append(",");
if (getGameProperties() != null)
sb.append("GameProperties: ").append(getGameProperties()).append(",");
if (getGameSessionData() != null)
sb.append("GameSessionData: ").append(getGameSessionData()).append(",");
if (getBackfillMode() != null)
sb.append("BackfillMode: ").append(getBackfillMode()).append(",");
if (getFlexMatchMode() != null)
sb.append("FlexMatchMode: ").append(getFlexMatchMode()).append(",");
if (getTags() != null)
sb.append("Tags: ").append(getTags());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof CreateMatchmakingConfigurationRequest == false)
return false;
CreateMatchmakingConfigurationRequest other = (CreateMatchmakingConfigurationRequest) obj;
if (other.getName() == null ^ this.getName() == null)
return false;
if (other.getName() != null && other.getName().equals(this.getName()) == false)
return false;
if (other.getDescription() == null ^ this.getDescription() == null)
return false;
if (other.getDescription() != null && other.getDescription().equals(this.getDescription()) == false)
return false;
if (other.getGameSessionQueueArns() == null ^ this.getGameSessionQueueArns() == null)
return false;
if (other.getGameSessionQueueArns() != null && other.getGameSessionQueueArns().equals(this.getGameSessionQueueArns()) == false)
return false;
if (other.getRequestTimeoutSeconds() == null ^ this.getRequestTimeoutSeconds() == null)
return false;
if (other.getRequestTimeoutSeconds() != null && other.getRequestTimeoutSeconds().equals(this.getRequestTimeoutSeconds()) == false)
return false;
if (other.getAcceptanceTimeoutSeconds() == null ^ this.getAcceptanceTimeoutSeconds() == null)
return false;
if (other.getAcceptanceTimeoutSeconds() != null && other.getAcceptanceTimeoutSeconds().equals(this.getAcceptanceTimeoutSeconds()) == false)
return false;
if (other.getAcceptanceRequired() == null ^ this.getAcceptanceRequired() == null)
return false;
if (other.getAcceptanceRequired() != null && other.getAcceptanceRequired().equals(this.getAcceptanceRequired()) == false)
return false;
if (other.getRuleSetName() == null ^ this.getRuleSetName() == null)
return false;
if (other.getRuleSetName() != null && other.getRuleSetName().equals(this.getRuleSetName()) == false)
return false;
if (other.getNotificationTarget() == null ^ this.getNotificationTarget() == null)
return false;
if (other.getNotificationTarget() != null && other.getNotificationTarget().equals(this.getNotificationTarget()) == false)
return false;
if (other.getAdditionalPlayerCount() == null ^ this.getAdditionalPlayerCount() == null)
return false;
if (other.getAdditionalPlayerCount() != null && other.getAdditionalPlayerCount().equals(this.getAdditionalPlayerCount()) == false)
return false;
if (other.getCustomEventData() == null ^ this.getCustomEventData() == null)
return false;
if (other.getCustomEventData() != null && other.getCustomEventData().equals(this.getCustomEventData()) == false)
return false;
if (other.getGameProperties() == null ^ this.getGameProperties() == null)
return false;
if (other.getGameProperties() != null && other.getGameProperties().equals(this.getGameProperties()) == false)
return false;
if (other.getGameSessionData() == null ^ this.getGameSessionData() == null)
return false;
if (other.getGameSessionData() != null && other.getGameSessionData().equals(this.getGameSessionData()) == false)
return false;
if (other.getBackfillMode() == null ^ this.getBackfillMode() == null)
return false;
if (other.getBackfillMode() != null && other.getBackfillMode().equals(this.getBackfillMode()) == false)
return false;
if (other.getFlexMatchMode() == null ^ this.getFlexMatchMode() == null)
return false;
if (other.getFlexMatchMode() != null && other.getFlexMatchMode().equals(this.getFlexMatchMode()) == false)
return false;
if (other.getTags() == null ^ this.getTags() == null)
return false;
if (other.getTags() != null && other.getTags().equals(this.getTags()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getName() == null) ? 0 : getName().hashCode());
hashCode = prime * hashCode + ((getDescription() == null) ? 0 : getDescription().hashCode());
hashCode = prime * hashCode + ((getGameSessionQueueArns() == null) ? 0 : getGameSessionQueueArns().hashCode());
hashCode = prime * hashCode + ((getRequestTimeoutSeconds() == null) ? 0 : getRequestTimeoutSeconds().hashCode());
hashCode = prime * hashCode + ((getAcceptanceTimeoutSeconds() == null) ? 0 : getAcceptanceTimeoutSeconds().hashCode());
hashCode = prime * hashCode + ((getAcceptanceRequired() == null) ? 0 : getAcceptanceRequired().hashCode());
hashCode = prime * hashCode + ((getRuleSetName() == null) ? 0 : getRuleSetName().hashCode());
hashCode = prime * hashCode + ((getNotificationTarget() == null) ? 0 : getNotificationTarget().hashCode());
hashCode = prime * hashCode + ((getAdditionalPlayerCount() == null) ? 0 : getAdditionalPlayerCount().hashCode());
hashCode = prime * hashCode + ((getCustomEventData() == null) ? 0 : getCustomEventData().hashCode());
hashCode = prime * hashCode + ((getGameProperties() == null) ? 0 : getGameProperties().hashCode());
hashCode = prime * hashCode + ((getGameSessionData() == null) ? 0 : getGameSessionData().hashCode());
hashCode = prime * hashCode + ((getBackfillMode() == null) ? 0 : getBackfillMode().hashCode());
hashCode = prime * hashCode + ((getFlexMatchMode() == null) ? 0 : getFlexMatchMode().hashCode());
hashCode = prime * hashCode + ((getTags() == null) ? 0 : getTags().hashCode());
return hashCode;
}
@Override
public CreateMatchmakingConfigurationRequest clone() {
return (CreateMatchmakingConfigurationRequest) super.clone();
}
}