Permalink
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
51 lines (42 sloc) 1.82 KB
syntax = "proto3";
package grpc.plugins.gloo.solo.io;
option go_package = "github.com/solo-io/gloo/projects/gloo/pkg/api/v1/plugins/grpc";
import "gogoproto/gogo.proto";
option (gogoproto.equal_all) = true;
import "github.com/solo-io/gloo/projects/gloo/api/v1/plugins/transformation/parameters.proto";
// Service spec describing GRPC upstreams. This will usually be filled
// automatically via function discovery (if the upstream supports reflection).
// If your upstream service is a GRPC service, use this service spec (an empty
// spec is fine), to make sure that traffic to it is routed with http2.
message ServiceSpec {
// TODO(yuval-k): ideally this should be google.protobuf.FileDescriptorSet
// but that doesn't work with gogoproto.equal_all.
// Descriptors that contain information of the services listed below.
// this is a serialized google.protobuf.FileDescriptorSet
bytes descriptors = 1;
// Describes a grpc service
message GrpcService {
// The package of this service.
string package_name = 1;
// The service name of this service.
string service_name = 2;
// The functions available in this service.
repeated string function_names = 3;
}
// List of services used by this upstream. For a grpc upstream where you don't
// need to use Gloo's function routing, this can be an empty list. These
// services must be present in the descriptors.
repeated GrpcService grpc_services = 2;
}
// This is only for upstream with Grpc service spec.
message DestinationSpec {
// The proto package of the function.
string package = 1;
// The name of the service of the function.
string service = 2;
// The name of the function.
string function = 3;
// Parameters describe how to extract the function parameters from the
// request.
transformation.plugins.gloo.solo.io.Parameters parameters = 4;
}