/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace GameLift { namespace Model { /** *

Guidelines for use with FlexMatch to match players into games. All * matchmaking requests must specify a matchmaking configuration.

See * Also:

AWS * API Reference

*/ class MatchmakingConfiguration { public: AWS_GAMELIFT_API MatchmakingConfiguration(); AWS_GAMELIFT_API MatchmakingConfiguration(Aws::Utils::Json::JsonView jsonValue); AWS_GAMELIFT_API MatchmakingConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_GAMELIFT_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

A unique identifier for the matchmaking configuration. This name is used to * identify the configuration associated with a matchmaking request or ticket.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

A unique identifier for the matchmaking configuration. This name is used to * identify the configuration associated with a matchmaking request or ticket.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

A unique identifier for the matchmaking configuration. This name is used to * identify the configuration associated with a matchmaking request or ticket.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

A unique identifier for the matchmaking configuration. This name is used to * identify the configuration associated with a matchmaking request or ticket.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

A unique identifier for the matchmaking configuration. This name is used to * identify the configuration associated with a matchmaking request or ticket.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

A unique identifier for the matchmaking configuration. This name is used to * identify the configuration associated with a matchmaking request or ticket.

*/ inline MatchmakingConfiguration& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

A unique identifier for the matchmaking configuration. This name is used to * identify the configuration associated with a matchmaking request or ticket.

*/ inline MatchmakingConfiguration& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

A unique identifier for the matchmaking configuration. This name is used to * identify the configuration associated with a matchmaking request or ticket.

*/ inline MatchmakingConfiguration& WithName(const char* value) { SetName(value); return *this;} /** *

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.

*/ inline const Aws::String& GetConfigurationArn() const{ return m_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.

*/ inline bool ConfigurationArnHasBeenSet() const { return m_configurationArnHasBeenSet; } /** *

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.

*/ inline void SetConfigurationArn(const Aws::String& value) { m_configurationArnHasBeenSet = true; m_configurationArn = value; } /** *

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.

*/ inline void SetConfigurationArn(Aws::String&& value) { m_configurationArnHasBeenSet = true; m_configurationArn = std::move(value); } /** *

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.

*/ inline void SetConfigurationArn(const char* value) { m_configurationArnHasBeenSet = true; m_configurationArn.assign(value); } /** *

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.

*/ inline MatchmakingConfiguration& WithConfigurationArn(const Aws::String& value) { SetConfigurationArn(value); return *this;} /** *

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.

*/ inline MatchmakingConfiguration& WithConfigurationArn(Aws::String&& value) { SetConfigurationArn(std::move(value)); return *this;} /** *

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.

*/ inline MatchmakingConfiguration& WithConfigurationArn(const char* value) { SetConfigurationArn(value); return *this;} /** *

A descriptive label that is associated with matchmaking configuration.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A descriptive label that is associated with matchmaking configuration.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A descriptive label that is associated with matchmaking configuration.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A descriptive label that is associated with matchmaking configuration.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A descriptive label that is associated with matchmaking configuration.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A descriptive label that is associated with matchmaking configuration.

*/ inline MatchmakingConfiguration& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A descriptive label that is associated with matchmaking configuration.

*/ inline MatchmakingConfiguration& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A descriptive label that is associated with matchmaking configuration.

*/ inline MatchmakingConfiguration& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

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.

*/ inline const Aws::Vector& GetGameSessionQueueArns() const{ return m_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.

*/ inline bool GameSessionQueueArnsHasBeenSet() const { return m_gameSessionQueueArnsHasBeenSet; } /** *

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.

*/ inline void SetGameSessionQueueArns(const Aws::Vector& value) { m_gameSessionQueueArnsHasBeenSet = true; m_gameSessionQueueArns = value; } /** *

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.

*/ inline void SetGameSessionQueueArns(Aws::Vector&& value) { m_gameSessionQueueArnsHasBeenSet = true; m_gameSessionQueueArns = std::move(value); } /** *

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.

*/ inline MatchmakingConfiguration& WithGameSessionQueueArns(const Aws::Vector& value) { SetGameSessionQueueArns(value); return *this;} /** *

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.

*/ inline MatchmakingConfiguration& WithGameSessionQueueArns(Aws::Vector&& value) { SetGameSessionQueueArns(std::move(value)); return *this;} /** *

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.

*/ inline MatchmakingConfiguration& AddGameSessionQueueArns(const Aws::String& value) { m_gameSessionQueueArnsHasBeenSet = true; m_gameSessionQueueArns.push_back(value); return *this; } /** *

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.

*/ inline MatchmakingConfiguration& AddGameSessionQueueArns(Aws::String&& value) { m_gameSessionQueueArnsHasBeenSet = true; m_gameSessionQueueArns.push_back(std::move(value)); return *this; } /** *

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.

*/ inline MatchmakingConfiguration& AddGameSessionQueueArns(const char* value) { m_gameSessionQueueArnsHasBeenSet = true; m_gameSessionQueueArns.push_back(value); 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.

*/ inline int GetRequestTimeoutSeconds() const{ return m_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.

*/ inline bool RequestTimeoutSecondsHasBeenSet() const { return m_requestTimeoutSecondsHasBeenSet; } /** *

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.

*/ inline void SetRequestTimeoutSeconds(int value) { m_requestTimeoutSecondsHasBeenSet = true; m_requestTimeoutSeconds = value; } /** *

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.

*/ inline MatchmakingConfiguration& WithRequestTimeoutSeconds(int value) { SetRequestTimeoutSeconds(value); return *this;} /** *

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.

*/ inline int GetAcceptanceTimeoutSeconds() const{ return m_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.

*/ inline bool AcceptanceTimeoutSecondsHasBeenSet() const { return m_acceptanceTimeoutSecondsHasBeenSet; } /** *

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.

*/ inline void SetAcceptanceTimeoutSeconds(int value) { m_acceptanceTimeoutSecondsHasBeenSet = true; m_acceptanceTimeoutSeconds = value; } /** *

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.

*/ inline MatchmakingConfiguration& WithAcceptanceTimeoutSeconds(int value) { SetAcceptanceTimeoutSeconds(value); return *this;} /** *

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.

*/ inline bool GetAcceptanceRequired() const{ return m_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.

*/ inline bool AcceptanceRequiredHasBeenSet() const { return m_acceptanceRequiredHasBeenSet; } /** *

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.

*/ inline void SetAcceptanceRequired(bool value) { m_acceptanceRequiredHasBeenSet = true; m_acceptanceRequired = value; } /** *

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.

*/ inline MatchmakingConfiguration& WithAcceptanceRequired(bool value) { SetAcceptanceRequired(value); return *this;} /** *

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.

*/ inline const Aws::String& GetRuleSetName() const{ return m_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.

*/ inline bool RuleSetNameHasBeenSet() const { return m_ruleSetNameHasBeenSet; } /** *

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.

*/ inline void SetRuleSetName(const Aws::String& value) { m_ruleSetNameHasBeenSet = true; m_ruleSetName = value; } /** *

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.

*/ inline void SetRuleSetName(Aws::String&& value) { m_ruleSetNameHasBeenSet = true; m_ruleSetName = std::move(value); } /** *

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.

*/ inline void SetRuleSetName(const char* value) { m_ruleSetNameHasBeenSet = true; m_ruleSetName.assign(value); } /** *

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.

*/ inline MatchmakingConfiguration& WithRuleSetName(const Aws::String& value) { SetRuleSetName(value); return *this;} /** *

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.

*/ inline MatchmakingConfiguration& WithRuleSetName(Aws::String&& value) { SetRuleSetName(std::move(value)); return *this;} /** *

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.

*/ inline MatchmakingConfiguration& WithRuleSetName(const char* value) { SetRuleSetName(value); return *this;} /** *

The Amazon Resource Name (ARN) * associated with the GameLift matchmaking rule set resource that this * configuration uses.

*/ inline const Aws::String& GetRuleSetArn() const{ return m_ruleSetArn; } /** *

The Amazon Resource Name (ARN) * associated with the GameLift matchmaking rule set resource that this * configuration uses.

*/ inline bool RuleSetArnHasBeenSet() const { return m_ruleSetArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) * associated with the GameLift matchmaking rule set resource that this * configuration uses.

*/ inline void SetRuleSetArn(const Aws::String& value) { m_ruleSetArnHasBeenSet = true; m_ruleSetArn = value; } /** *

The Amazon Resource Name (ARN) * associated with the GameLift matchmaking rule set resource that this * configuration uses.

*/ inline void SetRuleSetArn(Aws::String&& value) { m_ruleSetArnHasBeenSet = true; m_ruleSetArn = std::move(value); } /** *

The Amazon Resource Name (ARN) * associated with the GameLift matchmaking rule set resource that this * configuration uses.

*/ inline void SetRuleSetArn(const char* value) { m_ruleSetArnHasBeenSet = true; m_ruleSetArn.assign(value); } /** *

The Amazon Resource Name (ARN) * associated with the GameLift matchmaking rule set resource that this * configuration uses.

*/ inline MatchmakingConfiguration& WithRuleSetArn(const Aws::String& value) { SetRuleSetArn(value); return *this;} /** *

The Amazon Resource Name (ARN) * associated with the GameLift matchmaking rule set resource that this * configuration uses.

*/ inline MatchmakingConfiguration& WithRuleSetArn(Aws::String&& value) { SetRuleSetArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) * associated with the GameLift matchmaking rule set resource that this * configuration uses.

*/ inline MatchmakingConfiguration& WithRuleSetArn(const char* value) { SetRuleSetArn(value); return *this;} /** *

An SNS topic ARN that is set up to receive matchmaking notifications.

*/ inline const Aws::String& GetNotificationTarget() const{ return m_notificationTarget; } /** *

An SNS topic ARN that is set up to receive matchmaking notifications.

*/ inline bool NotificationTargetHasBeenSet() const { return m_notificationTargetHasBeenSet; } /** *

An SNS topic ARN that is set up to receive matchmaking notifications.

*/ inline void SetNotificationTarget(const Aws::String& value) { m_notificationTargetHasBeenSet = true; m_notificationTarget = value; } /** *

An SNS topic ARN that is set up to receive matchmaking notifications.

*/ inline void SetNotificationTarget(Aws::String&& value) { m_notificationTargetHasBeenSet = true; m_notificationTarget = std::move(value); } /** *

An SNS topic ARN that is set up to receive matchmaking notifications.

*/ inline void SetNotificationTarget(const char* value) { m_notificationTargetHasBeenSet = true; m_notificationTarget.assign(value); } /** *

An SNS topic ARN that is set up to receive matchmaking notifications.

*/ inline MatchmakingConfiguration& WithNotificationTarget(const Aws::String& value) { SetNotificationTarget(value); return *this;} /** *

An SNS topic ARN that is set up to receive matchmaking notifications.

*/ inline MatchmakingConfiguration& WithNotificationTarget(Aws::String&& value) { SetNotificationTarget(std::move(value)); return *this;} /** *

An SNS topic ARN that is set up to receive matchmaking notifications.

*/ inline MatchmakingConfiguration& WithNotificationTarget(const char* value) { SetNotificationTarget(value); 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 * 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.

*/ inline int GetAdditionalPlayerCount() const{ return m_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.

*/ inline bool AdditionalPlayerCountHasBeenSet() const { return m_additionalPlayerCountHasBeenSet; } /** *

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.

*/ inline void SetAdditionalPlayerCount(int value) { m_additionalPlayerCountHasBeenSet = true; m_additionalPlayerCount = value; } /** *

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.

*/ inline MatchmakingConfiguration& WithAdditionalPlayerCount(int value) { SetAdditionalPlayerCount(value); return *this;} /** *

Information to attach to all events related to the matchmaking configuration. *

*/ inline const Aws::String& GetCustomEventData() const{ return m_customEventData; } /** *

Information to attach to all events related to the matchmaking configuration. *

*/ inline bool CustomEventDataHasBeenSet() const { return m_customEventDataHasBeenSet; } /** *

Information to attach to all events related to the matchmaking configuration. *

*/ inline void SetCustomEventData(const Aws::String& value) { m_customEventDataHasBeenSet = true; m_customEventData = value; } /** *

Information to attach to all events related to the matchmaking configuration. *

*/ inline void SetCustomEventData(Aws::String&& value) { m_customEventDataHasBeenSet = true; m_customEventData = std::move(value); } /** *

Information to attach to all events related to the matchmaking configuration. *

*/ inline void SetCustomEventData(const char* value) { m_customEventDataHasBeenSet = true; m_customEventData.assign(value); } /** *

Information to attach to all events related to the matchmaking configuration. *

*/ inline MatchmakingConfiguration& WithCustomEventData(const Aws::String& value) { SetCustomEventData(value); return *this;} /** *

Information to attach to all events related to the matchmaking configuration. *

*/ inline MatchmakingConfiguration& WithCustomEventData(Aws::String&& value) { SetCustomEventData(std::move(value)); return *this;} /** *

Information to attach to all events related to the matchmaking configuration. *

*/ inline MatchmakingConfiguration& WithCustomEventData(const char* value) { SetCustomEventData(value); return *this;} /** *

A time stamp indicating when this data object was created. Format is a number * expressed in Unix time as milliseconds (for example * "1469498468.057").

*/ inline const Aws::Utils::DateTime& GetCreationTime() const{ return m_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").

*/ inline bool CreationTimeHasBeenSet() const { return m_creationTimeHasBeenSet; } /** *

A time stamp indicating when this data object was created. Format is a number * expressed in Unix time as milliseconds (for example * "1469498468.057").

*/ inline void SetCreationTime(const Aws::Utils::DateTime& value) { m_creationTimeHasBeenSet = true; m_creationTime = value; } /** *

A time stamp indicating when this data object was created. Format is a number * expressed in Unix time as milliseconds (for example * "1469498468.057").

*/ inline void SetCreationTime(Aws::Utils::DateTime&& value) { m_creationTimeHasBeenSet = true; m_creationTime = std::move(value); } /** *

A time stamp indicating when this data object was created. Format is a number * expressed in Unix time as milliseconds (for example * "1469498468.057").

*/ inline MatchmakingConfiguration& WithCreationTime(const Aws::Utils::DateTime& value) { SetCreationTime(value); return *this;} /** *

A time stamp indicating when this data object was created. Format is a number * expressed in Unix time as milliseconds (for example * "1469498468.057").

*/ inline MatchmakingConfiguration& WithCreationTime(Aws::Utils::DateTime&& value) { SetCreationTime(std::move(value)); 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 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.

*/ inline const Aws::Vector& GetGameProperties() const{ return m_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.

*/ inline bool GamePropertiesHasBeenSet() const { return m_gamePropertiesHasBeenSet; } /** *

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.

*/ inline void SetGameProperties(const Aws::Vector& value) { m_gamePropertiesHasBeenSet = true; m_gameProperties = value; } /** *

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.

*/ inline void SetGameProperties(Aws::Vector&& value) { m_gamePropertiesHasBeenSet = true; m_gameProperties = std::move(value); } /** *

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.

*/ inline MatchmakingConfiguration& WithGameProperties(const Aws::Vector& value) { SetGameProperties(value); 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 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.

*/ inline MatchmakingConfiguration& WithGameProperties(Aws::Vector&& value) { SetGameProperties(std::move(value)); 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 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.

*/ inline MatchmakingConfiguration& AddGameProperties(const GameProperty& value) { m_gamePropertiesHasBeenSet = true; m_gameProperties.push_back(value); 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 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.

*/ inline MatchmakingConfiguration& AddGameProperties(GameProperty&& value) { m_gamePropertiesHasBeenSet = true; m_gameProperties.push_back(std::move(value)); return *this; } /** *

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.

*/ inline const Aws::String& GetGameSessionData() const{ return m_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.

*/ inline bool GameSessionDataHasBeenSet() const { return m_gameSessionDataHasBeenSet; } /** *

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.

*/ inline void SetGameSessionData(const Aws::String& value) { m_gameSessionDataHasBeenSet = true; m_gameSessionData = value; } /** *

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.

*/ inline void SetGameSessionData(Aws::String&& value) { m_gameSessionDataHasBeenSet = true; m_gameSessionData = std::move(value); } /** *

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.

*/ inline void SetGameSessionData(const char* value) { m_gameSessionDataHasBeenSet = true; m_gameSessionData.assign(value); } /** *

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.

*/ inline MatchmakingConfiguration& WithGameSessionData(const Aws::String& value) { SetGameSessionData(value); return *this;} /** *

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.

*/ inline MatchmakingConfiguration& WithGameSessionData(Aws::String&& value) { SetGameSessionData(std::move(value)); return *this;} /** *

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.

*/ inline MatchmakingConfiguration& WithGameSessionData(const char* value) { SetGameSessionData(value); return *this;} /** *

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.

*/ inline const BackfillMode& GetBackfillMode() const{ return m_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.

*/ inline bool BackfillModeHasBeenSet() const { return m_backfillModeHasBeenSet; } /** *

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.

*/ inline void SetBackfillMode(const BackfillMode& value) { m_backfillModeHasBeenSet = true; m_backfillMode = value; } /** *

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.

*/ inline void SetBackfillMode(BackfillMode&& value) { m_backfillModeHasBeenSet = true; m_backfillMode = std::move(value); } /** *

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.

*/ inline MatchmakingConfiguration& WithBackfillMode(const BackfillMode& value) { SetBackfillMode(value); return *this;} /** *

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.

*/ inline MatchmakingConfiguration& WithBackfillMode(BackfillMode&& value) { SetBackfillMode(std::move(value)); return *this;} /** *

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.

*/ inline const FlexMatchMode& GetFlexMatchMode() const{ return m_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.

*/ inline bool FlexMatchModeHasBeenSet() const { return m_flexMatchModeHasBeenSet; } /** *

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.

*/ inline void SetFlexMatchMode(const FlexMatchMode& value) { m_flexMatchModeHasBeenSet = true; m_flexMatchMode = value; } /** *

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.

*/ inline void SetFlexMatchMode(FlexMatchMode&& value) { m_flexMatchModeHasBeenSet = true; m_flexMatchMode = std::move(value); } /** *

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.

*/ inline MatchmakingConfiguration& WithFlexMatchMode(const FlexMatchMode& value) { SetFlexMatchMode(value); return *this;} /** *

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.

*/ inline MatchmakingConfiguration& WithFlexMatchMode(FlexMatchMode&& value) { SetFlexMatchMode(std::move(value)); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_configurationArn; bool m_configurationArnHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::Vector m_gameSessionQueueArns; bool m_gameSessionQueueArnsHasBeenSet = false; int m_requestTimeoutSeconds; bool m_requestTimeoutSecondsHasBeenSet = false; int m_acceptanceTimeoutSeconds; bool m_acceptanceTimeoutSecondsHasBeenSet = false; bool m_acceptanceRequired; bool m_acceptanceRequiredHasBeenSet = false; Aws::String m_ruleSetName; bool m_ruleSetNameHasBeenSet = false; Aws::String m_ruleSetArn; bool m_ruleSetArnHasBeenSet = false; Aws::String m_notificationTarget; bool m_notificationTargetHasBeenSet = false; int m_additionalPlayerCount; bool m_additionalPlayerCountHasBeenSet = false; Aws::String m_customEventData; bool m_customEventDataHasBeenSet = false; Aws::Utils::DateTime m_creationTime; bool m_creationTimeHasBeenSet = false; Aws::Vector m_gameProperties; bool m_gamePropertiesHasBeenSet = false; Aws::String m_gameSessionData; bool m_gameSessionDataHasBeenSet = false; BackfillMode m_backfillMode; bool m_backfillModeHasBeenSet = false; FlexMatchMode m_flexMatchMode; bool m_flexMatchModeHasBeenSet = false; }; } // namespace Model } // namespace GameLift } // namespace Aws