/*
* 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 EvaluateFeature operation.
/// This operation assigns a feature variation to one given user session. You pass in
/// an entityID
that represents the user. Evidently then checks the evaluation
/// rules and assigns the variation.
///
///
///
/// The first rules that are evaluated are the override rules. If the user's entityID
/// matches an override rule, the user is served the variation specified by that rule.
///
///
///
/// If there is a current launch with this feature that uses segment overrides, and if
/// the user session's evaluationContext
matches a segment rule defined in
/// a segment override, the configuration in the segment overrides is used. For more information
/// about segments, see CreateSegment
/// and Use
/// segments to focus your audience.
///
///
///
/// If there is a launch with no segment overrides, the user might be assigned to a variation
/// in the launch. The chance of this depends on the percentage of users that are allocated
/// to that launch. If the user is enrolled in the launch, the variation they are served
/// depends on the allocation of the various feature variations used for the launch.
///
///
///
/// If the user is not assigned to a launch, and there is an ongoing experiment for this
/// feature, the user might be assigned to a variation in the experiment. The chance of
/// this depends on the percentage of users that are allocated to that experiment.
///
///
///
/// If the experiment uses a segment, then only user sessions with evaluationContext
/// values that match the segment rule are used in the experiment.
///
///
///
/// If the user is enrolled in the experiment, the variation they are served depends on
/// the allocation of the various feature variations used for the experiment.
///
///
///
/// If the user is not assigned to a launch or experiment, they are served the default
/// variation.
///
///
public partial class EvaluateFeatureRequest : AmazonCloudWatchEvidentlyRequest
{
private string _entityId;
private string _evaluationContext;
private string _feature;
private string _project;
///
/// Gets and sets the property EntityId.
///
/// An internal ID that represents a unique user of the application. This entityID
/// is checked against any override rules assigned for this feature.
///
///
[AWSProperty(Required=true, Min=1, Max=512)]
public string EntityId
{
get { return this._entityId; }
set { this._entityId = value; }
}
// Check to see if EntityId property is set
internal bool IsSetEntityId()
{
return this._entityId != null;
}
///
/// Gets and sets the property EvaluationContext.
///
/// A JSON object of attributes that you can optionally pass in as part of the evaluation
/// event sent to Evidently from the user session. Evidently can use this value to match
/// user sessions with defined audience segments. For more information, see Use
/// segments to focus your audience.
///
///
///
/// If you include this parameter, the value must be a JSON object. A JSON array is not
/// supported.
///
///
public string EvaluationContext
{
get { return this._evaluationContext; }
set { this._evaluationContext = value; }
}
// Check to see if EvaluationContext property is set
internal bool IsSetEvaluationContext()
{
return this._evaluationContext != null;
}
///
/// Gets and sets the property Feature.
///
/// The name of the feature being evaluated.
///
///
[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 this feature.
///
///
[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;
}
}
}