sig
  module User :
    sig
      type t = {
        displayName : string;
        emailAddress : string;
        kind : string;
        me : bool;
        permissionId : string;
        photoLink : string;
      }
      val displayName : (GapiDriveV3Model.User.t, string) GapiLens.t
      val emailAddress : (GapiDriveV3Model.User.t, string) GapiLens.t
      val kind : (GapiDriveV3Model.User.t, string) GapiLens.t
      val me : (GapiDriveV3Model.User.t, bool) GapiLens.t
      val permissionId : (GapiDriveV3Model.User.t, string) GapiLens.t
      val photoLink : (GapiDriveV3Model.User.t, string) GapiLens.t
      val empty : GapiDriveV3Model.User.t
      val render : GapiDriveV3Model.User.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV3Model.User.t ->
        GapiJson.json_data_model -> GapiDriveV3Model.User.t
      val to_data_model : GapiDriveV3Model.User.t -> GapiJson.json_data_model
      val of_data_model : GapiJson.json_data_model -> GapiDriveV3Model.User.t
    end
  module About :
    sig
      module StorageQuota :
        sig
          type t = {
            limit : int64;
            usage : int64;
            usageInDrive : int64;
            usageInDriveTrash : int64;
          }
          val limit :
            (GapiDriveV3Model.About.StorageQuota.t, int64) GapiLens.t
          val usage :
            (GapiDriveV3Model.About.StorageQuota.t, int64) GapiLens.t
          val usageInDrive :
            (GapiDriveV3Model.About.StorageQuota.t, int64) GapiLens.t
          val usageInDriveTrash :
            (GapiDriveV3Model.About.StorageQuota.t, int64) GapiLens.t
          val empty : GapiDriveV3Model.About.StorageQuota.t
          val render :
            GapiDriveV3Model.About.StorageQuota.t ->
            GapiJson.json_data_model list
          val parse :
            GapiDriveV3Model.About.StorageQuota.t ->
            GapiJson.json_data_model -> GapiDriveV3Model.About.StorageQuota.t
        end
      type t = {
        appInstalled : bool;
        exportFormats : (string * string list) list;
        folderColorPalette : string list;
        importFormats : (string * string list) list;
        kind : string;
        maxImportSizes : (string * int64) list;
        maxUploadSize : int64;
        storageQuota : GapiDriveV3Model.About.StorageQuota.t;
        user : GapiDriveV3Model.User.t;
      }
      val appInstalled : (GapiDriveV3Model.About.t, bool) GapiLens.t
      val exportFormats :
        (GapiDriveV3Model.About.t, (string * string list) list) GapiLens.t
      val folderColorPalette :
        (GapiDriveV3Model.About.t, string list) GapiLens.t
      val importFormats :
        (GapiDriveV3Model.About.t, (string * string list) list) GapiLens.t
      val kind : (GapiDriveV3Model.About.t, string) GapiLens.t
      val maxImportSizes :
        (GapiDriveV3Model.About.t, (string * int64) list) GapiLens.t
      val maxUploadSize : (GapiDriveV3Model.About.t, int64) GapiLens.t
      val storageQuota :
        (GapiDriveV3Model.About.t, GapiDriveV3Model.About.StorageQuota.t)
        GapiLens.t
      val user :
        (GapiDriveV3Model.About.t, GapiDriveV3Model.User.t) GapiLens.t
      val empty : GapiDriveV3Model.About.t
      val render : GapiDriveV3Model.About.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV3Model.About.t ->
        GapiJson.json_data_model -> GapiDriveV3Model.About.t
      val to_data_model :
        GapiDriveV3Model.About.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV3Model.About.t
    end
  module Revision :
    sig
      type t = {
        id : string;
        keepForever : bool;
        kind : string;
        lastModifyingUser : GapiDriveV3Model.User.t;
        md5Checksum : string;
        mimeType : string;
        modifiedTime : GapiDate.t;
        originalFilename : string;
        publishAuto : bool;
        published : bool;
        publishedOutsideDomain : bool;
        size : int64;
      }
      val id : (GapiDriveV3Model.Revision.t, string) GapiLens.t
      val keepForever : (GapiDriveV3Model.Revision.t, bool) GapiLens.t
      val kind : (GapiDriveV3Model.Revision.t, string) GapiLens.t
      val lastModifyingUser :
        (GapiDriveV3Model.Revision.t, GapiDriveV3Model.User.t) GapiLens.t
      val md5Checksum : (GapiDriveV3Model.Revision.t, string) GapiLens.t
      val mimeType : (GapiDriveV3Model.Revision.t, string) GapiLens.t
      val modifiedTime : (GapiDriveV3Model.Revision.t, GapiDate.t) GapiLens.t
      val originalFilename : (GapiDriveV3Model.Revision.t, string) GapiLens.t
      val publishAuto : (GapiDriveV3Model.Revision.t, bool) GapiLens.t
      val published : (GapiDriveV3Model.Revision.t, bool) GapiLens.t
      val publishedOutsideDomain :
        (GapiDriveV3Model.Revision.t, bool) GapiLens.t
      val size : (GapiDriveV3Model.Revision.t, int64) GapiLens.t
      val empty : GapiDriveV3Model.Revision.t
      val render :
        GapiDriveV3Model.Revision.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV3Model.Revision.t ->
        GapiJson.json_data_model -> GapiDriveV3Model.Revision.t
      val to_data_model :
        GapiDriveV3Model.Revision.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV3Model.Revision.t
    end
  module Reply :
    sig
      type t = {
        action : string;
        author : GapiDriveV3Model.User.t;
        content : string;
        createdTime : GapiDate.t;
        deleted : bool;
        htmlContent : string;
        id : string;
        kind : string;
        modifiedTime : GapiDate.t;
      }
      val action : (GapiDriveV3Model.Reply.t, string) GapiLens.t
      val author :
        (GapiDriveV3Model.Reply.t, GapiDriveV3Model.User.t) GapiLens.t
      val content : (GapiDriveV3Model.Reply.t, string) GapiLens.t
      val createdTime : (GapiDriveV3Model.Reply.t, GapiDate.t) GapiLens.t
      val deleted : (GapiDriveV3Model.Reply.t, bool) GapiLens.t
      val htmlContent : (GapiDriveV3Model.Reply.t, string) GapiLens.t
      val id : (GapiDriveV3Model.Reply.t, string) GapiLens.t
      val kind : (GapiDriveV3Model.Reply.t, string) GapiLens.t
      val modifiedTime : (GapiDriveV3Model.Reply.t, GapiDate.t) GapiLens.t
      val empty : GapiDriveV3Model.Reply.t
      val render : GapiDriveV3Model.Reply.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV3Model.Reply.t ->
        GapiJson.json_data_model -> GapiDriveV3Model.Reply.t
      val to_data_model :
        GapiDriveV3Model.Reply.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV3Model.Reply.t
    end
  module Comment :
    sig
      module QuotedFileContent :
        sig
          type t = { mimeType : string; value : string; }
          val mimeType :
            (GapiDriveV3Model.Comment.QuotedFileContent.t, string) GapiLens.t
          val value :
            (GapiDriveV3Model.Comment.QuotedFileContent.t, string) GapiLens.t
          val empty : GapiDriveV3Model.Comment.QuotedFileContent.t
          val render :
            GapiDriveV3Model.Comment.QuotedFileContent.t ->
            GapiJson.json_data_model list
          val parse :
            GapiDriveV3Model.Comment.QuotedFileContent.t ->
            GapiJson.json_data_model ->
            GapiDriveV3Model.Comment.QuotedFileContent.t
        end
      type t = {
        anchor : string;
        author : GapiDriveV3Model.User.t;
        content : string;
        createdTime : GapiDate.t;
        deleted : bool;
        htmlContent : string;
        id : string;
        kind : string;
        modifiedTime : GapiDate.t;
        quotedFileContent : GapiDriveV3Model.Comment.QuotedFileContent.t;
        replies : GapiDriveV3Model.Reply.t list;
        resolved : bool;
      }
      val anchor : (GapiDriveV3Model.Comment.t, string) GapiLens.t
      val author :
        (GapiDriveV3Model.Comment.t, GapiDriveV3Model.User.t) GapiLens.t
      val content : (GapiDriveV3Model.Comment.t, string) GapiLens.t
      val createdTime : (GapiDriveV3Model.Comment.t, GapiDate.t) GapiLens.t
      val deleted : (GapiDriveV3Model.Comment.t, bool) GapiLens.t
      val htmlContent : (GapiDriveV3Model.Comment.t, string) GapiLens.t
      val id : (GapiDriveV3Model.Comment.t, string) GapiLens.t
      val kind : (GapiDriveV3Model.Comment.t, string) GapiLens.t
      val modifiedTime : (GapiDriveV3Model.Comment.t, GapiDate.t) GapiLens.t
      val quotedFileContent :
        (GapiDriveV3Model.Comment.t,
         GapiDriveV3Model.Comment.QuotedFileContent.t)
        GapiLens.t
      val replies :
        (GapiDriveV3Model.Comment.t, GapiDriveV3Model.Reply.t list)
        GapiLens.t
      val resolved : (GapiDriveV3Model.Comment.t, bool) GapiLens.t
      val empty : GapiDriveV3Model.Comment.t
      val render :
        GapiDriveV3Model.Comment.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV3Model.Comment.t ->
        GapiJson.json_data_model -> GapiDriveV3Model.Comment.t
      val to_data_model :
        GapiDriveV3Model.Comment.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV3Model.Comment.t
    end
  module CommentList :
    sig
      type t = {
        comments : GapiDriveV3Model.Comment.t list;
        kind : string;
        nextPageToken : string;
      }
      val comments :
        (GapiDriveV3Model.CommentList.t, GapiDriveV3Model.Comment.t list)
        GapiLens.t
      val kind : (GapiDriveV3Model.CommentList.t, string) GapiLens.t
      val nextPageToken : (GapiDriveV3Model.CommentList.t, string) GapiLens.t
      val empty : GapiDriveV3Model.CommentList.t
      val render :
        GapiDriveV3Model.CommentList.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV3Model.CommentList.t ->
        GapiJson.json_data_model -> GapiDriveV3Model.CommentList.t
      val to_data_model :
        GapiDriveV3Model.CommentList.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV3Model.CommentList.t
    end
  module GeneratedIds :
    sig
      type t = { ids : string list; kind : string; space : string; }
      val ids : (GapiDriveV3Model.GeneratedIds.t, string list) GapiLens.t
      val kind : (GapiDriveV3Model.GeneratedIds.t, string) GapiLens.t
      val space : (GapiDriveV3Model.GeneratedIds.t, string) GapiLens.t
      val empty : GapiDriveV3Model.GeneratedIds.t
      val render :
        GapiDriveV3Model.GeneratedIds.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV3Model.GeneratedIds.t ->
        GapiJson.json_data_model -> GapiDriveV3Model.GeneratedIds.t
      val to_data_model :
        GapiDriveV3Model.GeneratedIds.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV3Model.GeneratedIds.t
    end
  module Permission :
    sig
      type t = {
        allowFileDiscovery : bool;
        displayName : string;
        domain : string;
        emailAddress : string;
        expirationTime : GapiDate.t;
        id : string;
        kind : string;
        photoLink : string;
        role : string;
        _type : string;
      }
      val allowFileDiscovery :
        (GapiDriveV3Model.Permission.t, bool) GapiLens.t
      val displayName : (GapiDriveV3Model.Permission.t, string) GapiLens.t
      val domain : (GapiDriveV3Model.Permission.t, string) GapiLens.t
      val emailAddress : (GapiDriveV3Model.Permission.t, string) GapiLens.t
      val expirationTime :
        (GapiDriveV3Model.Permission.t, GapiDate.t) GapiLens.t
      val id : (GapiDriveV3Model.Permission.t, string) GapiLens.t
      val kind : (GapiDriveV3Model.Permission.t, string) GapiLens.t
      val photoLink : (GapiDriveV3Model.Permission.t, string) GapiLens.t
      val role : (GapiDriveV3Model.Permission.t, string) GapiLens.t
      val _type : (GapiDriveV3Model.Permission.t, string) GapiLens.t
      val empty : GapiDriveV3Model.Permission.t
      val render :
        GapiDriveV3Model.Permission.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV3Model.Permission.t ->
        GapiJson.json_data_model -> GapiDriveV3Model.Permission.t
      val to_data_model :
        GapiDriveV3Model.Permission.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV3Model.Permission.t
    end
  module File :
    sig
      module VideoMediaMetadata :
        sig
          type t = { durationMillis : int64; height : int; width : int; }
          val durationMillis :
            (GapiDriveV3Model.File.VideoMediaMetadata.t, int64) GapiLens.t
          val height :
            (GapiDriveV3Model.File.VideoMediaMetadata.t, int) GapiLens.t
          val width :
            (GapiDriveV3Model.File.VideoMediaMetadata.t, int) GapiLens.t
          val empty : GapiDriveV3Model.File.VideoMediaMetadata.t
          val render :
            GapiDriveV3Model.File.VideoMediaMetadata.t ->
            GapiJson.json_data_model list
          val parse :
            GapiDriveV3Model.File.VideoMediaMetadata.t ->
            GapiJson.json_data_model ->
            GapiDriveV3Model.File.VideoMediaMetadata.t
        end
      module ImageMediaMetadata :
        sig
          module Location :
            sig
              type t = {
                altitude : float;
                latitude : float;
                longitude : float;
              }
              val altitude :
                (GapiDriveV3Model.File.ImageMediaMetadata.Location.t, float)
                GapiLens.t
              val latitude :
                (GapiDriveV3Model.File.ImageMediaMetadata.Location.t, float)
                GapiLens.t
              val longitude :
                (GapiDriveV3Model.File.ImageMediaMetadata.Location.t, float)
                GapiLens.t
              val empty : GapiDriveV3Model.File.ImageMediaMetadata.Location.t
              val render :
                GapiDriveV3Model.File.ImageMediaMetadata.Location.t ->
                GapiJson.json_data_model list
              val parse :
                GapiDriveV3Model.File.ImageMediaMetadata.Location.t ->
                GapiJson.json_data_model ->
                GapiDriveV3Model.File.ImageMediaMetadata.Location.t
            end
          type t = {
            aperture : float;
            cameraMake : string;
            cameraModel : string;
            colorSpace : string;
            exposureBias : float;
            exposureMode : string;
            exposureTime : float;
            flashUsed : bool;
            focalLength : float;
            height : int;
            isoSpeed : int;
            lens : string;
            location : GapiDriveV3Model.File.ImageMediaMetadata.Location.t;
            maxApertureValue : float;
            meteringMode : string;
            rotation : int;
            sensor : string;
            subjectDistance : int;
            time : string;
            whiteBalance : string;
            width : int;
          }
          val aperture :
            (GapiDriveV3Model.File.ImageMediaMetadata.t, float) GapiLens.t
          val cameraMake :
            (GapiDriveV3Model.File.ImageMediaMetadata.t, string) GapiLens.t
          val cameraModel :
            (GapiDriveV3Model.File.ImageMediaMetadata.t, string) GapiLens.t
          val colorSpace :
            (GapiDriveV3Model.File.ImageMediaMetadata.t, string) GapiLens.t
          val exposureBias :
            (GapiDriveV3Model.File.ImageMediaMetadata.t, float) GapiLens.t
          val exposureMode :
            (GapiDriveV3Model.File.ImageMediaMetadata.t, string) GapiLens.t
          val exposureTime :
            (GapiDriveV3Model.File.ImageMediaMetadata.t, float) GapiLens.t
          val flashUsed :
            (GapiDriveV3Model.File.ImageMediaMetadata.t, bool) GapiLens.t
          val focalLength :
            (GapiDriveV3Model.File.ImageMediaMetadata.t, float) GapiLens.t
          val height :
            (GapiDriveV3Model.File.ImageMediaMetadata.t, int) GapiLens.t
          val isoSpeed :
            (GapiDriveV3Model.File.ImageMediaMetadata.t, int) GapiLens.t
          val lens :
            (GapiDriveV3Model.File.ImageMediaMetadata.t, string) GapiLens.t
          val location :
            (GapiDriveV3Model.File.ImageMediaMetadata.t,
             GapiDriveV3Model.File.ImageMediaMetadata.Location.t)
            GapiLens.t
          val maxApertureValue :
            (GapiDriveV3Model.File.ImageMediaMetadata.t, float) GapiLens.t
          val meteringMode :
            (GapiDriveV3Model.File.ImageMediaMetadata.t, string) GapiLens.t
          val rotation :
            (GapiDriveV3Model.File.ImageMediaMetadata.t, int) GapiLens.t
          val sensor :
            (GapiDriveV3Model.File.ImageMediaMetadata.t, string) GapiLens.t
          val subjectDistance :
            (GapiDriveV3Model.File.ImageMediaMetadata.t, int) GapiLens.t
          val time :
            (GapiDriveV3Model.File.ImageMediaMetadata.t, string) GapiLens.t
          val whiteBalance :
            (GapiDriveV3Model.File.ImageMediaMetadata.t, string) GapiLens.t
          val width :
            (GapiDriveV3Model.File.ImageMediaMetadata.t, int) GapiLens.t
          val empty : GapiDriveV3Model.File.ImageMediaMetadata.t
          val render :
            GapiDriveV3Model.File.ImageMediaMetadata.t ->
            GapiJson.json_data_model list
          val parse :
            GapiDriveV3Model.File.ImageMediaMetadata.t ->
            GapiJson.json_data_model ->
            GapiDriveV3Model.File.ImageMediaMetadata.t
        end
      module ContentHints :
        sig
          module Thumbnail :
            sig
              type t = { image : string; mimeType : string; }
              val image :
                (GapiDriveV3Model.File.ContentHints.Thumbnail.t, string)
                GapiLens.t
              val mimeType :
                (GapiDriveV3Model.File.ContentHints.Thumbnail.t, string)
                GapiLens.t
              val empty : GapiDriveV3Model.File.ContentHints.Thumbnail.t
              val render :
                GapiDriveV3Model.File.ContentHints.Thumbnail.t ->
                GapiJson.json_data_model list
              val parse :
                GapiDriveV3Model.File.ContentHints.Thumbnail.t ->
                GapiJson.json_data_model ->
                GapiDriveV3Model.File.ContentHints.Thumbnail.t
            end
          type t = {
            indexableText : string;
            thumbnail : GapiDriveV3Model.File.ContentHints.Thumbnail.t;
          }
          val indexableText :
            (GapiDriveV3Model.File.ContentHints.t, string) GapiLens.t
          val thumbnail :
            (GapiDriveV3Model.File.ContentHints.t,
             GapiDriveV3Model.File.ContentHints.Thumbnail.t)
            GapiLens.t
          val empty : GapiDriveV3Model.File.ContentHints.t
          val render :
            GapiDriveV3Model.File.ContentHints.t ->
            GapiJson.json_data_model list
          val parse :
            GapiDriveV3Model.File.ContentHints.t ->
            GapiJson.json_data_model -> GapiDriveV3Model.File.ContentHints.t
        end
      module Capabilities :
        sig
          type t = {
            canComment : bool;
            canCopy : bool;
            canEdit : bool;
            canReadRevisions : bool;
            canShare : bool;
          }
          val canComment :
            (GapiDriveV3Model.File.Capabilities.t, bool) GapiLens.t
          val canCopy :
            (GapiDriveV3Model.File.Capabilities.t, bool) GapiLens.t
          val canEdit :
            (GapiDriveV3Model.File.Capabilities.t, bool) GapiLens.t
          val canReadRevisions :
            (GapiDriveV3Model.File.Capabilities.t, bool) GapiLens.t
          val canShare :
            (GapiDriveV3Model.File.Capabilities.t, bool) GapiLens.t
          val empty : GapiDriveV3Model.File.Capabilities.t
          val render :
            GapiDriveV3Model.File.Capabilities.t ->
            GapiJson.json_data_model list
          val parse :
            GapiDriveV3Model.File.Capabilities.t ->
            GapiJson.json_data_model -> GapiDriveV3Model.File.Capabilities.t
        end
      type t = {
        appProperties : (string * string) list;
        capabilities : GapiDriveV3Model.File.Capabilities.t;
        contentHints : GapiDriveV3Model.File.ContentHints.t;
        createdTime : GapiDate.t;
        description : string;
        explicitlyTrashed : bool;
        fileExtension : string;
        folderColorRgb : string;
        fullFileExtension : string;
        headRevisionId : string;
        iconLink : string;
        id : string;
        imageMediaMetadata : GapiDriveV3Model.File.ImageMediaMetadata.t;
        isAppAuthorized : bool;
        kind : string;
        lastModifyingUser : GapiDriveV3Model.User.t;
        md5Checksum : string;
        mimeType : string;
        modifiedByMe : bool;
        modifiedByMeTime : GapiDate.t;
        modifiedTime : GapiDate.t;
        name : string;
        originalFilename : string;
        ownedByMe : bool;
        owners : GapiDriveV3Model.User.t list;
        parents : string list;
        permissions : GapiDriveV3Model.Permission.t list;
        properties : (string * string) list;
        quotaBytesUsed : int64;
        shared : bool;
        sharedWithMeTime : GapiDate.t;
        sharingUser : GapiDriveV3Model.User.t;
        size : int64;
        spaces : string list;
        starred : bool;
        thumbnailLink : string;
        trashed : bool;
        version : int64;
        videoMediaMetadata : GapiDriveV3Model.File.VideoMediaMetadata.t;
        viewedByMe : bool;
        viewedByMeTime : GapiDate.t;
        viewersCanCopyContent : bool;
        webContentLink : string;
        webViewLink : string;
        writersCanShare : bool;
      }
      val appProperties :
        (GapiDriveV3Model.File.t, (string * string) list) GapiLens.t
      val capabilities :
        (GapiDriveV3Model.File.t, GapiDriveV3Model.File.Capabilities.t)
        GapiLens.t
      val contentHints :
        (GapiDriveV3Model.File.t, GapiDriveV3Model.File.ContentHints.t)
        GapiLens.t
      val createdTime : (GapiDriveV3Model.File.t, GapiDate.t) GapiLens.t
      val description : (GapiDriveV3Model.File.t, string) GapiLens.t
      val explicitlyTrashed : (GapiDriveV3Model.File.t, bool) GapiLens.t
      val fileExtension : (GapiDriveV3Model.File.t, string) GapiLens.t
      val folderColorRgb : (GapiDriveV3Model.File.t, string) GapiLens.t
      val fullFileExtension : (GapiDriveV3Model.File.t, string) GapiLens.t
      val headRevisionId : (GapiDriveV3Model.File.t, string) GapiLens.t
      val iconLink : (GapiDriveV3Model.File.t, string) GapiLens.t
      val id : (GapiDriveV3Model.File.t, string) GapiLens.t
      val imageMediaMetadata :
        (GapiDriveV3Model.File.t, GapiDriveV3Model.File.ImageMediaMetadata.t)
        GapiLens.t
      val isAppAuthorized : (GapiDriveV3Model.File.t, bool) GapiLens.t
      val kind : (GapiDriveV3Model.File.t, string) GapiLens.t
      val lastModifyingUser :
        (GapiDriveV3Model.File.t, GapiDriveV3Model.User.t) GapiLens.t
      val md5Checksum : (GapiDriveV3Model.File.t, string) GapiLens.t
      val mimeType : (GapiDriveV3Model.File.t, string) GapiLens.t
      val modifiedByMe : (GapiDriveV3Model.File.t, bool) GapiLens.t
      val modifiedByMeTime : (GapiDriveV3Model.File.t, GapiDate.t) GapiLens.t
      val modifiedTime : (GapiDriveV3Model.File.t, GapiDate.t) GapiLens.t
      val name : (GapiDriveV3Model.File.t, string) GapiLens.t
      val originalFilename : (GapiDriveV3Model.File.t, string) GapiLens.t
      val ownedByMe : (GapiDriveV3Model.File.t, bool) GapiLens.t
      val owners :
        (GapiDriveV3Model.File.t, GapiDriveV3Model.User.t list) GapiLens.t
      val parents : (GapiDriveV3Model.File.t, string list) GapiLens.t
      val permissions :
        (GapiDriveV3Model.File.t, GapiDriveV3Model.Permission.t list)
        GapiLens.t
      val properties :
        (GapiDriveV3Model.File.t, (string * string) list) GapiLens.t
      val quotaBytesUsed : (GapiDriveV3Model.File.t, int64) GapiLens.t
      val shared : (GapiDriveV3Model.File.t, bool) GapiLens.t
      val sharedWithMeTime : (GapiDriveV3Model.File.t, GapiDate.t) GapiLens.t
      val sharingUser :
        (GapiDriveV3Model.File.t, GapiDriveV3Model.User.t) GapiLens.t
      val size : (GapiDriveV3Model.File.t, int64) GapiLens.t
      val spaces : (GapiDriveV3Model.File.t, string list) GapiLens.t
      val starred : (GapiDriveV3Model.File.t, bool) GapiLens.t
      val thumbnailLink : (GapiDriveV3Model.File.t, string) GapiLens.t
      val trashed : (GapiDriveV3Model.File.t, bool) GapiLens.t
      val version : (GapiDriveV3Model.File.t, int64) GapiLens.t
      val videoMediaMetadata :
        (GapiDriveV3Model.File.t, GapiDriveV3Model.File.VideoMediaMetadata.t)
        GapiLens.t
      val viewedByMe : (GapiDriveV3Model.File.t, bool) GapiLens.t
      val viewedByMeTime : (GapiDriveV3Model.File.t, GapiDate.t) GapiLens.t
      val viewersCanCopyContent : (GapiDriveV3Model.File.t, bool) GapiLens.t
      val webContentLink : (GapiDriveV3Model.File.t, string) GapiLens.t
      val webViewLink : (GapiDriveV3Model.File.t, string) GapiLens.t
      val writersCanShare : (GapiDriveV3Model.File.t, bool) GapiLens.t
      val empty : GapiDriveV3Model.File.t
      val render : GapiDriveV3Model.File.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV3Model.File.t ->
        GapiJson.json_data_model -> GapiDriveV3Model.File.t
      val to_data_model : GapiDriveV3Model.File.t -> GapiJson.json_data_model
      val of_data_model : GapiJson.json_data_model -> GapiDriveV3Model.File.t
    end
  module Change :
    sig
      type t = {
        file : GapiDriveV3Model.File.t;
        fileId : string;
        kind : string;
        removed : bool;
        time : GapiDate.t;
      }
      val file :
        (GapiDriveV3Model.Change.t, GapiDriveV3Model.File.t) GapiLens.t
      val fileId : (GapiDriveV3Model.Change.t, string) GapiLens.t
      val kind : (GapiDriveV3Model.Change.t, string) GapiLens.t
      val removed : (GapiDriveV3Model.Change.t, bool) GapiLens.t
      val time : (GapiDriveV3Model.Change.t, GapiDate.t) GapiLens.t
      val empty : GapiDriveV3Model.Change.t
      val render : GapiDriveV3Model.Change.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV3Model.Change.t ->
        GapiJson.json_data_model -> GapiDriveV3Model.Change.t
      val to_data_model :
        GapiDriveV3Model.Change.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV3Model.Change.t
    end
  module ReplyList :
    sig
      type t = {
        kind : string;
        nextPageToken : string;
        replies : GapiDriveV3Model.Reply.t list;
      }
      val kind : (GapiDriveV3Model.ReplyList.t, string) GapiLens.t
      val nextPageToken : (GapiDriveV3Model.ReplyList.t, string) GapiLens.t
      val replies :
        (GapiDriveV3Model.ReplyList.t, GapiDriveV3Model.Reply.t list)
        GapiLens.t
      val empty : GapiDriveV3Model.ReplyList.t
      val render :
        GapiDriveV3Model.ReplyList.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV3Model.ReplyList.t ->
        GapiJson.json_data_model -> GapiDriveV3Model.ReplyList.t
      val to_data_model :
        GapiDriveV3Model.ReplyList.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV3Model.ReplyList.t
    end
  module PermissionList :
    sig
      type t = {
        kind : string;
        permissions : GapiDriveV3Model.Permission.t list;
      }
      val kind : (GapiDriveV3Model.PermissionList.t, string) GapiLens.t
      val permissions :
        (GapiDriveV3Model.PermissionList.t,
         GapiDriveV3Model.Permission.t list)
        GapiLens.t
      val empty : GapiDriveV3Model.PermissionList.t
      val render :
        GapiDriveV3Model.PermissionList.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV3Model.PermissionList.t ->
        GapiJson.json_data_model -> GapiDriveV3Model.PermissionList.t
      val to_data_model :
        GapiDriveV3Model.PermissionList.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV3Model.PermissionList.t
    end
  module ChangeList :
    sig
      type t = {
        changes : GapiDriveV3Model.Change.t list;
        kind : string;
        newStartPageToken : string;
        nextPageToken : string;
      }
      val changes :
        (GapiDriveV3Model.ChangeList.t, GapiDriveV3Model.Change.t list)
        GapiLens.t
      val kind : (GapiDriveV3Model.ChangeList.t, string) GapiLens.t
      val newStartPageToken :
        (GapiDriveV3Model.ChangeList.t, string) GapiLens.t
      val nextPageToken : (GapiDriveV3Model.ChangeList.t, string) GapiLens.t
      val empty : GapiDriveV3Model.ChangeList.t
      val render :
        GapiDriveV3Model.ChangeList.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV3Model.ChangeList.t ->
        GapiJson.json_data_model -> GapiDriveV3Model.ChangeList.t
      val to_data_model :
        GapiDriveV3Model.ChangeList.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV3Model.ChangeList.t
    end
  module StartPageToken :
    sig
      type t = { kind : string; startPageToken : string; }
      val kind : (GapiDriveV3Model.StartPageToken.t, string) GapiLens.t
      val startPageToken :
        (GapiDriveV3Model.StartPageToken.t, string) GapiLens.t
      val empty : GapiDriveV3Model.StartPageToken.t
      val render :
        GapiDriveV3Model.StartPageToken.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV3Model.StartPageToken.t ->
        GapiJson.json_data_model -> GapiDriveV3Model.StartPageToken.t
      val to_data_model :
        GapiDriveV3Model.StartPageToken.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV3Model.StartPageToken.t
    end
  module RevisionList :
    sig
      type t = {
        kind : string;
        nextPageToken : string;
        revisions : GapiDriveV3Model.Revision.t list;
      }
      val kind : (GapiDriveV3Model.RevisionList.t, string) GapiLens.t
      val nextPageToken :
        (GapiDriveV3Model.RevisionList.t, string) GapiLens.t
      val revisions :
        (GapiDriveV3Model.RevisionList.t, GapiDriveV3Model.Revision.t list)
        GapiLens.t
      val empty : GapiDriveV3Model.RevisionList.t
      val render :
        GapiDriveV3Model.RevisionList.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV3Model.RevisionList.t ->
        GapiJson.json_data_model -> GapiDriveV3Model.RevisionList.t
      val to_data_model :
        GapiDriveV3Model.RevisionList.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV3Model.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 : (GapiDriveV3Model.Channel.t, string) GapiLens.t
      val expiration : (GapiDriveV3Model.Channel.t, int64) GapiLens.t
      val id : (GapiDriveV3Model.Channel.t, string) GapiLens.t
      val kind : (GapiDriveV3Model.Channel.t, string) GapiLens.t
      val params :
        (GapiDriveV3Model.Channel.t, (string * string) list) GapiLens.t
      val payload : (GapiDriveV3Model.Channel.t, bool) GapiLens.t
      val resourceId : (GapiDriveV3Model.Channel.t, string) GapiLens.t
      val resourceUri : (GapiDriveV3Model.Channel.t, string) GapiLens.t
      val token : (GapiDriveV3Model.Channel.t, string) GapiLens.t
      val _type : (GapiDriveV3Model.Channel.t, string) GapiLens.t
      val empty : GapiDriveV3Model.Channel.t
      val render :
        GapiDriveV3Model.Channel.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV3Model.Channel.t ->
        GapiJson.json_data_model -> GapiDriveV3Model.Channel.t
      val to_data_model :
        GapiDriveV3Model.Channel.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV3Model.Channel.t
    end
  module FileList :
    sig
      type t = {
        files : GapiDriveV3Model.File.t list;
        kind : string;
        nextPageToken : string;
      }
      val files :
        (GapiDriveV3Model.FileList.t, GapiDriveV3Model.File.t list)
        GapiLens.t
      val kind : (GapiDriveV3Model.FileList.t, string) GapiLens.t
      val nextPageToken : (GapiDriveV3Model.FileList.t, string) GapiLens.t
      val empty : GapiDriveV3Model.FileList.t
      val render :
        GapiDriveV3Model.FileList.t -> GapiJson.json_data_model list
      val parse :
        GapiDriveV3Model.FileList.t ->
        GapiJson.json_data_model -> GapiDriveV3Model.FileList.t
      val to_data_model :
        GapiDriveV3Model.FileList.t -> GapiJson.json_data_model
      val of_data_model :
        GapiJson.json_data_model -> GapiDriveV3Model.FileList.t
    end
end