import { Command as $Command } from "@smithy/smithy-client"; import type { MetadataBearer as __MetadataBearer } from "@smithy/types"; import type { EvidentlyClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../EvidentlyClient"; import type { EvaluateFeatureRequest, EvaluateFeatureResponse } from "../models/models_0"; /** * @public */ export type { __MetadataBearer }; export { $Command }; /** * @public * * The input for {@link EvaluateFeatureCommand}. */ export interface EvaluateFeatureCommandInput extends EvaluateFeatureRequest { } /** * @public * * The output of {@link EvaluateFeatureCommand}. */ export interface EvaluateFeatureCommandOutput extends EvaluateFeatureResponse, __MetadataBearer { } declare const EvaluateFeatureCommand_base: { new (input: EvaluateFeatureCommandInput): import("@smithy/smithy-client").CommandImpl; new (input: EvaluateFeatureCommandInput): import("@smithy/smithy-client").CommandImpl; getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions; }; /** *

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.

* * @deprecated AWS CloudWatch Evidently has been deprecated since 11/17/2025. * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { EvidentlyClient, EvaluateFeatureCommand } from "@aws-sdk/client-evidently"; // ES Modules import * // const { EvidentlyClient, EvaluateFeatureCommand } = require("@aws-sdk/client-evidently"); // CommonJS import * // import type { EvidentlyClientConfig } from "@aws-sdk/client-evidently"; * const config = {}; // type is EvidentlyClientConfig * const client = new EvidentlyClient(config); * const input = { // EvaluateFeatureRequest * project: "STRING_VALUE", // required * feature: "STRING_VALUE", // required * entityId: "STRING_VALUE", // required * evaluationContext: "STRING_VALUE", * }; * const command = new EvaluateFeatureCommand(input); * const response = await client.send(command); * // { // EvaluateFeatureResponse * // variation: "STRING_VALUE", * // value: { // VariableValue Union: only one key present * // boolValue: true || false, * // stringValue: "STRING_VALUE", * // longValue: Number("long"), * // doubleValue: Number("double"), * // }, * // reason: "STRING_VALUE", * // details: "STRING_VALUE", * // }; * * ``` * * @param EvaluateFeatureCommandInput - {@link EvaluateFeatureCommandInput} * @returns {@link EvaluateFeatureCommandOutput} * @see {@link EvaluateFeatureCommandInput} for command's `input` shape. * @see {@link EvaluateFeatureCommandOutput} for command's `response` shape. * @see {@link EvidentlyClientResolvedConfig | config} for EvidentlyClient's `config` shape. * * @throws {@link AccessDeniedException} (client fault) *

You do not have sufficient permissions to perform this action.

* * @throws {@link ResourceNotFoundException} (client fault) *

The request references a resource that does not exist.

* * @throws {@link ThrottlingException} (client fault) *

The request was denied because of request throttling. Retry the request.

* * @throws {@link ValidationException} (client fault) *

The value of a parameter in the request caused an error.

* * @throws {@link EvidentlyServiceException} *

Base exception class for all service exceptions from Evidently service.

* * * @public */ export declare class EvaluateFeatureCommand extends EvaluateFeatureCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: EvaluateFeatureRequest; output: EvaluateFeatureResponse; }; sdk: { input: EvaluateFeatureCommandInput; output: EvaluateFeatureCommandOutput; }; }; }