This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
pxz-hos-client-cpp-module/support/aws-sdk-cpp-master/aws-cpp-sdk-gamelift/include/aws/gamelift/model/MatchmakingRuleSet.h

291 lines
13 KiB
C
Raw Normal View History

/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include <aws/gamelift/GameLift_EXPORTS.h>
#include <aws/core/utils/memory/stl/AWSString.h>
#include <aws/core/utils/DateTime.h>
#include <utility>
namespace Aws
{
namespace Utils
{
namespace Json
{
class JsonValue;
class JsonView;
} // namespace Json
} // namespace Utils
namespace GameLift
{
namespace Model
{
/**
* <p>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
* <a>MatchmakingConfiguration</a> objects.</p> <p>A rule set may define the
* following elements for a match. For detailed information and examples showing
* how to construct a rule set, see <a
* href="https://docs.aws.amazon.com/gamelift/latest/developerguide/match-rulesets.html">Build
* a FlexMatch Rule Set</a>. </p> <ul> <li> <p>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. </p> </li> <li> <p>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.</p> </li> <li> <p>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. </p> </li> <li> <p>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.</p> </li>
* </ul><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/MatchmakingRuleSet">AWS
* API Reference</a></p>
*/
class AWS_GAMELIFT_API MatchmakingRuleSet
{
public:
MatchmakingRuleSet();
MatchmakingRuleSet(Aws::Utils::Json::JsonView jsonValue);
MatchmakingRuleSet& operator=(Aws::Utils::Json::JsonView jsonValue);
Aws::Utils::Json::JsonValue Jsonize() const;
/**
* <p>A unique identifier for a matchmaking rule set</p>
*/
inline const Aws::String& GetRuleSetName() const{ return m_ruleSetName; }
/**
* <p>A unique identifier for a matchmaking rule set</p>
*/
inline bool RuleSetNameHasBeenSet() const { return m_ruleSetNameHasBeenSet; }
/**
* <p>A unique identifier for a matchmaking rule set</p>
*/
inline void SetRuleSetName(const Aws::String& value) { m_ruleSetNameHasBeenSet = true; m_ruleSetName = value; }
/**
* <p>A unique identifier for a matchmaking rule set</p>
*/
inline void SetRuleSetName(Aws::String&& value) { m_ruleSetNameHasBeenSet = true; m_ruleSetName = std::move(value); }
/**
* <p>A unique identifier for a matchmaking rule set</p>
*/
inline void SetRuleSetName(const char* value) { m_ruleSetNameHasBeenSet = true; m_ruleSetName.assign(value); }
/**
* <p>A unique identifier for a matchmaking rule set</p>
*/
inline MatchmakingRuleSet& WithRuleSetName(const Aws::String& value) { SetRuleSetName(value); return *this;}
/**
* <p>A unique identifier for a matchmaking rule set</p>
*/
inline MatchmakingRuleSet& WithRuleSetName(Aws::String&& value) { SetRuleSetName(std::move(value)); return *this;}
/**
* <p>A unique identifier for a matchmaking rule set</p>
*/
inline MatchmakingRuleSet& WithRuleSetName(const char* value) { SetRuleSetName(value); return *this;}
/**
* <p>Amazon Resource Name (<a
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a>)
* 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 <i>RuleSetName</i> value.</p>
*/
inline const Aws::String& GetRuleSetArn() const{ return m_ruleSetArn; }
/**
* <p>Amazon Resource Name (<a
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a>)
* 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 <i>RuleSetName</i> value.</p>
*/
inline bool RuleSetArnHasBeenSet() const { return m_ruleSetArnHasBeenSet; }
/**
* <p>Amazon Resource Name (<a
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a>)
* 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 <i>RuleSetName</i> value.</p>
*/
inline void SetRuleSetArn(const Aws::String& value) { m_ruleSetArnHasBeenSet = true; m_ruleSetArn = value; }
/**
* <p>Amazon Resource Name (<a
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a>)
* 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 <i>RuleSetName</i> value.</p>
*/
inline void SetRuleSetArn(Aws::String&& value) { m_ruleSetArnHasBeenSet = true; m_ruleSetArn = std::move(value); }
/**
* <p>Amazon Resource Name (<a
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a>)
* 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 <i>RuleSetName</i> value.</p>
*/
inline void SetRuleSetArn(const char* value) { m_ruleSetArnHasBeenSet = true; m_ruleSetArn.assign(value); }
/**
* <p>Amazon Resource Name (<a
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a>)
* 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 <i>RuleSetName</i> value.</p>
*/
inline MatchmakingRuleSet& WithRuleSetArn(const Aws::String& value) { SetRuleSetArn(value); return *this;}
/**
* <p>Amazon Resource Name (<a
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a>)
* 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 <i>RuleSetName</i> value.</p>
*/
inline MatchmakingRuleSet& WithRuleSetArn(Aws::String&& value) { SetRuleSetArn(std::move(value)); return *this;}
/**
* <p>Amazon Resource Name (<a
* href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">ARN</a>)
* 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 <i>RuleSetName</i> value.</p>
*/
inline MatchmakingRuleSet& WithRuleSetArn(const char* value) { SetRuleSetArn(value); return *this;}
/**
* <p>A collection of matchmaking rules, formatted as a JSON string. Comments are
* not allowed in JSON, but most elements support a description field.</p>
*/
inline const Aws::String& GetRuleSetBody() const{ return m_ruleSetBody; }
/**
* <p>A collection of matchmaking rules, formatted as a JSON string. Comments are
* not allowed in JSON, but most elements support a description field.</p>
*/
inline bool RuleSetBodyHasBeenSet() const { return m_ruleSetBodyHasBeenSet; }
/**
* <p>A collection of matchmaking rules, formatted as a JSON string. Comments are
* not allowed in JSON, but most elements support a description field.</p>
*/
inline void SetRuleSetBody(const Aws::String& value) { m_ruleSetBodyHasBeenSet = true; m_ruleSetBody = value; }
/**
* <p>A collection of matchmaking rules, formatted as a JSON string. Comments are
* not allowed in JSON, but most elements support a description field.</p>
*/
inline void SetRuleSetBody(Aws::String&& value) { m_ruleSetBodyHasBeenSet = true; m_ruleSetBody = std::move(value); }
/**
* <p>A collection of matchmaking rules, formatted as a JSON string. Comments are
* not allowed in JSON, but most elements support a description field.</p>
*/
inline void SetRuleSetBody(const char* value) { m_ruleSetBodyHasBeenSet = true; m_ruleSetBody.assign(value); }
/**
* <p>A collection of matchmaking rules, formatted as a JSON string. Comments are
* not allowed in JSON, but most elements support a description field.</p>
*/
inline MatchmakingRuleSet& WithRuleSetBody(const Aws::String& value) { SetRuleSetBody(value); return *this;}
/**
* <p>A collection of matchmaking rules, formatted as a JSON string. Comments are
* not allowed in JSON, but most elements support a description field.</p>
*/
inline MatchmakingRuleSet& WithRuleSetBody(Aws::String&& value) { SetRuleSetBody(std::move(value)); return *this;}
/**
* <p>A collection of matchmaking rules, formatted as a JSON string. Comments are
* not allowed in JSON, but most elements support a description field.</p>
*/
inline MatchmakingRuleSet& WithRuleSetBody(const char* value) { SetRuleSetBody(value); return *this;}
/**
* <p>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").</p>
*/
inline const Aws::Utils::DateTime& GetCreationTime() const{ return m_creationTime; }
/**
* <p>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").</p>
*/
inline bool CreationTimeHasBeenSet() const { return m_creationTimeHasBeenSet; }
/**
* <p>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").</p>
*/
inline void SetCreationTime(const Aws::Utils::DateTime& value) { m_creationTimeHasBeenSet = true; m_creationTime = value; }
/**
* <p>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").</p>
*/
inline void SetCreationTime(Aws::Utils::DateTime&& value) { m_creationTimeHasBeenSet = true; m_creationTime = std::move(value); }
/**
* <p>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").</p>
*/
inline MatchmakingRuleSet& WithCreationTime(const Aws::Utils::DateTime& value) { SetCreationTime(value); return *this;}
/**
* <p>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").</p>
*/
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