sig
  module Threads :
    sig
      module Format :
        sig
          type t = Default | Full | Metadata | Minimal
          val to_string :
            GapiGmailV1Service.UsersResource.Threads.Format.t -> string
          val of_string :
            string -> GapiGmailV1Service.UsersResource.Threads.Format.t
        end
      val delete :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        userId:string ->
        id:string ->
        GapiConversation.Session.t -> unit * GapiConversation.Session.t
      val get :
        ?base_url:string ->
        ?etag:string ->
        ?std_params:GapiService.StandardParameters.t ->
        ?format:GapiGmailV1Service.UsersResource.Threads.Format.t ->
        ?metadataHeaders:string list ->
        userId:string ->
        id:string ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.Thread.t * GapiConversation.Session.t
      val list :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        ?includeSpamTrash:bool ->
        ?maxResults:int ->
        ?labelIds:string list ->
        ?pageToken:string ->
        ?q:string ->
        userId:string ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.ListThreadsResponse.t * GapiConversation.Session.t
      val modify :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        userId:string ->
        id:string ->
        GapiGmailV1Model.ModifyThreadRequest.t ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.Thread.t * GapiConversation.Session.t
      val trash :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        userId:string ->
        id:string ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.Thread.t * GapiConversation.Session.t
      val untrash :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        userId:string ->
        id:string ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.Thread.t * GapiConversation.Session.t
    end
  module Messages :
    sig
      module Attachments :
        sig
          val get :
            ?base_url:string ->
            ?etag:string ->
            ?std_params:GapiService.StandardParameters.t ->
            userId:string ->
            messageId:string ->
            id:string ->
            GapiConversation.Session.t ->
            GapiGmailV1Model.MessagePartBody.t * GapiConversation.Session.t
        end
      module InternalDateSource :
        sig
          type t = Default | DateHeader | ReceivedTime
          val to_string :
            GapiGmailV1Service.UsersResource.Messages.InternalDateSource.t ->
            string
          val of_string :
            string ->
            GapiGmailV1Service.UsersResource.Messages.InternalDateSource.t
        end
      module Format :
        sig
          type t = Default | Full | Metadata | Minimal | Raw
          val to_string :
            GapiGmailV1Service.UsersResource.Messages.Format.t -> string
          val of_string :
            string -> GapiGmailV1Service.UsersResource.Messages.Format.t
        end
      val delete :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        userId:string ->
        id:string ->
        GapiConversation.Session.t -> unit * GapiConversation.Session.t
      val get :
        ?base_url:string ->
        ?etag:string ->
        ?std_params:GapiService.StandardParameters.t ->
        ?format:GapiGmailV1Service.UsersResource.Messages.Format.t ->
        ?metadataHeaders:string list ->
        userId:string ->
        id:string ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.Message.t * GapiConversation.Session.t
      val import :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        ?media_source:GapiMediaResource.t ->
        ?deleted:bool ->
        ?internalDateSource:GapiGmailV1Service.UsersResource.Messages.InternalDateSource.t ->
        ?neverMarkSpam:bool ->
        ?processForCalendar:bool ->
        userId:string ->
        GapiGmailV1Model.Message.t ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.Message.t * GapiConversation.Session.t
      val insert :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        ?media_source:GapiMediaResource.t ->
        ?deleted:bool ->
        ?internalDateSource:GapiGmailV1Service.UsersResource.Messages.InternalDateSource.t ->
        userId:string ->
        GapiGmailV1Model.Message.t ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.Message.t * GapiConversation.Session.t
      val list :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        ?includeSpamTrash:bool ->
        ?maxResults:int ->
        ?labelIds:string list ->
        ?pageToken:string ->
        ?q:string ->
        userId:string ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.ListMessagesResponse.t * GapiConversation.Session.t
      val modify :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        userId:string ->
        id:string ->
        GapiGmailV1Model.ModifyMessageRequest.t ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.Message.t * GapiConversation.Session.t
      val send :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        ?media_source:GapiMediaResource.t ->
        userId:string ->
        GapiGmailV1Model.Message.t ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.Message.t * GapiConversation.Session.t
      val trash :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        userId:string ->
        id:string ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.Message.t * GapiConversation.Session.t
      val untrash :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        userId:string ->
        id:string ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.Message.t * GapiConversation.Session.t
    end
  module Labels :
    sig
      val create :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        userId:string ->
        GapiGmailV1Model.Label.t ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.Label.t * GapiConversation.Session.t
      val delete :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        userId:string ->
        id:string ->
        GapiConversation.Session.t -> unit * GapiConversation.Session.t
      val get :
        ?base_url:string ->
        ?etag:string ->
        ?std_params:GapiService.StandardParameters.t ->
        userId:string ->
        id:string ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.Label.t * GapiConversation.Session.t
      val list :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        userId:string ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.ListLabelsResponse.t * GapiConversation.Session.t
      val patch :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        userId:string ->
        id:string ->
        GapiGmailV1Model.Label.t ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.Label.t * GapiConversation.Session.t
      val update :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        userId:string ->
        id:string ->
        GapiGmailV1Model.Label.t ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.Label.t * GapiConversation.Session.t
    end
  module History :
    sig
      val list :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        ?maxResults:int ->
        ?labelId:string ->
        ?pageToken:string ->
        ?startHistoryId:string ->
        userId:string ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.ListHistoryResponse.t * GapiConversation.Session.t
    end
  module Drafts :
    sig
      module Format :
        sig
          type t = Default | Full | Metadata | Minimal | Raw
          val to_string :
            GapiGmailV1Service.UsersResource.Drafts.Format.t -> string
          val of_string :
            string -> GapiGmailV1Service.UsersResource.Drafts.Format.t
        end
      val create :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        ?media_source:GapiMediaResource.t ->
        userId:string ->
        GapiGmailV1Model.Draft.t ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.Draft.t * GapiConversation.Session.t
      val delete :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        userId:string ->
        id:string ->
        GapiConversation.Session.t -> unit * GapiConversation.Session.t
      val get :
        ?base_url:string ->
        ?etag:string ->
        ?std_params:GapiService.StandardParameters.t ->
        ?format:GapiGmailV1Service.UsersResource.Drafts.Format.t ->
        userId:string ->
        id:string ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.Draft.t * GapiConversation.Session.t
      val list :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        ?maxResults:int ->
        ?pageToken:string ->
        userId:string ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.ListDraftsResponse.t * GapiConversation.Session.t
      val send :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        ?media_source:GapiMediaResource.t ->
        userId:string ->
        GapiGmailV1Model.Draft.t ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.Message.t * GapiConversation.Session.t
      val update :
        ?base_url:string ->
        ?std_params:GapiService.StandardParameters.t ->
        ?media_source:GapiMediaResource.t ->
        userId:string ->
        id:string ->
        GapiGmailV1Model.Draft.t ->
        GapiConversation.Session.t ->
        GapiGmailV1Model.Draft.t * GapiConversation.Session.t
    end
  val getProfile :
    ?base_url:string ->
    ?std_params:GapiService.StandardParameters.t ->
    userId:string ->
    GapiConversation.Session.t ->
    GapiGmailV1Model.Profile.t * GapiConversation.Session.t
  val stop :
    ?base_url:string ->
    ?std_params:GapiService.StandardParameters.t ->
    userId:string ->
    GapiConversation.Session.t -> unit * GapiConversation.Session.t
  val watch :
    ?base_url:string ->
    ?std_params:GapiService.StandardParameters.t ->
    userId:string ->
    GapiGmailV1Model.WatchRequest.t ->
    GapiConversation.Session.t ->
    GapiGmailV1Model.WatchResponse.t * GapiConversation.Session.t
end