-
Notifications
You must be signed in to change notification settings - Fork 4.6k
/
uri_template_match.proto
44 lines (39 loc) · 1.69 KB
/
uri_template_match.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
syntax = "proto3";
package envoy.extensions.path.match.uri_template.v3;
import "udpa/annotations/status.proto";
import "validate/validate.proto";
option java_package = "io.envoyproxy.envoy.extensions.path.match.uri_template.v3";
option java_outer_classname = "UriTemplateMatchProto";
option java_multiple_files = true;
option go_package = "github.com/envoyproxy/go-control-plane/envoy/extensions/path/match/uri_template/v3;uri_templatev3";
option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: Uri Template Match Config]
// [#extension: envoy.path.match.uri_template.uri_template_matcher]
// If specified, the route is a template match rule meaning that the
// ``:path`` header (without the query string) must match the given
// ``path_template`` pattern.
//
// Path template matching types:
//
// * ``*`` : Matches a single path component, up to the next path separator: /
//
// * ``**`` : Matches zero or more path segments. If present, must be the last operator.
//
// * ``{name} or {name=*}`` : A named variable matching one path segment up to the next path separator: /.
//
// * ``{name=videos/*}`` : A named variable matching more than one path segment.
// The path component matching videos/* is captured as the named variable.
//
// * ``{name=**}`` : A named variable matching zero or more path segments.
//
//
// For example:
//
// * ``/videos/*/*/*.m4s`` would match ``videos/123414/hls/1080p5000_00001.m4s``
//
// * ``/videos/{file}`` would match ``/videos/1080p5000_00001.m4s``
//
// * ``/**.mpd`` would match ``/content/123/india/dash/55/manifest.mpd``
message UriTemplateMatchConfig {
string path_template = 1 [(validate.rules).string = {min_len: 1 max_len: 256}];
}