/* * Copyright 2018-2023 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. */ package com.amazonaws.services.cloudwatchevidently.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** * * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class UpdateExperimentRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *
* An optional description of the experiment. *
*/ private String description; /** ** The name of the experiment to update. *
*/ private String experiment; /** ** 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 java.util.List* A structure that contains the configuration of which variation o 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. *
*/ private OnlineAbConfig onlineAbConfig; /** ** The name or ARN of the project that contains the experiment that you want to update. *
*/ private String 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. This randomization ID is a combination of the entity ID and
* randomizationSalt
. If you omit randomizationSalt
, Evidently uses the experiment name as
* the randomizationSalt
.
*
* Removes a segment from being used in an experiment. You can't use this parameter if the experiment is currently * running. *
*/ private Boolean removeSegment; /** ** 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 20,000 to allocate 20% of the available * audience. *
*/ private Long samplingRate; /** ** Adds an audience segment to an experiment. When a segment is used in an experiment, only user sessions * that match the segment pattern are used in the experiment. You can't use this parameter if the experiment is * currently running. *
*/ private String segment; /** ** An array of structures that define the variations being tested in the experiment. *
*/ private java.util.List* An optional description of the experiment. *
* * @param description * An optional description of the experiment. */ public void setDescription(String description) { this.description = description; } /** ** An optional description of the experiment. *
* * @return An optional description of the experiment. */ public String getDescription() { return this.description; } /** ** An optional description of the experiment. *
* * @param description * An optional description of the experiment. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateExperimentRequest withDescription(String description) { setDescription(description); return this; } /** ** The name of the experiment to update. *
* * @param experiment * The name of the experiment to update. */ public void setExperiment(String experiment) { this.experiment = experiment; } /** ** The name of the experiment to update. *
* * @return The name of the experiment to update. */ public String getExperiment() { return this.experiment; } /** ** The name of the experiment to update. *
* * @param experiment * The name of the experiment to update. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateExperimentRequest withExperiment(String experiment) { setExperiment(experiment); 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. *
* * @return 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. */ public java.util.List* 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. *
* * @param 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. */ public void setMetricGoals(java.util.Collection* 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. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setMetricGoals(java.util.Collection)} or {@link #withMetricGoals(java.util.Collection)} if you want to * override the existing values. *
* * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateExperimentRequest withMetricGoals(MetricGoalConfig... metricGoals) { if (this.metricGoals == null) { setMetricGoals(new java.util.ArrayList* 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. *
* * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateExperimentRequest withMetricGoals(java.util.Collection* A structure that contains the configuration of which variation o 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. *
* * @param onlineAbConfig * A structure that contains the configuration of which variation o 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. */ public void setOnlineAbConfig(OnlineAbConfig onlineAbConfig) { this.onlineAbConfig = onlineAbConfig; } /** ** A structure that contains the configuration of which variation o 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. *
* * @return A structure that contains the configuration of which variation o 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. */ public OnlineAbConfig getOnlineAbConfig() { return this.onlineAbConfig; } /** ** A structure that contains the configuration of which variation o 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. *
* * @param onlineAbConfig * A structure that contains the configuration of which variation o 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. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateExperimentRequest withOnlineAbConfig(OnlineAbConfig onlineAbConfig) { setOnlineAbConfig(onlineAbConfig); return this; } /** ** The name or ARN of the project that contains the experiment that you want to update. *
* * @param project * The name or ARN of the project that contains the experiment that you want to update. */ public void setProject(String project) { this.project = project; } /** ** The name or ARN of the project that contains the experiment that you want to update. *
* * @return The name or ARN of the project that contains the experiment that you want to update. */ public String getProject() { return this.project; } /** ** The name or ARN of the project that contains the experiment that you want to update. *
* * @param project * The name or ARN of the project that contains the experiment that you want to update. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateExperimentRequest withProject(String project) { setProject(project); return this; } /** *
* 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
.
*
randomizationSalt
. If you omit randomizationSalt
, Evidently uses the
* experiment name as the randomizationSalt
.
*/
public void setRandomizationSalt(String randomizationSalt) {
this.randomizationSalt = randomizationSalt;
}
/**
*
* 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
.
*
randomizationSalt
. If you omit randomizationSalt
, Evidently uses
* the experiment name as the randomizationSalt
.
*/
public String getRandomizationSalt() {
return this.randomizationSalt;
}
/**
*
* 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
.
*
randomizationSalt
. If you omit randomizationSalt
, Evidently uses the
* experiment name as the randomizationSalt
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public UpdateExperimentRequest withRandomizationSalt(String randomizationSalt) {
setRandomizationSalt(randomizationSalt);
return this;
}
/**
* * Removes a segment from being used in an experiment. You can't use this parameter if the experiment is currently * running. *
* * @param removeSegment * Removes a segment from being used in an experiment. You can't use this parameter if the experiment is * currently running. */ public void setRemoveSegment(Boolean removeSegment) { this.removeSegment = removeSegment; } /** ** Removes a segment from being used in an experiment. You can't use this parameter if the experiment is currently * running. *
* * @return Removes a segment from being used in an experiment. You can't use this parameter if the experiment is * currently running. */ public Boolean getRemoveSegment() { return this.removeSegment; } /** ** Removes a segment from being used in an experiment. You can't use this parameter if the experiment is currently * running. *
* * @param removeSegment * Removes a segment from being used in an experiment. You can't use this parameter if the experiment is * currently running. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateExperimentRequest withRemoveSegment(Boolean removeSegment) { setRemoveSegment(removeSegment); return this; } /** ** Removes a segment from being used in an experiment. You can't use this parameter if the experiment is currently * running. *
* * @return Removes a segment from being used in an experiment. You can't use this parameter if the experiment is * currently running. */ public Boolean isRemoveSegment() { return this.removeSegment; } /** ** 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 20,000 to allocate 20% of the available * audience. *
* * @param samplingRate * 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 20,000 to allocate 20% of the * available audience. */ public void setSamplingRate(Long samplingRate) { this.samplingRate = samplingRate; } /** *
* 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 20,000 to allocate 20% of the available * audience. *
* * @return 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 20,000 to allocate 20% of the * available audience. */ public Long getSamplingRate() { return this.samplingRate; } /** *
* 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 20,000 to allocate 20% of the available * audience. *
* * @param samplingRate * 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 20,000 to allocate 20% of the * available audience. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateExperimentRequest withSamplingRate(Long samplingRate) { setSamplingRate(samplingRate); return this; } /** *
* Adds an audience segment to an experiment. When a segment is used in an experiment, only user sessions * that match the segment pattern are used in the experiment. You can't use this parameter if the experiment is * currently running. *
* * @param segment * Adds an audience segment to an experiment. When a segment is used in an experiment, only user * sessions that match the segment pattern are used in the experiment. You can't use this parameter if the * experiment is currently running. */ public void setSegment(String segment) { this.segment = segment; } /** ** Adds an audience segment to an experiment. When a segment is used in an experiment, only user sessions * that match the segment pattern are used in the experiment. You can't use this parameter if the experiment is * currently running. *
* * @return Adds an audience segment to an experiment. When a segment is used in an experiment, only user * sessions that match the segment pattern are used in the experiment. You can't use this parameter if the * experiment is currently running. */ public String getSegment() { return this.segment; } /** ** Adds an audience segment to an experiment. When a segment is used in an experiment, only user sessions * that match the segment pattern are used in the experiment. You can't use this parameter if the experiment is * currently running. *
* * @param segment * Adds an audience segment to an experiment. When a segment is used in an experiment, only user * sessions that match the segment pattern are used in the experiment. You can't use this parameter if the * experiment is currently running. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateExperimentRequest withSegment(String segment) { setSegment(segment); return this; } /** ** An array of structures that define the variations being tested in the experiment. *
* * @return An array of structures that define the variations being tested in the experiment. */ public java.util.List* An array of structures that define the variations being tested in the experiment. *
* * @param treatments * An array of structures that define the variations being tested in the experiment. */ public void setTreatments(java.util.Collection* An array of structures that define the variations being tested in the experiment. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setTreatments(java.util.Collection)} or {@link #withTreatments(java.util.Collection)} if you want to * override the existing values. *
* * @param treatments * An array of structures that define the variations being tested in the experiment. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateExperimentRequest withTreatments(TreatmentConfig... treatments) { if (this.treatments == null) { setTreatments(new java.util.ArrayList* An array of structures that define the variations being tested in the experiment. *
* * @param treatments * An array of structures that define the variations being tested in the experiment. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateExperimentRequest withTreatments(java.util.Collection