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