/* * 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 CreateExperimentRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *
* An optional description of the experiment. *
*/ private String 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 java.util.List* A name for the new experiment. *
*/ private String name; /** ** A structure that contains the configuration of which variation to use as the "control" version. tThe "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 you want to create the new experiment in. *
*/ 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
.
*
* 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. *
*/ private Long samplingRate; /** ** 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. *
*/ private String segment; /** ** 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 Amazon Web Services and are interpreted strictly as strings of * characters. *
** You can associate as many as 50 tags with an experiment. *
** For more information, see Tagging Amazon * Web Services resources. *
*/ private java.util.Map* An array of structures that describe the configuration of each feature variation used 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 CreateExperimentRequest withDescription(String description) { setDescription(description); 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 CreateExperimentRequest 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 CreateExperimentRequest withMetricGoals(java.util.Collection* A name for the new experiment. *
* * @param name * A name for the new experiment. */ public void setName(String name) { this.name = name; } /** ** A name for the new experiment. *
* * @return A name for the new experiment. */ public String getName() { return this.name; } /** ** A name for the new experiment. *
* * @param name * A name for the new experiment. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateExperimentRequest withName(String name) { setName(name); return this; } /** ** A structure that contains the configuration of which variation to use as the "control" version. tThe "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 to use as the "control" version. tThe * "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 to use as the "control" version. tThe "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 to use as the "control" version. tThe * "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 to use as the "control" version. tThe "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 to use as the "control" version. tThe * "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 CreateExperimentRequest withOnlineAbConfig(OnlineAbConfig onlineAbConfig) { setOnlineAbConfig(onlineAbConfig); return this; } /** ** The name or ARN of the project that you want to create the new experiment in. *
* * @param project * The name or ARN of the project that you want to create the new experiment in. */ public void setProject(String project) { this.project = project; } /** ** The name or ARN of the project that you want to create the new experiment in. *
* * @return The name or ARN of the project that you want to create the new experiment in. */ public String getProject() { return this.project; } /** ** The name or ARN of the project that you want to create the new experiment in. *
* * @param project * The name or ARN of the project that you want to create the new experiment in. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateExperimentRequest 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 CreateExperimentRequest withRandomizationSalt(String randomizationSalt) {
setRandomizationSalt(randomizationSalt);
return this;
}
/**
* * 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. *
* * @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 10,000 to allocate 10% 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 10,000 to allocate 10% 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 10,000 to allocate 10% 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 10,000 to allocate 10% 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 10,000 to allocate 10% of the * available audience. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateExperimentRequest withSamplingRate(Long samplingRate) { setSamplingRate(samplingRate); return this; } /** *
* 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. *
* * @param segment * 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. */ public void setSegment(String segment) { this.segment = segment; } /** ** 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. *
* * @return 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. */ public String getSegment() { return this.segment; } /** ** 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. *
* * @param segment * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateExperimentRequest withSegment(String segment) { setSegment(segment); return this; } /** ** 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 Amazon Web Services and are interpreted strictly as strings of * characters. *
** You can associate as many as 50 tags with an experiment. *
** For more information, see Tagging Amazon * Web Services resources. *
* * @return 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 Amazon Web Services and are interpreted strictly as strings of * characters. *
** You can associate as many as 50 tags with an experiment. *
*
* For more information, see Tagging Amazon Web Services
* resources.
*/
public java.util.Map
* 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 Amazon Web Services and are interpreted strictly as strings of
* characters.
*
* You can associate as many as 50 tags with an experiment.
*
* For more information, see Tagging Amazon
* Web Services resources.
*
* 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 Amazon Web Services and are interpreted strictly as strings of * characters. *
** You can associate as many as 50 tags with an experiment. *
*
* For more information, see Tagging
* Amazon Web Services resources.
*/
public void setTags(java.util.Map
* 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 Amazon Web Services and are interpreted strictly as strings of
* characters.
*
* You can associate as many as 50 tags with an experiment.
*
* For more information, see Tagging Amazon
* Web Services resources.
*
* 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 Amazon Web Services and are interpreted strictly as strings of * characters. *
** You can associate as many as 50 tags with an experiment. *
*
* For more information, see Tagging
* Amazon Web Services resources.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public CreateExperimentRequest withTags(java.util.Map
* An array of structures that describe the configuration of each feature variation used in the experiment.
*
* An array of structures that describe the configuration of each feature variation used in the experiment.
*
* An array of structures that describe the configuration of each feature variation used 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.
*
* An array of structures that describe the configuration of each feature variation used in the experiment.
*