sig
  module ChildReference :
    sig
      type t = {
        childLink : string;
        id : string;
        kind : string;
        selfLink : string;
      }
      val childLink : (GapiDriveV2Model.ChildReference.t, string) GapiLens.t
      val id : (GapiDriveV2Model.ChildReference.t, string) GapiLens.t
      val kind : (GapiDriveV2Model.ChildReference.t, string) GapiLens.t
      val selfLink : (GapiDriveV2Model.ChildReference.t, string) GapiLens.t
      val empty : GapiDriveV2Model.ChildReference.t
      val render :
        GapiDriveV2Model.ChildReference.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.ChildReference.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.ChildReference.t
      val to_data_model :
        GapiDriveV2Model.ChildReference.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV2Model.ChildReference.t
    end
  module ChildList :
    sig
      type t = {
        etag : string;
        items : GapiDriveV2Model.ChildReference.t list;
        kind : string;
        nextLink : string;
        nextPageToken : string;
        selfLink : string;
      }
      val etag : (GapiDriveV2Model.ChildList.t, string) GapiLens.t
      val items :
        (GapiDriveV2Model.ChildList.t,
         GapiDriveV2Model.ChildReference.t list)
        GapiLens.t
      val kind : (GapiDriveV2Model.ChildList.t, string) GapiLens.t
      val nextLink : (GapiDriveV2Model.ChildList.t, string) GapiLens.t
      val nextPageToken : (GapiDriveV2Model.ChildList.t, string) GapiLens.t
      val selfLink : (GapiDriveV2Model.ChildList.t, string) GapiLens.t
      val empty : GapiDriveV2Model.ChildList.t
      val render :
        GapiDriveV2Model.ChildList.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.ChildList.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.ChildList.t
      val to_data_model :
        GapiDriveV2Model.ChildList.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV2Model.ChildList.t
    end
  module User :
    sig
      module Picture :
        sig
          type t = { url : string; }
          val url : (GapiDriveV2Model.User.Picture.t, string) GapiLens.t
          val empty : GapiDriveV2Model.User.Picture.t
          val render :
            GapiDriveV2Model.User.Picture.t -> GapiJson.json_data_model list
          val parse :
            GapiDriveV2Model.User.Picture.t ->
            GapiJson.json_data_model -> GapiDriveV2Model.User.Picture.t
        end
      type t = {
        displayName : string;
        emailAddress : string;
        isAuthenticatedUser : bool;
        kind : string;
        permissionId : string;
        picture : GapiDriveV2Model.User.Picture.t;
      }
      val displayName : (GapiDriveV2Model.User.t, string) GapiLens.t
      val emailAddress : (GapiDriveV2Model.User.t, string) GapiLens.t
      val isAuthenticatedUser : (GapiDriveV2Model.User.t, bool) GapiLens.t
      val kind : (GapiDriveV2Model.User.t, string) GapiLens.t
      val permissionId : (GapiDriveV2Model.User.t, string) GapiLens.t
      val picture :
        (GapiDriveV2Model.User.t, GapiDriveV2Model.User.Picture.t) GapiLens.t
      val empty : GapiDriveV2Model.User.t
      val render : GapiDriveV2Model.User.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.User.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.User.t
      val to_data_model : GapiDriveV2Model.User.t -> GapiJson.json_data_model
      val of_data_model : GapiJson.json_data_model -> GapiDriveV2Model.User.t
    end
  module About :
    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
  module CommentReply :
    sig
      type t = {
        author : GapiDriveV2Model.User.t;
        content : string;
        createdDate : GapiDate.t;
        deleted : bool;
        htmlContent : string;
        kind : string;
        modifiedDate : GapiDate.t;
        replyId : string;
        verb : string;
      }
      val author :
        (GapiDriveV2Model.CommentReply.t, GapiDriveV2Model.User.t) GapiLens.t
      val content : (GapiDriveV2Model.CommentReply.t, string) GapiLens.t
      val createdDate :
        (GapiDriveV2Model.CommentReply.t, GapiDate.t) GapiLens.t
      val deleted : (GapiDriveV2Model.CommentReply.t, bool) GapiLens.t
      val htmlContent : (GapiDriveV2Model.CommentReply.t, string) GapiLens.t
      val kind : (GapiDriveV2Model.CommentReply.t, string) GapiLens.t
      val modifiedDate :
        (GapiDriveV2Model.CommentReply.t, GapiDate.t) GapiLens.t
      val replyId : (GapiDriveV2Model.CommentReply.t, string) GapiLens.t
      val verb : (GapiDriveV2Model.CommentReply.t, string) GapiLens.t
      val empty : GapiDriveV2Model.CommentReply.t
      val render :
        GapiDriveV2Model.CommentReply.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.CommentReply.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.CommentReply.t
      val to_data_model :
        GapiDriveV2Model.CommentReply.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV2Model.CommentReply.t
    end
  module App :
    sig
      module Icons :
        sig
          type t = { category : string; iconUrl : string; size : int; }
          val category : (GapiDriveV2Model.App.Icons.t, string) GapiLens.t
          val iconUrl : (GapiDriveV2Model.App.Icons.t, string) GapiLens.t
          val size : (GapiDriveV2Model.App.Icons.t, int) GapiLens.t
          val empty : GapiDriveV2Model.App.Icons.t
          val render :
            GapiDriveV2Model.App.Icons.t -> GapiJson.json_data_model list
          val parse :
            GapiDriveV2Model.App.Icons.t ->
            GapiJson.json_data_model -> GapiDriveV2Model.App.Icons.t
        end
      type t = {
        authorized : bool;
        createInFolderTemplate : string;
        createUrl : string;
        hasDriveWideScope : bool;
        icons : GapiDriveV2Model.App.Icons.t list;
        id : string;
        installed : bool;
        kind : string;
        longDescription : string;
        name : string;
        objectType : string;
        openUrlTemplate : string;
        primaryFileExtensions : string list;
        primaryMimeTypes : string list;
        productId : string;
        productUrl : string;
        secondaryFileExtensions : string list;
        secondaryMimeTypes : string list;
        shortDescription : string;
        supportsCreate : bool;
        supportsImport : bool;
        supportsMultiOpen : bool;
        supportsOfflineCreate : bool;
        useByDefault : bool;
      }
      val authorized : (GapiDriveV2Model.App.t, bool) GapiLens.t
      val createInFolderTemplate :
        (GapiDriveV2Model.App.t, string) GapiLens.t
      val createUrl : (GapiDriveV2Model.App.t, string) GapiLens.t
      val hasDriveWideScope : (GapiDriveV2Model.App.t, bool) GapiLens.t
      val icons :
        (GapiDriveV2Model.App.t, GapiDriveV2Model.App.Icons.t list)
        GapiLens.t
      val id : (GapiDriveV2Model.App.t, string) GapiLens.t
      val installed : (GapiDriveV2Model.App.t, bool) GapiLens.t
      val kind : (GapiDriveV2Model.App.t, string) GapiLens.t
      val longDescription : (GapiDriveV2Model.App.t, string) GapiLens.t
      val name : (GapiDriveV2Model.App.t, string) GapiLens.t
      val objectType : (GapiDriveV2Model.App.t, string) GapiLens.t
      val openUrlTemplate : (GapiDriveV2Model.App.t, string) GapiLens.t
      val primaryFileExtensions :
        (GapiDriveV2Model.App.t, string list) GapiLens.t
      val primaryMimeTypes : (GapiDriveV2Model.App.t, string list) GapiLens.t
      val productId : (GapiDriveV2Model.App.t, string) GapiLens.t
      val productUrl : (GapiDriveV2Model.App.t, string) GapiLens.t
      val secondaryFileExtensions :
        (GapiDriveV2Model.App.t, string list) GapiLens.t
      val secondaryMimeTypes :
        (GapiDriveV2Model.App.t, string list) GapiLens.t
      val shortDescription : (GapiDriveV2Model.App.t, string) GapiLens.t
      val supportsCreate : (GapiDriveV2Model.App.t, bool) GapiLens.t
      val supportsImport : (GapiDriveV2Model.App.t, bool) GapiLens.t
      val supportsMultiOpen : (GapiDriveV2Model.App.t, bool) GapiLens.t
      val supportsOfflineCreate : (GapiDriveV2Model.App.t, bool) GapiLens.t
      val useByDefault : (GapiDriveV2Model.App.t, bool) GapiLens.t
      val empty : GapiDriveV2Model.App.t
      val render : GapiDriveV2Model.App.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.App.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.App.t
      val to_data_model : GapiDriveV2Model.App.t -> GapiJson.json_data_model
      val of_data_model : GapiJson.json_data_model -> GapiDriveV2Model.App.t
    end
  module AppList :
    sig
      type t = {
        defaultAppIds : string list;
        etag : string;
        items : GapiDriveV2Model.App.t list;
        kind : string;
        selfLink : string;
      }
      val defaultAppIds :
        (GapiDriveV2Model.AppList.t, string list) GapiLens.t
      val etag : (GapiDriveV2Model.AppList.t, string) GapiLens.t
      val items :
        (GapiDriveV2Model.AppList.t, GapiDriveV2Model.App.t list) GapiLens.t
      val kind : (GapiDriveV2Model.AppList.t, string) GapiLens.t
      val selfLink : (GapiDriveV2Model.AppList.t, string) GapiLens.t
      val empty : GapiDriveV2Model.AppList.t
      val render :
        GapiDriveV2Model.AppList.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.AppList.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.AppList.t
      val to_data_model :
        GapiDriveV2Model.AppList.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV2Model.AppList.t
    end
  module PermissionId :
    sig
      type t = { id : string; kind : string; }
      val id : (GapiDriveV2Model.PermissionId.t, string) GapiLens.t
      val kind : (GapiDriveV2Model.PermissionId.t, string) GapiLens.t
      val empty : GapiDriveV2Model.PermissionId.t
      val render :
        GapiDriveV2Model.PermissionId.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.PermissionId.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.PermissionId.t
      val to_data_model :
        GapiDriveV2Model.PermissionId.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV2Model.PermissionId.t
    end
  module Revision :
    sig
      type t = {
        downloadUrl : string;
        etag : string;
        exportLinks : (string * string) list;
        fileSize : int64;
        id : string;
        kind : string;
        lastModifyingUser : GapiDriveV2Model.User.t;
        lastModifyingUserName : string;
        md5Checksum : string;
        mimeType : string;
        modifiedDate : GapiDate.t;
        originalFilename : string;
        pinned : bool;
        publishAuto : bool;
        published : bool;
        publishedLink : string;
        publishedOutsideDomain : bool;
        selfLink : string;
      }
      val downloadUrl : (GapiDriveV2Model.Revision.t, string) GapiLens.t
      val etag : (GapiDriveV2Model.Revision.t, string) GapiLens.t
      val exportLinks :
        (GapiDriveV2Model.Revision.t, (string * string) list) GapiLens.t
      val fileSize : (GapiDriveV2Model.Revision.t, int64) GapiLens.t
      val id : (GapiDriveV2Model.Revision.t, string) GapiLens.t
      val kind : (GapiDriveV2Model.Revision.t, string) GapiLens.t
      val lastModifyingUser :
        (GapiDriveV2Model.Revision.t, GapiDriveV2Model.User.t) GapiLens.t
      val lastModifyingUserName :
        (GapiDriveV2Model.Revision.t, string) GapiLens.t
      val md5Checksum : (GapiDriveV2Model.Revision.t, string) GapiLens.t
      val mimeType : (GapiDriveV2Model.Revision.t, string) GapiLens.t
      val modifiedDate : (GapiDriveV2Model.Revision.t, GapiDate.t) GapiLens.t
      val originalFilename : (GapiDriveV2Model.Revision.t, string) GapiLens.t
      val pinned : (GapiDriveV2Model.Revision.t, bool) GapiLens.t
      val publishAuto : (GapiDriveV2Model.Revision.t, bool) GapiLens.t
      val published : (GapiDriveV2Model.Revision.t, bool) GapiLens.t
      val publishedLink : (GapiDriveV2Model.Revision.t, string) GapiLens.t
      val publishedOutsideDomain :
        (GapiDriveV2Model.Revision.t, bool) GapiLens.t
      val selfLink : (GapiDriveV2Model.Revision.t, string) GapiLens.t
      val empty : GapiDriveV2Model.Revision.t
      val render :
        GapiDriveV2Model.Revision.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.Revision.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.Revision.t
      val to_data_model :
        GapiDriveV2Model.Revision.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV2Model.Revision.t
    end
  module Comment :
    sig
      module Context :
        sig
          type t = { _type : string; value : string; }
          val _type : (GapiDriveV2Model.Comment.Context.t, string) GapiLens.t
          val value : (GapiDriveV2Model.Comment.Context.t, string) GapiLens.t
          val empty : GapiDriveV2Model.Comment.Context.t
          val render :
            GapiDriveV2Model.Comment.Context.t ->
            GapiJson.json_data_model list
          val parse :
            GapiDriveV2Model.Comment.Context.t ->
            GapiJson.json_data_model -> GapiDriveV2Model.Comment.Context.t
        end
      type t = {
        anchor : string;
        author : GapiDriveV2Model.User.t;
        commentId : string;
        content : string;
        context : GapiDriveV2Model.Comment.Context.t;
        createdDate : GapiDate.t;
        deleted : bool;
        fileId : string;
        fileTitle : string;
        htmlContent : string;
        kind : string;
        modifiedDate : GapiDate.t;
        replies : GapiDriveV2Model.CommentReply.t list;
        selfLink : string;
        status : string;
      }
      val anchor : (GapiDriveV2Model.Comment.t, string) GapiLens.t
      val author :
        (GapiDriveV2Model.Comment.t, GapiDriveV2Model.User.t) GapiLens.t
      val commentId : (GapiDriveV2Model.Comment.t, string) GapiLens.t
      val content : (GapiDriveV2Model.Comment.t, string) GapiLens.t
      val context :
        (GapiDriveV2Model.Comment.t, GapiDriveV2Model.Comment.Context.t)
        GapiLens.t
      val createdDate : (GapiDriveV2Model.Comment.t, GapiDate.t) GapiLens.t
      val deleted : (GapiDriveV2Model.Comment.t, bool) GapiLens.t
      val fileId : (GapiDriveV2Model.Comment.t, string) GapiLens.t
      val fileTitle : (GapiDriveV2Model.Comment.t, string) GapiLens.t
      val htmlContent : (GapiDriveV2Model.Comment.t, string) GapiLens.t
      val kind : (GapiDriveV2Model.Comment.t, string) GapiLens.t
      val modifiedDate : (GapiDriveV2Model.Comment.t, GapiDate.t) GapiLens.t
      val replies :
        (GapiDriveV2Model.Comment.t, GapiDriveV2Model.CommentReply.t list)
        GapiLens.t
      val selfLink : (GapiDriveV2Model.Comment.t, string) GapiLens.t
      val status : (GapiDriveV2Model.Comment.t, string) GapiLens.t
      val empty : GapiDriveV2Model.Comment.t
      val render :
        GapiDriveV2Model.Comment.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.Comment.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.Comment.t
      val to_data_model :
        GapiDriveV2Model.Comment.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV2Model.Comment.t
    end
  module CommentList :
    sig
      type t = {
        items : GapiDriveV2Model.Comment.t list;
        kind : string;
        nextLink : string;
        nextPageToken : string;
        selfLink : string;
      }
      val items :
        (GapiDriveV2Model.CommentList.t, GapiDriveV2Model.Comment.t list)
        GapiLens.t
      val kind : (GapiDriveV2Model.CommentList.t, string) GapiLens.t
      val nextLink : (GapiDriveV2Model.CommentList.t, string) GapiLens.t
      val nextPageToken : (GapiDriveV2Model.CommentList.t, string) GapiLens.t
      val selfLink : (GapiDriveV2Model.CommentList.t, string) GapiLens.t
      val empty : GapiDriveV2Model.CommentList.t
      val render :
        GapiDriveV2Model.CommentList.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.CommentList.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.CommentList.t
      val to_data_model :
        GapiDriveV2Model.CommentList.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV2Model.CommentList.t
    end
  module GeneratedIds :
    sig
      type t = { ids : string list; kind : string; space : string; }
      val ids : (GapiDriveV2Model.GeneratedIds.t, string list) GapiLens.t
      val kind : (GapiDriveV2Model.GeneratedIds.t, string) GapiLens.t
      val space : (GapiDriveV2Model.GeneratedIds.t, string) GapiLens.t
      val empty : GapiDriveV2Model.GeneratedIds.t
      val render :
        GapiDriveV2Model.GeneratedIds.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.GeneratedIds.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.GeneratedIds.t
      val to_data_model :
        GapiDriveV2Model.GeneratedIds.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV2Model.GeneratedIds.t
    end
  module Permission :
    sig
      type t = {
        additionalRoles : string list;
        authKey : string;
        domain : string;
        emailAddress : string;
        etag : string;
        expirationDate : GapiDate.t;
        id : string;
        kind : string;
        name : string;
        photoLink : string;
        role : string;
        selfLink : string;
        _type : string;
        value : string;
        withLink : bool;
      }
      val additionalRoles :
        (GapiDriveV2Model.Permission.t, string list) GapiLens.t
      val authKey : (GapiDriveV2Model.Permission.t, string) GapiLens.t
      val domain : (GapiDriveV2Model.Permission.t, string) GapiLens.t
      val emailAddress : (GapiDriveV2Model.Permission.t, string) GapiLens.t
      val etag : (GapiDriveV2Model.Permission.t, string) GapiLens.t
      val expirationDate :
        (GapiDriveV2Model.Permission.t, GapiDate.t) GapiLens.t
      val id : (GapiDriveV2Model.Permission.t, string) GapiLens.t
      val kind : (GapiDriveV2Model.Permission.t, string) GapiLens.t
      val name : (GapiDriveV2Model.Permission.t, string) GapiLens.t
      val photoLink : (GapiDriveV2Model.Permission.t, string) GapiLens.t
      val role : (GapiDriveV2Model.Permission.t, string) GapiLens.t
      val selfLink : (GapiDriveV2Model.Permission.t, string) GapiLens.t
      val _type : (GapiDriveV2Model.Permission.t, string) GapiLens.t
      val value : (GapiDriveV2Model.Permission.t, string) GapiLens.t
      val withLink : (GapiDriveV2Model.Permission.t, bool) GapiLens.t
      val empty : GapiDriveV2Model.Permission.t
      val render :
        GapiDriveV2Model.Permission.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.Permission.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.Permission.t
      val to_data_model :
        GapiDriveV2Model.Permission.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV2Model.Permission.t
    end
  module ParentReference :
    sig
      type t = {
        id : string;
        isRoot : bool;
        kind : string;
        parentLink : string;
        selfLink : string;
      }
      val id : (GapiDriveV2Model.ParentReference.t, string) GapiLens.t
      val isRoot : (GapiDriveV2Model.ParentReference.t, bool) GapiLens.t
      val kind : (GapiDriveV2Model.ParentReference.t, string) GapiLens.t
      val parentLink :
        (GapiDriveV2Model.ParentReference.t, string) GapiLens.t
      val selfLink : (GapiDriveV2Model.ParentReference.t, string) GapiLens.t
      val empty : GapiDriveV2Model.ParentReference.t
      val render :
        GapiDriveV2Model.ParentReference.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.ParentReference.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.ParentReference.t
      val to_data_model :
        GapiDriveV2Model.ParentReference.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV2Model.ParentReference.t
    end
  module Property :
    sig
      type t = {
        etag : string;
        key : string;
        kind : string;
        selfLink : string;
        value : string;
        visibility : string;
      }
      val etag : (GapiDriveV2Model.Property.t, string) GapiLens.t
      val key : (GapiDriveV2Model.Property.t, string) GapiLens.t
      val kind : (GapiDriveV2Model.Property.t, string) GapiLens.t
      val selfLink : (GapiDriveV2Model.Property.t, string) GapiLens.t
      val value : (GapiDriveV2Model.Property.t, string) GapiLens.t
      val visibility : (GapiDriveV2Model.Property.t, string) GapiLens.t
      val empty : GapiDriveV2Model.Property.t
      val render :
        GapiDriveV2Model.Property.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.Property.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.Property.t
      val to_data_model :
        GapiDriveV2Model.Property.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV2Model.Property.t
    end
  module File :
    sig
      module VideoMediaMetadata :
        sig
          type t = { durationMillis : int64; height : int; width : int; }
          val durationMillis :
            (GapiDriveV2Model.File.VideoMediaMetadata.t, int64) GapiLens.t
          val height :
            (GapiDriveV2Model.File.VideoMediaMetadata.t, int) GapiLens.t
          val width :
            (GapiDriveV2Model.File.VideoMediaMetadata.t, int) GapiLens.t
          val empty : GapiDriveV2Model.File.VideoMediaMetadata.t
          val render :
            GapiDriveV2Model.File.VideoMediaMetadata.t ->
            GapiJson.json_data_model list
          val parse :
            GapiDriveV2Model.File.VideoMediaMetadata.t ->
            GapiJson.json_data_model ->
            GapiDriveV2Model.File.VideoMediaMetadata.t
        end
      module Thumbnail :
        sig
          type t = { image : string; mimeType : string; }
          val image : (GapiDriveV2Model.File.Thumbnail.t, string) GapiLens.t
          val mimeType :
            (GapiDriveV2Model.File.Thumbnail.t, string) GapiLens.t
          val empty : GapiDriveV2Model.File.Thumbnail.t
          val render :
            GapiDriveV2Model.File.Thumbnail.t ->
            GapiJson.json_data_model list
          val parse :
            GapiDriveV2Model.File.Thumbnail.t ->
            GapiJson.json_data_model -> GapiDriveV2Model.File.Thumbnail.t
        end
      module Labels :
        sig
          type t = {
            hidden : bool;
            modified : bool;
            restricted : bool;
            starred : bool;
            trashed : bool;
            viewed : bool;
          }
          val hidden : (GapiDriveV2Model.File.Labels.t, bool) GapiLens.t
          val modified : (GapiDriveV2Model.File.Labels.t, bool) GapiLens.t
          val restricted : (GapiDriveV2Model.File.Labels.t, bool) GapiLens.t
          val starred : (GapiDriveV2Model.File.Labels.t, bool) GapiLens.t
          val trashed : (GapiDriveV2Model.File.Labels.t, bool) GapiLens.t
          val viewed : (GapiDriveV2Model.File.Labels.t, bool) GapiLens.t
          val empty : GapiDriveV2Model.File.Labels.t
          val render :
            GapiDriveV2Model.File.Labels.t -> GapiJson.json_data_model list
          val parse :
            GapiDriveV2Model.File.Labels.t ->
            GapiJson.json_data_model -> GapiDriveV2Model.File.Labels.t
        end
      module IndexableText :
        sig
          type t = { text : string; }
          val text :
            (GapiDriveV2Model.File.IndexableText.t, string) GapiLens.t
          val empty : GapiDriveV2Model.File.IndexableText.t
          val render :
            GapiDriveV2Model.File.IndexableText.t ->
            GapiJson.json_data_model list
          val parse :
            GapiDriveV2Model.File.IndexableText.t ->
            GapiJson.json_data_model -> GapiDriveV2Model.File.IndexableText.t
        end
      module ImageMediaMetadata :
        sig
          module Location :
            sig
              type t = {
                altitude : float;
                latitude : float;
                longitude : float;
              }
              val altitude :
                (GapiDriveV2Model.File.ImageMediaMetadata.Location.t, float)
                GapiLens.t
              val latitude :
                (GapiDriveV2Model.File.ImageMediaMetadata.Location.t, float)
                GapiLens.t
              val longitude :
                (GapiDriveV2Model.File.ImageMediaMetadata.Location.t, float)
                GapiLens.t
              val empty : GapiDriveV2Model.File.ImageMediaMetadata.Location.t
              val render :
                GapiDriveV2Model.File.ImageMediaMetadata.Location.t ->
                GapiJson.json_data_model list
              val parse :
                GapiDriveV2Model.File.ImageMediaMetadata.Location.t ->
                GapiJson.json_data_model ->
                GapiDriveV2Model.File.ImageMediaMetadata.Location.t
            end
          type t = {
            aperture : float;
            cameraMake : string;
            cameraModel : string;
            colorSpace : string;
            date : string;
            exposureBias : float;
            exposureMode : string;
            exposureTime : float;
            flashUsed : bool;
            focalLength : float;
            height : int;
            isoSpeed : int;
            lens : string;
            location : GapiDriveV2Model.File.ImageMediaMetadata.Location.t;
            maxApertureValue : float;
            meteringMode : string;
            rotation : int;
            sensor : string;
            subjectDistance : int;
            whiteBalance : string;
            width : int;
          }
          val aperture :
            (GapiDriveV2Model.File.ImageMediaMetadata.t, float) GapiLens.t
          val cameraMake :
            (GapiDriveV2Model.File.ImageMediaMetadata.t, string) GapiLens.t
          val cameraModel :
            (GapiDriveV2Model.File.ImageMediaMetadata.t, string) GapiLens.t
          val colorSpace :
            (GapiDriveV2Model.File.ImageMediaMetadata.t, string) GapiLens.t
          val date :
            (GapiDriveV2Model.File.ImageMediaMetadata.t, string) GapiLens.t
          val exposureBias :
            (GapiDriveV2Model.File.ImageMediaMetadata.t, float) GapiLens.t
          val exposureMode :
            (GapiDriveV2Model.File.ImageMediaMetadata.t, string) GapiLens.t
          val exposureTime :
            (GapiDriveV2Model.File.ImageMediaMetadata.t, float) GapiLens.t
          val flashUsed :
            (GapiDriveV2Model.File.ImageMediaMetadata.t, bool) GapiLens.t
          val focalLength :
            (GapiDriveV2Model.File.ImageMediaMetadata.t, float) GapiLens.t
          val height :
            (GapiDriveV2Model.File.ImageMediaMetadata.t, int) GapiLens.t
          val isoSpeed :
            (GapiDriveV2Model.File.ImageMediaMetadata.t, int) GapiLens.t
          val lens :
            (GapiDriveV2Model.File.ImageMediaMetadata.t, string) GapiLens.t
          val location :
            (GapiDriveV2Model.File.ImageMediaMetadata.t,
             GapiDriveV2Model.File.ImageMediaMetadata.Location.t)
            GapiLens.t
          val maxApertureValue :
            (GapiDriveV2Model.File.ImageMediaMetadata.t, float) GapiLens.t
          val meteringMode :
            (GapiDriveV2Model.File.ImageMediaMetadata.t, string) GapiLens.t
          val rotation :
            (GapiDriveV2Model.File.ImageMediaMetadata.t, int) GapiLens.t
          val sensor :
            (GapiDriveV2Model.File.ImageMediaMetadata.t, string) GapiLens.t
          val subjectDistance :
            (GapiDriveV2Model.File.ImageMediaMetadata.t, int) GapiLens.t
          val whiteBalance :
            (GapiDriveV2Model.File.ImageMediaMetadata.t, string) GapiLens.t
          val width :
            (GapiDriveV2Model.File.ImageMediaMetadata.t, int) GapiLens.t
          val empty : GapiDriveV2Model.File.ImageMediaMetadata.t
          val render :
            GapiDriveV2Model.File.ImageMediaMetadata.t ->
            GapiJson.json_data_model list
          val parse :
            GapiDriveV2Model.File.ImageMediaMetadata.t ->
            GapiJson.json_data_model ->
            GapiDriveV2Model.File.ImageMediaMetadata.t
        end
      type t = {
        alternateLink : string;
        appDataContents : bool;
        canComment : bool;
        canReadRevisions : bool;
        copyable : bool;
        createdDate : GapiDate.t;
        defaultOpenWithLink : string;
        description : string;
        downloadUrl : string;
        editable : bool;
        embedLink : string;
        etag : string;
        explicitlyTrashed : bool;
        exportLinks : (string * string) list;
        fileExtension : string;
        fileSize : int64;
        folderColorRgb : string;
        fullFileExtension : string;
        headRevisionId : string;
        iconLink : string;
        id : string;
        imageMediaMetadata : GapiDriveV2Model.File.ImageMediaMetadata.t;
        indexableText : GapiDriveV2Model.File.IndexableText.t;
        isAppAuthorized : bool;
        kind : string;
        labels : GapiDriveV2Model.File.Labels.t;
        lastModifyingUser : GapiDriveV2Model.User.t;
        lastModifyingUserName : string;
        lastViewedByMeDate : GapiDate.t;
        markedViewedByMeDate : GapiDate.t;
        md5Checksum : string;
        mimeType : string;
        modifiedByMeDate : GapiDate.t;
        modifiedDate : GapiDate.t;
        openWithLinks : (string * string) list;
        originalFilename : string;
        ownedByMe : bool;
        ownerNames : string list;
        owners : GapiDriveV2Model.User.t list;
        parents : GapiDriveV2Model.ParentReference.t list;
        permissions : GapiDriveV2Model.Permission.t list;
        properties : GapiDriveV2Model.Property.t list;
        quotaBytesUsed : int64;
        selfLink : string;
        shareable : bool;
        shared : bool;
        sharedWithMeDate : GapiDate.t;
        sharingUser : GapiDriveV2Model.User.t;
        spaces : string list;
        thumbnail : GapiDriveV2Model.File.Thumbnail.t;
        thumbnailLink : string;
        title : string;
        userPermission : GapiDriveV2Model.Permission.t;
        version : int64;
        videoMediaMetadata : GapiDriveV2Model.File.VideoMediaMetadata.t;
        webContentLink : string;
        webViewLink : string;
        writersCanShare : bool;
      }
      val alternateLink : (GapiDriveV2Model.File.t, string) GapiLens.t
      val appDataContents : (GapiDriveV2Model.File.t, bool) GapiLens.t
      val canComment : (GapiDriveV2Model.File.t, bool) GapiLens.t
      val canReadRevisions : (GapiDriveV2Model.File.t, bool) GapiLens.t
      val copyable : (GapiDriveV2Model.File.t, bool) GapiLens.t
      val createdDate : (GapiDriveV2Model.File.t, GapiDate.t) GapiLens.t
      val defaultOpenWithLink : (GapiDriveV2Model.File.t, string) GapiLens.t
      val description : (GapiDriveV2Model.File.t, string) GapiLens.t
      val downloadUrl : (GapiDriveV2Model.File.t, string) GapiLens.t
      val editable : (GapiDriveV2Model.File.t, bool) GapiLens.t
      val embedLink : (GapiDriveV2Model.File.t, string) GapiLens.t
      val etag : (GapiDriveV2Model.File.t, string) GapiLens.t
      val explicitlyTrashed : (GapiDriveV2Model.File.t, bool) GapiLens.t
      val exportLinks :
        (GapiDriveV2Model.File.t, (string * string) list) GapiLens.t
      val fileExtension : (GapiDriveV2Model.File.t, string) GapiLens.t
      val fileSize : (GapiDriveV2Model.File.t, int64) GapiLens.t
      val folderColorRgb : (GapiDriveV2Model.File.t, string) GapiLens.t
      val fullFileExtension : (GapiDriveV2Model.File.t, string) GapiLens.t
      val headRevisionId : (GapiDriveV2Model.File.t, string) GapiLens.t
      val iconLink : (GapiDriveV2Model.File.t, string) GapiLens.t
      val id : (GapiDriveV2Model.File.t, string) GapiLens.t
      val imageMediaMetadata :
        (GapiDriveV2Model.File.t, GapiDriveV2Model.File.ImageMediaMetadata.t)
        GapiLens.t
      val indexableText :
        (GapiDriveV2Model.File.t, GapiDriveV2Model.File.IndexableText.t)
        GapiLens.t
      val isAppAuthorized : (GapiDriveV2Model.File.t, bool) GapiLens.t
      val kind : (GapiDriveV2Model.File.t, string) GapiLens.t
      val labels :
        (GapiDriveV2Model.File.t, GapiDriveV2Model.File.Labels.t) GapiLens.t
      val lastModifyingUser :
        (GapiDriveV2Model.File.t, GapiDriveV2Model.User.t) GapiLens.t
      val lastModifyingUserName :
        (GapiDriveV2Model.File.t, string) GapiLens.t
      val lastViewedByMeDate :
        (GapiDriveV2Model.File.t, GapiDate.t) GapiLens.t
      val markedViewedByMeDate :
        (GapiDriveV2Model.File.t, GapiDate.t) GapiLens.t
      val md5Checksum : (GapiDriveV2Model.File.t, string) GapiLens.t
      val mimeType : (GapiDriveV2Model.File.t, string) GapiLens.t
      val modifiedByMeDate : (GapiDriveV2Model.File.t, GapiDate.t) GapiLens.t
      val modifiedDate : (GapiDriveV2Model.File.t, GapiDate.t) GapiLens.t
      val openWithLinks :
        (GapiDriveV2Model.File.t, (string * string) list) GapiLens.t
      val originalFilename : (GapiDriveV2Model.File.t, string) GapiLens.t
      val ownedByMe : (GapiDriveV2Model.File.t, bool) GapiLens.t
      val ownerNames : (GapiDriveV2Model.File.t, string list) GapiLens.t
      val owners :
        (GapiDriveV2Model.File.t, GapiDriveV2Model.User.t list) GapiLens.t
      val parents :
        (GapiDriveV2Model.File.t, GapiDriveV2Model.ParentReference.t list)
        GapiLens.t
      val permissions :
        (GapiDriveV2Model.File.t, GapiDriveV2Model.Permission.t list)
        GapiLens.t
      val properties :
        (GapiDriveV2Model.File.t, GapiDriveV2Model.Property.t list)
        GapiLens.t
      val quotaBytesUsed : (GapiDriveV2Model.File.t, int64) GapiLens.t
      val selfLink : (GapiDriveV2Model.File.t, string) GapiLens.t
      val shareable : (GapiDriveV2Model.File.t, bool) GapiLens.t
      val shared : (GapiDriveV2Model.File.t, bool) GapiLens.t
      val sharedWithMeDate : (GapiDriveV2Model.File.t, GapiDate.t) GapiLens.t
      val sharingUser :
        (GapiDriveV2Model.File.t, GapiDriveV2Model.User.t) GapiLens.t
      val spaces : (GapiDriveV2Model.File.t, string list) GapiLens.t
      val thumbnail :
        (GapiDriveV2Model.File.t, GapiDriveV2Model.File.Thumbnail.t)
        GapiLens.t
      val thumbnailLink : (GapiDriveV2Model.File.t, string) GapiLens.t
      val title : (GapiDriveV2Model.File.t, string) GapiLens.t
      val userPermission :
        (GapiDriveV2Model.File.t, GapiDriveV2Model.Permission.t) GapiLens.t
      val version : (GapiDriveV2Model.File.t, int64) GapiLens.t
      val videoMediaMetadata :
        (GapiDriveV2Model.File.t, GapiDriveV2Model.File.VideoMediaMetadata.t)
        GapiLens.t
      val webContentLink : (GapiDriveV2Model.File.t, string) GapiLens.t
      val webViewLink : (GapiDriveV2Model.File.t, string) GapiLens.t
      val writersCanShare : (GapiDriveV2Model.File.t, bool) GapiLens.t
      val empty : GapiDriveV2Model.File.t
      val render : GapiDriveV2Model.File.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.File.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.File.t
      val to_data_model : GapiDriveV2Model.File.t -> GapiJson.json_data_model
      val of_data_model : GapiJson.json_data_model -> GapiDriveV2Model.File.t
    end
  module Change :
    sig
      type t = {
        deleted : bool;
        file : GapiDriveV2Model.File.t;
        fileId : string;
        id : int64;
        kind : string;
        modificationDate : GapiDate.t;
        selfLink : string;
      }
      val deleted : (GapiDriveV2Model.Change.t, bool) GapiLens.t
      val file :
        (GapiDriveV2Model.Change.t, GapiDriveV2Model.File.t) GapiLens.t
      val fileId : (GapiDriveV2Model.Change.t, string) GapiLens.t
      val id : (GapiDriveV2Model.Change.t, int64) GapiLens.t
      val kind : (GapiDriveV2Model.Change.t, string) GapiLens.t
      val modificationDate :
        (GapiDriveV2Model.Change.t, GapiDate.t) GapiLens.t
      val selfLink : (GapiDriveV2Model.Change.t, string) GapiLens.t
      val empty : GapiDriveV2Model.Change.t
      val render : GapiDriveV2Model.Change.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.Change.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.Change.t
      val to_data_model :
        GapiDriveV2Model.Change.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV2Model.Change.t
    end
  module CommentReplyList :
    sig
      type t = {
        items : GapiDriveV2Model.CommentReply.t list;
        kind : string;
        nextLink : string;
        nextPageToken : string;
        selfLink : string;
      }
      val items :
        (GapiDriveV2Model.CommentReplyList.t,
         GapiDriveV2Model.CommentReply.t list)
        GapiLens.t
      val kind : (GapiDriveV2Model.CommentReplyList.t, string) GapiLens.t
      val nextLink : (GapiDriveV2Model.CommentReplyList.t, string) GapiLens.t
      val nextPageToken :
        (GapiDriveV2Model.CommentReplyList.t, string) GapiLens.t
      val selfLink : (GapiDriveV2Model.CommentReplyList.t, string) GapiLens.t
      val empty : GapiDriveV2Model.CommentReplyList.t
      val render :
        GapiDriveV2Model.CommentReplyList.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.CommentReplyList.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.CommentReplyList.t
      val to_data_model :
        GapiDriveV2Model.CommentReplyList.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV2Model.CommentReplyList.t
    end
  module PermissionList :
    sig
      type t = {
        etag : string;
        items : GapiDriveV2Model.Permission.t list;
        kind : string;
        selfLink : string;
      }
      val etag : (GapiDriveV2Model.PermissionList.t, string) GapiLens.t
      val items :
        (GapiDriveV2Model.PermissionList.t,
         GapiDriveV2Model.Permission.t list)
        GapiLens.t
      val kind : (GapiDriveV2Model.PermissionList.t, string) GapiLens.t
      val selfLink : (GapiDriveV2Model.PermissionList.t, string) GapiLens.t
      val empty : GapiDriveV2Model.PermissionList.t
      val render :
        GapiDriveV2Model.PermissionList.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.PermissionList.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.PermissionList.t
      val to_data_model :
        GapiDriveV2Model.PermissionList.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV2Model.PermissionList.t
    end
  module PropertyList :
    sig
      type t = {
        etag : string;
        items : GapiDriveV2Model.Property.t list;
        kind : string;
        selfLink : string;
      }
      val etag : (GapiDriveV2Model.PropertyList.t, string) GapiLens.t
      val items :
        (GapiDriveV2Model.PropertyList.t, GapiDriveV2Model.Property.t list)
        GapiLens.t
      val kind : (GapiDriveV2Model.PropertyList.t, string) GapiLens.t
      val selfLink : (GapiDriveV2Model.PropertyList.t, string) GapiLens.t
      val empty : GapiDriveV2Model.PropertyList.t
      val render :
        GapiDriveV2Model.PropertyList.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.PropertyList.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.PropertyList.t
      val to_data_model :
        GapiDriveV2Model.PropertyList.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV2Model.PropertyList.t
    end
  module ChangeList :
    sig
      type t = {
        etag : string;
        items : GapiDriveV2Model.Change.t list;
        kind : string;
        largestChangeId : int64;
        nextLink : string;
        nextPageToken : string;
        selfLink : string;
      }
      val etag : (GapiDriveV2Model.ChangeList.t, string) GapiLens.t
      val items :
        (GapiDriveV2Model.ChangeList.t, GapiDriveV2Model.Change.t list)
        GapiLens.t
      val kind : (GapiDriveV2Model.ChangeList.t, string) GapiLens.t
      val largestChangeId : (GapiDriveV2Model.ChangeList.t, int64) GapiLens.t
      val nextLink : (GapiDriveV2Model.ChangeList.t, string) GapiLens.t
      val nextPageToken : (GapiDriveV2Model.ChangeList.t, string) GapiLens.t
      val selfLink : (GapiDriveV2Model.ChangeList.t, string) GapiLens.t
      val empty : GapiDriveV2Model.ChangeList.t
      val render :
        GapiDriveV2Model.ChangeList.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.ChangeList.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.ChangeList.t
      val to_data_model :
        GapiDriveV2Model.ChangeList.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV2Model.ChangeList.t
    end
  module RevisionList :
    sig
      type t = {
        etag : string;
        items : GapiDriveV2Model.Revision.t list;
        kind : string;
        nextPageToken : string;
        selfLink : string;
      }
      val etag : (GapiDriveV2Model.RevisionList.t, string) GapiLens.t
      val items :
        (GapiDriveV2Model.RevisionList.t, GapiDriveV2Model.Revision.t list)
        GapiLens.t
      val kind : (GapiDriveV2Model.RevisionList.t, string) GapiLens.t
      val nextPageToken :
        (GapiDriveV2Model.RevisionList.t, string) GapiLens.t
      val selfLink : (GapiDriveV2Model.RevisionList.t, string) GapiLens.t
      val empty : GapiDriveV2Model.RevisionList.t
      val render :
        GapiDriveV2Model.RevisionList.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.RevisionList.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.RevisionList.t
      val to_data_model :
        GapiDriveV2Model.RevisionList.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV2Model.RevisionList.t
    end
  module Channel :
    sig
      type t = {
        address : string;
        expiration : int64;
        id : string;
        kind : string;
        params : (string * string) list;
        payload : bool;
        resourceId : string;
        resourceUri : string;
        token : string;
        _type : string;
      }
      val address : (GapiDriveV2Model.Channel.t, string) GapiLens.t
      val expiration : (GapiDriveV2Model.Channel.t, int64) GapiLens.t
      val id : (GapiDriveV2Model.Channel.t, string) GapiLens.t
      val kind : (GapiDriveV2Model.Channel.t, string) GapiLens.t
      val params :
        (GapiDriveV2Model.Channel.t, (string * string) list) GapiLens.t
      val payload : (GapiDriveV2Model.Channel.t, bool) GapiLens.t
      val resourceId : (GapiDriveV2Model.Channel.t, string) GapiLens.t
      val resourceUri : (GapiDriveV2Model.Channel.t, string) GapiLens.t
      val token : (GapiDriveV2Model.Channel.t, string) GapiLens.t
      val _type : (GapiDriveV2Model.Channel.t, string) GapiLens.t
      val empty : GapiDriveV2Model.Channel.t
      val render :
        GapiDriveV2Model.Channel.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.Channel.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.Channel.t
      val to_data_model :
        GapiDriveV2Model.Channel.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV2Model.Channel.t
    end
  module FileList :
    sig
      type t = {
        etag : string;
        items : GapiDriveV2Model.File.t list;
        kind : string;
        nextLink : string;
        nextPageToken : string;
        selfLink : string;
      }
      val etag : (GapiDriveV2Model.FileList.t, string) GapiLens.t
      val items :
        (GapiDriveV2Model.FileList.t, GapiDriveV2Model.File.t list)
        GapiLens.t
      val kind : (GapiDriveV2Model.FileList.t, string) GapiLens.t
      val nextLink : (GapiDriveV2Model.FileList.t, string) GapiLens.t
      val nextPageToken : (GapiDriveV2Model.FileList.t, string) GapiLens.t
      val selfLink : (GapiDriveV2Model.FileList.t, string) GapiLens.t
      val empty : GapiDriveV2Model.FileList.t
      val render :
        GapiDriveV2Model.FileList.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.FileList.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.FileList.t
      val to_data_model :
        GapiDriveV2Model.FileList.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV2Model.FileList.t
    end
  module ParentList :
    sig
      type t = {
        etag : string;
        items : GapiDriveV2Model.ParentReference.t list;
        kind : string;
        selfLink : string;
      }
      val etag : (GapiDriveV2Model.ParentList.t, string) GapiLens.t
      val items :
        (GapiDriveV2Model.ParentList.t,
         GapiDriveV2Model.ParentReference.t list)
        GapiLens.t
      val kind : (GapiDriveV2Model.ParentList.t, string) GapiLens.t
      val selfLink : (GapiDriveV2Model.ParentList.t, string) GapiLens.t
      val empty : GapiDriveV2Model.ParentList.t
      val render :
        GapiDriveV2Model.ParentList.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.ParentList.t ->
        GapiJson.json_data_model -> GapiDriveV2Model.ParentList.t
      val to_data_model :
        GapiDriveV2Model.ParentList.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV2Model.ParentList.t
    end
end