syntax = "proto3";

package service;

enum ThingType {
  UNKNOWN = 0;
  LIVING = 1;
  DEAD = 2;
}

message DoThingRequest {
  string name = 1;
  repeated string comments = 2;
  ThingType type = 3;
}

message DoThingResponse {
  repeated string names = 1;
}

message GetThingRequest {
  string name = 1;
}

message GetThingResponse {
  string name = 1;
  int32 version = 2;
}

service Test {
  rpc DoThing(DoThingRequest) returns (DoThingResponse);
  rpc DoManyThings(stream DoThingRequest) returns (DoThingResponse);
  rpc GetThingVersions(GetThingRequest) returns (stream GetThingResponse);
  rpc GetDifferentThings(stream GetThingRequest) returns (stream GetThingResponse);
}
