syntax = "proto3"; package grpc.testingv3; message SearchResponseV3 { message Result { string url = 1; string title = 2; repeated string snippets = 3; message Value { oneof val { string str = 1; int64 int = 2; double real = 3; } } map metadata = 4; } enum State { UNKNOWN = 0; FRESH = 1; STALE = 2; } repeated Result results = 1; State state = 2; } message SearchRequestV3 { string query = 1; } service SearchServiceV3 { rpc Search(SearchRequestV3) returns (SearchResponseV3); rpc StreamingSearch(stream SearchRequestV3) returns (stream SearchResponseV3); }