sig
  module UnsampledReport :
    sig
      module DriveDownloadDetails :
        sig
          type t = { documentId : string; }
          val documentId :
            (GapiAnalyticsV3Model.UnsampledReport.DriveDownloadDetails.t,
             string)
            GapiLens.t
          val empty :
            GapiAnalyticsV3Model.UnsampledReport.DriveDownloadDetails.t
          val render :
            GapiAnalyticsV3Model.UnsampledReport.DriveDownloadDetails.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.UnsampledReport.DriveDownloadDetails.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.UnsampledReport.DriveDownloadDetails.t
        end
      module CloudStorageDownloadDetails :
        sig
          type t = { bucketId : string; objectId : string; }
          val bucketId :
            (GapiAnalyticsV3Model.UnsampledReport.CloudStorageDownloadDetails.t,
             string)
            GapiLens.t
          val objectId :
            (GapiAnalyticsV3Model.UnsampledReport.CloudStorageDownloadDetails.t,
             string)
            GapiLens.t
          val empty :
            GapiAnalyticsV3Model.UnsampledReport.CloudStorageDownloadDetails.t
          val render :
            GapiAnalyticsV3Model.UnsampledReport.CloudStorageDownloadDetails.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.UnsampledReport.CloudStorageDownloadDetails.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.UnsampledReport.CloudStorageDownloadDetails.t
        end
      type t = {
        accountId : string;
        cloudStorageDownloadDetails :
          GapiAnalyticsV3Model.UnsampledReport.CloudStorageDownloadDetails.t;
        created : GapiDate.t;
        dimensions : string;
        downloadType : string;
        driveDownloadDetails :
          GapiAnalyticsV3Model.UnsampledReport.DriveDownloadDetails.t;
        end_date : string;
        filters : string;
        id : string;
        kind : string;
        metrics : string;
        profileId : string;
        segment : string;
        selfLink : string;
        start_date : string;
        status : string;
        title : string;
        updated : GapiDate.t;
        webPropertyId : string;
      }
      val accountId :
        (GapiAnalyticsV3Model.UnsampledReport.t, string) GapiLens.t
      val cloudStorageDownloadDetails :
        (GapiAnalyticsV3Model.UnsampledReport.t,
         GapiAnalyticsV3Model.UnsampledReport.CloudStorageDownloadDetails.t)
        GapiLens.t
      val created :
        (GapiAnalyticsV3Model.UnsampledReport.t, GapiDate.t) GapiLens.t
      val dimensions :
        (GapiAnalyticsV3Model.UnsampledReport.t, string) GapiLens.t
      val downloadType :
        (GapiAnalyticsV3Model.UnsampledReport.t, string) GapiLens.t
      val driveDownloadDetails :
        (GapiAnalyticsV3Model.UnsampledReport.t,
         GapiAnalyticsV3Model.UnsampledReport.DriveDownloadDetails.t)
        GapiLens.t
      val end_date :
        (GapiAnalyticsV3Model.UnsampledReport.t, string) GapiLens.t
      val filters :
        (GapiAnalyticsV3Model.UnsampledReport.t, string) GapiLens.t
      val id : (GapiAnalyticsV3Model.UnsampledReport.t, string) GapiLens.t
      val kind : (GapiAnalyticsV3Model.UnsampledReport.t, string) GapiLens.t
      val metrics :
        (GapiAnalyticsV3Model.UnsampledReport.t, string) GapiLens.t
      val profileId :
        (GapiAnalyticsV3Model.UnsampledReport.t, string) GapiLens.t
      val segment :
        (GapiAnalyticsV3Model.UnsampledReport.t, string) GapiLens.t
      val selfLink :
        (GapiAnalyticsV3Model.UnsampledReport.t, string) GapiLens.t
      val start_date :
        (GapiAnalyticsV3Model.UnsampledReport.t, string) GapiLens.t
      val status :
        (GapiAnalyticsV3Model.UnsampledReport.t, string) GapiLens.t
      val title : (GapiAnalyticsV3Model.UnsampledReport.t, string) GapiLens.t
      val updated :
        (GapiAnalyticsV3Model.UnsampledReport.t, GapiDate.t) GapiLens.t
      val webPropertyId :
        (GapiAnalyticsV3Model.UnsampledReport.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.UnsampledReport.t
      val render :
        GapiAnalyticsV3Model.UnsampledReport.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.UnsampledReport.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.UnsampledReport.t
      val to_data_model :
        GapiAnalyticsV3Model.UnsampledReport.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.UnsampledReport.t
    end
  module CustomDimension :
    sig
      module ParentLink :
        sig
          type t = { href : string; _type : string; }
          val href :
            (GapiAnalyticsV3Model.CustomDimension.ParentLink.t, string)
            GapiLens.t
          val _type :
            (GapiAnalyticsV3Model.CustomDimension.ParentLink.t, string)
            GapiLens.t
          val empty : GapiAnalyticsV3Model.CustomDimension.ParentLink.t
          val render :
            GapiAnalyticsV3Model.CustomDimension.ParentLink.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.CustomDimension.ParentLink.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.CustomDimension.ParentLink.t
        end
      type t = {
        accountId : string;
        active : bool;
        created : GapiDate.t;
        id : string;
        index : int;
        kind : string;
        name : string;
        parentLink : GapiAnalyticsV3Model.CustomDimension.ParentLink.t;
        scope : string;
        selfLink : string;
        updated : GapiDate.t;
        webPropertyId : string;
      }
      val accountId :
        (GapiAnalyticsV3Model.CustomDimension.t, string) GapiLens.t
      val active : (GapiAnalyticsV3Model.CustomDimension.t, bool) GapiLens.t
      val created :
        (GapiAnalyticsV3Model.CustomDimension.t, GapiDate.t) GapiLens.t
      val id : (GapiAnalyticsV3Model.CustomDimension.t, string) GapiLens.t
      val index : (GapiAnalyticsV3Model.CustomDimension.t, int) GapiLens.t
      val kind : (GapiAnalyticsV3Model.CustomDimension.t, string) GapiLens.t
      val name : (GapiAnalyticsV3Model.CustomDimension.t, string) GapiLens.t
      val parentLink :
        (GapiAnalyticsV3Model.CustomDimension.t,
         GapiAnalyticsV3Model.CustomDimension.ParentLink.t)
        GapiLens.t
      val scope : (GapiAnalyticsV3Model.CustomDimension.t, string) GapiLens.t
      val selfLink :
        (GapiAnalyticsV3Model.CustomDimension.t, string) GapiLens.t
      val updated :
        (GapiAnalyticsV3Model.CustomDimension.t, GapiDate.t) GapiLens.t
      val webPropertyId :
        (GapiAnalyticsV3Model.CustomDimension.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.CustomDimension.t
      val render :
        GapiAnalyticsV3Model.CustomDimension.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.CustomDimension.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.CustomDimension.t
      val to_data_model :
        GapiAnalyticsV3Model.CustomDimension.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.CustomDimension.t
    end
  module CustomDimensions :
    sig
      type t = {
        items : GapiAnalyticsV3Model.CustomDimension.t list;
        itemsPerPage : int;
        kind : string;
        nextLink : string;
        previousLink : string;
        startIndex : int;
        totalResults : int;
        username : string;
      }
      val items :
        (GapiAnalyticsV3Model.CustomDimensions.t,
         GapiAnalyticsV3Model.CustomDimension.t list)
        GapiLens.t
      val itemsPerPage :
        (GapiAnalyticsV3Model.CustomDimensions.t, int) GapiLens.t
      val kind : (GapiAnalyticsV3Model.CustomDimensions.t, string) GapiLens.t
      val nextLink :
        (GapiAnalyticsV3Model.CustomDimensions.t, string) GapiLens.t
      val previousLink :
        (GapiAnalyticsV3Model.CustomDimensions.t, string) GapiLens.t
      val startIndex :
        (GapiAnalyticsV3Model.CustomDimensions.t, int) GapiLens.t
      val totalResults :
        (GapiAnalyticsV3Model.CustomDimensions.t, int) GapiLens.t
      val username :
        (GapiAnalyticsV3Model.CustomDimensions.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.CustomDimensions.t
      val render :
        GapiAnalyticsV3Model.CustomDimensions.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.CustomDimensions.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.CustomDimensions.t
      val to_data_model :
        GapiAnalyticsV3Model.CustomDimensions.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.CustomDimensions.t
    end
  module ProfileSummary :
    sig
      type t = { id : string; kind : string; name : string; _type : string; }
      val id : (GapiAnalyticsV3Model.ProfileSummary.t, string) GapiLens.t
      val kind : (GapiAnalyticsV3Model.ProfileSummary.t, string) GapiLens.t
      val name : (GapiAnalyticsV3Model.ProfileSummary.t, string) GapiLens.t
      val _type : (GapiAnalyticsV3Model.ProfileSummary.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.ProfileSummary.t
      val render :
        GapiAnalyticsV3Model.ProfileSummary.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.ProfileSummary.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.ProfileSummary.t
      val to_data_model :
        GapiAnalyticsV3Model.ProfileSummary.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.ProfileSummary.t
    end
  module Column :
    sig
      type t = {
        attributes : (string * string) list;
        id : string;
        kind : string;
      }
      val attributes :
        (GapiAnalyticsV3Model.Column.t, (string * string) list) GapiLens.t
      val id : (GapiAnalyticsV3Model.Column.t, string) GapiLens.t
      val kind : (GapiAnalyticsV3Model.Column.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.Column.t
      val render :
        GapiAnalyticsV3Model.Column.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.Column.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Column.t
      val to_data_model :
        GapiAnalyticsV3Model.Column.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Column.t
    end
  module Columns :
    sig
      type t = {
        attributeNames : string list;
        etag : string;
        items : GapiAnalyticsV3Model.Column.t list;
        kind : string;
        totalResults : int;
      }
      val attributeNames :
        (GapiAnalyticsV3Model.Columns.t, string list) GapiLens.t
      val etag : (GapiAnalyticsV3Model.Columns.t, string) GapiLens.t
      val items :
        (GapiAnalyticsV3Model.Columns.t, GapiAnalyticsV3Model.Column.t list)
        GapiLens.t
      val kind : (GapiAnalyticsV3Model.Columns.t, string) GapiLens.t
      val totalResults : (GapiAnalyticsV3Model.Columns.t, int) GapiLens.t
      val empty : GapiAnalyticsV3Model.Columns.t
      val render :
        GapiAnalyticsV3Model.Columns.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.Columns.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Columns.t
      val to_data_model :
        GapiAnalyticsV3Model.Columns.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Columns.t
    end
  module WebPropertyRef :
    sig
      type t = {
        accountId : string;
        href : string;
        id : string;
        internalWebPropertyId : string;
        kind : string;
        name : string;
      }
      val accountId :
        (GapiAnalyticsV3Model.WebPropertyRef.t, string) GapiLens.t
      val href : (GapiAnalyticsV3Model.WebPropertyRef.t, string) GapiLens.t
      val id : (GapiAnalyticsV3Model.WebPropertyRef.t, string) GapiLens.t
      val internalWebPropertyId :
        (GapiAnalyticsV3Model.WebPropertyRef.t, string) GapiLens.t
      val kind : (GapiAnalyticsV3Model.WebPropertyRef.t, string) GapiLens.t
      val name : (GapiAnalyticsV3Model.WebPropertyRef.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.WebPropertyRef.t
      val render :
        GapiAnalyticsV3Model.WebPropertyRef.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.WebPropertyRef.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.WebPropertyRef.t
      val to_data_model :
        GapiAnalyticsV3Model.WebPropertyRef.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.WebPropertyRef.t
    end
  module AdWordsAccount :
    sig
      type t = {
        autoTaggingEnabled : bool;
        customerId : string;
        kind : string;
      }
      val autoTaggingEnabled :
        (GapiAnalyticsV3Model.AdWordsAccount.t, bool) GapiLens.t
      val customerId :
        (GapiAnalyticsV3Model.AdWordsAccount.t, string) GapiLens.t
      val kind : (GapiAnalyticsV3Model.AdWordsAccount.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.AdWordsAccount.t
      val render :
        GapiAnalyticsV3Model.AdWordsAccount.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.AdWordsAccount.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.AdWordsAccount.t
      val to_data_model :
        GapiAnalyticsV3Model.AdWordsAccount.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.AdWordsAccount.t
    end
  module EntityAdWordsLink :
    sig
      module Entity :
        sig
          type t = {
            webPropertyRef : GapiAnalyticsV3Model.WebPropertyRef.t;
          }
          val webPropertyRef :
            (GapiAnalyticsV3Model.EntityAdWordsLink.Entity.t,
             GapiAnalyticsV3Model.WebPropertyRef.t)
            GapiLens.t
          val empty : GapiAnalyticsV3Model.EntityAdWordsLink.Entity.t
          val render :
            GapiAnalyticsV3Model.EntityAdWordsLink.Entity.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.EntityAdWordsLink.Entity.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.EntityAdWordsLink.Entity.t
        end
      type t = {
        adWordsAccounts : GapiAnalyticsV3Model.AdWordsAccount.t list;
        entity : GapiAnalyticsV3Model.EntityAdWordsLink.Entity.t;
        id : string;
        kind : string;
        name : string;
        profileIds : string list;
        selfLink : string;
      }
      val adWordsAccounts :
        (GapiAnalyticsV3Model.EntityAdWordsLink.t,
         GapiAnalyticsV3Model.AdWordsAccount.t list)
        GapiLens.t
      val entity :
        (GapiAnalyticsV3Model.EntityAdWordsLink.t,
         GapiAnalyticsV3Model.EntityAdWordsLink.Entity.t)
        GapiLens.t
      val id : (GapiAnalyticsV3Model.EntityAdWordsLink.t, string) GapiLens.t
      val kind :
        (GapiAnalyticsV3Model.EntityAdWordsLink.t, string) GapiLens.t
      val name :
        (GapiAnalyticsV3Model.EntityAdWordsLink.t, string) GapiLens.t
      val profileIds :
        (GapiAnalyticsV3Model.EntityAdWordsLink.t, string list) GapiLens.t
      val selfLink :
        (GapiAnalyticsV3Model.EntityAdWordsLink.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.EntityAdWordsLink.t
      val render :
        GapiAnalyticsV3Model.EntityAdWordsLink.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.EntityAdWordsLink.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.EntityAdWordsLink.t
      val to_data_model :
        GapiAnalyticsV3Model.EntityAdWordsLink.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.EntityAdWordsLink.t
    end
  module EntityAdWordsLinks :
    sig
      type t = {
        items : GapiAnalyticsV3Model.EntityAdWordsLink.t list;
        itemsPerPage : int;
        kind : string;
        nextLink : string;
        previousLink : string;
        startIndex : int;
        totalResults : int;
      }
      val items :
        (GapiAnalyticsV3Model.EntityAdWordsLinks.t,
         GapiAnalyticsV3Model.EntityAdWordsLink.t list)
        GapiLens.t
      val itemsPerPage :
        (GapiAnalyticsV3Model.EntityAdWordsLinks.t, int) GapiLens.t
      val kind :
        (GapiAnalyticsV3Model.EntityAdWordsLinks.t, string) GapiLens.t
      val nextLink :
        (GapiAnalyticsV3Model.EntityAdWordsLinks.t, string) GapiLens.t
      val previousLink :
        (GapiAnalyticsV3Model.EntityAdWordsLinks.t, string) GapiLens.t
      val startIndex :
        (GapiAnalyticsV3Model.EntityAdWordsLinks.t, int) GapiLens.t
      val totalResults :
        (GapiAnalyticsV3Model.EntityAdWordsLinks.t, int) GapiLens.t
      val empty : GapiAnalyticsV3Model.EntityAdWordsLinks.t
      val render :
        GapiAnalyticsV3Model.EntityAdWordsLinks.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.EntityAdWordsLinks.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.EntityAdWordsLinks.t
      val to_data_model :
        GapiAnalyticsV3Model.EntityAdWordsLinks.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.EntityAdWordsLinks.t
    end
  module Segment :
    sig
      type t = {
        created : GapiDate.t;
        definition : string;
        id : string;
        kind : string;
        name : string;
        segmentId : string;
        selfLink : string;
        _type : string;
        updated : GapiDate.t;
      }
      val created : (GapiAnalyticsV3Model.Segment.t, GapiDate.t) GapiLens.t
      val definition : (GapiAnalyticsV3Model.Segment.t, string) GapiLens.t
      val id : (GapiAnalyticsV3Model.Segment.t, string) GapiLens.t
      val kind : (GapiAnalyticsV3Model.Segment.t, string) GapiLens.t
      val name : (GapiAnalyticsV3Model.Segment.t, string) GapiLens.t
      val segmentId : (GapiAnalyticsV3Model.Segment.t, string) GapiLens.t
      val selfLink : (GapiAnalyticsV3Model.Segment.t, string) GapiLens.t
      val _type : (GapiAnalyticsV3Model.Segment.t, string) GapiLens.t
      val updated : (GapiAnalyticsV3Model.Segment.t, GapiDate.t) GapiLens.t
      val empty : GapiAnalyticsV3Model.Segment.t
      val render :
        GapiAnalyticsV3Model.Segment.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.Segment.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Segment.t
      val to_data_model :
        GapiAnalyticsV3Model.Segment.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Segment.t
    end
  module Experiment :
    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
  module WebPropertySummary :
    sig
      type t = {
        id : string;
        internalWebPropertyId : string;
        kind : string;
        level : string;
        name : string;
        profiles : GapiAnalyticsV3Model.ProfileSummary.t list;
        websiteUrl : string;
      }
      val id : (GapiAnalyticsV3Model.WebPropertySummary.t, string) GapiLens.t
      val internalWebPropertyId :
        (GapiAnalyticsV3Model.WebPropertySummary.t, string) GapiLens.t
      val kind :
        (GapiAnalyticsV3Model.WebPropertySummary.t, string) GapiLens.t
      val level :
        (GapiAnalyticsV3Model.WebPropertySummary.t, string) GapiLens.t
      val name :
        (GapiAnalyticsV3Model.WebPropertySummary.t, string) GapiLens.t
      val profiles :
        (GapiAnalyticsV3Model.WebPropertySummary.t,
         GapiAnalyticsV3Model.ProfileSummary.t list)
        GapiLens.t
      val websiteUrl :
        (GapiAnalyticsV3Model.WebPropertySummary.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.WebPropertySummary.t
      val render :
        GapiAnalyticsV3Model.WebPropertySummary.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.WebPropertySummary.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.WebPropertySummary.t
      val to_data_model :
        GapiAnalyticsV3Model.WebPropertySummary.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.WebPropertySummary.t
    end
  module Experiments :
    sig
      type t = {
        items : GapiAnalyticsV3Model.Experiment.t list;
        itemsPerPage : int;
        kind : string;
        nextLink : string;
        previousLink : string;
        startIndex : int;
        totalResults : int;
        username : string;
      }
      val items :
        (GapiAnalyticsV3Model.Experiments.t,
         GapiAnalyticsV3Model.Experiment.t list)
        GapiLens.t
      val itemsPerPage : (GapiAnalyticsV3Model.Experiments.t, int) GapiLens.t
      val kind : (GapiAnalyticsV3Model.Experiments.t, string) GapiLens.t
      val nextLink : (GapiAnalyticsV3Model.Experiments.t, string) GapiLens.t
      val previousLink :
        (GapiAnalyticsV3Model.Experiments.t, string) GapiLens.t
      val startIndex : (GapiAnalyticsV3Model.Experiments.t, int) GapiLens.t
      val totalResults : (GapiAnalyticsV3Model.Experiments.t, int) GapiLens.t
      val username : (GapiAnalyticsV3Model.Experiments.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.Experiments.t
      val render :
        GapiAnalyticsV3Model.Experiments.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.Experiments.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Experiments.t
      val to_data_model :
        GapiAnalyticsV3Model.Experiments.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Experiments.t
    end
  module Profile :
    sig
      module Permissions :
        sig
          type t = { effective : string list; }
          val effective :
            (GapiAnalyticsV3Model.Profile.Permissions.t, string list)
            GapiLens.t
          val empty : GapiAnalyticsV3Model.Profile.Permissions.t
          val render :
            GapiAnalyticsV3Model.Profile.Permissions.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.Profile.Permissions.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.Profile.Permissions.t
        end
      module ParentLink :
        sig
          type t = { href : string; _type : string; }
          val href :
            (GapiAnalyticsV3Model.Profile.ParentLink.t, string) GapiLens.t
          val _type :
            (GapiAnalyticsV3Model.Profile.ParentLink.t, string) GapiLens.t
          val empty : GapiAnalyticsV3Model.Profile.ParentLink.t
          val render :
            GapiAnalyticsV3Model.Profile.ParentLink.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.Profile.ParentLink.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.Profile.ParentLink.t
        end
      module ChildLink :
        sig
          type t = { href : string; _type : string; }
          val href :
            (GapiAnalyticsV3Model.Profile.ChildLink.t, string) GapiLens.t
          val _type :
            (GapiAnalyticsV3Model.Profile.ChildLink.t, string) GapiLens.t
          val empty : GapiAnalyticsV3Model.Profile.ChildLink.t
          val render :
            GapiAnalyticsV3Model.Profile.ChildLink.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.Profile.ChildLink.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.Profile.ChildLink.t
        end
      type t = {
        accountId : string;
        childLink : GapiAnalyticsV3Model.Profile.ChildLink.t;
        created : GapiDate.t;
        currency : string;
        defaultPage : string;
        eCommerceTracking : bool;
        enhancedECommerceTracking : bool;
        excludeQueryParameters : string;
        id : string;
        internalWebPropertyId : string;
        kind : string;
        name : string;
        parentLink : GapiAnalyticsV3Model.Profile.ParentLink.t;
        permissions : GapiAnalyticsV3Model.Profile.Permissions.t;
        selfLink : string;
        siteSearchCategoryParameters : string;
        siteSearchQueryParameters : string;
        stripSiteSearchCategoryParameters : bool;
        stripSiteSearchQueryParameters : bool;
        timezone : string;
        _type : string;
        updated : GapiDate.t;
        webPropertyId : string;
        websiteUrl : string;
      }
      val accountId : (GapiAnalyticsV3Model.Profile.t, string) GapiLens.t
      val childLink :
        (GapiAnalyticsV3Model.Profile.t,
         GapiAnalyticsV3Model.Profile.ChildLink.t)
        GapiLens.t
      val created : (GapiAnalyticsV3Model.Profile.t, GapiDate.t) GapiLens.t
      val currency : (GapiAnalyticsV3Model.Profile.t, string) GapiLens.t
      val defaultPage : (GapiAnalyticsV3Model.Profile.t, string) GapiLens.t
      val eCommerceTracking :
        (GapiAnalyticsV3Model.Profile.t, bool) GapiLens.t
      val enhancedECommerceTracking :
        (GapiAnalyticsV3Model.Profile.t, bool) GapiLens.t
      val excludeQueryParameters :
        (GapiAnalyticsV3Model.Profile.t, string) GapiLens.t
      val id : (GapiAnalyticsV3Model.Profile.t, string) GapiLens.t
      val internalWebPropertyId :
        (GapiAnalyticsV3Model.Profile.t, string) GapiLens.t
      val kind : (GapiAnalyticsV3Model.Profile.t, string) GapiLens.t
      val name : (GapiAnalyticsV3Model.Profile.t, string) GapiLens.t
      val parentLink :
        (GapiAnalyticsV3Model.Profile.t,
         GapiAnalyticsV3Model.Profile.ParentLink.t)
        GapiLens.t
      val permissions :
        (GapiAnalyticsV3Model.Profile.t,
         GapiAnalyticsV3Model.Profile.Permissions.t)
        GapiLens.t
      val selfLink : (GapiAnalyticsV3Model.Profile.t, string) GapiLens.t
      val siteSearchCategoryParameters :
        (GapiAnalyticsV3Model.Profile.t, string) GapiLens.t
      val siteSearchQueryParameters :
        (GapiAnalyticsV3Model.Profile.t, string) GapiLens.t
      val stripSiteSearchCategoryParameters :
        (GapiAnalyticsV3Model.Profile.t, bool) GapiLens.t
      val stripSiteSearchQueryParameters :
        (GapiAnalyticsV3Model.Profile.t, bool) GapiLens.t
      val timezone : (GapiAnalyticsV3Model.Profile.t, string) GapiLens.t
      val _type : (GapiAnalyticsV3Model.Profile.t, string) GapiLens.t
      val updated : (GapiAnalyticsV3Model.Profile.t, GapiDate.t) GapiLens.t
      val webPropertyId : (GapiAnalyticsV3Model.Profile.t, string) GapiLens.t
      val websiteUrl : (GapiAnalyticsV3Model.Profile.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.Profile.t
      val render :
        GapiAnalyticsV3Model.Profile.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.Profile.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Profile.t
      val to_data_model :
        GapiAnalyticsV3Model.Profile.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Profile.t
    end
  module Webproperty :
    sig
      module Permissions :
        sig
          type t = { effective : string list; }
          val effective :
            (GapiAnalyticsV3Model.Webproperty.Permissions.t, string list)
            GapiLens.t
          val empty : GapiAnalyticsV3Model.Webproperty.Permissions.t
          val render :
            GapiAnalyticsV3Model.Webproperty.Permissions.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.Webproperty.Permissions.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.Webproperty.Permissions.t
        end
      module ParentLink :
        sig
          type t = { href : string; _type : string; }
          val href :
            (GapiAnalyticsV3Model.Webproperty.ParentLink.t, string)
            GapiLens.t
          val _type :
            (GapiAnalyticsV3Model.Webproperty.ParentLink.t, string)
            GapiLens.t
          val empty : GapiAnalyticsV3Model.Webproperty.ParentLink.t
          val render :
            GapiAnalyticsV3Model.Webproperty.ParentLink.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.Webproperty.ParentLink.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.Webproperty.ParentLink.t
        end
      module ChildLink :
        sig
          type t = { href : string; _type : string; }
          val href :
            (GapiAnalyticsV3Model.Webproperty.ChildLink.t, string) GapiLens.t
          val _type :
            (GapiAnalyticsV3Model.Webproperty.ChildLink.t, string) GapiLens.t
          val empty : GapiAnalyticsV3Model.Webproperty.ChildLink.t
          val render :
            GapiAnalyticsV3Model.Webproperty.ChildLink.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.Webproperty.ChildLink.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.Webproperty.ChildLink.t
        end
      type t = {
        accountId : string;
        childLink : GapiAnalyticsV3Model.Webproperty.ChildLink.t;
        created : GapiDate.t;
        defaultProfileId : int64;
        id : string;
        industryVertical : string;
        internalWebPropertyId : string;
        kind : string;
        level : string;
        name : string;
        parentLink : GapiAnalyticsV3Model.Webproperty.ParentLink.t;
        permissions : GapiAnalyticsV3Model.Webproperty.Permissions.t;
        profileCount : int;
        selfLink : string;
        updated : GapiDate.t;
        websiteUrl : string;
      }
      val accountId : (GapiAnalyticsV3Model.Webproperty.t, string) GapiLens.t
      val childLink :
        (GapiAnalyticsV3Model.Webproperty.t,
         GapiAnalyticsV3Model.Webproperty.ChildLink.t)
        GapiLens.t
      val created :
        (GapiAnalyticsV3Model.Webproperty.t, GapiDate.t) GapiLens.t
      val defaultProfileId :
        (GapiAnalyticsV3Model.Webproperty.t, int64) GapiLens.t
      val id : (GapiAnalyticsV3Model.Webproperty.t, string) GapiLens.t
      val industryVertical :
        (GapiAnalyticsV3Model.Webproperty.t, string) GapiLens.t
      val internalWebPropertyId :
        (GapiAnalyticsV3Model.Webproperty.t, string) GapiLens.t
      val kind : (GapiAnalyticsV3Model.Webproperty.t, string) GapiLens.t
      val level : (GapiAnalyticsV3Model.Webproperty.t, string) GapiLens.t
      val name : (GapiAnalyticsV3Model.Webproperty.t, string) GapiLens.t
      val parentLink :
        (GapiAnalyticsV3Model.Webproperty.t,
         GapiAnalyticsV3Model.Webproperty.ParentLink.t)
        GapiLens.t
      val permissions :
        (GapiAnalyticsV3Model.Webproperty.t,
         GapiAnalyticsV3Model.Webproperty.Permissions.t)
        GapiLens.t
      val profileCount : (GapiAnalyticsV3Model.Webproperty.t, int) GapiLens.t
      val selfLink : (GapiAnalyticsV3Model.Webproperty.t, string) GapiLens.t
      val updated :
        (GapiAnalyticsV3Model.Webproperty.t, GapiDate.t) GapiLens.t
      val websiteUrl :
        (GapiAnalyticsV3Model.Webproperty.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.Webproperty.t
      val render :
        GapiAnalyticsV3Model.Webproperty.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.Webproperty.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Webproperty.t
      val to_data_model :
        GapiAnalyticsV3Model.Webproperty.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Webproperty.t
    end
  module Webproperties :
    sig
      type t = {
        items : GapiAnalyticsV3Model.Webproperty.t list;
        itemsPerPage : int;
        kind : string;
        nextLink : string;
        previousLink : string;
        startIndex : int;
        totalResults : int;
        username : string;
      }
      val items :
        (GapiAnalyticsV3Model.Webproperties.t,
         GapiAnalyticsV3Model.Webproperty.t list)
        GapiLens.t
      val itemsPerPage :
        (GapiAnalyticsV3Model.Webproperties.t, int) GapiLens.t
      val kind : (GapiAnalyticsV3Model.Webproperties.t, string) GapiLens.t
      val nextLink :
        (GapiAnalyticsV3Model.Webproperties.t, string) GapiLens.t
      val previousLink :
        (GapiAnalyticsV3Model.Webproperties.t, string) GapiLens.t
      val startIndex : (GapiAnalyticsV3Model.Webproperties.t, int) GapiLens.t
      val totalResults :
        (GapiAnalyticsV3Model.Webproperties.t, int) GapiLens.t
      val username :
        (GapiAnalyticsV3Model.Webproperties.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.Webproperties.t
      val render :
        GapiAnalyticsV3Model.Webproperties.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.Webproperties.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Webproperties.t
      val to_data_model :
        GapiAnalyticsV3Model.Webproperties.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Webproperties.t
    end
  module AccountRef :
    sig
      type t = { href : string; id : string; kind : string; name : string; }
      val href : (GapiAnalyticsV3Model.AccountRef.t, string) GapiLens.t
      val id : (GapiAnalyticsV3Model.AccountRef.t, string) GapiLens.t
      val kind : (GapiAnalyticsV3Model.AccountRef.t, string) GapiLens.t
      val name : (GapiAnalyticsV3Model.AccountRef.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.AccountRef.t
      val render :
        GapiAnalyticsV3Model.AccountRef.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.AccountRef.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.AccountRef.t
      val to_data_model :
        GapiAnalyticsV3Model.AccountRef.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.AccountRef.t
    end
  module ProfileRef :
    sig
      type t = {
        accountId : string;
        href : string;
        id : string;
        internalWebPropertyId : string;
        kind : string;
        name : string;
        webPropertyId : string;
      }
      val accountId : (GapiAnalyticsV3Model.ProfileRef.t, string) GapiLens.t
      val href : (GapiAnalyticsV3Model.ProfileRef.t, string) GapiLens.t
      val id : (GapiAnalyticsV3Model.ProfileRef.t, string) GapiLens.t
      val internalWebPropertyId :
        (GapiAnalyticsV3Model.ProfileRef.t, string) GapiLens.t
      val kind : (GapiAnalyticsV3Model.ProfileRef.t, string) GapiLens.t
      val name : (GapiAnalyticsV3Model.ProfileRef.t, string) GapiLens.t
      val webPropertyId :
        (GapiAnalyticsV3Model.ProfileRef.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.ProfileRef.t
      val render :
        GapiAnalyticsV3Model.ProfileRef.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.ProfileRef.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.ProfileRef.t
      val to_data_model :
        GapiAnalyticsV3Model.ProfileRef.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.ProfileRef.t
    end
  module UserRef :
    sig
      type t = { email : string; id : string; kind : string; }
      val email : (GapiAnalyticsV3Model.UserRef.t, string) GapiLens.t
      val id : (GapiAnalyticsV3Model.UserRef.t, string) GapiLens.t
      val kind : (GapiAnalyticsV3Model.UserRef.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.UserRef.t
      val render :
        GapiAnalyticsV3Model.UserRef.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.UserRef.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.UserRef.t
      val to_data_model :
        GapiAnalyticsV3Model.UserRef.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.UserRef.t
    end
  module EntityUserLink :
    sig
      module Permissions :
        sig
          type t = { effective : string list; local : string list; }
          val effective :
            (GapiAnalyticsV3Model.EntityUserLink.Permissions.t, string list)
            GapiLens.t
          val local :
            (GapiAnalyticsV3Model.EntityUserLink.Permissions.t, string list)
            GapiLens.t
          val empty : GapiAnalyticsV3Model.EntityUserLink.Permissions.t
          val render :
            GapiAnalyticsV3Model.EntityUserLink.Permissions.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.EntityUserLink.Permissions.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.EntityUserLink.Permissions.t
        end
      module Entity :
        sig
          type t = {
            accountRef : GapiAnalyticsV3Model.AccountRef.t;
            profileRef : GapiAnalyticsV3Model.ProfileRef.t;
            webPropertyRef : GapiAnalyticsV3Model.WebPropertyRef.t;
          }
          val accountRef :
            (GapiAnalyticsV3Model.EntityUserLink.Entity.t,
             GapiAnalyticsV3Model.AccountRef.t)
            GapiLens.t
          val profileRef :
            (GapiAnalyticsV3Model.EntityUserLink.Entity.t,
             GapiAnalyticsV3Model.ProfileRef.t)
            GapiLens.t
          val webPropertyRef :
            (GapiAnalyticsV3Model.EntityUserLink.Entity.t,
             GapiAnalyticsV3Model.WebPropertyRef.t)
            GapiLens.t
          val empty : GapiAnalyticsV3Model.EntityUserLink.Entity.t
          val render :
            GapiAnalyticsV3Model.EntityUserLink.Entity.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.EntityUserLink.Entity.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.EntityUserLink.Entity.t
        end
      type t = {
        entity : GapiAnalyticsV3Model.EntityUserLink.Entity.t;
        id : string;
        kind : string;
        permissions : GapiAnalyticsV3Model.EntityUserLink.Permissions.t;
        selfLink : string;
        userRef : GapiAnalyticsV3Model.UserRef.t;
      }
      val entity :
        (GapiAnalyticsV3Model.EntityUserLink.t,
         GapiAnalyticsV3Model.EntityUserLink.Entity.t)
        GapiLens.t
      val id : (GapiAnalyticsV3Model.EntityUserLink.t, string) GapiLens.t
      val kind : (GapiAnalyticsV3Model.EntityUserLink.t, string) GapiLens.t
      val permissions :
        (GapiAnalyticsV3Model.EntityUserLink.t,
         GapiAnalyticsV3Model.EntityUserLink.Permissions.t)
        GapiLens.t
      val selfLink :
        (GapiAnalyticsV3Model.EntityUserLink.t, string) GapiLens.t
      val userRef :
        (GapiAnalyticsV3Model.EntityUserLink.t,
         GapiAnalyticsV3Model.UserRef.t)
        GapiLens.t
      val empty : GapiAnalyticsV3Model.EntityUserLink.t
      val render :
        GapiAnalyticsV3Model.EntityUserLink.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.EntityUserLink.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.EntityUserLink.t
      val to_data_model :
        GapiAnalyticsV3Model.EntityUserLink.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.EntityUserLink.t
    end
  module Segments :
    sig
      type t = {
        items : GapiAnalyticsV3Model.Segment.t list;
        itemsPerPage : int;
        kind : string;
        nextLink : string;
        previousLink : string;
        startIndex : int;
        totalResults : int;
        username : string;
      }
      val items :
        (GapiAnalyticsV3Model.Segments.t,
         GapiAnalyticsV3Model.Segment.t list)
        GapiLens.t
      val itemsPerPage : (GapiAnalyticsV3Model.Segments.t, int) GapiLens.t
      val kind : (GapiAnalyticsV3Model.Segments.t, string) GapiLens.t
      val nextLink : (GapiAnalyticsV3Model.Segments.t, string) GapiLens.t
      val previousLink : (GapiAnalyticsV3Model.Segments.t, string) GapiLens.t
      val startIndex : (GapiAnalyticsV3Model.Segments.t, int) GapiLens.t
      val totalResults : (GapiAnalyticsV3Model.Segments.t, int) GapiLens.t
      val username : (GapiAnalyticsV3Model.Segments.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.Segments.t
      val render :
        GapiAnalyticsV3Model.Segments.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.Segments.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Segments.t
      val to_data_model :
        GapiAnalyticsV3Model.Segments.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Segments.t
    end
  module Upload :
    sig
      type t = {
        accountId : int64;
        customDataSourceId : string;
        errors : string list;
        id : string;
        kind : string;
        status : string;
      }
      val accountId : (GapiAnalyticsV3Model.Upload.t, int64) GapiLens.t
      val customDataSourceId :
        (GapiAnalyticsV3Model.Upload.t, string) GapiLens.t
      val errors : (GapiAnalyticsV3Model.Upload.t, string list) GapiLens.t
      val id : (GapiAnalyticsV3Model.Upload.t, string) GapiLens.t
      val kind : (GapiAnalyticsV3Model.Upload.t, string) GapiLens.t
      val status : (GapiAnalyticsV3Model.Upload.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.Upload.t
      val render :
        GapiAnalyticsV3Model.Upload.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.Upload.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Upload.t
      val to_data_model :
        GapiAnalyticsV3Model.Upload.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Upload.t
    end
  module Account :
    sig
      module Permissions :
        sig
          type t = { effective : string list; }
          val effective :
            (GapiAnalyticsV3Model.Account.Permissions.t, string list)
            GapiLens.t
          val empty : GapiAnalyticsV3Model.Account.Permissions.t
          val render :
            GapiAnalyticsV3Model.Account.Permissions.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.Account.Permissions.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.Account.Permissions.t
        end
      module ChildLink :
        sig
          type t = { href : string; _type : string; }
          val href :
            (GapiAnalyticsV3Model.Account.ChildLink.t, string) GapiLens.t
          val _type :
            (GapiAnalyticsV3Model.Account.ChildLink.t, string) GapiLens.t
          val empty : GapiAnalyticsV3Model.Account.ChildLink.t
          val render :
            GapiAnalyticsV3Model.Account.ChildLink.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.Account.ChildLink.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.Account.ChildLink.t
        end
      type t = {
        childLink : GapiAnalyticsV3Model.Account.ChildLink.t;
        created : GapiDate.t;
        id : string;
        kind : string;
        name : string;
        permissions : GapiAnalyticsV3Model.Account.Permissions.t;
        selfLink : string;
        updated : GapiDate.t;
      }
      val childLink :
        (GapiAnalyticsV3Model.Account.t,
         GapiAnalyticsV3Model.Account.ChildLink.t)
        GapiLens.t
      val created : (GapiAnalyticsV3Model.Account.t, GapiDate.t) GapiLens.t
      val id : (GapiAnalyticsV3Model.Account.t, string) GapiLens.t
      val kind : (GapiAnalyticsV3Model.Account.t, string) GapiLens.t
      val name : (GapiAnalyticsV3Model.Account.t, string) GapiLens.t
      val permissions :
        (GapiAnalyticsV3Model.Account.t,
         GapiAnalyticsV3Model.Account.Permissions.t)
        GapiLens.t
      val selfLink : (GapiAnalyticsV3Model.Account.t, string) GapiLens.t
      val updated : (GapiAnalyticsV3Model.Account.t, GapiDate.t) GapiLens.t
      val empty : GapiAnalyticsV3Model.Account.t
      val render :
        GapiAnalyticsV3Model.Account.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.Account.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Account.t
      val to_data_model :
        GapiAnalyticsV3Model.Account.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Account.t
    end
  module AccountTicket :
    sig
      type t = {
        account : GapiAnalyticsV3Model.Account.t;
        id : string;
        kind : string;
        profile : GapiAnalyticsV3Model.Profile.t;
        redirectUri : string;
        webproperty : GapiAnalyticsV3Model.Webproperty.t;
      }
      val account :
        (GapiAnalyticsV3Model.AccountTicket.t,
         GapiAnalyticsV3Model.Account.t)
        GapiLens.t
      val id : (GapiAnalyticsV3Model.AccountTicket.t, string) GapiLens.t
      val kind : (GapiAnalyticsV3Model.AccountTicket.t, string) GapiLens.t
      val profile :
        (GapiAnalyticsV3Model.AccountTicket.t,
         GapiAnalyticsV3Model.Profile.t)
        GapiLens.t
      val redirectUri :
        (GapiAnalyticsV3Model.AccountTicket.t, string) GapiLens.t
      val webproperty :
        (GapiAnalyticsV3Model.AccountTicket.t,
         GapiAnalyticsV3Model.Webproperty.t)
        GapiLens.t
      val empty : GapiAnalyticsV3Model.AccountTicket.t
      val render :
        GapiAnalyticsV3Model.AccountTicket.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.AccountTicket.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.AccountTicket.t
      val to_data_model :
        GapiAnalyticsV3Model.AccountTicket.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.AccountTicket.t
    end
  module CustomDataSource :
    sig
      module ParentLink :
        sig
          type t = { href : string; _type : string; }
          val href :
            (GapiAnalyticsV3Model.CustomDataSource.ParentLink.t, string)
            GapiLens.t
          val _type :
            (GapiAnalyticsV3Model.CustomDataSource.ParentLink.t, string)
            GapiLens.t
          val empty : GapiAnalyticsV3Model.CustomDataSource.ParentLink.t
          val render :
            GapiAnalyticsV3Model.CustomDataSource.ParentLink.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.CustomDataSource.ParentLink.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.CustomDataSource.ParentLink.t
        end
      module ChildLink :
        sig
          type t = { href : string; _type : string; }
          val href :
            (GapiAnalyticsV3Model.CustomDataSource.ChildLink.t, string)
            GapiLens.t
          val _type :
            (GapiAnalyticsV3Model.CustomDataSource.ChildLink.t, string)
            GapiLens.t
          val empty : GapiAnalyticsV3Model.CustomDataSource.ChildLink.t
          val render :
            GapiAnalyticsV3Model.CustomDataSource.ChildLink.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.CustomDataSource.ChildLink.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.CustomDataSource.ChildLink.t
        end
      type t = {
        accountId : string;
        childLink : GapiAnalyticsV3Model.CustomDataSource.ChildLink.t;
        created : GapiDate.t;
        description : string;
        id : string;
        importBehavior : string;
        kind : string;
        name : string;
        parentLink : GapiAnalyticsV3Model.CustomDataSource.ParentLink.t;
        profilesLinked : string list;
        selfLink : string;
        _type : string;
        updated : GapiDate.t;
        uploadType : string;
        webPropertyId : string;
      }
      val accountId :
        (GapiAnalyticsV3Model.CustomDataSource.t, string) GapiLens.t
      val childLink :
        (GapiAnalyticsV3Model.CustomDataSource.t,
         GapiAnalyticsV3Model.CustomDataSource.ChildLink.t)
        GapiLens.t
      val created :
        (GapiAnalyticsV3Model.CustomDataSource.t, GapiDate.t) GapiLens.t
      val description :
        (GapiAnalyticsV3Model.CustomDataSource.t, string) GapiLens.t
      val id : (GapiAnalyticsV3Model.CustomDataSource.t, string) GapiLens.t
      val importBehavior :
        (GapiAnalyticsV3Model.CustomDataSource.t, string) GapiLens.t
      val kind : (GapiAnalyticsV3Model.CustomDataSource.t, string) GapiLens.t
      val name : (GapiAnalyticsV3Model.CustomDataSource.t, string) GapiLens.t
      val parentLink :
        (GapiAnalyticsV3Model.CustomDataSource.t,
         GapiAnalyticsV3Model.CustomDataSource.ParentLink.t)
        GapiLens.t
      val profilesLinked :
        (GapiAnalyticsV3Model.CustomDataSource.t, string list) GapiLens.t
      val selfLink :
        (GapiAnalyticsV3Model.CustomDataSource.t, string) GapiLens.t
      val _type :
        (GapiAnalyticsV3Model.CustomDataSource.t, string) GapiLens.t
      val updated :
        (GapiAnalyticsV3Model.CustomDataSource.t, GapiDate.t) GapiLens.t
      val uploadType :
        (GapiAnalyticsV3Model.CustomDataSource.t, string) GapiLens.t
      val webPropertyId :
        (GapiAnalyticsV3Model.CustomDataSource.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.CustomDataSource.t
      val render :
        GapiAnalyticsV3Model.CustomDataSource.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.CustomDataSource.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.CustomDataSource.t
      val to_data_model :
        GapiAnalyticsV3Model.CustomDataSource.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.CustomDataSource.t
    end
  module CustomDataSources :
    sig
      type t = {
        items : GapiAnalyticsV3Model.CustomDataSource.t list;
        itemsPerPage : int;
        kind : string;
        nextLink : string;
        previousLink : string;
        startIndex : int;
        totalResults : int;
        username : string;
      }
      val items :
        (GapiAnalyticsV3Model.CustomDataSources.t,
         GapiAnalyticsV3Model.CustomDataSource.t list)
        GapiLens.t
      val itemsPerPage :
        (GapiAnalyticsV3Model.CustomDataSources.t, int) GapiLens.t
      val kind :
        (GapiAnalyticsV3Model.CustomDataSources.t, string) GapiLens.t
      val nextLink :
        (GapiAnalyticsV3Model.CustomDataSources.t, string) GapiLens.t
      val previousLink :
        (GapiAnalyticsV3Model.CustomDataSources.t, string) GapiLens.t
      val startIndex :
        (GapiAnalyticsV3Model.CustomDataSources.t, int) GapiLens.t
      val totalResults :
        (GapiAnalyticsV3Model.CustomDataSources.t, int) GapiLens.t
      val username :
        (GapiAnalyticsV3Model.CustomDataSources.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.CustomDataSources.t
      val render :
        GapiAnalyticsV3Model.CustomDataSources.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.CustomDataSources.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.CustomDataSources.t
      val to_data_model :
        GapiAnalyticsV3Model.CustomDataSources.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.CustomDataSources.t
    end
  module AnalyticsDataimportDeleteUploadDataRequest :
    sig
      type t = { customDataImportUids : string list; }
      val customDataImportUids :
        (GapiAnalyticsV3Model.AnalyticsDataimportDeleteUploadDataRequest.t,
         string list)
        GapiLens.t
      val empty :
        GapiAnalyticsV3Model.AnalyticsDataimportDeleteUploadDataRequest.t
      val render :
        GapiAnalyticsV3Model.AnalyticsDataimportDeleteUploadDataRequest.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.AnalyticsDataimportDeleteUploadDataRequest.t ->
        GapiJson.json_data_model ->
        GapiAnalyticsV3Model.AnalyticsDataimportDeleteUploadDataRequest.t
      val to_data_model :
        GapiAnalyticsV3Model.AnalyticsDataimportDeleteUploadDataRequest.t ->
        GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model ->
        GapiAnalyticsV3Model.AnalyticsDataimportDeleteUploadDataRequest.t
    end
  module Goal :
    sig
      module VisitTimeOnSiteDetails :
        sig
          type t = { comparisonType : string; comparisonValue : int64; }
          val comparisonType :
            (GapiAnalyticsV3Model.Goal.VisitTimeOnSiteDetails.t, string)
            GapiLens.t
          val comparisonValue :
            (GapiAnalyticsV3Model.Goal.VisitTimeOnSiteDetails.t, int64)
            GapiLens.t
          val empty : GapiAnalyticsV3Model.Goal.VisitTimeOnSiteDetails.t
          val render :
            GapiAnalyticsV3Model.Goal.VisitTimeOnSiteDetails.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.Goal.VisitTimeOnSiteDetails.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.Goal.VisitTimeOnSiteDetails.t
        end
      module VisitNumPagesDetails :
        sig
          type t = { comparisonType : string; comparisonValue : int64; }
          val comparisonType :
            (GapiAnalyticsV3Model.Goal.VisitNumPagesDetails.t, string)
            GapiLens.t
          val comparisonValue :
            (GapiAnalyticsV3Model.Goal.VisitNumPagesDetails.t, int64)
            GapiLens.t
          val empty : GapiAnalyticsV3Model.Goal.VisitNumPagesDetails.t
          val render :
            GapiAnalyticsV3Model.Goal.VisitNumPagesDetails.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.Goal.VisitNumPagesDetails.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.Goal.VisitNumPagesDetails.t
        end
      module UrlDestinationDetails :
        sig
          module Steps :
            sig
              type t = { name : string; number : int; url : string; }
              val name :
                (GapiAnalyticsV3Model.Goal.UrlDestinationDetails.Steps.t,
                 string)
                GapiLens.t
              val number :
                (GapiAnalyticsV3Model.Goal.UrlDestinationDetails.Steps.t,
                 int)
                GapiLens.t
              val url :
                (GapiAnalyticsV3Model.Goal.UrlDestinationDetails.Steps.t,
                 string)
                GapiLens.t
              val empty :
                GapiAnalyticsV3Model.Goal.UrlDestinationDetails.Steps.t
              val render :
                GapiAnalyticsV3Model.Goal.UrlDestinationDetails.Steps.t ->
                GapiJson.json_data_model list
              val parse :
                GapiAnalyticsV3Model.Goal.UrlDestinationDetails.Steps.t ->
                GapiJson.json_data_model ->
                GapiAnalyticsV3Model.Goal.UrlDestinationDetails.Steps.t
            end
          type t = {
            caseSensitive : bool;
            firstStepRequired : bool;
            matchType : string;
            steps :
              GapiAnalyticsV3Model.Goal.UrlDestinationDetails.Steps.t list;
            url : string;
          }
          val caseSensitive :
            (GapiAnalyticsV3Model.Goal.UrlDestinationDetails.t, bool)
            GapiLens.t
          val firstStepRequired :
            (GapiAnalyticsV3Model.Goal.UrlDestinationDetails.t, bool)
            GapiLens.t
          val matchType :
            (GapiAnalyticsV3Model.Goal.UrlDestinationDetails.t, string)
            GapiLens.t
          val steps :
            (GapiAnalyticsV3Model.Goal.UrlDestinationDetails.t,
             GapiAnalyticsV3Model.Goal.UrlDestinationDetails.Steps.t list)
            GapiLens.t
          val url :
            (GapiAnalyticsV3Model.Goal.UrlDestinationDetails.t, string)
            GapiLens.t
          val empty : GapiAnalyticsV3Model.Goal.UrlDestinationDetails.t
          val render :
            GapiAnalyticsV3Model.Goal.UrlDestinationDetails.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.Goal.UrlDestinationDetails.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.Goal.UrlDestinationDetails.t
        end
      module ParentLink :
        sig
          type t = { href : string; _type : string; }
          val href :
            (GapiAnalyticsV3Model.Goal.ParentLink.t, string) GapiLens.t
          val _type :
            (GapiAnalyticsV3Model.Goal.ParentLink.t, string) GapiLens.t
          val empty : GapiAnalyticsV3Model.Goal.ParentLink.t
          val render :
            GapiAnalyticsV3Model.Goal.ParentLink.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.Goal.ParentLink.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.Goal.ParentLink.t
        end
      module EventDetails :
        sig
          module EventConditions :
            sig
              type t = {
                comparisonType : string;
                comparisonValue : int64;
                expression : string;
                matchType : string;
                _type : string;
              }
              val comparisonType :
                (GapiAnalyticsV3Model.Goal.EventDetails.EventConditions.t,
                 string)
                GapiLens.t
              val comparisonValue :
                (GapiAnalyticsV3Model.Goal.EventDetails.EventConditions.t,
                 int64)
                GapiLens.t
              val expression :
                (GapiAnalyticsV3Model.Goal.EventDetails.EventConditions.t,
                 string)
                GapiLens.t
              val matchType :
                (GapiAnalyticsV3Model.Goal.EventDetails.EventConditions.t,
                 string)
                GapiLens.t
              val _type :
                (GapiAnalyticsV3Model.Goal.EventDetails.EventConditions.t,
                 string)
                GapiLens.t
              val empty :
                GapiAnalyticsV3Model.Goal.EventDetails.EventConditions.t
              val render :
                GapiAnalyticsV3Model.Goal.EventDetails.EventConditions.t ->
                GapiJson.json_data_model list
              val parse :
                GapiAnalyticsV3Model.Goal.EventDetails.EventConditions.t ->
                GapiJson.json_data_model ->
                GapiAnalyticsV3Model.Goal.EventDetails.EventConditions.t
            end
          type t = {
            eventConditions :
              GapiAnalyticsV3Model.Goal.EventDetails.EventConditions.t list;
            useEventValue : bool;
          }
          val eventConditions :
            (GapiAnalyticsV3Model.Goal.EventDetails.t,
             GapiAnalyticsV3Model.Goal.EventDetails.EventConditions.t list)
            GapiLens.t
          val useEventValue :
            (GapiAnalyticsV3Model.Goal.EventDetails.t, bool) GapiLens.t
          val empty : GapiAnalyticsV3Model.Goal.EventDetails.t
          val render :
            GapiAnalyticsV3Model.Goal.EventDetails.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.Goal.EventDetails.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.Goal.EventDetails.t
        end
      type t = {
        accountId : string;
        active : bool;
        created : GapiDate.t;
        eventDetails : GapiAnalyticsV3Model.Goal.EventDetails.t;
        id : string;
        internalWebPropertyId : string;
        kind : string;
        name : string;
        parentLink : GapiAnalyticsV3Model.Goal.ParentLink.t;
        profileId : string;
        selfLink : string;
        _type : string;
        updated : GapiDate.t;
        urlDestinationDetails :
          GapiAnalyticsV3Model.Goal.UrlDestinationDetails.t;
        value : float;
        visitNumPagesDetails :
          GapiAnalyticsV3Model.Goal.VisitNumPagesDetails.t;
        visitTimeOnSiteDetails :
          GapiAnalyticsV3Model.Goal.VisitTimeOnSiteDetails.t;
        webPropertyId : string;
      }
      val accountId : (GapiAnalyticsV3Model.Goal.t, string) GapiLens.t
      val active : (GapiAnalyticsV3Model.Goal.t, bool) GapiLens.t
      val created : (GapiAnalyticsV3Model.Goal.t, GapiDate.t) GapiLens.t
      val eventDetails :
        (GapiAnalyticsV3Model.Goal.t,
         GapiAnalyticsV3Model.Goal.EventDetails.t)
        GapiLens.t
      val id : (GapiAnalyticsV3Model.Goal.t, string) GapiLens.t
      val internalWebPropertyId :
        (GapiAnalyticsV3Model.Goal.t, string) GapiLens.t
      val kind : (GapiAnalyticsV3Model.Goal.t, string) GapiLens.t
      val name : (GapiAnalyticsV3Model.Goal.t, string) GapiLens.t
      val parentLink :
        (GapiAnalyticsV3Model.Goal.t, GapiAnalyticsV3Model.Goal.ParentLink.t)
        GapiLens.t
      val profileId : (GapiAnalyticsV3Model.Goal.t, string) GapiLens.t
      val selfLink : (GapiAnalyticsV3Model.Goal.t, string) GapiLens.t
      val _type : (GapiAnalyticsV3Model.Goal.t, string) GapiLens.t
      val updated : (GapiAnalyticsV3Model.Goal.t, GapiDate.t) GapiLens.t
      val urlDestinationDetails :
        (GapiAnalyticsV3Model.Goal.t,
         GapiAnalyticsV3Model.Goal.UrlDestinationDetails.t)
        GapiLens.t
      val value : (GapiAnalyticsV3Model.Goal.t, float) GapiLens.t
      val visitNumPagesDetails :
        (GapiAnalyticsV3Model.Goal.t,
         GapiAnalyticsV3Model.Goal.VisitNumPagesDetails.t)
        GapiLens.t
      val visitTimeOnSiteDetails :
        (GapiAnalyticsV3Model.Goal.t,
         GapiAnalyticsV3Model.Goal.VisitTimeOnSiteDetails.t)
        GapiLens.t
      val webPropertyId : (GapiAnalyticsV3Model.Goal.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.Goal.t
      val render :
        GapiAnalyticsV3Model.Goal.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.Goal.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Goal.t
      val to_data_model :
        GapiAnalyticsV3Model.Goal.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Goal.t
    end
  module AccountSummary :
    sig
      type t = {
        id : string;
        kind : string;
        name : string;
        webProperties : GapiAnalyticsV3Model.WebPropertySummary.t list;
      }
      val id : (GapiAnalyticsV3Model.AccountSummary.t, string) GapiLens.t
      val kind : (GapiAnalyticsV3Model.AccountSummary.t, string) GapiLens.t
      val name : (GapiAnalyticsV3Model.AccountSummary.t, string) GapiLens.t
      val webProperties :
        (GapiAnalyticsV3Model.AccountSummary.t,
         GapiAnalyticsV3Model.WebPropertySummary.t list)
        GapiLens.t
      val empty : GapiAnalyticsV3Model.AccountSummary.t
      val render :
        GapiAnalyticsV3Model.AccountSummary.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.AccountSummary.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.AccountSummary.t
      val to_data_model :
        GapiAnalyticsV3Model.AccountSummary.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.AccountSummary.t
    end
  module Goals :
    sig
      type t = {
        items : GapiAnalyticsV3Model.Goal.t list;
        itemsPerPage : int;
        kind : string;
        nextLink : string;
        previousLink : string;
        startIndex : int;
        totalResults : int;
        username : string;
      }
      val items :
        (GapiAnalyticsV3Model.Goals.t, GapiAnalyticsV3Model.Goal.t list)
        GapiLens.t
      val itemsPerPage : (GapiAnalyticsV3Model.Goals.t, int) GapiLens.t
      val kind : (GapiAnalyticsV3Model.Goals.t, string) GapiLens.t
      val nextLink : (GapiAnalyticsV3Model.Goals.t, string) GapiLens.t
      val previousLink : (GapiAnalyticsV3Model.Goals.t, string) GapiLens.t
      val startIndex : (GapiAnalyticsV3Model.Goals.t, int) GapiLens.t
      val totalResults : (GapiAnalyticsV3Model.Goals.t, int) GapiLens.t
      val username : (GapiAnalyticsV3Model.Goals.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.Goals.t
      val render :
        GapiAnalyticsV3Model.Goals.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.Goals.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Goals.t
      val to_data_model :
        GapiAnalyticsV3Model.Goals.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Goals.t
    end
  module FilterRef :
    sig
      type t = {
        accountId : string;
        href : string;
        id : string;
        kind : string;
        name : string;
      }
      val accountId : (GapiAnalyticsV3Model.FilterRef.t, string) GapiLens.t
      val href : (GapiAnalyticsV3Model.FilterRef.t, string) GapiLens.t
      val id : (GapiAnalyticsV3Model.FilterRef.t, string) GapiLens.t
      val kind : (GapiAnalyticsV3Model.FilterRef.t, string) GapiLens.t
      val name : (GapiAnalyticsV3Model.FilterRef.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.FilterRef.t
      val render :
        GapiAnalyticsV3Model.FilterRef.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.FilterRef.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.FilterRef.t
      val to_data_model :
        GapiAnalyticsV3Model.FilterRef.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.FilterRef.t
    end
  module UnsampledReports :
    sig
      type t = {
        items : GapiAnalyticsV3Model.UnsampledReport.t list;
        itemsPerPage : int;
        kind : string;
        nextLink : string;
        previousLink : string;
        startIndex : int;
        totalResults : int;
        username : string;
      }
      val items :
        (GapiAnalyticsV3Model.UnsampledReports.t,
         GapiAnalyticsV3Model.UnsampledReport.t list)
        GapiLens.t
      val itemsPerPage :
        (GapiAnalyticsV3Model.UnsampledReports.t, int) GapiLens.t
      val kind : (GapiAnalyticsV3Model.UnsampledReports.t, string) GapiLens.t
      val nextLink :
        (GapiAnalyticsV3Model.UnsampledReports.t, string) GapiLens.t
      val previousLink :
        (GapiAnalyticsV3Model.UnsampledReports.t, string) GapiLens.t
      val startIndex :
        (GapiAnalyticsV3Model.UnsampledReports.t, int) GapiLens.t
      val totalResults :
        (GapiAnalyticsV3Model.UnsampledReports.t, int) GapiLens.t
      val username :
        (GapiAnalyticsV3Model.UnsampledReports.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.UnsampledReports.t
      val render :
        GapiAnalyticsV3Model.UnsampledReports.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.UnsampledReports.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.UnsampledReports.t
      val to_data_model :
        GapiAnalyticsV3Model.UnsampledReports.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.UnsampledReports.t
    end
  module CustomMetric :
    sig
      module ParentLink :
        sig
          type t = { href : string; _type : string; }
          val href :
            (GapiAnalyticsV3Model.CustomMetric.ParentLink.t, string)
            GapiLens.t
          val _type :
            (GapiAnalyticsV3Model.CustomMetric.ParentLink.t, string)
            GapiLens.t
          val empty : GapiAnalyticsV3Model.CustomMetric.ParentLink.t
          val render :
            GapiAnalyticsV3Model.CustomMetric.ParentLink.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.CustomMetric.ParentLink.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.CustomMetric.ParentLink.t
        end
      type t = {
        accountId : string;
        active : bool;
        created : GapiDate.t;
        id : string;
        index : int;
        kind : string;
        max_value : string;
        min_value : string;
        name : string;
        parentLink : GapiAnalyticsV3Model.CustomMetric.ParentLink.t;
        scope : string;
        selfLink : string;
        _type : string;
        updated : GapiDate.t;
        webPropertyId : string;
      }
      val accountId :
        (GapiAnalyticsV3Model.CustomMetric.t, string) GapiLens.t
      val active : (GapiAnalyticsV3Model.CustomMetric.t, bool) GapiLens.t
      val created :
        (GapiAnalyticsV3Model.CustomMetric.t, GapiDate.t) GapiLens.t
      val id : (GapiAnalyticsV3Model.CustomMetric.t, string) GapiLens.t
      val index : (GapiAnalyticsV3Model.CustomMetric.t, int) GapiLens.t
      val kind : (GapiAnalyticsV3Model.CustomMetric.t, string) GapiLens.t
      val max_value :
        (GapiAnalyticsV3Model.CustomMetric.t, string) GapiLens.t
      val min_value :
        (GapiAnalyticsV3Model.CustomMetric.t, string) GapiLens.t
      val name : (GapiAnalyticsV3Model.CustomMetric.t, string) GapiLens.t
      val parentLink :
        (GapiAnalyticsV3Model.CustomMetric.t,
         GapiAnalyticsV3Model.CustomMetric.ParentLink.t)
        GapiLens.t
      val scope : (GapiAnalyticsV3Model.CustomMetric.t, string) GapiLens.t
      val selfLink : (GapiAnalyticsV3Model.CustomMetric.t, string) GapiLens.t
      val _type : (GapiAnalyticsV3Model.CustomMetric.t, string) GapiLens.t
      val updated :
        (GapiAnalyticsV3Model.CustomMetric.t, GapiDate.t) GapiLens.t
      val webPropertyId :
        (GapiAnalyticsV3Model.CustomMetric.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.CustomMetric.t
      val render :
        GapiAnalyticsV3Model.CustomMetric.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.CustomMetric.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.CustomMetric.t
      val to_data_model :
        GapiAnalyticsV3Model.CustomMetric.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.CustomMetric.t
    end
  module CustomMetrics :
    sig
      type t = {
        items : GapiAnalyticsV3Model.CustomMetric.t list;
        itemsPerPage : int;
        kind : string;
        nextLink : string;
        previousLink : string;
        startIndex : int;
        totalResults : int;
        username : string;
      }
      val items :
        (GapiAnalyticsV3Model.CustomMetrics.t,
         GapiAnalyticsV3Model.CustomMetric.t list)
        GapiLens.t
      val itemsPerPage :
        (GapiAnalyticsV3Model.CustomMetrics.t, int) GapiLens.t
      val kind : (GapiAnalyticsV3Model.CustomMetrics.t, string) GapiLens.t
      val nextLink :
        (GapiAnalyticsV3Model.CustomMetrics.t, string) GapiLens.t
      val previousLink :
        (GapiAnalyticsV3Model.CustomMetrics.t, string) GapiLens.t
      val startIndex : (GapiAnalyticsV3Model.CustomMetrics.t, int) GapiLens.t
      val totalResults :
        (GapiAnalyticsV3Model.CustomMetrics.t, int) GapiLens.t
      val username :
        (GapiAnalyticsV3Model.CustomMetrics.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.CustomMetrics.t
      val render :
        GapiAnalyticsV3Model.CustomMetrics.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.CustomMetrics.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.CustomMetrics.t
      val to_data_model :
        GapiAnalyticsV3Model.CustomMetrics.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.CustomMetrics.t
    end
  module Uploads :
    sig
      type t = {
        items : GapiAnalyticsV3Model.Upload.t list;
        itemsPerPage : int;
        kind : string;
        nextLink : string;
        previousLink : string;
        startIndex : int;
        totalResults : int;
      }
      val items :
        (GapiAnalyticsV3Model.Uploads.t, GapiAnalyticsV3Model.Upload.t list)
        GapiLens.t
      val itemsPerPage : (GapiAnalyticsV3Model.Uploads.t, int) GapiLens.t
      val kind : (GapiAnalyticsV3Model.Uploads.t, string) GapiLens.t
      val nextLink : (GapiAnalyticsV3Model.Uploads.t, string) GapiLens.t
      val previousLink : (GapiAnalyticsV3Model.Uploads.t, string) GapiLens.t
      val startIndex : (GapiAnalyticsV3Model.Uploads.t, int) GapiLens.t
      val totalResults : (GapiAnalyticsV3Model.Uploads.t, int) GapiLens.t
      val empty : GapiAnalyticsV3Model.Uploads.t
      val render :
        GapiAnalyticsV3Model.Uploads.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.Uploads.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Uploads.t
      val to_data_model :
        GapiAnalyticsV3Model.Uploads.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Uploads.t
    end
  module AccountSummaries :
    sig
      type t = {
        items : GapiAnalyticsV3Model.AccountSummary.t list;
        itemsPerPage : int;
        kind : string;
        nextLink : string;
        previousLink : string;
        startIndex : int;
        totalResults : int;
        username : string;
      }
      val items :
        (GapiAnalyticsV3Model.AccountSummaries.t,
         GapiAnalyticsV3Model.AccountSummary.t list)
        GapiLens.t
      val itemsPerPage :
        (GapiAnalyticsV3Model.AccountSummaries.t, int) GapiLens.t
      val kind : (GapiAnalyticsV3Model.AccountSummaries.t, string) GapiLens.t
      val nextLink :
        (GapiAnalyticsV3Model.AccountSummaries.t, string) GapiLens.t
      val previousLink :
        (GapiAnalyticsV3Model.AccountSummaries.t, string) GapiLens.t
      val startIndex :
        (GapiAnalyticsV3Model.AccountSummaries.t, int) GapiLens.t
      val totalResults :
        (GapiAnalyticsV3Model.AccountSummaries.t, int) GapiLens.t
      val username :
        (GapiAnalyticsV3Model.AccountSummaries.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.AccountSummaries.t
      val render :
        GapiAnalyticsV3Model.AccountSummaries.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.AccountSummaries.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.AccountSummaries.t
      val to_data_model :
        GapiAnalyticsV3Model.AccountSummaries.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.AccountSummaries.t
    end
  module ProfileFilterLink :
    sig
      type t = {
        filterRef : GapiAnalyticsV3Model.FilterRef.t;
        id : string;
        kind : string;
        profileRef : GapiAnalyticsV3Model.ProfileRef.t;
        rank : int;
        selfLink : string;
      }
      val filterRef :
        (GapiAnalyticsV3Model.ProfileFilterLink.t,
         GapiAnalyticsV3Model.FilterRef.t)
        GapiLens.t
      val id : (GapiAnalyticsV3Model.ProfileFilterLink.t, string) GapiLens.t
      val kind :
        (GapiAnalyticsV3Model.ProfileFilterLink.t, string) GapiLens.t
      val profileRef :
        (GapiAnalyticsV3Model.ProfileFilterLink.t,
         GapiAnalyticsV3Model.ProfileRef.t)
        GapiLens.t
      val rank : (GapiAnalyticsV3Model.ProfileFilterLink.t, int) GapiLens.t
      val selfLink :
        (GapiAnalyticsV3Model.ProfileFilterLink.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.ProfileFilterLink.t
      val render :
        GapiAnalyticsV3Model.ProfileFilterLink.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.ProfileFilterLink.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.ProfileFilterLink.t
      val to_data_model :
        GapiAnalyticsV3Model.ProfileFilterLink.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.ProfileFilterLink.t
    end
  module McfData :
    sig
      module Rows :
        sig
          module ConversionPathValue :
            sig
              type t = { interactionType : string; nodeValue : string; }
              val interactionType :
                (GapiAnalyticsV3Model.McfData.Rows.ConversionPathValue.t,
                 string)
                GapiLens.t
              val nodeValue :
                (GapiAnalyticsV3Model.McfData.Rows.ConversionPathValue.t,
                 string)
                GapiLens.t
              val empty :
                GapiAnalyticsV3Model.McfData.Rows.ConversionPathValue.t
              val render :
                GapiAnalyticsV3Model.McfData.Rows.ConversionPathValue.t ->
                GapiJson.json_data_model list
              val parse :
                GapiAnalyticsV3Model.McfData.Rows.ConversionPathValue.t ->
                GapiJson.json_data_model ->
                GapiAnalyticsV3Model.McfData.Rows.ConversionPathValue.t
            end
          type t = {
            conversionPathValue :
              GapiAnalyticsV3Model.McfData.Rows.ConversionPathValue.t list;
            primitiveValue : string;
          }
          val conversionPathValue :
            (GapiAnalyticsV3Model.McfData.Rows.t,
             GapiAnalyticsV3Model.McfData.Rows.ConversionPathValue.t list)
            GapiLens.t
          val primitiveValue :
            (GapiAnalyticsV3Model.McfData.Rows.t, string) GapiLens.t
          val empty : GapiAnalyticsV3Model.McfData.Rows.t
          val render :
            GapiAnalyticsV3Model.McfData.Rows.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.McfData.Rows.t ->
            GapiJson.json_data_model -> GapiAnalyticsV3Model.McfData.Rows.t
        end
      module Query :
        sig
          type t = {
            dimensions : string;
            end_date : string;
            filters : string;
            ids : string;
            max_results : int;
            metrics : string list;
            samplingLevel : string;
            segment : string;
            sort : string list;
            start_date : string;
            start_index : int;
          }
          val dimensions :
            (GapiAnalyticsV3Model.McfData.Query.t, string) GapiLens.t
          val end_date :
            (GapiAnalyticsV3Model.McfData.Query.t, string) GapiLens.t
          val filters :
            (GapiAnalyticsV3Model.McfData.Query.t, string) GapiLens.t
          val ids : (GapiAnalyticsV3Model.McfData.Query.t, string) GapiLens.t
          val max_results :
            (GapiAnalyticsV3Model.McfData.Query.t, int) GapiLens.t
          val metrics :
            (GapiAnalyticsV3Model.McfData.Query.t, string list) GapiLens.t
          val samplingLevel :
            (GapiAnalyticsV3Model.McfData.Query.t, string) GapiLens.t
          val segment :
            (GapiAnalyticsV3Model.McfData.Query.t, string) GapiLens.t
          val sort :
            (GapiAnalyticsV3Model.McfData.Query.t, string list) GapiLens.t
          val start_date :
            (GapiAnalyticsV3Model.McfData.Query.t, string) GapiLens.t
          val start_index :
            (GapiAnalyticsV3Model.McfData.Query.t, int) GapiLens.t
          val empty : GapiAnalyticsV3Model.McfData.Query.t
          val render :
            GapiAnalyticsV3Model.McfData.Query.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.McfData.Query.t ->
            GapiJson.json_data_model -> GapiAnalyticsV3Model.McfData.Query.t
        end
      module ProfileInfo :
        sig
          type t = {
            accountId : string;
            internalWebPropertyId : string;
            profileId : string;
            profileName : string;
            tableId : string;
            webPropertyId : string;
          }
          val accountId :
            (GapiAnalyticsV3Model.McfData.ProfileInfo.t, string) GapiLens.t
          val internalWebPropertyId :
            (GapiAnalyticsV3Model.McfData.ProfileInfo.t, string) GapiLens.t
          val profileId :
            (GapiAnalyticsV3Model.McfData.ProfileInfo.t, string) GapiLens.t
          val profileName :
            (GapiAnalyticsV3Model.McfData.ProfileInfo.t, string) GapiLens.t
          val tableId :
            (GapiAnalyticsV3Model.McfData.ProfileInfo.t, string) GapiLens.t
          val webPropertyId :
            (GapiAnalyticsV3Model.McfData.ProfileInfo.t, string) GapiLens.t
          val empty : GapiAnalyticsV3Model.McfData.ProfileInfo.t
          val render :
            GapiAnalyticsV3Model.McfData.ProfileInfo.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.McfData.ProfileInfo.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.McfData.ProfileInfo.t
        end
      module ColumnHeaders :
        sig
          type t = { columnType : string; dataType : string; name : string; }
          val columnType :
            (GapiAnalyticsV3Model.McfData.ColumnHeaders.t, string) GapiLens.t
          val dataType :
            (GapiAnalyticsV3Model.McfData.ColumnHeaders.t, string) GapiLens.t
          val name :
            (GapiAnalyticsV3Model.McfData.ColumnHeaders.t, string) GapiLens.t
          val empty : GapiAnalyticsV3Model.McfData.ColumnHeaders.t
          val render :
            GapiAnalyticsV3Model.McfData.ColumnHeaders.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.McfData.ColumnHeaders.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.McfData.ColumnHeaders.t
        end
      type t = {
        columnHeaders : GapiAnalyticsV3Model.McfData.ColumnHeaders.t list;
        containsSampledData : bool;
        id : string;
        itemsPerPage : int;
        kind : string;
        nextLink : string;
        previousLink : string;
        profileInfo : GapiAnalyticsV3Model.McfData.ProfileInfo.t;
        query : GapiAnalyticsV3Model.McfData.Query.t;
        rows : GapiAnalyticsV3Model.McfData.Rows.t list list;
        sampleSize : int64;
        sampleSpace : int64;
        selfLink : string;
        totalResults : int;
        totalsForAllResults : (string * string) list;
      }
      val columnHeaders :
        (GapiAnalyticsV3Model.McfData.t,
         GapiAnalyticsV3Model.McfData.ColumnHeaders.t list)
        GapiLens.t
      val containsSampledData :
        (GapiAnalyticsV3Model.McfData.t, bool) GapiLens.t
      val id : (GapiAnalyticsV3Model.McfData.t, string) GapiLens.t
      val itemsPerPage : (GapiAnalyticsV3Model.McfData.t, int) GapiLens.t
      val kind : (GapiAnalyticsV3Model.McfData.t, string) GapiLens.t
      val nextLink : (GapiAnalyticsV3Model.McfData.t, string) GapiLens.t
      val previousLink : (GapiAnalyticsV3Model.McfData.t, string) GapiLens.t
      val profileInfo :
        (GapiAnalyticsV3Model.McfData.t,
         GapiAnalyticsV3Model.McfData.ProfileInfo.t)
        GapiLens.t
      val query :
        (GapiAnalyticsV3Model.McfData.t,
         GapiAnalyticsV3Model.McfData.Query.t)
        GapiLens.t
      val rows :
        (GapiAnalyticsV3Model.McfData.t,
         GapiAnalyticsV3Model.McfData.Rows.t list list)
        GapiLens.t
      val sampleSize : (GapiAnalyticsV3Model.McfData.t, int64) GapiLens.t
      val sampleSpace : (GapiAnalyticsV3Model.McfData.t, int64) GapiLens.t
      val selfLink : (GapiAnalyticsV3Model.McfData.t, string) GapiLens.t
      val totalResults : (GapiAnalyticsV3Model.McfData.t, int) GapiLens.t
      val totalsForAllResults :
        (GapiAnalyticsV3Model.McfData.t, (string * string) list) GapiLens.t
      val empty : GapiAnalyticsV3Model.McfData.t
      val render :
        GapiAnalyticsV3Model.McfData.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.McfData.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.McfData.t
      val to_data_model :
        GapiAnalyticsV3Model.McfData.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.McfData.t
    end
  module RealtimeData :
    sig
      module Query :
        sig
          type t = {
            dimensions : string;
            filters : string;
            ids : string;
            max_results : int;
            metrics : string list;
            sort : string list;
          }
          val dimensions :
            (GapiAnalyticsV3Model.RealtimeData.Query.t, string) GapiLens.t
          val filters :
            (GapiAnalyticsV3Model.RealtimeData.Query.t, string) GapiLens.t
          val ids :
            (GapiAnalyticsV3Model.RealtimeData.Query.t, string) GapiLens.t
          val max_results :
            (GapiAnalyticsV3Model.RealtimeData.Query.t, int) GapiLens.t
          val metrics :
            (GapiAnalyticsV3Model.RealtimeData.Query.t, string list)
            GapiLens.t
          val sort :
            (GapiAnalyticsV3Model.RealtimeData.Query.t, string list)
            GapiLens.t
          val empty : GapiAnalyticsV3Model.RealtimeData.Query.t
          val render :
            GapiAnalyticsV3Model.RealtimeData.Query.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.RealtimeData.Query.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.RealtimeData.Query.t
        end
      module ProfileInfo :
        sig
          type t = {
            accountId : string;
            internalWebPropertyId : string;
            profileId : string;
            profileName : string;
            tableId : string;
            webPropertyId : string;
          }
          val accountId :
            (GapiAnalyticsV3Model.RealtimeData.ProfileInfo.t, string)
            GapiLens.t
          val internalWebPropertyId :
            (GapiAnalyticsV3Model.RealtimeData.ProfileInfo.t, string)
            GapiLens.t
          val profileId :
            (GapiAnalyticsV3Model.RealtimeData.ProfileInfo.t, string)
            GapiLens.t
          val profileName :
            (GapiAnalyticsV3Model.RealtimeData.ProfileInfo.t, string)
            GapiLens.t
          val tableId :
            (GapiAnalyticsV3Model.RealtimeData.ProfileInfo.t, string)
            GapiLens.t
          val webPropertyId :
            (GapiAnalyticsV3Model.RealtimeData.ProfileInfo.t, string)
            GapiLens.t
          val empty : GapiAnalyticsV3Model.RealtimeData.ProfileInfo.t
          val render :
            GapiAnalyticsV3Model.RealtimeData.ProfileInfo.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.RealtimeData.ProfileInfo.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.RealtimeData.ProfileInfo.t
        end
      module ColumnHeaders :
        sig
          type t = { columnType : string; dataType : string; name : string; }
          val columnType :
            (GapiAnalyticsV3Model.RealtimeData.ColumnHeaders.t, string)
            GapiLens.t
          val dataType :
            (GapiAnalyticsV3Model.RealtimeData.ColumnHeaders.t, string)
            GapiLens.t
          val name :
            (GapiAnalyticsV3Model.RealtimeData.ColumnHeaders.t, string)
            GapiLens.t
          val empty : GapiAnalyticsV3Model.RealtimeData.ColumnHeaders.t
          val render :
            GapiAnalyticsV3Model.RealtimeData.ColumnHeaders.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.RealtimeData.ColumnHeaders.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.RealtimeData.ColumnHeaders.t
        end
      type t = {
        columnHeaders :
          GapiAnalyticsV3Model.RealtimeData.ColumnHeaders.t list;
        id : string;
        kind : string;
        profileInfo : GapiAnalyticsV3Model.RealtimeData.ProfileInfo.t;
        query : GapiAnalyticsV3Model.RealtimeData.Query.t;
        rows : string list list;
        selfLink : string;
        totalResults : int;
        totalsForAllResults : (string * string) list;
      }
      val columnHeaders :
        (GapiAnalyticsV3Model.RealtimeData.t,
         GapiAnalyticsV3Model.RealtimeData.ColumnHeaders.t list)
        GapiLens.t
      val id : (GapiAnalyticsV3Model.RealtimeData.t, string) GapiLens.t
      val kind : (GapiAnalyticsV3Model.RealtimeData.t, string) GapiLens.t
      val profileInfo :
        (GapiAnalyticsV3Model.RealtimeData.t,
         GapiAnalyticsV3Model.RealtimeData.ProfileInfo.t)
        GapiLens.t
      val query :
        (GapiAnalyticsV3Model.RealtimeData.t,
         GapiAnalyticsV3Model.RealtimeData.Query.t)
        GapiLens.t
      val rows :
        (GapiAnalyticsV3Model.RealtimeData.t, string list list) GapiLens.t
      val selfLink : (GapiAnalyticsV3Model.RealtimeData.t, string) GapiLens.t
      val totalResults :
        (GapiAnalyticsV3Model.RealtimeData.t, int) GapiLens.t
      val totalsForAllResults :
        (GapiAnalyticsV3Model.RealtimeData.t, (string * string) list)
        GapiLens.t
      val empty : GapiAnalyticsV3Model.RealtimeData.t
      val render :
        GapiAnalyticsV3Model.RealtimeData.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.RealtimeData.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.RealtimeData.t
      val to_data_model :
        GapiAnalyticsV3Model.RealtimeData.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.RealtimeData.t
    end
  module FilterExpression :
    sig
      type t = {
        caseSensitive : bool;
        expressionValue : string;
        field : string;
        fieldIndex : int;
        kind : string;
        matchType : string;
      }
      val caseSensitive :
        (GapiAnalyticsV3Model.FilterExpression.t, bool) GapiLens.t
      val expressionValue :
        (GapiAnalyticsV3Model.FilterExpression.t, string) GapiLens.t
      val field :
        (GapiAnalyticsV3Model.FilterExpression.t, string) GapiLens.t
      val fieldIndex :
        (GapiAnalyticsV3Model.FilterExpression.t, int) GapiLens.t
      val kind : (GapiAnalyticsV3Model.FilterExpression.t, string) GapiLens.t
      val matchType :
        (GapiAnalyticsV3Model.FilterExpression.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.FilterExpression.t
      val render :
        GapiAnalyticsV3Model.FilterExpression.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.FilterExpression.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.FilterExpression.t
      val to_data_model :
        GapiAnalyticsV3Model.FilterExpression.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.FilterExpression.t
    end
  module GaData :
    sig
      module Query :
        sig
          type t = {
            dimensions : string;
            end_date : string;
            filters : string;
            ids : string;
            max_results : int;
            metrics : string list;
            samplingLevel : string;
            segment : string;
            sort : string list;
            start_date : string;
            start_index : int;
          }
          val dimensions :
            (GapiAnalyticsV3Model.GaData.Query.t, string) GapiLens.t
          val end_date :
            (GapiAnalyticsV3Model.GaData.Query.t, string) GapiLens.t
          val filters :
            (GapiAnalyticsV3Model.GaData.Query.t, string) GapiLens.t
          val ids : (GapiAnalyticsV3Model.GaData.Query.t, string) GapiLens.t
          val max_results :
            (GapiAnalyticsV3Model.GaData.Query.t, int) GapiLens.t
          val metrics :
            (GapiAnalyticsV3Model.GaData.Query.t, string list) GapiLens.t
          val samplingLevel :
            (GapiAnalyticsV3Model.GaData.Query.t, string) GapiLens.t
          val segment :
            (GapiAnalyticsV3Model.GaData.Query.t, string) GapiLens.t
          val sort :
            (GapiAnalyticsV3Model.GaData.Query.t, string list) GapiLens.t
          val start_date :
            (GapiAnalyticsV3Model.GaData.Query.t, string) GapiLens.t
          val start_index :
            (GapiAnalyticsV3Model.GaData.Query.t, int) GapiLens.t
          val empty : GapiAnalyticsV3Model.GaData.Query.t
          val render :
            GapiAnalyticsV3Model.GaData.Query.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.GaData.Query.t ->
            GapiJson.json_data_model -> GapiAnalyticsV3Model.GaData.Query.t
        end
      module ProfileInfo :
        sig
          type t = {
            accountId : string;
            internalWebPropertyId : string;
            profileId : string;
            profileName : string;
            tableId : string;
            webPropertyId : string;
          }
          val accountId :
            (GapiAnalyticsV3Model.GaData.ProfileInfo.t, string) GapiLens.t
          val internalWebPropertyId :
            (GapiAnalyticsV3Model.GaData.ProfileInfo.t, string) GapiLens.t
          val profileId :
            (GapiAnalyticsV3Model.GaData.ProfileInfo.t, string) GapiLens.t
          val profileName :
            (GapiAnalyticsV3Model.GaData.ProfileInfo.t, string) GapiLens.t
          val tableId :
            (GapiAnalyticsV3Model.GaData.ProfileInfo.t, string) GapiLens.t
          val webPropertyId :
            (GapiAnalyticsV3Model.GaData.ProfileInfo.t, string) GapiLens.t
          val empty : GapiAnalyticsV3Model.GaData.ProfileInfo.t
          val render :
            GapiAnalyticsV3Model.GaData.ProfileInfo.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.GaData.ProfileInfo.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.GaData.ProfileInfo.t
        end
      module DataTable :
        sig
          module Rows :
            sig
              module C :
                sig
                  type t = { v : string; }
                  val v :
                    (GapiAnalyticsV3Model.GaData.DataTable.Rows.C.t, string)
                    GapiLens.t
                  val empty : GapiAnalyticsV3Model.GaData.DataTable.Rows.C.t
                  val render :
                    GapiAnalyticsV3Model.GaData.DataTable.Rows.C.t ->
                    GapiJson.json_data_model list
                  val parse :
                    GapiAnalyticsV3Model.GaData.DataTable.Rows.C.t ->
                    GapiJson.json_data_model ->
                    GapiAnalyticsV3Model.GaData.DataTable.Rows.C.t
                end
              type t = {
                c : GapiAnalyticsV3Model.GaData.DataTable.Rows.C.t list;
              }
              val c :
                (GapiAnalyticsV3Model.GaData.DataTable.Rows.t,
                 GapiAnalyticsV3Model.GaData.DataTable.Rows.C.t list)
                GapiLens.t
              val empty : GapiAnalyticsV3Model.GaData.DataTable.Rows.t
              val render :
                GapiAnalyticsV3Model.GaData.DataTable.Rows.t ->
                GapiJson.json_data_model list
              val parse :
                GapiAnalyticsV3Model.GaData.DataTable.Rows.t ->
                GapiJson.json_data_model ->
                GapiAnalyticsV3Model.GaData.DataTable.Rows.t
            end
          module Cols :
            sig
              type t = { id : string; label : string; _type : string; }
              val id :
                (GapiAnalyticsV3Model.GaData.DataTable.Cols.t, string)
                GapiLens.t
              val label :
                (GapiAnalyticsV3Model.GaData.DataTable.Cols.t, string)
                GapiLens.t
              val _type :
                (GapiAnalyticsV3Model.GaData.DataTable.Cols.t, string)
                GapiLens.t
              val empty : GapiAnalyticsV3Model.GaData.DataTable.Cols.t
              val render :
                GapiAnalyticsV3Model.GaData.DataTable.Cols.t ->
                GapiJson.json_data_model list
              val parse :
                GapiAnalyticsV3Model.GaData.DataTable.Cols.t ->
                GapiJson.json_data_model ->
                GapiAnalyticsV3Model.GaData.DataTable.Cols.t
            end
          type t = {
            cols : GapiAnalyticsV3Model.GaData.DataTable.Cols.t list;
            rows : GapiAnalyticsV3Model.GaData.DataTable.Rows.t list;
          }
          val cols :
            (GapiAnalyticsV3Model.GaData.DataTable.t,
             GapiAnalyticsV3Model.GaData.DataTable.Cols.t list)
            GapiLens.t
          val rows :
            (GapiAnalyticsV3Model.GaData.DataTable.t,
             GapiAnalyticsV3Model.GaData.DataTable.Rows.t list)
            GapiLens.t
          val empty : GapiAnalyticsV3Model.GaData.DataTable.t
          val render :
            GapiAnalyticsV3Model.GaData.DataTable.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.GaData.DataTable.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.GaData.DataTable.t
        end
      module ColumnHeaders :
        sig
          type t = { columnType : string; dataType : string; name : string; }
          val columnType :
            (GapiAnalyticsV3Model.GaData.ColumnHeaders.t, string) GapiLens.t
          val dataType :
            (GapiAnalyticsV3Model.GaData.ColumnHeaders.t, string) GapiLens.t
          val name :
            (GapiAnalyticsV3Model.GaData.ColumnHeaders.t, string) GapiLens.t
          val empty : GapiAnalyticsV3Model.GaData.ColumnHeaders.t
          val render :
            GapiAnalyticsV3Model.GaData.ColumnHeaders.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.GaData.ColumnHeaders.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.GaData.ColumnHeaders.t
        end
      type t = {
        columnHeaders : GapiAnalyticsV3Model.GaData.ColumnHeaders.t list;
        containsSampledData : bool;
        dataTable : GapiAnalyticsV3Model.GaData.DataTable.t;
        id : string;
        itemsPerPage : int;
        kind : string;
        nextLink : string;
        previousLink : string;
        profileInfo : GapiAnalyticsV3Model.GaData.ProfileInfo.t;
        query : GapiAnalyticsV3Model.GaData.Query.t;
        rows : string list list;
        sampleSize : int64;
        sampleSpace : int64;
        selfLink : string;
        totalResults : int;
        totalsForAllResults : (string * string) list;
      }
      val columnHeaders :
        (GapiAnalyticsV3Model.GaData.t,
         GapiAnalyticsV3Model.GaData.ColumnHeaders.t list)
        GapiLens.t
      val containsSampledData :
        (GapiAnalyticsV3Model.GaData.t, bool) GapiLens.t
      val dataTable :
        (GapiAnalyticsV3Model.GaData.t,
         GapiAnalyticsV3Model.GaData.DataTable.t)
        GapiLens.t
      val id : (GapiAnalyticsV3Model.GaData.t, string) GapiLens.t
      val itemsPerPage : (GapiAnalyticsV3Model.GaData.t, int) GapiLens.t
      val kind : (GapiAnalyticsV3Model.GaData.t, string) GapiLens.t
      val nextLink : (GapiAnalyticsV3Model.GaData.t, string) GapiLens.t
      val previousLink : (GapiAnalyticsV3Model.GaData.t, string) GapiLens.t
      val profileInfo :
        (GapiAnalyticsV3Model.GaData.t,
         GapiAnalyticsV3Model.GaData.ProfileInfo.t)
        GapiLens.t
      val query :
        (GapiAnalyticsV3Model.GaData.t, GapiAnalyticsV3Model.GaData.Query.t)
        GapiLens.t
      val rows : (GapiAnalyticsV3Model.GaData.t, string list list) GapiLens.t
      val sampleSize : (GapiAnalyticsV3Model.GaData.t, int64) GapiLens.t
      val sampleSpace : (GapiAnalyticsV3Model.GaData.t, int64) GapiLens.t
      val selfLink : (GapiAnalyticsV3Model.GaData.t, string) GapiLens.t
      val totalResults : (GapiAnalyticsV3Model.GaData.t, int) GapiLens.t
      val totalsForAllResults :
        (GapiAnalyticsV3Model.GaData.t, (string * string) list) GapiLens.t
      val empty : GapiAnalyticsV3Model.GaData.t
      val render :
        GapiAnalyticsV3Model.GaData.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.GaData.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.GaData.t
      val to_data_model :
        GapiAnalyticsV3Model.GaData.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.GaData.t
    end
  module ProfileFilterLinks :
    sig
      type t = {
        items : GapiAnalyticsV3Model.ProfileFilterLink.t list;
        itemsPerPage : int;
        kind : string;
        nextLink : string;
        previousLink : string;
        startIndex : int;
        totalResults : int;
        username : string;
      }
      val items :
        (GapiAnalyticsV3Model.ProfileFilterLinks.t,
         GapiAnalyticsV3Model.ProfileFilterLink.t list)
        GapiLens.t
      val itemsPerPage :
        (GapiAnalyticsV3Model.ProfileFilterLinks.t, int) GapiLens.t
      val kind :
        (GapiAnalyticsV3Model.ProfileFilterLinks.t, string) GapiLens.t
      val nextLink :
        (GapiAnalyticsV3Model.ProfileFilterLinks.t, string) GapiLens.t
      val previousLink :
        (GapiAnalyticsV3Model.ProfileFilterLinks.t, string) GapiLens.t
      val startIndex :
        (GapiAnalyticsV3Model.ProfileFilterLinks.t, int) GapiLens.t
      val totalResults :
        (GapiAnalyticsV3Model.ProfileFilterLinks.t, int) GapiLens.t
      val username :
        (GapiAnalyticsV3Model.ProfileFilterLinks.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.ProfileFilterLinks.t
      val render :
        GapiAnalyticsV3Model.ProfileFilterLinks.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.ProfileFilterLinks.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.ProfileFilterLinks.t
      val to_data_model :
        GapiAnalyticsV3Model.ProfileFilterLinks.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.ProfileFilterLinks.t
    end
  module Accounts :
    sig
      type t = {
        items : GapiAnalyticsV3Model.Account.t list;
        itemsPerPage : int;
        kind : string;
        nextLink : string;
        previousLink : string;
        startIndex : int;
        totalResults : int;
        username : string;
      }
      val items :
        (GapiAnalyticsV3Model.Accounts.t,
         GapiAnalyticsV3Model.Account.t list)
        GapiLens.t
      val itemsPerPage : (GapiAnalyticsV3Model.Accounts.t, int) GapiLens.t
      val kind : (GapiAnalyticsV3Model.Accounts.t, string) GapiLens.t
      val nextLink : (GapiAnalyticsV3Model.Accounts.t, string) GapiLens.t
      val previousLink : (GapiAnalyticsV3Model.Accounts.t, string) GapiLens.t
      val startIndex : (GapiAnalyticsV3Model.Accounts.t, int) GapiLens.t
      val totalResults : (GapiAnalyticsV3Model.Accounts.t, int) GapiLens.t
      val username : (GapiAnalyticsV3Model.Accounts.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.Accounts.t
      val render :
        GapiAnalyticsV3Model.Accounts.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.Accounts.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Accounts.t
      val to_data_model :
        GapiAnalyticsV3Model.Accounts.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Accounts.t
    end
  module EntityUserLinks :
    sig
      type t = {
        items : GapiAnalyticsV3Model.EntityUserLink.t list;
        itemsPerPage : int;
        kind : string;
        nextLink : string;
        previousLink : string;
        startIndex : int;
        totalResults : int;
      }
      val items :
        (GapiAnalyticsV3Model.EntityUserLinks.t,
         GapiAnalyticsV3Model.EntityUserLink.t list)
        GapiLens.t
      val itemsPerPage :
        (GapiAnalyticsV3Model.EntityUserLinks.t, int) GapiLens.t
      val kind : (GapiAnalyticsV3Model.EntityUserLinks.t, string) GapiLens.t
      val nextLink :
        (GapiAnalyticsV3Model.EntityUserLinks.t, string) GapiLens.t
      val previousLink :
        (GapiAnalyticsV3Model.EntityUserLinks.t, string) GapiLens.t
      val startIndex :
        (GapiAnalyticsV3Model.EntityUserLinks.t, int) GapiLens.t
      val totalResults :
        (GapiAnalyticsV3Model.EntityUserLinks.t, int) GapiLens.t
      val empty : GapiAnalyticsV3Model.EntityUserLinks.t
      val render :
        GapiAnalyticsV3Model.EntityUserLinks.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.EntityUserLinks.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.EntityUserLinks.t
      val to_data_model :
        GapiAnalyticsV3Model.EntityUserLinks.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.EntityUserLinks.t
    end
  module Profiles :
    sig
      type t = {
        items : GapiAnalyticsV3Model.Profile.t list;
        itemsPerPage : int;
        kind : string;
        nextLink : string;
        previousLink : string;
        startIndex : int;
        totalResults : int;
        username : string;
      }
      val items :
        (GapiAnalyticsV3Model.Profiles.t,
         GapiAnalyticsV3Model.Profile.t list)
        GapiLens.t
      val itemsPerPage : (GapiAnalyticsV3Model.Profiles.t, int) GapiLens.t
      val kind : (GapiAnalyticsV3Model.Profiles.t, string) GapiLens.t
      val nextLink : (GapiAnalyticsV3Model.Profiles.t, string) GapiLens.t
      val previousLink : (GapiAnalyticsV3Model.Profiles.t, string) GapiLens.t
      val startIndex : (GapiAnalyticsV3Model.Profiles.t, int) GapiLens.t
      val totalResults : (GapiAnalyticsV3Model.Profiles.t, int) GapiLens.t
      val username : (GapiAnalyticsV3Model.Profiles.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.Profiles.t
      val render :
        GapiAnalyticsV3Model.Profiles.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.Profiles.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Profiles.t
      val to_data_model :
        GapiAnalyticsV3Model.Profiles.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Profiles.t
    end
  module Filter :
    sig
      module UppercaseDetails :
        sig
          type t = { field : string; fieldIndex : int; }
          val field :
            (GapiAnalyticsV3Model.Filter.UppercaseDetails.t, string)
            GapiLens.t
          val fieldIndex :
            (GapiAnalyticsV3Model.Filter.UppercaseDetails.t, int) GapiLens.t
          val empty : GapiAnalyticsV3Model.Filter.UppercaseDetails.t
          val render :
            GapiAnalyticsV3Model.Filter.UppercaseDetails.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.Filter.UppercaseDetails.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.Filter.UppercaseDetails.t
        end
      module SearchAndReplaceDetails :
        sig
          type t = {
            caseSensitive : bool;
            field : string;
            fieldIndex : int;
            replaceString : string;
            searchString : string;
          }
          val caseSensitive :
            (GapiAnalyticsV3Model.Filter.SearchAndReplaceDetails.t, bool)
            GapiLens.t
          val field :
            (GapiAnalyticsV3Model.Filter.SearchAndReplaceDetails.t, string)
            GapiLens.t
          val fieldIndex :
            (GapiAnalyticsV3Model.Filter.SearchAndReplaceDetails.t, int)
            GapiLens.t
          val replaceString :
            (GapiAnalyticsV3Model.Filter.SearchAndReplaceDetails.t, string)
            GapiLens.t
          val searchString :
            (GapiAnalyticsV3Model.Filter.SearchAndReplaceDetails.t, string)
            GapiLens.t
          val empty : GapiAnalyticsV3Model.Filter.SearchAndReplaceDetails.t
          val render :
            GapiAnalyticsV3Model.Filter.SearchAndReplaceDetails.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.Filter.SearchAndReplaceDetails.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.Filter.SearchAndReplaceDetails.t
        end
      module ParentLink :
        sig
          type t = { href : string; _type : string; }
          val href :
            (GapiAnalyticsV3Model.Filter.ParentLink.t, string) GapiLens.t
          val _type :
            (GapiAnalyticsV3Model.Filter.ParentLink.t, string) GapiLens.t
          val empty : GapiAnalyticsV3Model.Filter.ParentLink.t
          val render :
            GapiAnalyticsV3Model.Filter.ParentLink.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.Filter.ParentLink.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.Filter.ParentLink.t
        end
      module LowercaseDetails :
        sig
          type t = { field : string; fieldIndex : int; }
          val field :
            (GapiAnalyticsV3Model.Filter.LowercaseDetails.t, string)
            GapiLens.t
          val fieldIndex :
            (GapiAnalyticsV3Model.Filter.LowercaseDetails.t, int) GapiLens.t
          val empty : GapiAnalyticsV3Model.Filter.LowercaseDetails.t
          val render :
            GapiAnalyticsV3Model.Filter.LowercaseDetails.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.Filter.LowercaseDetails.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.Filter.LowercaseDetails.t
        end
      module AdvancedDetails :
        sig
          type t = {
            caseSensitive : bool;
            extractA : string;
            extractB : string;
            fieldA : string;
            fieldAIndex : int;
            fieldARequired : bool;
            fieldB : string;
            fieldBIndex : int;
            fieldBRequired : bool;
            outputConstructor : string;
            outputToField : string;
            outputToFieldIndex : int;
            overrideOutputField : bool;
          }
          val caseSensitive :
            (GapiAnalyticsV3Model.Filter.AdvancedDetails.t, bool) GapiLens.t
          val extractA :
            (GapiAnalyticsV3Model.Filter.AdvancedDetails.t, string)
            GapiLens.t
          val extractB :
            (GapiAnalyticsV3Model.Filter.AdvancedDetails.t, string)
            GapiLens.t
          val fieldA :
            (GapiAnalyticsV3Model.Filter.AdvancedDetails.t, string)
            GapiLens.t
          val fieldAIndex :
            (GapiAnalyticsV3Model.Filter.AdvancedDetails.t, int) GapiLens.t
          val fieldARequired :
            (GapiAnalyticsV3Model.Filter.AdvancedDetails.t, bool) GapiLens.t
          val fieldB :
            (GapiAnalyticsV3Model.Filter.AdvancedDetails.t, string)
            GapiLens.t
          val fieldBIndex :
            (GapiAnalyticsV3Model.Filter.AdvancedDetails.t, int) GapiLens.t
          val fieldBRequired :
            (GapiAnalyticsV3Model.Filter.AdvancedDetails.t, bool) GapiLens.t
          val outputConstructor :
            (GapiAnalyticsV3Model.Filter.AdvancedDetails.t, string)
            GapiLens.t
          val outputToField :
            (GapiAnalyticsV3Model.Filter.AdvancedDetails.t, string)
            GapiLens.t
          val outputToFieldIndex :
            (GapiAnalyticsV3Model.Filter.AdvancedDetails.t, int) GapiLens.t
          val overrideOutputField :
            (GapiAnalyticsV3Model.Filter.AdvancedDetails.t, bool) GapiLens.t
          val empty : GapiAnalyticsV3Model.Filter.AdvancedDetails.t
          val render :
            GapiAnalyticsV3Model.Filter.AdvancedDetails.t ->
            GapiJson.json_data_model list
          val parse :
            GapiAnalyticsV3Model.Filter.AdvancedDetails.t ->
            GapiJson.json_data_model ->
            GapiAnalyticsV3Model.Filter.AdvancedDetails.t
        end
      type t = {
        accountId : string;
        advancedDetails : GapiAnalyticsV3Model.Filter.AdvancedDetails.t;
        created : GapiDate.t;
        excludeDetails : GapiAnalyticsV3Model.FilterExpression.t;
        id : string;
        includeDetails : GapiAnalyticsV3Model.FilterExpression.t;
        kind : string;
        lowercaseDetails : GapiAnalyticsV3Model.Filter.LowercaseDetails.t;
        name : string;
        parentLink : GapiAnalyticsV3Model.Filter.ParentLink.t;
        searchAndReplaceDetails :
          GapiAnalyticsV3Model.Filter.SearchAndReplaceDetails.t;
        selfLink : string;
        _type : string;
        updated : GapiDate.t;
        uppercaseDetails : GapiAnalyticsV3Model.Filter.UppercaseDetails.t;
      }
      val accountId : (GapiAnalyticsV3Model.Filter.t, string) GapiLens.t
      val advancedDetails :
        (GapiAnalyticsV3Model.Filter.t,
         GapiAnalyticsV3Model.Filter.AdvancedDetails.t)
        GapiLens.t
      val created : (GapiAnalyticsV3Model.Filter.t, GapiDate.t) GapiLens.t
      val excludeDetails :
        (GapiAnalyticsV3Model.Filter.t,
         GapiAnalyticsV3Model.FilterExpression.t)
        GapiLens.t
      val id : (GapiAnalyticsV3Model.Filter.t, string) GapiLens.t
      val includeDetails :
        (GapiAnalyticsV3Model.Filter.t,
         GapiAnalyticsV3Model.FilterExpression.t)
        GapiLens.t
      val kind : (GapiAnalyticsV3Model.Filter.t, string) GapiLens.t
      val lowercaseDetails :
        (GapiAnalyticsV3Model.Filter.t,
         GapiAnalyticsV3Model.Filter.LowercaseDetails.t)
        GapiLens.t
      val name : (GapiAnalyticsV3Model.Filter.t, string) GapiLens.t
      val parentLink :
        (GapiAnalyticsV3Model.Filter.t,
         GapiAnalyticsV3Model.Filter.ParentLink.t)
        GapiLens.t
      val searchAndReplaceDetails :
        (GapiAnalyticsV3Model.Filter.t,
         GapiAnalyticsV3Model.Filter.SearchAndReplaceDetails.t)
        GapiLens.t
      val selfLink : (GapiAnalyticsV3Model.Filter.t, string) GapiLens.t
      val _type : (GapiAnalyticsV3Model.Filter.t, string) GapiLens.t
      val updated : (GapiAnalyticsV3Model.Filter.t, GapiDate.t) GapiLens.t
      val uppercaseDetails :
        (GapiAnalyticsV3Model.Filter.t,
         GapiAnalyticsV3Model.Filter.UppercaseDetails.t)
        GapiLens.t
      val empty : GapiAnalyticsV3Model.Filter.t
      val render :
        GapiAnalyticsV3Model.Filter.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.Filter.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Filter.t
      val to_data_model :
        GapiAnalyticsV3Model.Filter.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Filter.t
    end
  module Filters :
    sig
      type t = {
        items : GapiAnalyticsV3Model.Filter.t list;
        itemsPerPage : int;
        kind : string;
        nextLink : string;
        previousLink : string;
        startIndex : int;
        totalResults : int;
        username : string;
      }
      val items :
        (GapiAnalyticsV3Model.Filters.t, GapiAnalyticsV3Model.Filter.t list)
        GapiLens.t
      val itemsPerPage : (GapiAnalyticsV3Model.Filters.t, int) GapiLens.t
      val kind : (GapiAnalyticsV3Model.Filters.t, string) GapiLens.t
      val nextLink : (GapiAnalyticsV3Model.Filters.t, string) GapiLens.t
      val previousLink : (GapiAnalyticsV3Model.Filters.t, string) GapiLens.t
      val startIndex : (GapiAnalyticsV3Model.Filters.t, int) GapiLens.t
      val totalResults : (GapiAnalyticsV3Model.Filters.t, int) GapiLens.t
      val username : (GapiAnalyticsV3Model.Filters.t, string) GapiLens.t
      val empty : GapiAnalyticsV3Model.Filters.t
      val render :
        GapiAnalyticsV3Model.Filters.t -> GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.Filters.t ->
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Filters.t
      val to_data_model :
        GapiAnalyticsV3Model.Filters.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiAnalyticsV3Model.Filters.t
    end
end