syntax = "proto3"; package semantic; message HealthCheckRequest { string service = 1; } message HealthCheckResponse { enum ServingStatus { UNKNOWN = 0; SERVING = 1; NOT_SERVING = 2; } ServingStatus status = 1; } service SemanticAPI { rpc HealthCheck(HealthCheckRequest) returns (HealthCheckResponse); rpc FetchSummaries (SummariesRequest) returns (SummariesResponse) {} rpc ParseBlobs (ParseRequest) returns (ParseResponse) {} } message SummariesRequest { repeated BlobPair blobPairs = 1; } message ParseRequest { repeated Blob source = 1; } message BlobPair { Blob before = 1; Blob after = 2; } message Blob { string source = 1; string path = 2; string language = 3; } message SummariesResponse { repeated Summary changes = 1; repeated Error errors = 2; } message ParseResponse { bytes json_tree = 1; repeated Error errors = 2; } message Summary { string categoryName = 1; string termName = 2; Span span = 3; string changeType = 4; } message Error { string error = 1; Span span = 2; string language = 3; } message Span { Pos start = 1; Pos end = 2; } message Pos { int32 line = 1; int32 column = 2; }