sig
  module QuotaBytesByService :
    sig
      type t = { bytesUsed : int64; serviceName : string; }
      val bytesUsed :
        (GapiDriveV2Model.About.QuotaBytesByService.t, int64) GapiLens.t
      val serviceName :
        (GapiDriveV2Model.About.QuotaBytesByService.t, string) GapiLens.t
      val empty : GapiDriveV2Model.About.QuotaBytesByService.t
      val render :
        GapiDriveV2Model.About.QuotaBytesByService.t ->
        GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.About.QuotaBytesByService.t ->
        GapiJson.json_data_model ->
        GapiDriveV2Model.About.QuotaBytesByService.t
    end
  module MaxUploadSizes :
    sig
      type t = { size : int64; _type : string; }
      val size : (GapiDriveV2Model.About.MaxUploadSizes.t, int64) GapiLens.t
      val _type :
        (GapiDriveV2Model.About.MaxUploadSizes.t, string) GapiLens.t
      val empty : GapiDriveV2Model.About.MaxUploadSizes.t
      val render :
        GapiDriveV2Model.About.MaxUploadSizes.t ->
        GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.About.MaxUploadSizes.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.About.MaxUploadSizes.t
    end
  module ImportFormats :
    sig
      type t = { source : string; targets : string list; }
      val source :
        (GapiDriveV2Model.About.ImportFormats.t, string) GapiLens.t
      val targets :
        (GapiDriveV2Model.About.ImportFormats.t, string list) GapiLens.t
      val empty : GapiDriveV2Model.About.ImportFormats.t
      val render :
        GapiDriveV2Model.About.ImportFormats.t ->
        GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.About.ImportFormats.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.About.ImportFormats.t
    end
  module Features :
    sig
      type t = { featureName : string; featureRate : float; }
      val featureName :
        (GapiDriveV2Model.About.Features.t, string) GapiLens.t
      val featureRate : (GapiDriveV2Model.About.Features.t, float) GapiLens.t
      val empty : GapiDriveV2Model.About.Features.t
      val render :
        GapiDriveV2Model.About.Features.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.About.Features.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.About.Features.t
    end
  module ExportFormats :
    sig
      type t = { source : string; targets : string list; }
      val source :
        (GapiDriveV2Model.About.ExportFormats.t, string) GapiLens.t
      val targets :
        (GapiDriveV2Model.About.ExportFormats.t, string list) GapiLens.t
      val empty : GapiDriveV2Model.About.ExportFormats.t
      val render :
        GapiDriveV2Model.About.ExportFormats.t ->
        GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.About.ExportFormats.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.About.ExportFormats.t
    end
  module AdditionalRoleInfo :
    sig
      module RoleSets :
        sig
          type t = { additionalRoles : string list; primaryRole : string; }
          val additionalRoles :
            (GapiDriveV2Model.About.AdditionalRoleInfo.RoleSets.t,
             string list)
            GapiLens.t
          val primaryRole :
            (GapiDriveV2Model.About.AdditionalRoleInfo.RoleSets.t, string)
            GapiLens.t
          val empty : GapiDriveV2Model.About.AdditionalRoleInfo.RoleSets.t
          val render :
            GapiDriveV2Model.About.AdditionalRoleInfo.RoleSets.t ->
            GapiJson.json_data_model list
          val parse :
            GapiDriveV2Model.About.AdditionalRoleInfo.RoleSets.t ->
            GapiJson.json_data_model ->
            GapiDriveV2Model.About.AdditionalRoleInfo.RoleSets.t
        end
      type t = {
        roleSets : GapiDriveV2Model.About.AdditionalRoleInfo.RoleSets.t list;
        _type : string;
      }
      val roleSets :
        (GapiDriveV2Model.About.AdditionalRoleInfo.t,
         GapiDriveV2Model.About.AdditionalRoleInfo.RoleSets.t list)
        GapiLens.t
      val _type :
        (GapiDriveV2Model.About.AdditionalRoleInfo.t, string) GapiLens.t
      val empty : GapiDriveV2Model.About.AdditionalRoleInfo.t
      val render :
        GapiDriveV2Model.About.AdditionalRoleInfo.t ->
        GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.About.AdditionalRoleInfo.t ->
        GapiJson.json_data_model ->
        GapiDriveV2Model.About.AdditionalRoleInfo.t
    end
  type t = {
    additionalRoleInfo : GapiDriveV2Model.About.AdditionalRoleInfo.t list;
    domainSharingPolicy : string;
    etag : string;
    exportFormats : GapiDriveV2Model.About.ExportFormats.t list;
    features : GapiDriveV2Model.About.Features.t list;
    folderColorPalette : string list;
    importFormats : GapiDriveV2Model.About.ImportFormats.t list;
    isCurrentAppInstalled : bool;
    kind : string;
    languageCode : string;
    largestChangeId : int64;
    maxUploadSizes : GapiDriveV2Model.About.MaxUploadSizes.t list;
    name : string;
    permissionId : string;
    quotaBytesByService : GapiDriveV2Model.About.QuotaBytesByService.t list;
    quotaBytesTotal : int64;
    quotaBytesUsed : int64;
    quotaBytesUsedAggregate : int64;
    quotaBytesUsedInTrash : int64;
    quotaType : string;
    remainingChangeIds : int64;
    rootFolderId : string;
    selfLink : string;
    user : GapiDriveV2Model.User.t;
  }
  val additionalRoleInfo :
    (GapiDriveV2Model.About.t,
     GapiDriveV2Model.About.AdditionalRoleInfo.t list)
    GapiLens.t
  val domainSharingPolicy : (GapiDriveV2Model.About.t, string) GapiLens.t
  val etag : (GapiDriveV2Model.About.t, string) GapiLens.t
  val exportFormats :
    (GapiDriveV2Model.About.t, GapiDriveV2Model.About.ExportFormats.t list)
    GapiLens.t
  val features :
    (GapiDriveV2Model.About.t, GapiDriveV2Model.About.Features.t list)
    GapiLens.t
  val folderColorPalette : (GapiDriveV2Model.About.t, string list) GapiLens.t
  val importFormats :
    (GapiDriveV2Model.About.t, GapiDriveV2Model.About.ImportFormats.t list)
    GapiLens.t
  val isCurrentAppInstalled : (GapiDriveV2Model.About.t, bool) GapiLens.t
  val kind : (GapiDriveV2Model.About.t, string) GapiLens.t
  val languageCode : (GapiDriveV2Model.About.t, string) GapiLens.t
  val largestChangeId : (GapiDriveV2Model.About.t, int64) GapiLens.t
  val maxUploadSizes :
    (GapiDriveV2Model.About.t, GapiDriveV2Model.About.MaxUploadSizes.t list)
    GapiLens.t
  val name : (GapiDriveV2Model.About.t, string) GapiLens.t
  val permissionId : (GapiDriveV2Model.About.t, string) GapiLens.t
  val quotaBytesByService :
    (GapiDriveV2Model.About.t,
     GapiDriveV2Model.About.QuotaBytesByService.t list)
    GapiLens.t
  val quotaBytesTotal : (GapiDriveV2Model.About.t, int64) GapiLens.t
  val quotaBytesUsed : (GapiDriveV2Model.About.t, int64) GapiLens.t
  val quotaBytesUsedAggregate : (GapiDriveV2Model.About.t, int64) GapiLens.t
  val quotaBytesUsedInTrash : (GapiDriveV2Model.About.t, int64) GapiLens.t
  val quotaType : (GapiDriveV2Model.About.t, string) GapiLens.t
  val remainingChangeIds : (GapiDriveV2Model.About.t, int64) GapiLens.t
  val rootFolderId : (GapiDriveV2Model.About.t, string) GapiLens.t
  val selfLink : (GapiDriveV2Model.About.t, string) GapiLens.t
  val user : (GapiDriveV2Model.About.t, GapiDriveV2Model.User.t) GapiLens.t
  val empty : GapiDriveV2Model.About.t
  val render : GapiDriveV2Model.About.t -> GapiJson.json_data_model list
  val parse :
    GapiDriveV2Model.About.t ->
    GapiJson.json_data_model -> GapiDriveV2Model.About.t
  val to_data_model : GapiDriveV2Model.About.t -> GapiJson.json_data_model
  val of_data_model : GapiJson.json_data_model -> GapiDriveV2Model.About.t
end