syntax = "proto3";

package examplecom;

import "proto/othercom/external_child_message.proto";

// these imports should not be output in the generated typescript service
import "google/protobuf/empty.proto";
import "google/protobuf/timestamp.proto";

message UnaryRequest {
  int64 some_int64 = 1;
  google.protobuf.Timestamp some_timestamp = 2;
}

message UnaryResponse {}

message StreamRequest {
  string some_string = 1;
}

service SimpleService {
  rpc DoUnary(UnaryRequest) returns (othercom.ExternalChildMessage) {}
  rpc DoServerStream(StreamRequest) returns (stream othercom.ExternalChildMessage) {}
  rpc DoClientStream(stream StreamRequest) returns (google.protobuf.Empty) {}
  rpc DoBidiStream(stream StreamRequest) returns (stream othercom.ExternalChildMessage) {}

  // checks that rpc methods that use reserved JS words don't generate invalid code
  rpc Delete(UnaryRequest) returns (UnaryResponse) {}
}
