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

Configuration settings for how to perform the auto-merging of * profiles.

See Also:

AWS * API Reference

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

The flag that enables the auto-merging of duplicate profiles.

*/ inline bool GetEnabled() const{ return m_enabled; } /** *

The flag that enables the auto-merging of duplicate profiles.

*/ inline bool EnabledHasBeenSet() const { return m_enabledHasBeenSet; } /** *

The flag that enables the auto-merging of duplicate profiles.

*/ inline void SetEnabled(bool value) { m_enabledHasBeenSet = true; m_enabled = value; } /** *

The flag that enables the auto-merging of duplicate profiles.

*/ inline AutoMerging& WithEnabled(bool value) { SetEnabled(value); return *this;} /** *

A list of matching attributes that represent matching criteria. If two * profiles meet at least one of the requirements in the matching attributes list, * they will be merged.

*/ inline const Consolidation& GetConsolidation() const{ return m_consolidation; } /** *

A list of matching attributes that represent matching criteria. If two * profiles meet at least one of the requirements in the matching attributes list, * they will be merged.

*/ inline bool ConsolidationHasBeenSet() const { return m_consolidationHasBeenSet; } /** *

A list of matching attributes that represent matching criteria. If two * profiles meet at least one of the requirements in the matching attributes list, * they will be merged.

*/ inline void SetConsolidation(const Consolidation& value) { m_consolidationHasBeenSet = true; m_consolidation = value; } /** *

A list of matching attributes that represent matching criteria. If two * profiles meet at least one of the requirements in the matching attributes list, * they will be merged.

*/ inline void SetConsolidation(Consolidation&& value) { m_consolidationHasBeenSet = true; m_consolidation = std::move(value); } /** *

A list of matching attributes that represent matching criteria. If two * profiles meet at least one of the requirements in the matching attributes list, * they will be merged.

*/ inline AutoMerging& WithConsolidation(const Consolidation& value) { SetConsolidation(value); return *this;} /** *

A list of matching attributes that represent matching criteria. If two * profiles meet at least one of the requirements in the matching attributes list, * they will be merged.

*/ inline AutoMerging& WithConsolidation(Consolidation&& value) { SetConsolidation(std::move(value)); return *this;} /** *

How the auto-merging process should resolve conflicts between different * profiles. For example, if Profile A and Profile B have the same * FirstName and LastName (and that is the matching * criteria), which EmailAddress should be used?

*/ inline const ConflictResolution& GetConflictResolution() const{ return m_conflictResolution; } /** *

How the auto-merging process should resolve conflicts between different * profiles. For example, if Profile A and Profile B have the same * FirstName and LastName (and that is the matching * criteria), which EmailAddress should be used?

*/ inline bool ConflictResolutionHasBeenSet() const { return m_conflictResolutionHasBeenSet; } /** *

How the auto-merging process should resolve conflicts between different * profiles. For example, if Profile A and Profile B have the same * FirstName and LastName (and that is the matching * criteria), which EmailAddress should be used?

*/ inline void SetConflictResolution(const ConflictResolution& value) { m_conflictResolutionHasBeenSet = true; m_conflictResolution = value; } /** *

How the auto-merging process should resolve conflicts between different * profiles. For example, if Profile A and Profile B have the same * FirstName and LastName (and that is the matching * criteria), which EmailAddress should be used?

*/ inline void SetConflictResolution(ConflictResolution&& value) { m_conflictResolutionHasBeenSet = true; m_conflictResolution = std::move(value); } /** *

How the auto-merging process should resolve conflicts between different * profiles. For example, if Profile A and Profile B have the same * FirstName and LastName (and that is the matching * criteria), which EmailAddress should be used?

*/ inline AutoMerging& WithConflictResolution(const ConflictResolution& value) { SetConflictResolution(value); return *this;} /** *

How the auto-merging process should resolve conflicts between different * profiles. For example, if Profile A and Profile B have the same * FirstName and LastName (and that is the matching * criteria), which EmailAddress should be used?

*/ inline AutoMerging& WithConflictResolution(ConflictResolution&& value) { SetConflictResolution(std::move(value)); return *this;} /** *

A number between 0 and 1 that represents the minimum confidence score * required for profiles within a matching group to be merged during the auto-merge * process. A higher score means higher similarity required to merge profiles.

*/ inline double GetMinAllowedConfidenceScoreForMerging() const{ return m_minAllowedConfidenceScoreForMerging; } /** *

A number between 0 and 1 that represents the minimum confidence score * required for profiles within a matching group to be merged during the auto-merge * process. A higher score means higher similarity required to merge profiles.

*/ inline bool MinAllowedConfidenceScoreForMergingHasBeenSet() const { return m_minAllowedConfidenceScoreForMergingHasBeenSet; } /** *

A number between 0 and 1 that represents the minimum confidence score * required for profiles within a matching group to be merged during the auto-merge * process. A higher score means higher similarity required to merge profiles.

*/ inline void SetMinAllowedConfidenceScoreForMerging(double value) { m_minAllowedConfidenceScoreForMergingHasBeenSet = true; m_minAllowedConfidenceScoreForMerging = value; } /** *

A number between 0 and 1 that represents the minimum confidence score * required for profiles within a matching group to be merged during the auto-merge * process. A higher score means higher similarity required to merge profiles.

*/ inline AutoMerging& WithMinAllowedConfidenceScoreForMerging(double value) { SetMinAllowedConfidenceScoreForMerging(value); return *this;} private: bool m_enabled; bool m_enabledHasBeenSet = false; Consolidation m_consolidation; bool m_consolidationHasBeenSet = false; ConflictResolution m_conflictResolution; bool m_conflictResolutionHasBeenSet = false; double m_minAllowedConfidenceScoreForMerging; bool m_minAllowedConfidenceScoreForMergingHasBeenSet = false; }; } // namespace Model } // namespace CustomerProfiles } // namespace Aws