/** * 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 #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace CloudWatchEvidently { namespace Model { /** *

A structure containing the configuration details of an * experiment.

See Also:

AWS * API Reference

*/ class Experiment { public: AWS_CLOUDWATCHEVIDENTLY_API Experiment(); AWS_CLOUDWATCHEVIDENTLY_API Experiment(Aws::Utils::Json::JsonView jsonValue); AWS_CLOUDWATCHEVIDENTLY_API Experiment& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_CLOUDWATCHEVIDENTLY_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The ARN of the experiment.

*/ inline const Aws::String& GetArn() const{ return m_arn; } /** *

The ARN of the experiment.

*/ inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } /** *

The ARN of the experiment.

*/ inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } /** *

The ARN of the experiment.

*/ inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } /** *

The ARN of the experiment.

*/ inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } /** *

The ARN of the experiment.

*/ inline Experiment& WithArn(const Aws::String& value) { SetArn(value); return *this;} /** *

The ARN of the experiment.

*/ inline Experiment& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} /** *

The ARN of the experiment.

*/ inline Experiment& WithArn(const char* value) { SetArn(value); return *this;} /** *

The date and time that the experiment is first created.

*/ inline const Aws::Utils::DateTime& GetCreatedTime() const{ return m_createdTime; } /** *

The date and time that the experiment is first created.

*/ inline bool CreatedTimeHasBeenSet() const { return m_createdTimeHasBeenSet; } /** *

The date and time that the experiment is first created.

*/ inline void SetCreatedTime(const Aws::Utils::DateTime& value) { m_createdTimeHasBeenSet = true; m_createdTime = value; } /** *

The date and time that the experiment is first created.

*/ inline void SetCreatedTime(Aws::Utils::DateTime&& value) { m_createdTimeHasBeenSet = true; m_createdTime = std::move(value); } /** *

The date and time that the experiment is first created.

*/ inline Experiment& WithCreatedTime(const Aws::Utils::DateTime& value) { SetCreatedTime(value); return *this;} /** *

The date and time that the experiment is first created.

*/ inline Experiment& WithCreatedTime(Aws::Utils::DateTime&& value) { SetCreatedTime(std::move(value)); return *this;} /** *

A description of the experiment.

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

A description of the experiment.

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

A description of the experiment.

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

A description of the experiment.

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

A description of the experiment.

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

A description of the experiment.

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

A description of the experiment.

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

A description of the experiment.

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

A structure that contains the date and time that the experiment started and * ended.

*/ inline const ExperimentExecution& GetExecution() const{ return m_execution; } /** *

A structure that contains the date and time that the experiment started and * ended.

*/ inline bool ExecutionHasBeenSet() const { return m_executionHasBeenSet; } /** *

A structure that contains the date and time that the experiment started and * ended.

*/ inline void SetExecution(const ExperimentExecution& value) { m_executionHasBeenSet = true; m_execution = value; } /** *

A structure that contains the date and time that the experiment started and * ended.

*/ inline void SetExecution(ExperimentExecution&& value) { m_executionHasBeenSet = true; m_execution = std::move(value); } /** *

A structure that contains the date and time that the experiment started and * ended.

*/ inline Experiment& WithExecution(const ExperimentExecution& value) { SetExecution(value); return *this;} /** *

A structure that contains the date and time that the experiment started and * ended.

*/ inline Experiment& WithExecution(ExperimentExecution&& value) { SetExecution(std::move(value)); return *this;} /** *

The date and time that the experiment was most recently updated.

*/ inline const Aws::Utils::DateTime& GetLastUpdatedTime() const{ return m_lastUpdatedTime; } /** *

The date and time that the experiment was most recently updated.

*/ inline bool LastUpdatedTimeHasBeenSet() const { return m_lastUpdatedTimeHasBeenSet; } /** *

The date and time that the experiment was most recently updated.

*/ inline void SetLastUpdatedTime(const Aws::Utils::DateTime& value) { m_lastUpdatedTimeHasBeenSet = true; m_lastUpdatedTime = value; } /** *

The date and time that the experiment was most recently updated.

*/ inline void SetLastUpdatedTime(Aws::Utils::DateTime&& value) { m_lastUpdatedTimeHasBeenSet = true; m_lastUpdatedTime = std::move(value); } /** *

The date and time that the experiment was most recently updated.

*/ inline Experiment& WithLastUpdatedTime(const Aws::Utils::DateTime& value) { SetLastUpdatedTime(value); return *this;} /** *

The date and time that the experiment was most recently updated.

*/ inline Experiment& WithLastUpdatedTime(Aws::Utils::DateTime&& value) { SetLastUpdatedTime(std::move(value)); return *this;} /** *

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.

*/ inline const Aws::Vector& GetMetricGoals() const{ return m_metricGoals; } /** *

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.

*/ inline bool MetricGoalsHasBeenSet() const { return m_metricGoalsHasBeenSet; } /** *

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.

*/ inline void SetMetricGoals(const Aws::Vector& value) { m_metricGoalsHasBeenSet = true; m_metricGoals = value; } /** *

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.

*/ inline void SetMetricGoals(Aws::Vector&& value) { m_metricGoalsHasBeenSet = true; m_metricGoals = std::move(value); } /** *

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.

*/ inline Experiment& WithMetricGoals(const Aws::Vector& value) { SetMetricGoals(value); return *this;} /** *

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.

*/ inline Experiment& WithMetricGoals(Aws::Vector&& value) { SetMetricGoals(std::move(value)); return *this;} /** *

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.

*/ inline Experiment& AddMetricGoals(const MetricGoal& value) { m_metricGoalsHasBeenSet = true; m_metricGoals.push_back(value); return *this; } /** *

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.

*/ inline Experiment& AddMetricGoals(MetricGoal&& value) { m_metricGoalsHasBeenSet = true; m_metricGoals.push_back(std::move(value)); return *this; } /** *

The name of the experiment.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the experiment.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the experiment.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the experiment.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the experiment.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the experiment.

*/ inline Experiment& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the experiment.

*/ inline Experiment& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the experiment.

*/ inline Experiment& WithName(const char* value) { SetName(value); return *this;} /** *

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.

*/ inline const OnlineAbDefinition& GetOnlineAbDefinition() const{ return m_onlineAbDefinition; } /** *

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.

*/ inline bool OnlineAbDefinitionHasBeenSet() const { return m_onlineAbDefinitionHasBeenSet; } /** *

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.

*/ inline void SetOnlineAbDefinition(const OnlineAbDefinition& value) { m_onlineAbDefinitionHasBeenSet = true; m_onlineAbDefinition = value; } /** *

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.

*/ inline void SetOnlineAbDefinition(OnlineAbDefinition&& value) { m_onlineAbDefinitionHasBeenSet = true; m_onlineAbDefinition = std::move(value); } /** *

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.

*/ inline Experiment& WithOnlineAbDefinition(const OnlineAbDefinition& value) { SetOnlineAbDefinition(value); return *this;} /** *

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.

*/ inline Experiment& WithOnlineAbDefinition(OnlineAbDefinition&& value) { SetOnlineAbDefinition(std::move(value)); return *this;} /** *

The name or ARN of the project that contains this experiment.

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

The name or ARN of the project that contains this experiment.

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

The name or ARN of the project that contains this experiment.

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

The name or ARN of the project that contains this experiment.

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

The name or ARN of the project that contains this experiment.

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

The name or ARN of the project that contains this experiment.

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

The name or ARN of the project that contains this experiment.

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

The name or ARN of the project that contains this experiment.

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

This value is used when Evidently assigns a particular user session to the * experiment. It helps create a randomization ID to determine which variation the * user session is served. This randomization ID is a combination of the entity ID * and randomizationSalt.

*/ inline const Aws::String& GetRandomizationSalt() const{ return m_randomizationSalt; } /** *

This value is used when Evidently assigns a particular user session to the * experiment. It helps create a randomization ID to determine which variation the * user session is served. This randomization ID is a combination of the entity ID * and randomizationSalt.

*/ inline bool RandomizationSaltHasBeenSet() const { return m_randomizationSaltHasBeenSet; } /** *

This value is used when Evidently assigns a particular user session to the * experiment. It helps create a randomization ID to determine which variation the * user session is served. This randomization ID is a combination of the entity ID * and randomizationSalt.

*/ inline void SetRandomizationSalt(const Aws::String& value) { m_randomizationSaltHasBeenSet = true; m_randomizationSalt = value; } /** *

This value is used when Evidently assigns a particular user session to the * experiment. It helps create a randomization ID to determine which variation the * user session is served. This randomization ID is a combination of the entity ID * and randomizationSalt.

*/ inline void SetRandomizationSalt(Aws::String&& value) { m_randomizationSaltHasBeenSet = true; m_randomizationSalt = std::move(value); } /** *

This value is used when Evidently assigns a particular user session to the * experiment. It helps create a randomization ID to determine which variation the * user session is served. This randomization ID is a combination of the entity ID * and randomizationSalt.

*/ inline void SetRandomizationSalt(const char* value) { m_randomizationSaltHasBeenSet = true; m_randomizationSalt.assign(value); } /** *

This value is used when Evidently assigns a particular user session to the * experiment. It helps create a randomization ID to determine which variation the * user session is served. This randomization ID is a combination of the entity ID * and randomizationSalt.

*/ inline Experiment& WithRandomizationSalt(const Aws::String& value) { SetRandomizationSalt(value); return *this;} /** *

This value is used when Evidently assigns a particular user session to the * experiment. It helps create a randomization ID to determine which variation the * user session is served. This randomization ID is a combination of the entity ID * and randomizationSalt.

*/ inline Experiment& WithRandomizationSalt(Aws::String&& value) { SetRandomizationSalt(std::move(value)); return *this;} /** *

This value is used when Evidently assigns a particular user session to the * experiment. It helps create a randomization ID to determine which variation the * user session is served. This randomization ID is a combination of the entity ID * and randomizationSalt.

*/ inline Experiment& WithRandomizationSalt(const char* value) { SetRandomizationSalt(value); return *this;} /** *

In thousandths of a percent, the amount of the available audience that is * allocated to this experiment. 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, so a value of * 10,000 is 10% of the available audience.

*/ inline long long GetSamplingRate() const{ return m_samplingRate; } /** *

In thousandths of a percent, the amount of the available audience that is * allocated to this experiment. 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, so a value of * 10,000 is 10% of the available audience.

*/ inline bool SamplingRateHasBeenSet() const { return m_samplingRateHasBeenSet; } /** *

In thousandths of a percent, the amount of the available audience that is * allocated to this experiment. 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, so a value of * 10,000 is 10% of the available audience.

*/ inline void SetSamplingRate(long long value) { m_samplingRateHasBeenSet = true; m_samplingRate = value; } /** *

In thousandths of a percent, the amount of the available audience that is * allocated to this experiment. 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, so a value of * 10,000 is 10% of the available audience.

*/ inline Experiment& WithSamplingRate(long long value) { SetSamplingRate(value); return *this;} /** *

A structure that contains the time and date that Evidently completed the * analysis of the experiment.

*/ inline const ExperimentSchedule& GetSchedule() const{ return m_schedule; } /** *

A structure that contains the time and date that Evidently completed the * analysis of the experiment.

*/ inline bool ScheduleHasBeenSet() const { return m_scheduleHasBeenSet; } /** *

A structure that contains the time and date that Evidently completed the * analysis of the experiment.

*/ inline void SetSchedule(const ExperimentSchedule& value) { m_scheduleHasBeenSet = true; m_schedule = value; } /** *

A structure that contains the time and date that Evidently completed the * analysis of the experiment.

*/ inline void SetSchedule(ExperimentSchedule&& value) { m_scheduleHasBeenSet = true; m_schedule = std::move(value); } /** *

A structure that contains the time and date that Evidently completed the * analysis of the experiment.

*/ inline Experiment& WithSchedule(const ExperimentSchedule& value) { SetSchedule(value); return *this;} /** *

A structure that contains the time and date that Evidently completed the * analysis of the experiment.

*/ inline Experiment& WithSchedule(ExperimentSchedule&& value) { SetSchedule(std::move(value)); return *this;} /** *

The audience segment being used for the experiment, if a segment is being * used.

*/ inline const Aws::String& GetSegment() const{ return m_segment; } /** *

The audience segment being used for the experiment, if a segment is being * used.

*/ inline bool SegmentHasBeenSet() const { return m_segmentHasBeenSet; } /** *

The audience segment being used for the experiment, if a segment is being * used.

*/ inline void SetSegment(const Aws::String& value) { m_segmentHasBeenSet = true; m_segment = value; } /** *

The audience segment being used for the experiment, if a segment is being * used.

*/ inline void SetSegment(Aws::String&& value) { m_segmentHasBeenSet = true; m_segment = std::move(value); } /** *

The audience segment being used for the experiment, if a segment is being * used.

*/ inline void SetSegment(const char* value) { m_segmentHasBeenSet = true; m_segment.assign(value); } /** *

The audience segment being used for the experiment, if a segment is being * used.

*/ inline Experiment& WithSegment(const Aws::String& value) { SetSegment(value); return *this;} /** *

The audience segment being used for the experiment, if a segment is being * used.

*/ inline Experiment& WithSegment(Aws::String&& value) { SetSegment(std::move(value)); return *this;} /** *

The audience segment being used for the experiment, if a segment is being * used.

*/ inline Experiment& WithSegment(const char* value) { SetSegment(value); return *this;} /** *

The current state of the experiment.

*/ inline const ExperimentStatus& GetStatus() const{ return m_status; } /** *

The current state of the experiment.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The current state of the experiment.

*/ inline void SetStatus(const ExperimentStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The current state of the experiment.

*/ inline void SetStatus(ExperimentStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The current state of the experiment.

*/ inline Experiment& WithStatus(const ExperimentStatus& value) { SetStatus(value); return *this;} /** *

The current state of the experiment.

*/ inline Experiment& WithStatus(ExperimentStatus&& value) { SetStatus(std::move(value)); return *this;} /** *

If the experiment was stopped, this is the string that was entered by the * person who stopped the experiment, to explain why it was stopped.

*/ inline const Aws::String& GetStatusReason() const{ return m_statusReason; } /** *

If the experiment was stopped, this is the string that was entered by the * person who stopped the experiment, to explain why it was stopped.

*/ inline bool StatusReasonHasBeenSet() const { return m_statusReasonHasBeenSet; } /** *

If the experiment was stopped, this is the string that was entered by the * person who stopped the experiment, to explain why it was stopped.

*/ inline void SetStatusReason(const Aws::String& value) { m_statusReasonHasBeenSet = true; m_statusReason = value; } /** *

If the experiment was stopped, this is the string that was entered by the * person who stopped the experiment, to explain why it was stopped.

*/ inline void SetStatusReason(Aws::String&& value) { m_statusReasonHasBeenSet = true; m_statusReason = std::move(value); } /** *

If the experiment was stopped, this is the string that was entered by the * person who stopped the experiment, to explain why it was stopped.

*/ inline void SetStatusReason(const char* value) { m_statusReasonHasBeenSet = true; m_statusReason.assign(value); } /** *

If the experiment was stopped, this is the string that was entered by the * person who stopped the experiment, to explain why it was stopped.

*/ inline Experiment& WithStatusReason(const Aws::String& value) { SetStatusReason(value); return *this;} /** *

If the experiment was stopped, this is the string that was entered by the * person who stopped the experiment, to explain why it was stopped.

*/ inline Experiment& WithStatusReason(Aws::String&& value) { SetStatusReason(std::move(value)); return *this;} /** *

If the experiment was stopped, this is the string that was entered by the * person who stopped the experiment, to explain why it was stopped.

*/ inline Experiment& WithStatusReason(const char* value) { SetStatusReason(value); return *this;} /** *

The list of tag keys and values associated with this experiment.

*/ inline const Aws::Map& GetTags() const{ return m_tags; } /** *

The list of tag keys and values associated with this experiment.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

The list of tag keys and values associated with this experiment.

*/ inline void SetTags(const Aws::Map& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

The list of tag keys and values associated with this experiment.

*/ inline void SetTags(Aws::Map&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

The list of tag keys and values associated with this experiment.

*/ inline Experiment& WithTags(const Aws::Map& value) { SetTags(value); return *this;} /** *

The list of tag keys and values associated with this experiment.

*/ inline Experiment& WithTags(Aws::Map&& value) { SetTags(std::move(value)); return *this;} /** *

The list of tag keys and values associated with this experiment.

*/ inline Experiment& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

The list of tag keys and values associated with this experiment.

*/ inline Experiment& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

The list of tag keys and values associated with this experiment.

*/ inline Experiment& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

The list of tag keys and values associated with this experiment.

*/ inline Experiment& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; } /** *

The list of tag keys and values associated with this experiment.

*/ inline Experiment& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

The list of tag keys and values associated with this experiment.

*/ inline Experiment& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

The list of tag keys and values associated with this experiment.

*/ inline Experiment& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

An array of structures that describe the configuration of each feature * variation used in the experiment.

*/ inline const Aws::Vector& GetTreatments() const{ return m_treatments; } /** *

An array of structures that describe the configuration of each feature * variation used in the experiment.

*/ inline bool TreatmentsHasBeenSet() const { return m_treatmentsHasBeenSet; } /** *

An array of structures that describe the configuration of each feature * variation used in the experiment.

*/ inline void SetTreatments(const Aws::Vector& value) { m_treatmentsHasBeenSet = true; m_treatments = value; } /** *

An array of structures that describe the configuration of each feature * variation used in the experiment.

*/ inline void SetTreatments(Aws::Vector&& value) { m_treatmentsHasBeenSet = true; m_treatments = std::move(value); } /** *

An array of structures that describe the configuration of each feature * variation used in the experiment.

*/ inline Experiment& WithTreatments(const Aws::Vector& value) { SetTreatments(value); return *this;} /** *

An array of structures that describe the configuration of each feature * variation used in the experiment.

*/ inline Experiment& WithTreatments(Aws::Vector&& value) { SetTreatments(std::move(value)); return *this;} /** *

An array of structures that describe the configuration of each feature * variation used in the experiment.

*/ inline Experiment& AddTreatments(const Treatment& value) { m_treatmentsHasBeenSet = true; m_treatments.push_back(value); return *this; } /** *

An array of structures that describe the configuration of each feature * variation used in the experiment.

*/ inline Experiment& AddTreatments(Treatment&& value) { m_treatmentsHasBeenSet = true; m_treatments.push_back(std::move(value)); return *this; } /** *

The type of this experiment. Currently, this value must be * aws.experiment.onlineab.

*/ inline const ExperimentType& GetType() const{ return m_type; } /** *

The type of this experiment. Currently, this value must be * aws.experiment.onlineab.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The type of this experiment. Currently, this value must be * aws.experiment.onlineab.

*/ inline void SetType(const ExperimentType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The type of this experiment. Currently, this value must be * aws.experiment.onlineab.

*/ inline void SetType(ExperimentType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The type of this experiment. Currently, this value must be * aws.experiment.onlineab.

*/ inline Experiment& WithType(const ExperimentType& value) { SetType(value); return *this;} /** *

The type of this experiment. Currently, this value must be * aws.experiment.onlineab.

*/ inline Experiment& WithType(ExperimentType&& value) { SetType(std::move(value)); return *this;} private: Aws::String m_arn; bool m_arnHasBeenSet = false; Aws::Utils::DateTime m_createdTime; bool m_createdTimeHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; ExperimentExecution m_execution; bool m_executionHasBeenSet = false; Aws::Utils::DateTime m_lastUpdatedTime; bool m_lastUpdatedTimeHasBeenSet = false; Aws::Vector m_metricGoals; bool m_metricGoalsHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; OnlineAbDefinition m_onlineAbDefinition; bool m_onlineAbDefinitionHasBeenSet = false; Aws::String m_project; bool m_projectHasBeenSet = false; Aws::String m_randomizationSalt; bool m_randomizationSaltHasBeenSet = false; long long m_samplingRate; bool m_samplingRateHasBeenSet = false; ExperimentSchedule m_schedule; bool m_scheduleHasBeenSet = false; Aws::String m_segment; bool m_segmentHasBeenSet = false; ExperimentStatus m_status; bool m_statusHasBeenSet = false; Aws::String m_statusReason; bool m_statusReasonHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; Aws::Vector m_treatments; bool m_treatmentsHasBeenSet = false; ExperimentType m_type; bool m_typeHasBeenSet = false; }; } // namespace Model } // namespace CloudWatchEvidently } // namespace Aws