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