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

An object which defines the list of matching rules to run and has a field * Rules, which is a list of rule objects.

See Also:

* AWS * API Reference

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

You can either choose ONE_TO_ONE or MANY_TO_MANY as * the AttributeMatchingModel. When choosing MANY_TO_MANY, the system * can match attribute across the sub-types of an attribute type. For example, if * the value of the Email field of Profile A and the value of BusinessEmail field * of Profile B matches, the two profiles are matched on the Email type. When * choosing ONE_TO_ONE the system can only match if the sub-types are * exact matches. For example, only when the value of the Email field of Profile A * and the value of the Email field of Profile B matches, the two profiles are * matched on the Email type.

*/ inline const AttributeMatchingModel& GetAttributeMatchingModel() const{ return m_attributeMatchingModel; } /** *

You can either choose ONE_TO_ONE or MANY_TO_MANY as * the AttributeMatchingModel. When choosing MANY_TO_MANY, the system * can match attribute across the sub-types of an attribute type. For example, if * the value of the Email field of Profile A and the value of BusinessEmail field * of Profile B matches, the two profiles are matched on the Email type. When * choosing ONE_TO_ONE the system can only match if the sub-types are * exact matches. For example, only when the value of the Email field of Profile A * and the value of the Email field of Profile B matches, the two profiles are * matched on the Email type.

*/ inline bool AttributeMatchingModelHasBeenSet() const { return m_attributeMatchingModelHasBeenSet; } /** *

You can either choose ONE_TO_ONE or MANY_TO_MANY as * the AttributeMatchingModel. When choosing MANY_TO_MANY, the system * can match attribute across the sub-types of an attribute type. For example, if * the value of the Email field of Profile A and the value of BusinessEmail field * of Profile B matches, the two profiles are matched on the Email type. When * choosing ONE_TO_ONE the system can only match if the sub-types are * exact matches. For example, only when the value of the Email field of Profile A * and the value of the Email field of Profile B matches, the two profiles are * matched on the Email type.

*/ inline void SetAttributeMatchingModel(const AttributeMatchingModel& value) { m_attributeMatchingModelHasBeenSet = true; m_attributeMatchingModel = value; } /** *

You can either choose ONE_TO_ONE or MANY_TO_MANY as * the AttributeMatchingModel. When choosing MANY_TO_MANY, the system * can match attribute across the sub-types of an attribute type. For example, if * the value of the Email field of Profile A and the value of BusinessEmail field * of Profile B matches, the two profiles are matched on the Email type. When * choosing ONE_TO_ONE the system can only match if the sub-types are * exact matches. For example, only when the value of the Email field of Profile A * and the value of the Email field of Profile B matches, the two profiles are * matched on the Email type.

*/ inline void SetAttributeMatchingModel(AttributeMatchingModel&& value) { m_attributeMatchingModelHasBeenSet = true; m_attributeMatchingModel = std::move(value); } /** *

You can either choose ONE_TO_ONE or MANY_TO_MANY as * the AttributeMatchingModel. When choosing MANY_TO_MANY, the system * can match attribute across the sub-types of an attribute type. For example, if * the value of the Email field of Profile A and the value of BusinessEmail field * of Profile B matches, the two profiles are matched on the Email type. When * choosing ONE_TO_ONE the system can only match if the sub-types are * exact matches. For example, only when the value of the Email field of Profile A * and the value of the Email field of Profile B matches, the two profiles are * matched on the Email type.

*/ inline RuleBasedProperties& WithAttributeMatchingModel(const AttributeMatchingModel& value) { SetAttributeMatchingModel(value); return *this;} /** *

You can either choose ONE_TO_ONE or MANY_TO_MANY as * the AttributeMatchingModel. When choosing MANY_TO_MANY, the system * can match attribute across the sub-types of an attribute type. For example, if * the value of the Email field of Profile A and the value of BusinessEmail field * of Profile B matches, the two profiles are matched on the Email type. When * choosing ONE_TO_ONE the system can only match if the sub-types are * exact matches. For example, only when the value of the Email field of Profile A * and the value of the Email field of Profile B matches, the two profiles are * matched on the Email type.

*/ inline RuleBasedProperties& WithAttributeMatchingModel(AttributeMatchingModel&& value) { SetAttributeMatchingModel(std::move(value)); return *this;} /** *

A list of Rule objects, each of which have fields RuleName and * MatchingKeys.

*/ inline const Aws::Vector& GetRules() const{ return m_rules; } /** *

A list of Rule objects, each of which have fields RuleName and * MatchingKeys.

*/ inline bool RulesHasBeenSet() const { return m_rulesHasBeenSet; } /** *

A list of Rule objects, each of which have fields RuleName and * MatchingKeys.

*/ inline void SetRules(const Aws::Vector& value) { m_rulesHasBeenSet = true; m_rules = value; } /** *

A list of Rule objects, each of which have fields RuleName and * MatchingKeys.

*/ inline void SetRules(Aws::Vector&& value) { m_rulesHasBeenSet = true; m_rules = std::move(value); } /** *

A list of Rule objects, each of which have fields RuleName and * MatchingKeys.

*/ inline RuleBasedProperties& WithRules(const Aws::Vector& value) { SetRules(value); return *this;} /** *

A list of Rule objects, each of which have fields RuleName and * MatchingKeys.

*/ inline RuleBasedProperties& WithRules(Aws::Vector&& value) { SetRules(std::move(value)); return *this;} /** *

A list of Rule objects, each of which have fields RuleName and * MatchingKeys.

*/ inline RuleBasedProperties& AddRules(const Rule& value) { m_rulesHasBeenSet = true; m_rules.push_back(value); return *this; } /** *

A list of Rule objects, each of which have fields RuleName and * MatchingKeys.

*/ inline RuleBasedProperties& AddRules(Rule&& value) { m_rulesHasBeenSet = true; m_rules.push_back(std::move(value)); return *this; } private: AttributeMatchingModel m_attributeMatchingModel; bool m_attributeMatchingModelHasBeenSet = false; Aws::Vector m_rules; bool m_rulesHasBeenSet = false; }; } // namespace Model } // namespace EntityResolution } // namespace Aws