sig
  module Scope :
    sig
      val mail_google_com : string
      val gmail_compose : string
      val gmail_insert : string
      val gmail_labels : string
      val gmail_modify : string
      val gmail_readonly : string
      val gmail_send : string
    end
  module UsersResource :
    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
end