xref: /aosp_15_r20/external/grpc-grpc-java/xds/third_party/envoy/src/main/proto/envoy/api/v2/rds.proto (revision e07d83d3ffcef9ecfc9f7f475418ec639ff0e5fe)
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