/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Set of rule statements, used with FlexMatch, that determine how to build your
* player matches. Each rule set describes a type of group to be created and
* defines the parameters for acceptable player matches. Rule sets are used in
* MatchmakingConfiguration objects. A rule set may define the
* following elements for a match. For detailed information and examples showing
* how to construct a rule set, see Build
* a FlexMatch Rule Set. Teams -- Required. A rule set must
* define one or multiple teams for the match and set minimum and maximum team
* sizes. For example, a rule set might describe a 4x4 match that requires all
* eight slots to be filled. Player attributes -- Optional.
* These attributes specify a set of player characteristics to evaluate when
* looking for a match. Matchmaking requests that use a rule set with player
* attributes must provide the corresponding attribute values. For example, an
* attribute might specify a player's skill or level. Rules --
* Optional. Rules define how to evaluate potential players for a match based on
* player attributes. A rule might specify minimum requirements for individual
* players, teams, or entire matches. For example, a rule might require each player
* to meet a certain skill level, each team to have at least one player in a
* certain role, or the match to have a minimum average skill level. or may
* describe an entire group--such as all teams must be evenly matched or have at
* least one player in a certain role. Expansions -- Optional.
* Expansions allow you to relax the rules after a period of time when no
* acceptable matches are found. This feature lets you balance getting players into
* games in a reasonable amount of time instead of making them wait indefinitely
* for the best possible match. For example, you might use an expansion to increase
* the maximum skill variance between players after 30 seconds.
See Also:
AWS
* API Reference
A unique identifier for a matchmaking rule set
*/ inline const Aws::String& GetRuleSetName() const{ return m_ruleSetName; } /** *A unique identifier for a matchmaking rule set
*/ inline bool RuleSetNameHasBeenSet() const { return m_ruleSetNameHasBeenSet; } /** *A unique identifier for a matchmaking rule set
*/ inline void SetRuleSetName(const Aws::String& value) { m_ruleSetNameHasBeenSet = true; m_ruleSetName = value; } /** *A unique identifier for a matchmaking rule set
*/ inline void SetRuleSetName(Aws::String&& value) { m_ruleSetNameHasBeenSet = true; m_ruleSetName = std::move(value); } /** *A unique identifier for a matchmaking rule set
*/ inline void SetRuleSetName(const char* value) { m_ruleSetNameHasBeenSet = true; m_ruleSetName.assign(value); } /** *A unique identifier for a matchmaking rule set
*/ inline MatchmakingRuleSet& WithRuleSetName(const Aws::String& value) { SetRuleSetName(value); return *this;} /** *A unique identifier for a matchmaking rule set
*/ inline MatchmakingRuleSet& WithRuleSetName(Aws::String&& value) { SetRuleSetName(std::move(value)); return *this;} /** *A unique identifier for a matchmaking rule set
*/ inline MatchmakingRuleSet& WithRuleSetName(const char* value) { SetRuleSetName(value); return *this;} /** *Amazon Resource Name (ARN) * that is assigned to a GameLift matchmaking rule set resource and uniquely * identifies it. ARNs are unique across all Regions. In a GameLift rule set ARN, * the resource ID matches the RuleSetName value.
*/ inline const Aws::String& GetRuleSetArn() const{ return m_ruleSetArn; } /** *Amazon Resource Name (ARN) * that is assigned to a GameLift matchmaking rule set resource and uniquely * identifies it. ARNs are unique across all Regions. In a GameLift rule set ARN, * the resource ID matches the RuleSetName value.
*/ inline bool RuleSetArnHasBeenSet() const { return m_ruleSetArnHasBeenSet; } /** *Amazon Resource Name (ARN) * that is assigned to a GameLift matchmaking rule set resource and uniquely * identifies it. ARNs are unique across all Regions. In a GameLift rule set ARN, * the resource ID matches the RuleSetName value.
*/ inline void SetRuleSetArn(const Aws::String& value) { m_ruleSetArnHasBeenSet = true; m_ruleSetArn = value; } /** *Amazon Resource Name (ARN) * that is assigned to a GameLift matchmaking rule set resource and uniquely * identifies it. ARNs are unique across all Regions. In a GameLift rule set ARN, * the resource ID matches the RuleSetName value.
*/ inline void SetRuleSetArn(Aws::String&& value) { m_ruleSetArnHasBeenSet = true; m_ruleSetArn = std::move(value); } /** *Amazon Resource Name (ARN) * that is assigned to a GameLift matchmaking rule set resource and uniquely * identifies it. ARNs are unique across all Regions. In a GameLift rule set ARN, * the resource ID matches the RuleSetName value.
*/ inline void SetRuleSetArn(const char* value) { m_ruleSetArnHasBeenSet = true; m_ruleSetArn.assign(value); } /** *Amazon Resource Name (ARN) * that is assigned to a GameLift matchmaking rule set resource and uniquely * identifies it. ARNs are unique across all Regions. In a GameLift rule set ARN, * the resource ID matches the RuleSetName value.
*/ inline MatchmakingRuleSet& WithRuleSetArn(const Aws::String& value) { SetRuleSetArn(value); return *this;} /** *Amazon Resource Name (ARN) * that is assigned to a GameLift matchmaking rule set resource and uniquely * identifies it. ARNs are unique across all Regions. In a GameLift rule set ARN, * the resource ID matches the RuleSetName value.
*/ inline MatchmakingRuleSet& WithRuleSetArn(Aws::String&& value) { SetRuleSetArn(std::move(value)); return *this;} /** *Amazon Resource Name (ARN) * that is assigned to a GameLift matchmaking rule set resource and uniquely * identifies it. ARNs are unique across all Regions. In a GameLift rule set ARN, * the resource ID matches the RuleSetName value.
*/ inline MatchmakingRuleSet& WithRuleSetArn(const char* value) { SetRuleSetArn(value); return *this;} /** *A collection of matchmaking rules, formatted as a JSON string. Comments are * not allowed in JSON, but most elements support a description field.
*/ inline const Aws::String& GetRuleSetBody() const{ return m_ruleSetBody; } /** *A collection of matchmaking rules, formatted as a JSON string. Comments are * not allowed in JSON, but most elements support a description field.
*/ inline bool RuleSetBodyHasBeenSet() const { return m_ruleSetBodyHasBeenSet; } /** *A collection of matchmaking rules, formatted as a JSON string. Comments are * not allowed in JSON, but most elements support a description field.
*/ inline void SetRuleSetBody(const Aws::String& value) { m_ruleSetBodyHasBeenSet = true; m_ruleSetBody = value; } /** *A collection of matchmaking rules, formatted as a JSON string. Comments are * not allowed in JSON, but most elements support a description field.
*/ inline void SetRuleSetBody(Aws::String&& value) { m_ruleSetBodyHasBeenSet = true; m_ruleSetBody = std::move(value); } /** *A collection of matchmaking rules, formatted as a JSON string. Comments are * not allowed in JSON, but most elements support a description field.
*/ inline void SetRuleSetBody(const char* value) { m_ruleSetBodyHasBeenSet = true; m_ruleSetBody.assign(value); } /** *A collection of matchmaking rules, formatted as a JSON string. Comments are * not allowed in JSON, but most elements support a description field.
*/ inline MatchmakingRuleSet& WithRuleSetBody(const Aws::String& value) { SetRuleSetBody(value); return *this;} /** *A collection of matchmaking rules, formatted as a JSON string. Comments are * not allowed in JSON, but most elements support a description field.
*/ inline MatchmakingRuleSet& WithRuleSetBody(Aws::String&& value) { SetRuleSetBody(std::move(value)); return *this;} /** *A collection of matchmaking rules, formatted as a JSON string. Comments are * not allowed in JSON, but most elements support a description field.
*/ inline MatchmakingRuleSet& WithRuleSetBody(const char* value) { SetRuleSetBody(value); return *this;} /** *The time stamp indicating when this data object was created. The format is a * number expressed in Unix time as milliseconds (for example * "1469498468.057").
*/ inline const Aws::Utils::DateTime& GetCreationTime() const{ return m_creationTime; } /** *The time stamp indicating when this data object was created. The format is a * number expressed in Unix time as milliseconds (for example * "1469498468.057").
*/ inline bool CreationTimeHasBeenSet() const { return m_creationTimeHasBeenSet; } /** *The time stamp indicating when this data object was created. The 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; } /** *The time stamp indicating when this data object was created. The 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); } /** *The time stamp indicating when this data object was created. The format is a * number expressed in Unix time as milliseconds (for example * "1469498468.057").
*/ inline MatchmakingRuleSet& WithCreationTime(const Aws::Utils::DateTime& value) { SetCreationTime(value); return *this;} /** *The time stamp indicating when this data object was created. The format is a * number expressed in Unix time as milliseconds (for example * "1469498468.057").
*/ inline MatchmakingRuleSet& WithCreationTime(Aws::Utils::DateTime&& value) { SetCreationTime(std::move(value)); return *this;} private: Aws::String m_ruleSetName; bool m_ruleSetNameHasBeenSet; Aws::String m_ruleSetArn; bool m_ruleSetArnHasBeenSet; Aws::String m_ruleSetBody; bool m_ruleSetBodyHasBeenSet; Aws::Utils::DateTime m_creationTime; bool m_creationTimeHasBeenSet; }; } // namespace Model } // namespace GameLift } // namespace Aws