Permalink
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
78 lines (67 sloc) 3.55 KB
syntax = "proto3";
package gloo.solo.io;
option go_package = "github.com/solo-io/gloo/projects/gloo/pkg/api/v1";
import "google/protobuf/struct.proto";
import "gogoproto/gogo.proto";
option (gogoproto.equal_all) = true;
import "github.com/solo-io/gloo/projects/gloo/api/v1/extensions.proto";
import "github.com/solo-io/gloo/projects/gloo/api/v1/plugins/aws/aws.proto";
import "github.com/solo-io/gloo/projects/gloo/api/v1/plugins/rest/rest.proto";
import "github.com/solo-io/gloo/projects/gloo/api/v1/plugins/grpc/grpc.proto";
import "github.com/solo-io/gloo/projects/gloo/api/v1/plugins/azure/azure.proto";
import "github.com/solo-io/gloo/projects/gloo/api/v1/plugins/consul/consul.proto";
import "github.com/solo-io/gloo/projects/gloo/api/v1/plugins/kubernetes/kubernetes.proto";
import "github.com/solo-io/gloo/projects/gloo/api/v1/plugins/retries/retries.proto";
import "github.com/solo-io/gloo/projects/gloo/api/v1/plugins/static/static.proto";
import "github.com/solo-io/gloo/projects/gloo/api/v1/plugins/transformation/prefix_rewrite.proto";
import "github.com/solo-io/gloo/projects/gloo/api/v1/plugins/transformation/transformation.proto";
import "github.com/solo-io/gloo/projects/gloo/api/v1/plugins/faultinjection/fault.proto";
import "google/protobuf/duration.proto";
// Plugin-specific configuration that lives on listeners
// Each ListenerPlugin object contains configuration for a specific plugin
// Note to developers: new Listener Plugins must be added to this struct
// to be usable by Gloo.
message ListenerPlugins {}
// Plugin-specific configuration that lives on virtual hosts
// Each VirtualHostPlugin object contains configuration for a specific plugin
// Note to developers: new Virtual Host Plugins must be added to this struct
// to be usable by Gloo.
message VirtualHostPlugins {
Extensions extensions = 1;
}
// Plugin-specific configuration that lives on routes
// Each RoutePlugin object contains configuration for a specific plugin
// Note to developers: new Route Plugins must be added to this struct
// to be usable by Gloo.
message RoutePlugins {
transformation.plugins.gloo.solo.io.RouteTransformations transformations = 1;
fault.plugins.gloo.solo.io.RouteFaults faults = 2;
transformation.plugins.gloo.solo.io.PrefixRewrite prefix_rewrite = 3;
google.protobuf.Duration timeout = 4 [(gogoproto.stdduration) = true];
retries.plugins.gloo.solo.io.RetryPolicy retries = 5;
Extensions extensions = 6;
}
// Configuration for Destinations that are tied to the UpstreamSpec or ServiceSpec on that destination
message DestinationSpec {
// Note to developers: new DestinationSpecs must be added to this oneof field
// to be usable by Gloo.
oneof destination_type {
aws.plugins.gloo.solo.io.DestinationSpec aws = 1;
azure.plugins.gloo.solo.io.DestinationSpec azure = 2;
rest.plugins.gloo.solo.io.DestinationSpec rest = 3;
grpc.plugins.gloo.solo.io.DestinationSpec grpc = 4;
}
}
// Each upstream in Gloo has a type. Supported types include `static`, `kubernetes`, `aws`, `consul`, and more.
// Each upstream type is handled by a corresponding Gloo plugin.
message UpstreamSpec {
// Note to developers: new Upstream Plugins must be added to this oneof field
// to be usable by Gloo.
oneof upstream_type {
kubernetes.plugins.gloo.solo.io.UpstreamSpec kube = 1;
static.plugins.gloo.solo.io.UpstreamSpec static = 4;
aws.plugins.gloo.solo.io.UpstreamSpec aws = 2;
azure.plugins.gloo.solo.io.UpstreamSpec azure = 3;
consul.plugins.gloo.solo.io.UpstreamSpec consul = 5;
}
}