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
45
46
47
48
49
50
51
52
53
54
55
56
57
// This file is @generated by prost-build.
/// Indicates that during forwarding, portions of the path that match the
/// pattern should be rewritten, even allowing the substitution of variables
/// from the match pattern into the new path as specified by the rewrite template.
/// This is useful to allow application paths to be
/// rewritten in a way that is aware of segments with variable content like
/// identifiers. The router filter will place the original path as it was
/// before the rewrite into the :ref:`x-envoy-original-path <config_http_filters_router_x-envoy-original-path>` header.
///
///
/// Only one of :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`,
/// : ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`,
/// or *path_template_rewrite* may be specified.
///
///
/// Template pattern 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.
///
/// Only named matches can be used to perform rewrites.
///
/// Examples using path_template_rewrite:
///
/// * The pattern `/{one}/{two}` paired with a substitution string of `/{two}/{one}` would
/// transform `/cat/dog` into `/dog/cat`.
///
/// * The pattern `/videos/{language=lang/*}/*` paired with a substitution string of
/// `/{language}` would transform `/videos/lang/en/video.m4s` into `lang/en`.
///
/// * The path pattern `/content/{format}/{lang}/{id}/{file}.vtt` paired with a substitution
/// string of `/{lang}/{format}/{file}.vtt` would transform `/content/hls/en-us/12345/en_193913.vtt`
/// into `/en-us/hls/en_193913.vtt`.
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UriTemplateRewriteConfig {
#[prost(string, tag = "1")]
pub path_template_rewrite: ::prost::alloc::string::String,
}
impl ::prost::Name for UriTemplateRewriteConfig {
const NAME: &'static str = "UriTemplateRewriteConfig";
const PACKAGE: &'static str = "envoy.extensions.path.rewrite.uri_template.v3";
fn full_name() -> ::prost::alloc::string::String {
"envoy.extensions.path.rewrite.uri_template.v3.UriTemplateRewriteConfig".into()
}
fn type_url() -> ::prost::alloc::string::String {
"type.googleapis.com/envoy.extensions.path.rewrite.uri_template.v3.UriTemplateRewriteConfig"
.into()
}
}