message HelloRequest {
  optional string greeting = 1;
}

message HelloResponse {
  required string reply = 1;
}

service HelloService {
  rpc SayHello(HelloRequest) returns (HelloResponse) {
    option (google.api.http) = {
      get: "/v1/say-hello/echo/{greeting}"
      additional_bindings {
        post: "/v2/say-hello"
        body: "greeting"
      }
      additional_bindings {
        get: "/v2/say-hello"
      }
    };
  }
  rpc LotsOfReplies(HelloRequest) returns (stream HelloResponse);
  rpc LotsOfGreetings(stream HelloRequest) returns (HelloResponse) {
    option (google.api.http) = {
      post: "/v1/lots-of-greetings"
      body: "*"
    };
  }
  rpc BidiHello(stream HelloRequest) returns (stream HelloResponse);
}
