syntax = "proto3";

option go_package = "github.com/opencord/voltha-protos/go/schema";

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;

    // Proto file name from which yang schemas shall be generated
    string yang_from = 3;
}

// Schema services
service SchemaService {

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

}
