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

Contains information on a promotion. A promotion defines additional business * rules that apply to a configurable subset of recommended items.

See * Also:

AWS * API Reference

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

The name of the promotion.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the promotion.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the promotion.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the promotion.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the promotion.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the promotion.

*/ inline Promotion& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the promotion.

*/ inline Promotion& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the promotion.

*/ inline Promotion& WithName(const char* value) { SetName(value); return *this;} /** *

The percentage of recommended items to apply the promotion to.

*/ inline int GetPercentPromotedItems() const{ return m_percentPromotedItems; } /** *

The percentage of recommended items to apply the promotion to.

*/ inline bool PercentPromotedItemsHasBeenSet() const { return m_percentPromotedItemsHasBeenSet; } /** *

The percentage of recommended items to apply the promotion to.

*/ inline void SetPercentPromotedItems(int value) { m_percentPromotedItemsHasBeenSet = true; m_percentPromotedItems = value; } /** *

The percentage of recommended items to apply the promotion to.

*/ inline Promotion& WithPercentPromotedItems(int value) { SetPercentPromotedItems(value); return *this;} /** *

The Amazon Resource Name (ARN) of the filter used by the promotion. This * filter defines the criteria for promoted items. For more information, see Promotion * filters.

*/ inline const Aws::String& GetFilterArn() const{ return m_filterArn; } /** *

The Amazon Resource Name (ARN) of the filter used by the promotion. This * filter defines the criteria for promoted items. For more information, see Promotion * filters.

*/ inline bool FilterArnHasBeenSet() const { return m_filterArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the filter used by the promotion. This * filter defines the criteria for promoted items. For more information, see Promotion * filters.

*/ inline void SetFilterArn(const Aws::String& value) { m_filterArnHasBeenSet = true; m_filterArn = value; } /** *

The Amazon Resource Name (ARN) of the filter used by the promotion. This * filter defines the criteria for promoted items. For more information, see Promotion * filters.

*/ inline void SetFilterArn(Aws::String&& value) { m_filterArnHasBeenSet = true; m_filterArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the filter used by the promotion. This * filter defines the criteria for promoted items. For more information, see Promotion * filters.

*/ inline void SetFilterArn(const char* value) { m_filterArnHasBeenSet = true; m_filterArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the filter used by the promotion. This * filter defines the criteria for promoted items. For more information, see Promotion * filters.

*/ inline Promotion& WithFilterArn(const Aws::String& value) { SetFilterArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the filter used by the promotion. This * filter defines the criteria for promoted items. For more information, see Promotion * filters.

*/ inline Promotion& WithFilterArn(Aws::String&& value) { SetFilterArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the filter used by the promotion. This * filter defines the criteria for promoted items. For more information, see Promotion * filters.

*/ inline Promotion& WithFilterArn(const char* value) { SetFilterArn(value); return *this;} /** *

The values to use when promoting items. For each placeholder parameter in * your promotion's filter expression, provide the parameter name (in matching * case) as a key and the filter value(s) as the corresponding value. Separate * multiple values for one parameter with a comma.

For filter expressions * that use an INCLUDE element to include items, you must provide * values for all parameters that are defined in the expression. For filters with * expressions that use an EXCLUDE element to exclude items, you can * omit the filter-values. In this case, Amazon Personalize doesn't * use that portion of the expression to filter recommendations.

For more * information on creating filters, see Filtering * recommendations and user segments.

*/ inline const Aws::Map& GetFilterValues() const{ return m_filterValues; } /** *

The values to use when promoting items. For each placeholder parameter in * your promotion's filter expression, provide the parameter name (in matching * case) as a key and the filter value(s) as the corresponding value. Separate * multiple values for one parameter with a comma.

For filter expressions * that use an INCLUDE element to include items, you must provide * values for all parameters that are defined in the expression. For filters with * expressions that use an EXCLUDE element to exclude items, you can * omit the filter-values. In this case, Amazon Personalize doesn't * use that portion of the expression to filter recommendations.

For more * information on creating filters, see Filtering * recommendations and user segments.

*/ inline bool FilterValuesHasBeenSet() const { return m_filterValuesHasBeenSet; } /** *

The values to use when promoting items. For each placeholder parameter in * your promotion's filter expression, provide the parameter name (in matching * case) as a key and the filter value(s) as the corresponding value. Separate * multiple values for one parameter with a comma.

For filter expressions * that use an INCLUDE element to include items, you must provide * values for all parameters that are defined in the expression. For filters with * expressions that use an EXCLUDE element to exclude items, you can * omit the filter-values. In this case, Amazon Personalize doesn't * use that portion of the expression to filter recommendations.

For more * information on creating filters, see Filtering * recommendations and user segments.

*/ inline void SetFilterValues(const Aws::Map& value) { m_filterValuesHasBeenSet = true; m_filterValues = value; } /** *

The values to use when promoting items. For each placeholder parameter in * your promotion's filter expression, provide the parameter name (in matching * case) as a key and the filter value(s) as the corresponding value. Separate * multiple values for one parameter with a comma.

For filter expressions * that use an INCLUDE element to include items, you must provide * values for all parameters that are defined in the expression. For filters with * expressions that use an EXCLUDE element to exclude items, you can * omit the filter-values. In this case, Amazon Personalize doesn't * use that portion of the expression to filter recommendations.

For more * information on creating filters, see Filtering * recommendations and user segments.

*/ inline void SetFilterValues(Aws::Map&& value) { m_filterValuesHasBeenSet = true; m_filterValues = std::move(value); } /** *

The values to use when promoting items. For each placeholder parameter in * your promotion's filter expression, provide the parameter name (in matching * case) as a key and the filter value(s) as the corresponding value. Separate * multiple values for one parameter with a comma.

For filter expressions * that use an INCLUDE element to include items, you must provide * values for all parameters that are defined in the expression. For filters with * expressions that use an EXCLUDE element to exclude items, you can * omit the filter-values. In this case, Amazon Personalize doesn't * use that portion of the expression to filter recommendations.

For more * information on creating filters, see Filtering * recommendations and user segments.

*/ inline Promotion& WithFilterValues(const Aws::Map& value) { SetFilterValues(value); return *this;} /** *

The values to use when promoting items. For each placeholder parameter in * your promotion's filter expression, provide the parameter name (in matching * case) as a key and the filter value(s) as the corresponding value. Separate * multiple values for one parameter with a comma.

For filter expressions * that use an INCLUDE element to include items, you must provide * values for all parameters that are defined in the expression. For filters with * expressions that use an EXCLUDE element to exclude items, you can * omit the filter-values. In this case, Amazon Personalize doesn't * use that portion of the expression to filter recommendations.

For more * information on creating filters, see Filtering * recommendations and user segments.

*/ inline Promotion& WithFilterValues(Aws::Map&& value) { SetFilterValues(std::move(value)); return *this;} /** *

The values to use when promoting items. For each placeholder parameter in * your promotion's filter expression, provide the parameter name (in matching * case) as a key and the filter value(s) as the corresponding value. Separate * multiple values for one parameter with a comma.

For filter expressions * that use an INCLUDE element to include items, you must provide * values for all parameters that are defined in the expression. For filters with * expressions that use an EXCLUDE element to exclude items, you can * omit the filter-values. In this case, Amazon Personalize doesn't * use that portion of the expression to filter recommendations.

For more * information on creating filters, see Filtering * recommendations and user segments.

*/ inline Promotion& AddFilterValues(const Aws::String& key, const Aws::String& value) { m_filterValuesHasBeenSet = true; m_filterValues.emplace(key, value); return *this; } /** *

The values to use when promoting items. For each placeholder parameter in * your promotion's filter expression, provide the parameter name (in matching * case) as a key and the filter value(s) as the corresponding value. Separate * multiple values for one parameter with a comma.

For filter expressions * that use an INCLUDE element to include items, you must provide * values for all parameters that are defined in the expression. For filters with * expressions that use an EXCLUDE element to exclude items, you can * omit the filter-values. In this case, Amazon Personalize doesn't * use that portion of the expression to filter recommendations.

For more * information on creating filters, see Filtering * recommendations and user segments.

*/ inline Promotion& AddFilterValues(Aws::String&& key, const Aws::String& value) { m_filterValuesHasBeenSet = true; m_filterValues.emplace(std::move(key), value); return *this; } /** *

The values to use when promoting items. For each placeholder parameter in * your promotion's filter expression, provide the parameter name (in matching * case) as a key and the filter value(s) as the corresponding value. Separate * multiple values for one parameter with a comma.

For filter expressions * that use an INCLUDE element to include items, you must provide * values for all parameters that are defined in the expression. For filters with * expressions that use an EXCLUDE element to exclude items, you can * omit the filter-values. In this case, Amazon Personalize doesn't * use that portion of the expression to filter recommendations.

For more * information on creating filters, see Filtering * recommendations and user segments.

*/ inline Promotion& AddFilterValues(const Aws::String& key, Aws::String&& value) { m_filterValuesHasBeenSet = true; m_filterValues.emplace(key, std::move(value)); return *this; } /** *

The values to use when promoting items. For each placeholder parameter in * your promotion's filter expression, provide the parameter name (in matching * case) as a key and the filter value(s) as the corresponding value. Separate * multiple values for one parameter with a comma.

For filter expressions * that use an INCLUDE element to include items, you must provide * values for all parameters that are defined in the expression. For filters with * expressions that use an EXCLUDE element to exclude items, you can * omit the filter-values. In this case, Amazon Personalize doesn't * use that portion of the expression to filter recommendations.

For more * information on creating filters, see Filtering * recommendations and user segments.

*/ inline Promotion& AddFilterValues(Aws::String&& key, Aws::String&& value) { m_filterValuesHasBeenSet = true; m_filterValues.emplace(std::move(key), std::move(value)); return *this; } /** *

The values to use when promoting items. For each placeholder parameter in * your promotion's filter expression, provide the parameter name (in matching * case) as a key and the filter value(s) as the corresponding value. Separate * multiple values for one parameter with a comma.

For filter expressions * that use an INCLUDE element to include items, you must provide * values for all parameters that are defined in the expression. For filters with * expressions that use an EXCLUDE element to exclude items, you can * omit the filter-values. In this case, Amazon Personalize doesn't * use that portion of the expression to filter recommendations.

For more * information on creating filters, see Filtering * recommendations and user segments.

*/ inline Promotion& AddFilterValues(const char* key, Aws::String&& value) { m_filterValuesHasBeenSet = true; m_filterValues.emplace(key, std::move(value)); return *this; } /** *

The values to use when promoting items. For each placeholder parameter in * your promotion's filter expression, provide the parameter name (in matching * case) as a key and the filter value(s) as the corresponding value. Separate * multiple values for one parameter with a comma.

For filter expressions * that use an INCLUDE element to include items, you must provide * values for all parameters that are defined in the expression. For filters with * expressions that use an EXCLUDE element to exclude items, you can * omit the filter-values. In this case, Amazon Personalize doesn't * use that portion of the expression to filter recommendations.

For more * information on creating filters, see Filtering * recommendations and user segments.

*/ inline Promotion& AddFilterValues(Aws::String&& key, const char* value) { m_filterValuesHasBeenSet = true; m_filterValues.emplace(std::move(key), value); return *this; } /** *

The values to use when promoting items. For each placeholder parameter in * your promotion's filter expression, provide the parameter name (in matching * case) as a key and the filter value(s) as the corresponding value. Separate * multiple values for one parameter with a comma.

For filter expressions * that use an INCLUDE element to include items, you must provide * values for all parameters that are defined in the expression. For filters with * expressions that use an EXCLUDE element to exclude items, you can * omit the filter-values. In this case, Amazon Personalize doesn't * use that portion of the expression to filter recommendations.

For more * information on creating filters, see Filtering * recommendations and user segments.

*/ inline Promotion& AddFilterValues(const char* key, const char* value) { m_filterValuesHasBeenSet = true; m_filterValues.emplace(key, value); return *this; } private: Aws::String m_name; bool m_nameHasBeenSet = false; int m_percentPromotedItems; bool m_percentPromotedItemsHasBeenSet = false; Aws::String m_filterArn; bool m_filterArnHasBeenSet = false; Aws::Map m_filterValues; bool m_filterValuesHasBeenSet = false; }; } // namespace Model } // namespace PersonalizeRuntime } // namespace Aws