/** * 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 EntityResolution { namespace Model { /** *

An object containing FieldField, Type, * GroupName, and MatchKey.

See Also:

AWS * API Reference

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

A string containing the field name.

*/ inline const Aws::String& GetFieldName() const{ return m_fieldName; } /** *

A string containing the field name.

*/ inline bool FieldNameHasBeenSet() const { return m_fieldNameHasBeenSet; } /** *

A string containing the field name.

*/ inline void SetFieldName(const Aws::String& value) { m_fieldNameHasBeenSet = true; m_fieldName = value; } /** *

A string containing the field name.

*/ inline void SetFieldName(Aws::String&& value) { m_fieldNameHasBeenSet = true; m_fieldName = std::move(value); } /** *

A string containing the field name.

*/ inline void SetFieldName(const char* value) { m_fieldNameHasBeenSet = true; m_fieldName.assign(value); } /** *

A string containing the field name.

*/ inline SchemaInputAttribute& WithFieldName(const Aws::String& value) { SetFieldName(value); return *this;} /** *

A string containing the field name.

*/ inline SchemaInputAttribute& WithFieldName(Aws::String&& value) { SetFieldName(std::move(value)); return *this;} /** *

A string containing the field name.

*/ inline SchemaInputAttribute& WithFieldName(const char* value) { SetFieldName(value); return *this;} /** *

Instruct Entity Resolution to combine several columns into a unified column * with the identical attribute type. For example, when working with columns such * as first_name, middle_name, and last_name, assigning them a common * GroupName will prompt Entity Resolution to concatenate them into a * single value.

*/ inline const Aws::String& GetGroupName() const{ return m_groupName; } /** *

Instruct Entity Resolution to combine several columns into a unified column * with the identical attribute type. For example, when working with columns such * as first_name, middle_name, and last_name, assigning them a common * GroupName will prompt Entity Resolution to concatenate them into a * single value.

*/ inline bool GroupNameHasBeenSet() const { return m_groupNameHasBeenSet; } /** *

Instruct Entity Resolution to combine several columns into a unified column * with the identical attribute type. For example, when working with columns such * as first_name, middle_name, and last_name, assigning them a common * GroupName will prompt Entity Resolution to concatenate them into a * single value.

*/ inline void SetGroupName(const Aws::String& value) { m_groupNameHasBeenSet = true; m_groupName = value; } /** *

Instruct Entity Resolution to combine several columns into a unified column * with the identical attribute type. For example, when working with columns such * as first_name, middle_name, and last_name, assigning them a common * GroupName will prompt Entity Resolution to concatenate them into a * single value.

*/ inline void SetGroupName(Aws::String&& value) { m_groupNameHasBeenSet = true; m_groupName = std::move(value); } /** *

Instruct Entity Resolution to combine several columns into a unified column * with the identical attribute type. For example, when working with columns such * as first_name, middle_name, and last_name, assigning them a common * GroupName will prompt Entity Resolution to concatenate them into a * single value.

*/ inline void SetGroupName(const char* value) { m_groupNameHasBeenSet = true; m_groupName.assign(value); } /** *

Instruct Entity Resolution to combine several columns into a unified column * with the identical attribute type. For example, when working with columns such * as first_name, middle_name, and last_name, assigning them a common * GroupName will prompt Entity Resolution to concatenate them into a * single value.

*/ inline SchemaInputAttribute& WithGroupName(const Aws::String& value) { SetGroupName(value); return *this;} /** *

Instruct Entity Resolution to combine several columns into a unified column * with the identical attribute type. For example, when working with columns such * as first_name, middle_name, and last_name, assigning them a common * GroupName will prompt Entity Resolution to concatenate them into a * single value.

*/ inline SchemaInputAttribute& WithGroupName(Aws::String&& value) { SetGroupName(std::move(value)); return *this;} /** *

Instruct Entity Resolution to combine several columns into a unified column * with the identical attribute type. For example, when working with columns such * as first_name, middle_name, and last_name, assigning them a common * GroupName will prompt Entity Resolution to concatenate them into a * single value.

*/ inline SchemaInputAttribute& WithGroupName(const char* value) { SetGroupName(value); return *this;} /** *

A key that allows grouping of multiple input attributes into a unified * matching group. For example, let's consider a scenario where the source table * contains various addresses, such as business_address and shipping_address. By * assigning the MatchKey Address' to both attributes, Entity * Resolution will match records across these fields to create a consolidated * matching group. If no MatchKey is specified for a column, it won't * be utilized for matching purposes but will still be included in the output * table.

*/ inline const Aws::String& GetMatchKey() const{ return m_matchKey; } /** *

A key that allows grouping of multiple input attributes into a unified * matching group. For example, let's consider a scenario where the source table * contains various addresses, such as business_address and shipping_address. By * assigning the MatchKey Address' to both attributes, Entity * Resolution will match records across these fields to create a consolidated * matching group. If no MatchKey is specified for a column, it won't * be utilized for matching purposes but will still be included in the output * table.

*/ inline bool MatchKeyHasBeenSet() const { return m_matchKeyHasBeenSet; } /** *

A key that allows grouping of multiple input attributes into a unified * matching group. For example, let's consider a scenario where the source table * contains various addresses, such as business_address and shipping_address. By * assigning the MatchKey Address' to both attributes, Entity * Resolution will match records across these fields to create a consolidated * matching group. If no MatchKey is specified for a column, it won't * be utilized for matching purposes but will still be included in the output * table.

*/ inline void SetMatchKey(const Aws::String& value) { m_matchKeyHasBeenSet = true; m_matchKey = value; } /** *

A key that allows grouping of multiple input attributes into a unified * matching group. For example, let's consider a scenario where the source table * contains various addresses, such as business_address and shipping_address. By * assigning the MatchKey Address' to both attributes, Entity * Resolution will match records across these fields to create a consolidated * matching group. If no MatchKey is specified for a column, it won't * be utilized for matching purposes but will still be included in the output * table.

*/ inline void SetMatchKey(Aws::String&& value) { m_matchKeyHasBeenSet = true; m_matchKey = std::move(value); } /** *

A key that allows grouping of multiple input attributes into a unified * matching group. For example, let's consider a scenario where the source table * contains various addresses, such as business_address and shipping_address. By * assigning the MatchKey Address' to both attributes, Entity * Resolution will match records across these fields to create a consolidated * matching group. If no MatchKey is specified for a column, it won't * be utilized for matching purposes but will still be included in the output * table.

*/ inline void SetMatchKey(const char* value) { m_matchKeyHasBeenSet = true; m_matchKey.assign(value); } /** *

A key that allows grouping of multiple input attributes into a unified * matching group. For example, let's consider a scenario where the source table * contains various addresses, such as business_address and shipping_address. By * assigning the MatchKey Address' to both attributes, Entity * Resolution will match records across these fields to create a consolidated * matching group. If no MatchKey is specified for a column, it won't * be utilized for matching purposes but will still be included in the output * table.

*/ inline SchemaInputAttribute& WithMatchKey(const Aws::String& value) { SetMatchKey(value); return *this;} /** *

A key that allows grouping of multiple input attributes into a unified * matching group. For example, let's consider a scenario where the source table * contains various addresses, such as business_address and shipping_address. By * assigning the MatchKey Address' to both attributes, Entity * Resolution will match records across these fields to create a consolidated * matching group. If no MatchKey is specified for a column, it won't * be utilized for matching purposes but will still be included in the output * table.

*/ inline SchemaInputAttribute& WithMatchKey(Aws::String&& value) { SetMatchKey(std::move(value)); return *this;} /** *

A key that allows grouping of multiple input attributes into a unified * matching group. For example, let's consider a scenario where the source table * contains various addresses, such as business_address and shipping_address. By * assigning the MatchKey Address' to both attributes, Entity * Resolution will match records across these fields to create a consolidated * matching group. If no MatchKey is specified for a column, it won't * be utilized for matching purposes but will still be included in the output * table.

*/ inline SchemaInputAttribute& WithMatchKey(const char* value) { SetMatchKey(value); return *this;} /** *

The type of the attribute, selected from a list of values.

*/ inline const SchemaAttributeType& GetType() const{ return m_type; } /** *

The type of the attribute, selected from a list of values.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The type of the attribute, selected from a list of values.

*/ inline void SetType(const SchemaAttributeType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The type of the attribute, selected from a list of values.

*/ inline void SetType(SchemaAttributeType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The type of the attribute, selected from a list of values.

*/ inline SchemaInputAttribute& WithType(const SchemaAttributeType& value) { SetType(value); return *this;} /** *

The type of the attribute, selected from a list of values.

*/ inline SchemaInputAttribute& WithType(SchemaAttributeType&& value) { SetType(std::move(value)); return *this;} private: Aws::String m_fieldName; bool m_fieldNameHasBeenSet = false; Aws::String m_groupName; bool m_groupNameHasBeenSet = false; Aws::String m_matchKey; bool m_matchKeyHasBeenSet = false; SchemaAttributeType m_type; bool m_typeHasBeenSet = false; }; } // namespace Model } // namespace EntityResolution } // namespace Aws