aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
1,068 lines • 77.7 kB
TypeScript
import * as cdk from "../../core/lib";
import * as constructs from "constructs";
import * as cfn_parse from "../../core/lib/helpers-internal";
import { ExperimentReference, FeatureReference, IExperimentRef, IFeatureRef, ILaunchRef, IProjectRef, ISegmentRef, LaunchReference, ProjectReference, SegmentReference } from "../../interfaces/generated/aws-evidently-interfaces.generated";
import { aws_evidently as evidentlyRefs } from "../../interfaces";
/**
* Creates or updates an Evidently *experiment* .
*
* Before you create an experiment, you must create the feature to use for the experiment.
*
* An experiment helps you make feature design decisions based on evidence and data. An experiment can test as many as five variations at once. Evidently collects experiment data and analyzes it by statistical methods, and provides clear recommendations about which variations perform better.
*
* @cloudformationResource AWS::Evidently::Experiment
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html
*/
export declare class CfnExperiment extends cdk.CfnResource implements cdk.IInspectable, IExperimentRef, cdk.ITaggable {
/**
* The CloudFormation resource type name for this resource class.
*/
static readonly CFN_RESOURCE_TYPE_NAME: string;
/**
* Build a CfnExperiment from CloudFormation properties
*
* A factory method that creates a new instance of this class from an object
* containing the CloudFormation properties of this resource.
* Used in the @aws-cdk/cloudformation-include module.
*
* @internal
*/
static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnExperiment;
/**
* Checks whether the given object is a CfnExperiment
*/
static isCfnExperiment(x: any): x is CfnExperiment;
static arnForExperiment(resource: IExperimentRef): string;
/**
* An optional description of the experiment.
*/
private _description?;
/**
* An array of structures that defines the metrics used for the experiment, and whether a higher or lower value for each metric is the goal.
*/
private _metricGoals;
/**
* A name for the new experiment.
*/
private _name;
/**
* A structure that contains the configuration of which variation to use as the "control" version.
*/
private _onlineAbConfig;
/**
* The name or the ARN of the project where this experiment is to be created.
*/
private _project;
/**
* When Evidently assigns a particular user session to an experiment, it must use a randomization ID to determine which variation the user session is served.
*/
private _randomizationSalt?;
/**
* Set this to `true` to remove the segment that is associated with this experiment.
*/
private _removeSegment?;
/**
* A structure that you can use to start and stop the experiment.
*/
private _runningStatus?;
/**
* The portion of the available audience that you want to allocate to this experiment, in thousandths of a percent.
*/
private _samplingRate?;
/**
* Specifies an audience *segment* to use in the experiment.
*/
private _segment?;
/**
* Tag Manager which manages the tags for this resource
*/
readonly tags: cdk.TagManager;
/**
* Assigns one or more tags (key-value pairs) to the experiment.
*/
private _tagsRaw?;
/**
* An array of structures that describe the configuration of each feature variation used in the experiment.
*/
private _treatments;
/**
* Create a new `AWS::Evidently::Experiment`.
*
* @param scope Scope in which this resource is defined
* @param id Construct identifier for this resource (unique in its scope)
* @param props Resource properties
*/
constructor(scope: constructs.Construct, id: string, props: CfnExperimentProps);
get experimentRef(): ExperimentReference;
/**
* An optional description of the experiment.
*/
get description(): string | undefined;
/**
* An optional description of the experiment.
*/
set description(value: string | undefined);
/**
* An array of structures that defines the metrics used for the experiment, and whether a higher or lower value for each metric is the goal.
*/
get metricGoals(): Array<cdk.IResolvable | CfnExperiment.MetricGoalObjectProperty> | cdk.IResolvable;
/**
* An array of structures that defines the metrics used for the experiment, and whether a higher or lower value for each metric is the goal.
*/
set metricGoals(value: Array<cdk.IResolvable | CfnExperiment.MetricGoalObjectProperty> | cdk.IResolvable);
/**
* A name for the new experiment.
*/
get name(): string;
/**
* A name for the new experiment.
*/
set name(value: string);
/**
* A structure that contains the configuration of which variation to use as the "control" version.
*/
get onlineAbConfig(): cdk.IResolvable | CfnExperiment.OnlineAbConfigObjectProperty;
/**
* A structure that contains the configuration of which variation to use as the "control" version.
*/
set onlineAbConfig(value: cdk.IResolvable | CfnExperiment.OnlineAbConfigObjectProperty);
/**
* The name or the ARN of the project where this experiment is to be created.
*/
get project(): string;
/**
* The name or the ARN of the project where this experiment is to be created.
*/
set project(value: string);
/**
* When Evidently assigns a particular user session to an experiment, it must use a randomization ID to determine which variation the user session is served.
*/
get randomizationSalt(): string | undefined;
/**
* When Evidently assigns a particular user session to an experiment, it must use a randomization ID to determine which variation the user session is served.
*/
set randomizationSalt(value: string | undefined);
/**
* Set this to `true` to remove the segment that is associated with this experiment.
*/
get removeSegment(): boolean | cdk.IResolvable | undefined;
/**
* Set this to `true` to remove the segment that is associated with this experiment.
*/
set removeSegment(value: boolean | cdk.IResolvable | undefined);
/**
* A structure that you can use to start and stop the experiment.
*/
get runningStatus(): cdk.IResolvable | CfnExperiment.RunningStatusObjectProperty | undefined;
/**
* A structure that you can use to start and stop the experiment.
*/
set runningStatus(value: cdk.IResolvable | CfnExperiment.RunningStatusObjectProperty | undefined);
/**
* The portion of the available audience that you want to allocate to this experiment, in thousandths of a percent.
*/
get samplingRate(): number | undefined;
/**
* The portion of the available audience that you want to allocate to this experiment, in thousandths of a percent.
*/
set samplingRate(value: number | undefined);
/**
* Specifies an audience *segment* to use in the experiment.
*/
get segment(): string | undefined;
/**
* Specifies an audience *segment* to use in the experiment.
*/
set segment(value: string | undefined);
/**
* Assigns one or more tags (key-value pairs) to the experiment.
*/
get tagsRaw(): Array<cdk.CfnTag> | undefined;
/**
* Assigns one or more tags (key-value pairs) to the experiment.
*/
set tagsRaw(value: Array<cdk.CfnTag> | undefined);
/**
* An array of structures that describe the configuration of each feature variation used in the experiment.
*/
get treatments(): Array<cdk.IResolvable | CfnExperiment.TreatmentObjectProperty> | cdk.IResolvable;
/**
* An array of structures that describe the configuration of each feature variation used in the experiment.
*/
set treatments(value: Array<cdk.IResolvable | CfnExperiment.TreatmentObjectProperty> | cdk.IResolvable);
/**
* The ARN of the experiment. For example, `arn:aws:evidently:us-west-2:0123455678912:project/myProject/experiment/myExperiment`
*
* @cloudformationAttribute Arn
*/
get attrArn(): string;
protected get cfnProperties(): Record<string, any>;
/**
* Examines the CloudFormation resource and discloses attributes
*
* @param inspector tree inspector to collect and process attributes
*/
inspect(inspector: cdk.TreeInspector): void;
protected renderProperties(props: Record<string, any>): Record<string, any>;
}
export declare namespace CfnExperiment {
/**
* Use this structure to start and stop the experiment.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-runningstatusobject.html
*/
interface RunningStatusObjectProperty {
/**
* If you are using CloudFormation to start the experiment, use this field to specify when the experiment is to end.
*
* The format is as a UNIX timestamp. For more information about this format, see [The Current Epoch Unix Timestamp](https://docs.aws.amazon.com/https://www.unixtimestamp.com/index.php) .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-runningstatusobject.html#cfn-evidently-experiment-runningstatusobject-analysiscompletetime
*/
readonly analysisCompleteTime?: string;
/**
* If you are using CloudFormation to stop this experiment, specify either `COMPLETED` or `CANCELLED` here to indicate how to classify this experiment.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-runningstatusobject.html#cfn-evidently-experiment-runningstatusobject-desiredstate
*/
readonly desiredState?: string;
/**
* If you are using CloudFormation to stop this experiment, this is an optional field that you can use to record why the experiment is being stopped or cancelled.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-runningstatusobject.html#cfn-evidently-experiment-runningstatusobject-reason
*/
readonly reason?: string;
/**
* To start the experiment now, specify `START` for this parameter.
*
* If this experiment is currently running and you want to stop it now, specify `STOP` .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-runningstatusobject.html#cfn-evidently-experiment-runningstatusobject-status
*/
readonly status: string;
}
/**
* Use this structure to tell Evidently whether higher or lower values are desired for a metric that is used in an experiment.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-metricgoalobject.html
*/
interface MetricGoalObjectProperty {
/**
* `INCREASE` means that a variation with a higher number for this metric is performing better.
*
* `DECREASE` means that a variation with a lower number for this metric is performing better.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-metricgoalobject.html#cfn-evidently-experiment-metricgoalobject-desiredchange
*/
readonly desiredChange: string;
/**
* The entity, such as a user or session, that does an action that causes a metric value to be recorded.
*
* An example is `userDetails.userID` .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-metricgoalobject.html#cfn-evidently-experiment-metricgoalobject-entityidkey
*/
readonly entityIdKey: string;
/**
* The EventBridge event pattern that defines how the metric is recorded.
*
* For more information about EventBridge event patterns, see [Amazon EventBridge event patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html) .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-metricgoalobject.html#cfn-evidently-experiment-metricgoalobject-eventpattern
*/
readonly eventPattern?: string;
/**
* A name for the metric.
*
* It can include up to 255 characters.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-metricgoalobject.html#cfn-evidently-experiment-metricgoalobject-metricname
*/
readonly metricName: string;
/**
* A label for the units that the metric is measuring.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-metricgoalobject.html#cfn-evidently-experiment-metricgoalobject-unitlabel
*/
readonly unitLabel?: string;
/**
* The JSON path to reference the numerical metric value in the event.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-metricgoalobject.html#cfn-evidently-experiment-metricgoalobject-valuekey
*/
readonly valueKey: string;
}
/**
* A structure that contains the configuration of which variation to use as the "control" version.
*
* The "control" version is used for comparison with other variations. This structure also specifies how much experiment traffic is allocated to each variation.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-onlineabconfigobject.html
*/
interface OnlineAbConfigObjectProperty {
/**
* The name of the variation that is to be the default variation that the other variations are compared to.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-onlineabconfigobject.html#cfn-evidently-experiment-onlineabconfigobject-controltreatmentname
*/
readonly controlTreatmentName?: string;
/**
* A set of key-value pairs.
*
* The keys are treatment names, and the values are the portion of experiment traffic to be assigned to that treatment. Specify the traffic portion in thousandths of a percent, so 20,000 for a variation would allocate 20% of the experiment traffic to that variation.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-onlineabconfigobject.html#cfn-evidently-experiment-onlineabconfigobject-treatmentweights
*/
readonly treatmentWeights?: Array<cdk.IResolvable | CfnExperiment.TreatmentToWeightProperty> | cdk.IResolvable;
}
/**
* This structure defines how much experiment traffic to allocate to one treatment used in the experiment.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmenttoweight.html
*/
interface TreatmentToWeightProperty {
/**
* The portion of experiment traffic to allocate to this treatment.
*
* Specify the traffic portion in thousandths of a percent, so 20,000 allocated to a treatment would allocate 20% of the experiment traffic to that treatment.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmenttoweight.html#cfn-evidently-experiment-treatmenttoweight-splitweight
*/
readonly splitWeight: number;
/**
* The name of the treatment.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmenttoweight.html#cfn-evidently-experiment-treatmenttoweight-treatment
*/
readonly treatment: string;
}
/**
* A structure that defines one treatment in an experiment.
*
* A treatment is a variation of the feature that you are including in the experiment.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmentobject.html
*/
interface TreatmentObjectProperty {
/**
* The description of the treatment.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmentobject.html#cfn-evidently-experiment-treatmentobject-description
*/
readonly description?: string;
/**
* The name of the feature for this experiment.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmentobject.html#cfn-evidently-experiment-treatmentobject-feature
*/
readonly feature: string;
/**
* A name for this treatment.
*
* It can include up to 127 characters.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmentobject.html#cfn-evidently-experiment-treatmentobject-treatmentname
*/
readonly treatmentName: string;
/**
* The name of the variation to use for this treatment.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-experiment-treatmentobject.html#cfn-evidently-experiment-treatmentobject-variation
*/
readonly variation: string;
}
}
/**
* Properties for defining a `CfnExperiment`
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html
*/
export interface CfnExperimentProps {
/**
* An optional description of the experiment.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html#cfn-evidently-experiment-description
*/
readonly description?: string;
/**
* An array of structures that defines the metrics used for the experiment, and whether a higher or lower value for each metric is the goal.
*
* You can use up to three metrics in an experiment.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html#cfn-evidently-experiment-metricgoals
*/
readonly metricGoals: Array<cdk.IResolvable | CfnExperiment.MetricGoalObjectProperty> | cdk.IResolvable;
/**
* A name for the new experiment.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html#cfn-evidently-experiment-name
*/
readonly name: string;
/**
* A structure that contains the configuration of which variation to use as the "control" version.
*
* The "control" version is used for comparison with other variations. This structure also specifies how much experiment traffic is allocated to each variation.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html#cfn-evidently-experiment-onlineabconfig
*/
readonly onlineAbConfig: cdk.IResolvable | CfnExperiment.OnlineAbConfigObjectProperty;
/**
* The name or the ARN of the project where this experiment is to be created.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html#cfn-evidently-experiment-project
*/
readonly project: string;
/**
* When Evidently assigns a particular user session to an experiment, it must use a randomization ID to determine which variation the user session is served.
*
* This randomization ID is a combination of the entity ID and `randomizationSalt` . If you omit `randomizationSalt` , Evidently uses the experiment name as the `randomizationSalt` .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html#cfn-evidently-experiment-randomizationsalt
*/
readonly randomizationSalt?: string;
/**
* Set this to `true` to remove the segment that is associated with this experiment.
*
* You can't use this parameter if the experiment is currently running.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html#cfn-evidently-experiment-removesegment
*/
readonly removeSegment?: boolean | cdk.IResolvable;
/**
* A structure that you can use to start and stop the experiment.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html#cfn-evidently-experiment-runningstatus
*/
readonly runningStatus?: cdk.IResolvable | CfnExperiment.RunningStatusObjectProperty;
/**
* The portion of the available audience that you want to allocate to this experiment, in thousandths of a percent.
*
* The available audience is the total audience minus the audience that you have allocated to overrides or current launches of this feature.
*
* This is represented in thousandths of a percent. For example, specify 10,000 to allocate 10% of the available audience.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html#cfn-evidently-experiment-samplingrate
*/
readonly samplingRate?: number;
/**
* Specifies an audience *segment* to use in the experiment.
*
* When a segment is used in an experiment, only user sessions that match the segment pattern are used in the experiment.
*
* For more information, see [Segment rule pattern syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Evidently-segments.html#CloudWatch-Evidently-segments-syntax) .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html#cfn-evidently-experiment-segment
*/
readonly segment?: string;
/**
* Assigns one or more tags (key-value pairs) to the experiment.
*
* Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.
*
* Tags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters.
*
* You can associate as many as 50 tags with an experiment.
*
* For more information, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html#cfn-evidently-experiment-tags
*/
readonly tags?: Array<cdk.CfnTag>;
/**
* An array of structures that describe the configuration of each feature variation used in the experiment.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-experiment.html#cfn-evidently-experiment-treatments
*/
readonly treatments: Array<cdk.IResolvable | CfnExperiment.TreatmentObjectProperty> | cdk.IResolvable;
}
/**
* Creates or updates an Evidently *feature* that you want to launch or test.
*
* You can define up to five variations of a feature, and use these variations in your launches and experiments. A feature must be created in a project. For information about creating a project, see [CreateProject](https://docs.aws.amazon.com/cloudwatchevidently/latest/APIReference/API_CreateProject.html) .
*
* @cloudformationResource AWS::Evidently::Feature
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html
*/
export declare class CfnFeature extends cdk.CfnResource implements cdk.IInspectable, IFeatureRef, cdk.ITaggable {
/**
* The CloudFormation resource type name for this resource class.
*/
static readonly CFN_RESOURCE_TYPE_NAME: string;
/**
* Build a CfnFeature from CloudFormation properties
*
* A factory method that creates a new instance of this class from an object
* containing the CloudFormation properties of this resource.
* Used in the @aws-cdk/cloudformation-include module.
*
* @internal
*/
static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnFeature;
/**
* Checks whether the given object is a CfnFeature
*/
static isCfnFeature(x: any): x is CfnFeature;
static arnForFeature(resource: IFeatureRef): string;
/**
* The name of the variation to use as the default variation.
*/
private _defaultVariation?;
/**
* An optional description of the feature.
*/
private _description?;
/**
* Specify users that should always be served a specific variation of a feature.
*/
private _entityOverrides?;
/**
* Specify `ALL_RULES` to activate the traffic allocation specified by any ongoing launches or experiments.
*/
private _evaluationStrategy?;
/**
* The name for the feature.
*/
private _name;
/**
* The name or ARN of the project that is to contain the new feature.
*/
private _project;
/**
* Tag Manager which manages the tags for this resource
*/
readonly tags: cdk.TagManager;
/**
* Assigns one or more tags (key-value pairs) to the feature.
*/
private _tagsRaw?;
/**
* An array of structures that contain the configuration of the feature's different variations.
*/
private _variations;
/**
* Create a new `AWS::Evidently::Feature`.
*
* @param scope Scope in which this resource is defined
* @param id Construct identifier for this resource (unique in its scope)
* @param props Resource properties
*/
constructor(scope: constructs.Construct, id: string, props: CfnFeatureProps);
get featureRef(): FeatureReference;
/**
* The name of the variation to use as the default variation.
*/
get defaultVariation(): string | undefined;
/**
* The name of the variation to use as the default variation.
*/
set defaultVariation(value: string | undefined);
/**
* An optional description of the feature.
*/
get description(): string | undefined;
/**
* An optional description of the feature.
*/
set description(value: string | undefined);
/**
* Specify users that should always be served a specific variation of a feature.
*/
get entityOverrides(): Array<CfnFeature.EntityOverrideProperty | cdk.IResolvable> | cdk.IResolvable | undefined;
/**
* Specify users that should always be served a specific variation of a feature.
*/
set entityOverrides(value: Array<CfnFeature.EntityOverrideProperty | cdk.IResolvable> | cdk.IResolvable | undefined);
/**
* Specify `ALL_RULES` to activate the traffic allocation specified by any ongoing launches or experiments.
*/
get evaluationStrategy(): string | undefined;
/**
* Specify `ALL_RULES` to activate the traffic allocation specified by any ongoing launches or experiments.
*/
set evaluationStrategy(value: string | undefined);
/**
* The name for the feature.
*/
get name(): string;
/**
* The name for the feature.
*/
set name(value: string);
/**
* The name or ARN of the project that is to contain the new feature.
*/
get project(): string;
/**
* The name or ARN of the project that is to contain the new feature.
*/
set project(value: string);
/**
* Assigns one or more tags (key-value pairs) to the feature.
*/
get tagsRaw(): Array<cdk.CfnTag> | undefined;
/**
* Assigns one or more tags (key-value pairs) to the feature.
*/
set tagsRaw(value: Array<cdk.CfnTag> | undefined);
/**
* An array of structures that contain the configuration of the feature's different variations.
*/
get variations(): Array<cdk.IResolvable | CfnFeature.VariationObjectProperty> | cdk.IResolvable;
/**
* An array of structures that contain the configuration of the feature's different variations.
*/
set variations(value: Array<cdk.IResolvable | CfnFeature.VariationObjectProperty> | cdk.IResolvable);
/**
* The ARN of the feature. For example, `arn:aws:evidently:us-west-2:0123455678912:project/myProject/feature/myFeature` .
*
* @cloudformationAttribute Arn
*/
get attrArn(): string;
protected get cfnProperties(): Record<string, any>;
/**
* Examines the CloudFormation resource and discloses attributes
*
* @param inspector tree inspector to collect and process attributes
*/
inspect(inspector: cdk.TreeInspector): void;
protected renderProperties(props: Record<string, any>): Record<string, any>;
}
export declare namespace CfnFeature {
/**
* A set of key-value pairs that specify users who should always be served a specific variation of a feature.
*
* Each key specifies a user using their user ID, account ID, or some other identifier. The value specifies the name of the variation that the user is to be served.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-entityoverride.html
*/
interface EntityOverrideProperty {
/**
* The entity ID to be served the variation specified in `Variation` .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-entityoverride.html#cfn-evidently-feature-entityoverride-entityid
*/
readonly entityId?: string;
/**
* The name of the variation to serve to the user session that matches the `EntityId` .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-entityoverride.html#cfn-evidently-feature-entityoverride-variation
*/
readonly variation?: string;
}
/**
* This structure contains the name and variation value of one variation of a feature.
*
* It can contain only one of the following parameters: `BooleanValue` , `DoubleValue` , `LongValue` or `StringValue` .
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-variationobject.html
*/
interface VariationObjectProperty {
/**
* The value assigned to this variation, if the variation type is boolean.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-variationobject.html#cfn-evidently-feature-variationobject-booleanvalue
*/
readonly booleanValue?: boolean | cdk.IResolvable;
/**
* The value assigned to this variation, if the variation type is a double.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-variationobject.html#cfn-evidently-feature-variationobject-doublevalue
*/
readonly doubleValue?: number;
/**
* The value assigned to this variation, if the variation type is a long.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-variationobject.html#cfn-evidently-feature-variationobject-longvalue
*/
readonly longValue?: number;
/**
* The value assigned to this variation, if the variation type is a string.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-variationobject.html#cfn-evidently-feature-variationobject-stringvalue
*/
readonly stringValue?: string;
/**
* A name for the variation.
*
* It can include up to 127 characters.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-feature-variationobject.html#cfn-evidently-feature-variationobject-variationname
*/
readonly variationName: string;
}
}
/**
* Properties for defining a `CfnFeature`
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html
*/
export interface CfnFeatureProps {
/**
* 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.
*
* This variation must also be listed in the `Variations` structure.
*
* If you omit `DefaultVariation` , the first variation listed in the `Variations` structure is used as the default variation.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html#cfn-evidently-feature-defaultvariation
*/
readonly defaultVariation?: string;
/**
* An optional description of the feature.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html#cfn-evidently-feature-description
*/
readonly description?: string;
/**
* Specify 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.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html#cfn-evidently-feature-entityoverrides
*/
readonly entityOverrides?: Array<CfnFeature.EntityOverrideProperty | cdk.IResolvable> | cdk.IResolvable;
/**
* 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.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html#cfn-evidently-feature-evaluationstrategy
*/
readonly evaluationStrategy?: string;
/**
* The name for the feature.
*
* It can include up to 127 characters.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html#cfn-evidently-feature-name
*/
readonly name: string;
/**
* The name or ARN of the project that is to contain the new feature.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html#cfn-evidently-feature-project
*/
readonly project: evidentlyRefs.IProjectRef | string;
/**
* Assigns one or more tags (key-value pairs) to the feature.
*
* Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.
*
* Tags don't have any semantic meaning to AWS and are interpreted strictly as strings of characters.
*
* You can associate as many as 50 tags with a feature.
*
* For more information, see [Tagging AWS resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html#cfn-evidently-feature-tags
*/
readonly tags?: Array<cdk.CfnTag>;
/**
* An array of structures that contain the configuration of the feature's different variations.
*
* Each `VariationObject` in the `Variations` array for a feature must have the same type of value ( `BooleanValue` , `DoubleValue` , `LongValue` or `StringValue` ).
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-feature.html#cfn-evidently-feature-variations
*/
readonly variations: Array<cdk.IResolvable | CfnFeature.VariationObjectProperty> | cdk.IResolvable;
}
/**
* Creates or updates a *launch* of a given feature.
*
* Before you create a launch, you must create the feature to use for the launch.
*
* You can use a launch to safely validate new features by serving them to a specified percentage of your users while you roll out the feature. You can monitor the performance of the new feature to help you decide when to ramp up traffic to more users. This helps you reduce risk and identify unintended consequences before you fully launch the feature.
*
* @cloudformationResource AWS::Evidently::Launch
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-evidently-launch.html
*/
export declare class CfnLaunch extends cdk.CfnResource implements cdk.IInspectable, ILaunchRef, cdk.ITaggable {
/**
* The CloudFormation resource type name for this resource class.
*/
static readonly CFN_RESOURCE_TYPE_NAME: string;
/**
* Build a CfnLaunch from CloudFormation properties
*
* A factory method that creates a new instance of this class from an object
* containing the CloudFormation properties of this resource.
* Used in the @aws-cdk/cloudformation-include module.
*
* @internal
*/
static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnLaunch;
/**
* Checks whether the given object is a CfnLaunch
*/
static isCfnLaunch(x: any): x is CfnLaunch;
static arnForLaunch(resource: ILaunchRef): string;
/**
* An optional description for the launch.
*/
private _description?;
/**
* A structure that you can use to start and stop the launch.
*/
private _executionStatus?;
/**
* An array of structures that contains the feature and variations that are to be used for the launch.
*/
private _groups;
/**
* An array of structures that define the metrics that will be used to monitor the launch performance.
*/
private _metricMonitors?;
/**
* The name for the launch.
*/
private _name;
/**
* The name or ARN of the project that you want to create the launch in.
*/
private _project;
/**
* When Evidently assigns a particular user session to a launch, it must use a randomization ID to determine which variation the user session is served.
*/
private _randomizationSalt?;
/**
* An array of structures that define the traffic allocation percentages among the feature variations during each step of the launch.
*/
private _scheduledSplitsConfig;
/**
* Tag Manager which manages the tags for this resource
*/
readonly tags: cdk.TagManager;
/**
* Assigns one or more tags (key-value pairs) to the launch.
*/
private _tagsRaw?;
/**
* Create a new `AWS::Evidently::Launch`.
*
* @param scope Scope in which this resource is defined
* @param id Construct identifier for this resource (unique in its scope)
* @param props Resource properties
*/
constructor(scope: constructs.Construct, id: string, props: CfnLaunchProps);
get launchRef(): LaunchReference;
/**
* An optional description for the launch.
*/
get description(): string | undefined;
/**
* An optional description for the launch.
*/
set description(value: string | undefined);
/**
* A structure that you can use to start and stop the launch.
*/
get executionStatus(): CfnLaunch.ExecutionStatusObjectProperty | cdk.IResolvable | undefined;
/**
* A structure that you can use to start and stop the launch.
*/
set executionStatus(value: CfnLaunch.ExecutionStatusObjectProperty | cdk.IResolvable | undefined);
/**
* An array of structures that contains the feature and variations that are to be used for the launch.
*/
get groups(): Array<cdk.IResolvable | CfnLaunch.LaunchGroupObjectProperty> | cdk.IResolvable;
/**
* An array of structures that contains the feature and variations that are to be used for the launch.
*/
set groups(value: Array<cdk.IResolvable | CfnLaunch.LaunchGroupObjectProperty> | cdk.IResolvable);
/**
* An array of structures that define the metrics that will be used to monitor the launch performance.
*/
get metricMonitors(): Array<cdk.IResolvable | CfnLaunch.MetricDefinitionObjectProperty> | cdk.IResolvable | undefined;
/**
* An array of structures that define the metrics that will be used to monitor the launch performance.
*/
set metricMonitors(value: Array<cdk.IResolvable | CfnLaunch.MetricDefinitionObjectProperty> | cdk.IResolvable | undefined);
/**
* The name for the launch.
*/
get name(): string;
/**
* The name for the launch.
*/
set name(value: string);
/**
* The name or ARN of the project that you want to create the launch in.
*/
get project(): string;
/**
* The name or ARN of the project that you want to create the launch in.
*/
set project(value: string);
/**
* When Evidently assigns a particular user session to a launch, it must use a randomization ID to determine which variation the user session is served.
*/
get randomizationSalt(): string | undefined;
/**
* When Evidently assigns a particular user session to a launch, it must use a randomization ID to determine which variation the user session is served.
*/
set randomizationSalt(value: string | undefined);
/**
* An array of structures that define the traffic allocation percentages among the feature variations during each step of the launch.
*/
get scheduledSplitsConfig(): Array<cdk.IResolvable | CfnLaunch.StepConfigProperty> | cdk.IResolvable;
/**
* An array of structures that define the traffic allocation percentages among the feature variations during each step of the launch.
*/
set scheduledSplitsConfig(value: Array<cdk.IResolvable | CfnLaunch.StepConfigProperty> | cdk.IResolvable);
/**
* Assigns one or more tags (key-value pairs) to the launch.
*/
get tagsRaw(): Array<cdk.CfnTag> | undefined;
/**
* Assigns one or more tags (key-value pairs) to the launch.
*/
set tagsRaw(value: Array<cdk.CfnTag> | undefined);
/**
* The ARN of the launch. For example, `arn:aws:evidently:us-west-2:0123455678912:project/myProject/launch/myLaunch`
*
* @cloudformationAttribute Arn
*/
get attrArn(): string;
protected get cfnProperties(): Record<string, any>;
/**
* Examines the CloudFormation resource and discloses attributes
*
* @param inspector tree inspector to collect and process attributes
*/
inspect(inspector: cdk.TreeInspector): void;
protected renderProperties(props: Record<string, any>): Record<string, any>;
}
export declare namespace CfnLaunch {
/**
* Use this structure to start and stop the launch.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-executionstatusobject.html
*/
interface ExecutionStatusObjectProperty {
/**
* If you are using CloudFormation to stop this launch, specify either `COMPLETED` or `CANCELLED` here to indicate how to classify this experiment.
*
* If you omit this parameter, the default of `COMPLETED` is used.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-executionstatusobject.html#cfn-evidently-launch-executionstatusobject-desiredstate
*/
readonly desiredState?: string;
/**
* If you are using CloudFormation to stop this launch, this is an optional field that you can use to record why the launch is being stopped or cancelled.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-executionstatusobject.html#cfn-evidently-launch-executionstatusobject-reason
*/
readonly reason?: string;
/**
* To start the launch now, specify `START` for this parameter.
*
* If this launch is currently running and you want to stop it now, specify `STOP` .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-executionstatusobject.html#cfn-evidently-launch-executionstatusobject-status
*/
readonly status: string;
}
/**
* A structure that defines one launch group in a launch.
*
* A launch group is a variation of the feature that you are including in the launch.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-launchgroupobject.html
*/
interface LaunchGroupObjectProperty {
/**
* A description of the launch group.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-launchgroupobject.html#cfn-evidently-launch-launchgroupobject-description
*/
readonly description?: string;
/**
* The feature that this launch is using.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-launchgroupobject.html#cfn-evidently-launch-launchgroupobject-feature
*/
readonly feature: string;
/**
* A name for this launch group.
*
* It can include up to 127 characters.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-launchgroupobject.html#cfn-evidently-launch-launchgroupobject-groupname
*/
readonly groupName: string;
/**
* The feature variation to use for this launch group.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-launchgroupobject.html#cfn-evidently-launch-launchgroupobject-variation
*/
readonly variation: string;
}
/**
* This structure defines a metric that you want to use to evaluate the variations during a launch or experiment.
*
* @struct
* @stability external
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-metricdefinitionobject.html
*/
interface MetricDefinitionObjectProperty {
/**
* The entity, such as a user or session, that does an action that causes a metric value to be recorded.
*
* An example is `userDetails.userID` .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-metricdefinitionobject.html#cfn-evidently-launch-metricdefinitionobject-entityidkey
*/
readonly entityIdKey: string;
/**
* The EventBridge event pattern that defines how the metric is recorded.
*
* For more information about EventBridge event patterns, see [Amazon EventBridge event patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html) .
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-metricdefinitionobject.html#cfn-evidently-launch-metricdefinitionobject-eventpattern
*/
readonly eventPattern?: string;
/**
* A name for the metric.
*
* It can include up to 255 characters.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-metricdefinitionobject.html#cfn-evidently-launch-metricdefinitionobject-metricname
*/
readonly metricName: string;
/**
* A label for the units that the metric is measuring.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-evidently-launch-metricdefinitionobject.html#cfn-evidently-launch-metricdefinitionobject-unitlabel
*/
readonly unitLabel?: string;
/**
* The value that is tracked to produce the metric.
*
* @see http://docs.aws.amazon.com/AWSCloudFormation/la