sig
  module Variations :
    sig
      type t = {
        name : string;
        status : string;
        url : string;
        weight : float;
        won : bool;
      }
      val name :
        (GapiAnalyticsV3Model.Experiment.Variations.t, string) GapiLens.t
      val status :
        (GapiAnalyticsV3Model.Experiment.Variations.t, string) GapiLens.t
      val url :
        (GapiAnalyticsV3Model.Experiment.Variations.t, string) GapiLens.t
      val weight :
        (GapiAnalyticsV3Model.Experiment.Variations.t, float) GapiLens.t
      val won :
        (GapiAnalyticsV3Model.Experiment.Variations.t, bool) GapiLens.t
      val empty : GapiAnalyticsV3Model.Experiment.Variations.t
      val render :
        GapiAnalyticsV3Model.Experiment.Variations.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.Experiment.Variations.t ->
        GapiJson.json_data_model ->
        GapiAnalyticsV3Model.Experiment.Variations.t
    end
  module ParentLink :
    sig
      type t = { href : string; _type : string; }
      val href :
        (GapiAnalyticsV3Model.Experiment.ParentLink.t, string) GapiLens.t
      val _type :
        (GapiAnalyticsV3Model.Experiment.ParentLink.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.Experiment.ParentLink.t
      val render :
        GapiAnalyticsV3Model.Experiment.ParentLink.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.Experiment.ParentLink.t ->
        GapiJson.json_data_model ->
        GapiAnalyticsV3Model.Experiment.ParentLink.t
    end
  type t = {
    accountId : string;
    created : GapiDate.t;
    description : string;
    editableInGaUi : bool;
    endTime : GapiDate.t;
    equalWeighting : bool;
    id : string;
    internalWebPropertyId : string;
    kind : string;
    minimumExperimentLengthInDays : int;
    name : string;
    objectiveMetric : string;
    optimizationType : string;
    parentLink : GapiAnalyticsV3Model.Experiment.ParentLink.t;
    profileId : string;
    reasonExperimentEnded : string;
    rewriteVariationUrlsAsOriginal : bool;
    selfLink : string;
    servingFramework : string;
    snippet : string;
    startTime : GapiDate.t;
    status : string;
    trafficCoverage : float;
    updated : GapiDate.t;
    variations : GapiAnalyticsV3Model.Experiment.Variations.t list;
    webPropertyId : string;
    winnerConfidenceLevel : float;
    winnerFound : bool;
  }
  val accountId : (GapiAnalyticsV3Model.Experiment.t, string) GapiLens.t
  val created : (GapiAnalyticsV3Model.Experiment.t, GapiDate.t) GapiLens.t
  val description : (GapiAnalyticsV3Model.Experiment.t, string) GapiLens.t
  val editableInGaUi : (GapiAnalyticsV3Model.Experiment.t, bool) GapiLens.t
  val endTime : (GapiAnalyticsV3Model.Experiment.t, GapiDate.t) GapiLens.t
  val equalWeighting : (GapiAnalyticsV3Model.Experiment.t, bool) GapiLens.t
  val id : (GapiAnalyticsV3Model.Experiment.t, string) GapiLens.t
  val internalWebPropertyId :
    (GapiAnalyticsV3Model.Experiment.t, string) GapiLens.t
  val kind : (GapiAnalyticsV3Model.Experiment.t, string) GapiLens.t
  val minimumExperimentLengthInDays :
    (GapiAnalyticsV3Model.Experiment.t, int) GapiLens.t
  val name : (GapiAnalyticsV3Model.Experiment.t, string) GapiLens.t
  val objectiveMetric :
    (GapiAnalyticsV3Model.Experiment.t, string) GapiLens.t
  val optimizationType :
    (GapiAnalyticsV3Model.Experiment.t, string) GapiLens.t
  val parentLink :
    (GapiAnalyticsV3Model.Experiment.t,
     GapiAnalyticsV3Model.Experiment.ParentLink.t)
    GapiLens.t
  val profileId : (GapiAnalyticsV3Model.Experiment.t, string) GapiLens.t
  val reasonExperimentEnded :
    (GapiAnalyticsV3Model.Experiment.t, string) GapiLens.t
  val rewriteVariationUrlsAsOriginal :
    (GapiAnalyticsV3Model.Experiment.t, bool) GapiLens.t
  val selfLink : (GapiAnalyticsV3Model.Experiment.t, string) GapiLens.t
  val servingFramework :
    (GapiAnalyticsV3Model.Experiment.t, string) GapiLens.t
  val snippet : (GapiAnalyticsV3Model.Experiment.t, string) GapiLens.t
  val startTime : (GapiAnalyticsV3Model.Experiment.t, GapiDate.t) GapiLens.t
  val status : (GapiAnalyticsV3Model.Experiment.t, string) GapiLens.t
  val trafficCoverage : (GapiAnalyticsV3Model.Experiment.t, float) GapiLens.t
  val updated : (GapiAnalyticsV3Model.Experiment.t, GapiDate.t) GapiLens.t
  val variations :
    (GapiAnalyticsV3Model.Experiment.t,
     GapiAnalyticsV3Model.Experiment.Variations.t list)
    GapiLens.t
  val webPropertyId : (GapiAnalyticsV3Model.Experiment.t, string) GapiLens.t
  val winnerConfidenceLevel :
    (GapiAnalyticsV3Model.Experiment.t, float) GapiLens.t
  val winnerFound : (GapiAnalyticsV3Model.Experiment.t, bool) GapiLens.t
  val empty : GapiAnalyticsV3Model.Experiment.t
  val render :
    GapiAnalyticsV3Model.Experiment.t -> GapiJson.json_data_model list
  val parse :
    GapiAnalyticsV3Model.Experiment.t ->
    GapiJson.json_data_model -> GapiAnalyticsV3Model.Experiment.t
  val to_data_model :
    GapiAnalyticsV3Model.Experiment.t -> GapiJson.json_data_model
  val of_data_model :
    GapiJson.json_data_model -> GapiAnalyticsV3Model.Experiment.t
end