/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include namespace Aws { namespace CloudWatchEvidently { namespace Model { /** */ class UpdateFeatureRequest : public CloudWatchEvidentlyRequest { public: AWS_CLOUDWATCHEVIDENTLY_API UpdateFeatureRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "UpdateFeature"; } AWS_CLOUDWATCHEVIDENTLY_API Aws::String SerializePayload() const override; /** *

To update variation configurations for this feature, or add new ones, specify * this structure. In this array, include any variations that you want to add or * update. If the array includes a variation name that already exists for this * feature, it is updated. If it includes a new variation name, it is added as a * new variation.

*/ inline const Aws::Vector& GetAddOrUpdateVariations() const{ return m_addOrUpdateVariations; } /** *

To update variation configurations for this feature, or add new ones, specify * this structure. In this array, include any variations that you want to add or * update. If the array includes a variation name that already exists for this * feature, it is updated. If it includes a new variation name, it is added as a * new variation.

*/ inline bool AddOrUpdateVariationsHasBeenSet() const { return m_addOrUpdateVariationsHasBeenSet; } /** *

To update variation configurations for this feature, or add new ones, specify * this structure. In this array, include any variations that you want to add or * update. If the array includes a variation name that already exists for this * feature, it is updated. If it includes a new variation name, it is added as a * new variation.

*/ inline void SetAddOrUpdateVariations(const Aws::Vector& value) { m_addOrUpdateVariationsHasBeenSet = true; m_addOrUpdateVariations = value; } /** *

To update variation configurations for this feature, or add new ones, specify * this structure. In this array, include any variations that you want to add or * update. If the array includes a variation name that already exists for this * feature, it is updated. If it includes a new variation name, it is added as a * new variation.

*/ inline void SetAddOrUpdateVariations(Aws::Vector&& value) { m_addOrUpdateVariationsHasBeenSet = true; m_addOrUpdateVariations = std::move(value); } /** *

To update variation configurations for this feature, or add new ones, specify * this structure. In this array, include any variations that you want to add or * update. If the array includes a variation name that already exists for this * feature, it is updated. If it includes a new variation name, it is added as a * new variation.

*/ inline UpdateFeatureRequest& WithAddOrUpdateVariations(const Aws::Vector& value) { SetAddOrUpdateVariations(value); return *this;} /** *

To update variation configurations for this feature, or add new ones, specify * this structure. In this array, include any variations that you want to add or * update. If the array includes a variation name that already exists for this * feature, it is updated. If it includes a new variation name, it is added as a * new variation.

*/ inline UpdateFeatureRequest& WithAddOrUpdateVariations(Aws::Vector&& value) { SetAddOrUpdateVariations(std::move(value)); return *this;} /** *

To update variation configurations for this feature, or add new ones, specify * this structure. In this array, include any variations that you want to add or * update. If the array includes a variation name that already exists for this * feature, it is updated. If it includes a new variation name, it is added as a * new variation.

*/ inline UpdateFeatureRequest& AddAddOrUpdateVariations(const VariationConfig& value) { m_addOrUpdateVariationsHasBeenSet = true; m_addOrUpdateVariations.push_back(value); return *this; } /** *

To update variation configurations for this feature, or add new ones, specify * this structure. In this array, include any variations that you want to add or * update. If the array includes a variation name that already exists for this * feature, it is updated. If it includes a new variation name, it is added as a * new variation.

*/ inline UpdateFeatureRequest& AddAddOrUpdateVariations(VariationConfig&& value) { m_addOrUpdateVariationsHasBeenSet = true; m_addOrUpdateVariations.push_back(std::move(value)); return *this; } /** *

The name of the variation to use as the default variation. The default * variation is served to users who are not allocated to any ongoing launches or * experiments of this feature.

*/ inline const Aws::String& GetDefaultVariation() const{ return m_defaultVariation; } /** *

The name of the variation to use as the default variation. The default * variation is served to users who are not allocated to any ongoing launches or * experiments of this feature.

*/ inline bool DefaultVariationHasBeenSet() const { return m_defaultVariationHasBeenSet; } /** *

The name of the variation to use as the default variation. The default * variation is served to users who are not allocated to any ongoing launches or * experiments of this feature.

*/ inline void SetDefaultVariation(const Aws::String& value) { m_defaultVariationHasBeenSet = true; m_defaultVariation = value; } /** *

The name of the variation to use as the default variation. The default * variation is served to users who are not allocated to any ongoing launches or * experiments of this feature.

*/ inline void SetDefaultVariation(Aws::String&& value) { m_defaultVariationHasBeenSet = true; m_defaultVariation = std::move(value); } /** *

The name of the variation to use as the default variation. The default * variation is served to users who are not allocated to any ongoing launches or * experiments of this feature.

*/ inline void SetDefaultVariation(const char* value) { m_defaultVariationHasBeenSet = true; m_defaultVariation.assign(value); } /** *

The name of the variation to use as the default variation. The default * variation is served to users who are not allocated to any ongoing launches or * experiments of this feature.

*/ inline UpdateFeatureRequest& WithDefaultVariation(const Aws::String& value) { SetDefaultVariation(value); return *this;} /** *

The name of the variation to use as the default variation. The default * variation is served to users who are not allocated to any ongoing launches or * experiments of this feature.

*/ inline UpdateFeatureRequest& WithDefaultVariation(Aws::String&& value) { SetDefaultVariation(std::move(value)); return *this;} /** *

The name of the variation to use as the default variation. The default * variation is served to users who are not allocated to any ongoing launches or * experiments of this feature.

*/ inline UpdateFeatureRequest& WithDefaultVariation(const char* value) { SetDefaultVariation(value); return *this;} /** *

An optional description of the feature.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

An optional description of the feature.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

An optional description of the feature.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

An optional description of the feature.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

An optional description of the feature.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

An optional description of the feature.

*/ inline UpdateFeatureRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

An optional description of the feature.

*/ inline UpdateFeatureRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

An optional description of the feature.

*/ inline UpdateFeatureRequest& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

Specified users that should always be served a specific variation of a * feature. Each user is specified by a key-value pair . For each key, specify a * user by entering their user ID, account ID, or some other identifier. For the * value, specify the name of the variation that they are to be served.

This * parameter is limited to 2500 overrides or a total of 40KB. The 40KB limit * includes an overhead of 6 bytes per override.

*/ inline const Aws::Map& GetEntityOverrides() const{ return m_entityOverrides; } /** *

Specified users that should always be served a specific variation of a * feature. Each user is specified by a key-value pair . For each key, specify a * user by entering their user ID, account ID, or some other identifier. For the * value, specify the name of the variation that they are to be served.

This * parameter is limited to 2500 overrides or a total of 40KB. The 40KB limit * includes an overhead of 6 bytes per override.

*/ inline bool EntityOverridesHasBeenSet() const { return m_entityOverridesHasBeenSet; } /** *

Specified users that should always be served a specific variation of a * feature. Each user is specified by a key-value pair . For each key, specify a * user by entering their user ID, account ID, or some other identifier. For the * value, specify the name of the variation that they are to be served.

This * parameter is limited to 2500 overrides or a total of 40KB. The 40KB limit * includes an overhead of 6 bytes per override.

*/ inline void SetEntityOverrides(const Aws::Map& value) { m_entityOverridesHasBeenSet = true; m_entityOverrides = value; } /** *

Specified users that should always be served a specific variation of a * feature. Each user is specified by a key-value pair . For each key, specify a * user by entering their user ID, account ID, or some other identifier. For the * value, specify the name of the variation that they are to be served.

This * parameter is limited to 2500 overrides or a total of 40KB. The 40KB limit * includes an overhead of 6 bytes per override.

*/ inline void SetEntityOverrides(Aws::Map&& value) { m_entityOverridesHasBeenSet = true; m_entityOverrides = std::move(value); } /** *

Specified users that should always be served a specific variation of a * feature. Each user is specified by a key-value pair . For each key, specify a * user by entering their user ID, account ID, or some other identifier. For the * value, specify the name of the variation that they are to be served.

This * parameter is limited to 2500 overrides or a total of 40KB. The 40KB limit * includes an overhead of 6 bytes per override.

*/ inline UpdateFeatureRequest& WithEntityOverrides(const Aws::Map& value) { SetEntityOverrides(value); return *this;} /** *

Specified users that should always be served a specific variation of a * feature. Each user is specified by a key-value pair . For each key, specify a * user by entering their user ID, account ID, or some other identifier. For the * value, specify the name of the variation that they are to be served.

This * parameter is limited to 2500 overrides or a total of 40KB. The 40KB limit * includes an overhead of 6 bytes per override.

*/ inline UpdateFeatureRequest& WithEntityOverrides(Aws::Map&& value) { SetEntityOverrides(std::move(value)); return *this;} /** *

Specified users that should always be served a specific variation of a * feature. Each user is specified by a key-value pair . For each key, specify a * user by entering their user ID, account ID, or some other identifier. For the * value, specify the name of the variation that they are to be served.

This * parameter is limited to 2500 overrides or a total of 40KB. The 40KB limit * includes an overhead of 6 bytes per override.

*/ inline UpdateFeatureRequest& AddEntityOverrides(const Aws::String& key, const Aws::String& value) { m_entityOverridesHasBeenSet = true; m_entityOverrides.emplace(key, value); return *this; } /** *

Specified users that should always be served a specific variation of a * feature. Each user is specified by a key-value pair . For each key, specify a * user by entering their user ID, account ID, or some other identifier. For the * value, specify the name of the variation that they are to be served.

This * parameter is limited to 2500 overrides or a total of 40KB. The 40KB limit * includes an overhead of 6 bytes per override.

*/ inline UpdateFeatureRequest& AddEntityOverrides(Aws::String&& key, const Aws::String& value) { m_entityOverridesHasBeenSet = true; m_entityOverrides.emplace(std::move(key), value); return *this; } /** *

Specified users that should always be served a specific variation of a * feature. Each user is specified by a key-value pair . For each key, specify a * user by entering their user ID, account ID, or some other identifier. For the * value, specify the name of the variation that they are to be served.

This * parameter is limited to 2500 overrides or a total of 40KB. The 40KB limit * includes an overhead of 6 bytes per override.

*/ inline UpdateFeatureRequest& AddEntityOverrides(const Aws::String& key, Aws::String&& value) { m_entityOverridesHasBeenSet = true; m_entityOverrides.emplace(key, std::move(value)); return *this; } /** *

Specified users that should always be served a specific variation of a * feature. Each user is specified by a key-value pair . For each key, specify a * user by entering their user ID, account ID, or some other identifier. For the * value, specify the name of the variation that they are to be served.

This * parameter is limited to 2500 overrides or a total of 40KB. The 40KB limit * includes an overhead of 6 bytes per override.

*/ inline UpdateFeatureRequest& AddEntityOverrides(Aws::String&& key, Aws::String&& value) { m_entityOverridesHasBeenSet = true; m_entityOverrides.emplace(std::move(key), std::move(value)); return *this; } /** *

Specified users that should always be served a specific variation of a * feature. Each user is specified by a key-value pair . For each key, specify a * user by entering their user ID, account ID, or some other identifier. For the * value, specify the name of the variation that they are to be served.

This * parameter is limited to 2500 overrides or a total of 40KB. The 40KB limit * includes an overhead of 6 bytes per override.

*/ inline UpdateFeatureRequest& AddEntityOverrides(const char* key, Aws::String&& value) { m_entityOverridesHasBeenSet = true; m_entityOverrides.emplace(key, std::move(value)); return *this; } /** *

Specified users that should always be served a specific variation of a * feature. Each user is specified by a key-value pair . For each key, specify a * user by entering their user ID, account ID, or some other identifier. For the * value, specify the name of the variation that they are to be served.

This * parameter is limited to 2500 overrides or a total of 40KB. The 40KB limit * includes an overhead of 6 bytes per override.

*/ inline UpdateFeatureRequest& AddEntityOverrides(Aws::String&& key, const char* value) { m_entityOverridesHasBeenSet = true; m_entityOverrides.emplace(std::move(key), value); return *this; } /** *

Specified users that should always be served a specific variation of a * feature. Each user is specified by a key-value pair . For each key, specify a * user by entering their user ID, account ID, or some other identifier. For the * value, specify the name of the variation that they are to be served.

This * parameter is limited to 2500 overrides or a total of 40KB. The 40KB limit * includes an overhead of 6 bytes per override.

*/ inline UpdateFeatureRequest& AddEntityOverrides(const char* key, const char* value) { m_entityOverridesHasBeenSet = true; m_entityOverrides.emplace(key, value); return *this; } /** *

Specify ALL_RULES to activate the traffic allocation specified * by any ongoing launches or experiments. Specify DEFAULT_VARIATION * to serve the default variation to all users instead.

*/ inline const FeatureEvaluationStrategy& GetEvaluationStrategy() const{ return m_evaluationStrategy; } /** *

Specify ALL_RULES to activate the traffic allocation specified * by any ongoing launches or experiments. Specify DEFAULT_VARIATION * to serve the default variation to all users instead.

*/ inline bool EvaluationStrategyHasBeenSet() const { return m_evaluationStrategyHasBeenSet; } /** *

Specify ALL_RULES to activate the traffic allocation specified * by any ongoing launches or experiments. Specify DEFAULT_VARIATION * to serve the default variation to all users instead.

*/ inline void SetEvaluationStrategy(const FeatureEvaluationStrategy& value) { m_evaluationStrategyHasBeenSet = true; m_evaluationStrategy = value; } /** *

Specify ALL_RULES to activate the traffic allocation specified * by any ongoing launches or experiments. Specify DEFAULT_VARIATION * to serve the default variation to all users instead.

*/ inline void SetEvaluationStrategy(FeatureEvaluationStrategy&& value) { m_evaluationStrategyHasBeenSet = true; m_evaluationStrategy = std::move(value); } /** *

Specify ALL_RULES to activate the traffic allocation specified * by any ongoing launches or experiments. Specify DEFAULT_VARIATION * to serve the default variation to all users instead.

*/ inline UpdateFeatureRequest& WithEvaluationStrategy(const FeatureEvaluationStrategy& value) { SetEvaluationStrategy(value); return *this;} /** *

Specify ALL_RULES to activate the traffic allocation specified * by any ongoing launches or experiments. Specify DEFAULT_VARIATION * to serve the default variation to all users instead.

*/ inline UpdateFeatureRequest& WithEvaluationStrategy(FeatureEvaluationStrategy&& value) { SetEvaluationStrategy(std::move(value)); return *this;} /** *

The name of the feature to be updated.

*/ inline const Aws::String& GetFeature() const{ return m_feature; } /** *

The name of the feature to be updated.

*/ inline bool FeatureHasBeenSet() const { return m_featureHasBeenSet; } /** *

The name of the feature to be updated.

*/ inline void SetFeature(const Aws::String& value) { m_featureHasBeenSet = true; m_feature = value; } /** *

The name of the feature to be updated.

*/ inline void SetFeature(Aws::String&& value) { m_featureHasBeenSet = true; m_feature = std::move(value); } /** *

The name of the feature to be updated.

*/ inline void SetFeature(const char* value) { m_featureHasBeenSet = true; m_feature.assign(value); } /** *

The name of the feature to be updated.

*/ inline UpdateFeatureRequest& WithFeature(const Aws::String& value) { SetFeature(value); return *this;} /** *

The name of the feature to be updated.

*/ inline UpdateFeatureRequest& WithFeature(Aws::String&& value) { SetFeature(std::move(value)); return *this;} /** *

The name of the feature to be updated.

*/ inline UpdateFeatureRequest& WithFeature(const char* value) { SetFeature(value); return *this;} /** *

The name or ARN of the project that contains the feature to be updated.

*/ inline const Aws::String& GetProject() const{ return m_project; } /** *

The name or ARN of the project that contains the feature to be updated.

*/ inline bool ProjectHasBeenSet() const { return m_projectHasBeenSet; } /** *

The name or ARN of the project that contains the feature to be updated.

*/ inline void SetProject(const Aws::String& value) { m_projectHasBeenSet = true; m_project = value; } /** *

The name or ARN of the project that contains the feature to be updated.

*/ inline void SetProject(Aws::String&& value) { m_projectHasBeenSet = true; m_project = std::move(value); } /** *

The name or ARN of the project that contains the feature to be updated.

*/ inline void SetProject(const char* value) { m_projectHasBeenSet = true; m_project.assign(value); } /** *

The name or ARN of the project that contains the feature to be updated.

*/ inline UpdateFeatureRequest& WithProject(const Aws::String& value) { SetProject(value); return *this;} /** *

The name or ARN of the project that contains the feature to be updated.

*/ inline UpdateFeatureRequest& WithProject(Aws::String&& value) { SetProject(std::move(value)); return *this;} /** *

The name or ARN of the project that contains the feature to be updated.

*/ inline UpdateFeatureRequest& WithProject(const char* value) { SetProject(value); return *this;} /** *

Removes a variation from the feature. If the variation you specify doesn't * exist, then this makes no change and does not report an error.

This * operation fails if you try to remove a variation that is part of an ongoing * launch or experiment.

*/ inline const Aws::Vector& GetRemoveVariations() const{ return m_removeVariations; } /** *

Removes a variation from the feature. If the variation you specify doesn't * exist, then this makes no change and does not report an error.

This * operation fails if you try to remove a variation that is part of an ongoing * launch or experiment.

*/ inline bool RemoveVariationsHasBeenSet() const { return m_removeVariationsHasBeenSet; } /** *

Removes a variation from the feature. If the variation you specify doesn't * exist, then this makes no change and does not report an error.

This * operation fails if you try to remove a variation that is part of an ongoing * launch or experiment.

*/ inline void SetRemoveVariations(const Aws::Vector& value) { m_removeVariationsHasBeenSet = true; m_removeVariations = value; } /** *

Removes a variation from the feature. If the variation you specify doesn't * exist, then this makes no change and does not report an error.

This * operation fails if you try to remove a variation that is part of an ongoing * launch or experiment.

*/ inline void SetRemoveVariations(Aws::Vector&& value) { m_removeVariationsHasBeenSet = true; m_removeVariations = std::move(value); } /** *

Removes a variation from the feature. If the variation you specify doesn't * exist, then this makes no change and does not report an error.

This * operation fails if you try to remove a variation that is part of an ongoing * launch or experiment.

*/ inline UpdateFeatureRequest& WithRemoveVariations(const Aws::Vector& value) { SetRemoveVariations(value); return *this;} /** *

Removes a variation from the feature. If the variation you specify doesn't * exist, then this makes no change and does not report an error.

This * operation fails if you try to remove a variation that is part of an ongoing * launch or experiment.

*/ inline UpdateFeatureRequest& WithRemoveVariations(Aws::Vector&& value) { SetRemoveVariations(std::move(value)); return *this;} /** *

Removes a variation from the feature. If the variation you specify doesn't * exist, then this makes no change and does not report an error.

This * operation fails if you try to remove a variation that is part of an ongoing * launch or experiment.

*/ inline UpdateFeatureRequest& AddRemoveVariations(const Aws::String& value) { m_removeVariationsHasBeenSet = true; m_removeVariations.push_back(value); return *this; } /** *

Removes a variation from the feature. If the variation you specify doesn't * exist, then this makes no change and does not report an error.

This * operation fails if you try to remove a variation that is part of an ongoing * launch or experiment.

*/ inline UpdateFeatureRequest& AddRemoveVariations(Aws::String&& value) { m_removeVariationsHasBeenSet = true; m_removeVariations.push_back(std::move(value)); return *this; } /** *

Removes a variation from the feature. If the variation you specify doesn't * exist, then this makes no change and does not report an error.

This * operation fails if you try to remove a variation that is part of an ongoing * launch or experiment.

*/ inline UpdateFeatureRequest& AddRemoveVariations(const char* value) { m_removeVariationsHasBeenSet = true; m_removeVariations.push_back(value); return *this; } private: Aws::Vector m_addOrUpdateVariations; bool m_addOrUpdateVariationsHasBeenSet = false; Aws::String m_defaultVariation; bool m_defaultVariationHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::Map m_entityOverrides; bool m_entityOverridesHasBeenSet = false; FeatureEvaluationStrategy m_evaluationStrategy; bool m_evaluationStrategyHasBeenSet = false; Aws::String m_feature; bool m_featureHasBeenSet = false; Aws::String m_project; bool m_projectHasBeenSet = false; Aws::Vector m_removeVariations; bool m_removeVariationsHasBeenSet = false; }; } // namespace Model } // namespace CloudWatchEvidently } // namespace Aws