// Copyright 2018 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

syntax = "proto3";

package goproto.protoc.grpc;

option go_package = "github.com/golang/protobuf/v2/cmd/protoc-gen-go/testdata/grpc";

message Request {}
message Response {}

// Service and method names chosen to exercise the distinction between the
// proto definition names and the CamelCased Go names.
service test_service {
  rpc unary_call(Request) returns (Response);

  // This RPC streams from the server only.
  rpc downstream_call(Request) returns (stream Response);

  // This RPC streams from the client.
  rpc upstream_call(stream Request) returns (Response);

  // This one streams in both directions.
  rpc bidi_call(stream Request) returns (stream Response);
}
