/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the evidently-2021-02-01.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.CloudWatchEvidently.Model
{
///
/// Container for the parameters to the UpdateFeature operation.
/// Updates an existing feature.
///
///
///
/// You can't use this operation to update the tags of an existing feature. Instead, use
/// TagResource.
///
///
///
public partial class UpdateFeatureRequest : AmazonCloudWatchEvidentlyRequest
{
private List _addOrUpdateVariations = new List();
private string _defaultVariation;
private string _description;
private Dictionary _entityOverrides = new Dictionary();
private FeatureEvaluationStrategy _evaluationStrategy;
private string _feature;
private string _project;
private List _removeVariations = new List();
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Min=1, Max=5)]
public List AddOrUpdateVariations
{
get { return this._addOrUpdateVariations; }
set { this._addOrUpdateVariations = value; }
}
// Check to see if AddOrUpdateVariations property is set
internal bool IsSetAddOrUpdateVariations()
{
return this._addOrUpdateVariations != null && this._addOrUpdateVariations.Count > 0;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Min=1, Max=127)]
public string DefaultVariation
{
get { return this._defaultVariation; }
set { this._defaultVariation = value; }
}
// Check to see if DefaultVariation property is set
internal bool IsSetDefaultVariation()
{
return this._defaultVariation != null;
}
///
/// Gets and sets the property Description.
///
/// An optional description of the feature.
///
///
[AWSProperty(Min=0, Max=160)]
public string Description
{
get { return this._description; }
set { this._description = value; }
}
// Check to see if Description property is set
internal bool IsSetDescription()
{
return this._description != null;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Min=0, Max=2500)]
public Dictionary EntityOverrides
{
get { return this._entityOverrides; }
set { this._entityOverrides = value; }
}
// Check to see if EntityOverrides property is set
internal bool IsSetEntityOverrides()
{
return this._entityOverrides != null && this._entityOverrides.Count > 0;
}
///
/// Gets and sets the property 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.
///
///
public FeatureEvaluationStrategy EvaluationStrategy
{
get { return this._evaluationStrategy; }
set { this._evaluationStrategy = value; }
}
// Check to see if EvaluationStrategy property is set
internal bool IsSetEvaluationStrategy()
{
return this._evaluationStrategy != null;
}
///
/// Gets and sets the property Feature.
///
/// The name of the feature to be updated.
///
///
[AWSProperty(Required=true, Min=1, Max=127)]
public string Feature
{
get { return this._feature; }
set { this._feature = value; }
}
// Check to see if Feature property is set
internal bool IsSetFeature()
{
return this._feature != null;
}
///
/// Gets and sets the property Project.
///
/// The name or ARN of the project that contains the feature to be updated.
///
///
[AWSProperty(Required=true, Min=0, Max=2048)]
public string Project
{
get { return this._project; }
set { this._project = value; }
}
// Check to see if Project property is set
internal bool IsSetProject()
{
return this._project != null;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Min=0, Max=5)]
public List RemoveVariations
{
get { return this._removeVariations; }
set { this._removeVariations = value; }
}
// Check to see if RemoveVariations property is set
internal bool IsSetRemoveVariations()
{
return this._removeVariations != null && this._removeVariations.Count > 0;
}
}
}