updateExperimentRun method

Future<ExperimentRun> updateExperimentRun({
  1. required String applicationIdentifier,
  2. required String experimentDefinitionIdentifier,
  3. required int run,
  4. DeploymentParameters? deploymentParameters,
  5. String? description,
  6. double? exposurePercentage,
  7. TreatmentOverrides? treatmentOverrides,
})

Updates a running experiment. Use this operation to increase audience exposure, modify treatment assignment overrides, or update the description of an active experiment run. Audience exposure can only be increased, not decreased.

May throw BadRequestException. May throw ConflictException. May throw InternalServerException. May throw ResourceNotFoundException.

Parameter applicationIdentifier : The application ID or name.

Parameter experimentDefinitionIdentifier : The experiment definition ID or name.

Parameter run : The run number to update.

Parameter deploymentParameters : The updated deployment parameters for the experiment run.

Parameter description : An updated description for the experiment run.

Parameter exposurePercentage : The new exposure percentage. This value can only be increased from the current setting.

Parameter treatmentOverrides : The updated treatment assignment overrides that assign specific entity IDs to treatments, bypassing random assignment.

Implementation

Future<ExperimentRun> updateExperimentRun({
  required String applicationIdentifier,
  required String experimentDefinitionIdentifier,
  required int run,
  DeploymentParameters? deploymentParameters,
  String? description,
  double? exposurePercentage,
  TreatmentOverrides? treatmentOverrides,
}) async {
  _s.validateNumRange(
    'run',
    run,
    1,
    1152921504606846976,
    isRequired: true,
  );
  _s.validateNumRange(
    'exposurePercentage',
    exposurePercentage,
    0.0,
    100.0,
  );
  final $payload = <String, dynamic>{
    if (deploymentParameters != null)
      'DeploymentParameters': deploymentParameters,
    if (description != null) 'Description': description,
    if (exposurePercentage != null)
      'ExposurePercentage': _s.encodeJsonDouble(exposurePercentage),
    if (treatmentOverrides != null) 'TreatmentOverrides': treatmentOverrides,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'PATCH',
    requestUri:
        '/applications/${Uri.encodeComponent(applicationIdentifier)}/experimentdefinitions/${Uri.encodeComponent(experimentDefinitionIdentifier)}/experimentruns/${Uri.encodeComponent(run.toString())}/update',
    exceptionFnMap: _exceptionFns,
  );
  return ExperimentRun.fromJson(response);
}