1syntax = "proto3"; 2 3package envoy.api.v2; 4 5import "envoy/api/v2/discovery.proto"; 6 7import "google/api/annotations.proto"; 8 9import "envoy/annotations/resource.proto"; 10import "udpa/annotations/migrate.proto"; 11import "udpa/annotations/status.proto"; 12 13import public "envoy/api/v2/route.proto"; 14 15option java_package = "io.envoyproxy.envoy.api.v2"; 16option java_outer_classname = "RdsProto"; 17option java_multiple_files = true; 18option go_package = "github.com/envoyproxy/go-control-plane/envoy/api/v2;apiv2"; 19option (udpa.annotations.file_migrate).move_to_package = "envoy.service.route.v3"; 20option (udpa.annotations.file_status).package_version_status = FROZEN; 21 22// [#protodoc-title: RDS] 23 24// The resource_names field in DiscoveryRequest specifies a route configuration. 25// This allows an Envoy configuration with multiple HTTP listeners (and 26// associated HTTP connection manager filters) to use different route 27// configurations. Each listener will bind its HTTP connection manager filter to 28// a route table via this identifier. 29service RouteDiscoveryService { 30 option (envoy.annotations.resource).type = "envoy.api.v2.RouteConfiguration"; 31 32 rpc StreamRoutes(stream DiscoveryRequest) returns (stream DiscoveryResponse) { 33 } 34 35 rpc DeltaRoutes(stream DeltaDiscoveryRequest) returns (stream DeltaDiscoveryResponse) { 36 } 37 38 rpc FetchRoutes(DiscoveryRequest) returns (DiscoveryResponse) { 39 option (google.api.http).post = "/v2/discovery:routes"; 40 option (google.api.http).body = "*"; 41 } 42} 43 44// Virtual Host Discovery Service (VHDS) is used to dynamically update the list of virtual hosts for 45// a given RouteConfiguration. If VHDS is configured a virtual host list update will be triggered 46// during the processing of an HTTP request if a route for the request cannot be resolved. The 47// :ref:`resource_names_subscribe <envoy_api_field_DeltaDiscoveryRequest.resource_names_subscribe>` 48// field contains a list of virtual host names or aliases to track. The contents of an alias would 49// be the contents of a *host* or *authority* header used to make an http request. An xDS server 50// will match an alias to a virtual host based on the content of :ref:`domains' 51// <envoy_api_field_route.VirtualHost.domains>` field. The *resource_names_unsubscribe* field 52// contains a list of virtual host names that have been :ref:`unsubscribed 53// <xds_protocol_unsubscribe>` from the routing table associated with the RouteConfiguration. 54service VirtualHostDiscoveryService { 55 option (envoy.annotations.resource).type = "envoy.api.v2.route.VirtualHost"; 56 57 rpc DeltaVirtualHosts(stream DeltaDiscoveryRequest) returns (stream DeltaDiscoveryResponse) { 58 } 59} 60 61// [#not-implemented-hide:] Not configuration. Workaround c++ protobuf issue with importing 62// services: https://github.com/google/protobuf/issues/4221 and protoxform to upgrade the file. 63message RdsDummy { 64} 65