<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="dialogflow_v3beta1.html">Dialogflow API</a> . <a href="dialogflow_v3beta1.projects.html">projects</a> . <a href="dialogflow_v3beta1.projects.locations.html">locations</a> . <a href="dialogflow_v3beta1.projects.locations.agents.html">agents</a> . <a href="dialogflow_v3beta1.projects.locations.agents.environments.html">environments</a> . <a href="dialogflow_v3beta1.projects.locations.agents.environments.experiments.html">experiments</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates an Experiment in the specified Environment.</p>
<p class="toc_element">
  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes the specified Experiment.</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves the specified Experiment.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Returns the list of all experiments in the specified Environment.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates the specified Experiment.</p>
<p class="toc_element">
  <code><a href="#start">start(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Starts the specified Experiment. This rpc only changes the state of experiment from PENDING to RUNNING.</p>
<p class="toc_element">
  <code><a href="#stop">stop(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Stops the specified Experiment. This rpc only changes the state of experiment from RUNNING to DONE.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
  <pre>Creates an Experiment in the specified Environment.

Args:
  parent: string, Required. The Agent to create an Environment for. Format: `projects//locations//agents//environments/`. (required)
  body: object, The request body.
    The object takes the form of:

{ # Represents an experiment in an environment.
  &quot;createTime&quot;: &quot;A String&quot;, # Creation time of this experiment.
  &quot;definition&quot;: { # Definition of the experiment. # The definition of the experiment.
    &quot;condition&quot;: &quot;A String&quot;, # The condition defines which subset of sessions are selected for this experiment. If not specified, all sessions are eligible. E.g. &quot;query_input.language_code=en&quot; See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).
    &quot;versionVariants&quot;: { # A list of flow version variants. # The flow versions as the variants of this experiment.
      &quot;variants&quot;: [ # A list of flow version variants.
        { # A single flow version with specified traffic allocation.
          &quot;isControlGroup&quot;: True or False, # Whether the variant is for the control group.
          &quot;trafficAllocation&quot;: 3.14, # Percentage of the traffic which should be routed to this version of flow. Traffic allocation for a single flow must sum up to 1.0.
          &quot;version&quot;: &quot;A String&quot;, # The name of the flow version. Format: `projects//locations//agents//flows//versions/`.
        },
      ],
    },
  },
  &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
  &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
  &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
  &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
  &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
  &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
  &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
    &quot;lastUpdateTime&quot;: &quot;A String&quot;, # The last time the experiment&#x27;s stats data was updated. Will have default value if stats have never been computed for this experiment.
    &quot;versionMetrics&quot;: [ # Version variants and metrics.
      { # Version variant and associated metrics.
        &quot;metrics&quot;: [ # The metrics and corresponding confidence intervals in the inference result.
          { # Metric and corresponding confidence intervals.
            &quot;confidenceInterval&quot;: { # A confidence interval is a range of possible values for the experiment objective you are trying to measure. # The probability that the treatment is better than all other treatments in the experiment
              &quot;confidenceLevel&quot;: 3.14, # The confidence level used to construct the interval, i.e. there is X% chance that the true value is within this interval.
              &quot;lowerBound&quot;: 3.14, # Lower bound of the interval.
              &quot;ratio&quot;: 3.14, # The percent change between an experiment metric&#x27;s value and the value for its control.
              &quot;upperBound&quot;: 3.14, # Upper bound of the interval.
            },
            &quot;count&quot;: 3.14, # Count value of a metric.
            &quot;countType&quot;: &quot;A String&quot;, # Count-based metric type. Only one of type or count_type is specified in each Metric.
            &quot;ratio&quot;: 3.14, # Ratio value of a metric.
            &quot;type&quot;: &quot;A String&quot;, # Ratio-based metric type. Only one of type or count_type is specified in each Metric.
          },
        ],
        &quot;sessionCount&quot;: 42, # Number of sessions that were allocated to this version.
        &quot;version&quot;: &quot;A String&quot;, # The name of the flow Version. Format: `projects//locations//agents//flows//versions/`.
      },
    ],
  },
  &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
  &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
    { # The history of variants update.
      &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
      &quot;versionVariants&quot;: { # A list of flow version variants. # The flow versions as the variants.
        &quot;variants&quot;: [ # A list of flow version variants.
          { # A single flow version with specified traffic allocation.
            &quot;isControlGroup&quot;: True or False, # Whether the variant is for the control group.
            &quot;trafficAllocation&quot;: 3.14, # Percentage of the traffic which should be routed to this version of flow. Traffic allocation for a single flow must sum up to 1.0.
            &quot;version&quot;: &quot;A String&quot;, # The name of the flow version. Format: `projects//locations//agents//flows//versions/`.
          },
        ],
      },
    },
  ],
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Represents an experiment in an environment.
  &quot;createTime&quot;: &quot;A String&quot;, # Creation time of this experiment.
  &quot;definition&quot;: { # Definition of the experiment. # The definition of the experiment.
    &quot;condition&quot;: &quot;A String&quot;, # The condition defines which subset of sessions are selected for this experiment. If not specified, all sessions are eligible. E.g. &quot;query_input.language_code=en&quot; See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).
    &quot;versionVariants&quot;: { # A list of flow version variants. # The flow versions as the variants of this experiment.
      &quot;variants&quot;: [ # A list of flow version variants.
        { # A single flow version with specified traffic allocation.
          &quot;isControlGroup&quot;: True or False, # Whether the variant is for the control group.
          &quot;trafficAllocation&quot;: 3.14, # Percentage of the traffic which should be routed to this version of flow. Traffic allocation for a single flow must sum up to 1.0.
          &quot;version&quot;: &quot;A String&quot;, # The name of the flow version. Format: `projects//locations//agents//flows//versions/`.
        },
      ],
    },
  },
  &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
  &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
  &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
  &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
  &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
  &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
  &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
    &quot;lastUpdateTime&quot;: &quot;A String&quot;, # The last time the experiment&#x27;s stats data was updated. Will have default value if stats have never been computed for this experiment.
    &quot;versionMetrics&quot;: [ # Version variants and metrics.
      { # Version variant and associated metrics.
        &quot;metrics&quot;: [ # The metrics and corresponding confidence intervals in the inference result.
          { # Metric and corresponding confidence intervals.
            &quot;confidenceInterval&quot;: { # A confidence interval is a range of possible values for the experiment objective you are trying to measure. # The probability that the treatment is better than all other treatments in the experiment
              &quot;confidenceLevel&quot;: 3.14, # The confidence level used to construct the interval, i.e. there is X% chance that the true value is within this interval.
              &quot;lowerBound&quot;: 3.14, # Lower bound of the interval.
              &quot;ratio&quot;: 3.14, # The percent change between an experiment metric&#x27;s value and the value for its control.
              &quot;upperBound&quot;: 3.14, # Upper bound of the interval.
            },
            &quot;count&quot;: 3.14, # Count value of a metric.
            &quot;countType&quot;: &quot;A String&quot;, # Count-based metric type. Only one of type or count_type is specified in each Metric.
            &quot;ratio&quot;: 3.14, # Ratio value of a metric.
            &quot;type&quot;: &quot;A String&quot;, # Ratio-based metric type. Only one of type or count_type is specified in each Metric.
          },
        ],
        &quot;sessionCount&quot;: 42, # Number of sessions that were allocated to this version.
        &quot;version&quot;: &quot;A String&quot;, # The name of the flow Version. Format: `projects//locations//agents//flows//versions/`.
      },
    ],
  },
  &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
  &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
    { # The history of variants update.
      &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
      &quot;versionVariants&quot;: { # A list of flow version variants. # The flow versions as the variants.
        &quot;variants&quot;: [ # A list of flow version variants.
          { # A single flow version with specified traffic allocation.
            &quot;isControlGroup&quot;: True or False, # Whether the variant is for the control group.
            &quot;trafficAllocation&quot;: 3.14, # Percentage of the traffic which should be routed to this version of flow. Traffic allocation for a single flow must sum up to 1.0.
            &quot;version&quot;: &quot;A String&quot;, # The name of the flow version. Format: `projects//locations//agents//flows//versions/`.
          },
        ],
      },
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
  <pre>Deletes the specified Experiment.

Args:
  name: string, Required. The name of the Environment to delete. Format: `projects//locations//agents//environments//experiments/`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
}</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>Retrieves the specified Experiment.

Args:
  name: string, Required. The name of the Environment. Format: `projects//locations//agents//environments//experiments/`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Represents an experiment in an environment.
  &quot;createTime&quot;: &quot;A String&quot;, # Creation time of this experiment.
  &quot;definition&quot;: { # Definition of the experiment. # The definition of the experiment.
    &quot;condition&quot;: &quot;A String&quot;, # The condition defines which subset of sessions are selected for this experiment. If not specified, all sessions are eligible. E.g. &quot;query_input.language_code=en&quot; See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).
    &quot;versionVariants&quot;: { # A list of flow version variants. # The flow versions as the variants of this experiment.
      &quot;variants&quot;: [ # A list of flow version variants.
        { # A single flow version with specified traffic allocation.
          &quot;isControlGroup&quot;: True or False, # Whether the variant is for the control group.
          &quot;trafficAllocation&quot;: 3.14, # Percentage of the traffic which should be routed to this version of flow. Traffic allocation for a single flow must sum up to 1.0.
          &quot;version&quot;: &quot;A String&quot;, # The name of the flow version. Format: `projects//locations//agents//flows//versions/`.
        },
      ],
    },
  },
  &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
  &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
  &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
  &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
  &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
  &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
  &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
    &quot;lastUpdateTime&quot;: &quot;A String&quot;, # The last time the experiment&#x27;s stats data was updated. Will have default value if stats have never been computed for this experiment.
    &quot;versionMetrics&quot;: [ # Version variants and metrics.
      { # Version variant and associated metrics.
        &quot;metrics&quot;: [ # The metrics and corresponding confidence intervals in the inference result.
          { # Metric and corresponding confidence intervals.
            &quot;confidenceInterval&quot;: { # A confidence interval is a range of possible values for the experiment objective you are trying to measure. # The probability that the treatment is better than all other treatments in the experiment
              &quot;confidenceLevel&quot;: 3.14, # The confidence level used to construct the interval, i.e. there is X% chance that the true value is within this interval.
              &quot;lowerBound&quot;: 3.14, # Lower bound of the interval.
              &quot;ratio&quot;: 3.14, # The percent change between an experiment metric&#x27;s value and the value for its control.
              &quot;upperBound&quot;: 3.14, # Upper bound of the interval.
            },
            &quot;count&quot;: 3.14, # Count value of a metric.
            &quot;countType&quot;: &quot;A String&quot;, # Count-based metric type. Only one of type or count_type is specified in each Metric.
            &quot;ratio&quot;: 3.14, # Ratio value of a metric.
            &quot;type&quot;: &quot;A String&quot;, # Ratio-based metric type. Only one of type or count_type is specified in each Metric.
          },
        ],
        &quot;sessionCount&quot;: 42, # Number of sessions that were allocated to this version.
        &quot;version&quot;: &quot;A String&quot;, # The name of the flow Version. Format: `projects//locations//agents//flows//versions/`.
      },
    ],
  },
  &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
  &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
    { # The history of variants update.
      &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
      &quot;versionVariants&quot;: { # A list of flow version variants. # The flow versions as the variants.
        &quot;variants&quot;: [ # A list of flow version variants.
          { # A single flow version with specified traffic allocation.
            &quot;isControlGroup&quot;: True or False, # Whether the variant is for the control group.
            &quot;trafficAllocation&quot;: 3.14, # Percentage of the traffic which should be routed to this version of flow. Traffic allocation for a single flow must sum up to 1.0.
            &quot;version&quot;: &quot;A String&quot;, # The name of the flow version. Format: `projects//locations//agents//flows//versions/`.
          },
        ],
      },
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
  <pre>Returns the list of all experiments in the specified Environment.

Args:
  parent: string, Required. The Environment to list all environments for. Format: `projects//locations//agents//environments/`. (required)
  pageSize: integer, The maximum number of items to return in a single page. By default 20 and at most 100.
  pageToken: string, The next_page_token value returned from a previous list request.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The response message for Experiments.ListExperiments.
  &quot;experiments&quot;: [ # The list of experiments. There will be a maximum number of items returned based on the page_size field in the request. The list may in some cases be empty or contain fewer entries than page_size even if this isn&#x27;t the last page.
    { # Represents an experiment in an environment.
      &quot;createTime&quot;: &quot;A String&quot;, # Creation time of this experiment.
      &quot;definition&quot;: { # Definition of the experiment. # The definition of the experiment.
        &quot;condition&quot;: &quot;A String&quot;, # The condition defines which subset of sessions are selected for this experiment. If not specified, all sessions are eligible. E.g. &quot;query_input.language_code=en&quot; See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).
        &quot;versionVariants&quot;: { # A list of flow version variants. # The flow versions as the variants of this experiment.
          &quot;variants&quot;: [ # A list of flow version variants.
            { # A single flow version with specified traffic allocation.
              &quot;isControlGroup&quot;: True or False, # Whether the variant is for the control group.
              &quot;trafficAllocation&quot;: 3.14, # Percentage of the traffic which should be routed to this version of flow. Traffic allocation for a single flow must sum up to 1.0.
              &quot;version&quot;: &quot;A String&quot;, # The name of the flow version. Format: `projects//locations//agents//flows//versions/`.
            },
          ],
        },
      },
      &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
      &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
      &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
      &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
      &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
      &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
      &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
        &quot;lastUpdateTime&quot;: &quot;A String&quot;, # The last time the experiment&#x27;s stats data was updated. Will have default value if stats have never been computed for this experiment.
        &quot;versionMetrics&quot;: [ # Version variants and metrics.
          { # Version variant and associated metrics.
            &quot;metrics&quot;: [ # The metrics and corresponding confidence intervals in the inference result.
              { # Metric and corresponding confidence intervals.
                &quot;confidenceInterval&quot;: { # A confidence interval is a range of possible values for the experiment objective you are trying to measure. # The probability that the treatment is better than all other treatments in the experiment
                  &quot;confidenceLevel&quot;: 3.14, # The confidence level used to construct the interval, i.e. there is X% chance that the true value is within this interval.
                  &quot;lowerBound&quot;: 3.14, # Lower bound of the interval.
                  &quot;ratio&quot;: 3.14, # The percent change between an experiment metric&#x27;s value and the value for its control.
                  &quot;upperBound&quot;: 3.14, # Upper bound of the interval.
                },
                &quot;count&quot;: 3.14, # Count value of a metric.
                &quot;countType&quot;: &quot;A String&quot;, # Count-based metric type. Only one of type or count_type is specified in each Metric.
                &quot;ratio&quot;: 3.14, # Ratio value of a metric.
                &quot;type&quot;: &quot;A String&quot;, # Ratio-based metric type. Only one of type or count_type is specified in each Metric.
              },
            ],
            &quot;sessionCount&quot;: 42, # Number of sessions that were allocated to this version.
            &quot;version&quot;: &quot;A String&quot;, # The name of the flow Version. Format: `projects//locations//agents//flows//versions/`.
          },
        ],
      },
      &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
      &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
      &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
        { # The history of variants update.
          &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
          &quot;versionVariants&quot;: { # A list of flow version variants. # The flow versions as the variants.
            &quot;variants&quot;: [ # A list of flow version variants.
              { # A single flow version with specified traffic allocation.
                &quot;isControlGroup&quot;: True or False, # Whether the variant is for the control group.
                &quot;trafficAllocation&quot;: 3.14, # Percentage of the traffic which should be routed to this version of flow. Traffic allocation for a single flow must sum up to 1.0.
                &quot;version&quot;: &quot;A String&quot;, # The name of the flow version. Format: `projects//locations//agents//flows//versions/`.
              },
            ],
          },
        },
      ],
    },
  ],
  &quot;nextPageToken&quot;: &quot;A String&quot;, # Token to retrieve the next page of results, or empty if there are no more results in the list.
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
  <pre>Updates the specified Experiment.

Args:
  name: string, The name of the experiment. Format: projects//locations//agents//environments//experiments/.. (required)
  body: object, The request body.
    The object takes the form of:

{ # Represents an experiment in an environment.
  &quot;createTime&quot;: &quot;A String&quot;, # Creation time of this experiment.
  &quot;definition&quot;: { # Definition of the experiment. # The definition of the experiment.
    &quot;condition&quot;: &quot;A String&quot;, # The condition defines which subset of sessions are selected for this experiment. If not specified, all sessions are eligible. E.g. &quot;query_input.language_code=en&quot; See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).
    &quot;versionVariants&quot;: { # A list of flow version variants. # The flow versions as the variants of this experiment.
      &quot;variants&quot;: [ # A list of flow version variants.
        { # A single flow version with specified traffic allocation.
          &quot;isControlGroup&quot;: True or False, # Whether the variant is for the control group.
          &quot;trafficAllocation&quot;: 3.14, # Percentage of the traffic which should be routed to this version of flow. Traffic allocation for a single flow must sum up to 1.0.
          &quot;version&quot;: &quot;A String&quot;, # The name of the flow version. Format: `projects//locations//agents//flows//versions/`.
        },
      ],
    },
  },
  &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
  &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
  &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
  &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
  &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
  &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
  &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
    &quot;lastUpdateTime&quot;: &quot;A String&quot;, # The last time the experiment&#x27;s stats data was updated. Will have default value if stats have never been computed for this experiment.
    &quot;versionMetrics&quot;: [ # Version variants and metrics.
      { # Version variant and associated metrics.
        &quot;metrics&quot;: [ # The metrics and corresponding confidence intervals in the inference result.
          { # Metric and corresponding confidence intervals.
            &quot;confidenceInterval&quot;: { # A confidence interval is a range of possible values for the experiment objective you are trying to measure. # The probability that the treatment is better than all other treatments in the experiment
              &quot;confidenceLevel&quot;: 3.14, # The confidence level used to construct the interval, i.e. there is X% chance that the true value is within this interval.
              &quot;lowerBound&quot;: 3.14, # Lower bound of the interval.
              &quot;ratio&quot;: 3.14, # The percent change between an experiment metric&#x27;s value and the value for its control.
              &quot;upperBound&quot;: 3.14, # Upper bound of the interval.
            },
            &quot;count&quot;: 3.14, # Count value of a metric.
            &quot;countType&quot;: &quot;A String&quot;, # Count-based metric type. Only one of type or count_type is specified in each Metric.
            &quot;ratio&quot;: 3.14, # Ratio value of a metric.
            &quot;type&quot;: &quot;A String&quot;, # Ratio-based metric type. Only one of type or count_type is specified in each Metric.
          },
        ],
        &quot;sessionCount&quot;: 42, # Number of sessions that were allocated to this version.
        &quot;version&quot;: &quot;A String&quot;, # The name of the flow Version. Format: `projects//locations//agents//flows//versions/`.
      },
    ],
  },
  &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
  &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
    { # The history of variants update.
      &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
      &quot;versionVariants&quot;: { # A list of flow version variants. # The flow versions as the variants.
        &quot;variants&quot;: [ # A list of flow version variants.
          { # A single flow version with specified traffic allocation.
            &quot;isControlGroup&quot;: True or False, # Whether the variant is for the control group.
            &quot;trafficAllocation&quot;: 3.14, # Percentage of the traffic which should be routed to this version of flow. Traffic allocation for a single flow must sum up to 1.0.
            &quot;version&quot;: &quot;A String&quot;, # The name of the flow version. Format: `projects//locations//agents//flows//versions/`.
          },
        ],
      },
    },
  ],
}

  updateMask: string, Required. The mask to control which fields get updated.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Represents an experiment in an environment.
  &quot;createTime&quot;: &quot;A String&quot;, # Creation time of this experiment.
  &quot;definition&quot;: { # Definition of the experiment. # The definition of the experiment.
    &quot;condition&quot;: &quot;A String&quot;, # The condition defines which subset of sessions are selected for this experiment. If not specified, all sessions are eligible. E.g. &quot;query_input.language_code=en&quot; See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).
    &quot;versionVariants&quot;: { # A list of flow version variants. # The flow versions as the variants of this experiment.
      &quot;variants&quot;: [ # A list of flow version variants.
        { # A single flow version with specified traffic allocation.
          &quot;isControlGroup&quot;: True or False, # Whether the variant is for the control group.
          &quot;trafficAllocation&quot;: 3.14, # Percentage of the traffic which should be routed to this version of flow. Traffic allocation for a single flow must sum up to 1.0.
          &quot;version&quot;: &quot;A String&quot;, # The name of the flow version. Format: `projects//locations//agents//flows//versions/`.
        },
      ],
    },
  },
  &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
  &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
  &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
  &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
  &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
  &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
  &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
    &quot;lastUpdateTime&quot;: &quot;A String&quot;, # The last time the experiment&#x27;s stats data was updated. Will have default value if stats have never been computed for this experiment.
    &quot;versionMetrics&quot;: [ # Version variants and metrics.
      { # Version variant and associated metrics.
        &quot;metrics&quot;: [ # The metrics and corresponding confidence intervals in the inference result.
          { # Metric and corresponding confidence intervals.
            &quot;confidenceInterval&quot;: { # A confidence interval is a range of possible values for the experiment objective you are trying to measure. # The probability that the treatment is better than all other treatments in the experiment
              &quot;confidenceLevel&quot;: 3.14, # The confidence level used to construct the interval, i.e. there is X% chance that the true value is within this interval.
              &quot;lowerBound&quot;: 3.14, # Lower bound of the interval.
              &quot;ratio&quot;: 3.14, # The percent change between an experiment metric&#x27;s value and the value for its control.
              &quot;upperBound&quot;: 3.14, # Upper bound of the interval.
            },
            &quot;count&quot;: 3.14, # Count value of a metric.
            &quot;countType&quot;: &quot;A String&quot;, # Count-based metric type. Only one of type or count_type is specified in each Metric.
            &quot;ratio&quot;: 3.14, # Ratio value of a metric.
            &quot;type&quot;: &quot;A String&quot;, # Ratio-based metric type. Only one of type or count_type is specified in each Metric.
          },
        ],
        &quot;sessionCount&quot;: 42, # Number of sessions that were allocated to this version.
        &quot;version&quot;: &quot;A String&quot;, # The name of the flow Version. Format: `projects//locations//agents//flows//versions/`.
      },
    ],
  },
  &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
  &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
    { # The history of variants update.
      &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
      &quot;versionVariants&quot;: { # A list of flow version variants. # The flow versions as the variants.
        &quot;variants&quot;: [ # A list of flow version variants.
          { # A single flow version with specified traffic allocation.
            &quot;isControlGroup&quot;: True or False, # Whether the variant is for the control group.
            &quot;trafficAllocation&quot;: 3.14, # Percentage of the traffic which should be routed to this version of flow. Traffic allocation for a single flow must sum up to 1.0.
            &quot;version&quot;: &quot;A String&quot;, # The name of the flow version. Format: `projects//locations//agents//flows//versions/`.
          },
        ],
      },
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="start">start(name, body=None, x__xgafv=None)</code>
  <pre>Starts the specified Experiment. This rpc only changes the state of experiment from PENDING to RUNNING.

Args:
  name: string, Required. Resource name of the experiment to start. Format: `projects//locations//agents//environments//experiments/`. (required)
  body: object, The request body.
    The object takes the form of:

{ # The request message for Experiments.StartExperiment.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Represents an experiment in an environment.
  &quot;createTime&quot;: &quot;A String&quot;, # Creation time of this experiment.
  &quot;definition&quot;: { # Definition of the experiment. # The definition of the experiment.
    &quot;condition&quot;: &quot;A String&quot;, # The condition defines which subset of sessions are selected for this experiment. If not specified, all sessions are eligible. E.g. &quot;query_input.language_code=en&quot; See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).
    &quot;versionVariants&quot;: { # A list of flow version variants. # The flow versions as the variants of this experiment.
      &quot;variants&quot;: [ # A list of flow version variants.
        { # A single flow version with specified traffic allocation.
          &quot;isControlGroup&quot;: True or False, # Whether the variant is for the control group.
          &quot;trafficAllocation&quot;: 3.14, # Percentage of the traffic which should be routed to this version of flow. Traffic allocation for a single flow must sum up to 1.0.
          &quot;version&quot;: &quot;A String&quot;, # The name of the flow version. Format: `projects//locations//agents//flows//versions/`.
        },
      ],
    },
  },
  &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
  &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
  &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
  &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
  &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
  &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
  &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
    &quot;lastUpdateTime&quot;: &quot;A String&quot;, # The last time the experiment&#x27;s stats data was updated. Will have default value if stats have never been computed for this experiment.
    &quot;versionMetrics&quot;: [ # Version variants and metrics.
      { # Version variant and associated metrics.
        &quot;metrics&quot;: [ # The metrics and corresponding confidence intervals in the inference result.
          { # Metric and corresponding confidence intervals.
            &quot;confidenceInterval&quot;: { # A confidence interval is a range of possible values for the experiment objective you are trying to measure. # The probability that the treatment is better than all other treatments in the experiment
              &quot;confidenceLevel&quot;: 3.14, # The confidence level used to construct the interval, i.e. there is X% chance that the true value is within this interval.
              &quot;lowerBound&quot;: 3.14, # Lower bound of the interval.
              &quot;ratio&quot;: 3.14, # The percent change between an experiment metric&#x27;s value and the value for its control.
              &quot;upperBound&quot;: 3.14, # Upper bound of the interval.
            },
            &quot;count&quot;: 3.14, # Count value of a metric.
            &quot;countType&quot;: &quot;A String&quot;, # Count-based metric type. Only one of type or count_type is specified in each Metric.
            &quot;ratio&quot;: 3.14, # Ratio value of a metric.
            &quot;type&quot;: &quot;A String&quot;, # Ratio-based metric type. Only one of type or count_type is specified in each Metric.
          },
        ],
        &quot;sessionCount&quot;: 42, # Number of sessions that were allocated to this version.
        &quot;version&quot;: &quot;A String&quot;, # The name of the flow Version. Format: `projects//locations//agents//flows//versions/`.
      },
    ],
  },
  &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
  &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
    { # The history of variants update.
      &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
      &quot;versionVariants&quot;: { # A list of flow version variants. # The flow versions as the variants.
        &quot;variants&quot;: [ # A list of flow version variants.
          { # A single flow version with specified traffic allocation.
            &quot;isControlGroup&quot;: True or False, # Whether the variant is for the control group.
            &quot;trafficAllocation&quot;: 3.14, # Percentage of the traffic which should be routed to this version of flow. Traffic allocation for a single flow must sum up to 1.0.
            &quot;version&quot;: &quot;A String&quot;, # The name of the flow version. Format: `projects//locations//agents//flows//versions/`.
          },
        ],
      },
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="stop">stop(name, body=None, x__xgafv=None)</code>
  <pre>Stops the specified Experiment. This rpc only changes the state of experiment from RUNNING to DONE.

Args:
  name: string, Required. Resource name of the experiment to stop. Format: `projects//locations//agents//environments//experiments/`. (required)
  body: object, The request body.
    The object takes the form of:

{ # The request message for Experiments.StopExperiment.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Represents an experiment in an environment.
  &quot;createTime&quot;: &quot;A String&quot;, # Creation time of this experiment.
  &quot;definition&quot;: { # Definition of the experiment. # The definition of the experiment.
    &quot;condition&quot;: &quot;A String&quot;, # The condition defines which subset of sessions are selected for this experiment. If not specified, all sessions are eligible. E.g. &quot;query_input.language_code=en&quot; See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).
    &quot;versionVariants&quot;: { # A list of flow version variants. # The flow versions as the variants of this experiment.
      &quot;variants&quot;: [ # A list of flow version variants.
        { # A single flow version with specified traffic allocation.
          &quot;isControlGroup&quot;: True or False, # Whether the variant is for the control group.
          &quot;trafficAllocation&quot;: 3.14, # Percentage of the traffic which should be routed to this version of flow. Traffic allocation for a single flow must sum up to 1.0.
          &quot;version&quot;: &quot;A String&quot;, # The name of the flow version. Format: `projects//locations//agents//flows//versions/`.
        },
      ],
    },
  },
  &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
  &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
  &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
  &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
  &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
  &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
  &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
    &quot;lastUpdateTime&quot;: &quot;A String&quot;, # The last time the experiment&#x27;s stats data was updated. Will have default value if stats have never been computed for this experiment.
    &quot;versionMetrics&quot;: [ # Version variants and metrics.
      { # Version variant and associated metrics.
        &quot;metrics&quot;: [ # The metrics and corresponding confidence intervals in the inference result.
          { # Metric and corresponding confidence intervals.
            &quot;confidenceInterval&quot;: { # A confidence interval is a range of possible values for the experiment objective you are trying to measure. # The probability that the treatment is better than all other treatments in the experiment
              &quot;confidenceLevel&quot;: 3.14, # The confidence level used to construct the interval, i.e. there is X% chance that the true value is within this interval.
              &quot;lowerBound&quot;: 3.14, # Lower bound of the interval.
              &quot;ratio&quot;: 3.14, # The percent change between an experiment metric&#x27;s value and the value for its control.
              &quot;upperBound&quot;: 3.14, # Upper bound of the interval.
            },
            &quot;count&quot;: 3.14, # Count value of a metric.
            &quot;countType&quot;: &quot;A String&quot;, # Count-based metric type. Only one of type or count_type is specified in each Metric.
            &quot;ratio&quot;: 3.14, # Ratio value of a metric.
            &quot;type&quot;: &quot;A String&quot;, # Ratio-based metric type. Only one of type or count_type is specified in each Metric.
          },
        ],
        &quot;sessionCount&quot;: 42, # Number of sessions that were allocated to this version.
        &quot;version&quot;: &quot;A String&quot;, # The name of the flow Version. Format: `projects//locations//agents//flows//versions/`.
      },
    ],
  },
  &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
  &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
    { # The history of variants update.
      &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
      &quot;versionVariants&quot;: { # A list of flow version variants. # The flow versions as the variants.
        &quot;variants&quot;: [ # A list of flow version variants.
          { # A single flow version with specified traffic allocation.
            &quot;isControlGroup&quot;: True or False, # Whether the variant is for the control group.
            &quot;trafficAllocation&quot;: 3.14, # Percentage of the traffic which should be routed to this version of flow. Traffic allocation for a single flow must sum up to 1.0.
            &quot;version&quot;: &quot;A String&quot;, # The name of the flow version. Format: `projects//locations//agents//flows//versions/`.
          },
        ],
      },
    },
  ],
}</pre>
</div>

</body></html>