# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: smarthttp.proto for package 'gitaly'

require 'grpc'
require 'smarthttp_pb'

module Gitaly
  module SmartHTTPService
    # SmartHTTPService is a service that provides RPCs required for HTTP-based Git
    # clones via the smart HTTP protocol.
    class Service

      include ::GRPC::GenericService

      self.marshal_class_method = :encode
      self.unmarshal_class_method = :decode
      self.service_name = 'gitaly.SmartHTTPService'

      # The response body for GET /info/refs?service=git-upload-pack
      # Will be invoked when the user executes a `git fetch`, meaning the server
      # will upload the packs to that user. The user doesn't upload new objects.
      rpc :InfoRefsUploadPack, ::Gitaly::InfoRefsRequest, stream(::Gitaly::InfoRefsResponse)
      # The response body for GET /info/refs?service=git-receive-pack
      # Will be invoked when the user executes a `git push`, but only advertises
      # references to the user.
      rpc :InfoRefsReceivePack, ::Gitaly::InfoRefsRequest, stream(::Gitaly::InfoRefsResponse)
      # Request and response body for POST /upload-pack
      rpc :PostUploadPack, stream(::Gitaly::PostUploadPackRequest), stream(::Gitaly::PostUploadPackResponse)
      # Request and response body for POST /upload-pack using sidechannel protocol
      rpc :PostUploadPackWithSidechannel, ::Gitaly::PostUploadPackWithSidechannelRequest, ::Gitaly::PostUploadPackWithSidechannelResponse
      # Request and response body for POST /receive-pack
      rpc :PostReceivePack, stream(::Gitaly::PostReceivePackRequest), stream(::Gitaly::PostReceivePackResponse)
    end

    Stub = Service.rpc_stub_class
  end
end
