@ -1459,7 +1459,7 @@ message VirtualCluster {
message RateLimit {
option ( udpa.annotations.versioning ) . previous_message_type = "envoy.config.route.v3.RateLimit" ;
/ / [ # next - free - field : 8 ]
/ / [ # next - free - field : 9 ]
message Action {
option ( udpa.annotations.versioning ) . previous_message_type =
"envoy.config.route.v3.RateLimit.Action" ;
@ -1576,11 +1576,15 @@ message RateLimit {
repeated HeaderMatcher headers = 3 [ ( validate.rules ) . repeated = { min_items : 1 } ] ;
}
/ / The following descriptor entry is appended when the dynamic metadata contains a key value :
/ / The following descriptor entry is appended when the
/ / : ref : ` dynamic metadata < well_known_dynamic_metadata > ` contains a key value :
/ /
/ / . . code - block : : cpp
/ /
/ / ( "<descriptor_key>" , "<value_queried_from_metadata>" )
/ / ( "<descriptor_key>" , "<value_queried_from_dynamic_metadata>" )
/ /
/ / . . attention : :
/ / This action has been deprecated in favor of the : ref : ` metadata < envoy_api_msg_config.route.v4alpha.RateLimit.Action.MetaData > ` action
message DynamicMetaData {
option ( udpa.annotations.versioning ) . previous_message_type =
"envoy.config.route.v3.RateLimit.Action.DynamicMetaData" ;
@ -1597,6 +1601,42 @@ message RateLimit {
string default_value = 3 ;
}
/ / The following descriptor entry is appended when the metadata contains a key value :
/ /
/ / . . code - block : : cpp
/ /
/ / ( "<descriptor_key>" , "<value_queried_from_metadata>" )
message MetaData {
option ( udpa.annotations.versioning ) . previous_message_type =
"envoy.config.route.v3.RateLimit.Action.MetaData" ;
enum Source {
/ / Query : ref : ` dynamic metadata < well_known_dynamic_metadata > `
DYNAMIC = 0 ;
/ / Query : ref : ` route entry metadata < envoy_api_field_config.route.v4alpha.Route.metadata > `
ROUTE_ENTRY = 1 ;
}
/ / The key to use in the descriptor entry.
string descriptor_key = 1 [ ( validate.rules ) . string = { min_len : 1 } ] ;
/ / Metadata struct that defines the key and path to retrieve the string value. A match will
/ / only happen if the value in the metadata is of type string .
type.metadata.v3.MetadataKey metadata_key = 2 [ ( validate.rules ) . message = { required : true } ] ;
/ / An optional value to use if * metadata_key * is empty. If not set and
/ / no value is present under the metadata_key then no descriptor is generated.
string default_value = 3 ;
/ / Source of metadata
Source source = 4 [ ( validate.rules ) . enum = { defined_only : true } ] ;
}
reserved 7 ;
reserved "dynamic_metadata" ;
oneof action_specifier {
option ( validate.required ) = true ;
@ -1618,8 +1658,8 @@ message RateLimit {
/ / Rate limit on the existence of request headers.
HeaderValueMatch header_value_match = 6 ;
/ / Rate limit on dynamic metadata.
Dynamic MetaData dynamic_ metadata = 7 ;
/ / Rate limit on metadata.
MetaData metadata = 8 ;
}
}