syntax = "proto3";

package schema;

import "google/api/annotations.proto";
import "google/protobuf/empty.proto";

// Contains the name and content of a *.proto file
message ProtoFile {
    string file_name = 1;  // name of proto file
    string proto = 2;  // content of proto file
    bytes descriptor = 3;  // compiled descriptor for proto (zlib compressed)
}

// Proto files and compiled descriptors for this interface
message Schemas {

    // Proto files
    repeated ProtoFile protos = 1;

    // Proto file name from which swagger.json shall be generated
    string swagger_from = 2;

}

// Schema services
service SchemaService {

    // Return active grpc schemas
    rpc GetSchema(google.protobuf.Empty) returns (Schemas) {
        option (google.api.http) = {
            get: "/schema"
        };
    }

}
