sig
  val ns_docs : string
  module AclFeedLink :
    sig
      type feed_t = GdataACL.Feed.t
      type t = {
        countHint : int;
        href : string;
        readOnly : bool;
        rel : string;
        feed : feed_t;
      }
      val countHint : (t, int) GapiLens.t
      val href : (t, string) GapiLens.t
      val readOnly : (t, bool) GapiLens.t
      val rel : (t, string) GapiLens.t
      val feed : (t, feed_t) GapiLens.t
      val empty : t
      val to_xml_data_model : t -> GdataCore.xml_data_model list
      val of_xml_data_model : t -> GdataCore.xml_data_model -> t
    end
  module Revision :
    sig
      module Entry :
        sig
          type t = {
            common : GdataAtom.BasicEntry.t;
            publish : bool;
            publishAuto : bool;
            publishOutsideDomain : bool;
            extensions : GdataAtom.GenericExtensions.t;
          }
          val common :
            (GdataDocumentsV3Model.Revision.Entry.t, GdataAtom.BasicEntry.t)
            GapiLens.t
          val publish :
            (GdataDocumentsV3Model.Revision.Entry.t, bool) GapiLens.t
          val publishAuto :
            (GdataDocumentsV3Model.Revision.Entry.t, bool) GapiLens.t
          val publishOutsideDomain :
            (GdataDocumentsV3Model.Revision.Entry.t, bool) GapiLens.t
          val extensions :
            (GdataDocumentsV3Model.Revision.Entry.t,
             GdataAtom.GenericExtensions.t)
            GapiLens.t
          val id :
            (GdataDocumentsV3Model.Revision.Entry.t, string) GapiLens.t
          val content :
            (GdataDocumentsV3Model.Revision.Entry.t, GdataAtom.Content.t)
            GapiLens.t
          val links :
            (GdataDocumentsV3Model.Revision.Entry.t, GdataAtom.Link.t list)
            GapiLens.t
          val empty : t
          val to_xml_data_model : t -> GdataCore.xml_data_model list
          val of_xml_data_model : t -> GdataCore.xml_data_model -> t
        end
      module Feed :
        sig
          type entry_t = Entry.t
          type link_t = GdataAtom.Link.t
          type extensions_t = GdataAtom.GenericExtensions.t
          type t = {
            etag : string;
            kind : string;
            authors : GdataAtom.Author.t list;
            categories : GdataAtom.Category.t list;
            contributors : GdataAtom.Contributor.t list;
            generator : GdataAtom.Generator.t;
            icon : GdataAtom.atom_icon;
            id : GdataAtom.atom_id;
            updated : GdataAtom.atom_updated;
            entries : entry_t list;
            links : link_t list;
            logo : GdataAtom.atom_logo;
            rights : GdataAtom.Rights.t;
            subtitle : GdataAtom.Subtitle.t;
            title : GdataAtom.Title.t;
            totalResults : GdataAtom.opensearch_totalResults;
            itemsPerPage : GdataAtom.opensearch_itemsPerPage;
            startIndex : GdataAtom.opensearch_startIndex;
            extensions : extensions_t;
          }
          val etag : (t, string) GapiLens.t
          val kind : (t, string) GapiLens.t
          val authors : (t, GdataAtom.Author.t list) GapiLens.t
          val categories : (t, GdataAtom.Category.t list) GapiLens.t
          val contributors : (t, GdataAtom.Contributor.t list) GapiLens.t
          val generator : (t, GdataAtom.Generator.t) GapiLens.t
          val icon : (t, GdataAtom.atom_icon) GapiLens.t
          val id : (t, GdataAtom.atom_id) GapiLens.t
          val updated : (t, GdataAtom.atom_updated) GapiLens.t
          val entries : (t, entry_t list) GapiLens.t
          val links : (t, link_t list) GapiLens.t
          val logo : (t, GdataAtom.atom_logo) GapiLens.t
          val rights : (t, GdataAtom.Rights.t) GapiLens.t
          val subtitle : (t, GdataAtom.Subtitle.t) GapiLens.t
          val title : (t, GdataAtom.Title.t) GapiLens.t
          val totalResults :
            (t, GdataAtom.opensearch_totalResults) GapiLens.t
          val itemsPerPage :
            (t, GdataAtom.opensearch_itemsPerPage) GapiLens.t
          val startIndex : (t, GdataAtom.opensearch_startIndex) GapiLens.t
          val extensions : (t, extensions_t) GapiLens.t
          val empty : t
          val to_xml_data_model : t -> GdataCore.xml_data_model list
          val of_xml_data_model : t -> GdataCore.xml_data_model -> t
          val parse_feed : GdataCore.xml_data_model -> t
        end
      val parse_entry :
        GdataCore.xml_data_model -> GdataDocumentsV3Model.Revision.Entry.t
      val parse_feed :
        GdataCore.xml_data_model -> GdataDocumentsV3Model.Revision.Feed.t
      val entry_to_data_model :
        GdataDocumentsV3Model.Revision.Entry.t -> GdataCore.xml_data_model
      val feed_to_data_model :
        GdataDocumentsV3Model.Revision.Feed.t -> GdataCore.xml_data_model
    end
  module RevisionsFeedLink :
    sig
      type feed_t = Revision.Feed.t
      type t = {
        countHint : int;
        href : string;
        readOnly : bool;
        rel : string;
        feed : feed_t;
      }
      val countHint : (t, int) GapiLens.t
      val href : (t, string) GapiLens.t
      val readOnly : (t, bool) GapiLens.t
      val rel : (t, string) GapiLens.t
      val feed : (t, feed_t) GapiLens.t
      val empty : t
      val to_xml_data_model : t -> GdataCore.xml_data_model list
      val of_xml_data_model : t -> GdataCore.xml_data_model -> t
    end
  module Document :
    sig
      val kind_scheme : string
      val labels_scheme : string
      val document_category : GdataAtom.Category.t
      val drawing_category : GdataAtom.Category.t
      val folder_category : GdataAtom.Category.t
      val form_category : GdataAtom.Category.t
      val parent_folder_category : GdataAtom.Category.t
      val pdf_category : GdataAtom.Category.t
      val presentation_category : GdataAtom.Category.t
      val spreadsheet_category : GdataAtom.Category.t
      val hidden_category : GdataAtom.Category.t
      val mine_category : GdataAtom.Category.t
      val private_category : GdataAtom.Category.t
      val shared_category : GdataAtom.Category.t
      val starred_category : GdataAtom.Category.t
      val trashed_category : GdataAtom.Category.t
      val viewed_category : GdataAtom.Category.t
      module Entry :
        sig
          type t = {
            common : GdataAtom.BasicEntry.t;
            description : string;
            resourceId : string;
            modifiedByMeDate : GapiDate.t;
            sharedWithMeDate : GapiDate.t;
            lastModifiedBy : GdataExtensions.LastModifiedBy.t;
            lastViewed : GapiDate.t;
            aclFeedLink : GdataDocumentsV3Model.AclFeedLink.t;
            revisionsFeedLink : GdataDocumentsV3Model.RevisionsFeedLink.t;
            quotaBytesUsed : int;
            writersCanInvite : bool;
            md5Checksum : string;
            filename : string;
            suggestedFilename : string;
            deleted : bool;
            removed : bool;
            size : int64;
            changestamp : int;
            batch : GdataBatch.BatchExtensions.t;
            extensions : GdataAtom.GenericExtensions.t;
          }
          val common :
            (GdataDocumentsV3Model.Document.Entry.t, GdataAtom.BasicEntry.t)
            GapiLens.t
          val description :
            (GdataDocumentsV3Model.Document.Entry.t, string) GapiLens.t
          val resourceId :
            (GdataDocumentsV3Model.Document.Entry.t, string) GapiLens.t
          val modifiedByMeDate :
            (GdataDocumentsV3Model.Document.Entry.t, GapiDate.t) GapiLens.t
          val sharedWithMeDate :
            (GdataDocumentsV3Model.Document.Entry.t, GapiDate.t) GapiLens.t
          val lastModifiedBy :
            (GdataDocumentsV3Model.Document.Entry.t,
             GdataExtensions.LastModifiedBy.t)
            GapiLens.t
          val lastViewed :
            (GdataDocumentsV3Model.Document.Entry.t, GapiDate.t) GapiLens.t
          val aclFeedLink :
            (GdataDocumentsV3Model.Document.Entry.t,
             GdataDocumentsV3Model.AclFeedLink.t)
            GapiLens.t
          val revisionsFeedLink :
            (GdataDocumentsV3Model.Document.Entry.t,
             GdataDocumentsV3Model.RevisionsFeedLink.t)
            GapiLens.t
          val quotaBytesUsed :
            (GdataDocumentsV3Model.Document.Entry.t, int) GapiLens.t
          val writersCanInvite :
            (GdataDocumentsV3Model.Document.Entry.t, bool) GapiLens.t
          val md5Checksum :
            (GdataDocumentsV3Model.Document.Entry.t, string) GapiLens.t
          val filename :
            (GdataDocumentsV3Model.Document.Entry.t, string) GapiLens.t
          val suggestedFilename :
            (GdataDocumentsV3Model.Document.Entry.t, string) GapiLens.t
          val deleted :
            (GdataDocumentsV3Model.Document.Entry.t, bool) GapiLens.t
          val removed :
            (GdataDocumentsV3Model.Document.Entry.t, bool) GapiLens.t
          val size :
            (GdataDocumentsV3Model.Document.Entry.t, int64) GapiLens.t
          val changestamp :
            (GdataDocumentsV3Model.Document.Entry.t, int) GapiLens.t
          val batch :
            (GdataDocumentsV3Model.Document.Entry.t,
             GdataBatch.BatchExtensions.t)
            GapiLens.t
          val extensions :
            (GdataDocumentsV3Model.Document.Entry.t,
             GdataAtom.GenericExtensions.t)
            GapiLens.t
          val id :
            (GdataDocumentsV3Model.Document.Entry.t, string) GapiLens.t
          val etag :
            (GdataDocumentsV3Model.Document.Entry.t, string) GapiLens.t
          val title :
            (GdataDocumentsV3Model.Document.Entry.t, GdataAtom.Title.t)
            GapiLens.t
          val content :
            (GdataDocumentsV3Model.Document.Entry.t, GdataAtom.Content.t)
            GapiLens.t
          val links :
            (GdataDocumentsV3Model.Document.Entry.t, GdataAtom.Link.t list)
            GapiLens.t
          val categories :
            (GdataDocumentsV3Model.Document.Entry.t,
             GdataAtom.Category.t list)
            GapiLens.t
          val published :
            (GdataDocumentsV3Model.Document.Entry.t, GapiDate.t) GapiLens.t
          val updated :
            (GdataDocumentsV3Model.Document.Entry.t, GapiDate.t) GapiLens.t
          val edited :
            (GdataDocumentsV3Model.Document.Entry.t, GapiDate.t) GapiLens.t
          val empty : t
          val to_xml_data_model : t -> GdataCore.xml_data_model list
          val of_xml_data_model : t -> GdataCore.xml_data_model -> t
        end
      module DocumentFeedExtensions :
        sig
          type t = {
            quotaBytesTotal : int64;
            quotaBytesUsed : int64;
            quotaBytesUsedInTrash : int64;
            largestChangestamp : int;
            extensions : GdataAtom.GenericExtensions.t;
          }
          val quotaBytesTotal :
            (GdataDocumentsV3Model.Document.DocumentFeedExtensions.t, int64)
            GapiLens.t
          val quotaBytesUsed :
            (GdataDocumentsV3Model.Document.DocumentFeedExtensions.t, int64)
            GapiLens.t
          val quotaBytesUsedInTrash :
            (GdataDocumentsV3Model.Document.DocumentFeedExtensions.t, int64)
            GapiLens.t
          val largestChangestamp :
            (GdataDocumentsV3Model.Document.DocumentFeedExtensions.t, int)
            GapiLens.t
          val extensions :
            (GdataDocumentsV3Model.Document.DocumentFeedExtensions.t,
             GdataAtom.GenericExtensions.t)
            GapiLens.t
          val empty : t
          val to_xml_data_model : t -> GdataCore.xml_data_model list
          val of_xml_data_model : t -> GdataCore.xml_data_model -> t
        end
      module Feed :
        sig
          type entry_t = Entry.t
          type link_t = GdataAtom.Link.t
          type extensions_t = DocumentFeedExtensions.t
          type t = {
            etag : string;
            kind : string;
            authors : GdataAtom.Author.t list;
            categories : GdataAtom.Category.t list;
            contributors : GdataAtom.Contributor.t list;
            generator : GdataAtom.Generator.t;
            icon : GdataAtom.atom_icon;
            id : GdataAtom.atom_id;
            updated : GdataAtom.atom_updated;
            entries : entry_t list;
            links : link_t list;
            logo : GdataAtom.atom_logo;
            rights : GdataAtom.Rights.t;
            subtitle : GdataAtom.Subtitle.t;
            title : GdataAtom.Title.t;
            totalResults : GdataAtom.opensearch_totalResults;
            itemsPerPage : GdataAtom.opensearch_itemsPerPage;
            startIndex : GdataAtom.opensearch_startIndex;
            extensions : extensions_t;
          }
          val etag : (t, string) GapiLens.t
          val kind : (t, string) GapiLens.t
          val authors : (t, GdataAtom.Author.t list) GapiLens.t
          val categories : (t, GdataAtom.Category.t list) GapiLens.t
          val contributors : (t, GdataAtom.Contributor.t list) GapiLens.t
          val generator : (t, GdataAtom.Generator.t) GapiLens.t
          val icon : (t, GdataAtom.atom_icon) GapiLens.t
          val id : (t, GdataAtom.atom_id) GapiLens.t
          val updated : (t, GdataAtom.atom_updated) GapiLens.t
          val entries : (t, entry_t list) GapiLens.t
          val links : (t, link_t list) GapiLens.t
          val logo : (t, GdataAtom.atom_logo) GapiLens.t
          val rights : (t, GdataAtom.Rights.t) GapiLens.t
          val subtitle : (t, GdataAtom.Subtitle.t) GapiLens.t
          val title : (t, GdataAtom.Title.t) GapiLens.t
          val totalResults :
            (t, GdataAtom.opensearch_totalResults) GapiLens.t
          val itemsPerPage :
            (t, GdataAtom.opensearch_itemsPerPage) GapiLens.t
          val startIndex : (t, GdataAtom.opensearch_startIndex) GapiLens.t
          val extensions : (t, extensions_t) GapiLens.t
          val empty : t
          val to_xml_data_model : t -> GdataCore.xml_data_model list
          val of_xml_data_model : t -> GdataCore.xml_data_model -> t
          val parse_feed : GdataCore.xml_data_model -> t
        end
      val largestChangestamp :
        (GdataDocumentsV3Model.Document.Feed.t, int) GapiLens.t
      val parse_entry :
        GdataCore.xml_data_model -> GdataDocumentsV3Model.Document.Entry.t
      val parse_feed :
        GdataCore.xml_data_model -> GdataDocumentsV3Model.Document.Feed.t
      val entry_to_data_model :
        GdataDocumentsV3Model.Document.Entry.t -> GdataCore.xml_data_model
      val feed_to_data_model :
        GdataDocumentsV3Model.Document.Feed.t -> GdataCore.xml_data_model
    end
  module type DocumentFormat =
    sig
      type t = { source : string; target : string; }
      val source :
        (GdataDocumentsV3Model.DocumentFormat.t, string) GapiLens.t
      val target :
        (GdataDocumentsV3Model.DocumentFormat.t, string) GapiLens.t
      val empty : t
      val to_xml_data_model : t -> GdataCore.xml_data_model list
      val of_xml_data_model : t -> GdataCore.xml_data_model -> t
    end
  module MakeDocumentFormat :
    functor (M : sig val element_name : string end-> DocumentFormat
  module ImportFormat : DocumentFormat
  module ExportFormat : DocumentFormat
  module Feature :
    sig
      type t = { featureName : string; featureRate : string; }
      val featureName : (GdataDocumentsV3Model.Feature.t, string) GapiLens.t
      val featureRate : (GdataDocumentsV3Model.Feature.t, string) GapiLens.t
      val empty : t
      val to_xml_data_model : t -> GdataCore.xml_data_model list
      val of_xml_data_model : t -> GdataCore.xml_data_model -> t
    end
  module MaxUploadSize :
    sig
      type t = { kind : string; value : int64; }
      val kind : (GdataDocumentsV3Model.MaxUploadSize.t, string) GapiLens.t
      val value : (GdataDocumentsV3Model.MaxUploadSize.t, int64) GapiLens.t
      val empty : t
      val to_xml_data_model : t -> GdataCore.xml_data_model list
      val of_xml_data_model : t -> GdataCore.xml_data_model -> t
    end
  module AdditionalRoleSet :
    sig
      type t = { primaryRole : string; additionalRoles : string list; }
      val primaryRole :
        (GdataDocumentsV3Model.AdditionalRoleSet.t, string) GapiLens.t
      val additionalRoles :
        (GdataDocumentsV3Model.AdditionalRoleSet.t, string list) GapiLens.t
      val empty : t
      val to_xml_data_model : t -> GdataCore.xml_data_model list
      val of_xml_data_model : t -> GdataCore.xml_data_model -> t
    end
  module AdditionalRoleInfo :
    sig
      type t = {
        kind : string;
        additionalRoleSets : GdataDocumentsV3Model.AdditionalRoleSet.t list;
      }
      val kind :
        (GdataDocumentsV3Model.AdditionalRoleInfo.t, string) GapiLens.t
      val additionalRoleSets :
        (GdataDocumentsV3Model.AdditionalRoleInfo.t,
         GdataDocumentsV3Model.AdditionalRoleSet.t list)
        GapiLens.t
      val empty : t
      val to_xml_data_model : t -> GdataCore.xml_data_model list
      val of_xml_data_model : t -> GdataCore.xml_data_model -> t
    end
  module Metadata :
    sig
      module Entry :
        sig
          type t = {
            common : GdataAtom.BasicEntry.t;
            largestChangestamp : int;
            remainingChangestamps : int;
            quotaBytesTotal : int64;
            quotaBytesUsed : int64;
            quotaBytesUsedInTrash : int64;
            domainSharingPolicy : string;
            importFormats : ImportFormat.t list;
            exportFormats : ExportFormat.t list;
            features : GdataDocumentsV3Model.Feature.t list;
            maxUploadSizes : GdataDocumentsV3Model.MaxUploadSize.t list;
            additionalRoleInfos :
              GdataDocumentsV3Model.AdditionalRoleInfo.t list;
            extensions : GdataAtom.GenericExtensions.t;
          }
          val common :
            (GdataDocumentsV3Model.Metadata.Entry.t, GdataAtom.BasicEntry.t)
            GapiLens.t
          val largestChangestamp :
            (GdataDocumentsV3Model.Metadata.Entry.t, int) GapiLens.t
          val remainingChangestamps :
            (GdataDocumentsV3Model.Metadata.Entry.t, int) GapiLens.t
          val quotaBytesTotal :
            (GdataDocumentsV3Model.Metadata.Entry.t, int64) GapiLens.t
          val quotaBytesUsed :
            (GdataDocumentsV3Model.Metadata.Entry.t, int64) GapiLens.t
          val quotaBytesUsedInTrash :
            (GdataDocumentsV3Model.Metadata.Entry.t, int64) GapiLens.t
          val domainSharingPolicy :
            (GdataDocumentsV3Model.Metadata.Entry.t, string) GapiLens.t
          val importFormats :
            (GdataDocumentsV3Model.Metadata.Entry.t, ImportFormat.t list)
            GapiLens.t
          val exportFormats :
            (GdataDocumentsV3Model.Metadata.Entry.t, ExportFormat.t list)
            GapiLens.t
          val features :
            (GdataDocumentsV3Model.Metadata.Entry.t,
             GdataDocumentsV3Model.Feature.t list)
            GapiLens.t
          val maxUploadSizes :
            (GdataDocumentsV3Model.Metadata.Entry.t,
             GdataDocumentsV3Model.MaxUploadSize.t list)
            GapiLens.t
          val additionalRoleInfos :
            (GdataDocumentsV3Model.Metadata.Entry.t,
             GdataDocumentsV3Model.AdditionalRoleInfo.t list)
            GapiLens.t
          val extensions :
            (GdataDocumentsV3Model.Metadata.Entry.t,
             GdataAtom.GenericExtensions.t)
            GapiLens.t
          val empty : t
          val to_xml_data_model : t -> GdataCore.xml_data_model list
          val of_xml_data_model : t -> GdataCore.xml_data_model -> t
        end
      val parse_entry :
        GdataCore.xml_data_model -> GdataDocumentsV3Model.Metadata.Entry.t
      val entry_to_data_model :
        GdataDocumentsV3Model.Metadata.Entry.t -> GdataCore.xml_data_model
    end
  module Archive :
    sig
      module Conversion : DocumentFormat
      module Entry :
        sig
          type t = {
            common : GdataAtom.BasicEntry.t;
            archiveNotify : string;
            archiveStatus : string;
            quotaBytesUsed : int64;
            archiveNotifyStatus : string;
            archiveComplete : GapiDate.t;
            archiveTotal : int;
            archiveTotalComplete : int;
            archiveTotalFailure : int;
            archiveResourceIds : string list;
            archiveConversions : Conversion.t list;
            extensions : GdataAtom.GenericExtensions.t;
          }
          val common :
            (GdataDocumentsV3Model.Archive.Entry.t, GdataAtom.BasicEntry.t)
            GapiLens.t
          val archiveNotify :
            (GdataDocumentsV3Model.Archive.Entry.t, string) GapiLens.t
          val archiveStatus :
            (GdataDocumentsV3Model.Archive.Entry.t, string) GapiLens.t
          val quotaBytesUsed :
            (GdataDocumentsV3Model.Archive.Entry.t, int64) GapiLens.t
          val archiveNotifyStatus :
            (GdataDocumentsV3Model.Archive.Entry.t, string) GapiLens.t
          val archiveComplete :
            (GdataDocumentsV3Model.Archive.Entry.t, GapiDate.t) GapiLens.t
          val archiveTotal :
            (GdataDocumentsV3Model.Archive.Entry.t, int) GapiLens.t
          val archiveTotalComplete :
            (GdataDocumentsV3Model.Archive.Entry.t, int) GapiLens.t
          val archiveTotalFailure :
            (GdataDocumentsV3Model.Archive.Entry.t, int) GapiLens.t
          val archiveResourceIds :
            (GdataDocumentsV3Model.Archive.Entry.t, string list) GapiLens.t
          val archiveConversions :
            (GdataDocumentsV3Model.Archive.Entry.t, Conversion.t list)
            GapiLens.t
          val extensions :
            (GdataDocumentsV3Model.Archive.Entry.t,
             GdataAtom.GenericExtensions.t)
            GapiLens.t
          val id : (GdataDocumentsV3Model.Archive.Entry.t, string) GapiLens.t
          val links :
            (GdataDocumentsV3Model.Archive.Entry.t, GdataAtom.Link.t list)
            GapiLens.t
          val content :
            (GdataDocumentsV3Model.Archive.Entry.t, GdataAtom.Content.t)
            GapiLens.t
          val empty : t
          val to_xml_data_model : t -> GdataCore.xml_data_model list
          val of_xml_data_model : t -> GdataCore.xml_data_model -> t
        end
      val parse_entry :
        GdataCore.xml_data_model -> GdataDocumentsV3Model.Archive.Entry.t
      val entry_to_data_model :
        GdataDocumentsV3Model.Archive.Entry.t -> GdataCore.xml_data_model
    end
  module Rel :
    sig
      type t =
          [ `Acl
          | `AltEditMedia
          | `AltPost
          | `Alternate
          | `Batch
          | `Edit
          | `EditMedia
          | `Feed
          | `Icon
          | `Parent
          | `Post
          | `ResumableCreateMedia
          | `ResumableEditMedia
          | `Revisions
          | `Self
          | `Thumbnail ]
      val to_string : [> GdataDocumentsV3Model.Rel.t ] -> string
    end
  val find_url :
    GdataDocumentsV3Model.Rel.t -> GdataAtom.Link.t list -> string
end