sig
  exception ServiceError of GapiConversation.Session.t *
              GapiError.RequestError.t
  val service_request :
    ?post_data:GapiCore.PostData.t ->
    ?version:string ->
    ?etag:string ->
    ?query_parameters:(string * string) list ->
    ?media_source:GapiMediaResource.t ->
    ?media_download:GapiMediaResource.download ->
    ?request_type:GapiRequest.request_type ->
    string ->
    (GapiPipe.OcamlnetPipe.t -> GapiCore.Header.t list -> 'a) ->
    GapiConversation.Session.t -> 'a * GapiConversation.Session.t
  val service_request_with_data :
    GapiRequest.request_type ->
    ('-> GapiCore.PostData.t) ->
    ?version:string ->
    ?etag:string ->
    ?query_parameters:(string * string) list ->
    ?media_source:GapiMediaResource.t ->
    ?media_download:GapiMediaResource.download ->
    '->
    string ->
    (GapiPipe.OcamlnetPipe.t -> GapiCore.Header.t list -> 'a) ->
    GapiConversation.Session.t -> 'a * GapiConversation.Session.t
  val download_resource :
    ?version:string ->
    ?query_parameters:(string * string) list ->
    ?ranges:(int64 option * int64 option) list ->
    string ->
    GapiMediaResource.destination ->
    GapiConversation.Session.t -> unit * GapiConversation.Session.t
  val build_param :
    '->
    '-> ('-> 'b) -> ('-> string) -> string -> (string * string) list
  val build_params :
    '->
    ('-> 'b list) -> ('-> string) -> string -> (string * string) list
  module StandardParameters :
    sig
      type t = {
        alt : string;
        fields : string;
        prettyPrint : bool;
        quotaUser : string;
        userIp : string;
        key : string;
      }
      val default : GapiService.StandardParameters.t
      val to_key_value_list :
        GapiService.StandardParameters.t -> (string * string) list
      val merge_parameters :
        ?standard_parameters:GapiService.StandardParameters.t ->
        unit -> GapiService.StandardParameters.t option
    end
  val head :
    ?etag:string ->
    ?query_parameters:(string * string) list ->
    ?media_download:GapiMediaResource.download ->
    string ->
    (GapiCore.Header.t list -> 'a) ->
    GapiConversation.Session.t -> 'a * GapiConversation.Session.t
  val get :
    ?etag:string ->
    ?query_parameters:(string * string) list ->
    ?media_download:GapiMediaResource.download ->
    string ->
    (GapiPipe.OcamlnetPipe.t -> 'a) ->
    GapiConversation.Session.t -> 'a * GapiConversation.Session.t
  val post :
    ?etag:string ->
    ?query_parameters:(string * string) list ->
    ?media_source:GapiMediaResource.t ->
    ?media_download:GapiMediaResource.download ->
    ?data_to_post:('-> GapiCore.PostData.t) ->
    data:'->
    string ->
    (GapiPipe.OcamlnetPipe.t -> 'b) ->
    GapiConversation.Session.t -> 'b * GapiConversation.Session.t
  val put :
    ?etag:string ->
    ?query_parameters:(string * string) list ->
    ?media_source:GapiMediaResource.t ->
    data_to_post:('-> GapiCore.PostData.t) ->
    data:'->
    string ->
    (GapiPipe.OcamlnetPipe.t -> 'a) ->
    GapiConversation.Session.t -> 'a * GapiConversation.Session.t
  val put' :
    ?etag:string ->
    ?query_parameters:(string * string) list ->
    ?media_source:GapiMediaResource.t ->
    data_to_post:('-> GapiCore.PostData.t) ->
    data:'->
    string ->
    (GapiPipe.OcamlnetPipe.t -> 'b) ->
    GapiConversation.Session.t -> 'b * GapiConversation.Session.t
  val patch :
    ?etag:string ->
    ?query_parameters:(string * string) list ->
    ?media_source:GapiMediaResource.t ->
    data_to_post:('-> GapiCore.PostData.t) ->
    data:'->
    string ->
    (GapiPipe.OcamlnetPipe.t -> 'a) ->
    GapiConversation.Session.t -> 'a * GapiConversation.Session.t
  val patch' :
    ?etag:string ->
    ?query_parameters:(string * string) list ->
    ?media_source:GapiMediaResource.t ->
    data_to_post:('-> GapiCore.PostData.t) ->
    data:'->
    string ->
    (GapiPipe.OcamlnetPipe.t -> 'b) ->
    GapiConversation.Session.t -> 'b * GapiConversation.Session.t
  val delete :
    ?etag:string ->
    ?query_parameters:(string * string) list ->
    string ->
    (GapiPipe.OcamlnetPipe.t -> 'a) ->
    GapiConversation.Session.t -> 'a * GapiConversation.Session.t
end