gitee.com/ks-custle/core-gm@v0.0.0-20230922171213-b83bdd97b62c/go-control-plane/envoy/config/route/v3/route_components.pb.go (about)

     1  // Code generated by protoc-gen-go. DO NOT EDIT.
     2  // versions:
     3  // 	protoc-gen-go v1.25.0
     4  // 	protoc        v3.16.0
     5  // source: envoy/config/route/v3/route_components.proto
     6  
     7  package envoy_config_route_v3
     8  
     9  import (
    10  	_ "github.com/cncf/xds/go/udpa/annotations"
    11  	_ "gitee.com/ks-custle/core-gm/go-control-plane/envoy/annotations"
    12  	v3 "gitee.com/ks-custle/core-gm/go-control-plane/envoy/config/core/v3"
    13  	v31 "gitee.com/ks-custle/core-gm/go-control-plane/envoy/type/matcher/v3"
    14  	v34 "gitee.com/ks-custle/core-gm/go-control-plane/envoy/type/metadata/v3"
    15  	v33 "gitee.com/ks-custle/core-gm/go-control-plane/envoy/type/tracing/v3"
    16  	v32 "gitee.com/ks-custle/core-gm/go-control-plane/envoy/type/v3"
    17  	_ "github.com/envoyproxy/protoc-gen-validate/validate"
    18  	proto "github.com/golang/protobuf/proto"
    19  	any "github.com/golang/protobuf/ptypes/any"
    20  	duration "github.com/golang/protobuf/ptypes/duration"
    21  	_struct "github.com/golang/protobuf/ptypes/struct"
    22  	wrappers "github.com/golang/protobuf/ptypes/wrappers"
    23  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    24  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    25  	reflect "reflect"
    26  	sync "sync"
    27  )
    28  
    29  const (
    30  	// Verify that this generated code is sufficiently up-to-date.
    31  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    32  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    33  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    34  )
    35  
    36  // This is a compile-time assertion that a sufficiently up-to-date version
    37  // of the legacy proto package is being used.
    38  const _ = proto.ProtoPackageIsVersion4
    39  
    40  type VirtualHost_TlsRequirementType int32
    41  
    42  const (
    43  	// No TLS requirement for the virtual host.
    44  	VirtualHost_NONE VirtualHost_TlsRequirementType = 0
    45  	// External requests must use TLS. If a request is external and it is not
    46  	// using TLS, a 301 redirect will be sent telling the client to use HTTPS.
    47  	VirtualHost_EXTERNAL_ONLY VirtualHost_TlsRequirementType = 1
    48  	// All requests must use TLS. If a request is not using TLS, a 301 redirect
    49  	// will be sent telling the client to use HTTPS.
    50  	VirtualHost_ALL VirtualHost_TlsRequirementType = 2
    51  )
    52  
    53  // Enum value maps for VirtualHost_TlsRequirementType.
    54  var (
    55  	VirtualHost_TlsRequirementType_name = map[int32]string{
    56  		0: "NONE",
    57  		1: "EXTERNAL_ONLY",
    58  		2: "ALL",
    59  	}
    60  	VirtualHost_TlsRequirementType_value = map[string]int32{
    61  		"NONE":          0,
    62  		"EXTERNAL_ONLY": 1,
    63  		"ALL":           2,
    64  	}
    65  )
    66  
    67  func (x VirtualHost_TlsRequirementType) Enum() *VirtualHost_TlsRequirementType {
    68  	p := new(VirtualHost_TlsRequirementType)
    69  	*p = x
    70  	return p
    71  }
    72  
    73  func (x VirtualHost_TlsRequirementType) String() string {
    74  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    75  }
    76  
    77  func (VirtualHost_TlsRequirementType) Descriptor() protoreflect.EnumDescriptor {
    78  	return file_envoy_config_route_v3_route_components_proto_enumTypes[0].Descriptor()
    79  }
    80  
    81  func (VirtualHost_TlsRequirementType) Type() protoreflect.EnumType {
    82  	return &file_envoy_config_route_v3_route_components_proto_enumTypes[0]
    83  }
    84  
    85  func (x VirtualHost_TlsRequirementType) Number() protoreflect.EnumNumber {
    86  	return protoreflect.EnumNumber(x)
    87  }
    88  
    89  // Deprecated: Use VirtualHost_TlsRequirementType.Descriptor instead.
    90  func (VirtualHost_TlsRequirementType) EnumDescriptor() ([]byte, []int) {
    91  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{0, 0}
    92  }
    93  
    94  type RouteAction_ClusterNotFoundResponseCode int32
    95  
    96  const (
    97  	// HTTP status code - 503 Service Unavailable.
    98  	RouteAction_SERVICE_UNAVAILABLE RouteAction_ClusterNotFoundResponseCode = 0
    99  	// HTTP status code - 404 Not Found.
   100  	RouteAction_NOT_FOUND RouteAction_ClusterNotFoundResponseCode = 1
   101  )
   102  
   103  // Enum value maps for RouteAction_ClusterNotFoundResponseCode.
   104  var (
   105  	RouteAction_ClusterNotFoundResponseCode_name = map[int32]string{
   106  		0: "SERVICE_UNAVAILABLE",
   107  		1: "NOT_FOUND",
   108  	}
   109  	RouteAction_ClusterNotFoundResponseCode_value = map[string]int32{
   110  		"SERVICE_UNAVAILABLE": 0,
   111  		"NOT_FOUND":           1,
   112  	}
   113  )
   114  
   115  func (x RouteAction_ClusterNotFoundResponseCode) Enum() *RouteAction_ClusterNotFoundResponseCode {
   116  	p := new(RouteAction_ClusterNotFoundResponseCode)
   117  	*p = x
   118  	return p
   119  }
   120  
   121  func (x RouteAction_ClusterNotFoundResponseCode) String() string {
   122  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   123  }
   124  
   125  func (RouteAction_ClusterNotFoundResponseCode) Descriptor() protoreflect.EnumDescriptor {
   126  	return file_envoy_config_route_v3_route_components_proto_enumTypes[1].Descriptor()
   127  }
   128  
   129  func (RouteAction_ClusterNotFoundResponseCode) Type() protoreflect.EnumType {
   130  	return &file_envoy_config_route_v3_route_components_proto_enumTypes[1]
   131  }
   132  
   133  func (x RouteAction_ClusterNotFoundResponseCode) Number() protoreflect.EnumNumber {
   134  	return protoreflect.EnumNumber(x)
   135  }
   136  
   137  // Deprecated: Use RouteAction_ClusterNotFoundResponseCode.Descriptor instead.
   138  func (RouteAction_ClusterNotFoundResponseCode) EnumDescriptor() ([]byte, []int) {
   139  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{6, 0}
   140  }
   141  
   142  // Configures :ref:`internal redirect <arch_overview_internal_redirects>` behavior.
   143  // [#next-major-version: remove this definition - it's defined in the InternalRedirectPolicy message.]
   144  //
   145  // Deprecated: Do not use.
   146  type RouteAction_InternalRedirectAction int32
   147  
   148  const (
   149  	RouteAction_PASS_THROUGH_INTERNAL_REDIRECT RouteAction_InternalRedirectAction = 0
   150  	RouteAction_HANDLE_INTERNAL_REDIRECT       RouteAction_InternalRedirectAction = 1
   151  )
   152  
   153  // Enum value maps for RouteAction_InternalRedirectAction.
   154  var (
   155  	RouteAction_InternalRedirectAction_name = map[int32]string{
   156  		0: "PASS_THROUGH_INTERNAL_REDIRECT",
   157  		1: "HANDLE_INTERNAL_REDIRECT",
   158  	}
   159  	RouteAction_InternalRedirectAction_value = map[string]int32{
   160  		"PASS_THROUGH_INTERNAL_REDIRECT": 0,
   161  		"HANDLE_INTERNAL_REDIRECT":       1,
   162  	}
   163  )
   164  
   165  func (x RouteAction_InternalRedirectAction) Enum() *RouteAction_InternalRedirectAction {
   166  	p := new(RouteAction_InternalRedirectAction)
   167  	*p = x
   168  	return p
   169  }
   170  
   171  func (x RouteAction_InternalRedirectAction) String() string {
   172  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   173  }
   174  
   175  func (RouteAction_InternalRedirectAction) Descriptor() protoreflect.EnumDescriptor {
   176  	return file_envoy_config_route_v3_route_components_proto_enumTypes[2].Descriptor()
   177  }
   178  
   179  func (RouteAction_InternalRedirectAction) Type() protoreflect.EnumType {
   180  	return &file_envoy_config_route_v3_route_components_proto_enumTypes[2]
   181  }
   182  
   183  func (x RouteAction_InternalRedirectAction) Number() protoreflect.EnumNumber {
   184  	return protoreflect.EnumNumber(x)
   185  }
   186  
   187  // Deprecated: Use RouteAction_InternalRedirectAction.Descriptor instead.
   188  func (RouteAction_InternalRedirectAction) EnumDescriptor() ([]byte, []int) {
   189  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{6, 1}
   190  }
   191  
   192  type RetryPolicy_ResetHeaderFormat int32
   193  
   194  const (
   195  	RetryPolicy_SECONDS        RetryPolicy_ResetHeaderFormat = 0
   196  	RetryPolicy_UNIX_TIMESTAMP RetryPolicy_ResetHeaderFormat = 1
   197  )
   198  
   199  // Enum value maps for RetryPolicy_ResetHeaderFormat.
   200  var (
   201  	RetryPolicy_ResetHeaderFormat_name = map[int32]string{
   202  		0: "SECONDS",
   203  		1: "UNIX_TIMESTAMP",
   204  	}
   205  	RetryPolicy_ResetHeaderFormat_value = map[string]int32{
   206  		"SECONDS":        0,
   207  		"UNIX_TIMESTAMP": 1,
   208  	}
   209  )
   210  
   211  func (x RetryPolicy_ResetHeaderFormat) Enum() *RetryPolicy_ResetHeaderFormat {
   212  	p := new(RetryPolicy_ResetHeaderFormat)
   213  	*p = x
   214  	return p
   215  }
   216  
   217  func (x RetryPolicy_ResetHeaderFormat) String() string {
   218  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   219  }
   220  
   221  func (RetryPolicy_ResetHeaderFormat) Descriptor() protoreflect.EnumDescriptor {
   222  	return file_envoy_config_route_v3_route_components_proto_enumTypes[3].Descriptor()
   223  }
   224  
   225  func (RetryPolicy_ResetHeaderFormat) Type() protoreflect.EnumType {
   226  	return &file_envoy_config_route_v3_route_components_proto_enumTypes[3]
   227  }
   228  
   229  func (x RetryPolicy_ResetHeaderFormat) Number() protoreflect.EnumNumber {
   230  	return protoreflect.EnumNumber(x)
   231  }
   232  
   233  // Deprecated: Use RetryPolicy_ResetHeaderFormat.Descriptor instead.
   234  func (RetryPolicy_ResetHeaderFormat) EnumDescriptor() ([]byte, []int) {
   235  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{7, 0}
   236  }
   237  
   238  type RedirectAction_RedirectResponseCode int32
   239  
   240  const (
   241  	// Moved Permanently HTTP Status Code - 301.
   242  	RedirectAction_MOVED_PERMANENTLY RedirectAction_RedirectResponseCode = 0
   243  	// Found HTTP Status Code - 302.
   244  	RedirectAction_FOUND RedirectAction_RedirectResponseCode = 1
   245  	// See Other HTTP Status Code - 303.
   246  	RedirectAction_SEE_OTHER RedirectAction_RedirectResponseCode = 2
   247  	// Temporary Redirect HTTP Status Code - 307.
   248  	RedirectAction_TEMPORARY_REDIRECT RedirectAction_RedirectResponseCode = 3
   249  	// Permanent Redirect HTTP Status Code - 308.
   250  	RedirectAction_PERMANENT_REDIRECT RedirectAction_RedirectResponseCode = 4
   251  )
   252  
   253  // Enum value maps for RedirectAction_RedirectResponseCode.
   254  var (
   255  	RedirectAction_RedirectResponseCode_name = map[int32]string{
   256  		0: "MOVED_PERMANENTLY",
   257  		1: "FOUND",
   258  		2: "SEE_OTHER",
   259  		3: "TEMPORARY_REDIRECT",
   260  		4: "PERMANENT_REDIRECT",
   261  	}
   262  	RedirectAction_RedirectResponseCode_value = map[string]int32{
   263  		"MOVED_PERMANENTLY":  0,
   264  		"FOUND":              1,
   265  		"SEE_OTHER":          2,
   266  		"TEMPORARY_REDIRECT": 3,
   267  		"PERMANENT_REDIRECT": 4,
   268  	}
   269  )
   270  
   271  func (x RedirectAction_RedirectResponseCode) Enum() *RedirectAction_RedirectResponseCode {
   272  	p := new(RedirectAction_RedirectResponseCode)
   273  	*p = x
   274  	return p
   275  }
   276  
   277  func (x RedirectAction_RedirectResponseCode) String() string {
   278  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   279  }
   280  
   281  func (RedirectAction_RedirectResponseCode) Descriptor() protoreflect.EnumDescriptor {
   282  	return file_envoy_config_route_v3_route_components_proto_enumTypes[4].Descriptor()
   283  }
   284  
   285  func (RedirectAction_RedirectResponseCode) Type() protoreflect.EnumType {
   286  	return &file_envoy_config_route_v3_route_components_proto_enumTypes[4]
   287  }
   288  
   289  func (x RedirectAction_RedirectResponseCode) Number() protoreflect.EnumNumber {
   290  	return protoreflect.EnumNumber(x)
   291  }
   292  
   293  // Deprecated: Use RedirectAction_RedirectResponseCode.Descriptor instead.
   294  func (RedirectAction_RedirectResponseCode) EnumDescriptor() ([]byte, []int) {
   295  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{9, 0}
   296  }
   297  
   298  type RateLimit_Action_MetaData_Source int32
   299  
   300  const (
   301  	// Query :ref:`dynamic metadata <well_known_dynamic_metadata>`
   302  	RateLimit_Action_MetaData_DYNAMIC RateLimit_Action_MetaData_Source = 0
   303  	// Query :ref:`route entry metadata <envoy_v3_api_field_config.route.v3.Route.metadata>`
   304  	RateLimit_Action_MetaData_ROUTE_ENTRY RateLimit_Action_MetaData_Source = 1
   305  )
   306  
   307  // Enum value maps for RateLimit_Action_MetaData_Source.
   308  var (
   309  	RateLimit_Action_MetaData_Source_name = map[int32]string{
   310  		0: "DYNAMIC",
   311  		1: "ROUTE_ENTRY",
   312  	}
   313  	RateLimit_Action_MetaData_Source_value = map[string]int32{
   314  		"DYNAMIC":     0,
   315  		"ROUTE_ENTRY": 1,
   316  	}
   317  )
   318  
   319  func (x RateLimit_Action_MetaData_Source) Enum() *RateLimit_Action_MetaData_Source {
   320  	p := new(RateLimit_Action_MetaData_Source)
   321  	*p = x
   322  	return p
   323  }
   324  
   325  func (x RateLimit_Action_MetaData_Source) String() string {
   326  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   327  }
   328  
   329  func (RateLimit_Action_MetaData_Source) Descriptor() protoreflect.EnumDescriptor {
   330  	return file_envoy_config_route_v3_route_components_proto_enumTypes[5].Descriptor()
   331  }
   332  
   333  func (RateLimit_Action_MetaData_Source) Type() protoreflect.EnumType {
   334  	return &file_envoy_config_route_v3_route_components_proto_enumTypes[5]
   335  }
   336  
   337  func (x RateLimit_Action_MetaData_Source) Number() protoreflect.EnumNumber {
   338  	return protoreflect.EnumNumber(x)
   339  }
   340  
   341  // Deprecated: Use RateLimit_Action_MetaData_Source.Descriptor instead.
   342  func (RateLimit_Action_MetaData_Source) EnumDescriptor() ([]byte, []int) {
   343  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{15, 0, 7, 0}
   344  }
   345  
   346  // The top level element in the routing configuration is a virtual host. Each virtual host has
   347  // a logical name as well as a set of domains that get routed to it based on the incoming request's
   348  // host header. This allows a single listener to service multiple top level domain path trees. Once
   349  // a virtual host is selected based on the domain, the routes are processed in order to see which
   350  // upstream cluster to route to or whether to perform a redirect.
   351  // [#next-free-field: 21]
   352  type VirtualHost struct {
   353  	state         protoimpl.MessageState
   354  	sizeCache     protoimpl.SizeCache
   355  	unknownFields protoimpl.UnknownFields
   356  
   357  	// The logical name of the virtual host. This is used when emitting certain
   358  	// statistics but is not relevant for routing.
   359  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
   360  	// A list of domains (host/authority header) that will be matched to this
   361  	// virtual host. Wildcard hosts are supported in the suffix or prefix form.
   362  	//
   363  	// Domain search order:
   364  	//  1. Exact domain names: ``www.foo.com``.
   365  	//  2. Suffix domain wildcards: ``*.foo.com`` or ``*-bar.foo.com``.
   366  	//  3. Prefix domain wildcards: ``foo.*`` or ``foo-*``.
   367  	//  4. Special wildcard ``*`` matching any domain.
   368  	//
   369  	// .. note::
   370  	//
   371  	//   The wildcard will not match the empty string.
   372  	//   e.g. ``*-bar.foo.com`` will match ``baz-bar.foo.com`` but not ``-bar.foo.com``.
   373  	//   The longest wildcards match first.
   374  	//   Only a single virtual host in the entire route configuration can match on ``*``. A domain
   375  	//   must be unique across all virtual hosts or the config will fail to load.
   376  	//
   377  	// Domains cannot contain control characters. This is validated by the well_known_regex HTTP_HEADER_VALUE.
   378  	Domains []string `protobuf:"bytes,2,rep,name=domains,proto3" json:"domains,omitempty"`
   379  	// The list of routes that will be matched, in order, for incoming requests.
   380  	// The first route that matches will be used.
   381  	Routes []*Route `protobuf:"bytes,3,rep,name=routes,proto3" json:"routes,omitempty"`
   382  	// Specifies the type of TLS enforcement the virtual host expects. If this option is not
   383  	// specified, there is no TLS requirement for the virtual host.
   384  	RequireTls VirtualHost_TlsRequirementType `protobuf:"varint,4,opt,name=require_tls,json=requireTls,proto3,enum=envoy.config.route.v3.VirtualHost_TlsRequirementType" json:"require_tls,omitempty"`
   385  	// A list of virtual clusters defined for this virtual host. Virtual clusters
   386  	// are used for additional statistics gathering.
   387  	VirtualClusters []*VirtualCluster `protobuf:"bytes,5,rep,name=virtual_clusters,json=virtualClusters,proto3" json:"virtual_clusters,omitempty"`
   388  	// Specifies a set of rate limit configurations that will be applied to the
   389  	// virtual host.
   390  	RateLimits []*RateLimit `protobuf:"bytes,6,rep,name=rate_limits,json=rateLimits,proto3" json:"rate_limits,omitempty"`
   391  	// Specifies a list of HTTP headers that should be added to each request
   392  	// handled by this virtual host. Headers specified at this level are applied
   393  	// after headers from enclosed :ref:`envoy_v3_api_msg_config.route.v3.Route` and before headers from the
   394  	// enclosing :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration`. For more information, including
   395  	// details on header value syntax, see the documentation on :ref:`custom request headers
   396  	// <config_http_conn_man_headers_custom_request_headers>`.
   397  	RequestHeadersToAdd []*v3.HeaderValueOption `protobuf:"bytes,7,rep,name=request_headers_to_add,json=requestHeadersToAdd,proto3" json:"request_headers_to_add,omitempty"`
   398  	// Specifies a list of HTTP headers that should be removed from each request
   399  	// handled by this virtual host.
   400  	RequestHeadersToRemove []string `protobuf:"bytes,13,rep,name=request_headers_to_remove,json=requestHeadersToRemove,proto3" json:"request_headers_to_remove,omitempty"`
   401  	// Specifies a list of HTTP headers that should be added to each response
   402  	// handled by this virtual host. Headers specified at this level are applied
   403  	// after headers from enclosed :ref:`envoy_v3_api_msg_config.route.v3.Route` and before headers from the
   404  	// enclosing :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration`. For more information, including
   405  	// details on header value syntax, see the documentation on :ref:`custom request headers
   406  	// <config_http_conn_man_headers_custom_request_headers>`.
   407  	ResponseHeadersToAdd []*v3.HeaderValueOption `protobuf:"bytes,10,rep,name=response_headers_to_add,json=responseHeadersToAdd,proto3" json:"response_headers_to_add,omitempty"`
   408  	// Specifies a list of HTTP headers that should be removed from each response
   409  	// handled by this virtual host.
   410  	ResponseHeadersToRemove []string `protobuf:"bytes,11,rep,name=response_headers_to_remove,json=responseHeadersToRemove,proto3" json:"response_headers_to_remove,omitempty"`
   411  	// Indicates that the virtual host has a CORS policy.
   412  	Cors *CorsPolicy `protobuf:"bytes,8,opt,name=cors,proto3" json:"cors,omitempty"`
   413  	// The per_filter_config field can be used to provide virtual host-specific
   414  	// configurations for filters. The key should match the filter name, such as
   415  	// *envoy.filters.http.buffer* for the HTTP buffer filter. Use of this field is filter
   416  	// specific; see the :ref:`HTTP filter documentation <config_http_filters>`
   417  	// for if and how it is utilized.
   418  	// [#comment: An entry's value may be wrapped in a
   419  	// :ref:`FilterConfig<envoy_v3_api_msg_config.route.v3.FilterConfig>`
   420  	// message to specify additional options.]
   421  	TypedPerFilterConfig map[string]*any.Any `protobuf:"bytes,15,rep,name=typed_per_filter_config,json=typedPerFilterConfig,proto3" json:"typed_per_filter_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   422  	// Decides whether the :ref:`x-envoy-attempt-count
   423  	// <config_http_filters_router_x-envoy-attempt-count>` header should be included
   424  	// in the upstream request. Setting this option will cause it to override any existing header
   425  	// value, so in the case of two Envoys on the request path with this option enabled, the upstream
   426  	// will see the attempt count as perceived by the second Envoy. Defaults to false.
   427  	// This header is unaffected by the
   428  	// :ref:`suppress_envoy_headers
   429  	// <envoy_v3_api_field_extensions.filters.http.router.v3.Router.suppress_envoy_headers>` flag.
   430  	//
   431  	// [#next-major-version: rename to include_attempt_count_in_request.]
   432  	IncludeRequestAttemptCount bool `protobuf:"varint,14,opt,name=include_request_attempt_count,json=includeRequestAttemptCount,proto3" json:"include_request_attempt_count,omitempty"`
   433  	// Decides whether the :ref:`x-envoy-attempt-count
   434  	// <config_http_filters_router_x-envoy-attempt-count>` header should be included
   435  	// in the downstream response. Setting this option will cause the router to override any existing header
   436  	// value, so in the case of two Envoys on the request path with this option enabled, the downstream
   437  	// will see the attempt count as perceived by the Envoy closest upstream from itself. Defaults to false.
   438  	// This header is unaffected by the
   439  	// :ref:`suppress_envoy_headers
   440  	// <envoy_v3_api_field_extensions.filters.http.router.v3.Router.suppress_envoy_headers>` flag.
   441  	IncludeAttemptCountInResponse bool `protobuf:"varint,19,opt,name=include_attempt_count_in_response,json=includeAttemptCountInResponse,proto3" json:"include_attempt_count_in_response,omitempty"`
   442  	// Indicates the retry policy for all routes in this virtual host. Note that setting a
   443  	// route level entry will take precedence over this config and it'll be treated
   444  	// independently (e.g.: values are not inherited).
   445  	RetryPolicy *RetryPolicy `protobuf:"bytes,16,opt,name=retry_policy,json=retryPolicy,proto3" json:"retry_policy,omitempty"`
   446  	// [#not-implemented-hide:]
   447  	// Specifies the configuration for retry policy extension. Note that setting a route level entry
   448  	// will take precedence over this config and it'll be treated independently (e.g.: values are not
   449  	// inherited). :ref:`Retry policy <envoy_v3_api_field_config.route.v3.VirtualHost.retry_policy>` should not be
   450  	// set if this field is used.
   451  	RetryPolicyTypedConfig *any.Any `protobuf:"bytes,20,opt,name=retry_policy_typed_config,json=retryPolicyTypedConfig,proto3" json:"retry_policy_typed_config,omitempty"`
   452  	// Indicates the hedge policy for all routes in this virtual host. Note that setting a
   453  	// route level entry will take precedence over this config and it'll be treated
   454  	// independently (e.g.: values are not inherited).
   455  	HedgePolicy *HedgePolicy `protobuf:"bytes,17,opt,name=hedge_policy,json=hedgePolicy,proto3" json:"hedge_policy,omitempty"`
   456  	// The maximum bytes which will be buffered for retries and shadowing.
   457  	// If set and a route-specific limit is not set, the bytes actually buffered will be the minimum
   458  	// value of this and the listener per_connection_buffer_limit_bytes.
   459  	PerRequestBufferLimitBytes *wrappers.UInt32Value `protobuf:"bytes,18,opt,name=per_request_buffer_limit_bytes,json=perRequestBufferLimitBytes,proto3" json:"per_request_buffer_limit_bytes,omitempty"`
   460  	// Deprecated: Do not use.
   461  	HiddenEnvoyDeprecatedPerFilterConfig map[string]*_struct.Struct `protobuf:"bytes,12,rep,name=hidden_envoy_deprecated_per_filter_config,json=hiddenEnvoyDeprecatedPerFilterConfig,proto3" json:"hidden_envoy_deprecated_per_filter_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   462  }
   463  
   464  func (x *VirtualHost) Reset() {
   465  	*x = VirtualHost{}
   466  	if protoimpl.UnsafeEnabled {
   467  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[0]
   468  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   469  		ms.StoreMessageInfo(mi)
   470  	}
   471  }
   472  
   473  func (x *VirtualHost) String() string {
   474  	return protoimpl.X.MessageStringOf(x)
   475  }
   476  
   477  func (*VirtualHost) ProtoMessage() {}
   478  
   479  func (x *VirtualHost) ProtoReflect() protoreflect.Message {
   480  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[0]
   481  	if protoimpl.UnsafeEnabled && x != nil {
   482  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   483  		if ms.LoadMessageInfo() == nil {
   484  			ms.StoreMessageInfo(mi)
   485  		}
   486  		return ms
   487  	}
   488  	return mi.MessageOf(x)
   489  }
   490  
   491  // Deprecated: Use VirtualHost.ProtoReflect.Descriptor instead.
   492  func (*VirtualHost) Descriptor() ([]byte, []int) {
   493  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{0}
   494  }
   495  
   496  func (x *VirtualHost) GetName() string {
   497  	if x != nil {
   498  		return x.Name
   499  	}
   500  	return ""
   501  }
   502  
   503  func (x *VirtualHost) GetDomains() []string {
   504  	if x != nil {
   505  		return x.Domains
   506  	}
   507  	return nil
   508  }
   509  
   510  func (x *VirtualHost) GetRoutes() []*Route {
   511  	if x != nil {
   512  		return x.Routes
   513  	}
   514  	return nil
   515  }
   516  
   517  func (x *VirtualHost) GetRequireTls() VirtualHost_TlsRequirementType {
   518  	if x != nil {
   519  		return x.RequireTls
   520  	}
   521  	return VirtualHost_NONE
   522  }
   523  
   524  func (x *VirtualHost) GetVirtualClusters() []*VirtualCluster {
   525  	if x != nil {
   526  		return x.VirtualClusters
   527  	}
   528  	return nil
   529  }
   530  
   531  func (x *VirtualHost) GetRateLimits() []*RateLimit {
   532  	if x != nil {
   533  		return x.RateLimits
   534  	}
   535  	return nil
   536  }
   537  
   538  func (x *VirtualHost) GetRequestHeadersToAdd() []*v3.HeaderValueOption {
   539  	if x != nil {
   540  		return x.RequestHeadersToAdd
   541  	}
   542  	return nil
   543  }
   544  
   545  func (x *VirtualHost) GetRequestHeadersToRemove() []string {
   546  	if x != nil {
   547  		return x.RequestHeadersToRemove
   548  	}
   549  	return nil
   550  }
   551  
   552  func (x *VirtualHost) GetResponseHeadersToAdd() []*v3.HeaderValueOption {
   553  	if x != nil {
   554  		return x.ResponseHeadersToAdd
   555  	}
   556  	return nil
   557  }
   558  
   559  func (x *VirtualHost) GetResponseHeadersToRemove() []string {
   560  	if x != nil {
   561  		return x.ResponseHeadersToRemove
   562  	}
   563  	return nil
   564  }
   565  
   566  func (x *VirtualHost) GetCors() *CorsPolicy {
   567  	if x != nil {
   568  		return x.Cors
   569  	}
   570  	return nil
   571  }
   572  
   573  func (x *VirtualHost) GetTypedPerFilterConfig() map[string]*any.Any {
   574  	if x != nil {
   575  		return x.TypedPerFilterConfig
   576  	}
   577  	return nil
   578  }
   579  
   580  func (x *VirtualHost) GetIncludeRequestAttemptCount() bool {
   581  	if x != nil {
   582  		return x.IncludeRequestAttemptCount
   583  	}
   584  	return false
   585  }
   586  
   587  func (x *VirtualHost) GetIncludeAttemptCountInResponse() bool {
   588  	if x != nil {
   589  		return x.IncludeAttemptCountInResponse
   590  	}
   591  	return false
   592  }
   593  
   594  func (x *VirtualHost) GetRetryPolicy() *RetryPolicy {
   595  	if x != nil {
   596  		return x.RetryPolicy
   597  	}
   598  	return nil
   599  }
   600  
   601  func (x *VirtualHost) GetRetryPolicyTypedConfig() *any.Any {
   602  	if x != nil {
   603  		return x.RetryPolicyTypedConfig
   604  	}
   605  	return nil
   606  }
   607  
   608  func (x *VirtualHost) GetHedgePolicy() *HedgePolicy {
   609  	if x != nil {
   610  		return x.HedgePolicy
   611  	}
   612  	return nil
   613  }
   614  
   615  func (x *VirtualHost) GetPerRequestBufferLimitBytes() *wrappers.UInt32Value {
   616  	if x != nil {
   617  		return x.PerRequestBufferLimitBytes
   618  	}
   619  	return nil
   620  }
   621  
   622  // Deprecated: Do not use.
   623  func (x *VirtualHost) GetHiddenEnvoyDeprecatedPerFilterConfig() map[string]*_struct.Struct {
   624  	if x != nil {
   625  		return x.HiddenEnvoyDeprecatedPerFilterConfig
   626  	}
   627  	return nil
   628  }
   629  
   630  // A filter-defined action type.
   631  type FilterAction struct {
   632  	state         protoimpl.MessageState
   633  	sizeCache     protoimpl.SizeCache
   634  	unknownFields protoimpl.UnknownFields
   635  
   636  	Action *any.Any `protobuf:"bytes,1,opt,name=action,proto3" json:"action,omitempty"`
   637  }
   638  
   639  func (x *FilterAction) Reset() {
   640  	*x = FilterAction{}
   641  	if protoimpl.UnsafeEnabled {
   642  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[1]
   643  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   644  		ms.StoreMessageInfo(mi)
   645  	}
   646  }
   647  
   648  func (x *FilterAction) String() string {
   649  	return protoimpl.X.MessageStringOf(x)
   650  }
   651  
   652  func (*FilterAction) ProtoMessage() {}
   653  
   654  func (x *FilterAction) ProtoReflect() protoreflect.Message {
   655  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[1]
   656  	if protoimpl.UnsafeEnabled && x != nil {
   657  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   658  		if ms.LoadMessageInfo() == nil {
   659  			ms.StoreMessageInfo(mi)
   660  		}
   661  		return ms
   662  	}
   663  	return mi.MessageOf(x)
   664  }
   665  
   666  // Deprecated: Use FilterAction.ProtoReflect.Descriptor instead.
   667  func (*FilterAction) Descriptor() ([]byte, []int) {
   668  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{1}
   669  }
   670  
   671  func (x *FilterAction) GetAction() *any.Any {
   672  	if x != nil {
   673  		return x.Action
   674  	}
   675  	return nil
   676  }
   677  
   678  // A route is both a specification of how to match a request as well as an indication of what to do
   679  // next (e.g., redirect, forward, rewrite, etc.).
   680  //
   681  // .. attention::
   682  //
   683  //   Envoy supports routing on HTTP method via :ref:`header matching
   684  //   <envoy_v3_api_msg_config.route.v3.HeaderMatcher>`.
   685  // [#next-free-field: 19]
   686  type Route struct {
   687  	state         protoimpl.MessageState
   688  	sizeCache     protoimpl.SizeCache
   689  	unknownFields protoimpl.UnknownFields
   690  
   691  	// Name for the route.
   692  	Name string `protobuf:"bytes,14,opt,name=name,proto3" json:"name,omitempty"`
   693  	// Route matching parameters.
   694  	Match *RouteMatch `protobuf:"bytes,1,opt,name=match,proto3" json:"match,omitempty"`
   695  	// Types that are assignable to Action:
   696  	//	*Route_Route
   697  	//	*Route_Redirect
   698  	//	*Route_DirectResponse
   699  	//	*Route_FilterAction
   700  	//	*Route_NonForwardingAction
   701  	Action isRoute_Action `protobuf_oneof:"action"`
   702  	// The Metadata field can be used to provide additional information
   703  	// about the route. It can be used for configuration, stats, and logging.
   704  	// The metadata should go under the filter namespace that will need it.
   705  	// For instance, if the metadata is intended for the Router filter,
   706  	// the filter name should be specified as *envoy.filters.http.router*.
   707  	Metadata *v3.Metadata `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"`
   708  	// Decorator for the matched route.
   709  	Decorator *Decorator `protobuf:"bytes,5,opt,name=decorator,proto3" json:"decorator,omitempty"`
   710  	// The typed_per_filter_config field can be used to provide route-specific
   711  	// configurations for filters. The key should match the filter name, such as
   712  	// *envoy.filters.http.buffer* for the HTTP buffer filter. Use of this field is filter
   713  	// specific; see the :ref:`HTTP filter documentation <config_http_filters>` for
   714  	// if and how it is utilized.
   715  	// [#comment: An entry's value may be wrapped in a
   716  	// :ref:`FilterConfig<envoy_v3_api_msg_config.route.v3.FilterConfig>`
   717  	// message to specify additional options.]
   718  	TypedPerFilterConfig map[string]*any.Any `protobuf:"bytes,13,rep,name=typed_per_filter_config,json=typedPerFilterConfig,proto3" json:"typed_per_filter_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   719  	// Specifies a set of headers that will be added to requests matching this
   720  	// route. Headers specified at this level are applied before headers from the
   721  	// enclosing :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost` and
   722  	// :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration`. For more information, including details on
   723  	// header value syntax, see the documentation on :ref:`custom request headers
   724  	// <config_http_conn_man_headers_custom_request_headers>`.
   725  	RequestHeadersToAdd []*v3.HeaderValueOption `protobuf:"bytes,9,rep,name=request_headers_to_add,json=requestHeadersToAdd,proto3" json:"request_headers_to_add,omitempty"`
   726  	// Specifies a list of HTTP headers that should be removed from each request
   727  	// matching this route.
   728  	RequestHeadersToRemove []string `protobuf:"bytes,12,rep,name=request_headers_to_remove,json=requestHeadersToRemove,proto3" json:"request_headers_to_remove,omitempty"`
   729  	// Specifies a set of headers that will be added to responses to requests
   730  	// matching this route. Headers specified at this level are applied before
   731  	// headers from the enclosing :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost` and
   732  	// :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration`. For more information, including
   733  	// details on header value syntax, see the documentation on
   734  	// :ref:`custom request headers <config_http_conn_man_headers_custom_request_headers>`.
   735  	ResponseHeadersToAdd []*v3.HeaderValueOption `protobuf:"bytes,10,rep,name=response_headers_to_add,json=responseHeadersToAdd,proto3" json:"response_headers_to_add,omitempty"`
   736  	// Specifies a list of HTTP headers that should be removed from each response
   737  	// to requests matching this route.
   738  	ResponseHeadersToRemove []string `protobuf:"bytes,11,rep,name=response_headers_to_remove,json=responseHeadersToRemove,proto3" json:"response_headers_to_remove,omitempty"`
   739  	// Presence of the object defines whether the connection manager's tracing configuration
   740  	// is overridden by this route specific instance.
   741  	Tracing *Tracing `protobuf:"bytes,15,opt,name=tracing,proto3" json:"tracing,omitempty"`
   742  	// The maximum bytes which will be buffered for retries and shadowing.
   743  	// If set, the bytes actually buffered will be the minimum value of this and the
   744  	// listener per_connection_buffer_limit_bytes.
   745  	PerRequestBufferLimitBytes *wrappers.UInt32Value `protobuf:"bytes,16,opt,name=per_request_buffer_limit_bytes,json=perRequestBufferLimitBytes,proto3" json:"per_request_buffer_limit_bytes,omitempty"`
   746  	// Deprecated: Do not use.
   747  	HiddenEnvoyDeprecatedPerFilterConfig map[string]*_struct.Struct `protobuf:"bytes,8,rep,name=hidden_envoy_deprecated_per_filter_config,json=hiddenEnvoyDeprecatedPerFilterConfig,proto3" json:"hidden_envoy_deprecated_per_filter_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   748  }
   749  
   750  func (x *Route) Reset() {
   751  	*x = Route{}
   752  	if protoimpl.UnsafeEnabled {
   753  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[2]
   754  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   755  		ms.StoreMessageInfo(mi)
   756  	}
   757  }
   758  
   759  func (x *Route) String() string {
   760  	return protoimpl.X.MessageStringOf(x)
   761  }
   762  
   763  func (*Route) ProtoMessage() {}
   764  
   765  func (x *Route) ProtoReflect() protoreflect.Message {
   766  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[2]
   767  	if protoimpl.UnsafeEnabled && x != nil {
   768  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   769  		if ms.LoadMessageInfo() == nil {
   770  			ms.StoreMessageInfo(mi)
   771  		}
   772  		return ms
   773  	}
   774  	return mi.MessageOf(x)
   775  }
   776  
   777  // Deprecated: Use Route.ProtoReflect.Descriptor instead.
   778  func (*Route) Descriptor() ([]byte, []int) {
   779  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{2}
   780  }
   781  
   782  func (x *Route) GetName() string {
   783  	if x != nil {
   784  		return x.Name
   785  	}
   786  	return ""
   787  }
   788  
   789  func (x *Route) GetMatch() *RouteMatch {
   790  	if x != nil {
   791  		return x.Match
   792  	}
   793  	return nil
   794  }
   795  
   796  func (m *Route) GetAction() isRoute_Action {
   797  	if m != nil {
   798  		return m.Action
   799  	}
   800  	return nil
   801  }
   802  
   803  func (x *Route) GetRoute() *RouteAction {
   804  	if x, ok := x.GetAction().(*Route_Route); ok {
   805  		return x.Route
   806  	}
   807  	return nil
   808  }
   809  
   810  func (x *Route) GetRedirect() *RedirectAction {
   811  	if x, ok := x.GetAction().(*Route_Redirect); ok {
   812  		return x.Redirect
   813  	}
   814  	return nil
   815  }
   816  
   817  func (x *Route) GetDirectResponse() *DirectResponseAction {
   818  	if x, ok := x.GetAction().(*Route_DirectResponse); ok {
   819  		return x.DirectResponse
   820  	}
   821  	return nil
   822  }
   823  
   824  func (x *Route) GetFilterAction() *FilterAction {
   825  	if x, ok := x.GetAction().(*Route_FilterAction); ok {
   826  		return x.FilterAction
   827  	}
   828  	return nil
   829  }
   830  
   831  func (x *Route) GetNonForwardingAction() *NonForwardingAction {
   832  	if x, ok := x.GetAction().(*Route_NonForwardingAction); ok {
   833  		return x.NonForwardingAction
   834  	}
   835  	return nil
   836  }
   837  
   838  func (x *Route) GetMetadata() *v3.Metadata {
   839  	if x != nil {
   840  		return x.Metadata
   841  	}
   842  	return nil
   843  }
   844  
   845  func (x *Route) GetDecorator() *Decorator {
   846  	if x != nil {
   847  		return x.Decorator
   848  	}
   849  	return nil
   850  }
   851  
   852  func (x *Route) GetTypedPerFilterConfig() map[string]*any.Any {
   853  	if x != nil {
   854  		return x.TypedPerFilterConfig
   855  	}
   856  	return nil
   857  }
   858  
   859  func (x *Route) GetRequestHeadersToAdd() []*v3.HeaderValueOption {
   860  	if x != nil {
   861  		return x.RequestHeadersToAdd
   862  	}
   863  	return nil
   864  }
   865  
   866  func (x *Route) GetRequestHeadersToRemove() []string {
   867  	if x != nil {
   868  		return x.RequestHeadersToRemove
   869  	}
   870  	return nil
   871  }
   872  
   873  func (x *Route) GetResponseHeadersToAdd() []*v3.HeaderValueOption {
   874  	if x != nil {
   875  		return x.ResponseHeadersToAdd
   876  	}
   877  	return nil
   878  }
   879  
   880  func (x *Route) GetResponseHeadersToRemove() []string {
   881  	if x != nil {
   882  		return x.ResponseHeadersToRemove
   883  	}
   884  	return nil
   885  }
   886  
   887  func (x *Route) GetTracing() *Tracing {
   888  	if x != nil {
   889  		return x.Tracing
   890  	}
   891  	return nil
   892  }
   893  
   894  func (x *Route) GetPerRequestBufferLimitBytes() *wrappers.UInt32Value {
   895  	if x != nil {
   896  		return x.PerRequestBufferLimitBytes
   897  	}
   898  	return nil
   899  }
   900  
   901  // Deprecated: Do not use.
   902  func (x *Route) GetHiddenEnvoyDeprecatedPerFilterConfig() map[string]*_struct.Struct {
   903  	if x != nil {
   904  		return x.HiddenEnvoyDeprecatedPerFilterConfig
   905  	}
   906  	return nil
   907  }
   908  
   909  type isRoute_Action interface {
   910  	isRoute_Action()
   911  }
   912  
   913  type Route_Route struct {
   914  	// Route request to some upstream cluster.
   915  	Route *RouteAction `protobuf:"bytes,2,opt,name=route,proto3,oneof"`
   916  }
   917  
   918  type Route_Redirect struct {
   919  	// Return a redirect.
   920  	Redirect *RedirectAction `protobuf:"bytes,3,opt,name=redirect,proto3,oneof"`
   921  }
   922  
   923  type Route_DirectResponse struct {
   924  	// Return an arbitrary HTTP response directly, without proxying.
   925  	DirectResponse *DirectResponseAction `protobuf:"bytes,7,opt,name=direct_response,json=directResponse,proto3,oneof"`
   926  }
   927  
   928  type Route_FilterAction struct {
   929  	// [#not-implemented-hide:]
   930  	// A filter-defined action (e.g., it could dynamically generate the RouteAction).
   931  	// [#comment: TODO(samflattery): Remove cleanup in route_fuzz_test.cc when
   932  	// implemented]
   933  	FilterAction *FilterAction `protobuf:"bytes,17,opt,name=filter_action,json=filterAction,proto3,oneof"`
   934  }
   935  
   936  type Route_NonForwardingAction struct {
   937  	// [#not-implemented-hide:]
   938  	// An action used when the route will generate a response directly,
   939  	// without forwarding to an upstream host. This will be used in non-proxy
   940  	// xDS clients like the gRPC server. It could also be used in the future
   941  	// in Envoy for a filter that directly generates responses for requests.
   942  	NonForwardingAction *NonForwardingAction `protobuf:"bytes,18,opt,name=non_forwarding_action,json=nonForwardingAction,proto3,oneof"`
   943  }
   944  
   945  func (*Route_Route) isRoute_Action() {}
   946  
   947  func (*Route_Redirect) isRoute_Action() {}
   948  
   949  func (*Route_DirectResponse) isRoute_Action() {}
   950  
   951  func (*Route_FilterAction) isRoute_Action() {}
   952  
   953  func (*Route_NonForwardingAction) isRoute_Action() {}
   954  
   955  // Compared to the :ref:`cluster <envoy_v3_api_field_config.route.v3.RouteAction.cluster>` field that specifies a
   956  // single upstream cluster as the target of a request, the :ref:`weighted_clusters
   957  // <envoy_v3_api_field_config.route.v3.RouteAction.weighted_clusters>` option allows for specification of
   958  // multiple upstream clusters along with weights that indicate the percentage of
   959  // traffic to be forwarded to each cluster. The router selects an upstream cluster based on the
   960  // weights.
   961  type WeightedCluster struct {
   962  	state         protoimpl.MessageState
   963  	sizeCache     protoimpl.SizeCache
   964  	unknownFields protoimpl.UnknownFields
   965  
   966  	// Specifies one or more upstream clusters associated with the route.
   967  	Clusters []*WeightedCluster_ClusterWeight `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"`
   968  	// Specifies the total weight across all clusters. The sum of all cluster weights must equal this
   969  	// value, which must be greater than 0. Defaults to 100.
   970  	TotalWeight *wrappers.UInt32Value `protobuf:"bytes,3,opt,name=total_weight,json=totalWeight,proto3" json:"total_weight,omitempty"`
   971  	// Specifies the runtime key prefix that should be used to construct the
   972  	// runtime keys associated with each cluster. When the *runtime_key_prefix* is
   973  	// specified, the router will look for weights associated with each upstream
   974  	// cluster under the key *runtime_key_prefix* + "." + *cluster[i].name* where
   975  	// *cluster[i]* denotes an entry in the clusters array field. If the runtime
   976  	// key for the cluster does not exist, the value specified in the
   977  	// configuration file will be used as the default weight. See the :ref:`runtime documentation
   978  	// <operations_runtime>` for how key names map to the underlying implementation.
   979  	RuntimeKeyPrefix string `protobuf:"bytes,2,opt,name=runtime_key_prefix,json=runtimeKeyPrefix,proto3" json:"runtime_key_prefix,omitempty"`
   980  }
   981  
   982  func (x *WeightedCluster) Reset() {
   983  	*x = WeightedCluster{}
   984  	if protoimpl.UnsafeEnabled {
   985  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[3]
   986  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   987  		ms.StoreMessageInfo(mi)
   988  	}
   989  }
   990  
   991  func (x *WeightedCluster) String() string {
   992  	return protoimpl.X.MessageStringOf(x)
   993  }
   994  
   995  func (*WeightedCluster) ProtoMessage() {}
   996  
   997  func (x *WeightedCluster) ProtoReflect() protoreflect.Message {
   998  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[3]
   999  	if protoimpl.UnsafeEnabled && x != nil {
  1000  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1001  		if ms.LoadMessageInfo() == nil {
  1002  			ms.StoreMessageInfo(mi)
  1003  		}
  1004  		return ms
  1005  	}
  1006  	return mi.MessageOf(x)
  1007  }
  1008  
  1009  // Deprecated: Use WeightedCluster.ProtoReflect.Descriptor instead.
  1010  func (*WeightedCluster) Descriptor() ([]byte, []int) {
  1011  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{3}
  1012  }
  1013  
  1014  func (x *WeightedCluster) GetClusters() []*WeightedCluster_ClusterWeight {
  1015  	if x != nil {
  1016  		return x.Clusters
  1017  	}
  1018  	return nil
  1019  }
  1020  
  1021  func (x *WeightedCluster) GetTotalWeight() *wrappers.UInt32Value {
  1022  	if x != nil {
  1023  		return x.TotalWeight
  1024  	}
  1025  	return nil
  1026  }
  1027  
  1028  func (x *WeightedCluster) GetRuntimeKeyPrefix() string {
  1029  	if x != nil {
  1030  		return x.RuntimeKeyPrefix
  1031  	}
  1032  	return ""
  1033  }
  1034  
  1035  // [#next-free-field: 14]
  1036  type RouteMatch struct {
  1037  	state         protoimpl.MessageState
  1038  	sizeCache     protoimpl.SizeCache
  1039  	unknownFields protoimpl.UnknownFields
  1040  
  1041  	// Types that are assignable to PathSpecifier:
  1042  	//	*RouteMatch_Prefix
  1043  	//	*RouteMatch_Path
  1044  	//	*RouteMatch_SafeRegex
  1045  	//	*RouteMatch_ConnectMatcher_
  1046  	//	*RouteMatch_HiddenEnvoyDeprecatedRegex
  1047  	PathSpecifier isRouteMatch_PathSpecifier `protobuf_oneof:"path_specifier"`
  1048  	// Indicates that prefix/path matching should be case sensitive. The default
  1049  	// is true. Ignored for safe_regex matching.
  1050  	CaseSensitive *wrappers.BoolValue `protobuf:"bytes,4,opt,name=case_sensitive,json=caseSensitive,proto3" json:"case_sensitive,omitempty"`
  1051  	// Indicates that the route should additionally match on a runtime key. Every time the route
  1052  	// is considered for a match, it must also fall under the percentage of matches indicated by
  1053  	// this field. For some fraction N/D, a random number in the range [0,D) is selected. If the
  1054  	// number is <= the value of the numerator N, or if the key is not present, the default
  1055  	// value, the router continues to evaluate the remaining match criteria. A runtime_fraction
  1056  	// route configuration can be used to roll out route changes in a gradual manner without full
  1057  	// code/config deploys. Refer to the :ref:`traffic shifting
  1058  	// <config_http_conn_man_route_table_traffic_splitting_shift>` docs for additional documentation.
  1059  	//
  1060  	// .. note::
  1061  	//
  1062  	//    Parsing this field is implemented such that the runtime key's data may be represented
  1063  	//    as a FractionalPercent proto represented as JSON/YAML and may also be represented as an
  1064  	//    integer with the assumption that the value is an integral percentage out of 100. For
  1065  	//    instance, a runtime key lookup returning the value "42" would parse as a FractionalPercent
  1066  	//    whose numerator is 42 and denominator is HUNDRED. This preserves legacy semantics.
  1067  	RuntimeFraction *v3.RuntimeFractionalPercent `protobuf:"bytes,9,opt,name=runtime_fraction,json=runtimeFraction,proto3" json:"runtime_fraction,omitempty"`
  1068  	// Specifies a set of headers that the route should match on. The router will
  1069  	// check the request’s headers against all the specified headers in the route
  1070  	// config. A match will happen if all the headers in the route are present in
  1071  	// the request with the same values (or based on presence if the value field
  1072  	// is not in the config).
  1073  	Headers []*HeaderMatcher `protobuf:"bytes,6,rep,name=headers,proto3" json:"headers,omitempty"`
  1074  	// Specifies a set of URL query parameters on which the route should
  1075  	// match. The router will check the query string from the *path* header
  1076  	// against all the specified query parameters. If the number of specified
  1077  	// query parameters is nonzero, they all must match the *path* header's
  1078  	// query string for a match to occur.
  1079  	QueryParameters []*QueryParameterMatcher `protobuf:"bytes,7,rep,name=query_parameters,json=queryParameters,proto3" json:"query_parameters,omitempty"`
  1080  	// If specified, only gRPC requests will be matched. The router will check
  1081  	// that the content-type header has a application/grpc or one of the various
  1082  	// application/grpc+ values.
  1083  	Grpc *RouteMatch_GrpcRouteMatchOptions `protobuf:"bytes,8,opt,name=grpc,proto3" json:"grpc,omitempty"`
  1084  	// If specified, the client tls context will be matched against the defined
  1085  	// match options.
  1086  	//
  1087  	// [#next-major-version: unify with RBAC]
  1088  	TlsContext *RouteMatch_TlsContextMatchOptions `protobuf:"bytes,11,opt,name=tls_context,json=tlsContext,proto3" json:"tls_context,omitempty"`
  1089  	// Specifies a set of dynamic metadata matchers on which the route should match.
  1090  	// The router will check the dynamic metadata against all the specified dynamic metadata matchers.
  1091  	// If the number of specified dynamic metadata matchers is nonzero, they all must match the
  1092  	// dynamic metadata for a match to occur.
  1093  	DynamicMetadata []*v31.MetadataMatcher `protobuf:"bytes,13,rep,name=dynamic_metadata,json=dynamicMetadata,proto3" json:"dynamic_metadata,omitempty"`
  1094  }
  1095  
  1096  func (x *RouteMatch) Reset() {
  1097  	*x = RouteMatch{}
  1098  	if protoimpl.UnsafeEnabled {
  1099  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[4]
  1100  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1101  		ms.StoreMessageInfo(mi)
  1102  	}
  1103  }
  1104  
  1105  func (x *RouteMatch) String() string {
  1106  	return protoimpl.X.MessageStringOf(x)
  1107  }
  1108  
  1109  func (*RouteMatch) ProtoMessage() {}
  1110  
  1111  func (x *RouteMatch) ProtoReflect() protoreflect.Message {
  1112  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[4]
  1113  	if protoimpl.UnsafeEnabled && x != nil {
  1114  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1115  		if ms.LoadMessageInfo() == nil {
  1116  			ms.StoreMessageInfo(mi)
  1117  		}
  1118  		return ms
  1119  	}
  1120  	return mi.MessageOf(x)
  1121  }
  1122  
  1123  // Deprecated: Use RouteMatch.ProtoReflect.Descriptor instead.
  1124  func (*RouteMatch) Descriptor() ([]byte, []int) {
  1125  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{4}
  1126  }
  1127  
  1128  func (m *RouteMatch) GetPathSpecifier() isRouteMatch_PathSpecifier {
  1129  	if m != nil {
  1130  		return m.PathSpecifier
  1131  	}
  1132  	return nil
  1133  }
  1134  
  1135  func (x *RouteMatch) GetPrefix() string {
  1136  	if x, ok := x.GetPathSpecifier().(*RouteMatch_Prefix); ok {
  1137  		return x.Prefix
  1138  	}
  1139  	return ""
  1140  }
  1141  
  1142  func (x *RouteMatch) GetPath() string {
  1143  	if x, ok := x.GetPathSpecifier().(*RouteMatch_Path); ok {
  1144  		return x.Path
  1145  	}
  1146  	return ""
  1147  }
  1148  
  1149  func (x *RouteMatch) GetSafeRegex() *v31.RegexMatcher {
  1150  	if x, ok := x.GetPathSpecifier().(*RouteMatch_SafeRegex); ok {
  1151  		return x.SafeRegex
  1152  	}
  1153  	return nil
  1154  }
  1155  
  1156  func (x *RouteMatch) GetConnectMatcher() *RouteMatch_ConnectMatcher {
  1157  	if x, ok := x.GetPathSpecifier().(*RouteMatch_ConnectMatcher_); ok {
  1158  		return x.ConnectMatcher
  1159  	}
  1160  	return nil
  1161  }
  1162  
  1163  // Deprecated: Do not use.
  1164  func (x *RouteMatch) GetHiddenEnvoyDeprecatedRegex() string {
  1165  	if x, ok := x.GetPathSpecifier().(*RouteMatch_HiddenEnvoyDeprecatedRegex); ok {
  1166  		return x.HiddenEnvoyDeprecatedRegex
  1167  	}
  1168  	return ""
  1169  }
  1170  
  1171  func (x *RouteMatch) GetCaseSensitive() *wrappers.BoolValue {
  1172  	if x != nil {
  1173  		return x.CaseSensitive
  1174  	}
  1175  	return nil
  1176  }
  1177  
  1178  func (x *RouteMatch) GetRuntimeFraction() *v3.RuntimeFractionalPercent {
  1179  	if x != nil {
  1180  		return x.RuntimeFraction
  1181  	}
  1182  	return nil
  1183  }
  1184  
  1185  func (x *RouteMatch) GetHeaders() []*HeaderMatcher {
  1186  	if x != nil {
  1187  		return x.Headers
  1188  	}
  1189  	return nil
  1190  }
  1191  
  1192  func (x *RouteMatch) GetQueryParameters() []*QueryParameterMatcher {
  1193  	if x != nil {
  1194  		return x.QueryParameters
  1195  	}
  1196  	return nil
  1197  }
  1198  
  1199  func (x *RouteMatch) GetGrpc() *RouteMatch_GrpcRouteMatchOptions {
  1200  	if x != nil {
  1201  		return x.Grpc
  1202  	}
  1203  	return nil
  1204  }
  1205  
  1206  func (x *RouteMatch) GetTlsContext() *RouteMatch_TlsContextMatchOptions {
  1207  	if x != nil {
  1208  		return x.TlsContext
  1209  	}
  1210  	return nil
  1211  }
  1212  
  1213  func (x *RouteMatch) GetDynamicMetadata() []*v31.MetadataMatcher {
  1214  	if x != nil {
  1215  		return x.DynamicMetadata
  1216  	}
  1217  	return nil
  1218  }
  1219  
  1220  type isRouteMatch_PathSpecifier interface {
  1221  	isRouteMatch_PathSpecifier()
  1222  }
  1223  
  1224  type RouteMatch_Prefix struct {
  1225  	// If specified, the route is a prefix rule meaning that the prefix must
  1226  	// match the beginning of the *:path* header.
  1227  	Prefix string `protobuf:"bytes,1,opt,name=prefix,proto3,oneof"`
  1228  }
  1229  
  1230  type RouteMatch_Path struct {
  1231  	// If specified, the route is an exact path rule meaning that the path must
  1232  	// exactly match the *:path* header once the query string is removed.
  1233  	Path string `protobuf:"bytes,2,opt,name=path,proto3,oneof"`
  1234  }
  1235  
  1236  type RouteMatch_SafeRegex struct {
  1237  	// If specified, the route is a regular expression rule meaning that the
  1238  	// regex must match the *:path* header once the query string is removed. The entire path
  1239  	// (without the query string) must match the regex. The rule will not match if only a
  1240  	// subsequence of the *:path* header matches the regex.
  1241  	//
  1242  	// [#next-major-version: In the v3 API we should redo how path specification works such
  1243  	// that we utilize StringMatcher, and additionally have consistent options around whether we
  1244  	// strip query strings, do a case sensitive match, etc. In the interim it will be too disruptive
  1245  	// to deprecate the existing options. We should even consider whether we want to do away with
  1246  	// path_specifier entirely and just rely on a set of header matchers which can already match
  1247  	// on :path, etc. The issue with that is it is unclear how to generically deal with query string
  1248  	// stripping. This needs more thought.]
  1249  	SafeRegex *v31.RegexMatcher `protobuf:"bytes,10,opt,name=safe_regex,json=safeRegex,proto3,oneof"`
  1250  }
  1251  
  1252  type RouteMatch_ConnectMatcher_ struct {
  1253  	// If this is used as the matcher, the matcher will only match CONNECT requests.
  1254  	// Note that this will not match HTTP/2 upgrade-style CONNECT requests
  1255  	// (WebSocket and the like) as they are normalized in Envoy as HTTP/1.1 style
  1256  	// upgrades.
  1257  	// This is the only way to match CONNECT requests for HTTP/1.1. For HTTP/2,
  1258  	// where Extended CONNECT requests may have a path, the path matchers will work if
  1259  	// there is a path present.
  1260  	// Note that CONNECT support is currently considered alpha in Envoy.
  1261  	// [#comment: TODO(htuch): Replace the above comment with an alpha tag.]
  1262  	ConnectMatcher *RouteMatch_ConnectMatcher `protobuf:"bytes,12,opt,name=connect_matcher,json=connectMatcher,proto3,oneof"`
  1263  }
  1264  
  1265  type RouteMatch_HiddenEnvoyDeprecatedRegex struct {
  1266  	// Deprecated: Do not use.
  1267  	HiddenEnvoyDeprecatedRegex string `protobuf:"bytes,3,opt,name=hidden_envoy_deprecated_regex,json=hiddenEnvoyDeprecatedRegex,proto3,oneof"`
  1268  }
  1269  
  1270  func (*RouteMatch_Prefix) isRouteMatch_PathSpecifier() {}
  1271  
  1272  func (*RouteMatch_Path) isRouteMatch_PathSpecifier() {}
  1273  
  1274  func (*RouteMatch_SafeRegex) isRouteMatch_PathSpecifier() {}
  1275  
  1276  func (*RouteMatch_ConnectMatcher_) isRouteMatch_PathSpecifier() {}
  1277  
  1278  func (*RouteMatch_HiddenEnvoyDeprecatedRegex) isRouteMatch_PathSpecifier() {}
  1279  
  1280  // [#next-free-field: 12]
  1281  type CorsPolicy struct {
  1282  	state         protoimpl.MessageState
  1283  	sizeCache     protoimpl.SizeCache
  1284  	unknownFields protoimpl.UnknownFields
  1285  
  1286  	// Specifies string patterns that match allowed origins. An origin is allowed if any of the
  1287  	// string matchers match.
  1288  	AllowOriginStringMatch []*v31.StringMatcher `protobuf:"bytes,11,rep,name=allow_origin_string_match,json=allowOriginStringMatch,proto3" json:"allow_origin_string_match,omitempty"`
  1289  	// Specifies the content for the *access-control-allow-methods* header.
  1290  	AllowMethods string `protobuf:"bytes,2,opt,name=allow_methods,json=allowMethods,proto3" json:"allow_methods,omitempty"`
  1291  	// Specifies the content for the *access-control-allow-headers* header.
  1292  	AllowHeaders string `protobuf:"bytes,3,opt,name=allow_headers,json=allowHeaders,proto3" json:"allow_headers,omitempty"`
  1293  	// Specifies the content for the *access-control-expose-headers* header.
  1294  	ExposeHeaders string `protobuf:"bytes,4,opt,name=expose_headers,json=exposeHeaders,proto3" json:"expose_headers,omitempty"`
  1295  	// Specifies the content for the *access-control-max-age* header.
  1296  	MaxAge string `protobuf:"bytes,5,opt,name=max_age,json=maxAge,proto3" json:"max_age,omitempty"`
  1297  	// Specifies whether the resource allows credentials.
  1298  	AllowCredentials *wrappers.BoolValue `protobuf:"bytes,6,opt,name=allow_credentials,json=allowCredentials,proto3" json:"allow_credentials,omitempty"`
  1299  	// Types that are assignable to EnabledSpecifier:
  1300  	//	*CorsPolicy_FilterEnabled
  1301  	//	*CorsPolicy_HiddenEnvoyDeprecatedEnabled
  1302  	EnabledSpecifier isCorsPolicy_EnabledSpecifier `protobuf_oneof:"enabled_specifier"`
  1303  	// Specifies the % of requests for which the CORS policies will be evaluated and tracked, but not
  1304  	// enforced.
  1305  	//
  1306  	// This field is intended to be used when ``filter_enabled`` and ``enabled`` are off. One of those
  1307  	// fields have to explicitly disable the filter in order for this setting to take effect.
  1308  	//
  1309  	// If :ref:`runtime_key <envoy_v3_api_field_config.core.v3.RuntimeFractionalPercent.runtime_key>` is specified,
  1310  	// Envoy will lookup the runtime key to get the percentage of requests for which it will evaluate
  1311  	// and track the request's *Origin* to determine if it's valid but will not enforce any policies.
  1312  	ShadowEnabled *v3.RuntimeFractionalPercent `protobuf:"bytes,10,opt,name=shadow_enabled,json=shadowEnabled,proto3" json:"shadow_enabled,omitempty"`
  1313  	// Deprecated: Do not use.
  1314  	HiddenEnvoyDeprecatedAllowOrigin []string `protobuf:"bytes,1,rep,name=hidden_envoy_deprecated_allow_origin,json=hiddenEnvoyDeprecatedAllowOrigin,proto3" json:"hidden_envoy_deprecated_allow_origin,omitempty"`
  1315  	// Deprecated: Do not use.
  1316  	HiddenEnvoyDeprecatedAllowOriginRegex []string `protobuf:"bytes,8,rep,name=hidden_envoy_deprecated_allow_origin_regex,json=hiddenEnvoyDeprecatedAllowOriginRegex,proto3" json:"hidden_envoy_deprecated_allow_origin_regex,omitempty"`
  1317  }
  1318  
  1319  func (x *CorsPolicy) Reset() {
  1320  	*x = CorsPolicy{}
  1321  	if protoimpl.UnsafeEnabled {
  1322  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[5]
  1323  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1324  		ms.StoreMessageInfo(mi)
  1325  	}
  1326  }
  1327  
  1328  func (x *CorsPolicy) String() string {
  1329  	return protoimpl.X.MessageStringOf(x)
  1330  }
  1331  
  1332  func (*CorsPolicy) ProtoMessage() {}
  1333  
  1334  func (x *CorsPolicy) ProtoReflect() protoreflect.Message {
  1335  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[5]
  1336  	if protoimpl.UnsafeEnabled && x != nil {
  1337  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1338  		if ms.LoadMessageInfo() == nil {
  1339  			ms.StoreMessageInfo(mi)
  1340  		}
  1341  		return ms
  1342  	}
  1343  	return mi.MessageOf(x)
  1344  }
  1345  
  1346  // Deprecated: Use CorsPolicy.ProtoReflect.Descriptor instead.
  1347  func (*CorsPolicy) Descriptor() ([]byte, []int) {
  1348  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{5}
  1349  }
  1350  
  1351  func (x *CorsPolicy) GetAllowOriginStringMatch() []*v31.StringMatcher {
  1352  	if x != nil {
  1353  		return x.AllowOriginStringMatch
  1354  	}
  1355  	return nil
  1356  }
  1357  
  1358  func (x *CorsPolicy) GetAllowMethods() string {
  1359  	if x != nil {
  1360  		return x.AllowMethods
  1361  	}
  1362  	return ""
  1363  }
  1364  
  1365  func (x *CorsPolicy) GetAllowHeaders() string {
  1366  	if x != nil {
  1367  		return x.AllowHeaders
  1368  	}
  1369  	return ""
  1370  }
  1371  
  1372  func (x *CorsPolicy) GetExposeHeaders() string {
  1373  	if x != nil {
  1374  		return x.ExposeHeaders
  1375  	}
  1376  	return ""
  1377  }
  1378  
  1379  func (x *CorsPolicy) GetMaxAge() string {
  1380  	if x != nil {
  1381  		return x.MaxAge
  1382  	}
  1383  	return ""
  1384  }
  1385  
  1386  func (x *CorsPolicy) GetAllowCredentials() *wrappers.BoolValue {
  1387  	if x != nil {
  1388  		return x.AllowCredentials
  1389  	}
  1390  	return nil
  1391  }
  1392  
  1393  func (m *CorsPolicy) GetEnabledSpecifier() isCorsPolicy_EnabledSpecifier {
  1394  	if m != nil {
  1395  		return m.EnabledSpecifier
  1396  	}
  1397  	return nil
  1398  }
  1399  
  1400  func (x *CorsPolicy) GetFilterEnabled() *v3.RuntimeFractionalPercent {
  1401  	if x, ok := x.GetEnabledSpecifier().(*CorsPolicy_FilterEnabled); ok {
  1402  		return x.FilterEnabled
  1403  	}
  1404  	return nil
  1405  }
  1406  
  1407  // Deprecated: Do not use.
  1408  func (x *CorsPolicy) GetHiddenEnvoyDeprecatedEnabled() *wrappers.BoolValue {
  1409  	if x, ok := x.GetEnabledSpecifier().(*CorsPolicy_HiddenEnvoyDeprecatedEnabled); ok {
  1410  		return x.HiddenEnvoyDeprecatedEnabled
  1411  	}
  1412  	return nil
  1413  }
  1414  
  1415  func (x *CorsPolicy) GetShadowEnabled() *v3.RuntimeFractionalPercent {
  1416  	if x != nil {
  1417  		return x.ShadowEnabled
  1418  	}
  1419  	return nil
  1420  }
  1421  
  1422  // Deprecated: Do not use.
  1423  func (x *CorsPolicy) GetHiddenEnvoyDeprecatedAllowOrigin() []string {
  1424  	if x != nil {
  1425  		return x.HiddenEnvoyDeprecatedAllowOrigin
  1426  	}
  1427  	return nil
  1428  }
  1429  
  1430  // Deprecated: Do not use.
  1431  func (x *CorsPolicy) GetHiddenEnvoyDeprecatedAllowOriginRegex() []string {
  1432  	if x != nil {
  1433  		return x.HiddenEnvoyDeprecatedAllowOriginRegex
  1434  	}
  1435  	return nil
  1436  }
  1437  
  1438  type isCorsPolicy_EnabledSpecifier interface {
  1439  	isCorsPolicy_EnabledSpecifier()
  1440  }
  1441  
  1442  type CorsPolicy_FilterEnabled struct {
  1443  	// Specifies the % of requests for which the CORS filter is enabled.
  1444  	//
  1445  	// If neither ``enabled``, ``filter_enabled``, nor ``shadow_enabled`` are specified, the CORS
  1446  	// filter will be enabled for 100% of the requests.
  1447  	//
  1448  	// If :ref:`runtime_key <envoy_v3_api_field_config.core.v3.RuntimeFractionalPercent.runtime_key>` is
  1449  	// specified, Envoy will lookup the runtime key to get the percentage of requests to filter.
  1450  	FilterEnabled *v3.RuntimeFractionalPercent `protobuf:"bytes,9,opt,name=filter_enabled,json=filterEnabled,proto3,oneof"`
  1451  }
  1452  
  1453  type CorsPolicy_HiddenEnvoyDeprecatedEnabled struct {
  1454  	// Deprecated: Do not use.
  1455  	HiddenEnvoyDeprecatedEnabled *wrappers.BoolValue `protobuf:"bytes,7,opt,name=hidden_envoy_deprecated_enabled,json=hiddenEnvoyDeprecatedEnabled,proto3,oneof"`
  1456  }
  1457  
  1458  func (*CorsPolicy_FilterEnabled) isCorsPolicy_EnabledSpecifier() {}
  1459  
  1460  func (*CorsPolicy_HiddenEnvoyDeprecatedEnabled) isCorsPolicy_EnabledSpecifier() {}
  1461  
  1462  // [#next-free-field: 38]
  1463  type RouteAction struct {
  1464  	state         protoimpl.MessageState
  1465  	sizeCache     protoimpl.SizeCache
  1466  	unknownFields protoimpl.UnknownFields
  1467  
  1468  	// Types that are assignable to ClusterSpecifier:
  1469  	//	*RouteAction_Cluster
  1470  	//	*RouteAction_ClusterHeader
  1471  	//	*RouteAction_WeightedClusters
  1472  	//	*RouteAction_ClusterSpecifierPlugin
  1473  	ClusterSpecifier isRouteAction_ClusterSpecifier `protobuf_oneof:"cluster_specifier"`
  1474  	// The HTTP status code to use when configured cluster is not found.
  1475  	// The default response code is 503 Service Unavailable.
  1476  	ClusterNotFoundResponseCode RouteAction_ClusterNotFoundResponseCode `protobuf:"varint,20,opt,name=cluster_not_found_response_code,json=clusterNotFoundResponseCode,proto3,enum=envoy.config.route.v3.RouteAction_ClusterNotFoundResponseCode" json:"cluster_not_found_response_code,omitempty"`
  1477  	// Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints
  1478  	// in the upstream cluster with metadata matching what's set in this field will be considered
  1479  	// for load balancing. If using :ref:`weighted_clusters
  1480  	// <envoy_v3_api_field_config.route.v3.RouteAction.weighted_clusters>`, metadata will be merged, with values
  1481  	// provided there taking precedence. The filter name should be specified as *envoy.lb*.
  1482  	MetadataMatch *v3.Metadata `protobuf:"bytes,4,opt,name=metadata_match,json=metadataMatch,proto3" json:"metadata_match,omitempty"`
  1483  	// Indicates that during forwarding, the matched prefix (or path) should be
  1484  	// swapped with this value. This option allows application URLs to be rooted
  1485  	// at a different path from those exposed at the reverse proxy layer. The router filter will
  1486  	// place the original path before rewrite into the :ref:`x-envoy-original-path
  1487  	// <config_http_filters_router_x-envoy-original-path>` header.
  1488  	//
  1489  	// Only one of *prefix_rewrite* or
  1490  	// :ref:`regex_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.regex_rewrite>`
  1491  	// may be specified.
  1492  	//
  1493  	// .. attention::
  1494  	//
  1495  	//   Pay careful attention to the use of trailing slashes in the
  1496  	//   :ref:`route's match <envoy_v3_api_field_config.route.v3.Route.match>` prefix value.
  1497  	//   Stripping a prefix from a path requires multiple Routes to handle all cases. For example,
  1498  	//   rewriting */prefix* to */* and */prefix/etc* to */etc* cannot be done in a single
  1499  	//   :ref:`Route <envoy_v3_api_msg_config.route.v3.Route>`, as shown by the below config entries:
  1500  	//
  1501  	//   .. code-block:: yaml
  1502  	//
  1503  	//     - match:
  1504  	//         prefix: "/prefix/"
  1505  	//       route:
  1506  	//         prefix_rewrite: "/"
  1507  	//     - match:
  1508  	//         prefix: "/prefix"
  1509  	//       route:
  1510  	//         prefix_rewrite: "/"
  1511  	//
  1512  	//   Having above entries in the config, requests to */prefix* will be stripped to */*, while
  1513  	//   requests to */prefix/etc* will be stripped to */etc*.
  1514  	PrefixRewrite string `protobuf:"bytes,5,opt,name=prefix_rewrite,json=prefixRewrite,proto3" json:"prefix_rewrite,omitempty"`
  1515  	// Indicates that during forwarding, portions of the path that match the
  1516  	// pattern should be rewritten, even allowing the substitution of capture
  1517  	// groups from the pattern into the new path as specified by the rewrite
  1518  	// substitution string. This is useful to allow application paths to be
  1519  	// rewritten in a way that is aware of segments with variable content like
  1520  	// identifiers. The router filter will place the original path as it was
  1521  	// before the rewrite into the :ref:`x-envoy-original-path
  1522  	// <config_http_filters_router_x-envoy-original-path>` header.
  1523  	//
  1524  	// Only one of :ref:`prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`
  1525  	// or *regex_rewrite* may be specified.
  1526  	//
  1527  	// Examples using Google's `RE2 <https://github.com/google/re2>`_ engine:
  1528  	//
  1529  	// * The path pattern ``^/service/([^/]+)(/.*)$`` paired with a substitution
  1530  	//   string of ``\2/instance/\1`` would transform ``/service/foo/v1/api``
  1531  	//   into ``/v1/api/instance/foo``.
  1532  	//
  1533  	// * The pattern ``one`` paired with a substitution string of ``two`` would
  1534  	//   transform ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/two/zzz``.
  1535  	//
  1536  	// * The pattern ``^(.*?)one(.*)$`` paired with a substitution string of
  1537  	//   ``\1two\2`` would replace only the first occurrence of ``one``,
  1538  	//   transforming path ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/one/zzz``.
  1539  	//
  1540  	// * The pattern ``(?i)/xxx/`` paired with a substitution string of ``/yyy/``
  1541  	//   would do a case-insensitive match and transform path ``/aaa/XxX/bbb`` to
  1542  	//   ``/aaa/yyy/bbb``.
  1543  	RegexRewrite *v31.RegexMatchAndSubstitute `protobuf:"bytes,32,opt,name=regex_rewrite,json=regexRewrite,proto3" json:"regex_rewrite,omitempty"`
  1544  	// Types that are assignable to HostRewriteSpecifier:
  1545  	//	*RouteAction_HostRewriteLiteral
  1546  	//	*RouteAction_AutoHostRewrite
  1547  	//	*RouteAction_HostRewriteHeader
  1548  	//	*RouteAction_HostRewritePathRegex
  1549  	HostRewriteSpecifier isRouteAction_HostRewriteSpecifier `protobuf_oneof:"host_rewrite_specifier"`
  1550  	// Specifies the upstream timeout for the route. If not specified, the default is 15s. This
  1551  	// spans between the point at which the entire downstream request (i.e. end-of-stream) has been
  1552  	// processed and when the upstream response has been completely processed. A value of 0 will
  1553  	// disable the route's timeout.
  1554  	//
  1555  	// .. note::
  1556  	//
  1557  	//   This timeout includes all retries. See also
  1558  	//   :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
  1559  	//   :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
  1560  	//   :ref:`retry overview <arch_overview_http_routing_retry>`.
  1561  	Timeout *duration.Duration `protobuf:"bytes,8,opt,name=timeout,proto3" json:"timeout,omitempty"`
  1562  	// Specifies the idle timeout for the route. If not specified, there is no per-route idle timeout,
  1563  	// although the connection manager wide :ref:`stream_idle_timeout
  1564  	// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_idle_timeout>`
  1565  	// will still apply. A value of 0 will completely disable the route's idle timeout, even if a
  1566  	// connection manager stream idle timeout is configured.
  1567  	//
  1568  	// The idle timeout is distinct to :ref:`timeout
  1569  	// <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, which provides an upper bound
  1570  	// on the upstream response time; :ref:`idle_timeout
  1571  	// <envoy_v3_api_field_config.route.v3.RouteAction.idle_timeout>` instead bounds the amount
  1572  	// of time the request's stream may be idle.
  1573  	//
  1574  	// After header decoding, the idle timeout will apply on downstream and
  1575  	// upstream request events. Each time an encode/decode event for headers or
  1576  	// data is processed for the stream, the timer will be reset. If the timeout
  1577  	// fires, the stream is terminated with a 408 Request Timeout error code if no
  1578  	// upstream response header has been received, otherwise a stream reset
  1579  	// occurs.
  1580  	//
  1581  	// If the :ref:`overload action <config_overload_manager_overload_actions>` "envoy.overload_actions.reduce_timeouts"
  1582  	// is configured, this timeout is scaled according to the value for
  1583  	// :ref:`HTTP_DOWNSTREAM_STREAM_IDLE <envoy_v3_api_enum_value_config.overload.v3.ScaleTimersOverloadActionConfig.TimerType.HTTP_DOWNSTREAM_STREAM_IDLE>`.
  1584  	IdleTimeout *duration.Duration `protobuf:"bytes,24,opt,name=idle_timeout,json=idleTimeout,proto3" json:"idle_timeout,omitempty"`
  1585  	// Indicates that the route has a retry policy. Note that if this is set,
  1586  	// it'll take precedence over the virtual host level retry policy entirely
  1587  	// (e.g.: policies are not merged, most internal one becomes the enforced policy).
  1588  	RetryPolicy *RetryPolicy `protobuf:"bytes,9,opt,name=retry_policy,json=retryPolicy,proto3" json:"retry_policy,omitempty"`
  1589  	// [#not-implemented-hide:]
  1590  	// Specifies the configuration for retry policy extension. Note that if this is set, it'll take
  1591  	// precedence over the virtual host level retry policy entirely (e.g.: policies are not merged,
  1592  	// most internal one becomes the enforced policy). :ref:`Retry policy <envoy_v3_api_field_config.route.v3.VirtualHost.retry_policy>`
  1593  	// should not be set if this field is used.
  1594  	RetryPolicyTypedConfig *any.Any `protobuf:"bytes,33,opt,name=retry_policy_typed_config,json=retryPolicyTypedConfig,proto3" json:"retry_policy_typed_config,omitempty"`
  1595  	// Indicates that the route has request mirroring policies.
  1596  	RequestMirrorPolicies []*RouteAction_RequestMirrorPolicy `protobuf:"bytes,30,rep,name=request_mirror_policies,json=requestMirrorPolicies,proto3" json:"request_mirror_policies,omitempty"`
  1597  	// Optionally specifies the :ref:`routing priority <arch_overview_http_routing_priority>`.
  1598  	Priority v3.RoutingPriority `protobuf:"varint,11,opt,name=priority,proto3,enum=envoy.config.core.v3.RoutingPriority" json:"priority,omitempty"`
  1599  	// Specifies a set of rate limit configurations that could be applied to the
  1600  	// route.
  1601  	RateLimits []*RateLimit `protobuf:"bytes,13,rep,name=rate_limits,json=rateLimits,proto3" json:"rate_limits,omitempty"`
  1602  	// Specifies if the rate limit filter should include the virtual host rate
  1603  	// limits. By default, if the route configured rate limits, the virtual host
  1604  	// :ref:`rate_limits <envoy_v3_api_field_config.route.v3.VirtualHost.rate_limits>` are not applied to the
  1605  	// request.
  1606  	//
  1607  	// This field is deprecated. Please use :ref:`vh_rate_limits <envoy_v3_api_field_extensions.filters.http.ratelimit.v3.RateLimitPerRoute.vh_rate_limits>`
  1608  	//
  1609  	// Deprecated: Do not use.
  1610  	IncludeVhRateLimits *wrappers.BoolValue `protobuf:"bytes,14,opt,name=include_vh_rate_limits,json=includeVhRateLimits,proto3" json:"include_vh_rate_limits,omitempty"`
  1611  	// Specifies a list of hash policies to use for ring hash load balancing. Each
  1612  	// hash policy is evaluated individually and the combined result is used to
  1613  	// route the request. The method of combination is deterministic such that
  1614  	// identical lists of hash policies will produce the same hash. Since a hash
  1615  	// policy examines specific parts of a request, it can fail to produce a hash
  1616  	// (i.e. if the hashed header is not present). If (and only if) all configured
  1617  	// hash policies fail to generate a hash, no hash will be produced for
  1618  	// the route. In this case, the behavior is the same as if no hash policies
  1619  	// were specified (i.e. the ring hash load balancer will choose a random
  1620  	// backend). If a hash policy has the "terminal" attribute set to true, and
  1621  	// there is already a hash generated, the hash is returned immediately,
  1622  	// ignoring the rest of the hash policy list.
  1623  	HashPolicy []*RouteAction_HashPolicy `protobuf:"bytes,15,rep,name=hash_policy,json=hashPolicy,proto3" json:"hash_policy,omitempty"`
  1624  	// Indicates that the route has a CORS policy.
  1625  	Cors *CorsPolicy `protobuf:"bytes,17,opt,name=cors,proto3" json:"cors,omitempty"`
  1626  	// Deprecated by :ref:`grpc_timeout_header_max <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_max>`
  1627  	// If present, and the request is a gRPC request, use the
  1628  	// `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_,
  1629  	// or its default value (infinity) instead of
  1630  	// :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>`, but limit the applied timeout
  1631  	// to the maximum value specified here. If configured as 0, the maximum allowed timeout for
  1632  	// gRPC requests is infinity. If not configured at all, the `grpc-timeout` header is not used
  1633  	// and gRPC requests time out like any other requests using
  1634  	// :ref:`timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` or its default.
  1635  	// This can be used to prevent unexpected upstream request timeouts due to potentially long
  1636  	// time gaps between gRPC request and response in gRPC streaming mode.
  1637  	//
  1638  	// .. note::
  1639  	//
  1640  	//    If a timeout is specified using :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`, it takes
  1641  	//    precedence over `grpc-timeout header <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, when
  1642  	//    both are present. See also
  1643  	//    :ref:`config_http_filters_router_x-envoy-upstream-rq-timeout-ms`,
  1644  	//    :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms`, and the
  1645  	//    :ref:`retry overview <arch_overview_http_routing_retry>`.
  1646  	//
  1647  	// Deprecated: Do not use.
  1648  	MaxGrpcTimeout *duration.Duration `protobuf:"bytes,23,opt,name=max_grpc_timeout,json=maxGrpcTimeout,proto3" json:"max_grpc_timeout,omitempty"`
  1649  	// Deprecated by :ref:`grpc_timeout_header_offset <envoy_v3_api_field_config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_offset>`.
  1650  	// If present, Envoy will adjust the timeout provided by the `grpc-timeout` header by subtracting
  1651  	// the provided duration from the header. This is useful in allowing Envoy to set its global
  1652  	// timeout to be less than that of the deadline imposed by the calling client, which makes it more
  1653  	// likely that Envoy will handle the timeout instead of having the call canceled by the client.
  1654  	// The offset will only be applied if the provided grpc_timeout is greater than the offset. This
  1655  	// ensures that the offset will only ever decrease the timeout and never set it to 0 (meaning
  1656  	// infinity).
  1657  	//
  1658  	// Deprecated: Do not use.
  1659  	GrpcTimeoutOffset *duration.Duration           `protobuf:"bytes,28,opt,name=grpc_timeout_offset,json=grpcTimeoutOffset,proto3" json:"grpc_timeout_offset,omitempty"`
  1660  	UpgradeConfigs    []*RouteAction_UpgradeConfig `protobuf:"bytes,25,rep,name=upgrade_configs,json=upgradeConfigs,proto3" json:"upgrade_configs,omitempty"`
  1661  	// If present, Envoy will try to follow an upstream redirect response instead of proxying the
  1662  	// response back to the downstream. An upstream redirect response is defined
  1663  	// by :ref:`redirect_response_codes
  1664  	// <envoy_v3_api_field_config.route.v3.InternalRedirectPolicy.redirect_response_codes>`.
  1665  	InternalRedirectPolicy *InternalRedirectPolicy `protobuf:"bytes,34,opt,name=internal_redirect_policy,json=internalRedirectPolicy,proto3" json:"internal_redirect_policy,omitempty"`
  1666  	// Deprecated: Do not use.
  1667  	InternalRedirectAction RouteAction_InternalRedirectAction `protobuf:"varint,26,opt,name=internal_redirect_action,json=internalRedirectAction,proto3,enum=envoy.config.route.v3.RouteAction_InternalRedirectAction" json:"internal_redirect_action,omitempty"`
  1668  	// An internal redirect is handled, iff the number of previous internal redirects that a
  1669  	// downstream request has encountered is lower than this value, and
  1670  	// :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
  1671  	// is set to :ref:`HANDLE_INTERNAL_REDIRECT
  1672  	// <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.HANDLE_INTERNAL_REDIRECT>`
  1673  	// In the case where a downstream request is bounced among multiple routes by internal redirect,
  1674  	// the first route that hits this threshold, or has
  1675  	// :ref:`internal_redirect_action <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_action>`
  1676  	// set to
  1677  	// :ref:`PASS_THROUGH_INTERNAL_REDIRECT
  1678  	// <envoy_v3_api_enum_value_config.route.v3.RouteAction.InternalRedirectAction.PASS_THROUGH_INTERNAL_REDIRECT>`
  1679  	// will pass the redirect back to downstream.
  1680  	//
  1681  	// If not specified, at most one redirect will be followed.
  1682  	//
  1683  	// Deprecated: Do not use.
  1684  	MaxInternalRedirects *wrappers.UInt32Value `protobuf:"bytes,31,opt,name=max_internal_redirects,json=maxInternalRedirects,proto3" json:"max_internal_redirects,omitempty"`
  1685  	// Indicates that the route has a hedge policy. Note that if this is set,
  1686  	// it'll take precedence over the virtual host level hedge policy entirely
  1687  	// (e.g.: policies are not merged, most internal one becomes the enforced policy).
  1688  	HedgePolicy *HedgePolicy `protobuf:"bytes,27,opt,name=hedge_policy,json=hedgePolicy,proto3" json:"hedge_policy,omitempty"`
  1689  	// Specifies the maximum stream duration for this route.
  1690  	MaxStreamDuration *RouteAction_MaxStreamDuration `protobuf:"bytes,36,opt,name=max_stream_duration,json=maxStreamDuration,proto3" json:"max_stream_duration,omitempty"`
  1691  	// Deprecated: Do not use.
  1692  	HiddenEnvoyDeprecatedRequestMirrorPolicy *RouteAction_RequestMirrorPolicy `protobuf:"bytes,10,opt,name=hidden_envoy_deprecated_request_mirror_policy,json=hiddenEnvoyDeprecatedRequestMirrorPolicy,proto3" json:"hidden_envoy_deprecated_request_mirror_policy,omitempty"`
  1693  }
  1694  
  1695  func (x *RouteAction) Reset() {
  1696  	*x = RouteAction{}
  1697  	if protoimpl.UnsafeEnabled {
  1698  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[6]
  1699  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1700  		ms.StoreMessageInfo(mi)
  1701  	}
  1702  }
  1703  
  1704  func (x *RouteAction) String() string {
  1705  	return protoimpl.X.MessageStringOf(x)
  1706  }
  1707  
  1708  func (*RouteAction) ProtoMessage() {}
  1709  
  1710  func (x *RouteAction) ProtoReflect() protoreflect.Message {
  1711  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[6]
  1712  	if protoimpl.UnsafeEnabled && x != nil {
  1713  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1714  		if ms.LoadMessageInfo() == nil {
  1715  			ms.StoreMessageInfo(mi)
  1716  		}
  1717  		return ms
  1718  	}
  1719  	return mi.MessageOf(x)
  1720  }
  1721  
  1722  // Deprecated: Use RouteAction.ProtoReflect.Descriptor instead.
  1723  func (*RouteAction) Descriptor() ([]byte, []int) {
  1724  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{6}
  1725  }
  1726  
  1727  func (m *RouteAction) GetClusterSpecifier() isRouteAction_ClusterSpecifier {
  1728  	if m != nil {
  1729  		return m.ClusterSpecifier
  1730  	}
  1731  	return nil
  1732  }
  1733  
  1734  func (x *RouteAction) GetCluster() string {
  1735  	if x, ok := x.GetClusterSpecifier().(*RouteAction_Cluster); ok {
  1736  		return x.Cluster
  1737  	}
  1738  	return ""
  1739  }
  1740  
  1741  func (x *RouteAction) GetClusterHeader() string {
  1742  	if x, ok := x.GetClusterSpecifier().(*RouteAction_ClusterHeader); ok {
  1743  		return x.ClusterHeader
  1744  	}
  1745  	return ""
  1746  }
  1747  
  1748  func (x *RouteAction) GetWeightedClusters() *WeightedCluster {
  1749  	if x, ok := x.GetClusterSpecifier().(*RouteAction_WeightedClusters); ok {
  1750  		return x.WeightedClusters
  1751  	}
  1752  	return nil
  1753  }
  1754  
  1755  func (x *RouteAction) GetClusterSpecifierPlugin() string {
  1756  	if x, ok := x.GetClusterSpecifier().(*RouteAction_ClusterSpecifierPlugin); ok {
  1757  		return x.ClusterSpecifierPlugin
  1758  	}
  1759  	return ""
  1760  }
  1761  
  1762  func (x *RouteAction) GetClusterNotFoundResponseCode() RouteAction_ClusterNotFoundResponseCode {
  1763  	if x != nil {
  1764  		return x.ClusterNotFoundResponseCode
  1765  	}
  1766  	return RouteAction_SERVICE_UNAVAILABLE
  1767  }
  1768  
  1769  func (x *RouteAction) GetMetadataMatch() *v3.Metadata {
  1770  	if x != nil {
  1771  		return x.MetadataMatch
  1772  	}
  1773  	return nil
  1774  }
  1775  
  1776  func (x *RouteAction) GetPrefixRewrite() string {
  1777  	if x != nil {
  1778  		return x.PrefixRewrite
  1779  	}
  1780  	return ""
  1781  }
  1782  
  1783  func (x *RouteAction) GetRegexRewrite() *v31.RegexMatchAndSubstitute {
  1784  	if x != nil {
  1785  		return x.RegexRewrite
  1786  	}
  1787  	return nil
  1788  }
  1789  
  1790  func (m *RouteAction) GetHostRewriteSpecifier() isRouteAction_HostRewriteSpecifier {
  1791  	if m != nil {
  1792  		return m.HostRewriteSpecifier
  1793  	}
  1794  	return nil
  1795  }
  1796  
  1797  func (x *RouteAction) GetHostRewriteLiteral() string {
  1798  	if x, ok := x.GetHostRewriteSpecifier().(*RouteAction_HostRewriteLiteral); ok {
  1799  		return x.HostRewriteLiteral
  1800  	}
  1801  	return ""
  1802  }
  1803  
  1804  func (x *RouteAction) GetAutoHostRewrite() *wrappers.BoolValue {
  1805  	if x, ok := x.GetHostRewriteSpecifier().(*RouteAction_AutoHostRewrite); ok {
  1806  		return x.AutoHostRewrite
  1807  	}
  1808  	return nil
  1809  }
  1810  
  1811  func (x *RouteAction) GetHostRewriteHeader() string {
  1812  	if x, ok := x.GetHostRewriteSpecifier().(*RouteAction_HostRewriteHeader); ok {
  1813  		return x.HostRewriteHeader
  1814  	}
  1815  	return ""
  1816  }
  1817  
  1818  func (x *RouteAction) GetHostRewritePathRegex() *v31.RegexMatchAndSubstitute {
  1819  	if x, ok := x.GetHostRewriteSpecifier().(*RouteAction_HostRewritePathRegex); ok {
  1820  		return x.HostRewritePathRegex
  1821  	}
  1822  	return nil
  1823  }
  1824  
  1825  func (x *RouteAction) GetTimeout() *duration.Duration {
  1826  	if x != nil {
  1827  		return x.Timeout
  1828  	}
  1829  	return nil
  1830  }
  1831  
  1832  func (x *RouteAction) GetIdleTimeout() *duration.Duration {
  1833  	if x != nil {
  1834  		return x.IdleTimeout
  1835  	}
  1836  	return nil
  1837  }
  1838  
  1839  func (x *RouteAction) GetRetryPolicy() *RetryPolicy {
  1840  	if x != nil {
  1841  		return x.RetryPolicy
  1842  	}
  1843  	return nil
  1844  }
  1845  
  1846  func (x *RouteAction) GetRetryPolicyTypedConfig() *any.Any {
  1847  	if x != nil {
  1848  		return x.RetryPolicyTypedConfig
  1849  	}
  1850  	return nil
  1851  }
  1852  
  1853  func (x *RouteAction) GetRequestMirrorPolicies() []*RouteAction_RequestMirrorPolicy {
  1854  	if x != nil {
  1855  		return x.RequestMirrorPolicies
  1856  	}
  1857  	return nil
  1858  }
  1859  
  1860  func (x *RouteAction) GetPriority() v3.RoutingPriority {
  1861  	if x != nil {
  1862  		return x.Priority
  1863  	}
  1864  	return v3.RoutingPriority_DEFAULT
  1865  }
  1866  
  1867  func (x *RouteAction) GetRateLimits() []*RateLimit {
  1868  	if x != nil {
  1869  		return x.RateLimits
  1870  	}
  1871  	return nil
  1872  }
  1873  
  1874  // Deprecated: Do not use.
  1875  func (x *RouteAction) GetIncludeVhRateLimits() *wrappers.BoolValue {
  1876  	if x != nil {
  1877  		return x.IncludeVhRateLimits
  1878  	}
  1879  	return nil
  1880  }
  1881  
  1882  func (x *RouteAction) GetHashPolicy() []*RouteAction_HashPolicy {
  1883  	if x != nil {
  1884  		return x.HashPolicy
  1885  	}
  1886  	return nil
  1887  }
  1888  
  1889  func (x *RouteAction) GetCors() *CorsPolicy {
  1890  	if x != nil {
  1891  		return x.Cors
  1892  	}
  1893  	return nil
  1894  }
  1895  
  1896  // Deprecated: Do not use.
  1897  func (x *RouteAction) GetMaxGrpcTimeout() *duration.Duration {
  1898  	if x != nil {
  1899  		return x.MaxGrpcTimeout
  1900  	}
  1901  	return nil
  1902  }
  1903  
  1904  // Deprecated: Do not use.
  1905  func (x *RouteAction) GetGrpcTimeoutOffset() *duration.Duration {
  1906  	if x != nil {
  1907  		return x.GrpcTimeoutOffset
  1908  	}
  1909  	return nil
  1910  }
  1911  
  1912  func (x *RouteAction) GetUpgradeConfigs() []*RouteAction_UpgradeConfig {
  1913  	if x != nil {
  1914  		return x.UpgradeConfigs
  1915  	}
  1916  	return nil
  1917  }
  1918  
  1919  func (x *RouteAction) GetInternalRedirectPolicy() *InternalRedirectPolicy {
  1920  	if x != nil {
  1921  		return x.InternalRedirectPolicy
  1922  	}
  1923  	return nil
  1924  }
  1925  
  1926  // Deprecated: Do not use.
  1927  func (x *RouteAction) GetInternalRedirectAction() RouteAction_InternalRedirectAction {
  1928  	if x != nil {
  1929  		return x.InternalRedirectAction
  1930  	}
  1931  	return RouteAction_PASS_THROUGH_INTERNAL_REDIRECT
  1932  }
  1933  
  1934  // Deprecated: Do not use.
  1935  func (x *RouteAction) GetMaxInternalRedirects() *wrappers.UInt32Value {
  1936  	if x != nil {
  1937  		return x.MaxInternalRedirects
  1938  	}
  1939  	return nil
  1940  }
  1941  
  1942  func (x *RouteAction) GetHedgePolicy() *HedgePolicy {
  1943  	if x != nil {
  1944  		return x.HedgePolicy
  1945  	}
  1946  	return nil
  1947  }
  1948  
  1949  func (x *RouteAction) GetMaxStreamDuration() *RouteAction_MaxStreamDuration {
  1950  	if x != nil {
  1951  		return x.MaxStreamDuration
  1952  	}
  1953  	return nil
  1954  }
  1955  
  1956  // Deprecated: Do not use.
  1957  func (x *RouteAction) GetHiddenEnvoyDeprecatedRequestMirrorPolicy() *RouteAction_RequestMirrorPolicy {
  1958  	if x != nil {
  1959  		return x.HiddenEnvoyDeprecatedRequestMirrorPolicy
  1960  	}
  1961  	return nil
  1962  }
  1963  
  1964  type isRouteAction_ClusterSpecifier interface {
  1965  	isRouteAction_ClusterSpecifier()
  1966  }
  1967  
  1968  type RouteAction_Cluster struct {
  1969  	// Indicates the upstream cluster to which the request should be routed
  1970  	// to.
  1971  	Cluster string `protobuf:"bytes,1,opt,name=cluster,proto3,oneof"`
  1972  }
  1973  
  1974  type RouteAction_ClusterHeader struct {
  1975  	// Envoy will determine the cluster to route to by reading the value of the
  1976  	// HTTP header named by cluster_header from the request headers. If the
  1977  	// header is not found or the referenced cluster does not exist, Envoy will
  1978  	// return a 404 response.
  1979  	//
  1980  	// .. attention::
  1981  	//
  1982  	//   Internally, Envoy always uses the HTTP/2 *:authority* header to represent the HTTP/1
  1983  	//   *Host* header. Thus, if attempting to match on *Host*, match on *:authority* instead.
  1984  	//
  1985  	// .. note::
  1986  	//
  1987  	//   If the header appears multiple times only the first value is used.
  1988  	ClusterHeader string `protobuf:"bytes,2,opt,name=cluster_header,json=clusterHeader,proto3,oneof"`
  1989  }
  1990  
  1991  type RouteAction_WeightedClusters struct {
  1992  	// Multiple upstream clusters can be specified for a given route. The
  1993  	// request is routed to one of the upstream clusters based on weights
  1994  	// assigned to each cluster. See
  1995  	// :ref:`traffic splitting <config_http_conn_man_route_table_traffic_splitting_split>`
  1996  	// for additional documentation.
  1997  	WeightedClusters *WeightedCluster `protobuf:"bytes,3,opt,name=weighted_clusters,json=weightedClusters,proto3,oneof"`
  1998  }
  1999  
  2000  type RouteAction_ClusterSpecifierPlugin struct {
  2001  	// [#not-implemented-hide:]
  2002  	// Name of the cluster specifier plugin to use to determine the cluster for
  2003  	// requests on this route. The plugin name must be defined in the associated
  2004  	// :ref:`envoy_v3_api_field_config.route.v3.RouteConfiguration.cluster_specifier_plugins`
  2005  	// in the
  2006  	// :ref:`envoy_v3_api_field_config.core.v3.TypedExtensionConfig.name` field.
  2007  	ClusterSpecifierPlugin string `protobuf:"bytes,37,opt,name=cluster_specifier_plugin,json=clusterSpecifierPlugin,proto3,oneof"`
  2008  }
  2009  
  2010  func (*RouteAction_Cluster) isRouteAction_ClusterSpecifier() {}
  2011  
  2012  func (*RouteAction_ClusterHeader) isRouteAction_ClusterSpecifier() {}
  2013  
  2014  func (*RouteAction_WeightedClusters) isRouteAction_ClusterSpecifier() {}
  2015  
  2016  func (*RouteAction_ClusterSpecifierPlugin) isRouteAction_ClusterSpecifier() {}
  2017  
  2018  type isRouteAction_HostRewriteSpecifier interface {
  2019  	isRouteAction_HostRewriteSpecifier()
  2020  }
  2021  
  2022  type RouteAction_HostRewriteLiteral struct {
  2023  	// Indicates that during forwarding, the host header will be swapped with
  2024  	// this value.
  2025  	HostRewriteLiteral string `protobuf:"bytes,6,opt,name=host_rewrite_literal,json=hostRewriteLiteral,proto3,oneof"`
  2026  }
  2027  
  2028  type RouteAction_AutoHostRewrite struct {
  2029  	// Indicates that during forwarding, the host header will be swapped with
  2030  	// the hostname of the upstream host chosen by the cluster manager. This
  2031  	// option is applicable only when the destination cluster for a route is of
  2032  	// type *strict_dns* or *logical_dns*. Setting this to true with other cluster
  2033  	// types has no effect.
  2034  	AutoHostRewrite *wrappers.BoolValue `protobuf:"bytes,7,opt,name=auto_host_rewrite,json=autoHostRewrite,proto3,oneof"`
  2035  }
  2036  
  2037  type RouteAction_HostRewriteHeader struct {
  2038  	// Indicates that during forwarding, the host header will be swapped with the content of given
  2039  	// downstream or :ref:`custom <config_http_conn_man_headers_custom_request_headers>` header.
  2040  	// If header value is empty, host header is left intact.
  2041  	//
  2042  	// .. attention::
  2043  	//
  2044  	//   Pay attention to the potential security implications of using this option. Provided header
  2045  	//   must come from trusted source.
  2046  	//
  2047  	// .. note::
  2048  	//
  2049  	//   If the header appears multiple times only the first value is used.
  2050  	HostRewriteHeader string `protobuf:"bytes,29,opt,name=host_rewrite_header,json=hostRewriteHeader,proto3,oneof"`
  2051  }
  2052  
  2053  type RouteAction_HostRewritePathRegex struct {
  2054  	// Indicates that during forwarding, the host header will be swapped with
  2055  	// the result of the regex substitution executed on path value with query and fragment removed.
  2056  	// This is useful for transitioning variable content between path segment and subdomain.
  2057  	//
  2058  	// For example with the following config:
  2059  	//
  2060  	//   .. code-block:: yaml
  2061  	//
  2062  	//     host_rewrite_path_regex:
  2063  	//       pattern:
  2064  	//         google_re2: {}
  2065  	//         regex: "^/(.+)/.+$"
  2066  	//       substitution: \1
  2067  	//
  2068  	// Would rewrite the host header to `envoyproxy.io` given the path `/envoyproxy.io/some/path`.
  2069  	HostRewritePathRegex *v31.RegexMatchAndSubstitute `protobuf:"bytes,35,opt,name=host_rewrite_path_regex,json=hostRewritePathRegex,proto3,oneof"`
  2070  }
  2071  
  2072  func (*RouteAction_HostRewriteLiteral) isRouteAction_HostRewriteSpecifier() {}
  2073  
  2074  func (*RouteAction_AutoHostRewrite) isRouteAction_HostRewriteSpecifier() {}
  2075  
  2076  func (*RouteAction_HostRewriteHeader) isRouteAction_HostRewriteSpecifier() {}
  2077  
  2078  func (*RouteAction_HostRewritePathRegex) isRouteAction_HostRewriteSpecifier() {}
  2079  
  2080  // HTTP retry :ref:`architecture overview <arch_overview_http_routing_retry>`.
  2081  // [#next-free-field: 12]
  2082  type RetryPolicy struct {
  2083  	state         protoimpl.MessageState
  2084  	sizeCache     protoimpl.SizeCache
  2085  	unknownFields protoimpl.UnknownFields
  2086  
  2087  	// Specifies the conditions under which retry takes place. These are the same
  2088  	// conditions documented for :ref:`config_http_filters_router_x-envoy-retry-on` and
  2089  	// :ref:`config_http_filters_router_x-envoy-retry-grpc-on`.
  2090  	RetryOn string `protobuf:"bytes,1,opt,name=retry_on,json=retryOn,proto3" json:"retry_on,omitempty"`
  2091  	// Specifies the allowed number of retries. This parameter is optional and
  2092  	// defaults to 1. These are the same conditions documented for
  2093  	// :ref:`config_http_filters_router_x-envoy-max-retries`.
  2094  	NumRetries *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=num_retries,json=numRetries,proto3" json:"num_retries,omitempty"`
  2095  	// Specifies a non-zero upstream timeout per retry attempt. This parameter is optional. The
  2096  	// same conditions documented for
  2097  	// :ref:`config_http_filters_router_x-envoy-upstream-rq-per-try-timeout-ms` apply.
  2098  	//
  2099  	// .. note::
  2100  	//
  2101  	//   If left unspecified, Envoy will use the global
  2102  	//   :ref:`route timeout <envoy_v3_api_field_config.route.v3.RouteAction.timeout>` for the request.
  2103  	//   Consequently, when using a :ref:`5xx <config_http_filters_router_x-envoy-retry-on>` based
  2104  	//   retry policy, a request that times out will not be retried as the total timeout budget
  2105  	//   would have been exhausted.
  2106  	PerTryTimeout *duration.Duration `protobuf:"bytes,3,opt,name=per_try_timeout,json=perTryTimeout,proto3" json:"per_try_timeout,omitempty"`
  2107  	// Specifies an implementation of a RetryPriority which is used to determine the
  2108  	// distribution of load across priorities used for retries. Refer to
  2109  	// :ref:`retry plugin configuration <arch_overview_http_retry_plugins>` for more details.
  2110  	RetryPriority *RetryPolicy_RetryPriority `protobuf:"bytes,4,opt,name=retry_priority,json=retryPriority,proto3" json:"retry_priority,omitempty"`
  2111  	// Specifies a collection of RetryHostPredicates that will be consulted when selecting a host
  2112  	// for retries. If any of the predicates reject the host, host selection will be reattempted.
  2113  	// Refer to :ref:`retry plugin configuration <arch_overview_http_retry_plugins>` for more
  2114  	// details.
  2115  	RetryHostPredicate []*RetryPolicy_RetryHostPredicate `protobuf:"bytes,5,rep,name=retry_host_predicate,json=retryHostPredicate,proto3" json:"retry_host_predicate,omitempty"`
  2116  	// The maximum number of times host selection will be reattempted before giving up, at which
  2117  	// point the host that was last selected will be routed to. If unspecified, this will default to
  2118  	// retrying once.
  2119  	HostSelectionRetryMaxAttempts int64 `protobuf:"varint,6,opt,name=host_selection_retry_max_attempts,json=hostSelectionRetryMaxAttempts,proto3" json:"host_selection_retry_max_attempts,omitempty"`
  2120  	// HTTP status codes that should trigger a retry in addition to those specified by retry_on.
  2121  	RetriableStatusCodes []uint32 `protobuf:"varint,7,rep,packed,name=retriable_status_codes,json=retriableStatusCodes,proto3" json:"retriable_status_codes,omitempty"`
  2122  	// Specifies parameters that control exponential retry back off. This parameter is optional, in which case the
  2123  	// default base interval is 25 milliseconds or, if set, the current value of the
  2124  	// `upstream.base_retry_backoff_ms` runtime parameter. The default maximum interval is 10 times
  2125  	// the base interval. The documentation for :ref:`config_http_filters_router_x-envoy-max-retries`
  2126  	// describes Envoy's back-off algorithm.
  2127  	RetryBackOff *RetryPolicy_RetryBackOff `protobuf:"bytes,8,opt,name=retry_back_off,json=retryBackOff,proto3" json:"retry_back_off,omitempty"`
  2128  	// Specifies parameters that control a retry back-off strategy that is used
  2129  	// when the request is rate limited by the upstream server. The server may
  2130  	// return a response header like ``Retry-After`` or ``X-RateLimit-Reset`` to
  2131  	// provide feedback to the client on how long to wait before retrying. If
  2132  	// configured, this back-off strategy will be used instead of the
  2133  	// default exponential back off strategy (configured using `retry_back_off`)
  2134  	// whenever a response includes the matching headers.
  2135  	RateLimitedRetryBackOff *RetryPolicy_RateLimitedRetryBackOff `protobuf:"bytes,11,opt,name=rate_limited_retry_back_off,json=rateLimitedRetryBackOff,proto3" json:"rate_limited_retry_back_off,omitempty"`
  2136  	// HTTP response headers that trigger a retry if present in the response. A retry will be
  2137  	// triggered if any of the header matches match the upstream response headers.
  2138  	// The field is only consulted if 'retriable-headers' retry policy is active.
  2139  	RetriableHeaders []*HeaderMatcher `protobuf:"bytes,9,rep,name=retriable_headers,json=retriableHeaders,proto3" json:"retriable_headers,omitempty"`
  2140  	// HTTP headers which must be present in the request for retries to be attempted.
  2141  	RetriableRequestHeaders []*HeaderMatcher `protobuf:"bytes,10,rep,name=retriable_request_headers,json=retriableRequestHeaders,proto3" json:"retriable_request_headers,omitempty"`
  2142  }
  2143  
  2144  func (x *RetryPolicy) Reset() {
  2145  	*x = RetryPolicy{}
  2146  	if protoimpl.UnsafeEnabled {
  2147  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[7]
  2148  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2149  		ms.StoreMessageInfo(mi)
  2150  	}
  2151  }
  2152  
  2153  func (x *RetryPolicy) String() string {
  2154  	return protoimpl.X.MessageStringOf(x)
  2155  }
  2156  
  2157  func (*RetryPolicy) ProtoMessage() {}
  2158  
  2159  func (x *RetryPolicy) ProtoReflect() protoreflect.Message {
  2160  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[7]
  2161  	if protoimpl.UnsafeEnabled && x != nil {
  2162  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2163  		if ms.LoadMessageInfo() == nil {
  2164  			ms.StoreMessageInfo(mi)
  2165  		}
  2166  		return ms
  2167  	}
  2168  	return mi.MessageOf(x)
  2169  }
  2170  
  2171  // Deprecated: Use RetryPolicy.ProtoReflect.Descriptor instead.
  2172  func (*RetryPolicy) Descriptor() ([]byte, []int) {
  2173  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{7}
  2174  }
  2175  
  2176  func (x *RetryPolicy) GetRetryOn() string {
  2177  	if x != nil {
  2178  		return x.RetryOn
  2179  	}
  2180  	return ""
  2181  }
  2182  
  2183  func (x *RetryPolicy) GetNumRetries() *wrappers.UInt32Value {
  2184  	if x != nil {
  2185  		return x.NumRetries
  2186  	}
  2187  	return nil
  2188  }
  2189  
  2190  func (x *RetryPolicy) GetPerTryTimeout() *duration.Duration {
  2191  	if x != nil {
  2192  		return x.PerTryTimeout
  2193  	}
  2194  	return nil
  2195  }
  2196  
  2197  func (x *RetryPolicy) GetRetryPriority() *RetryPolicy_RetryPriority {
  2198  	if x != nil {
  2199  		return x.RetryPriority
  2200  	}
  2201  	return nil
  2202  }
  2203  
  2204  func (x *RetryPolicy) GetRetryHostPredicate() []*RetryPolicy_RetryHostPredicate {
  2205  	if x != nil {
  2206  		return x.RetryHostPredicate
  2207  	}
  2208  	return nil
  2209  }
  2210  
  2211  func (x *RetryPolicy) GetHostSelectionRetryMaxAttempts() int64 {
  2212  	if x != nil {
  2213  		return x.HostSelectionRetryMaxAttempts
  2214  	}
  2215  	return 0
  2216  }
  2217  
  2218  func (x *RetryPolicy) GetRetriableStatusCodes() []uint32 {
  2219  	if x != nil {
  2220  		return x.RetriableStatusCodes
  2221  	}
  2222  	return nil
  2223  }
  2224  
  2225  func (x *RetryPolicy) GetRetryBackOff() *RetryPolicy_RetryBackOff {
  2226  	if x != nil {
  2227  		return x.RetryBackOff
  2228  	}
  2229  	return nil
  2230  }
  2231  
  2232  func (x *RetryPolicy) GetRateLimitedRetryBackOff() *RetryPolicy_RateLimitedRetryBackOff {
  2233  	if x != nil {
  2234  		return x.RateLimitedRetryBackOff
  2235  	}
  2236  	return nil
  2237  }
  2238  
  2239  func (x *RetryPolicy) GetRetriableHeaders() []*HeaderMatcher {
  2240  	if x != nil {
  2241  		return x.RetriableHeaders
  2242  	}
  2243  	return nil
  2244  }
  2245  
  2246  func (x *RetryPolicy) GetRetriableRequestHeaders() []*HeaderMatcher {
  2247  	if x != nil {
  2248  		return x.RetriableRequestHeaders
  2249  	}
  2250  	return nil
  2251  }
  2252  
  2253  // HTTP request hedging :ref:`architecture overview <arch_overview_http_routing_hedging>`.
  2254  type HedgePolicy struct {
  2255  	state         protoimpl.MessageState
  2256  	sizeCache     protoimpl.SizeCache
  2257  	unknownFields protoimpl.UnknownFields
  2258  
  2259  	// Specifies the number of initial requests that should be sent upstream.
  2260  	// Must be at least 1.
  2261  	// Defaults to 1.
  2262  	// [#not-implemented-hide:]
  2263  	InitialRequests *wrappers.UInt32Value `protobuf:"bytes,1,opt,name=initial_requests,json=initialRequests,proto3" json:"initial_requests,omitempty"`
  2264  	// Specifies a probability that an additional upstream request should be sent
  2265  	// on top of what is specified by initial_requests.
  2266  	// Defaults to 0.
  2267  	// [#not-implemented-hide:]
  2268  	AdditionalRequestChance *v32.FractionalPercent `protobuf:"bytes,2,opt,name=additional_request_chance,json=additionalRequestChance,proto3" json:"additional_request_chance,omitempty"`
  2269  	// Indicates that a hedged request should be sent when the per-try timeout is hit.
  2270  	// This means that a retry will be issued without resetting the original request, leaving multiple upstream requests in flight.
  2271  	// The first request to complete successfully will be the one returned to the caller.
  2272  	//
  2273  	// * At any time, a successful response (i.e. not triggering any of the retry-on conditions) would be returned to the client.
  2274  	// * Before per-try timeout, an error response (per retry-on conditions) would be retried immediately or returned ot the client
  2275  	//   if there are no more retries left.
  2276  	// * After per-try timeout, an error response would be discarded, as a retry in the form of a hedged request is already in progress.
  2277  	//
  2278  	// Note: For this to have effect, you must have a :ref:`RetryPolicy <envoy_v3_api_msg_config.route.v3.RetryPolicy>` that retries at least
  2279  	// one error code and specifies a maximum number of retries.
  2280  	//
  2281  	// Defaults to false.
  2282  	HedgeOnPerTryTimeout bool `protobuf:"varint,3,opt,name=hedge_on_per_try_timeout,json=hedgeOnPerTryTimeout,proto3" json:"hedge_on_per_try_timeout,omitempty"`
  2283  }
  2284  
  2285  func (x *HedgePolicy) Reset() {
  2286  	*x = HedgePolicy{}
  2287  	if protoimpl.UnsafeEnabled {
  2288  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[8]
  2289  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2290  		ms.StoreMessageInfo(mi)
  2291  	}
  2292  }
  2293  
  2294  func (x *HedgePolicy) String() string {
  2295  	return protoimpl.X.MessageStringOf(x)
  2296  }
  2297  
  2298  func (*HedgePolicy) ProtoMessage() {}
  2299  
  2300  func (x *HedgePolicy) ProtoReflect() protoreflect.Message {
  2301  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[8]
  2302  	if protoimpl.UnsafeEnabled && x != nil {
  2303  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2304  		if ms.LoadMessageInfo() == nil {
  2305  			ms.StoreMessageInfo(mi)
  2306  		}
  2307  		return ms
  2308  	}
  2309  	return mi.MessageOf(x)
  2310  }
  2311  
  2312  // Deprecated: Use HedgePolicy.ProtoReflect.Descriptor instead.
  2313  func (*HedgePolicy) Descriptor() ([]byte, []int) {
  2314  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{8}
  2315  }
  2316  
  2317  func (x *HedgePolicy) GetInitialRequests() *wrappers.UInt32Value {
  2318  	if x != nil {
  2319  		return x.InitialRequests
  2320  	}
  2321  	return nil
  2322  }
  2323  
  2324  func (x *HedgePolicy) GetAdditionalRequestChance() *v32.FractionalPercent {
  2325  	if x != nil {
  2326  		return x.AdditionalRequestChance
  2327  	}
  2328  	return nil
  2329  }
  2330  
  2331  func (x *HedgePolicy) GetHedgeOnPerTryTimeout() bool {
  2332  	if x != nil {
  2333  		return x.HedgeOnPerTryTimeout
  2334  	}
  2335  	return false
  2336  }
  2337  
  2338  // [#next-free-field: 10]
  2339  type RedirectAction struct {
  2340  	state         protoimpl.MessageState
  2341  	sizeCache     protoimpl.SizeCache
  2342  	unknownFields protoimpl.UnknownFields
  2343  
  2344  	// When the scheme redirection take place, the following rules apply:
  2345  	//  1. If the source URI scheme is `http` and the port is explicitly
  2346  	//     set to `:80`, the port will be removed after the redirection
  2347  	//  2. If the source URI scheme is `https` and the port is explicitly
  2348  	//     set to `:443`, the port will be removed after the redirection
  2349  	//
  2350  	// Types that are assignable to SchemeRewriteSpecifier:
  2351  	//	*RedirectAction_HttpsRedirect
  2352  	//	*RedirectAction_SchemeRedirect
  2353  	SchemeRewriteSpecifier isRedirectAction_SchemeRewriteSpecifier `protobuf_oneof:"scheme_rewrite_specifier"`
  2354  	// The host portion of the URL will be swapped with this value.
  2355  	HostRedirect string `protobuf:"bytes,1,opt,name=host_redirect,json=hostRedirect,proto3" json:"host_redirect,omitempty"`
  2356  	// The port value of the URL will be swapped with this value.
  2357  	PortRedirect uint32 `protobuf:"varint,8,opt,name=port_redirect,json=portRedirect,proto3" json:"port_redirect,omitempty"`
  2358  	// Types that are assignable to PathRewriteSpecifier:
  2359  	//	*RedirectAction_PathRedirect
  2360  	//	*RedirectAction_PrefixRewrite
  2361  	//	*RedirectAction_RegexRewrite
  2362  	PathRewriteSpecifier isRedirectAction_PathRewriteSpecifier `protobuf_oneof:"path_rewrite_specifier"`
  2363  	// The HTTP status code to use in the redirect response. The default response
  2364  	// code is MOVED_PERMANENTLY (301).
  2365  	ResponseCode RedirectAction_RedirectResponseCode `protobuf:"varint,3,opt,name=response_code,json=responseCode,proto3,enum=envoy.config.route.v3.RedirectAction_RedirectResponseCode" json:"response_code,omitempty"`
  2366  	// Indicates that during redirection, the query portion of the URL will
  2367  	// be removed. Default value is false.
  2368  	StripQuery bool `protobuf:"varint,6,opt,name=strip_query,json=stripQuery,proto3" json:"strip_query,omitempty"`
  2369  }
  2370  
  2371  func (x *RedirectAction) Reset() {
  2372  	*x = RedirectAction{}
  2373  	if protoimpl.UnsafeEnabled {
  2374  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[9]
  2375  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2376  		ms.StoreMessageInfo(mi)
  2377  	}
  2378  }
  2379  
  2380  func (x *RedirectAction) String() string {
  2381  	return protoimpl.X.MessageStringOf(x)
  2382  }
  2383  
  2384  func (*RedirectAction) ProtoMessage() {}
  2385  
  2386  func (x *RedirectAction) ProtoReflect() protoreflect.Message {
  2387  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[9]
  2388  	if protoimpl.UnsafeEnabled && x != nil {
  2389  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2390  		if ms.LoadMessageInfo() == nil {
  2391  			ms.StoreMessageInfo(mi)
  2392  		}
  2393  		return ms
  2394  	}
  2395  	return mi.MessageOf(x)
  2396  }
  2397  
  2398  // Deprecated: Use RedirectAction.ProtoReflect.Descriptor instead.
  2399  func (*RedirectAction) Descriptor() ([]byte, []int) {
  2400  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{9}
  2401  }
  2402  
  2403  func (m *RedirectAction) GetSchemeRewriteSpecifier() isRedirectAction_SchemeRewriteSpecifier {
  2404  	if m != nil {
  2405  		return m.SchemeRewriteSpecifier
  2406  	}
  2407  	return nil
  2408  }
  2409  
  2410  func (x *RedirectAction) GetHttpsRedirect() bool {
  2411  	if x, ok := x.GetSchemeRewriteSpecifier().(*RedirectAction_HttpsRedirect); ok {
  2412  		return x.HttpsRedirect
  2413  	}
  2414  	return false
  2415  }
  2416  
  2417  func (x *RedirectAction) GetSchemeRedirect() string {
  2418  	if x, ok := x.GetSchemeRewriteSpecifier().(*RedirectAction_SchemeRedirect); ok {
  2419  		return x.SchemeRedirect
  2420  	}
  2421  	return ""
  2422  }
  2423  
  2424  func (x *RedirectAction) GetHostRedirect() string {
  2425  	if x != nil {
  2426  		return x.HostRedirect
  2427  	}
  2428  	return ""
  2429  }
  2430  
  2431  func (x *RedirectAction) GetPortRedirect() uint32 {
  2432  	if x != nil {
  2433  		return x.PortRedirect
  2434  	}
  2435  	return 0
  2436  }
  2437  
  2438  func (m *RedirectAction) GetPathRewriteSpecifier() isRedirectAction_PathRewriteSpecifier {
  2439  	if m != nil {
  2440  		return m.PathRewriteSpecifier
  2441  	}
  2442  	return nil
  2443  }
  2444  
  2445  func (x *RedirectAction) GetPathRedirect() string {
  2446  	if x, ok := x.GetPathRewriteSpecifier().(*RedirectAction_PathRedirect); ok {
  2447  		return x.PathRedirect
  2448  	}
  2449  	return ""
  2450  }
  2451  
  2452  func (x *RedirectAction) GetPrefixRewrite() string {
  2453  	if x, ok := x.GetPathRewriteSpecifier().(*RedirectAction_PrefixRewrite); ok {
  2454  		return x.PrefixRewrite
  2455  	}
  2456  	return ""
  2457  }
  2458  
  2459  func (x *RedirectAction) GetRegexRewrite() *v31.RegexMatchAndSubstitute {
  2460  	if x, ok := x.GetPathRewriteSpecifier().(*RedirectAction_RegexRewrite); ok {
  2461  		return x.RegexRewrite
  2462  	}
  2463  	return nil
  2464  }
  2465  
  2466  func (x *RedirectAction) GetResponseCode() RedirectAction_RedirectResponseCode {
  2467  	if x != nil {
  2468  		return x.ResponseCode
  2469  	}
  2470  	return RedirectAction_MOVED_PERMANENTLY
  2471  }
  2472  
  2473  func (x *RedirectAction) GetStripQuery() bool {
  2474  	if x != nil {
  2475  		return x.StripQuery
  2476  	}
  2477  	return false
  2478  }
  2479  
  2480  type isRedirectAction_SchemeRewriteSpecifier interface {
  2481  	isRedirectAction_SchemeRewriteSpecifier()
  2482  }
  2483  
  2484  type RedirectAction_HttpsRedirect struct {
  2485  	// The scheme portion of the URL will be swapped with "https".
  2486  	HttpsRedirect bool `protobuf:"varint,4,opt,name=https_redirect,json=httpsRedirect,proto3,oneof"`
  2487  }
  2488  
  2489  type RedirectAction_SchemeRedirect struct {
  2490  	// The scheme portion of the URL will be swapped with this value.
  2491  	SchemeRedirect string `protobuf:"bytes,7,opt,name=scheme_redirect,json=schemeRedirect,proto3,oneof"`
  2492  }
  2493  
  2494  func (*RedirectAction_HttpsRedirect) isRedirectAction_SchemeRewriteSpecifier() {}
  2495  
  2496  func (*RedirectAction_SchemeRedirect) isRedirectAction_SchemeRewriteSpecifier() {}
  2497  
  2498  type isRedirectAction_PathRewriteSpecifier interface {
  2499  	isRedirectAction_PathRewriteSpecifier()
  2500  }
  2501  
  2502  type RedirectAction_PathRedirect struct {
  2503  	// The path portion of the URL will be swapped with this value.
  2504  	// Please note that query string in path_redirect will override the
  2505  	// request's query string and will not be stripped.
  2506  	//
  2507  	// For example, let's say we have the following routes:
  2508  	//
  2509  	// - match: { path: "/old-path-1" }
  2510  	//   redirect: { path_redirect: "/new-path-1" }
  2511  	// - match: { path: "/old-path-2" }
  2512  	//   redirect: { path_redirect: "/new-path-2", strip-query: "true" }
  2513  	// - match: { path: "/old-path-3" }
  2514  	//   redirect: { path_redirect: "/new-path-3?foo=1", strip_query: "true" }
  2515  	//
  2516  	// 1. if request uri is "/old-path-1?bar=1", users will be redirected to "/new-path-1?bar=1"
  2517  	// 2. if request uri is "/old-path-2?bar=1", users will be redirected to "/new-path-2"
  2518  	// 3. if request uri is "/old-path-3?bar=1", users will be redirected to "/new-path-3?foo=1"
  2519  	PathRedirect string `protobuf:"bytes,2,opt,name=path_redirect,json=pathRedirect,proto3,oneof"`
  2520  }
  2521  
  2522  type RedirectAction_PrefixRewrite struct {
  2523  	// Indicates that during redirection, the matched prefix (or path)
  2524  	// should be swapped with this value. This option allows redirect URLs be dynamically created
  2525  	// based on the request.
  2526  	//
  2527  	// .. attention::
  2528  	//
  2529  	//   Pay attention to the use of trailing slashes as mentioned in
  2530  	//   :ref:`RouteAction's prefix_rewrite <envoy_v3_api_field_config.route.v3.RouteAction.prefix_rewrite>`.
  2531  	PrefixRewrite string `protobuf:"bytes,5,opt,name=prefix_rewrite,json=prefixRewrite,proto3,oneof"`
  2532  }
  2533  
  2534  type RedirectAction_RegexRewrite struct {
  2535  	// Indicates that during redirect, portions of the path that match the
  2536  	// pattern should be rewritten, even allowing the substitution of capture
  2537  	// groups from the pattern into the new path as specified by the rewrite
  2538  	// substitution string. This is useful to allow application paths to be
  2539  	// rewritten in a way that is aware of segments with variable content like
  2540  	// identifiers.
  2541  	//
  2542  	// Examples using Google's `RE2 <https://github.com/google/re2>`_ engine:
  2543  	//
  2544  	// * The path pattern ``^/service/([^/]+)(/.*)$`` paired with a substitution
  2545  	//   string of ``\2/instance/\1`` would transform ``/service/foo/v1/api``
  2546  	//   into ``/v1/api/instance/foo``.
  2547  	//
  2548  	// * The pattern ``one`` paired with a substitution string of ``two`` would
  2549  	//   transform ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/two/zzz``.
  2550  	//
  2551  	// * The pattern ``^(.*?)one(.*)$`` paired with a substitution string of
  2552  	//   ``\1two\2`` would replace only the first occurrence of ``one``,
  2553  	//   transforming path ``/xxx/one/yyy/one/zzz`` into ``/xxx/two/yyy/one/zzz``.
  2554  	//
  2555  	// * The pattern ``(?i)/xxx/`` paired with a substitution string of ``/yyy/``
  2556  	//   would do a case-insensitive match and transform path ``/aaa/XxX/bbb`` to
  2557  	//   ``/aaa/yyy/bbb``.
  2558  	RegexRewrite *v31.RegexMatchAndSubstitute `protobuf:"bytes,9,opt,name=regex_rewrite,json=regexRewrite,proto3,oneof"`
  2559  }
  2560  
  2561  func (*RedirectAction_PathRedirect) isRedirectAction_PathRewriteSpecifier() {}
  2562  
  2563  func (*RedirectAction_PrefixRewrite) isRedirectAction_PathRewriteSpecifier() {}
  2564  
  2565  func (*RedirectAction_RegexRewrite) isRedirectAction_PathRewriteSpecifier() {}
  2566  
  2567  type DirectResponseAction struct {
  2568  	state         protoimpl.MessageState
  2569  	sizeCache     protoimpl.SizeCache
  2570  	unknownFields protoimpl.UnknownFields
  2571  
  2572  	// Specifies the HTTP response status to be returned.
  2573  	Status uint32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"`
  2574  	// Specifies the content of the response body. If this setting is omitted,
  2575  	// no body is included in the generated response.
  2576  	//
  2577  	// .. note::
  2578  	//
  2579  	//   Headers can be specified using *response_headers_to_add* in the enclosing
  2580  	//   :ref:`envoy_v3_api_msg_config.route.v3.Route`, :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` or
  2581  	//   :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost`.
  2582  	Body *v3.DataSource `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"`
  2583  }
  2584  
  2585  func (x *DirectResponseAction) Reset() {
  2586  	*x = DirectResponseAction{}
  2587  	if protoimpl.UnsafeEnabled {
  2588  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[10]
  2589  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2590  		ms.StoreMessageInfo(mi)
  2591  	}
  2592  }
  2593  
  2594  func (x *DirectResponseAction) String() string {
  2595  	return protoimpl.X.MessageStringOf(x)
  2596  }
  2597  
  2598  func (*DirectResponseAction) ProtoMessage() {}
  2599  
  2600  func (x *DirectResponseAction) ProtoReflect() protoreflect.Message {
  2601  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[10]
  2602  	if protoimpl.UnsafeEnabled && x != nil {
  2603  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2604  		if ms.LoadMessageInfo() == nil {
  2605  			ms.StoreMessageInfo(mi)
  2606  		}
  2607  		return ms
  2608  	}
  2609  	return mi.MessageOf(x)
  2610  }
  2611  
  2612  // Deprecated: Use DirectResponseAction.ProtoReflect.Descriptor instead.
  2613  func (*DirectResponseAction) Descriptor() ([]byte, []int) {
  2614  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{10}
  2615  }
  2616  
  2617  func (x *DirectResponseAction) GetStatus() uint32 {
  2618  	if x != nil {
  2619  		return x.Status
  2620  	}
  2621  	return 0
  2622  }
  2623  
  2624  func (x *DirectResponseAction) GetBody() *v3.DataSource {
  2625  	if x != nil {
  2626  		return x.Body
  2627  	}
  2628  	return nil
  2629  }
  2630  
  2631  // [#not-implemented-hide:]
  2632  type NonForwardingAction struct {
  2633  	state         protoimpl.MessageState
  2634  	sizeCache     protoimpl.SizeCache
  2635  	unknownFields protoimpl.UnknownFields
  2636  }
  2637  
  2638  func (x *NonForwardingAction) Reset() {
  2639  	*x = NonForwardingAction{}
  2640  	if protoimpl.UnsafeEnabled {
  2641  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[11]
  2642  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2643  		ms.StoreMessageInfo(mi)
  2644  	}
  2645  }
  2646  
  2647  func (x *NonForwardingAction) String() string {
  2648  	return protoimpl.X.MessageStringOf(x)
  2649  }
  2650  
  2651  func (*NonForwardingAction) ProtoMessage() {}
  2652  
  2653  func (x *NonForwardingAction) ProtoReflect() protoreflect.Message {
  2654  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[11]
  2655  	if protoimpl.UnsafeEnabled && x != nil {
  2656  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2657  		if ms.LoadMessageInfo() == nil {
  2658  			ms.StoreMessageInfo(mi)
  2659  		}
  2660  		return ms
  2661  	}
  2662  	return mi.MessageOf(x)
  2663  }
  2664  
  2665  // Deprecated: Use NonForwardingAction.ProtoReflect.Descriptor instead.
  2666  func (*NonForwardingAction) Descriptor() ([]byte, []int) {
  2667  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{11}
  2668  }
  2669  
  2670  type Decorator struct {
  2671  	state         protoimpl.MessageState
  2672  	sizeCache     protoimpl.SizeCache
  2673  	unknownFields protoimpl.UnknownFields
  2674  
  2675  	// The operation name associated with the request matched to this route. If tracing is
  2676  	// enabled, this information will be used as the span name reported for this request.
  2677  	//
  2678  	// .. note::
  2679  	//
  2680  	//   For ingress (inbound) requests, or egress (outbound) responses, this value may be overridden
  2681  	//   by the :ref:`x-envoy-decorator-operation
  2682  	//   <config_http_filters_router_x-envoy-decorator-operation>` header.
  2683  	Operation string `protobuf:"bytes,1,opt,name=operation,proto3" json:"operation,omitempty"`
  2684  	// Whether the decorated details should be propagated to the other party. The default is true.
  2685  	Propagate *wrappers.BoolValue `protobuf:"bytes,2,opt,name=propagate,proto3" json:"propagate,omitempty"`
  2686  }
  2687  
  2688  func (x *Decorator) Reset() {
  2689  	*x = Decorator{}
  2690  	if protoimpl.UnsafeEnabled {
  2691  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[12]
  2692  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2693  		ms.StoreMessageInfo(mi)
  2694  	}
  2695  }
  2696  
  2697  func (x *Decorator) String() string {
  2698  	return protoimpl.X.MessageStringOf(x)
  2699  }
  2700  
  2701  func (*Decorator) ProtoMessage() {}
  2702  
  2703  func (x *Decorator) ProtoReflect() protoreflect.Message {
  2704  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[12]
  2705  	if protoimpl.UnsafeEnabled && x != nil {
  2706  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2707  		if ms.LoadMessageInfo() == nil {
  2708  			ms.StoreMessageInfo(mi)
  2709  		}
  2710  		return ms
  2711  	}
  2712  	return mi.MessageOf(x)
  2713  }
  2714  
  2715  // Deprecated: Use Decorator.ProtoReflect.Descriptor instead.
  2716  func (*Decorator) Descriptor() ([]byte, []int) {
  2717  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{12}
  2718  }
  2719  
  2720  func (x *Decorator) GetOperation() string {
  2721  	if x != nil {
  2722  		return x.Operation
  2723  	}
  2724  	return ""
  2725  }
  2726  
  2727  func (x *Decorator) GetPropagate() *wrappers.BoolValue {
  2728  	if x != nil {
  2729  		return x.Propagate
  2730  	}
  2731  	return nil
  2732  }
  2733  
  2734  type Tracing struct {
  2735  	state         protoimpl.MessageState
  2736  	sizeCache     protoimpl.SizeCache
  2737  	unknownFields protoimpl.UnknownFields
  2738  
  2739  	// Target percentage of requests managed by this HTTP connection manager that will be force
  2740  	// traced if the :ref:`x-client-trace-id <config_http_conn_man_headers_x-client-trace-id>`
  2741  	// header is set. This field is a direct analog for the runtime variable
  2742  	// 'tracing.client_sampling' in the :ref:`HTTP Connection Manager
  2743  	// <config_http_conn_man_runtime>`.
  2744  	// Default: 100%
  2745  	ClientSampling *v32.FractionalPercent `protobuf:"bytes,1,opt,name=client_sampling,json=clientSampling,proto3" json:"client_sampling,omitempty"`
  2746  	// Target percentage of requests managed by this HTTP connection manager that will be randomly
  2747  	// selected for trace generation, if not requested by the client or not forced. This field is
  2748  	// a direct analog for the runtime variable 'tracing.random_sampling' in the
  2749  	// :ref:`HTTP Connection Manager <config_http_conn_man_runtime>`.
  2750  	// Default: 100%
  2751  	RandomSampling *v32.FractionalPercent `protobuf:"bytes,2,opt,name=random_sampling,json=randomSampling,proto3" json:"random_sampling,omitempty"`
  2752  	// Target percentage of requests managed by this HTTP connection manager that will be traced
  2753  	// after all other sampling checks have been applied (client-directed, force tracing, random
  2754  	// sampling). This field functions as an upper limit on the total configured sampling rate. For
  2755  	// instance, setting client_sampling to 100% but overall_sampling to 1% will result in only 1%
  2756  	// of client requests with the appropriate headers to be force traced. This field is a direct
  2757  	// analog for the runtime variable 'tracing.global_enabled' in the
  2758  	// :ref:`HTTP Connection Manager <config_http_conn_man_runtime>`.
  2759  	// Default: 100%
  2760  	OverallSampling *v32.FractionalPercent `protobuf:"bytes,3,opt,name=overall_sampling,json=overallSampling,proto3" json:"overall_sampling,omitempty"`
  2761  	// A list of custom tags with unique tag name to create tags for the active span.
  2762  	// It will take effect after merging with the :ref:`corresponding configuration
  2763  	// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.custom_tags>`
  2764  	// configured in the HTTP connection manager. If two tags with the same name are configured
  2765  	// each in the HTTP connection manager and the route level, the one configured here takes
  2766  	// priority.
  2767  	CustomTags []*v33.CustomTag `protobuf:"bytes,4,rep,name=custom_tags,json=customTags,proto3" json:"custom_tags,omitempty"`
  2768  }
  2769  
  2770  func (x *Tracing) Reset() {
  2771  	*x = Tracing{}
  2772  	if protoimpl.UnsafeEnabled {
  2773  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[13]
  2774  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2775  		ms.StoreMessageInfo(mi)
  2776  	}
  2777  }
  2778  
  2779  func (x *Tracing) String() string {
  2780  	return protoimpl.X.MessageStringOf(x)
  2781  }
  2782  
  2783  func (*Tracing) ProtoMessage() {}
  2784  
  2785  func (x *Tracing) ProtoReflect() protoreflect.Message {
  2786  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[13]
  2787  	if protoimpl.UnsafeEnabled && x != nil {
  2788  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2789  		if ms.LoadMessageInfo() == nil {
  2790  			ms.StoreMessageInfo(mi)
  2791  		}
  2792  		return ms
  2793  	}
  2794  	return mi.MessageOf(x)
  2795  }
  2796  
  2797  // Deprecated: Use Tracing.ProtoReflect.Descriptor instead.
  2798  func (*Tracing) Descriptor() ([]byte, []int) {
  2799  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{13}
  2800  }
  2801  
  2802  func (x *Tracing) GetClientSampling() *v32.FractionalPercent {
  2803  	if x != nil {
  2804  		return x.ClientSampling
  2805  	}
  2806  	return nil
  2807  }
  2808  
  2809  func (x *Tracing) GetRandomSampling() *v32.FractionalPercent {
  2810  	if x != nil {
  2811  		return x.RandomSampling
  2812  	}
  2813  	return nil
  2814  }
  2815  
  2816  func (x *Tracing) GetOverallSampling() *v32.FractionalPercent {
  2817  	if x != nil {
  2818  		return x.OverallSampling
  2819  	}
  2820  	return nil
  2821  }
  2822  
  2823  func (x *Tracing) GetCustomTags() []*v33.CustomTag {
  2824  	if x != nil {
  2825  		return x.CustomTags
  2826  	}
  2827  	return nil
  2828  }
  2829  
  2830  // A virtual cluster is a way of specifying a regex matching rule against
  2831  // certain important endpoints such that statistics are generated explicitly for
  2832  // the matched requests. The reason this is useful is that when doing
  2833  // prefix/path matching Envoy does not always know what the application
  2834  // considers to be an endpoint. Thus, it’s impossible for Envoy to generically
  2835  // emit per endpoint statistics. However, often systems have highly critical
  2836  // endpoints that they wish to get “perfect” statistics on. Virtual cluster
  2837  // statistics are perfect in the sense that they are emitted on the downstream
  2838  // side such that they include network level failures.
  2839  //
  2840  // Documentation for :ref:`virtual cluster statistics <config_http_filters_router_vcluster_stats>`.
  2841  //
  2842  // .. note::
  2843  //
  2844  //    Virtual clusters are a useful tool, but we do not recommend setting up a virtual cluster for
  2845  //    every application endpoint. This is both not easily maintainable and as well the matching and
  2846  //    statistics output are not free.
  2847  type VirtualCluster struct {
  2848  	state         protoimpl.MessageState
  2849  	sizeCache     protoimpl.SizeCache
  2850  	unknownFields protoimpl.UnknownFields
  2851  
  2852  	// Specifies a list of header matchers to use for matching requests. Each specified header must
  2853  	// match. The pseudo-headers `:path` and `:method` can be used to match the request path and
  2854  	// method, respectively.
  2855  	Headers []*HeaderMatcher `protobuf:"bytes,4,rep,name=headers,proto3" json:"headers,omitempty"`
  2856  	// Specifies the name of the virtual cluster. The virtual cluster name as well
  2857  	// as the virtual host name are used when emitting statistics. The statistics are emitted by the
  2858  	// router filter and are documented :ref:`here <config_http_filters_router_stats>`.
  2859  	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
  2860  	// Deprecated: Do not use.
  2861  	HiddenEnvoyDeprecatedPattern string `protobuf:"bytes,1,opt,name=hidden_envoy_deprecated_pattern,json=hiddenEnvoyDeprecatedPattern,proto3" json:"hidden_envoy_deprecated_pattern,omitempty"`
  2862  	// Deprecated: Do not use.
  2863  	HiddenEnvoyDeprecatedMethod v3.RequestMethod `protobuf:"varint,3,opt,name=hidden_envoy_deprecated_method,json=hiddenEnvoyDeprecatedMethod,proto3,enum=envoy.config.core.v3.RequestMethod" json:"hidden_envoy_deprecated_method,omitempty"`
  2864  }
  2865  
  2866  func (x *VirtualCluster) Reset() {
  2867  	*x = VirtualCluster{}
  2868  	if protoimpl.UnsafeEnabled {
  2869  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[14]
  2870  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2871  		ms.StoreMessageInfo(mi)
  2872  	}
  2873  }
  2874  
  2875  func (x *VirtualCluster) String() string {
  2876  	return protoimpl.X.MessageStringOf(x)
  2877  }
  2878  
  2879  func (*VirtualCluster) ProtoMessage() {}
  2880  
  2881  func (x *VirtualCluster) ProtoReflect() protoreflect.Message {
  2882  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[14]
  2883  	if protoimpl.UnsafeEnabled && x != nil {
  2884  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2885  		if ms.LoadMessageInfo() == nil {
  2886  			ms.StoreMessageInfo(mi)
  2887  		}
  2888  		return ms
  2889  	}
  2890  	return mi.MessageOf(x)
  2891  }
  2892  
  2893  // Deprecated: Use VirtualCluster.ProtoReflect.Descriptor instead.
  2894  func (*VirtualCluster) Descriptor() ([]byte, []int) {
  2895  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{14}
  2896  }
  2897  
  2898  func (x *VirtualCluster) GetHeaders() []*HeaderMatcher {
  2899  	if x != nil {
  2900  		return x.Headers
  2901  	}
  2902  	return nil
  2903  }
  2904  
  2905  func (x *VirtualCluster) GetName() string {
  2906  	if x != nil {
  2907  		return x.Name
  2908  	}
  2909  	return ""
  2910  }
  2911  
  2912  // Deprecated: Do not use.
  2913  func (x *VirtualCluster) GetHiddenEnvoyDeprecatedPattern() string {
  2914  	if x != nil {
  2915  		return x.HiddenEnvoyDeprecatedPattern
  2916  	}
  2917  	return ""
  2918  }
  2919  
  2920  // Deprecated: Do not use.
  2921  func (x *VirtualCluster) GetHiddenEnvoyDeprecatedMethod() v3.RequestMethod {
  2922  	if x != nil {
  2923  		return x.HiddenEnvoyDeprecatedMethod
  2924  	}
  2925  	return v3.RequestMethod_METHOD_UNSPECIFIED
  2926  }
  2927  
  2928  // Global rate limiting :ref:`architecture overview <arch_overview_global_rate_limit>`.
  2929  // Also applies to Local rate limiting :ref:`using descriptors <config_http_filters_local_rate_limit_descriptors>`.
  2930  type RateLimit struct {
  2931  	state         protoimpl.MessageState
  2932  	sizeCache     protoimpl.SizeCache
  2933  	unknownFields protoimpl.UnknownFields
  2934  
  2935  	// Refers to the stage set in the filter. The rate limit configuration only
  2936  	// applies to filters with the same stage number. The default stage number is
  2937  	// 0.
  2938  	//
  2939  	// .. note::
  2940  	//
  2941  	//   The filter supports a range of 0 - 10 inclusively for stage numbers.
  2942  	Stage *wrappers.UInt32Value `protobuf:"bytes,1,opt,name=stage,proto3" json:"stage,omitempty"`
  2943  	// The key to be set in runtime to disable this rate limit configuration.
  2944  	DisableKey string `protobuf:"bytes,2,opt,name=disable_key,json=disableKey,proto3" json:"disable_key,omitempty"`
  2945  	// A list of actions that are to be applied for this rate limit configuration.
  2946  	// Order matters as the actions are processed sequentially and the descriptor
  2947  	// is composed by appending descriptor entries in that sequence. If an action
  2948  	// cannot append a descriptor entry, no descriptor is generated for the
  2949  	// configuration. See :ref:`composing actions
  2950  	// <config_http_filters_rate_limit_composing_actions>` for additional documentation.
  2951  	Actions []*RateLimit_Action `protobuf:"bytes,3,rep,name=actions,proto3" json:"actions,omitempty"`
  2952  	// An optional limit override to be appended to the descriptor produced by this
  2953  	// rate limit configuration. If the override value is invalid or cannot be resolved
  2954  	// from metadata, no override is provided. See :ref:`rate limit override
  2955  	// <config_http_filters_rate_limit_rate_limit_override>` for more information.
  2956  	Limit *RateLimit_Override `protobuf:"bytes,4,opt,name=limit,proto3" json:"limit,omitempty"`
  2957  }
  2958  
  2959  func (x *RateLimit) Reset() {
  2960  	*x = RateLimit{}
  2961  	if protoimpl.UnsafeEnabled {
  2962  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[15]
  2963  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2964  		ms.StoreMessageInfo(mi)
  2965  	}
  2966  }
  2967  
  2968  func (x *RateLimit) String() string {
  2969  	return protoimpl.X.MessageStringOf(x)
  2970  }
  2971  
  2972  func (*RateLimit) ProtoMessage() {}
  2973  
  2974  func (x *RateLimit) ProtoReflect() protoreflect.Message {
  2975  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[15]
  2976  	if protoimpl.UnsafeEnabled && x != nil {
  2977  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  2978  		if ms.LoadMessageInfo() == nil {
  2979  			ms.StoreMessageInfo(mi)
  2980  		}
  2981  		return ms
  2982  	}
  2983  	return mi.MessageOf(x)
  2984  }
  2985  
  2986  // Deprecated: Use RateLimit.ProtoReflect.Descriptor instead.
  2987  func (*RateLimit) Descriptor() ([]byte, []int) {
  2988  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{15}
  2989  }
  2990  
  2991  func (x *RateLimit) GetStage() *wrappers.UInt32Value {
  2992  	if x != nil {
  2993  		return x.Stage
  2994  	}
  2995  	return nil
  2996  }
  2997  
  2998  func (x *RateLimit) GetDisableKey() string {
  2999  	if x != nil {
  3000  		return x.DisableKey
  3001  	}
  3002  	return ""
  3003  }
  3004  
  3005  func (x *RateLimit) GetActions() []*RateLimit_Action {
  3006  	if x != nil {
  3007  		return x.Actions
  3008  	}
  3009  	return nil
  3010  }
  3011  
  3012  func (x *RateLimit) GetLimit() *RateLimit_Override {
  3013  	if x != nil {
  3014  		return x.Limit
  3015  	}
  3016  	return nil
  3017  }
  3018  
  3019  // .. attention::
  3020  //
  3021  //   Internally, Envoy always uses the HTTP/2 *:authority* header to represent the HTTP/1 *Host*
  3022  //   header. Thus, if attempting to match on *Host*, match on *:authority* instead.
  3023  //
  3024  // .. attention::
  3025  //
  3026  //   To route on HTTP method, use the special HTTP/2 *:method* header. This works for both
  3027  //   HTTP/1 and HTTP/2 as Envoy normalizes headers. E.g.,
  3028  //
  3029  //   .. code-block:: json
  3030  //
  3031  //     {
  3032  //       "name": ":method",
  3033  //       "exact_match": "POST"
  3034  //     }
  3035  //
  3036  // .. attention::
  3037  //   In the absence of any header match specifier, match will default to :ref:`present_match
  3038  //   <envoy_v3_api_field_config.route.v3.HeaderMatcher.present_match>`. i.e, a request that has the :ref:`name
  3039  //   <envoy_v3_api_field_config.route.v3.HeaderMatcher.name>` header will match, regardless of the header's
  3040  //   value.
  3041  //
  3042  //  [#next-major-version: HeaderMatcher should be refactored to use StringMatcher.]
  3043  // [#next-free-field: 14]
  3044  type HeaderMatcher struct {
  3045  	state         protoimpl.MessageState
  3046  	sizeCache     protoimpl.SizeCache
  3047  	unknownFields protoimpl.UnknownFields
  3048  
  3049  	// Specifies the name of the header in the request.
  3050  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  3051  	// Specifies how the header match will be performed to route the request.
  3052  	//
  3053  	// Types that are assignable to HeaderMatchSpecifier:
  3054  	//	*HeaderMatcher_ExactMatch
  3055  	//	*HeaderMatcher_SafeRegexMatch
  3056  	//	*HeaderMatcher_RangeMatch
  3057  	//	*HeaderMatcher_PresentMatch
  3058  	//	*HeaderMatcher_PrefixMatch
  3059  	//	*HeaderMatcher_SuffixMatch
  3060  	//	*HeaderMatcher_ContainsMatch
  3061  	//	*HeaderMatcher_StringMatch
  3062  	//	*HeaderMatcher_HiddenEnvoyDeprecatedRegexMatch
  3063  	HeaderMatchSpecifier isHeaderMatcher_HeaderMatchSpecifier `protobuf_oneof:"header_match_specifier"`
  3064  	// If specified, the match result will be inverted before checking. Defaults to false.
  3065  	//
  3066  	// Examples:
  3067  	//
  3068  	// * The regex ``\d{3}`` does not match the value *1234*, so it will match when inverted.
  3069  	// * The range [-10,0) will match the value -1, so it will not match when inverted.
  3070  	InvertMatch bool `protobuf:"varint,8,opt,name=invert_match,json=invertMatch,proto3" json:"invert_match,omitempty"`
  3071  }
  3072  
  3073  func (x *HeaderMatcher) Reset() {
  3074  	*x = HeaderMatcher{}
  3075  	if protoimpl.UnsafeEnabled {
  3076  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[16]
  3077  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3078  		ms.StoreMessageInfo(mi)
  3079  	}
  3080  }
  3081  
  3082  func (x *HeaderMatcher) String() string {
  3083  	return protoimpl.X.MessageStringOf(x)
  3084  }
  3085  
  3086  func (*HeaderMatcher) ProtoMessage() {}
  3087  
  3088  func (x *HeaderMatcher) ProtoReflect() protoreflect.Message {
  3089  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[16]
  3090  	if protoimpl.UnsafeEnabled && x != nil {
  3091  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3092  		if ms.LoadMessageInfo() == nil {
  3093  			ms.StoreMessageInfo(mi)
  3094  		}
  3095  		return ms
  3096  	}
  3097  	return mi.MessageOf(x)
  3098  }
  3099  
  3100  // Deprecated: Use HeaderMatcher.ProtoReflect.Descriptor instead.
  3101  func (*HeaderMatcher) Descriptor() ([]byte, []int) {
  3102  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{16}
  3103  }
  3104  
  3105  func (x *HeaderMatcher) GetName() string {
  3106  	if x != nil {
  3107  		return x.Name
  3108  	}
  3109  	return ""
  3110  }
  3111  
  3112  func (m *HeaderMatcher) GetHeaderMatchSpecifier() isHeaderMatcher_HeaderMatchSpecifier {
  3113  	if m != nil {
  3114  		return m.HeaderMatchSpecifier
  3115  	}
  3116  	return nil
  3117  }
  3118  
  3119  // Deprecated: Do not use.
  3120  func (x *HeaderMatcher) GetExactMatch() string {
  3121  	if x, ok := x.GetHeaderMatchSpecifier().(*HeaderMatcher_ExactMatch); ok {
  3122  		return x.ExactMatch
  3123  	}
  3124  	return ""
  3125  }
  3126  
  3127  // Deprecated: Do not use.
  3128  func (x *HeaderMatcher) GetSafeRegexMatch() *v31.RegexMatcher {
  3129  	if x, ok := x.GetHeaderMatchSpecifier().(*HeaderMatcher_SafeRegexMatch); ok {
  3130  		return x.SafeRegexMatch
  3131  	}
  3132  	return nil
  3133  }
  3134  
  3135  func (x *HeaderMatcher) GetRangeMatch() *v32.Int64Range {
  3136  	if x, ok := x.GetHeaderMatchSpecifier().(*HeaderMatcher_RangeMatch); ok {
  3137  		return x.RangeMatch
  3138  	}
  3139  	return nil
  3140  }
  3141  
  3142  func (x *HeaderMatcher) GetPresentMatch() bool {
  3143  	if x, ok := x.GetHeaderMatchSpecifier().(*HeaderMatcher_PresentMatch); ok {
  3144  		return x.PresentMatch
  3145  	}
  3146  	return false
  3147  }
  3148  
  3149  // Deprecated: Do not use.
  3150  func (x *HeaderMatcher) GetPrefixMatch() string {
  3151  	if x, ok := x.GetHeaderMatchSpecifier().(*HeaderMatcher_PrefixMatch); ok {
  3152  		return x.PrefixMatch
  3153  	}
  3154  	return ""
  3155  }
  3156  
  3157  // Deprecated: Do not use.
  3158  func (x *HeaderMatcher) GetSuffixMatch() string {
  3159  	if x, ok := x.GetHeaderMatchSpecifier().(*HeaderMatcher_SuffixMatch); ok {
  3160  		return x.SuffixMatch
  3161  	}
  3162  	return ""
  3163  }
  3164  
  3165  // Deprecated: Do not use.
  3166  func (x *HeaderMatcher) GetContainsMatch() string {
  3167  	if x, ok := x.GetHeaderMatchSpecifier().(*HeaderMatcher_ContainsMatch); ok {
  3168  		return x.ContainsMatch
  3169  	}
  3170  	return ""
  3171  }
  3172  
  3173  func (x *HeaderMatcher) GetStringMatch() *v31.StringMatcher {
  3174  	if x, ok := x.GetHeaderMatchSpecifier().(*HeaderMatcher_StringMatch); ok {
  3175  		return x.StringMatch
  3176  	}
  3177  	return nil
  3178  }
  3179  
  3180  // Deprecated: Do not use.
  3181  func (x *HeaderMatcher) GetHiddenEnvoyDeprecatedRegexMatch() string {
  3182  	if x, ok := x.GetHeaderMatchSpecifier().(*HeaderMatcher_HiddenEnvoyDeprecatedRegexMatch); ok {
  3183  		return x.HiddenEnvoyDeprecatedRegexMatch
  3184  	}
  3185  	return ""
  3186  }
  3187  
  3188  func (x *HeaderMatcher) GetInvertMatch() bool {
  3189  	if x != nil {
  3190  		return x.InvertMatch
  3191  	}
  3192  	return false
  3193  }
  3194  
  3195  type isHeaderMatcher_HeaderMatchSpecifier interface {
  3196  	isHeaderMatcher_HeaderMatchSpecifier()
  3197  }
  3198  
  3199  type HeaderMatcher_ExactMatch struct {
  3200  	// If specified, header match will be performed based on the value of the header.
  3201  	// This field is deprecated. Please use :ref:`string_match <envoy_v3_api_field_config.route.v3.HeaderMatcher.string_match>`.
  3202  	//
  3203  	// Deprecated: Do not use.
  3204  	ExactMatch string `protobuf:"bytes,4,opt,name=exact_match,json=exactMatch,proto3,oneof"`
  3205  }
  3206  
  3207  type HeaderMatcher_SafeRegexMatch struct {
  3208  	// If specified, this regex string is a regular expression rule which implies the entire request
  3209  	// header value must match the regex. The rule will not match if only a subsequence of the
  3210  	// request header value matches the regex.
  3211  	// This field is deprecated. Please use :ref:`string_match <envoy_v3_api_field_config.route.v3.HeaderMatcher.string_match>`.
  3212  	//
  3213  	// Deprecated: Do not use.
  3214  	SafeRegexMatch *v31.RegexMatcher `protobuf:"bytes,11,opt,name=safe_regex_match,json=safeRegexMatch,proto3,oneof"`
  3215  }
  3216  
  3217  type HeaderMatcher_RangeMatch struct {
  3218  	// If specified, header match will be performed based on range.
  3219  	// The rule will match if the request header value is within this range.
  3220  	// The entire request header value must represent an integer in base 10 notation: consisting of
  3221  	// an optional plus or minus sign followed by a sequence of digits. The rule will not match if
  3222  	// the header value does not represent an integer. Match will fail for empty values, floating
  3223  	// point numbers or if only a subsequence of the header value is an integer.
  3224  	//
  3225  	// Examples:
  3226  	//
  3227  	// * For range [-10,0), route will match for header value -1, but not for 0, "somestring", 10.9,
  3228  	//   "-1somestring"
  3229  	RangeMatch *v32.Int64Range `protobuf:"bytes,6,opt,name=range_match,json=rangeMatch,proto3,oneof"`
  3230  }
  3231  
  3232  type HeaderMatcher_PresentMatch struct {
  3233  	// If specified as true, header match will be performed based on whether the header is in the
  3234  	// request. If specified as false, header match will be performed based on whether the header is absent.
  3235  	PresentMatch bool `protobuf:"varint,7,opt,name=present_match,json=presentMatch,proto3,oneof"`
  3236  }
  3237  
  3238  type HeaderMatcher_PrefixMatch struct {
  3239  	// If specified, header match will be performed based on the prefix of the header value.
  3240  	// Note: empty prefix is not allowed, please use present_match instead.
  3241  	// This field is deprecated. Please use :ref:`string_match <envoy_v3_api_field_config.route.v3.HeaderMatcher.string_match>`.
  3242  	//
  3243  	// Examples:
  3244  	//
  3245  	// * The prefix *abcd* matches the value *abcdxyz*, but not for *abcxyz*.
  3246  	//
  3247  	// Deprecated: Do not use.
  3248  	PrefixMatch string `protobuf:"bytes,9,opt,name=prefix_match,json=prefixMatch,proto3,oneof"`
  3249  }
  3250  
  3251  type HeaderMatcher_SuffixMatch struct {
  3252  	// If specified, header match will be performed based on the suffix of the header value.
  3253  	// Note: empty suffix is not allowed, please use present_match instead.
  3254  	// This field is deprecated. Please use :ref:`string_match <envoy_v3_api_field_config.route.v3.HeaderMatcher.string_match>`.
  3255  	//
  3256  	// Examples:
  3257  	//
  3258  	// * The suffix *abcd* matches the value *xyzabcd*, but not for *xyzbcd*.
  3259  	//
  3260  	// Deprecated: Do not use.
  3261  	SuffixMatch string `protobuf:"bytes,10,opt,name=suffix_match,json=suffixMatch,proto3,oneof"`
  3262  }
  3263  
  3264  type HeaderMatcher_ContainsMatch struct {
  3265  	// If specified, header match will be performed based on whether the header value contains
  3266  	// the given value or not.
  3267  	// Note: empty contains match is not allowed, please use present_match instead.
  3268  	// This field is deprecated. Please use :ref:`string_match <envoy_v3_api_field_config.route.v3.HeaderMatcher.string_match>`.
  3269  	//
  3270  	// Examples:
  3271  	//
  3272  	// * The value *abcd* matches the value *xyzabcdpqr*, but not for *xyzbcdpqr*.
  3273  	//
  3274  	// Deprecated: Do not use.
  3275  	ContainsMatch string `protobuf:"bytes,12,opt,name=contains_match,json=containsMatch,proto3,oneof"`
  3276  }
  3277  
  3278  type HeaderMatcher_StringMatch struct {
  3279  	// If specified, header match will be performed based on the string match of the header value.
  3280  	StringMatch *v31.StringMatcher `protobuf:"bytes,13,opt,name=string_match,json=stringMatch,proto3,oneof"`
  3281  }
  3282  
  3283  type HeaderMatcher_HiddenEnvoyDeprecatedRegexMatch struct {
  3284  	// Deprecated: Do not use.
  3285  	HiddenEnvoyDeprecatedRegexMatch string `protobuf:"bytes,5,opt,name=hidden_envoy_deprecated_regex_match,json=hiddenEnvoyDeprecatedRegexMatch,proto3,oneof"`
  3286  }
  3287  
  3288  func (*HeaderMatcher_ExactMatch) isHeaderMatcher_HeaderMatchSpecifier() {}
  3289  
  3290  func (*HeaderMatcher_SafeRegexMatch) isHeaderMatcher_HeaderMatchSpecifier() {}
  3291  
  3292  func (*HeaderMatcher_RangeMatch) isHeaderMatcher_HeaderMatchSpecifier() {}
  3293  
  3294  func (*HeaderMatcher_PresentMatch) isHeaderMatcher_HeaderMatchSpecifier() {}
  3295  
  3296  func (*HeaderMatcher_PrefixMatch) isHeaderMatcher_HeaderMatchSpecifier() {}
  3297  
  3298  func (*HeaderMatcher_SuffixMatch) isHeaderMatcher_HeaderMatchSpecifier() {}
  3299  
  3300  func (*HeaderMatcher_ContainsMatch) isHeaderMatcher_HeaderMatchSpecifier() {}
  3301  
  3302  func (*HeaderMatcher_StringMatch) isHeaderMatcher_HeaderMatchSpecifier() {}
  3303  
  3304  func (*HeaderMatcher_HiddenEnvoyDeprecatedRegexMatch) isHeaderMatcher_HeaderMatchSpecifier() {}
  3305  
  3306  // Query parameter matching treats the query string of a request's :path header
  3307  // as an ampersand-separated list of keys and/or key=value elements.
  3308  // [#next-free-field: 7]
  3309  type QueryParameterMatcher struct {
  3310  	state         protoimpl.MessageState
  3311  	sizeCache     protoimpl.SizeCache
  3312  	unknownFields protoimpl.UnknownFields
  3313  
  3314  	// Specifies the name of a key that must be present in the requested
  3315  	// *path*'s query string.
  3316  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  3317  	// Types that are assignable to QueryParameterMatchSpecifier:
  3318  	//	*QueryParameterMatcher_StringMatch
  3319  	//	*QueryParameterMatcher_PresentMatch
  3320  	QueryParameterMatchSpecifier isQueryParameterMatcher_QueryParameterMatchSpecifier `protobuf_oneof:"query_parameter_match_specifier"`
  3321  	// Deprecated: Do not use.
  3322  	HiddenEnvoyDeprecatedValue string `protobuf:"bytes,3,opt,name=hidden_envoy_deprecated_value,json=hiddenEnvoyDeprecatedValue,proto3" json:"hidden_envoy_deprecated_value,omitempty"`
  3323  	// Deprecated: Do not use.
  3324  	HiddenEnvoyDeprecatedRegex *wrappers.BoolValue `protobuf:"bytes,4,opt,name=hidden_envoy_deprecated_regex,json=hiddenEnvoyDeprecatedRegex,proto3" json:"hidden_envoy_deprecated_regex,omitempty"`
  3325  }
  3326  
  3327  func (x *QueryParameterMatcher) Reset() {
  3328  	*x = QueryParameterMatcher{}
  3329  	if protoimpl.UnsafeEnabled {
  3330  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[17]
  3331  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3332  		ms.StoreMessageInfo(mi)
  3333  	}
  3334  }
  3335  
  3336  func (x *QueryParameterMatcher) String() string {
  3337  	return protoimpl.X.MessageStringOf(x)
  3338  }
  3339  
  3340  func (*QueryParameterMatcher) ProtoMessage() {}
  3341  
  3342  func (x *QueryParameterMatcher) ProtoReflect() protoreflect.Message {
  3343  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[17]
  3344  	if protoimpl.UnsafeEnabled && x != nil {
  3345  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3346  		if ms.LoadMessageInfo() == nil {
  3347  			ms.StoreMessageInfo(mi)
  3348  		}
  3349  		return ms
  3350  	}
  3351  	return mi.MessageOf(x)
  3352  }
  3353  
  3354  // Deprecated: Use QueryParameterMatcher.ProtoReflect.Descriptor instead.
  3355  func (*QueryParameterMatcher) Descriptor() ([]byte, []int) {
  3356  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{17}
  3357  }
  3358  
  3359  func (x *QueryParameterMatcher) GetName() string {
  3360  	if x != nil {
  3361  		return x.Name
  3362  	}
  3363  	return ""
  3364  }
  3365  
  3366  func (m *QueryParameterMatcher) GetQueryParameterMatchSpecifier() isQueryParameterMatcher_QueryParameterMatchSpecifier {
  3367  	if m != nil {
  3368  		return m.QueryParameterMatchSpecifier
  3369  	}
  3370  	return nil
  3371  }
  3372  
  3373  func (x *QueryParameterMatcher) GetStringMatch() *v31.StringMatcher {
  3374  	if x, ok := x.GetQueryParameterMatchSpecifier().(*QueryParameterMatcher_StringMatch); ok {
  3375  		return x.StringMatch
  3376  	}
  3377  	return nil
  3378  }
  3379  
  3380  func (x *QueryParameterMatcher) GetPresentMatch() bool {
  3381  	if x, ok := x.GetQueryParameterMatchSpecifier().(*QueryParameterMatcher_PresentMatch); ok {
  3382  		return x.PresentMatch
  3383  	}
  3384  	return false
  3385  }
  3386  
  3387  // Deprecated: Do not use.
  3388  func (x *QueryParameterMatcher) GetHiddenEnvoyDeprecatedValue() string {
  3389  	if x != nil {
  3390  		return x.HiddenEnvoyDeprecatedValue
  3391  	}
  3392  	return ""
  3393  }
  3394  
  3395  // Deprecated: Do not use.
  3396  func (x *QueryParameterMatcher) GetHiddenEnvoyDeprecatedRegex() *wrappers.BoolValue {
  3397  	if x != nil {
  3398  		return x.HiddenEnvoyDeprecatedRegex
  3399  	}
  3400  	return nil
  3401  }
  3402  
  3403  type isQueryParameterMatcher_QueryParameterMatchSpecifier interface {
  3404  	isQueryParameterMatcher_QueryParameterMatchSpecifier()
  3405  }
  3406  
  3407  type QueryParameterMatcher_StringMatch struct {
  3408  	// Specifies whether a query parameter value should match against a string.
  3409  	StringMatch *v31.StringMatcher `protobuf:"bytes,5,opt,name=string_match,json=stringMatch,proto3,oneof"`
  3410  }
  3411  
  3412  type QueryParameterMatcher_PresentMatch struct {
  3413  	// Specifies whether a query parameter should be present.
  3414  	PresentMatch bool `protobuf:"varint,6,opt,name=present_match,json=presentMatch,proto3,oneof"`
  3415  }
  3416  
  3417  func (*QueryParameterMatcher_StringMatch) isQueryParameterMatcher_QueryParameterMatchSpecifier() {}
  3418  
  3419  func (*QueryParameterMatcher_PresentMatch) isQueryParameterMatcher_QueryParameterMatchSpecifier() {}
  3420  
  3421  // HTTP Internal Redirect :ref:`architecture overview <arch_overview_internal_redirects>`.
  3422  type InternalRedirectPolicy struct {
  3423  	state         protoimpl.MessageState
  3424  	sizeCache     protoimpl.SizeCache
  3425  	unknownFields protoimpl.UnknownFields
  3426  
  3427  	// An internal redirect is not handled, unless the number of previous internal redirects that a
  3428  	// downstream request has encountered is lower than this value.
  3429  	// In the case where a downstream request is bounced among multiple routes by internal redirect,
  3430  	// the first route that hits this threshold, or does not set :ref:`internal_redirect_policy
  3431  	// <envoy_v3_api_field_config.route.v3.RouteAction.internal_redirect_policy>`
  3432  	// will pass the redirect back to downstream.
  3433  	//
  3434  	// If not specified, at most one redirect will be followed.
  3435  	MaxInternalRedirects *wrappers.UInt32Value `protobuf:"bytes,1,opt,name=max_internal_redirects,json=maxInternalRedirects,proto3" json:"max_internal_redirects,omitempty"`
  3436  	// Defines what upstream response codes are allowed to trigger internal redirect. If unspecified,
  3437  	// only 302 will be treated as internal redirect.
  3438  	// Only 301, 302, 303, 307 and 308 are valid values. Any other codes will be ignored.
  3439  	RedirectResponseCodes []uint32 `protobuf:"varint,2,rep,packed,name=redirect_response_codes,json=redirectResponseCodes,proto3" json:"redirect_response_codes,omitempty"`
  3440  	// Specifies a list of predicates that are queried when an upstream response is deemed
  3441  	// to trigger an internal redirect by all other criteria. Any predicate in the list can reject
  3442  	// the redirect, causing the response to be proxied to downstream.
  3443  	// [#extension-category: envoy.internal_redirect_predicates]
  3444  	Predicates []*v3.TypedExtensionConfig `protobuf:"bytes,3,rep,name=predicates,proto3" json:"predicates,omitempty"`
  3445  	// Allow internal redirect to follow a target URI with a different scheme than the value of
  3446  	// x-forwarded-proto. The default is false.
  3447  	AllowCrossSchemeRedirect bool `protobuf:"varint,4,opt,name=allow_cross_scheme_redirect,json=allowCrossSchemeRedirect,proto3" json:"allow_cross_scheme_redirect,omitempty"`
  3448  }
  3449  
  3450  func (x *InternalRedirectPolicy) Reset() {
  3451  	*x = InternalRedirectPolicy{}
  3452  	if protoimpl.UnsafeEnabled {
  3453  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[18]
  3454  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3455  		ms.StoreMessageInfo(mi)
  3456  	}
  3457  }
  3458  
  3459  func (x *InternalRedirectPolicy) String() string {
  3460  	return protoimpl.X.MessageStringOf(x)
  3461  }
  3462  
  3463  func (*InternalRedirectPolicy) ProtoMessage() {}
  3464  
  3465  func (x *InternalRedirectPolicy) ProtoReflect() protoreflect.Message {
  3466  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[18]
  3467  	if protoimpl.UnsafeEnabled && x != nil {
  3468  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3469  		if ms.LoadMessageInfo() == nil {
  3470  			ms.StoreMessageInfo(mi)
  3471  		}
  3472  		return ms
  3473  	}
  3474  	return mi.MessageOf(x)
  3475  }
  3476  
  3477  // Deprecated: Use InternalRedirectPolicy.ProtoReflect.Descriptor instead.
  3478  func (*InternalRedirectPolicy) Descriptor() ([]byte, []int) {
  3479  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{18}
  3480  }
  3481  
  3482  func (x *InternalRedirectPolicy) GetMaxInternalRedirects() *wrappers.UInt32Value {
  3483  	if x != nil {
  3484  		return x.MaxInternalRedirects
  3485  	}
  3486  	return nil
  3487  }
  3488  
  3489  func (x *InternalRedirectPolicy) GetRedirectResponseCodes() []uint32 {
  3490  	if x != nil {
  3491  		return x.RedirectResponseCodes
  3492  	}
  3493  	return nil
  3494  }
  3495  
  3496  func (x *InternalRedirectPolicy) GetPredicates() []*v3.TypedExtensionConfig {
  3497  	if x != nil {
  3498  		return x.Predicates
  3499  	}
  3500  	return nil
  3501  }
  3502  
  3503  func (x *InternalRedirectPolicy) GetAllowCrossSchemeRedirect() bool {
  3504  	if x != nil {
  3505  		return x.AllowCrossSchemeRedirect
  3506  	}
  3507  	return false
  3508  }
  3509  
  3510  // A simple wrapper for an HTTP filter config. This is intended to be used as a wrapper for the
  3511  // map value in
  3512  // :ref:`VirtualHost.typed_per_filter_config<envoy_v3_api_field_config.route.v3.VirtualHost.typed_per_filter_config>`,
  3513  // :ref:`Route.typed_per_filter_config<envoy_v3_api_field_config.route.v3.Route.typed_per_filter_config>`,
  3514  // or :ref:`WeightedCluster.ClusterWeight.typed_per_filter_config<envoy_v3_api_field_config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config>`
  3515  // to add additional flags to the filter.
  3516  // [#not-implemented-hide:]
  3517  type FilterConfig struct {
  3518  	state         protoimpl.MessageState
  3519  	sizeCache     protoimpl.SizeCache
  3520  	unknownFields protoimpl.UnknownFields
  3521  
  3522  	// The filter config.
  3523  	Config *any.Any `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
  3524  	// If true, the filter is optional, meaning that if the client does
  3525  	// not support the specified filter, it may ignore the map entry rather
  3526  	// than rejecting the config.
  3527  	IsOptional bool `protobuf:"varint,2,opt,name=is_optional,json=isOptional,proto3" json:"is_optional,omitempty"`
  3528  }
  3529  
  3530  func (x *FilterConfig) Reset() {
  3531  	*x = FilterConfig{}
  3532  	if protoimpl.UnsafeEnabled {
  3533  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[19]
  3534  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3535  		ms.StoreMessageInfo(mi)
  3536  	}
  3537  }
  3538  
  3539  func (x *FilterConfig) String() string {
  3540  	return protoimpl.X.MessageStringOf(x)
  3541  }
  3542  
  3543  func (*FilterConfig) ProtoMessage() {}
  3544  
  3545  func (x *FilterConfig) ProtoReflect() protoreflect.Message {
  3546  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[19]
  3547  	if protoimpl.UnsafeEnabled && x != nil {
  3548  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3549  		if ms.LoadMessageInfo() == nil {
  3550  			ms.StoreMessageInfo(mi)
  3551  		}
  3552  		return ms
  3553  	}
  3554  	return mi.MessageOf(x)
  3555  }
  3556  
  3557  // Deprecated: Use FilterConfig.ProtoReflect.Descriptor instead.
  3558  func (*FilterConfig) Descriptor() ([]byte, []int) {
  3559  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{19}
  3560  }
  3561  
  3562  func (x *FilterConfig) GetConfig() *any.Any {
  3563  	if x != nil {
  3564  		return x.Config
  3565  	}
  3566  	return nil
  3567  }
  3568  
  3569  func (x *FilterConfig) GetIsOptional() bool {
  3570  	if x != nil {
  3571  		return x.IsOptional
  3572  	}
  3573  	return false
  3574  }
  3575  
  3576  // [#next-free-field: 13]
  3577  type WeightedCluster_ClusterWeight struct {
  3578  	state         protoimpl.MessageState
  3579  	sizeCache     protoimpl.SizeCache
  3580  	unknownFields protoimpl.UnknownFields
  3581  
  3582  	// Only one of *name* and *cluster_header* may be specified.
  3583  	// [#next-major-version: Need to add back the validation rule: (validate.rules).string = {min_len: 1}]
  3584  	// Name of the upstream cluster. The cluster must exist in the
  3585  	// :ref:`cluster manager configuration <config_cluster_manager>`.
  3586  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  3587  	// Only one of *name* and *cluster_header* may be specified.
  3588  	// [#next-major-version: Need to add back the validation rule: (validate.rules).string = {min_len: 1 }]
  3589  	// Envoy will determine the cluster to route to by reading the value of the
  3590  	// HTTP header named by cluster_header from the request headers. If the
  3591  	// header is not found or the referenced cluster does not exist, Envoy will
  3592  	// return a 404 response.
  3593  	//
  3594  	// .. attention::
  3595  	//
  3596  	//   Internally, Envoy always uses the HTTP/2 *:authority* header to represent the HTTP/1
  3597  	//   *Host* header. Thus, if attempting to match on *Host*, match on *:authority* instead.
  3598  	//
  3599  	// .. note::
  3600  	//
  3601  	//   If the header appears multiple times only the first value is used.
  3602  	ClusterHeader string `protobuf:"bytes,12,opt,name=cluster_header,json=clusterHeader,proto3" json:"cluster_header,omitempty"`
  3603  	// An integer between 0 and :ref:`total_weight
  3604  	// <envoy_v3_api_field_config.route.v3.WeightedCluster.total_weight>`. When a request matches the route,
  3605  	// the choice of an upstream cluster is determined by its weight. The sum of weights across all
  3606  	// entries in the clusters array must add up to the total_weight, which defaults to 100.
  3607  	Weight *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=weight,proto3" json:"weight,omitempty"`
  3608  	// Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints in
  3609  	// the upstream cluster with metadata matching what is set in this field will be considered for
  3610  	// load balancing. Note that this will be merged with what's provided in
  3611  	// :ref:`RouteAction.metadata_match <envoy_v3_api_field_config.route.v3.RouteAction.metadata_match>`, with
  3612  	// values here taking precedence. The filter name should be specified as *envoy.lb*.
  3613  	MetadataMatch *v3.Metadata `protobuf:"bytes,3,opt,name=metadata_match,json=metadataMatch,proto3" json:"metadata_match,omitempty"`
  3614  	// Specifies a list of headers to be added to requests when this cluster is selected
  3615  	// through the enclosing :ref:`envoy_v3_api_msg_config.route.v3.RouteAction`.
  3616  	// Headers specified at this level are applied before headers from the enclosing
  3617  	// :ref:`envoy_v3_api_msg_config.route.v3.Route`, :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost`, and
  3618  	// :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration`. For more information, including details on
  3619  	// header value syntax, see the documentation on :ref:`custom request headers
  3620  	// <config_http_conn_man_headers_custom_request_headers>`.
  3621  	RequestHeadersToAdd []*v3.HeaderValueOption `protobuf:"bytes,4,rep,name=request_headers_to_add,json=requestHeadersToAdd,proto3" json:"request_headers_to_add,omitempty"`
  3622  	// Specifies a list of HTTP headers that should be removed from each request when
  3623  	// this cluster is selected through the enclosing :ref:`envoy_v3_api_msg_config.route.v3.RouteAction`.
  3624  	RequestHeadersToRemove []string `protobuf:"bytes,9,rep,name=request_headers_to_remove,json=requestHeadersToRemove,proto3" json:"request_headers_to_remove,omitempty"`
  3625  	// Specifies a list of headers to be added to responses when this cluster is selected
  3626  	// through the enclosing :ref:`envoy_v3_api_msg_config.route.v3.RouteAction`.
  3627  	// Headers specified at this level are applied before headers from the enclosing
  3628  	// :ref:`envoy_v3_api_msg_config.route.v3.Route`, :ref:`envoy_v3_api_msg_config.route.v3.VirtualHost`, and
  3629  	// :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration`. For more information, including details on
  3630  	// header value syntax, see the documentation on :ref:`custom request headers
  3631  	// <config_http_conn_man_headers_custom_request_headers>`.
  3632  	ResponseHeadersToAdd []*v3.HeaderValueOption `protobuf:"bytes,5,rep,name=response_headers_to_add,json=responseHeadersToAdd,proto3" json:"response_headers_to_add,omitempty"`
  3633  	// Specifies a list of headers to be removed from responses when this cluster is selected
  3634  	// through the enclosing :ref:`envoy_v3_api_msg_config.route.v3.RouteAction`.
  3635  	ResponseHeadersToRemove []string `protobuf:"bytes,6,rep,name=response_headers_to_remove,json=responseHeadersToRemove,proto3" json:"response_headers_to_remove,omitempty"`
  3636  	// The per_filter_config field can be used to provide weighted cluster-specific
  3637  	// configurations for filters. The key should match the filter name, such as
  3638  	// *envoy.filters.http.buffer* for the HTTP buffer filter. Use of this field is filter
  3639  	// specific; see the :ref:`HTTP filter documentation <config_http_filters>`
  3640  	// for if and how it is utilized.
  3641  	// [#comment: An entry's value may be wrapped in a
  3642  	// :ref:`FilterConfig<envoy_v3_api_msg_config.route.v3.FilterConfig>`
  3643  	// message to specify additional options.]
  3644  	TypedPerFilterConfig map[string]*any.Any `protobuf:"bytes,10,rep,name=typed_per_filter_config,json=typedPerFilterConfig,proto3" json:"typed_per_filter_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
  3645  	// Types that are assignable to HostRewriteSpecifier:
  3646  	//	*WeightedCluster_ClusterWeight_HostRewriteLiteral
  3647  	HostRewriteSpecifier isWeightedCluster_ClusterWeight_HostRewriteSpecifier `protobuf_oneof:"host_rewrite_specifier"`
  3648  	// Deprecated: Do not use.
  3649  	HiddenEnvoyDeprecatedPerFilterConfig map[string]*_struct.Struct `protobuf:"bytes,8,rep,name=hidden_envoy_deprecated_per_filter_config,json=hiddenEnvoyDeprecatedPerFilterConfig,proto3" json:"hidden_envoy_deprecated_per_filter_config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
  3650  }
  3651  
  3652  func (x *WeightedCluster_ClusterWeight) Reset() {
  3653  	*x = WeightedCluster_ClusterWeight{}
  3654  	if protoimpl.UnsafeEnabled {
  3655  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[24]
  3656  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3657  		ms.StoreMessageInfo(mi)
  3658  	}
  3659  }
  3660  
  3661  func (x *WeightedCluster_ClusterWeight) String() string {
  3662  	return protoimpl.X.MessageStringOf(x)
  3663  }
  3664  
  3665  func (*WeightedCluster_ClusterWeight) ProtoMessage() {}
  3666  
  3667  func (x *WeightedCluster_ClusterWeight) ProtoReflect() protoreflect.Message {
  3668  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[24]
  3669  	if protoimpl.UnsafeEnabled && x != nil {
  3670  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3671  		if ms.LoadMessageInfo() == nil {
  3672  			ms.StoreMessageInfo(mi)
  3673  		}
  3674  		return ms
  3675  	}
  3676  	return mi.MessageOf(x)
  3677  }
  3678  
  3679  // Deprecated: Use WeightedCluster_ClusterWeight.ProtoReflect.Descriptor instead.
  3680  func (*WeightedCluster_ClusterWeight) Descriptor() ([]byte, []int) {
  3681  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{3, 0}
  3682  }
  3683  
  3684  func (x *WeightedCluster_ClusterWeight) GetName() string {
  3685  	if x != nil {
  3686  		return x.Name
  3687  	}
  3688  	return ""
  3689  }
  3690  
  3691  func (x *WeightedCluster_ClusterWeight) GetClusterHeader() string {
  3692  	if x != nil {
  3693  		return x.ClusterHeader
  3694  	}
  3695  	return ""
  3696  }
  3697  
  3698  func (x *WeightedCluster_ClusterWeight) GetWeight() *wrappers.UInt32Value {
  3699  	if x != nil {
  3700  		return x.Weight
  3701  	}
  3702  	return nil
  3703  }
  3704  
  3705  func (x *WeightedCluster_ClusterWeight) GetMetadataMatch() *v3.Metadata {
  3706  	if x != nil {
  3707  		return x.MetadataMatch
  3708  	}
  3709  	return nil
  3710  }
  3711  
  3712  func (x *WeightedCluster_ClusterWeight) GetRequestHeadersToAdd() []*v3.HeaderValueOption {
  3713  	if x != nil {
  3714  		return x.RequestHeadersToAdd
  3715  	}
  3716  	return nil
  3717  }
  3718  
  3719  func (x *WeightedCluster_ClusterWeight) GetRequestHeadersToRemove() []string {
  3720  	if x != nil {
  3721  		return x.RequestHeadersToRemove
  3722  	}
  3723  	return nil
  3724  }
  3725  
  3726  func (x *WeightedCluster_ClusterWeight) GetResponseHeadersToAdd() []*v3.HeaderValueOption {
  3727  	if x != nil {
  3728  		return x.ResponseHeadersToAdd
  3729  	}
  3730  	return nil
  3731  }
  3732  
  3733  func (x *WeightedCluster_ClusterWeight) GetResponseHeadersToRemove() []string {
  3734  	if x != nil {
  3735  		return x.ResponseHeadersToRemove
  3736  	}
  3737  	return nil
  3738  }
  3739  
  3740  func (x *WeightedCluster_ClusterWeight) GetTypedPerFilterConfig() map[string]*any.Any {
  3741  	if x != nil {
  3742  		return x.TypedPerFilterConfig
  3743  	}
  3744  	return nil
  3745  }
  3746  
  3747  func (m *WeightedCluster_ClusterWeight) GetHostRewriteSpecifier() isWeightedCluster_ClusterWeight_HostRewriteSpecifier {
  3748  	if m != nil {
  3749  		return m.HostRewriteSpecifier
  3750  	}
  3751  	return nil
  3752  }
  3753  
  3754  func (x *WeightedCluster_ClusterWeight) GetHostRewriteLiteral() string {
  3755  	if x, ok := x.GetHostRewriteSpecifier().(*WeightedCluster_ClusterWeight_HostRewriteLiteral); ok {
  3756  		return x.HostRewriteLiteral
  3757  	}
  3758  	return ""
  3759  }
  3760  
  3761  // Deprecated: Do not use.
  3762  func (x *WeightedCluster_ClusterWeight) GetHiddenEnvoyDeprecatedPerFilterConfig() map[string]*_struct.Struct {
  3763  	if x != nil {
  3764  		return x.HiddenEnvoyDeprecatedPerFilterConfig
  3765  	}
  3766  	return nil
  3767  }
  3768  
  3769  type isWeightedCluster_ClusterWeight_HostRewriteSpecifier interface {
  3770  	isWeightedCluster_ClusterWeight_HostRewriteSpecifier()
  3771  }
  3772  
  3773  type WeightedCluster_ClusterWeight_HostRewriteLiteral struct {
  3774  	// Indicates that during forwarding, the host header will be swapped with
  3775  	// this value.
  3776  	HostRewriteLiteral string `protobuf:"bytes,11,opt,name=host_rewrite_literal,json=hostRewriteLiteral,proto3,oneof"`
  3777  }
  3778  
  3779  func (*WeightedCluster_ClusterWeight_HostRewriteLiteral) isWeightedCluster_ClusterWeight_HostRewriteSpecifier() {
  3780  }
  3781  
  3782  type RouteMatch_GrpcRouteMatchOptions struct {
  3783  	state         protoimpl.MessageState
  3784  	sizeCache     protoimpl.SizeCache
  3785  	unknownFields protoimpl.UnknownFields
  3786  }
  3787  
  3788  func (x *RouteMatch_GrpcRouteMatchOptions) Reset() {
  3789  	*x = RouteMatch_GrpcRouteMatchOptions{}
  3790  	if protoimpl.UnsafeEnabled {
  3791  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[27]
  3792  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3793  		ms.StoreMessageInfo(mi)
  3794  	}
  3795  }
  3796  
  3797  func (x *RouteMatch_GrpcRouteMatchOptions) String() string {
  3798  	return protoimpl.X.MessageStringOf(x)
  3799  }
  3800  
  3801  func (*RouteMatch_GrpcRouteMatchOptions) ProtoMessage() {}
  3802  
  3803  func (x *RouteMatch_GrpcRouteMatchOptions) ProtoReflect() protoreflect.Message {
  3804  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[27]
  3805  	if protoimpl.UnsafeEnabled && x != nil {
  3806  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3807  		if ms.LoadMessageInfo() == nil {
  3808  			ms.StoreMessageInfo(mi)
  3809  		}
  3810  		return ms
  3811  	}
  3812  	return mi.MessageOf(x)
  3813  }
  3814  
  3815  // Deprecated: Use RouteMatch_GrpcRouteMatchOptions.ProtoReflect.Descriptor instead.
  3816  func (*RouteMatch_GrpcRouteMatchOptions) Descriptor() ([]byte, []int) {
  3817  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{4, 0}
  3818  }
  3819  
  3820  type RouteMatch_TlsContextMatchOptions struct {
  3821  	state         protoimpl.MessageState
  3822  	sizeCache     protoimpl.SizeCache
  3823  	unknownFields protoimpl.UnknownFields
  3824  
  3825  	// If specified, the route will match against whether or not a certificate is presented.
  3826  	// If not specified, certificate presentation status (true or false) will not be considered when route matching.
  3827  	Presented *wrappers.BoolValue `protobuf:"bytes,1,opt,name=presented,proto3" json:"presented,omitempty"`
  3828  	// If specified, the route will match against whether or not a certificate is validated.
  3829  	// If not specified, certificate validation status (true or false) will not be considered when route matching.
  3830  	Validated *wrappers.BoolValue `protobuf:"bytes,2,opt,name=validated,proto3" json:"validated,omitempty"`
  3831  }
  3832  
  3833  func (x *RouteMatch_TlsContextMatchOptions) Reset() {
  3834  	*x = RouteMatch_TlsContextMatchOptions{}
  3835  	if protoimpl.UnsafeEnabled {
  3836  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[28]
  3837  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3838  		ms.StoreMessageInfo(mi)
  3839  	}
  3840  }
  3841  
  3842  func (x *RouteMatch_TlsContextMatchOptions) String() string {
  3843  	return protoimpl.X.MessageStringOf(x)
  3844  }
  3845  
  3846  func (*RouteMatch_TlsContextMatchOptions) ProtoMessage() {}
  3847  
  3848  func (x *RouteMatch_TlsContextMatchOptions) ProtoReflect() protoreflect.Message {
  3849  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[28]
  3850  	if protoimpl.UnsafeEnabled && x != nil {
  3851  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3852  		if ms.LoadMessageInfo() == nil {
  3853  			ms.StoreMessageInfo(mi)
  3854  		}
  3855  		return ms
  3856  	}
  3857  	return mi.MessageOf(x)
  3858  }
  3859  
  3860  // Deprecated: Use RouteMatch_TlsContextMatchOptions.ProtoReflect.Descriptor instead.
  3861  func (*RouteMatch_TlsContextMatchOptions) Descriptor() ([]byte, []int) {
  3862  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{4, 1}
  3863  }
  3864  
  3865  func (x *RouteMatch_TlsContextMatchOptions) GetPresented() *wrappers.BoolValue {
  3866  	if x != nil {
  3867  		return x.Presented
  3868  	}
  3869  	return nil
  3870  }
  3871  
  3872  func (x *RouteMatch_TlsContextMatchOptions) GetValidated() *wrappers.BoolValue {
  3873  	if x != nil {
  3874  		return x.Validated
  3875  	}
  3876  	return nil
  3877  }
  3878  
  3879  // An extensible message for matching CONNECT requests.
  3880  type RouteMatch_ConnectMatcher struct {
  3881  	state         protoimpl.MessageState
  3882  	sizeCache     protoimpl.SizeCache
  3883  	unknownFields protoimpl.UnknownFields
  3884  }
  3885  
  3886  func (x *RouteMatch_ConnectMatcher) Reset() {
  3887  	*x = RouteMatch_ConnectMatcher{}
  3888  	if protoimpl.UnsafeEnabled {
  3889  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[29]
  3890  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3891  		ms.StoreMessageInfo(mi)
  3892  	}
  3893  }
  3894  
  3895  func (x *RouteMatch_ConnectMatcher) String() string {
  3896  	return protoimpl.X.MessageStringOf(x)
  3897  }
  3898  
  3899  func (*RouteMatch_ConnectMatcher) ProtoMessage() {}
  3900  
  3901  func (x *RouteMatch_ConnectMatcher) ProtoReflect() protoreflect.Message {
  3902  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[29]
  3903  	if protoimpl.UnsafeEnabled && x != nil {
  3904  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3905  		if ms.LoadMessageInfo() == nil {
  3906  			ms.StoreMessageInfo(mi)
  3907  		}
  3908  		return ms
  3909  	}
  3910  	return mi.MessageOf(x)
  3911  }
  3912  
  3913  // Deprecated: Use RouteMatch_ConnectMatcher.ProtoReflect.Descriptor instead.
  3914  func (*RouteMatch_ConnectMatcher) Descriptor() ([]byte, []int) {
  3915  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{4, 2}
  3916  }
  3917  
  3918  // The router is capable of shadowing traffic from one cluster to another. The current
  3919  // implementation is "fire and forget," meaning Envoy will not wait for the shadow cluster to
  3920  // respond before returning the response from the primary cluster. All normal statistics are
  3921  // collected for the shadow cluster making this feature useful for testing.
  3922  //
  3923  // During shadowing, the host/authority header is altered such that *-shadow* is appended. This is
  3924  // useful for logging. For example, *cluster1* becomes *cluster1-shadow*.
  3925  //
  3926  // .. note::
  3927  //
  3928  //   Shadowing will not be triggered if the primary cluster does not exist.
  3929  type RouteAction_RequestMirrorPolicy struct {
  3930  	state         protoimpl.MessageState
  3931  	sizeCache     protoimpl.SizeCache
  3932  	unknownFields protoimpl.UnknownFields
  3933  
  3934  	// Specifies the cluster that requests will be mirrored to. The cluster must
  3935  	// exist in the cluster manager configuration.
  3936  	Cluster string `protobuf:"bytes,1,opt,name=cluster,proto3" json:"cluster,omitempty"`
  3937  	// If not specified, all requests to the target cluster will be mirrored.
  3938  	//
  3939  	// If specified, this field takes precedence over the `runtime_key` field and requests must also
  3940  	// fall under the percentage of matches indicated by this field.
  3941  	//
  3942  	// For some fraction N/D, a random number in the range [0,D) is selected. If the
  3943  	// number is <= the value of the numerator N, or if the key is not present, the default
  3944  	// value, the request will be mirrored.
  3945  	RuntimeFraction *v3.RuntimeFractionalPercent `protobuf:"bytes,3,opt,name=runtime_fraction,json=runtimeFraction,proto3" json:"runtime_fraction,omitempty"`
  3946  	// Determines if the trace span should be sampled. Defaults to true.
  3947  	TraceSampled *wrappers.BoolValue `protobuf:"bytes,4,opt,name=trace_sampled,json=traceSampled,proto3" json:"trace_sampled,omitempty"`
  3948  	// Deprecated: Do not use.
  3949  	HiddenEnvoyDeprecatedRuntimeKey string `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_runtime_key,json=hiddenEnvoyDeprecatedRuntimeKey,proto3" json:"hidden_envoy_deprecated_runtime_key,omitempty"`
  3950  }
  3951  
  3952  func (x *RouteAction_RequestMirrorPolicy) Reset() {
  3953  	*x = RouteAction_RequestMirrorPolicy{}
  3954  	if protoimpl.UnsafeEnabled {
  3955  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[30]
  3956  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3957  		ms.StoreMessageInfo(mi)
  3958  	}
  3959  }
  3960  
  3961  func (x *RouteAction_RequestMirrorPolicy) String() string {
  3962  	return protoimpl.X.MessageStringOf(x)
  3963  }
  3964  
  3965  func (*RouteAction_RequestMirrorPolicy) ProtoMessage() {}
  3966  
  3967  func (x *RouteAction_RequestMirrorPolicy) ProtoReflect() protoreflect.Message {
  3968  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[30]
  3969  	if protoimpl.UnsafeEnabled && x != nil {
  3970  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  3971  		if ms.LoadMessageInfo() == nil {
  3972  			ms.StoreMessageInfo(mi)
  3973  		}
  3974  		return ms
  3975  	}
  3976  	return mi.MessageOf(x)
  3977  }
  3978  
  3979  // Deprecated: Use RouteAction_RequestMirrorPolicy.ProtoReflect.Descriptor instead.
  3980  func (*RouteAction_RequestMirrorPolicy) Descriptor() ([]byte, []int) {
  3981  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{6, 0}
  3982  }
  3983  
  3984  func (x *RouteAction_RequestMirrorPolicy) GetCluster() string {
  3985  	if x != nil {
  3986  		return x.Cluster
  3987  	}
  3988  	return ""
  3989  }
  3990  
  3991  func (x *RouteAction_RequestMirrorPolicy) GetRuntimeFraction() *v3.RuntimeFractionalPercent {
  3992  	if x != nil {
  3993  		return x.RuntimeFraction
  3994  	}
  3995  	return nil
  3996  }
  3997  
  3998  func (x *RouteAction_RequestMirrorPolicy) GetTraceSampled() *wrappers.BoolValue {
  3999  	if x != nil {
  4000  		return x.TraceSampled
  4001  	}
  4002  	return nil
  4003  }
  4004  
  4005  // Deprecated: Do not use.
  4006  func (x *RouteAction_RequestMirrorPolicy) GetHiddenEnvoyDeprecatedRuntimeKey() string {
  4007  	if x != nil {
  4008  		return x.HiddenEnvoyDeprecatedRuntimeKey
  4009  	}
  4010  	return ""
  4011  }
  4012  
  4013  // Specifies the route's hashing policy if the upstream cluster uses a hashing :ref:`load balancer
  4014  // <arch_overview_load_balancing_types>`.
  4015  // [#next-free-field: 7]
  4016  type RouteAction_HashPolicy struct {
  4017  	state         protoimpl.MessageState
  4018  	sizeCache     protoimpl.SizeCache
  4019  	unknownFields protoimpl.UnknownFields
  4020  
  4021  	// Types that are assignable to PolicySpecifier:
  4022  	//	*RouteAction_HashPolicy_Header_
  4023  	//	*RouteAction_HashPolicy_Cookie_
  4024  	//	*RouteAction_HashPolicy_ConnectionProperties_
  4025  	//	*RouteAction_HashPolicy_QueryParameter_
  4026  	//	*RouteAction_HashPolicy_FilterState_
  4027  	PolicySpecifier isRouteAction_HashPolicy_PolicySpecifier `protobuf_oneof:"policy_specifier"`
  4028  	// The flag that short-circuits the hash computing. This field provides a
  4029  	// 'fallback' style of configuration: "if a terminal policy doesn't work,
  4030  	// fallback to rest of the policy list", it saves time when the terminal
  4031  	// policy works.
  4032  	//
  4033  	// If true, and there is already a hash computed, ignore rest of the
  4034  	// list of hash polices.
  4035  	// For example, if the following hash methods are configured:
  4036  	//
  4037  	//  ========= ========
  4038  	//  specifier terminal
  4039  	//  ========= ========
  4040  	//  Header A  true
  4041  	//  Header B  false
  4042  	//  Header C  false
  4043  	//  ========= ========
  4044  	//
  4045  	// The generateHash process ends if policy "header A" generates a hash, as
  4046  	// it's a terminal policy.
  4047  	Terminal bool `protobuf:"varint,4,opt,name=terminal,proto3" json:"terminal,omitempty"`
  4048  }
  4049  
  4050  func (x *RouteAction_HashPolicy) Reset() {
  4051  	*x = RouteAction_HashPolicy{}
  4052  	if protoimpl.UnsafeEnabled {
  4053  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[31]
  4054  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4055  		ms.StoreMessageInfo(mi)
  4056  	}
  4057  }
  4058  
  4059  func (x *RouteAction_HashPolicy) String() string {
  4060  	return protoimpl.X.MessageStringOf(x)
  4061  }
  4062  
  4063  func (*RouteAction_HashPolicy) ProtoMessage() {}
  4064  
  4065  func (x *RouteAction_HashPolicy) ProtoReflect() protoreflect.Message {
  4066  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[31]
  4067  	if protoimpl.UnsafeEnabled && x != nil {
  4068  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4069  		if ms.LoadMessageInfo() == nil {
  4070  			ms.StoreMessageInfo(mi)
  4071  		}
  4072  		return ms
  4073  	}
  4074  	return mi.MessageOf(x)
  4075  }
  4076  
  4077  // Deprecated: Use RouteAction_HashPolicy.ProtoReflect.Descriptor instead.
  4078  func (*RouteAction_HashPolicy) Descriptor() ([]byte, []int) {
  4079  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{6, 1}
  4080  }
  4081  
  4082  func (m *RouteAction_HashPolicy) GetPolicySpecifier() isRouteAction_HashPolicy_PolicySpecifier {
  4083  	if m != nil {
  4084  		return m.PolicySpecifier
  4085  	}
  4086  	return nil
  4087  }
  4088  
  4089  func (x *RouteAction_HashPolicy) GetHeader() *RouteAction_HashPolicy_Header {
  4090  	if x, ok := x.GetPolicySpecifier().(*RouteAction_HashPolicy_Header_); ok {
  4091  		return x.Header
  4092  	}
  4093  	return nil
  4094  }
  4095  
  4096  func (x *RouteAction_HashPolicy) GetCookie() *RouteAction_HashPolicy_Cookie {
  4097  	if x, ok := x.GetPolicySpecifier().(*RouteAction_HashPolicy_Cookie_); ok {
  4098  		return x.Cookie
  4099  	}
  4100  	return nil
  4101  }
  4102  
  4103  func (x *RouteAction_HashPolicy) GetConnectionProperties() *RouteAction_HashPolicy_ConnectionProperties {
  4104  	if x, ok := x.GetPolicySpecifier().(*RouteAction_HashPolicy_ConnectionProperties_); ok {
  4105  		return x.ConnectionProperties
  4106  	}
  4107  	return nil
  4108  }
  4109  
  4110  func (x *RouteAction_HashPolicy) GetQueryParameter() *RouteAction_HashPolicy_QueryParameter {
  4111  	if x, ok := x.GetPolicySpecifier().(*RouteAction_HashPolicy_QueryParameter_); ok {
  4112  		return x.QueryParameter
  4113  	}
  4114  	return nil
  4115  }
  4116  
  4117  func (x *RouteAction_HashPolicy) GetFilterState() *RouteAction_HashPolicy_FilterState {
  4118  	if x, ok := x.GetPolicySpecifier().(*RouteAction_HashPolicy_FilterState_); ok {
  4119  		return x.FilterState
  4120  	}
  4121  	return nil
  4122  }
  4123  
  4124  func (x *RouteAction_HashPolicy) GetTerminal() bool {
  4125  	if x != nil {
  4126  		return x.Terminal
  4127  	}
  4128  	return false
  4129  }
  4130  
  4131  type isRouteAction_HashPolicy_PolicySpecifier interface {
  4132  	isRouteAction_HashPolicy_PolicySpecifier()
  4133  }
  4134  
  4135  type RouteAction_HashPolicy_Header_ struct {
  4136  	// Header hash policy.
  4137  	Header *RouteAction_HashPolicy_Header `protobuf:"bytes,1,opt,name=header,proto3,oneof"`
  4138  }
  4139  
  4140  type RouteAction_HashPolicy_Cookie_ struct {
  4141  	// Cookie hash policy.
  4142  	Cookie *RouteAction_HashPolicy_Cookie `protobuf:"bytes,2,opt,name=cookie,proto3,oneof"`
  4143  }
  4144  
  4145  type RouteAction_HashPolicy_ConnectionProperties_ struct {
  4146  	// Connection properties hash policy.
  4147  	ConnectionProperties *RouteAction_HashPolicy_ConnectionProperties `protobuf:"bytes,3,opt,name=connection_properties,json=connectionProperties,proto3,oneof"`
  4148  }
  4149  
  4150  type RouteAction_HashPolicy_QueryParameter_ struct {
  4151  	// Query parameter hash policy.
  4152  	QueryParameter *RouteAction_HashPolicy_QueryParameter `protobuf:"bytes,5,opt,name=query_parameter,json=queryParameter,proto3,oneof"`
  4153  }
  4154  
  4155  type RouteAction_HashPolicy_FilterState_ struct {
  4156  	// Filter state hash policy.
  4157  	FilterState *RouteAction_HashPolicy_FilterState `protobuf:"bytes,6,opt,name=filter_state,json=filterState,proto3,oneof"`
  4158  }
  4159  
  4160  func (*RouteAction_HashPolicy_Header_) isRouteAction_HashPolicy_PolicySpecifier() {}
  4161  
  4162  func (*RouteAction_HashPolicy_Cookie_) isRouteAction_HashPolicy_PolicySpecifier() {}
  4163  
  4164  func (*RouteAction_HashPolicy_ConnectionProperties_) isRouteAction_HashPolicy_PolicySpecifier() {}
  4165  
  4166  func (*RouteAction_HashPolicy_QueryParameter_) isRouteAction_HashPolicy_PolicySpecifier() {}
  4167  
  4168  func (*RouteAction_HashPolicy_FilterState_) isRouteAction_HashPolicy_PolicySpecifier() {}
  4169  
  4170  // Allows enabling and disabling upgrades on a per-route basis.
  4171  // This overrides any enabled/disabled upgrade filter chain specified in the
  4172  // HttpConnectionManager
  4173  // :ref:`upgrade_configs
  4174  // <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.upgrade_configs>`
  4175  // but does not affect any custom filter chain specified there.
  4176  type RouteAction_UpgradeConfig struct {
  4177  	state         protoimpl.MessageState
  4178  	sizeCache     protoimpl.SizeCache
  4179  	unknownFields protoimpl.UnknownFields
  4180  
  4181  	// The case-insensitive name of this upgrade, e.g. "websocket".
  4182  	// For each upgrade type present in upgrade_configs, requests with
  4183  	// Upgrade: [upgrade_type] will be proxied upstream.
  4184  	UpgradeType string `protobuf:"bytes,1,opt,name=upgrade_type,json=upgradeType,proto3" json:"upgrade_type,omitempty"`
  4185  	// Determines if upgrades are available on this route. Defaults to true.
  4186  	Enabled *wrappers.BoolValue `protobuf:"bytes,2,opt,name=enabled,proto3" json:"enabled,omitempty"`
  4187  	// Configuration for sending data upstream as a raw data payload. This is used for
  4188  	// CONNECT requests, when forwarding CONNECT payload as raw TCP.
  4189  	// Note that CONNECT support is currently considered alpha in Envoy.
  4190  	// [#comment: TODO(htuch): Replace the above comment with an alpha tag.]
  4191  	ConnectConfig *RouteAction_UpgradeConfig_ConnectConfig `protobuf:"bytes,3,opt,name=connect_config,json=connectConfig,proto3" json:"connect_config,omitempty"`
  4192  }
  4193  
  4194  func (x *RouteAction_UpgradeConfig) Reset() {
  4195  	*x = RouteAction_UpgradeConfig{}
  4196  	if protoimpl.UnsafeEnabled {
  4197  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[32]
  4198  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4199  		ms.StoreMessageInfo(mi)
  4200  	}
  4201  }
  4202  
  4203  func (x *RouteAction_UpgradeConfig) String() string {
  4204  	return protoimpl.X.MessageStringOf(x)
  4205  }
  4206  
  4207  func (*RouteAction_UpgradeConfig) ProtoMessage() {}
  4208  
  4209  func (x *RouteAction_UpgradeConfig) ProtoReflect() protoreflect.Message {
  4210  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[32]
  4211  	if protoimpl.UnsafeEnabled && x != nil {
  4212  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4213  		if ms.LoadMessageInfo() == nil {
  4214  			ms.StoreMessageInfo(mi)
  4215  		}
  4216  		return ms
  4217  	}
  4218  	return mi.MessageOf(x)
  4219  }
  4220  
  4221  // Deprecated: Use RouteAction_UpgradeConfig.ProtoReflect.Descriptor instead.
  4222  func (*RouteAction_UpgradeConfig) Descriptor() ([]byte, []int) {
  4223  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{6, 2}
  4224  }
  4225  
  4226  func (x *RouteAction_UpgradeConfig) GetUpgradeType() string {
  4227  	if x != nil {
  4228  		return x.UpgradeType
  4229  	}
  4230  	return ""
  4231  }
  4232  
  4233  func (x *RouteAction_UpgradeConfig) GetEnabled() *wrappers.BoolValue {
  4234  	if x != nil {
  4235  		return x.Enabled
  4236  	}
  4237  	return nil
  4238  }
  4239  
  4240  func (x *RouteAction_UpgradeConfig) GetConnectConfig() *RouteAction_UpgradeConfig_ConnectConfig {
  4241  	if x != nil {
  4242  		return x.ConnectConfig
  4243  	}
  4244  	return nil
  4245  }
  4246  
  4247  type RouteAction_MaxStreamDuration struct {
  4248  	state         protoimpl.MessageState
  4249  	sizeCache     protoimpl.SizeCache
  4250  	unknownFields protoimpl.UnknownFields
  4251  
  4252  	// Specifies the maximum duration allowed for streams on the route. If not specified, the value
  4253  	// from the :ref:`max_stream_duration
  4254  	// <envoy_v3_api_field_config.core.v3.HttpProtocolOptions.max_stream_duration>` field in
  4255  	// :ref:`HttpConnectionManager.common_http_protocol_options
  4256  	// <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.common_http_protocol_options>`
  4257  	// is used. If this field is set explicitly to zero, any
  4258  	// HttpConnectionManager max_stream_duration timeout will be disabled for
  4259  	// this route.
  4260  	MaxStreamDuration *duration.Duration `protobuf:"bytes,1,opt,name=max_stream_duration,json=maxStreamDuration,proto3" json:"max_stream_duration,omitempty"`
  4261  	// If present, and the request contains a `grpc-timeout header
  4262  	// <https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md>`_, use that value as the
  4263  	// *max_stream_duration*, but limit the applied timeout to the maximum value specified here.
  4264  	// If set to 0, the `grpc-timeout` header is used without modification.
  4265  	GrpcTimeoutHeaderMax *duration.Duration `protobuf:"bytes,2,opt,name=grpc_timeout_header_max,json=grpcTimeoutHeaderMax,proto3" json:"grpc_timeout_header_max,omitempty"`
  4266  	// If present, Envoy will adjust the timeout provided by the `grpc-timeout` header by
  4267  	// subtracting the provided duration from the header. This is useful for allowing Envoy to set
  4268  	// its global timeout to be less than that of the deadline imposed by the calling client, which
  4269  	// makes it more likely that Envoy will handle the timeout instead of having the call canceled
  4270  	// by the client. If, after applying the offset, the resulting timeout is zero or negative,
  4271  	// the stream will timeout immediately.
  4272  	GrpcTimeoutHeaderOffset *duration.Duration `protobuf:"bytes,3,opt,name=grpc_timeout_header_offset,json=grpcTimeoutHeaderOffset,proto3" json:"grpc_timeout_header_offset,omitempty"`
  4273  }
  4274  
  4275  func (x *RouteAction_MaxStreamDuration) Reset() {
  4276  	*x = RouteAction_MaxStreamDuration{}
  4277  	if protoimpl.UnsafeEnabled {
  4278  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[33]
  4279  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4280  		ms.StoreMessageInfo(mi)
  4281  	}
  4282  }
  4283  
  4284  func (x *RouteAction_MaxStreamDuration) String() string {
  4285  	return protoimpl.X.MessageStringOf(x)
  4286  }
  4287  
  4288  func (*RouteAction_MaxStreamDuration) ProtoMessage() {}
  4289  
  4290  func (x *RouteAction_MaxStreamDuration) ProtoReflect() protoreflect.Message {
  4291  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[33]
  4292  	if protoimpl.UnsafeEnabled && x != nil {
  4293  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4294  		if ms.LoadMessageInfo() == nil {
  4295  			ms.StoreMessageInfo(mi)
  4296  		}
  4297  		return ms
  4298  	}
  4299  	return mi.MessageOf(x)
  4300  }
  4301  
  4302  // Deprecated: Use RouteAction_MaxStreamDuration.ProtoReflect.Descriptor instead.
  4303  func (*RouteAction_MaxStreamDuration) Descriptor() ([]byte, []int) {
  4304  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{6, 3}
  4305  }
  4306  
  4307  func (x *RouteAction_MaxStreamDuration) GetMaxStreamDuration() *duration.Duration {
  4308  	if x != nil {
  4309  		return x.MaxStreamDuration
  4310  	}
  4311  	return nil
  4312  }
  4313  
  4314  func (x *RouteAction_MaxStreamDuration) GetGrpcTimeoutHeaderMax() *duration.Duration {
  4315  	if x != nil {
  4316  		return x.GrpcTimeoutHeaderMax
  4317  	}
  4318  	return nil
  4319  }
  4320  
  4321  func (x *RouteAction_MaxStreamDuration) GetGrpcTimeoutHeaderOffset() *duration.Duration {
  4322  	if x != nil {
  4323  		return x.GrpcTimeoutHeaderOffset
  4324  	}
  4325  	return nil
  4326  }
  4327  
  4328  type RouteAction_HashPolicy_Header struct {
  4329  	state         protoimpl.MessageState
  4330  	sizeCache     protoimpl.SizeCache
  4331  	unknownFields protoimpl.UnknownFields
  4332  
  4333  	// The name of the request header that will be used to obtain the hash
  4334  	// key. If the request header is not present, no hash will be produced.
  4335  	HeaderName string `protobuf:"bytes,1,opt,name=header_name,json=headerName,proto3" json:"header_name,omitempty"`
  4336  	// If specified, the request header value will be rewritten and used
  4337  	// to produce the hash key.
  4338  	RegexRewrite *v31.RegexMatchAndSubstitute `protobuf:"bytes,2,opt,name=regex_rewrite,json=regexRewrite,proto3" json:"regex_rewrite,omitempty"`
  4339  }
  4340  
  4341  func (x *RouteAction_HashPolicy_Header) Reset() {
  4342  	*x = RouteAction_HashPolicy_Header{}
  4343  	if protoimpl.UnsafeEnabled {
  4344  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[34]
  4345  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4346  		ms.StoreMessageInfo(mi)
  4347  	}
  4348  }
  4349  
  4350  func (x *RouteAction_HashPolicy_Header) String() string {
  4351  	return protoimpl.X.MessageStringOf(x)
  4352  }
  4353  
  4354  func (*RouteAction_HashPolicy_Header) ProtoMessage() {}
  4355  
  4356  func (x *RouteAction_HashPolicy_Header) ProtoReflect() protoreflect.Message {
  4357  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[34]
  4358  	if protoimpl.UnsafeEnabled && x != nil {
  4359  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4360  		if ms.LoadMessageInfo() == nil {
  4361  			ms.StoreMessageInfo(mi)
  4362  		}
  4363  		return ms
  4364  	}
  4365  	return mi.MessageOf(x)
  4366  }
  4367  
  4368  // Deprecated: Use RouteAction_HashPolicy_Header.ProtoReflect.Descriptor instead.
  4369  func (*RouteAction_HashPolicy_Header) Descriptor() ([]byte, []int) {
  4370  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{6, 1, 0}
  4371  }
  4372  
  4373  func (x *RouteAction_HashPolicy_Header) GetHeaderName() string {
  4374  	if x != nil {
  4375  		return x.HeaderName
  4376  	}
  4377  	return ""
  4378  }
  4379  
  4380  func (x *RouteAction_HashPolicy_Header) GetRegexRewrite() *v31.RegexMatchAndSubstitute {
  4381  	if x != nil {
  4382  		return x.RegexRewrite
  4383  	}
  4384  	return nil
  4385  }
  4386  
  4387  // Envoy supports two types of cookie affinity:
  4388  //
  4389  // 1. Passive. Envoy takes a cookie that's present in the cookies header and
  4390  //    hashes on its value.
  4391  //
  4392  // 2. Generated. Envoy generates and sets a cookie with an expiration (TTL)
  4393  //    on the first request from the client in its response to the client,
  4394  //    based on the endpoint the request gets sent to. The client then
  4395  //    presents this on the next and all subsequent requests. The hash of
  4396  //    this is sufficient to ensure these requests get sent to the same
  4397  //    endpoint. The cookie is generated by hashing the source and
  4398  //    destination ports and addresses so that multiple independent HTTP2
  4399  //    streams on the same connection will independently receive the same
  4400  //    cookie, even if they arrive at the Envoy simultaneously.
  4401  type RouteAction_HashPolicy_Cookie struct {
  4402  	state         protoimpl.MessageState
  4403  	sizeCache     protoimpl.SizeCache
  4404  	unknownFields protoimpl.UnknownFields
  4405  
  4406  	// The name of the cookie that will be used to obtain the hash key. If the
  4407  	// cookie is not present and ttl below is not set, no hash will be
  4408  	// produced.
  4409  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  4410  	// If specified, a cookie with the TTL will be generated if the cookie is
  4411  	// not present. If the TTL is present and zero, the generated cookie will
  4412  	// be a session cookie.
  4413  	Ttl *duration.Duration `protobuf:"bytes,2,opt,name=ttl,proto3" json:"ttl,omitempty"`
  4414  	// The name of the path for the cookie. If no path is specified here, no path
  4415  	// will be set for the cookie.
  4416  	Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
  4417  }
  4418  
  4419  func (x *RouteAction_HashPolicy_Cookie) Reset() {
  4420  	*x = RouteAction_HashPolicy_Cookie{}
  4421  	if protoimpl.UnsafeEnabled {
  4422  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[35]
  4423  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4424  		ms.StoreMessageInfo(mi)
  4425  	}
  4426  }
  4427  
  4428  func (x *RouteAction_HashPolicy_Cookie) String() string {
  4429  	return protoimpl.X.MessageStringOf(x)
  4430  }
  4431  
  4432  func (*RouteAction_HashPolicy_Cookie) ProtoMessage() {}
  4433  
  4434  func (x *RouteAction_HashPolicy_Cookie) ProtoReflect() protoreflect.Message {
  4435  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[35]
  4436  	if protoimpl.UnsafeEnabled && x != nil {
  4437  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4438  		if ms.LoadMessageInfo() == nil {
  4439  			ms.StoreMessageInfo(mi)
  4440  		}
  4441  		return ms
  4442  	}
  4443  	return mi.MessageOf(x)
  4444  }
  4445  
  4446  // Deprecated: Use RouteAction_HashPolicy_Cookie.ProtoReflect.Descriptor instead.
  4447  func (*RouteAction_HashPolicy_Cookie) Descriptor() ([]byte, []int) {
  4448  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{6, 1, 1}
  4449  }
  4450  
  4451  func (x *RouteAction_HashPolicy_Cookie) GetName() string {
  4452  	if x != nil {
  4453  		return x.Name
  4454  	}
  4455  	return ""
  4456  }
  4457  
  4458  func (x *RouteAction_HashPolicy_Cookie) GetTtl() *duration.Duration {
  4459  	if x != nil {
  4460  		return x.Ttl
  4461  	}
  4462  	return nil
  4463  }
  4464  
  4465  func (x *RouteAction_HashPolicy_Cookie) GetPath() string {
  4466  	if x != nil {
  4467  		return x.Path
  4468  	}
  4469  	return ""
  4470  }
  4471  
  4472  type RouteAction_HashPolicy_ConnectionProperties struct {
  4473  	state         protoimpl.MessageState
  4474  	sizeCache     protoimpl.SizeCache
  4475  	unknownFields protoimpl.UnknownFields
  4476  
  4477  	// Hash on source IP address.
  4478  	SourceIp bool `protobuf:"varint,1,opt,name=source_ip,json=sourceIp,proto3" json:"source_ip,omitempty"`
  4479  }
  4480  
  4481  func (x *RouteAction_HashPolicy_ConnectionProperties) Reset() {
  4482  	*x = RouteAction_HashPolicy_ConnectionProperties{}
  4483  	if protoimpl.UnsafeEnabled {
  4484  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[36]
  4485  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4486  		ms.StoreMessageInfo(mi)
  4487  	}
  4488  }
  4489  
  4490  func (x *RouteAction_HashPolicy_ConnectionProperties) String() string {
  4491  	return protoimpl.X.MessageStringOf(x)
  4492  }
  4493  
  4494  func (*RouteAction_HashPolicy_ConnectionProperties) ProtoMessage() {}
  4495  
  4496  func (x *RouteAction_HashPolicy_ConnectionProperties) ProtoReflect() protoreflect.Message {
  4497  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[36]
  4498  	if protoimpl.UnsafeEnabled && x != nil {
  4499  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4500  		if ms.LoadMessageInfo() == nil {
  4501  			ms.StoreMessageInfo(mi)
  4502  		}
  4503  		return ms
  4504  	}
  4505  	return mi.MessageOf(x)
  4506  }
  4507  
  4508  // Deprecated: Use RouteAction_HashPolicy_ConnectionProperties.ProtoReflect.Descriptor instead.
  4509  func (*RouteAction_HashPolicy_ConnectionProperties) Descriptor() ([]byte, []int) {
  4510  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{6, 1, 2}
  4511  }
  4512  
  4513  func (x *RouteAction_HashPolicy_ConnectionProperties) GetSourceIp() bool {
  4514  	if x != nil {
  4515  		return x.SourceIp
  4516  	}
  4517  	return false
  4518  }
  4519  
  4520  type RouteAction_HashPolicy_QueryParameter struct {
  4521  	state         protoimpl.MessageState
  4522  	sizeCache     protoimpl.SizeCache
  4523  	unknownFields protoimpl.UnknownFields
  4524  
  4525  	// The name of the URL query parameter that will be used to obtain the hash
  4526  	// key. If the parameter is not present, no hash will be produced. Query
  4527  	// parameter names are case-sensitive.
  4528  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  4529  }
  4530  
  4531  func (x *RouteAction_HashPolicy_QueryParameter) Reset() {
  4532  	*x = RouteAction_HashPolicy_QueryParameter{}
  4533  	if protoimpl.UnsafeEnabled {
  4534  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[37]
  4535  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4536  		ms.StoreMessageInfo(mi)
  4537  	}
  4538  }
  4539  
  4540  func (x *RouteAction_HashPolicy_QueryParameter) String() string {
  4541  	return protoimpl.X.MessageStringOf(x)
  4542  }
  4543  
  4544  func (*RouteAction_HashPolicy_QueryParameter) ProtoMessage() {}
  4545  
  4546  func (x *RouteAction_HashPolicy_QueryParameter) ProtoReflect() protoreflect.Message {
  4547  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[37]
  4548  	if protoimpl.UnsafeEnabled && x != nil {
  4549  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4550  		if ms.LoadMessageInfo() == nil {
  4551  			ms.StoreMessageInfo(mi)
  4552  		}
  4553  		return ms
  4554  	}
  4555  	return mi.MessageOf(x)
  4556  }
  4557  
  4558  // Deprecated: Use RouteAction_HashPolicy_QueryParameter.ProtoReflect.Descriptor instead.
  4559  func (*RouteAction_HashPolicy_QueryParameter) Descriptor() ([]byte, []int) {
  4560  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{6, 1, 3}
  4561  }
  4562  
  4563  func (x *RouteAction_HashPolicy_QueryParameter) GetName() string {
  4564  	if x != nil {
  4565  		return x.Name
  4566  	}
  4567  	return ""
  4568  }
  4569  
  4570  type RouteAction_HashPolicy_FilterState struct {
  4571  	state         protoimpl.MessageState
  4572  	sizeCache     protoimpl.SizeCache
  4573  	unknownFields protoimpl.UnknownFields
  4574  
  4575  	// The name of the Object in the per-request filterState, which is an
  4576  	// Envoy::Http::Hashable object. If there is no data associated with the key,
  4577  	// or the stored object is not Envoy::Http::Hashable, no hash will be produced.
  4578  	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
  4579  }
  4580  
  4581  func (x *RouteAction_HashPolicy_FilterState) Reset() {
  4582  	*x = RouteAction_HashPolicy_FilterState{}
  4583  	if protoimpl.UnsafeEnabled {
  4584  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[38]
  4585  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4586  		ms.StoreMessageInfo(mi)
  4587  	}
  4588  }
  4589  
  4590  func (x *RouteAction_HashPolicy_FilterState) String() string {
  4591  	return protoimpl.X.MessageStringOf(x)
  4592  }
  4593  
  4594  func (*RouteAction_HashPolicy_FilterState) ProtoMessage() {}
  4595  
  4596  func (x *RouteAction_HashPolicy_FilterState) ProtoReflect() protoreflect.Message {
  4597  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[38]
  4598  	if protoimpl.UnsafeEnabled && x != nil {
  4599  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4600  		if ms.LoadMessageInfo() == nil {
  4601  			ms.StoreMessageInfo(mi)
  4602  		}
  4603  		return ms
  4604  	}
  4605  	return mi.MessageOf(x)
  4606  }
  4607  
  4608  // Deprecated: Use RouteAction_HashPolicy_FilterState.ProtoReflect.Descriptor instead.
  4609  func (*RouteAction_HashPolicy_FilterState) Descriptor() ([]byte, []int) {
  4610  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{6, 1, 4}
  4611  }
  4612  
  4613  func (x *RouteAction_HashPolicy_FilterState) GetKey() string {
  4614  	if x != nil {
  4615  		return x.Key
  4616  	}
  4617  	return ""
  4618  }
  4619  
  4620  // Configuration for sending data upstream as a raw data payload. This is used for
  4621  // CONNECT or POST requests, when forwarding request payload as raw TCP.
  4622  type RouteAction_UpgradeConfig_ConnectConfig struct {
  4623  	state         protoimpl.MessageState
  4624  	sizeCache     protoimpl.SizeCache
  4625  	unknownFields protoimpl.UnknownFields
  4626  
  4627  	// If present, the proxy protocol header will be prepended to the CONNECT payload sent upstream.
  4628  	ProxyProtocolConfig *v3.ProxyProtocolConfig `protobuf:"bytes,1,opt,name=proxy_protocol_config,json=proxyProtocolConfig,proto3" json:"proxy_protocol_config,omitempty"`
  4629  	// If set, the route will also allow forwarding POST payload as raw TCP.
  4630  	AllowPost bool `protobuf:"varint,2,opt,name=allow_post,json=allowPost,proto3" json:"allow_post,omitempty"`
  4631  }
  4632  
  4633  func (x *RouteAction_UpgradeConfig_ConnectConfig) Reset() {
  4634  	*x = RouteAction_UpgradeConfig_ConnectConfig{}
  4635  	if protoimpl.UnsafeEnabled {
  4636  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[39]
  4637  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4638  		ms.StoreMessageInfo(mi)
  4639  	}
  4640  }
  4641  
  4642  func (x *RouteAction_UpgradeConfig_ConnectConfig) String() string {
  4643  	return protoimpl.X.MessageStringOf(x)
  4644  }
  4645  
  4646  func (*RouteAction_UpgradeConfig_ConnectConfig) ProtoMessage() {}
  4647  
  4648  func (x *RouteAction_UpgradeConfig_ConnectConfig) ProtoReflect() protoreflect.Message {
  4649  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[39]
  4650  	if protoimpl.UnsafeEnabled && x != nil {
  4651  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4652  		if ms.LoadMessageInfo() == nil {
  4653  			ms.StoreMessageInfo(mi)
  4654  		}
  4655  		return ms
  4656  	}
  4657  	return mi.MessageOf(x)
  4658  }
  4659  
  4660  // Deprecated: Use RouteAction_UpgradeConfig_ConnectConfig.ProtoReflect.Descriptor instead.
  4661  func (*RouteAction_UpgradeConfig_ConnectConfig) Descriptor() ([]byte, []int) {
  4662  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{6, 2, 0}
  4663  }
  4664  
  4665  func (x *RouteAction_UpgradeConfig_ConnectConfig) GetProxyProtocolConfig() *v3.ProxyProtocolConfig {
  4666  	if x != nil {
  4667  		return x.ProxyProtocolConfig
  4668  	}
  4669  	return nil
  4670  }
  4671  
  4672  func (x *RouteAction_UpgradeConfig_ConnectConfig) GetAllowPost() bool {
  4673  	if x != nil {
  4674  		return x.AllowPost
  4675  	}
  4676  	return false
  4677  }
  4678  
  4679  type RetryPolicy_RetryPriority struct {
  4680  	state         protoimpl.MessageState
  4681  	sizeCache     protoimpl.SizeCache
  4682  	unknownFields protoimpl.UnknownFields
  4683  
  4684  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  4685  	// [#extension-category: envoy.retry_priorities]
  4686  	//
  4687  	// Types that are assignable to ConfigType:
  4688  	//	*RetryPolicy_RetryPriority_TypedConfig
  4689  	//	*RetryPolicy_RetryPriority_HiddenEnvoyDeprecatedConfig
  4690  	ConfigType isRetryPolicy_RetryPriority_ConfigType `protobuf_oneof:"config_type"`
  4691  }
  4692  
  4693  func (x *RetryPolicy_RetryPriority) Reset() {
  4694  	*x = RetryPolicy_RetryPriority{}
  4695  	if protoimpl.UnsafeEnabled {
  4696  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[40]
  4697  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4698  		ms.StoreMessageInfo(mi)
  4699  	}
  4700  }
  4701  
  4702  func (x *RetryPolicy_RetryPriority) String() string {
  4703  	return protoimpl.X.MessageStringOf(x)
  4704  }
  4705  
  4706  func (*RetryPolicy_RetryPriority) ProtoMessage() {}
  4707  
  4708  func (x *RetryPolicy_RetryPriority) ProtoReflect() protoreflect.Message {
  4709  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[40]
  4710  	if protoimpl.UnsafeEnabled && x != nil {
  4711  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4712  		if ms.LoadMessageInfo() == nil {
  4713  			ms.StoreMessageInfo(mi)
  4714  		}
  4715  		return ms
  4716  	}
  4717  	return mi.MessageOf(x)
  4718  }
  4719  
  4720  // Deprecated: Use RetryPolicy_RetryPriority.ProtoReflect.Descriptor instead.
  4721  func (*RetryPolicy_RetryPriority) Descriptor() ([]byte, []int) {
  4722  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{7, 0}
  4723  }
  4724  
  4725  func (x *RetryPolicy_RetryPriority) GetName() string {
  4726  	if x != nil {
  4727  		return x.Name
  4728  	}
  4729  	return ""
  4730  }
  4731  
  4732  func (m *RetryPolicy_RetryPriority) GetConfigType() isRetryPolicy_RetryPriority_ConfigType {
  4733  	if m != nil {
  4734  		return m.ConfigType
  4735  	}
  4736  	return nil
  4737  }
  4738  
  4739  func (x *RetryPolicy_RetryPriority) GetTypedConfig() *any.Any {
  4740  	if x, ok := x.GetConfigType().(*RetryPolicy_RetryPriority_TypedConfig); ok {
  4741  		return x.TypedConfig
  4742  	}
  4743  	return nil
  4744  }
  4745  
  4746  // Deprecated: Do not use.
  4747  func (x *RetryPolicy_RetryPriority) GetHiddenEnvoyDeprecatedConfig() *_struct.Struct {
  4748  	if x, ok := x.GetConfigType().(*RetryPolicy_RetryPriority_HiddenEnvoyDeprecatedConfig); ok {
  4749  		return x.HiddenEnvoyDeprecatedConfig
  4750  	}
  4751  	return nil
  4752  }
  4753  
  4754  type isRetryPolicy_RetryPriority_ConfigType interface {
  4755  	isRetryPolicy_RetryPriority_ConfigType()
  4756  }
  4757  
  4758  type RetryPolicy_RetryPriority_TypedConfig struct {
  4759  	TypedConfig *any.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"`
  4760  }
  4761  
  4762  type RetryPolicy_RetryPriority_HiddenEnvoyDeprecatedConfig struct {
  4763  	// Deprecated: Do not use.
  4764  	HiddenEnvoyDeprecatedConfig *_struct.Struct `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_config,json=hiddenEnvoyDeprecatedConfig,proto3,oneof"`
  4765  }
  4766  
  4767  func (*RetryPolicy_RetryPriority_TypedConfig) isRetryPolicy_RetryPriority_ConfigType() {}
  4768  
  4769  func (*RetryPolicy_RetryPriority_HiddenEnvoyDeprecatedConfig) isRetryPolicy_RetryPriority_ConfigType() {
  4770  }
  4771  
  4772  type RetryPolicy_RetryHostPredicate struct {
  4773  	state         protoimpl.MessageState
  4774  	sizeCache     protoimpl.SizeCache
  4775  	unknownFields protoimpl.UnknownFields
  4776  
  4777  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  4778  	// [#extension-category: envoy.retry_host_predicates]
  4779  	//
  4780  	// Types that are assignable to ConfigType:
  4781  	//	*RetryPolicy_RetryHostPredicate_TypedConfig
  4782  	//	*RetryPolicy_RetryHostPredicate_HiddenEnvoyDeprecatedConfig
  4783  	ConfigType isRetryPolicy_RetryHostPredicate_ConfigType `protobuf_oneof:"config_type"`
  4784  }
  4785  
  4786  func (x *RetryPolicy_RetryHostPredicate) Reset() {
  4787  	*x = RetryPolicy_RetryHostPredicate{}
  4788  	if protoimpl.UnsafeEnabled {
  4789  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[41]
  4790  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4791  		ms.StoreMessageInfo(mi)
  4792  	}
  4793  }
  4794  
  4795  func (x *RetryPolicy_RetryHostPredicate) String() string {
  4796  	return protoimpl.X.MessageStringOf(x)
  4797  }
  4798  
  4799  func (*RetryPolicy_RetryHostPredicate) ProtoMessage() {}
  4800  
  4801  func (x *RetryPolicy_RetryHostPredicate) ProtoReflect() protoreflect.Message {
  4802  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[41]
  4803  	if protoimpl.UnsafeEnabled && x != nil {
  4804  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4805  		if ms.LoadMessageInfo() == nil {
  4806  			ms.StoreMessageInfo(mi)
  4807  		}
  4808  		return ms
  4809  	}
  4810  	return mi.MessageOf(x)
  4811  }
  4812  
  4813  // Deprecated: Use RetryPolicy_RetryHostPredicate.ProtoReflect.Descriptor instead.
  4814  func (*RetryPolicy_RetryHostPredicate) Descriptor() ([]byte, []int) {
  4815  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{7, 1}
  4816  }
  4817  
  4818  func (x *RetryPolicy_RetryHostPredicate) GetName() string {
  4819  	if x != nil {
  4820  		return x.Name
  4821  	}
  4822  	return ""
  4823  }
  4824  
  4825  func (m *RetryPolicy_RetryHostPredicate) GetConfigType() isRetryPolicy_RetryHostPredicate_ConfigType {
  4826  	if m != nil {
  4827  		return m.ConfigType
  4828  	}
  4829  	return nil
  4830  }
  4831  
  4832  func (x *RetryPolicy_RetryHostPredicate) GetTypedConfig() *any.Any {
  4833  	if x, ok := x.GetConfigType().(*RetryPolicy_RetryHostPredicate_TypedConfig); ok {
  4834  		return x.TypedConfig
  4835  	}
  4836  	return nil
  4837  }
  4838  
  4839  // Deprecated: Do not use.
  4840  func (x *RetryPolicy_RetryHostPredicate) GetHiddenEnvoyDeprecatedConfig() *_struct.Struct {
  4841  	if x, ok := x.GetConfigType().(*RetryPolicy_RetryHostPredicate_HiddenEnvoyDeprecatedConfig); ok {
  4842  		return x.HiddenEnvoyDeprecatedConfig
  4843  	}
  4844  	return nil
  4845  }
  4846  
  4847  type isRetryPolicy_RetryHostPredicate_ConfigType interface {
  4848  	isRetryPolicy_RetryHostPredicate_ConfigType()
  4849  }
  4850  
  4851  type RetryPolicy_RetryHostPredicate_TypedConfig struct {
  4852  	TypedConfig *any.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"`
  4853  }
  4854  
  4855  type RetryPolicy_RetryHostPredicate_HiddenEnvoyDeprecatedConfig struct {
  4856  	// Deprecated: Do not use.
  4857  	HiddenEnvoyDeprecatedConfig *_struct.Struct `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_config,json=hiddenEnvoyDeprecatedConfig,proto3,oneof"`
  4858  }
  4859  
  4860  func (*RetryPolicy_RetryHostPredicate_TypedConfig) isRetryPolicy_RetryHostPredicate_ConfigType() {}
  4861  
  4862  func (*RetryPolicy_RetryHostPredicate_HiddenEnvoyDeprecatedConfig) isRetryPolicy_RetryHostPredicate_ConfigType() {
  4863  }
  4864  
  4865  type RetryPolicy_RetryBackOff struct {
  4866  	state         protoimpl.MessageState
  4867  	sizeCache     protoimpl.SizeCache
  4868  	unknownFields protoimpl.UnknownFields
  4869  
  4870  	// Specifies the base interval between retries. This parameter is required and must be greater
  4871  	// than zero. Values less than 1 ms are rounded up to 1 ms.
  4872  	// See :ref:`config_http_filters_router_x-envoy-max-retries` for a discussion of Envoy's
  4873  	// back-off algorithm.
  4874  	BaseInterval *duration.Duration `protobuf:"bytes,1,opt,name=base_interval,json=baseInterval,proto3" json:"base_interval,omitempty"`
  4875  	// Specifies the maximum interval between retries. This parameter is optional, but must be
  4876  	// greater than or equal to the `base_interval` if set. The default is 10 times the
  4877  	// `base_interval`. See :ref:`config_http_filters_router_x-envoy-max-retries` for a discussion
  4878  	// of Envoy's back-off algorithm.
  4879  	MaxInterval *duration.Duration `protobuf:"bytes,2,opt,name=max_interval,json=maxInterval,proto3" json:"max_interval,omitempty"`
  4880  }
  4881  
  4882  func (x *RetryPolicy_RetryBackOff) Reset() {
  4883  	*x = RetryPolicy_RetryBackOff{}
  4884  	if protoimpl.UnsafeEnabled {
  4885  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[42]
  4886  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4887  		ms.StoreMessageInfo(mi)
  4888  	}
  4889  }
  4890  
  4891  func (x *RetryPolicy_RetryBackOff) String() string {
  4892  	return protoimpl.X.MessageStringOf(x)
  4893  }
  4894  
  4895  func (*RetryPolicy_RetryBackOff) ProtoMessage() {}
  4896  
  4897  func (x *RetryPolicy_RetryBackOff) ProtoReflect() protoreflect.Message {
  4898  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[42]
  4899  	if protoimpl.UnsafeEnabled && x != nil {
  4900  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4901  		if ms.LoadMessageInfo() == nil {
  4902  			ms.StoreMessageInfo(mi)
  4903  		}
  4904  		return ms
  4905  	}
  4906  	return mi.MessageOf(x)
  4907  }
  4908  
  4909  // Deprecated: Use RetryPolicy_RetryBackOff.ProtoReflect.Descriptor instead.
  4910  func (*RetryPolicy_RetryBackOff) Descriptor() ([]byte, []int) {
  4911  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{7, 2}
  4912  }
  4913  
  4914  func (x *RetryPolicy_RetryBackOff) GetBaseInterval() *duration.Duration {
  4915  	if x != nil {
  4916  		return x.BaseInterval
  4917  	}
  4918  	return nil
  4919  }
  4920  
  4921  func (x *RetryPolicy_RetryBackOff) GetMaxInterval() *duration.Duration {
  4922  	if x != nil {
  4923  		return x.MaxInterval
  4924  	}
  4925  	return nil
  4926  }
  4927  
  4928  type RetryPolicy_ResetHeader struct {
  4929  	state         protoimpl.MessageState
  4930  	sizeCache     protoimpl.SizeCache
  4931  	unknownFields protoimpl.UnknownFields
  4932  
  4933  	// The name of the reset header.
  4934  	//
  4935  	// .. note::
  4936  	//
  4937  	//   If the header appears multiple times only the first value is used.
  4938  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  4939  	// The format of the reset header.
  4940  	Format RetryPolicy_ResetHeaderFormat `protobuf:"varint,2,opt,name=format,proto3,enum=envoy.config.route.v3.RetryPolicy_ResetHeaderFormat" json:"format,omitempty"`
  4941  }
  4942  
  4943  func (x *RetryPolicy_ResetHeader) Reset() {
  4944  	*x = RetryPolicy_ResetHeader{}
  4945  	if protoimpl.UnsafeEnabled {
  4946  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[43]
  4947  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4948  		ms.StoreMessageInfo(mi)
  4949  	}
  4950  }
  4951  
  4952  func (x *RetryPolicy_ResetHeader) String() string {
  4953  	return protoimpl.X.MessageStringOf(x)
  4954  }
  4955  
  4956  func (*RetryPolicy_ResetHeader) ProtoMessage() {}
  4957  
  4958  func (x *RetryPolicy_ResetHeader) ProtoReflect() protoreflect.Message {
  4959  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[43]
  4960  	if protoimpl.UnsafeEnabled && x != nil {
  4961  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  4962  		if ms.LoadMessageInfo() == nil {
  4963  			ms.StoreMessageInfo(mi)
  4964  		}
  4965  		return ms
  4966  	}
  4967  	return mi.MessageOf(x)
  4968  }
  4969  
  4970  // Deprecated: Use RetryPolicy_ResetHeader.ProtoReflect.Descriptor instead.
  4971  func (*RetryPolicy_ResetHeader) Descriptor() ([]byte, []int) {
  4972  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{7, 3}
  4973  }
  4974  
  4975  func (x *RetryPolicy_ResetHeader) GetName() string {
  4976  	if x != nil {
  4977  		return x.Name
  4978  	}
  4979  	return ""
  4980  }
  4981  
  4982  func (x *RetryPolicy_ResetHeader) GetFormat() RetryPolicy_ResetHeaderFormat {
  4983  	if x != nil {
  4984  		return x.Format
  4985  	}
  4986  	return RetryPolicy_SECONDS
  4987  }
  4988  
  4989  // A retry back-off strategy that applies when the upstream server rate limits
  4990  // the request.
  4991  //
  4992  // Given this configuration:
  4993  //
  4994  // .. code-block:: yaml
  4995  //
  4996  //   rate_limited_retry_back_off:
  4997  //     reset_headers:
  4998  //     - name: Retry-After
  4999  //       format: SECONDS
  5000  //     - name: X-RateLimit-Reset
  5001  //       format: UNIX_TIMESTAMP
  5002  //     max_interval: "300s"
  5003  //
  5004  // The following algorithm will apply:
  5005  //
  5006  //  1. If the response contains the header ``Retry-After`` its value must be on
  5007  //     the form ``120`` (an integer that represents the number of seconds to
  5008  //     wait before retrying). If so, this value is used as the back-off interval.
  5009  //  2. Otherwise, if the response contains the header ``X-RateLimit-Reset`` its
  5010  //     value must be on the form ``1595320702`` (an integer that represents the
  5011  //     point in time at which to retry, as a Unix timestamp in seconds). If so,
  5012  //     the current time is subtracted from this value and the result is used as
  5013  //     the back-off interval.
  5014  //  3. Otherwise, Envoy will use the default
  5015  //     :ref:`exponential back-off <envoy_v3_api_field_config.route.v3.RetryPolicy.retry_back_off>`
  5016  //     strategy.
  5017  //
  5018  // No matter which format is used, if the resulting back-off interval exceeds
  5019  // ``max_interval`` it is discarded and the next header in ``reset_headers``
  5020  // is tried. If a request timeout is configured for the route it will further
  5021  // limit how long the request will be allowed to run.
  5022  //
  5023  // To prevent many clients retrying at the same point in time jitter is added
  5024  // to the back-off interval, so the resulting interval is decided by taking:
  5025  // ``random(interval, interval * 1.5)``.
  5026  //
  5027  // .. attention::
  5028  //
  5029  //   Configuring ``rate_limited_retry_back_off`` will not by itself cause a request
  5030  //   to be retried. You will still need to configure the right retry policy to match
  5031  //   the responses from the upstream server.
  5032  type RetryPolicy_RateLimitedRetryBackOff struct {
  5033  	state         protoimpl.MessageState
  5034  	sizeCache     protoimpl.SizeCache
  5035  	unknownFields protoimpl.UnknownFields
  5036  
  5037  	// Specifies the reset headers (like ``Retry-After`` or ``X-RateLimit-Reset``)
  5038  	// to match against the response. Headers are tried in order, and matched case
  5039  	// insensitive. The first header to be parsed successfully is used. If no headers
  5040  	// match the default exponential back-off is used instead.
  5041  	ResetHeaders []*RetryPolicy_ResetHeader `protobuf:"bytes,1,rep,name=reset_headers,json=resetHeaders,proto3" json:"reset_headers,omitempty"`
  5042  	// Specifies the maximum back off interval that Envoy will allow. If a reset
  5043  	// header contains an interval longer than this then it will be discarded and
  5044  	// the next header will be tried. Defaults to 300 seconds.
  5045  	MaxInterval *duration.Duration `protobuf:"bytes,2,opt,name=max_interval,json=maxInterval,proto3" json:"max_interval,omitempty"`
  5046  }
  5047  
  5048  func (x *RetryPolicy_RateLimitedRetryBackOff) Reset() {
  5049  	*x = RetryPolicy_RateLimitedRetryBackOff{}
  5050  	if protoimpl.UnsafeEnabled {
  5051  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[44]
  5052  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5053  		ms.StoreMessageInfo(mi)
  5054  	}
  5055  }
  5056  
  5057  func (x *RetryPolicy_RateLimitedRetryBackOff) String() string {
  5058  	return protoimpl.X.MessageStringOf(x)
  5059  }
  5060  
  5061  func (*RetryPolicy_RateLimitedRetryBackOff) ProtoMessage() {}
  5062  
  5063  func (x *RetryPolicy_RateLimitedRetryBackOff) ProtoReflect() protoreflect.Message {
  5064  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[44]
  5065  	if protoimpl.UnsafeEnabled && x != nil {
  5066  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5067  		if ms.LoadMessageInfo() == nil {
  5068  			ms.StoreMessageInfo(mi)
  5069  		}
  5070  		return ms
  5071  	}
  5072  	return mi.MessageOf(x)
  5073  }
  5074  
  5075  // Deprecated: Use RetryPolicy_RateLimitedRetryBackOff.ProtoReflect.Descriptor instead.
  5076  func (*RetryPolicy_RateLimitedRetryBackOff) Descriptor() ([]byte, []int) {
  5077  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{7, 4}
  5078  }
  5079  
  5080  func (x *RetryPolicy_RateLimitedRetryBackOff) GetResetHeaders() []*RetryPolicy_ResetHeader {
  5081  	if x != nil {
  5082  		return x.ResetHeaders
  5083  	}
  5084  	return nil
  5085  }
  5086  
  5087  func (x *RetryPolicy_RateLimitedRetryBackOff) GetMaxInterval() *duration.Duration {
  5088  	if x != nil {
  5089  		return x.MaxInterval
  5090  	}
  5091  	return nil
  5092  }
  5093  
  5094  // [#next-free-field: 10]
  5095  type RateLimit_Action struct {
  5096  	state         protoimpl.MessageState
  5097  	sizeCache     protoimpl.SizeCache
  5098  	unknownFields protoimpl.UnknownFields
  5099  
  5100  	// Types that are assignable to ActionSpecifier:
  5101  	//	*RateLimit_Action_SourceCluster_
  5102  	//	*RateLimit_Action_DestinationCluster_
  5103  	//	*RateLimit_Action_RequestHeaders_
  5104  	//	*RateLimit_Action_RemoteAddress_
  5105  	//	*RateLimit_Action_GenericKey_
  5106  	//	*RateLimit_Action_HeaderValueMatch_
  5107  	//	*RateLimit_Action_DynamicMetadata
  5108  	//	*RateLimit_Action_Metadata
  5109  	//	*RateLimit_Action_Extension
  5110  	ActionSpecifier isRateLimit_Action_ActionSpecifier `protobuf_oneof:"action_specifier"`
  5111  }
  5112  
  5113  func (x *RateLimit_Action) Reset() {
  5114  	*x = RateLimit_Action{}
  5115  	if protoimpl.UnsafeEnabled {
  5116  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[45]
  5117  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5118  		ms.StoreMessageInfo(mi)
  5119  	}
  5120  }
  5121  
  5122  func (x *RateLimit_Action) String() string {
  5123  	return protoimpl.X.MessageStringOf(x)
  5124  }
  5125  
  5126  func (*RateLimit_Action) ProtoMessage() {}
  5127  
  5128  func (x *RateLimit_Action) ProtoReflect() protoreflect.Message {
  5129  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[45]
  5130  	if protoimpl.UnsafeEnabled && x != nil {
  5131  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5132  		if ms.LoadMessageInfo() == nil {
  5133  			ms.StoreMessageInfo(mi)
  5134  		}
  5135  		return ms
  5136  	}
  5137  	return mi.MessageOf(x)
  5138  }
  5139  
  5140  // Deprecated: Use RateLimit_Action.ProtoReflect.Descriptor instead.
  5141  func (*RateLimit_Action) Descriptor() ([]byte, []int) {
  5142  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{15, 0}
  5143  }
  5144  
  5145  func (m *RateLimit_Action) GetActionSpecifier() isRateLimit_Action_ActionSpecifier {
  5146  	if m != nil {
  5147  		return m.ActionSpecifier
  5148  	}
  5149  	return nil
  5150  }
  5151  
  5152  func (x *RateLimit_Action) GetSourceCluster() *RateLimit_Action_SourceCluster {
  5153  	if x, ok := x.GetActionSpecifier().(*RateLimit_Action_SourceCluster_); ok {
  5154  		return x.SourceCluster
  5155  	}
  5156  	return nil
  5157  }
  5158  
  5159  func (x *RateLimit_Action) GetDestinationCluster() *RateLimit_Action_DestinationCluster {
  5160  	if x, ok := x.GetActionSpecifier().(*RateLimit_Action_DestinationCluster_); ok {
  5161  		return x.DestinationCluster
  5162  	}
  5163  	return nil
  5164  }
  5165  
  5166  func (x *RateLimit_Action) GetRequestHeaders() *RateLimit_Action_RequestHeaders {
  5167  	if x, ok := x.GetActionSpecifier().(*RateLimit_Action_RequestHeaders_); ok {
  5168  		return x.RequestHeaders
  5169  	}
  5170  	return nil
  5171  }
  5172  
  5173  func (x *RateLimit_Action) GetRemoteAddress() *RateLimit_Action_RemoteAddress {
  5174  	if x, ok := x.GetActionSpecifier().(*RateLimit_Action_RemoteAddress_); ok {
  5175  		return x.RemoteAddress
  5176  	}
  5177  	return nil
  5178  }
  5179  
  5180  func (x *RateLimit_Action) GetGenericKey() *RateLimit_Action_GenericKey {
  5181  	if x, ok := x.GetActionSpecifier().(*RateLimit_Action_GenericKey_); ok {
  5182  		return x.GenericKey
  5183  	}
  5184  	return nil
  5185  }
  5186  
  5187  func (x *RateLimit_Action) GetHeaderValueMatch() *RateLimit_Action_HeaderValueMatch {
  5188  	if x, ok := x.GetActionSpecifier().(*RateLimit_Action_HeaderValueMatch_); ok {
  5189  		return x.HeaderValueMatch
  5190  	}
  5191  	return nil
  5192  }
  5193  
  5194  // Deprecated: Do not use.
  5195  func (x *RateLimit_Action) GetDynamicMetadata() *RateLimit_Action_DynamicMetaData {
  5196  	if x, ok := x.GetActionSpecifier().(*RateLimit_Action_DynamicMetadata); ok {
  5197  		return x.DynamicMetadata
  5198  	}
  5199  	return nil
  5200  }
  5201  
  5202  func (x *RateLimit_Action) GetMetadata() *RateLimit_Action_MetaData {
  5203  	if x, ok := x.GetActionSpecifier().(*RateLimit_Action_Metadata); ok {
  5204  		return x.Metadata
  5205  	}
  5206  	return nil
  5207  }
  5208  
  5209  func (x *RateLimit_Action) GetExtension() *v3.TypedExtensionConfig {
  5210  	if x, ok := x.GetActionSpecifier().(*RateLimit_Action_Extension); ok {
  5211  		return x.Extension
  5212  	}
  5213  	return nil
  5214  }
  5215  
  5216  type isRateLimit_Action_ActionSpecifier interface {
  5217  	isRateLimit_Action_ActionSpecifier()
  5218  }
  5219  
  5220  type RateLimit_Action_SourceCluster_ struct {
  5221  	// Rate limit on source cluster.
  5222  	SourceCluster *RateLimit_Action_SourceCluster `protobuf:"bytes,1,opt,name=source_cluster,json=sourceCluster,proto3,oneof"`
  5223  }
  5224  
  5225  type RateLimit_Action_DestinationCluster_ struct {
  5226  	// Rate limit on destination cluster.
  5227  	DestinationCluster *RateLimit_Action_DestinationCluster `protobuf:"bytes,2,opt,name=destination_cluster,json=destinationCluster,proto3,oneof"`
  5228  }
  5229  
  5230  type RateLimit_Action_RequestHeaders_ struct {
  5231  	// Rate limit on request headers.
  5232  	RequestHeaders *RateLimit_Action_RequestHeaders `protobuf:"bytes,3,opt,name=request_headers,json=requestHeaders,proto3,oneof"`
  5233  }
  5234  
  5235  type RateLimit_Action_RemoteAddress_ struct {
  5236  	// Rate limit on remote address.
  5237  	RemoteAddress *RateLimit_Action_RemoteAddress `protobuf:"bytes,4,opt,name=remote_address,json=remoteAddress,proto3,oneof"`
  5238  }
  5239  
  5240  type RateLimit_Action_GenericKey_ struct {
  5241  	// Rate limit on a generic key.
  5242  	GenericKey *RateLimit_Action_GenericKey `protobuf:"bytes,5,opt,name=generic_key,json=genericKey,proto3,oneof"`
  5243  }
  5244  
  5245  type RateLimit_Action_HeaderValueMatch_ struct {
  5246  	// Rate limit on the existence of request headers.
  5247  	HeaderValueMatch *RateLimit_Action_HeaderValueMatch `protobuf:"bytes,6,opt,name=header_value_match,json=headerValueMatch,proto3,oneof"`
  5248  }
  5249  
  5250  type RateLimit_Action_DynamicMetadata struct {
  5251  	// Rate limit on dynamic metadata.
  5252  	//
  5253  	// .. attention::
  5254  	//   This field has been deprecated in favor of the :ref:`metadata <envoy_v3_api_field_config.route.v3.RateLimit.Action.metadata>` field
  5255  	//
  5256  	// Deprecated: Do not use.
  5257  	DynamicMetadata *RateLimit_Action_DynamicMetaData `protobuf:"bytes,7,opt,name=dynamic_metadata,json=dynamicMetadata,proto3,oneof"`
  5258  }
  5259  
  5260  type RateLimit_Action_Metadata struct {
  5261  	// Rate limit on metadata.
  5262  	Metadata *RateLimit_Action_MetaData `protobuf:"bytes,8,opt,name=metadata,proto3,oneof"`
  5263  }
  5264  
  5265  type RateLimit_Action_Extension struct {
  5266  	// Rate limit descriptor extension. See the rate limit descriptor extensions documentation.
  5267  	// [#extension-category: envoy.rate_limit_descriptors]
  5268  	Extension *v3.TypedExtensionConfig `protobuf:"bytes,9,opt,name=extension,proto3,oneof"`
  5269  }
  5270  
  5271  func (*RateLimit_Action_SourceCluster_) isRateLimit_Action_ActionSpecifier() {}
  5272  
  5273  func (*RateLimit_Action_DestinationCluster_) isRateLimit_Action_ActionSpecifier() {}
  5274  
  5275  func (*RateLimit_Action_RequestHeaders_) isRateLimit_Action_ActionSpecifier() {}
  5276  
  5277  func (*RateLimit_Action_RemoteAddress_) isRateLimit_Action_ActionSpecifier() {}
  5278  
  5279  func (*RateLimit_Action_GenericKey_) isRateLimit_Action_ActionSpecifier() {}
  5280  
  5281  func (*RateLimit_Action_HeaderValueMatch_) isRateLimit_Action_ActionSpecifier() {}
  5282  
  5283  func (*RateLimit_Action_DynamicMetadata) isRateLimit_Action_ActionSpecifier() {}
  5284  
  5285  func (*RateLimit_Action_Metadata) isRateLimit_Action_ActionSpecifier() {}
  5286  
  5287  func (*RateLimit_Action_Extension) isRateLimit_Action_ActionSpecifier() {}
  5288  
  5289  type RateLimit_Override struct {
  5290  	state         protoimpl.MessageState
  5291  	sizeCache     protoimpl.SizeCache
  5292  	unknownFields protoimpl.UnknownFields
  5293  
  5294  	// Types that are assignable to OverrideSpecifier:
  5295  	//	*RateLimit_Override_DynamicMetadata_
  5296  	OverrideSpecifier isRateLimit_Override_OverrideSpecifier `protobuf_oneof:"override_specifier"`
  5297  }
  5298  
  5299  func (x *RateLimit_Override) Reset() {
  5300  	*x = RateLimit_Override{}
  5301  	if protoimpl.UnsafeEnabled {
  5302  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[46]
  5303  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5304  		ms.StoreMessageInfo(mi)
  5305  	}
  5306  }
  5307  
  5308  func (x *RateLimit_Override) String() string {
  5309  	return protoimpl.X.MessageStringOf(x)
  5310  }
  5311  
  5312  func (*RateLimit_Override) ProtoMessage() {}
  5313  
  5314  func (x *RateLimit_Override) ProtoReflect() protoreflect.Message {
  5315  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[46]
  5316  	if protoimpl.UnsafeEnabled && x != nil {
  5317  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5318  		if ms.LoadMessageInfo() == nil {
  5319  			ms.StoreMessageInfo(mi)
  5320  		}
  5321  		return ms
  5322  	}
  5323  	return mi.MessageOf(x)
  5324  }
  5325  
  5326  // Deprecated: Use RateLimit_Override.ProtoReflect.Descriptor instead.
  5327  func (*RateLimit_Override) Descriptor() ([]byte, []int) {
  5328  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{15, 1}
  5329  }
  5330  
  5331  func (m *RateLimit_Override) GetOverrideSpecifier() isRateLimit_Override_OverrideSpecifier {
  5332  	if m != nil {
  5333  		return m.OverrideSpecifier
  5334  	}
  5335  	return nil
  5336  }
  5337  
  5338  func (x *RateLimit_Override) GetDynamicMetadata() *RateLimit_Override_DynamicMetadata {
  5339  	if x, ok := x.GetOverrideSpecifier().(*RateLimit_Override_DynamicMetadata_); ok {
  5340  		return x.DynamicMetadata
  5341  	}
  5342  	return nil
  5343  }
  5344  
  5345  type isRateLimit_Override_OverrideSpecifier interface {
  5346  	isRateLimit_Override_OverrideSpecifier()
  5347  }
  5348  
  5349  type RateLimit_Override_DynamicMetadata_ struct {
  5350  	// Limit override from dynamic metadata.
  5351  	DynamicMetadata *RateLimit_Override_DynamicMetadata `protobuf:"bytes,1,opt,name=dynamic_metadata,json=dynamicMetadata,proto3,oneof"`
  5352  }
  5353  
  5354  func (*RateLimit_Override_DynamicMetadata_) isRateLimit_Override_OverrideSpecifier() {}
  5355  
  5356  // The following descriptor entry is appended to the descriptor:
  5357  //
  5358  // .. code-block:: cpp
  5359  //
  5360  //   ("source_cluster", "<local service cluster>")
  5361  //
  5362  // <local service cluster> is derived from the :option:`--service-cluster` option.
  5363  type RateLimit_Action_SourceCluster struct {
  5364  	state         protoimpl.MessageState
  5365  	sizeCache     protoimpl.SizeCache
  5366  	unknownFields protoimpl.UnknownFields
  5367  }
  5368  
  5369  func (x *RateLimit_Action_SourceCluster) Reset() {
  5370  	*x = RateLimit_Action_SourceCluster{}
  5371  	if protoimpl.UnsafeEnabled {
  5372  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[47]
  5373  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5374  		ms.StoreMessageInfo(mi)
  5375  	}
  5376  }
  5377  
  5378  func (x *RateLimit_Action_SourceCluster) String() string {
  5379  	return protoimpl.X.MessageStringOf(x)
  5380  }
  5381  
  5382  func (*RateLimit_Action_SourceCluster) ProtoMessage() {}
  5383  
  5384  func (x *RateLimit_Action_SourceCluster) ProtoReflect() protoreflect.Message {
  5385  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[47]
  5386  	if protoimpl.UnsafeEnabled && x != nil {
  5387  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5388  		if ms.LoadMessageInfo() == nil {
  5389  			ms.StoreMessageInfo(mi)
  5390  		}
  5391  		return ms
  5392  	}
  5393  	return mi.MessageOf(x)
  5394  }
  5395  
  5396  // Deprecated: Use RateLimit_Action_SourceCluster.ProtoReflect.Descriptor instead.
  5397  func (*RateLimit_Action_SourceCluster) Descriptor() ([]byte, []int) {
  5398  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{15, 0, 0}
  5399  }
  5400  
  5401  // The following descriptor entry is appended to the descriptor:
  5402  //
  5403  // .. code-block:: cpp
  5404  //
  5405  //   ("destination_cluster", "<routed target cluster>")
  5406  //
  5407  // Once a request matches against a route table rule, a routed cluster is determined by one of
  5408  // the following :ref:`route table configuration <envoy_v3_api_msg_config.route.v3.RouteConfiguration>`
  5409  // settings:
  5410  //
  5411  // * :ref:`cluster <envoy_v3_api_field_config.route.v3.RouteAction.cluster>` indicates the upstream cluster
  5412  //   to route to.
  5413  // * :ref:`weighted_clusters <envoy_v3_api_field_config.route.v3.RouteAction.weighted_clusters>`
  5414  //   chooses a cluster randomly from a set of clusters with attributed weight.
  5415  // * :ref:`cluster_header <envoy_v3_api_field_config.route.v3.RouteAction.cluster_header>` indicates which
  5416  //   header in the request contains the target cluster.
  5417  type RateLimit_Action_DestinationCluster struct {
  5418  	state         protoimpl.MessageState
  5419  	sizeCache     protoimpl.SizeCache
  5420  	unknownFields protoimpl.UnknownFields
  5421  }
  5422  
  5423  func (x *RateLimit_Action_DestinationCluster) Reset() {
  5424  	*x = RateLimit_Action_DestinationCluster{}
  5425  	if protoimpl.UnsafeEnabled {
  5426  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[48]
  5427  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5428  		ms.StoreMessageInfo(mi)
  5429  	}
  5430  }
  5431  
  5432  func (x *RateLimit_Action_DestinationCluster) String() string {
  5433  	return protoimpl.X.MessageStringOf(x)
  5434  }
  5435  
  5436  func (*RateLimit_Action_DestinationCluster) ProtoMessage() {}
  5437  
  5438  func (x *RateLimit_Action_DestinationCluster) ProtoReflect() protoreflect.Message {
  5439  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[48]
  5440  	if protoimpl.UnsafeEnabled && x != nil {
  5441  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5442  		if ms.LoadMessageInfo() == nil {
  5443  			ms.StoreMessageInfo(mi)
  5444  		}
  5445  		return ms
  5446  	}
  5447  	return mi.MessageOf(x)
  5448  }
  5449  
  5450  // Deprecated: Use RateLimit_Action_DestinationCluster.ProtoReflect.Descriptor instead.
  5451  func (*RateLimit_Action_DestinationCluster) Descriptor() ([]byte, []int) {
  5452  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{15, 0, 1}
  5453  }
  5454  
  5455  // The following descriptor entry is appended when a header contains a key that matches the
  5456  // *header_name*:
  5457  //
  5458  // .. code-block:: cpp
  5459  //
  5460  //   ("<descriptor_key>", "<header_value_queried_from_header>")
  5461  type RateLimit_Action_RequestHeaders struct {
  5462  	state         protoimpl.MessageState
  5463  	sizeCache     protoimpl.SizeCache
  5464  	unknownFields protoimpl.UnknownFields
  5465  
  5466  	// The header name to be queried from the request headers. The header’s
  5467  	// value is used to populate the value of the descriptor entry for the
  5468  	// descriptor_key.
  5469  	HeaderName string `protobuf:"bytes,1,opt,name=header_name,json=headerName,proto3" json:"header_name,omitempty"`
  5470  	// The key to use in the descriptor entry.
  5471  	DescriptorKey string `protobuf:"bytes,2,opt,name=descriptor_key,json=descriptorKey,proto3" json:"descriptor_key,omitempty"`
  5472  	// If set to true, Envoy skips the descriptor while calling rate limiting service
  5473  	// when header is not present in the request. By default it skips calling the
  5474  	// rate limiting service if this header is not present in the request.
  5475  	SkipIfAbsent bool `protobuf:"varint,3,opt,name=skip_if_absent,json=skipIfAbsent,proto3" json:"skip_if_absent,omitempty"`
  5476  }
  5477  
  5478  func (x *RateLimit_Action_RequestHeaders) Reset() {
  5479  	*x = RateLimit_Action_RequestHeaders{}
  5480  	if protoimpl.UnsafeEnabled {
  5481  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[49]
  5482  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5483  		ms.StoreMessageInfo(mi)
  5484  	}
  5485  }
  5486  
  5487  func (x *RateLimit_Action_RequestHeaders) String() string {
  5488  	return protoimpl.X.MessageStringOf(x)
  5489  }
  5490  
  5491  func (*RateLimit_Action_RequestHeaders) ProtoMessage() {}
  5492  
  5493  func (x *RateLimit_Action_RequestHeaders) ProtoReflect() protoreflect.Message {
  5494  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[49]
  5495  	if protoimpl.UnsafeEnabled && x != nil {
  5496  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5497  		if ms.LoadMessageInfo() == nil {
  5498  			ms.StoreMessageInfo(mi)
  5499  		}
  5500  		return ms
  5501  	}
  5502  	return mi.MessageOf(x)
  5503  }
  5504  
  5505  // Deprecated: Use RateLimit_Action_RequestHeaders.ProtoReflect.Descriptor instead.
  5506  func (*RateLimit_Action_RequestHeaders) Descriptor() ([]byte, []int) {
  5507  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{15, 0, 2}
  5508  }
  5509  
  5510  func (x *RateLimit_Action_RequestHeaders) GetHeaderName() string {
  5511  	if x != nil {
  5512  		return x.HeaderName
  5513  	}
  5514  	return ""
  5515  }
  5516  
  5517  func (x *RateLimit_Action_RequestHeaders) GetDescriptorKey() string {
  5518  	if x != nil {
  5519  		return x.DescriptorKey
  5520  	}
  5521  	return ""
  5522  }
  5523  
  5524  func (x *RateLimit_Action_RequestHeaders) GetSkipIfAbsent() bool {
  5525  	if x != nil {
  5526  		return x.SkipIfAbsent
  5527  	}
  5528  	return false
  5529  }
  5530  
  5531  // The following descriptor entry is appended to the descriptor and is populated using the
  5532  // trusted address from :ref:`x-forwarded-for <config_http_conn_man_headers_x-forwarded-for>`:
  5533  //
  5534  // .. code-block:: cpp
  5535  //
  5536  //   ("remote_address", "<trusted address from x-forwarded-for>")
  5537  type RateLimit_Action_RemoteAddress struct {
  5538  	state         protoimpl.MessageState
  5539  	sizeCache     protoimpl.SizeCache
  5540  	unknownFields protoimpl.UnknownFields
  5541  }
  5542  
  5543  func (x *RateLimit_Action_RemoteAddress) Reset() {
  5544  	*x = RateLimit_Action_RemoteAddress{}
  5545  	if protoimpl.UnsafeEnabled {
  5546  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[50]
  5547  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5548  		ms.StoreMessageInfo(mi)
  5549  	}
  5550  }
  5551  
  5552  func (x *RateLimit_Action_RemoteAddress) String() string {
  5553  	return protoimpl.X.MessageStringOf(x)
  5554  }
  5555  
  5556  func (*RateLimit_Action_RemoteAddress) ProtoMessage() {}
  5557  
  5558  func (x *RateLimit_Action_RemoteAddress) ProtoReflect() protoreflect.Message {
  5559  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[50]
  5560  	if protoimpl.UnsafeEnabled && x != nil {
  5561  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5562  		if ms.LoadMessageInfo() == nil {
  5563  			ms.StoreMessageInfo(mi)
  5564  		}
  5565  		return ms
  5566  	}
  5567  	return mi.MessageOf(x)
  5568  }
  5569  
  5570  // Deprecated: Use RateLimit_Action_RemoteAddress.ProtoReflect.Descriptor instead.
  5571  func (*RateLimit_Action_RemoteAddress) Descriptor() ([]byte, []int) {
  5572  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{15, 0, 3}
  5573  }
  5574  
  5575  // The following descriptor entry is appended to the descriptor:
  5576  //
  5577  // .. code-block:: cpp
  5578  //
  5579  //   ("generic_key", "<descriptor_value>")
  5580  type RateLimit_Action_GenericKey struct {
  5581  	state         protoimpl.MessageState
  5582  	sizeCache     protoimpl.SizeCache
  5583  	unknownFields protoimpl.UnknownFields
  5584  
  5585  	// The value to use in the descriptor entry.
  5586  	DescriptorValue string `protobuf:"bytes,1,opt,name=descriptor_value,json=descriptorValue,proto3" json:"descriptor_value,omitempty"`
  5587  	// An optional key to use in the descriptor entry. If not set it defaults
  5588  	// to 'generic_key' as the descriptor key.
  5589  	DescriptorKey string `protobuf:"bytes,2,opt,name=descriptor_key,json=descriptorKey,proto3" json:"descriptor_key,omitempty"`
  5590  }
  5591  
  5592  func (x *RateLimit_Action_GenericKey) Reset() {
  5593  	*x = RateLimit_Action_GenericKey{}
  5594  	if protoimpl.UnsafeEnabled {
  5595  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[51]
  5596  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5597  		ms.StoreMessageInfo(mi)
  5598  	}
  5599  }
  5600  
  5601  func (x *RateLimit_Action_GenericKey) String() string {
  5602  	return protoimpl.X.MessageStringOf(x)
  5603  }
  5604  
  5605  func (*RateLimit_Action_GenericKey) ProtoMessage() {}
  5606  
  5607  func (x *RateLimit_Action_GenericKey) ProtoReflect() protoreflect.Message {
  5608  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[51]
  5609  	if protoimpl.UnsafeEnabled && x != nil {
  5610  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5611  		if ms.LoadMessageInfo() == nil {
  5612  			ms.StoreMessageInfo(mi)
  5613  		}
  5614  		return ms
  5615  	}
  5616  	return mi.MessageOf(x)
  5617  }
  5618  
  5619  // Deprecated: Use RateLimit_Action_GenericKey.ProtoReflect.Descriptor instead.
  5620  func (*RateLimit_Action_GenericKey) Descriptor() ([]byte, []int) {
  5621  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{15, 0, 4}
  5622  }
  5623  
  5624  func (x *RateLimit_Action_GenericKey) GetDescriptorValue() string {
  5625  	if x != nil {
  5626  		return x.DescriptorValue
  5627  	}
  5628  	return ""
  5629  }
  5630  
  5631  func (x *RateLimit_Action_GenericKey) GetDescriptorKey() string {
  5632  	if x != nil {
  5633  		return x.DescriptorKey
  5634  	}
  5635  	return ""
  5636  }
  5637  
  5638  // The following descriptor entry is appended to the descriptor:
  5639  //
  5640  // .. code-block:: cpp
  5641  //
  5642  //   ("header_match", "<descriptor_value>")
  5643  type RateLimit_Action_HeaderValueMatch struct {
  5644  	state         protoimpl.MessageState
  5645  	sizeCache     protoimpl.SizeCache
  5646  	unknownFields protoimpl.UnknownFields
  5647  
  5648  	// The value to use in the descriptor entry.
  5649  	DescriptorValue string `protobuf:"bytes,1,opt,name=descriptor_value,json=descriptorValue,proto3" json:"descriptor_value,omitempty"`
  5650  	// If set to true, the action will append a descriptor entry when the
  5651  	// request matches the headers. If set to false, the action will append a
  5652  	// descriptor entry when the request does not match the headers. The
  5653  	// default value is true.
  5654  	ExpectMatch *wrappers.BoolValue `protobuf:"bytes,2,opt,name=expect_match,json=expectMatch,proto3" json:"expect_match,omitempty"`
  5655  	// Specifies a set of headers that the rate limit action should match
  5656  	// on. The action will check the request’s headers against all the
  5657  	// specified headers in the config. A match will happen if all the
  5658  	// headers in the config are present in the request with the same values
  5659  	// (or based on presence if the value field is not in the config).
  5660  	Headers []*HeaderMatcher `protobuf:"bytes,3,rep,name=headers,proto3" json:"headers,omitempty"`
  5661  }
  5662  
  5663  func (x *RateLimit_Action_HeaderValueMatch) Reset() {
  5664  	*x = RateLimit_Action_HeaderValueMatch{}
  5665  	if protoimpl.UnsafeEnabled {
  5666  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[52]
  5667  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5668  		ms.StoreMessageInfo(mi)
  5669  	}
  5670  }
  5671  
  5672  func (x *RateLimit_Action_HeaderValueMatch) String() string {
  5673  	return protoimpl.X.MessageStringOf(x)
  5674  }
  5675  
  5676  func (*RateLimit_Action_HeaderValueMatch) ProtoMessage() {}
  5677  
  5678  func (x *RateLimit_Action_HeaderValueMatch) ProtoReflect() protoreflect.Message {
  5679  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[52]
  5680  	if protoimpl.UnsafeEnabled && x != nil {
  5681  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5682  		if ms.LoadMessageInfo() == nil {
  5683  			ms.StoreMessageInfo(mi)
  5684  		}
  5685  		return ms
  5686  	}
  5687  	return mi.MessageOf(x)
  5688  }
  5689  
  5690  // Deprecated: Use RateLimit_Action_HeaderValueMatch.ProtoReflect.Descriptor instead.
  5691  func (*RateLimit_Action_HeaderValueMatch) Descriptor() ([]byte, []int) {
  5692  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{15, 0, 5}
  5693  }
  5694  
  5695  func (x *RateLimit_Action_HeaderValueMatch) GetDescriptorValue() string {
  5696  	if x != nil {
  5697  		return x.DescriptorValue
  5698  	}
  5699  	return ""
  5700  }
  5701  
  5702  func (x *RateLimit_Action_HeaderValueMatch) GetExpectMatch() *wrappers.BoolValue {
  5703  	if x != nil {
  5704  		return x.ExpectMatch
  5705  	}
  5706  	return nil
  5707  }
  5708  
  5709  func (x *RateLimit_Action_HeaderValueMatch) GetHeaders() []*HeaderMatcher {
  5710  	if x != nil {
  5711  		return x.Headers
  5712  	}
  5713  	return nil
  5714  }
  5715  
  5716  // The following descriptor entry is appended when the
  5717  // :ref:`dynamic metadata <well_known_dynamic_metadata>` contains a key value:
  5718  //
  5719  // .. code-block:: cpp
  5720  //
  5721  //   ("<descriptor_key>", "<value_queried_from_dynamic_metadata>")
  5722  //
  5723  // .. attention::
  5724  //   This action has been deprecated in favor of the :ref:`metadata <envoy_v3_api_msg_config.route.v3.RateLimit.Action.MetaData>` action
  5725  type RateLimit_Action_DynamicMetaData struct {
  5726  	state         protoimpl.MessageState
  5727  	sizeCache     protoimpl.SizeCache
  5728  	unknownFields protoimpl.UnknownFields
  5729  
  5730  	// The key to use in the descriptor entry.
  5731  	DescriptorKey string `protobuf:"bytes,1,opt,name=descriptor_key,json=descriptorKey,proto3" json:"descriptor_key,omitempty"`
  5732  	// Metadata struct that defines the key and path to retrieve the string value. A match will
  5733  	// only happen if the value in the dynamic metadata is of type string.
  5734  	MetadataKey *v34.MetadataKey `protobuf:"bytes,2,opt,name=metadata_key,json=metadataKey,proto3" json:"metadata_key,omitempty"`
  5735  	// An optional value to use if *metadata_key* is empty. If not set and
  5736  	// no value is present under the metadata_key then no descriptor is generated.
  5737  	DefaultValue string `protobuf:"bytes,3,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"`
  5738  }
  5739  
  5740  func (x *RateLimit_Action_DynamicMetaData) Reset() {
  5741  	*x = RateLimit_Action_DynamicMetaData{}
  5742  	if protoimpl.UnsafeEnabled {
  5743  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[53]
  5744  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5745  		ms.StoreMessageInfo(mi)
  5746  	}
  5747  }
  5748  
  5749  func (x *RateLimit_Action_DynamicMetaData) String() string {
  5750  	return protoimpl.X.MessageStringOf(x)
  5751  }
  5752  
  5753  func (*RateLimit_Action_DynamicMetaData) ProtoMessage() {}
  5754  
  5755  func (x *RateLimit_Action_DynamicMetaData) ProtoReflect() protoreflect.Message {
  5756  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[53]
  5757  	if protoimpl.UnsafeEnabled && x != nil {
  5758  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5759  		if ms.LoadMessageInfo() == nil {
  5760  			ms.StoreMessageInfo(mi)
  5761  		}
  5762  		return ms
  5763  	}
  5764  	return mi.MessageOf(x)
  5765  }
  5766  
  5767  // Deprecated: Use RateLimit_Action_DynamicMetaData.ProtoReflect.Descriptor instead.
  5768  func (*RateLimit_Action_DynamicMetaData) Descriptor() ([]byte, []int) {
  5769  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{15, 0, 6}
  5770  }
  5771  
  5772  func (x *RateLimit_Action_DynamicMetaData) GetDescriptorKey() string {
  5773  	if x != nil {
  5774  		return x.DescriptorKey
  5775  	}
  5776  	return ""
  5777  }
  5778  
  5779  func (x *RateLimit_Action_DynamicMetaData) GetMetadataKey() *v34.MetadataKey {
  5780  	if x != nil {
  5781  		return x.MetadataKey
  5782  	}
  5783  	return nil
  5784  }
  5785  
  5786  func (x *RateLimit_Action_DynamicMetaData) GetDefaultValue() string {
  5787  	if x != nil {
  5788  		return x.DefaultValue
  5789  	}
  5790  	return ""
  5791  }
  5792  
  5793  // The following descriptor entry is appended when the metadata contains a key value:
  5794  //
  5795  // .. code-block:: cpp
  5796  //
  5797  //   ("<descriptor_key>", "<value_queried_from_metadata>")
  5798  type RateLimit_Action_MetaData struct {
  5799  	state         protoimpl.MessageState
  5800  	sizeCache     protoimpl.SizeCache
  5801  	unknownFields protoimpl.UnknownFields
  5802  
  5803  	// The key to use in the descriptor entry.
  5804  	DescriptorKey string `protobuf:"bytes,1,opt,name=descriptor_key,json=descriptorKey,proto3" json:"descriptor_key,omitempty"`
  5805  	// Metadata struct that defines the key and path to retrieve the string value. A match will
  5806  	// only happen if the value in the metadata is of type string.
  5807  	MetadataKey *v34.MetadataKey `protobuf:"bytes,2,opt,name=metadata_key,json=metadataKey,proto3" json:"metadata_key,omitempty"`
  5808  	// An optional value to use if *metadata_key* is empty. If not set and
  5809  	// no value is present under the metadata_key then no descriptor is generated.
  5810  	DefaultValue string `protobuf:"bytes,3,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"`
  5811  	// Source of metadata
  5812  	Source RateLimit_Action_MetaData_Source `protobuf:"varint,4,opt,name=source,proto3,enum=envoy.config.route.v3.RateLimit_Action_MetaData_Source" json:"source,omitempty"`
  5813  }
  5814  
  5815  func (x *RateLimit_Action_MetaData) Reset() {
  5816  	*x = RateLimit_Action_MetaData{}
  5817  	if protoimpl.UnsafeEnabled {
  5818  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[54]
  5819  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5820  		ms.StoreMessageInfo(mi)
  5821  	}
  5822  }
  5823  
  5824  func (x *RateLimit_Action_MetaData) String() string {
  5825  	return protoimpl.X.MessageStringOf(x)
  5826  }
  5827  
  5828  func (*RateLimit_Action_MetaData) ProtoMessage() {}
  5829  
  5830  func (x *RateLimit_Action_MetaData) ProtoReflect() protoreflect.Message {
  5831  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[54]
  5832  	if protoimpl.UnsafeEnabled && x != nil {
  5833  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5834  		if ms.LoadMessageInfo() == nil {
  5835  			ms.StoreMessageInfo(mi)
  5836  		}
  5837  		return ms
  5838  	}
  5839  	return mi.MessageOf(x)
  5840  }
  5841  
  5842  // Deprecated: Use RateLimit_Action_MetaData.ProtoReflect.Descriptor instead.
  5843  func (*RateLimit_Action_MetaData) Descriptor() ([]byte, []int) {
  5844  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{15, 0, 7}
  5845  }
  5846  
  5847  func (x *RateLimit_Action_MetaData) GetDescriptorKey() string {
  5848  	if x != nil {
  5849  		return x.DescriptorKey
  5850  	}
  5851  	return ""
  5852  }
  5853  
  5854  func (x *RateLimit_Action_MetaData) GetMetadataKey() *v34.MetadataKey {
  5855  	if x != nil {
  5856  		return x.MetadataKey
  5857  	}
  5858  	return nil
  5859  }
  5860  
  5861  func (x *RateLimit_Action_MetaData) GetDefaultValue() string {
  5862  	if x != nil {
  5863  		return x.DefaultValue
  5864  	}
  5865  	return ""
  5866  }
  5867  
  5868  func (x *RateLimit_Action_MetaData) GetSource() RateLimit_Action_MetaData_Source {
  5869  	if x != nil {
  5870  		return x.Source
  5871  	}
  5872  	return RateLimit_Action_MetaData_DYNAMIC
  5873  }
  5874  
  5875  // Fetches the override from the dynamic metadata.
  5876  type RateLimit_Override_DynamicMetadata struct {
  5877  	state         protoimpl.MessageState
  5878  	sizeCache     protoimpl.SizeCache
  5879  	unknownFields protoimpl.UnknownFields
  5880  
  5881  	// Metadata struct that defines the key and path to retrieve the struct value.
  5882  	// The value must be a struct containing an integer "requests_per_unit" property
  5883  	// and a "unit" property with a value parseable to :ref:`RateLimitUnit
  5884  	// enum <envoy_v3_api_enum_type.v3.RateLimitUnit>`
  5885  	MetadataKey *v34.MetadataKey `protobuf:"bytes,1,opt,name=metadata_key,json=metadataKey,proto3" json:"metadata_key,omitempty"`
  5886  }
  5887  
  5888  func (x *RateLimit_Override_DynamicMetadata) Reset() {
  5889  	*x = RateLimit_Override_DynamicMetadata{}
  5890  	if protoimpl.UnsafeEnabled {
  5891  		mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[55]
  5892  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5893  		ms.StoreMessageInfo(mi)
  5894  	}
  5895  }
  5896  
  5897  func (x *RateLimit_Override_DynamicMetadata) String() string {
  5898  	return protoimpl.X.MessageStringOf(x)
  5899  }
  5900  
  5901  func (*RateLimit_Override_DynamicMetadata) ProtoMessage() {}
  5902  
  5903  func (x *RateLimit_Override_DynamicMetadata) ProtoReflect() protoreflect.Message {
  5904  	mi := &file_envoy_config_route_v3_route_components_proto_msgTypes[55]
  5905  	if protoimpl.UnsafeEnabled && x != nil {
  5906  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  5907  		if ms.LoadMessageInfo() == nil {
  5908  			ms.StoreMessageInfo(mi)
  5909  		}
  5910  		return ms
  5911  	}
  5912  	return mi.MessageOf(x)
  5913  }
  5914  
  5915  // Deprecated: Use RateLimit_Override_DynamicMetadata.ProtoReflect.Descriptor instead.
  5916  func (*RateLimit_Override_DynamicMetadata) Descriptor() ([]byte, []int) {
  5917  	return file_envoy_config_route_v3_route_components_proto_rawDescGZIP(), []int{15, 1, 0}
  5918  }
  5919  
  5920  func (x *RateLimit_Override_DynamicMetadata) GetMetadataKey() *v34.MetadataKey {
  5921  	if x != nil {
  5922  		return x.MetadataKey
  5923  	}
  5924  	return nil
  5925  }
  5926  
  5927  var File_envoy_config_route_v3_route_components_proto protoreflect.FileDescriptor
  5928  
  5929  var file_envoy_config_route_v3_route_components_proto_rawDesc = []byte{
  5930  	0x0a, 0x2c, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x72,
  5931  	0x6f, 0x75, 0x74, 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x63, 0x6f,
  5932  	0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15,
  5933  	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75,
  5934  	0x74, 0x65, 0x2e, 0x76, 0x33, 0x1a, 0x1f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e,
  5935  	0x66, 0x69, 0x67, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x62, 0x61, 0x73, 0x65,
  5936  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f,
  5937  	0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x65, 0x78, 0x74,
  5938  	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x65, 0x6e,
  5939  	0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f,
  5940  	0x76, 0x33, 0x2f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
  5941  	0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x74,
  5942  	0x79, 0x70, 0x65, 0x2f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2f, 0x76, 0x33, 0x2f, 0x6d,
  5943  	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x65,
  5944  	0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65,
  5945  	0x72, 0x2f, 0x76, 0x33, 0x2f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  5946  	0x1a, 0x22, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6d, 0x61, 0x74,
  5947  	0x63, 0x68, 0x65, 0x72, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x70,
  5948  	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x74, 0x79, 0x70, 0x65,
  5949  	0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x76, 0x33, 0x2f, 0x6d, 0x65, 0x74,
  5950  	0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x65, 0x6e, 0x76,
  5951  	0x6f, 0x79, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x74, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x2f,
  5952  	0x76, 0x33, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x61, 0x67, 0x2e, 0x70, 0x72,
  5953  	0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f,
  5954  	0x76, 0x33, 0x2f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  5955  	0x1a, 0x19, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x76, 0x33, 0x2f,
  5956  	0x72, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f,
  5957  	0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79,
  5958  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
  5959  	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  5960  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
  5961  	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70,
  5962  	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f,
  5963  	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70,
  5964  	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x61, 0x6e, 0x6e, 0x6f,
  5965  	0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74,
  5966  	0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x75, 0x64, 0x70, 0x61, 0x2f,
  5967  	0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x6d, 0x69, 0x67, 0x72,
  5968  	0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x75, 0x64, 0x70, 0x61, 0x2f,
  5969  	0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74,
  5970  	0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61,
  5971  	0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69,
  5972  	0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c,
  5973  	0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70,
  5974  	0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe2, 0x0e, 0x0a, 0x0b, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c,
  5975  	0x48, 0x6f, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
  5976  	0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d,
  5977  	0x65, 0x12, 0x2c, 0x0a, 0x07, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03,
  5978  	0x28, 0x09, 0x42, 0x12, 0xfa, 0x42, 0x0f, 0x92, 0x01, 0x0c, 0x08, 0x01, 0x22, 0x08, 0x72, 0x06,
  5979  	0xc0, 0x01, 0x02, 0xc8, 0x01, 0x00, 0x52, 0x07, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12,
  5980  	0x34, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
  5981  	0x1c, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72,
  5982  	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x06, 0x72,
  5983  	0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x60, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,
  5984  	0x5f, 0x74, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x65, 0x6e, 0x76,
  5985  	0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e,
  5986  	0x76, 0x33, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x2e, 0x54,
  5987  	0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70,
  5988  	0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x71,
  5989  	0x75, 0x69, 0x72, 0x65, 0x54, 0x6c, 0x73, 0x12, 0x50, 0x0a, 0x10, 0x76, 0x69, 0x72, 0x74, 0x75,
  5990  	0x61, 0x6c, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
  5991  	0x0b, 0x32, 0x25, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  5992  	0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61,
  5993  	0x6c, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x0f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61,
  5994  	0x6c, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x0b, 0x72, 0x61, 0x74,
  5995  	0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20,
  5996  	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f,
  5997  	0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74,
  5998  	0x52, 0x0a, 0x72, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x67, 0x0a, 0x16,
  5999  	0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f,
  6000  	0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x65,
  6001  	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65,
  6002  	0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f,
  6003  	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x92, 0x01, 0x03, 0x10, 0xe8, 0x07,
  6004  	0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73,
  6005  	0x54, 0x6f, 0x41, 0x64, 0x64, 0x12, 0x4d, 0x0a, 0x19, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
  6006  	0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x6d, 0x6f,
  6007  	0x76, 0x65, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x42, 0x12, 0xfa, 0x42, 0x0f, 0x92, 0x01, 0x0c,
  6008  	0x22, 0x0a, 0x72, 0x08, 0x10, 0x01, 0xc0, 0x01, 0x01, 0xc8, 0x01, 0x00, 0x52, 0x16, 0x72, 0x65,
  6009  	0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x52, 0x65,
  6010  	0x6d, 0x6f, 0x76, 0x65, 0x12, 0x69, 0x0a, 0x17, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
  6011  	0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x18,
  6012  	0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f,
  6013  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61,
  6014  	0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09,
  6015  	0xfa, 0x42, 0x06, 0x92, 0x01, 0x03, 0x10, 0xe8, 0x07, 0x52, 0x14, 0x72, 0x65, 0x73, 0x70, 0x6f,
  6016  	0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x12,
  6017  	0x4f, 0x0a, 0x1a, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64,
  6018  	0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x0b, 0x20,
  6019  	0x03, 0x28, 0x09, 0x42, 0x12, 0xfa, 0x42, 0x0f, 0x92, 0x01, 0x0c, 0x22, 0x0a, 0x72, 0x08, 0x10,
  6020  	0x01, 0xc0, 0x01, 0x01, 0xc8, 0x01, 0x00, 0x52, 0x17, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
  6021  	0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65,
  6022  	0x12, 0x35, 0x0a, 0x04, 0x63, 0x6f, 0x72, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21,
  6023  	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f,
  6024  	0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x72, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63,
  6025  	0x79, 0x52, 0x04, 0x63, 0x6f, 0x72, 0x73, 0x12, 0x73, 0x0a, 0x17, 0x74, 0x79, 0x70, 0x65, 0x64,
  6026  	0x5f, 0x70, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
  6027  	0x69, 0x67, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
  6028  	0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33,
  6029  	0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f, 0x73, 0x74, 0x2e, 0x54, 0x79, 0x70,
  6030  	0x65, 0x64, 0x50, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  6031  	0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x74, 0x79, 0x70, 0x65, 0x64, 0x50, 0x65, 0x72,
  6032  	0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x41, 0x0a, 0x1d,
  6033  	0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f,
  6034  	0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20,
  6035  	0x01, 0x28, 0x08, 0x52, 0x1a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75,
  6036  	0x65, 0x73, 0x74, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
  6037  	0x48, 0x0a, 0x21, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x6d,
  6038  	0x70, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70,
  6039  	0x6f, 0x6e, 0x73, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1d, 0x69, 0x6e, 0x63, 0x6c,
  6040  	0x75, 0x64, 0x65, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x49,
  6041  	0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x72, 0x65, 0x74,
  6042  	0x72, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32,
  6043  	0x22, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72,
  6044  	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c,
  6045  	0x69, 0x63, 0x79, 0x52, 0x0b, 0x72, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
  6046  	0x12, 0x4f, 0x0a, 0x19, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79,
  6047  	0x5f, 0x74, 0x79, 0x70, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x14, 0x20,
  6048  	0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
  6049  	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x72, 0x65, 0x74, 0x72, 0x79,
  6050  	0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  6051  	0x67, 0x12, 0x45, 0x0a, 0x0c, 0x68, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63,
  6052  	0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
  6053  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e,
  6054  	0x48, 0x65, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0b, 0x68, 0x65, 0x64,
  6055  	0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x60, 0x0a, 0x1e, 0x70, 0x65, 0x72, 0x5f,
  6056  	0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x6c,
  6057  	0x69, 0x6d, 0x69, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b,
  6058  	0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
  6059  	0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1a,
  6060  	0x70, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72,
  6061  	0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0xb2, 0x01, 0x0a, 0x29, 0x68,
  6062  	0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x72,
  6063  	0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65,
  6064  	0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c,
  6065  	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f,
  6066  	0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x6f,
  6067  	0x73, 0x74, 0x2e, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x44, 0x65,
  6068  	0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x50, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65,
  6069  	0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x0b, 0x18, 0x01,
  6070  	0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e, 0x30, 0x52, 0x24, 0x68, 0x69, 0x64, 0x64, 0x65,
  6071  	0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64,
  6072  	0x50, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a,
  6073  	0x5d, 0x0a, 0x19, 0x54, 0x79, 0x70, 0x65, 0x64, 0x50, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65,
  6074  	0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
  6075  	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a,
  6076  	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e,
  6077  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
  6078  	0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x70,
  6079  	0x0a, 0x29, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x44, 0x65, 0x70,
  6080  	0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x50, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
  6081  	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
  6082  	0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a,
  6083  	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67,
  6084  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53,
  6085  	0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
  6086  	0x22, 0x3a, 0x0a, 0x12, 0x54, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65,
  6087  	0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00,
  6088  	0x12, 0x11, 0x0a, 0x0d, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x4f, 0x4e, 0x4c,
  6089  	0x59, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x02, 0x3a, 0x25, 0x9a, 0xc5,
  6090  	0x88, 0x1e, 0x20, 0x0a, 0x1e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,
  6091  	0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x48,
  6092  	0x6f, 0x73, 0x74, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0x64, 0x0a, 0x0c, 0x46, 0x69, 0x6c,
  6093  	0x74, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x06, 0x61, 0x63, 0x74,
  6094  	0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  6095  	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52,
  6096  	0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x26, 0x9a, 0xc5, 0x88, 0x1e, 0x21, 0x0a, 0x1f,
  6097  	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75,
  6098  	0x74, 0x65, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22,
  6099  	0x96, 0x0d, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
  6100  	0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x41, 0x0a,
  6101  	0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65,
  6102  	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74,
  6103  	0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42,
  6104  	0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68,
  6105  	0x12, 0x3a, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
  6106  	0x22, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72,
  6107  	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74,
  6108  	0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x08,
  6109  	0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25,
  6110  	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f,
  6111  	0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x41,
  6112  	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63,
  6113  	0x74, 0x12, 0x56, 0x0a, 0x0f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70,
  6114  	0x6f, 0x6e, 0x73, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x65, 0x6e, 0x76,
  6115  	0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e,
  6116  	0x76, 0x33, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
  6117  	0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x69, 0x72, 0x65, 0x63,
  6118  	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0d, 0x66, 0x69, 0x6c,
  6119  	0x74, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b,
  6120  	0x32, 0x23, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
  6121  	0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x41,
  6122  	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x41,
  6123  	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x60, 0x0a, 0x15, 0x6e, 0x6f, 0x6e, 0x5f, 0x66, 0x6f, 0x72,
  6124  	0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x12,
  6125  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e,
  6126  	0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x6f, 0x6e,
  6127  	0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  6128  	0x48, 0x00, 0x52, 0x13, 0x6e, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e,
  6129  	0x67, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64,
  6130  	0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
  6131  	0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33,
  6132  	0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64,
  6133  	0x61, 0x74, 0x61, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x6f, 0x72,
  6134  	0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63,
  6135  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x44,
  6136  	0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61,
  6137  	0x74, 0x6f, 0x72, 0x12, 0x6d, 0x0a, 0x17, 0x74, 0x79, 0x70, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x72,
  6138  	0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0d,
  6139  	0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e,
  6140  	0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f, 0x75,
  6141  	0x74, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x64, 0x50, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65,
  6142  	0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x74, 0x79,
  6143  	0x70, 0x65, 0x64, 0x50, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66,
  6144  	0x69, 0x67, 0x12, 0x67, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65,
  6145  	0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x18, 0x09, 0x20, 0x03,
  6146  	0x28, 0x0b, 0x32, 0x27, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
  6147  	0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
  6148  	0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xfa, 0x42, 0x06,
  6149  	0x92, 0x01, 0x03, 0x10, 0xe8, 0x07, 0x52, 0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48,
  6150  	0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x12, 0x4d, 0x0a, 0x19, 0x72,
  6151  	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74,
  6152  	0x6f, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x42, 0x12,
  6153  	0xfa, 0x42, 0x0f, 0x92, 0x01, 0x0c, 0x22, 0x0a, 0x72, 0x08, 0x10, 0x01, 0xc0, 0x01, 0x01, 0xc8,
  6154  	0x01, 0x00, 0x52, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65,
  6155  	0x72, 0x73, 0x54, 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x69, 0x0a, 0x17, 0x72, 0x65,
  6156  	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74,
  6157  	0x6f, 0x5f, 0x61, 0x64, 0x64, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x65, 0x6e,
  6158  	0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e,
  6159  	0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70,
  6160  	0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x92, 0x01, 0x03, 0x10, 0xe8, 0x07, 0x52,
  6161  	0x14, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73,
  6162  	0x54, 0x6f, 0x41, 0x64, 0x64, 0x12, 0x4f, 0x0a, 0x1a, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
  6163  	0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x6d,
  6164  	0x6f, 0x76, 0x65, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x42, 0x12, 0xfa, 0x42, 0x0f, 0x92, 0x01,
  6165  	0x0c, 0x22, 0x0a, 0x72, 0x08, 0x10, 0x01, 0xc0, 0x01, 0x01, 0xc8, 0x01, 0x00, 0x52, 0x17, 0x72,
  6166  	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f,
  6167  	0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63, 0x69, 0x6e,
  6168  	0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
  6169  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e,
  6170  	0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67,
  6171  	0x12, 0x60, 0x0a, 0x1e, 0x70, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f,
  6172  	0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x62, 0x79, 0x74,
  6173  	0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  6174  	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33,
  6175  	0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1a, 0x70, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65,
  6176  	0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x79, 0x74,
  6177  	0x65, 0x73, 0x12, 0xac, 0x01, 0x0a, 0x29, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x65, 0x6e,
  6178  	0x76, 0x6f, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x70,
  6179  	0x65, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  6180  	0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63,
  6181  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52,
  6182  	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79,
  6183  	0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x50, 0x65, 0x72, 0x46, 0x69, 0x6c,
  6184  	0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x0b,
  6185  	0x18, 0x01, 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e, 0x30, 0x52, 0x24, 0x68, 0x69, 0x64,
  6186  	0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74,
  6187  	0x65, 0x64, 0x50, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  6188  	0x67, 0x1a, 0x5d, 0x0a, 0x19, 0x54, 0x79, 0x70, 0x65, 0x64, 0x50, 0x65, 0x72, 0x46, 0x69, 0x6c,
  6189  	0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
  6190  	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
  6191  	0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
  6192  	0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
  6193  	0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
  6194  	0x1a, 0x70, 0x0a, 0x29, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x44,
  6195  	0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x50, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74,
  6196  	0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
  6197  	0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
  6198  	0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
  6199  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
  6200  	0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
  6201  	0x38, 0x01, 0x3a, 0x1f, 0x9a, 0xc5, 0x88, 0x1e, 0x1a, 0x0a, 0x18, 0x65, 0x6e, 0x76, 0x6f, 0x79,
  6202  	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f,
  6203  	0x75, 0x74, 0x65, 0x42, 0x0d, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x03, 0xf8,
  6204  	0x42, 0x01, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x22, 0xc5, 0x0c, 0x0a, 0x0f, 0x57, 0x65, 0x69,
  6205  	0x67, 0x68, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x5a, 0x0a, 0x08,
  6206  	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34,
  6207  	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f,
  6208  	0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x43,
  6209  	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x57, 0x65,
  6210  	0x69, 0x67, 0x68, 0x74, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x08,
  6211  	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x48, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61,
  6212  	0x6c, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
  6213  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
  6214  	0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0xfa, 0x42,
  6215  	0x04, 0x2a, 0x02, 0x28, 0x01, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x57, 0x65, 0x69, 0x67,
  6216  	0x68, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6b, 0x65,
  6217  	0x79, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10,
  6218  	0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78,
  6219  	0x1a, 0xb2, 0x0a, 0x0a, 0x0d, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x57, 0x65, 0x69, 0x67,
  6220  	0x68, 0x74, 0x12, 0x2d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
  6221  	0x42, 0x19, 0xf2, 0x98, 0xfe, 0x8f, 0x05, 0x13, 0x12, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
  6222  	0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d,
  6223  	0x65, 0x12, 0x4b, 0x0a, 0x0e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x68, 0x65, 0x61,
  6224  	0x64, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xfa, 0x42, 0x08, 0x72, 0x06,
  6225  	0xc0, 0x01, 0x01, 0xc8, 0x01, 0x00, 0xf2, 0x98, 0xfe, 0x8f, 0x05, 0x13, 0x12, 0x11, 0x63, 0x6c,
  6226  	0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52,
  6227  	0x0d, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x34,
  6228  	0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
  6229  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
  6230  	0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x77, 0x65,
  6231  	0x69, 0x67, 0x68, 0x74, 0x12, 0x45, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
  6232  	0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65,
  6233  	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65,
  6234  	0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x6d, 0x65,
  6235  	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x67, 0x0a, 0x16, 0x72,
  6236  	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74,
  6237  	0x6f, 0x5f, 0x61, 0x64, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x65, 0x6e,
  6238  	0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e,
  6239  	0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70,
  6240  	0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x92, 0x01, 0x03, 0x10, 0xe8, 0x07, 0x52,
  6241  	0x13, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54,
  6242  	0x6f, 0x41, 0x64, 0x64, 0x12, 0x4b, 0x0a, 0x19, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f,
  6243  	0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76,
  6244  	0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x42, 0x10, 0xfa, 0x42, 0x0d, 0x92, 0x01, 0x0a, 0x22,
  6245  	0x08, 0x72, 0x06, 0xc0, 0x01, 0x01, 0xc8, 0x01, 0x00, 0x52, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65,
  6246  	0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x76,
  6247  	0x65, 0x12, 0x69, 0x0a, 0x17, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x68, 0x65,
  6248  	0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x18, 0x05, 0x20, 0x03,
  6249  	0x28, 0x0b, 0x32, 0x27, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
  6250  	0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
  6251  	0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xfa, 0x42, 0x06,
  6252  	0x92, 0x01, 0x03, 0x10, 0xe8, 0x07, 0x52, 0x14, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
  6253  	0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x12, 0x4d, 0x0a, 0x1a,
  6254  	0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73,
  6255  	0x5f, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09,
  6256  	0x42, 0x10, 0xfa, 0x42, 0x0d, 0x92, 0x01, 0x0a, 0x22, 0x08, 0x72, 0x06, 0xc0, 0x01, 0x01, 0xc8,
  6257  	0x01, 0x00, 0x52, 0x17, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64,
  6258  	0x65, 0x72, 0x73, 0x54, 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x85, 0x01, 0x0a, 0x17,
  6259  	0x74, 0x79, 0x70, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72,
  6260  	0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4e, 0x2e,
  6261  	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75,
  6262  	0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x43, 0x6c,
  6263  	0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x57, 0x65, 0x69,
  6264  	0x67, 0x68, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x64, 0x50, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74,
  6265  	0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x74,
  6266  	0x79, 0x70, 0x65, 0x64, 0x50, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e,
  6267  	0x66, 0x69, 0x67, 0x12, 0x3f, 0x0a, 0x14, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x77, 0x72,
  6268  	0x69, 0x74, 0x65, 0x5f, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28,
  6269  	0x09, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x72, 0x06, 0xc0, 0x01, 0x02, 0xc8, 0x01, 0x00, 0x48, 0x00,
  6270  	0x52, 0x12, 0x68, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x4c, 0x69, 0x74,
  6271  	0x65, 0x72, 0x61, 0x6c, 0x12, 0xc4, 0x01, 0x0a, 0x29, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f,
  6272  	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64,
  6273  	0x5f, 0x70, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
  6274  	0x69, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x5e, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
  6275  	0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33,
  6276  	0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
  6277  	0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2e, 0x48,
  6278  	0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63,
  6279  	0x61, 0x74, 0x65, 0x64, 0x50, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e,
  6280  	0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x0b, 0x18, 0x01, 0x92, 0xc7, 0x86, 0xd8,
  6281  	0x04, 0x03, 0x33, 0x2e, 0x30, 0x52, 0x24, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76,
  6282  	0x6f, 0x79, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x50, 0x65, 0x72, 0x46,
  6283  	0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x5d, 0x0a, 0x19, 0x54,
  6284  	0x79, 0x70, 0x65, 0x64, 0x50, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e,
  6285  	0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
  6286  	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61,
  6287  	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  6288  	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52,
  6289  	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x70, 0x0a, 0x29, 0x48, 0x69,
  6290  	0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61,
  6291  	0x74, 0x65, 0x64, 0x50, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66,
  6292  	0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
  6293  	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c,
  6294  	0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  6295  	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63,
  6296  	0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x37, 0x9a, 0xc5,
  6297  	0x88, 0x1e, 0x32, 0x0a, 0x30, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,
  6298  	0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64,
  6299  	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x57,
  6300  	0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0x18, 0x0a, 0x16, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65,
  6301  	0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4a,
  6302  	0x04, 0x08, 0x07, 0x10, 0x08, 0x3a, 0x29, 0x9a, 0xc5, 0x88, 0x1e, 0x24, 0x0a, 0x22, 0x65, 0x6e,
  6303  	0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65,
  6304  	0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
  6305  	0x22, 0xf1, 0x09, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12,
  6306  	0x18, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48,
  6307  	0x00, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x14, 0x0a, 0x04, 0x70, 0x61, 0x74,
  6308  	0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12,
  6309  	0x4e, 0x0a, 0x0a, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x0a, 0x20,
  6310  	0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65,
  6311  	0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x67, 0x65,
  6312  	0x78, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02,
  6313  	0x10, 0x01, 0x48, 0x00, 0x52, 0x09, 0x73, 0x61, 0x66, 0x65, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12,
  6314  	0x5b, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68,
  6315  	0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
  6316  	0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33,
  6317  	0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x43, 0x6f, 0x6e, 0x6e,
  6318  	0x65, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x63, 0x6f,
  6319  	0x6e, 0x6e, 0x65, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x5e, 0x0a, 0x1d,
  6320  	0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x5f, 0x64, 0x65, 0x70,
  6321  	0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x03, 0x20,
  6322  	0x01, 0x28, 0x09, 0x42, 0x19, 0x18, 0x01, 0xfa, 0x42, 0x05, 0x72, 0x03, 0x28, 0x80, 0x08, 0x92,
  6323  	0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e, 0x30, 0xb8, 0xee, 0xf2, 0xd2, 0x05, 0x01, 0x48, 0x00,
  6324  	0x52, 0x1a, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x44, 0x65, 0x70,
  6325  	0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x41, 0x0a, 0x0e,
  6326  	0x63, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x18, 0x04,
  6327  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
  6328  	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65,
  6329  	0x52, 0x0d, 0x63, 0x61, 0x73, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12,
  6330  	0x59, 0x0a, 0x10, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74,
  6331  	0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
  6332  	0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33,
  6333  	0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  6334  	0x61, 0x6c, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x0f, 0x72, 0x75, 0x6e, 0x74, 0x69,
  6335  	0x6d, 0x65, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x07, 0x68, 0x65,
  6336  	0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e,
  6337  	0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65,
  6338  	0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65,
  6339  	0x72, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x57, 0x0a, 0x10, 0x71, 0x75,
  6340  	0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x07,
  6341  	0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e,
  6342  	0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65,
  6343  	0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68,
  6344  	0x65, 0x72, 0x52, 0x0f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74,
  6345  	0x65, 0x72, 0x73, 0x12, 0x4b, 0x0a, 0x04, 0x67, 0x72, 0x70, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28,
  6346  	0x0b, 0x32, 0x37, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  6347  	0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d,
  6348  	0x61, 0x74, 0x63, 0x68, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61,
  6349  	0x74, 0x63, 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x04, 0x67, 0x72, 0x70, 0x63,
  6350  	0x12, 0x59, 0x0a, 0x0b, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18,
  6351  	0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f,
  6352  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f,
  6353  	0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x74,
  6354  	0x65, 0x78, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52,
  6355  	0x0a, 0x74, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x51, 0x0a, 0x10, 0x64,
  6356  	0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18,
  6357  	0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79,
  6358  	0x70, 0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65,
  6359  	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x52, 0x0f, 0x64,
  6360  	0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x53,
  6361  	0x0a, 0x15, 0x47, 0x72, 0x70, 0x63, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68,
  6362  	0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x3a, 0x9a, 0xc5, 0x88, 0x1e, 0x35, 0x0a, 0x33,
  6363  	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75,
  6364  	0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x47, 0x72,
  6365  	0x70, 0x63, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x70, 0x74, 0x69,
  6366  	0x6f, 0x6e, 0x73, 0x1a, 0xc9, 0x01, 0x0a, 0x16, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65,
  6367  	0x78, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38,
  6368  	0x0a, 0x09, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
  6369  	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  6370  	0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x70,
  6371  	0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69,
  6372  	0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
  6373  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f,
  6374  	0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74,
  6375  	0x65, 0x64, 0x3a, 0x3b, 0x9a, 0xc5, 0x88, 0x1e, 0x36, 0x0a, 0x34, 0x65, 0x6e, 0x76, 0x6f, 0x79,
  6376  	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f,
  6377  	0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x54, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x74,
  6378  	0x65, 0x78, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a,
  6379  	0x10, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65,
  6380  	0x72, 0x3a, 0x24, 0x9a, 0xc5, 0x88, 0x1e, 0x1f, 0x0a, 0x1d, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
  6381  	0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75,
  6382  	0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x15, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f,
  6383  	0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x4a, 0x04,
  6384  	0x08, 0x05, 0x10, 0x06, 0x22, 0xfb, 0x06, 0x0a, 0x0a, 0x43, 0x6f, 0x72, 0x73, 0x50, 0x6f, 0x6c,
  6385  	0x69, 0x63, 0x79, 0x12, 0x5f, 0x0a, 0x19, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6f, 0x72, 0x69,
  6386  	0x67, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68,
  6387  	0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74,
  6388  	0x79, 0x70, 0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x53,
  6389  	0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x52, 0x16, 0x61, 0x6c,
  6390  	0x6c, 0x6f, 0x77, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d,
  6391  	0x61, 0x74, 0x63, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x65,
  6392  	0x74, 0x68, 0x6f, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x6c, 0x6c,
  6393  	0x6f, 0x77, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c,
  6394  	0x6f, 0x77, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
  6395  	0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x25,
  6396  	0x0a, 0x0e, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73,
  6397  	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x70, 0x6f, 0x73, 0x65, 0x48, 0x65,
  6398  	0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x67, 0x65,
  6399  	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x12, 0x47,
  6400  	0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69,
  6401  	0x61, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  6402  	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c,
  6403  	0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x64,
  6404  	0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x57, 0x0a, 0x0e, 0x66, 0x69, 0x6c, 0x74, 0x65,
  6405  	0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32,
  6406  	0x2e, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63,
  6407  	0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x72,
  6408  	0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x48,
  6409  	0x00, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
  6410  	0x12, 0x76, 0x0a, 0x1f, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x76, 0x6f, 0x79,
  6411  	0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62,
  6412  	0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  6413  	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c,
  6414  	0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x11, 0x18, 0x01, 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33,
  6415  	0x2e, 0x30, 0xb8, 0xee, 0xf2, 0xd2, 0x05, 0x01, 0x48, 0x00, 0x52, 0x1c, 0x68, 0x69, 0x64, 0x64,
  6416  	0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65,
  6417  	0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x55, 0x0a, 0x0e, 0x73, 0x68, 0x61, 0x64,
  6418  	0x6f, 0x77, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b,
  6419  	0x32, 0x2e, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
  6420  	0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x46,
  6421  	0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74,
  6422  	0x52, 0x0d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12,
  6423  	0x61, 0x0a, 0x24, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x5f,
  6424  	0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77,
  6425  	0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x11, 0x18,
  6426  	0x01, 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e, 0x30, 0xb8, 0xee, 0xf2, 0xd2, 0x05, 0x01,
  6427  	0x52, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x44, 0x65, 0x70,
  6428  	0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x4f, 0x72, 0x69, 0x67,
  6429  	0x69, 0x6e, 0x12, 0x73, 0x0a, 0x2a, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x76,
  6430  	0x6f, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6c,
  6431  	0x6c, 0x6f, 0x77, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78,
  6432  	0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x42, 0x18, 0x18, 0x01, 0xfa, 0x42, 0x0a, 0x92, 0x01, 0x07,
  6433  	0x22, 0x05, 0x72, 0x03, 0x28, 0x80, 0x08, 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e, 0x30,
  6434  	0x52, 0x25, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x44, 0x65, 0x70,
  6435  	0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x4f, 0x72, 0x69, 0x67,
  6436  	0x69, 0x6e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x3a, 0x24, 0x9a, 0xc5, 0x88, 0x1e, 0x1f, 0x0a, 0x1d,
  6437  	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75,
  6438  	0x74, 0x65, 0x2e, 0x43, 0x6f, 0x72, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x13, 0x0a,
  6439  	0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,
  6440  	0x65, 0x72, 0x22, 0x8a, 0x29, 0x0a, 0x0b, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69,
  6441  	0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20,
  6442  	0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x48, 0x00, 0x52, 0x07,
  6443  	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x0e, 0x63, 0x6c, 0x75, 0x73, 0x74,
  6444  	0x65, 0x72, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42,
  6445  	0x0d, 0xfa, 0x42, 0x0a, 0x72, 0x08, 0x10, 0x01, 0xc0, 0x01, 0x01, 0xc8, 0x01, 0x00, 0x48, 0x00,
  6446  	0x52, 0x0d, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12,
  6447  	0x55, 0x0a, 0x11, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6c, 0x75, 0x73,
  6448  	0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x65, 0x6e, 0x76,
  6449  	0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e,
  6450  	0x76, 0x33, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74,
  6451  	0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x43, 0x6c,
  6452  	0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3a, 0x0a, 0x18, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
  6453  	0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x70, 0x6c, 0x75, 0x67,
  6454  	0x69, 0x6e, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x16, 0x63, 0x6c, 0x75, 0x73,
  6455  	0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x50, 0x6c, 0x75, 0x67,
  6456  	0x69, 0x6e, 0x12, 0x8e, 0x01, 0x0a, 0x1f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e,
  6457  	0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
  6458  	0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x65,
  6459  	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74,
  6460  	0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  6461  	0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64,
  6462  	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x08, 0xfa, 0x42,
  6463  	0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x1b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e,
  6464  	0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43,
  6465  	0x6f, 0x64, 0x65, 0x12, 0x45, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f,
  6466  	0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6e,
  6467  	0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e,
  6468  	0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x6d, 0x65, 0x74,
  6469  	0x61, 0x64, 0x61, 0x74, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x32, 0x0a, 0x0e, 0x70, 0x72,
  6470  	0x65, 0x66, 0x69, 0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01,
  6471  	0x28, 0x09, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x72, 0x06, 0xc0, 0x01, 0x02, 0xc8, 0x01, 0x00, 0x52,
  6472  	0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x53,
  6473  	0x0a, 0x0d, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18,
  6474  	0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79,
  6475  	0x70, 0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65,
  6476  	0x67, 0x65, 0x78, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x64, 0x53, 0x75, 0x62, 0x73, 0x74,
  6477  	0x69, 0x74, 0x75, 0x74, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x67, 0x65, 0x78, 0x52, 0x65, 0x77, 0x72,
  6478  	0x69, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x14, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x77, 0x72,
  6479  	0x69, 0x74, 0x65, 0x5f, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28,
  6480  	0x09, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x72, 0x06, 0xc0, 0x01, 0x02, 0xc8, 0x01, 0x00, 0x48, 0x01,
  6481  	0x52, 0x12, 0x68, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x4c, 0x69, 0x74,
  6482  	0x65, 0x72, 0x61, 0x6c, 0x12, 0x48, 0x0a, 0x11, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x68, 0x6f, 0x73,
  6483  	0x74, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
  6484  	0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
  6485  	0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x01, 0x52, 0x0f, 0x61,
  6486  	0x75, 0x74, 0x6f, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x3d,
  6487  	0x0a, 0x13, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x68,
  6488  	0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xfa, 0x42, 0x08,
  6489  	0x72, 0x06, 0xc0, 0x01, 0x01, 0xc8, 0x01, 0x00, 0x48, 0x01, 0x52, 0x11, 0x68, 0x6f, 0x73, 0x74,
  6490  	0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x67, 0x0a,
  6491  	0x17, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x70, 0x61,
  6492  	0x74, 0x68, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e,
  6493  	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63,
  6494  	0x68, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4d, 0x61, 0x74, 0x63,
  6495  	0x68, 0x41, 0x6e, 0x64, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x48, 0x01,
  6496  	0x52, 0x14, 0x68, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x50, 0x61, 0x74,
  6497  	0x68, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75,
  6498  	0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  6499  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
  6500  	0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x3c, 0x0a, 0x0c, 0x69,
  6501  	0x64, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28,
  6502  	0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  6503  	0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x69, 0x64,
  6504  	0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x45, 0x0a, 0x0c, 0x72, 0x65, 0x74,
  6505  	0x72, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32,
  6506  	0x22, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72,
  6507  	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c,
  6508  	0x69, 0x63, 0x79, 0x52, 0x0b, 0x72, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
  6509  	0x12, 0x4f, 0x0a, 0x19, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79,
  6510  	0x5f, 0x74, 0x79, 0x70, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x21, 0x20,
  6511  	0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
  6512  	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x72, 0x65, 0x74, 0x72, 0x79,
  6513  	0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  6514  	0x67, 0x12, 0x6e, 0x0a, 0x17, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x72,
  6515  	0x72, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x1e, 0x20, 0x03,
  6516  	0x28, 0x0b, 0x32, 0x36, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
  6517  	0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65,
  6518  	0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x69,
  6519  	0x72, 0x72, 0x6f, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x15, 0x72, 0x65, 0x71, 0x75,
  6520  	0x65, 0x73, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65,
  6521  	0x73, 0x12, 0x4b, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20,
  6522  	0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
  6523  	0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69,
  6524  	0x6e, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82,
  6525  	0x01, 0x02, 0x10, 0x01, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x41,
  6526  	0x0a, 0x0b, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x0d, 0x20,
  6527  	0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
  6528  	0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x61, 0x74, 0x65,
  6529  	0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x0a, 0x72, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74,
  6530  	0x73, 0x12, 0x5c, 0x0a, 0x16, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x76, 0x68, 0x5f,
  6531  	0x72, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28,
  6532  	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  6533  	0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0b, 0x18,
  6534  	0x01, 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e, 0x30, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c,
  6535  	0x75, 0x64, 0x65, 0x56, 0x68, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12,
  6536  	0x4e, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0f,
  6537  	0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e,
  6538  	0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f, 0x75,
  6539  	0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c,
  6540  	0x69, 0x63, 0x79, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12,
  6541  	0x35, 0x0a, 0x04, 0x63, 0x6f, 0x72, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e,
  6542  	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75,
  6543  	0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x72, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
  6544  	0x52, 0x04, 0x63, 0x6f, 0x72, 0x73, 0x12, 0x50, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x67, 0x72,
  6545  	0x70, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b,
  6546  	0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
  6547  	0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x18, 0x01, 0x92,
  6548  	0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e, 0x30, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x47, 0x72, 0x70,
  6549  	0x63, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x56, 0x0a, 0x13, 0x67, 0x72, 0x70, 0x63,
  6550  	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18,
  6551  	0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
  6552  	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  6553  	0x42, 0x0b, 0x18, 0x01, 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e, 0x30, 0x52, 0x11, 0x67,
  6554  	0x72, 0x70, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74,
  6555  	0x12, 0x59, 0x0a, 0x0f, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
  6556  	0x69, 0x67, 0x73, 0x18, 0x19, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
  6557  	0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76,
  6558  	0x33, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x55, 0x70,
  6559  	0x67, 0x72, 0x61, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x75, 0x70, 0x67,
  6560  	0x72, 0x61, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x67, 0x0a, 0x18, 0x69,
  6561  	0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
  6562  	0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e,
  6563  	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75,
  6564  	0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65,
  6565  	0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x16, 0x69, 0x6e,
  6566  	0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x6f,
  6567  	0x6c, 0x69, 0x63, 0x79, 0x12, 0x80, 0x01, 0x0a, 0x18, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61,
  6568  	0x6c, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f,
  6569  	0x6e, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
  6570  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e,
  6571  	0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x74, 0x65,
  6572  	0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69,
  6573  	0x6f, 0x6e, 0x42, 0x0b, 0x18, 0x01, 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e, 0x30, 0x52,
  6574  	0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63,
  6575  	0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x16, 0x6d, 0x61, 0x78, 0x5f, 0x69,
  6576  	0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
  6577  	0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  6578  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32,
  6579  	0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0b, 0x18, 0x01, 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33,
  6580  	0x2e, 0x30, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52,
  6581  	0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x12, 0x45, 0x0a, 0x0c, 0x68, 0x65, 0x64, 0x67,
  6582  	0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22,
  6583  	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f,
  6584  	0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69,
  6585  	0x63, 0x79, 0x52, 0x0b, 0x68, 0x65, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12,
  6586  	0x64, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x64, 0x75,
  6587  	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x65,
  6588  	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74,
  6589  	0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  6590  	0x2e, 0x4d, 0x61, 0x78, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
  6591  	0x6f, 0x6e, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x75, 0x72,
  6592  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0xa4, 0x01, 0x0a, 0x2d, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e,
  6593  	0x5f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65,
  6594  	0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x72, 0x72, 0x6f, 0x72,
  6595  	0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e,
  6596  	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75,
  6597  	0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f,
  6598  	0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x50,
  6599  	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x0b, 0x18, 0x01, 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33,
  6600  	0x2e, 0x30, 0x52, 0x28, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x44,
  6601  	0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
  6602  	0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x1a, 0xf0, 0x02, 0x0a,
  6603  	0x13, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x50, 0x6f,
  6604  	0x6c, 0x69, 0x63, 0x79, 0x12, 0x21, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18,
  6605  	0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07,
  6606  	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x10, 0x72, 0x75, 0x6e, 0x74, 0x69,
  6607  	0x6d, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
  6608  	0x0b, 0x32, 0x2e, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  6609  	0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65,
  6610  	0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e,
  6611  	0x74, 0x52, 0x0f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69,
  6612  	0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x61, 0x6d, 0x70,
  6613  	0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  6614  	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c,
  6615  	0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x63, 0x65, 0x53, 0x61, 0x6d, 0x70,
  6616  	0x6c, 0x65, 0x64, 0x12, 0x5f, 0x0a, 0x23, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x65, 0x6e,
  6617  	0x76, 0x6f, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x72,
  6618  	0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
  6619  	0x42, 0x11, 0x18, 0x01, 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e, 0x30, 0xb8, 0xee, 0xf2,
  6620  	0xd2, 0x05, 0x01, 0x52, 0x1f, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79,
  6621  	0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d,
  6622  	0x65, 0x4b, 0x65, 0x79, 0x3a, 0x39, 0x9a, 0xc5, 0x88, 0x1e, 0x34, 0x0a, 0x32, 0x65, 0x6e, 0x76,
  6623  	0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e,
  6624  	0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75,
  6625  	0x65, 0x73, 0x74, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x1a,
  6626  	0x96, 0x0a, 0x0a, 0x0a, 0x48, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x4e,
  6627  	0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34,
  6628  	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f,
  6629  	0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69,
  6630  	0x6f, 0x6e, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x48, 0x65,
  6631  	0x61, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x4e,
  6632  	0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34,
  6633  	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f,
  6634  	0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69,
  6635  	0x6f, 0x6e, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x43, 0x6f,
  6636  	0x6f, 0x6b, 0x69, 0x65, 0x48, 0x00, 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x79,
  6637  	0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f,
  6638  	0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e,
  6639  	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75,
  6640  	0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f,
  6641  	0x6e, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x43, 0x6f, 0x6e,
  6642  	0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,
  6643  	0x73, 0x48, 0x00, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50,
  6644  	0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x67, 0x0a, 0x0f, 0x71, 0x75, 0x65,
  6645  	0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01,
  6646  	0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
  6647  	0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65,
  6648  	0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63,
  6649  	0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,
  6650  	0x48, 0x00, 0x52, 0x0e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74,
  6651  	0x65, 0x72, 0x12, 0x5e, 0x0a, 0x0c, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61,
  6652  	0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
  6653  	0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33,
  6654  	0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x48, 0x61, 0x73,
  6655  	0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x74,
  6656  	0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61,
  6657  	0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x04,
  6658  	0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x1a, 0xc6,
  6659  	0x01, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x0b, 0x68, 0x65, 0x61,
  6660  	0x64, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d,
  6661  	0xfa, 0x42, 0x0a, 0x72, 0x08, 0x10, 0x01, 0xc0, 0x01, 0x01, 0xc8, 0x01, 0x00, 0x52, 0x0a, 0x68,
  6662  	0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x0d, 0x72, 0x65, 0x67,
  6663  	0x65, 0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
  6664  	0x32, 0x2e, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x6d, 0x61,
  6665  	0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4d, 0x61,
  6666  	0x74, 0x63, 0x68, 0x41, 0x6e, 0x64, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65,
  6667  	0x52, 0x0c, 0x72, 0x65, 0x67, 0x65, 0x78, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x3a, 0x37,
  6668  	0x9a, 0xc5, 0x88, 0x1e, 0x32, 0x0a, 0x30, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69,
  6669  	0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41,
  6670  	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
  6671  	0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x9f, 0x01, 0x0a, 0x06, 0x43, 0x6f, 0x6f, 0x6b,
  6672  	0x69, 0x65, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
  6673  	0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
  6674  	0x2b, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
  6675  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
  6676  	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, 0x12, 0x0a, 0x04,
  6677  	0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68,
  6678  	0x3a, 0x37, 0x9a, 0xc5, 0x88, 0x1e, 0x32, 0x0a, 0x30, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61,
  6679  	0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74,
  6680  	0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69,
  6681  	0x63, 0x79, 0x2e, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x1a, 0x7a, 0x0a, 0x14, 0x43, 0x6f, 0x6e,
  6682  	0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,
  6683  	0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x01,
  6684  	0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x70, 0x3a, 0x45,
  6685  	0x9a, 0xc5, 0x88, 0x1e, 0x40, 0x0a, 0x3e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69,
  6686  	0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41,
  6687  	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
  6688  	0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65,
  6689  	0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x6e, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61,
  6690  	0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
  6691  	0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04,
  6692  	0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x3f, 0x9a, 0xc5, 0x88, 0x1e, 0x3a, 0x0a, 0x38, 0x65, 0x6e, 0x76,
  6693  	0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e,
  6694  	0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x48, 0x61, 0x73, 0x68,
  6695  	0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61,
  6696  	0x6d, 0x65, 0x74, 0x65, 0x72, 0x1a, 0x66, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53,
  6697  	0x74, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
  6698  	0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x3a,
  6699  	0x3c, 0x9a, 0xc5, 0x88, 0x1e, 0x37, 0x0a, 0x35, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70,
  6700  	0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65,
  6701  	0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63,
  6702  	0x79, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x30, 0x9a,
  6703  	0xc5, 0x88, 0x1e, 0x2b, 0x0a, 0x29, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e,
  6704  	0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63,
  6705  	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42,
  6706  	0x17, 0x0a, 0x10, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66,
  6707  	0x69, 0x65, 0x72, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x1a, 0xa3, 0x03, 0x0a, 0x0d, 0x55, 0x70, 0x67,
  6708  	0x72, 0x61, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x30, 0x0a, 0x0c, 0x75, 0x70,
  6709  	0x67, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
  6710  	0x42, 0x0d, 0xfa, 0x42, 0x0a, 0x72, 0x08, 0x10, 0x01, 0xc0, 0x01, 0x02, 0xc8, 0x01, 0x00, 0x52,
  6711  	0x0b, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x07,
  6712  	0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
  6713  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
  6714  	0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c,
  6715  	0x65, 0x64, 0x12, 0x65, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f,
  6716  	0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x65, 0x6e, 0x76,
  6717  	0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e,
  6718  	0x76, 0x33, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x55,
  6719  	0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6f, 0x6e,
  6720  	0x6e, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x6e,
  6721  	0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x8d, 0x01, 0x0a, 0x0d, 0x43, 0x6f,
  6722  	0x6e, 0x6e, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5d, 0x0a, 0x15, 0x70,
  6723  	0x72, 0x6f, 0x78, 0x79, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x63, 0x6f,
  6724  	0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x65, 0x6e, 0x76,
  6725  	0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76,
  6726  	0x33, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43,
  6727  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x13, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x72, 0x6f, 0x74,
  6728  	0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c,
  6729  	0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09,
  6730  	0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x6f, 0x73, 0x74, 0x3a, 0x33, 0x9a, 0xc5, 0x88, 0x1e, 0x2e,
  6731  	0x0a, 0x2c, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72,
  6732  	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  6733  	0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x88,
  6734  	0x02, 0x0a, 0x11, 0x4d, 0x61, 0x78, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x75, 0x72, 0x61,
  6735  	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x74, 0x72, 0x65,
  6736  	0x61, 0x6d, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
  6737  	0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  6738  	0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x6d, 0x61,
  6739  	0x78, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
  6740  	0x50, 0x0a, 0x17, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f,
  6741  	0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
  6742  	0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
  6743  	0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x67, 0x72, 0x70,
  6744  	0x63, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61,
  6745  	0x78, 0x12, 0x56, 0x0a, 0x1a, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75,
  6746  	0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18,
  6747  	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
  6748  	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  6749  	0x52, 0x17, 0x67, 0x72, 0x70, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, 0x61,
  6750  	0x64, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x45, 0x0a, 0x1b, 0x43, 0x6c, 0x75,
  6751  	0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70,
  6752  	0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x45, 0x52, 0x56,
  6753  	0x49, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10,
  6754  	0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x01,
  6755  	0x22, 0x5e, 0x0a, 0x16, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x64, 0x69,
  6756  	0x72, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x41,
  6757  	0x53, 0x53, 0x5f, 0x54, 0x48, 0x52, 0x4f, 0x55, 0x47, 0x48, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52,
  6758  	0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x10, 0x00, 0x12, 0x1c,
  6759  	0x0a, 0x18, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41,
  6760  	0x4c, 0x5f, 0x52, 0x45, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x10, 0x01, 0x1a, 0x02, 0x18, 0x01,
  6761  	0x3a, 0x25, 0x9a, 0xc5, 0x88, 0x1e, 0x20, 0x0a, 0x1e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61,
  6762  	0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74,
  6763  	0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x18, 0x0a, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74,
  6764  	0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x03, 0xf8, 0x42,
  6765  	0x01, 0x42, 0x18, 0x0a, 0x16, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74,
  6766  	0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4a, 0x04, 0x08, 0x0c, 0x10,
  6767  	0x0d, 0x4a, 0x04, 0x08, 0x12, 0x10, 0x13, 0x4a, 0x04, 0x08, 0x13, 0x10, 0x14, 0x4a, 0x04, 0x08,
  6768  	0x10, 0x10, 0x11, 0x4a, 0x04, 0x08, 0x16, 0x10, 0x17, 0x4a, 0x04, 0x08, 0x15, 0x10, 0x16, 0x22,
  6769  	0xcb, 0x10, 0x0a, 0x0b, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12,
  6770  	0x19, 0x0a, 0x08, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
  6771  	0x09, 0x52, 0x07, 0x72, 0x65, 0x74, 0x72, 0x79, 0x4f, 0x6e, 0x12, 0x52, 0x0a, 0x0b, 0x6e, 0x75,
  6772  	0x6d, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
  6773  	0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
  6774  	0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x13, 0xf2,
  6775  	0x98, 0xfe, 0x8f, 0x05, 0x0d, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69,
  6776  	0x65, 0x73, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x41,
  6777  	0x0a, 0x0f, 0x70, 0x65, 0x72, 0x5f, 0x74, 0x72, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75,
  6778  	0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  6779  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
  6780  	0x6f, 0x6e, 0x52, 0x0d, 0x70, 0x65, 0x72, 0x54, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75,
  6781  	0x74, 0x12, 0x57, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72,
  6782  	0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
  6783  	0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76,
  6784  	0x33, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x52, 0x65,
  6785  	0x74, 0x72, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x0d, 0x72, 0x65, 0x74,
  6786  	0x72, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x67, 0x0a, 0x14, 0x72, 0x65,
  6787  	0x74, 0x72, 0x79, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61,
  6788  	0x74, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
  6789  	0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33,
  6790  	0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x52, 0x65, 0x74,
  6791  	0x72, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52,
  6792  	0x12, 0x72, 0x65, 0x74, 0x72, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63,
  6793  	0x61, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x21, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65,
  6794  	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x6d, 0x61, 0x78, 0x5f,
  6795  	0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d,
  6796  	0x68, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x74,
  6797  	0x72, 0x79, 0x4d, 0x61, 0x78, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x12, 0x34, 0x0a,
  6798  	0x16, 0x72, 0x65, 0x74, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75,
  6799  	0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x14, 0x72,
  6800  	0x65, 0x74, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f,
  6801  	0x64, 0x65, 0x73, 0x12, 0x55, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x62, 0x61, 0x63,
  6802  	0x6b, 0x5f, 0x6f, 0x66, 0x66, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x65, 0x6e,
  6803  	0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65,
  6804  	0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e,
  6805  	0x52, 0x65, 0x74, 0x72, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x52, 0x0c, 0x72, 0x65,
  6806  	0x74, 0x72, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x12, 0x78, 0x0a, 0x1b, 0x72, 0x61,
  6807  	0x74, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79,
  6808  	0x5f, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6f, 0x66, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32,
  6809  	0x3a, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72,
  6810  	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c,
  6811  	0x69, 0x63, 0x79, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x52,
  6812  	0x65, 0x74, 0x72, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x52, 0x17, 0x72, 0x61, 0x74,
  6813  	0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x52, 0x65, 0x74, 0x72, 0x79, 0x42, 0x61, 0x63,
  6814  	0x6b, 0x4f, 0x66, 0x66, 0x12, 0x51, 0x0a, 0x11, 0x72, 0x65, 0x74, 0x72, 0x69, 0x61, 0x62, 0x6c,
  6815  	0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32,
  6816  	0x24, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72,
  6817  	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61,
  6818  	0x74, 0x63, 0x68, 0x65, 0x72, 0x52, 0x10, 0x72, 0x65, 0x74, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65,
  6819  	0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x60, 0x0a, 0x19, 0x72, 0x65, 0x74, 0x72, 0x69,
  6820  	0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61,
  6821  	0x64, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x76,
  6822  	0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e,
  6823  	0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72,
  6824  	0x52, 0x17, 0x72, 0x65, 0x74, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
  6825  	0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x1a, 0x98, 0x02, 0x0a, 0x0d, 0x52, 0x65,
  6826  	0x74, 0x72, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1b, 0x0a, 0x04, 0x6e,
  6827  	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02,
  6828  	0x10, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x74, 0x79, 0x70, 0x65,
  6829  	0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14,
  6830  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
  6831  	0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x79, 0x70, 0x65, 0x64, 0x43, 0x6f, 0x6e,
  6832  	0x66, 0x69, 0x67, 0x12, 0x6b, 0x0a, 0x1e, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x65, 0x6e,
  6833  	0x76, 0x6f, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63,
  6834  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f,
  6835  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74,
  6836  	0x72, 0x75, 0x63, 0x74, 0x42, 0x0b, 0x18, 0x01, 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e,
  6837  	0x30, 0x48, 0x00, 0x52, 0x1b, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79,
  6838  	0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  6839  	0x3a, 0x33, 0x9a, 0xc5, 0x88, 0x1e, 0x2e, 0x0a, 0x2c, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61,
  6840  	0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x74, 0x72,
  6841  	0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x72, 0x69,
  6842  	0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f,
  6843  	0x74, 0x79, 0x70, 0x65, 0x1a, 0xa2, 0x02, 0x0a, 0x12, 0x52, 0x65, 0x74, 0x72, 0x79, 0x48, 0x6f,
  6844  	0x73, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x04, 0x6e,
  6845  	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02,
  6846  	0x10, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x74, 0x79, 0x70, 0x65,
  6847  	0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14,
  6848  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
  6849  	0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x79, 0x70, 0x65, 0x64, 0x43, 0x6f, 0x6e,
  6850  	0x66, 0x69, 0x67, 0x12, 0x6b, 0x0a, 0x1e, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x65, 0x6e,
  6851  	0x76, 0x6f, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63,
  6852  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f,
  6853  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74,
  6854  	0x72, 0x75, 0x63, 0x74, 0x42, 0x0b, 0x18, 0x01, 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e,
  6855  	0x30, 0x48, 0x00, 0x52, 0x1b, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79,
  6856  	0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  6857  	0x3a, 0x38, 0x9a, 0xc5, 0x88, 0x1e, 0x33, 0x0a, 0x31, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61,
  6858  	0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x74, 0x72,
  6859  	0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x48, 0x6f, 0x73,
  6860  	0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x63, 0x6f,
  6861  	0x6e, 0x66, 0x69, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x1a, 0xd6, 0x01, 0x0a, 0x0c, 0x52, 0x65,
  6862  	0x74, 0x72, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x12, 0x4a, 0x0a, 0x0d, 0x62, 0x61,
  6863  	0x73, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28,
  6864  	0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  6865  	0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0xfa, 0x42,
  6866  	0x07, 0xaa, 0x01, 0x04, 0x08, 0x01, 0x2a, 0x00, 0x52, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x49, 0x6e,
  6867  	0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x46, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x6e,
  6868  	0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
  6869  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
  6870  	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xaa, 0x01, 0x02, 0x2a,
  6871  	0x00, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x3a, 0x32,
  6872  	0x9a, 0xc5, 0x88, 0x1e, 0x2d, 0x0a, 0x2b, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69,
  6873  	0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50,
  6874  	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x4f,
  6875  	0x66, 0x66, 0x1a, 0x88, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64,
  6876  	0x65, 0x72, 0x12, 0x21, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
  6877  	0x42, 0x0d, 0xfa, 0x42, 0x0a, 0x72, 0x08, 0x10, 0x01, 0xc0, 0x01, 0x01, 0xc8, 0x01, 0x00, 0x52,
  6878  	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x56, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18,
  6879  	0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f,
  6880  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65,
  6881  	0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x48,
  6882  	0x65, 0x61, 0x64, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x08, 0xfa, 0x42, 0x05,
  6883  	0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x1a, 0xc0, 0x01,
  6884  	0x0a, 0x17, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x52, 0x65, 0x74,
  6885  	0x72, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x12, 0x5d, 0x0a, 0x0d, 0x72, 0x65, 0x73,
  6886  	0x65, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
  6887  	0x32, 0x2e, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
  6888  	0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f,
  6889  	0x6c, 0x69, 0x63, 0x79, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
  6890  	0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65,
  6891  	0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x46, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f,
  6892  	0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
  6893  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
  6894  	0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xaa, 0x01,
  6895  	0x02, 0x2a, 0x00, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c,
  6896  	0x22, 0x34, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x46,
  6897  	0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53,
  6898  	0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x49, 0x58, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53,
  6899  	0x54, 0x41, 0x4d, 0x50, 0x10, 0x01, 0x3a, 0x25, 0x9a, 0xc5, 0x88, 0x1e, 0x20, 0x0a, 0x1e, 0x65,
  6900  	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74,
  6901  	0x65, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x9c, 0x02,
  6902  	0x0a, 0x0b, 0x48, 0x65, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x50, 0x0a,
  6903  	0x10, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
  6904  	0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  6905  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32,
  6906  	0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x2a, 0x02, 0x28, 0x01, 0x52, 0x0f,
  6907  	0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12,
  6908  	0x5c, 0x0a, 0x19, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65,
  6909  	0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01,
  6910  	0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e,
  6911  	0x76, 0x33, 0x2e, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x65, 0x72,
  6912  	0x63, 0x65, 0x6e, 0x74, 0x52, 0x17, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,
  6913  	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x36, 0x0a,
  6914  	0x18, 0x68, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x74, 0x72,
  6915  	0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
  6916  	0x14, 0x68, 0x65, 0x64, 0x67, 0x65, 0x4f, 0x6e, 0x50, 0x65, 0x72, 0x54, 0x72, 0x79, 0x54, 0x69,
  6917  	0x6d, 0x65, 0x6f, 0x75, 0x74, 0x3a, 0x25, 0x9a, 0xc5, 0x88, 0x1e, 0x20, 0x0a, 0x1e, 0x65, 0x6e,
  6918  	0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65,
  6919  	0x2e, 0x48, 0x65, 0x64, 0x67, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0xe1, 0x05, 0x0a,
  6920  	0x0e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12,
  6921  	0x27, 0x0a, 0x0e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63,
  6922  	0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x68, 0x74, 0x74, 0x70, 0x73,
  6923  	0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x29, 0x0a, 0x0f, 0x73, 0x63, 0x68, 0x65,
  6924  	0x6d, 0x65, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28,
  6925  	0x09, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x52, 0x65, 0x64, 0x69, 0x72,
  6926  	0x65, 0x63, 0x74, 0x12, 0x30, 0x0a, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x64, 0x69,
  6927  	0x72, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x72,
  6928  	0x06, 0xc0, 0x01, 0x02, 0xc8, 0x01, 0x00, 0x52, 0x0c, 0x68, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x64,
  6929  	0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x65,
  6930  	0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x6f,
  6931  	0x72, 0x74, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x32, 0x0a, 0x0d, 0x70, 0x61,
  6932  	0x74, 0x68, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
  6933  	0x09, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x72, 0x06, 0xc0, 0x01, 0x02, 0xc8, 0x01, 0x00, 0x48, 0x01,
  6934  	0x52, 0x0c, 0x70, 0x61, 0x74, 0x68, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x34,
  6935  	0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65,
  6936  	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x72, 0x06, 0xc0, 0x01, 0x02,
  6937  	0xc8, 0x01, 0x00, 0x48, 0x01, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x65, 0x77,
  6938  	0x72, 0x69, 0x74, 0x65, 0x12, 0x55, 0x0a, 0x0d, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x72, 0x65,
  6939  	0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x65, 0x6e,
  6940  	0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72,
  6941  	0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x6e,
  6942  	0x64, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x48, 0x01, 0x52, 0x0c, 0x72,
  6943  	0x65, 0x67, 0x65, 0x78, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x69, 0x0a, 0x0d, 0x72,
  6944  	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01,
  6945  	0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
  6946  	0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x72,
  6947  	0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65,
  6948  	0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x08,
  6949  	0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e,
  6950  	0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x70, 0x5f,
  6951  	0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x74, 0x72,
  6952  	0x69, 0x70, 0x51, 0x75, 0x65, 0x72, 0x79, 0x22, 0x77, 0x0a, 0x14, 0x52, 0x65, 0x64, 0x69, 0x72,
  6953  	0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12,
  6954  	0x15, 0x0a, 0x11, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x41, 0x4e, 0x45,
  6955  	0x4e, 0x54, 0x4c, 0x59, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10,
  6956  	0x01, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x45, 0x45, 0x5f, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x02,
  6957  	0x12, 0x16, 0x0a, 0x12, 0x54, 0x45, 0x4d, 0x50, 0x4f, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x52, 0x45,
  6958  	0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x45, 0x52, 0x4d,
  6959  	0x41, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x10, 0x04,
  6960  	0x3a, 0x28, 0x9a, 0xc5, 0x88, 0x1e, 0x23, 0x0a, 0x21, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61,
  6961  	0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x64, 0x69,
  6962  	0x72, 0x65, 0x63, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x1a, 0x0a, 0x18, 0x73, 0x63,
  6963  	0x68, 0x65, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x65,
  6964  	0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x18, 0x0a, 0x16, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72,
  6965  	0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72,
  6966  	0x22, 0xa0, 0x01, 0x0a, 0x14, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
  6967  	0x6e, 0x73, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x06, 0x73, 0x74, 0x61,
  6968  	0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x2a, 0x05,
  6969  	0x10, 0xd8, 0x04, 0x28, 0x64, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x34, 0x0a,
  6970  	0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6e,
  6971  	0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e,
  6972  	0x76, 0x33, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x04, 0x62,
  6973  	0x6f, 0x64, 0x79, 0x3a, 0x2e, 0x9a, 0xc5, 0x88, 0x1e, 0x29, 0x0a, 0x27, 0x65, 0x6e, 0x76, 0x6f,
  6974  	0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x44,
  6975  	0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x41, 0x63, 0x74,
  6976  	0x69, 0x6f, 0x6e, 0x22, 0x15, 0x0a, 0x13, 0x4e, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72,
  6977  	0x64, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x91, 0x01, 0x0a, 0x09, 0x44,
  6978  	0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72,
  6979  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04,
  6980  	0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
  6981  	0x38, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01,
  6982  	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
  6983  	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09,
  6984  	0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x65, 0x3a, 0x23, 0x9a, 0xc5, 0x88, 0x1e, 0x1e,
  6985  	0x0a, 0x1c, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72,
  6986  	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xd2,
  6987  	0x02, 0x0a, 0x07, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x0f, 0x63, 0x6c,
  6988  	0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20,
  6989  	0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65,
  6990  	0x2e, 0x76, 0x33, 0x2e, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x65,
  6991  	0x72, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x61, 0x6d,
  6992  	0x70, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x0f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x5f,
  6993  	0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20,
  6994  	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x46,
  6995  	0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74,
  6996  	0x52, 0x0e, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67,
  6997  	0x12, 0x4b, 0x0a, 0x10, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x61, 0x6d, 0x70,
  6998  	0x6c, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6e, 0x76,
  6999  	0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x46, 0x72, 0x61, 0x63, 0x74,
  7000  	0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x52, 0x0f, 0x6f, 0x76,
  7001  	0x65, 0x72, 0x61, 0x6c, 0x6c, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x41, 0x0a,
  7002  	0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03,
  7003  	0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e,
  7004  	0x74, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f,
  7005  	0x6d, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x61, 0x67, 0x73,
  7006  	0x3a, 0x21, 0x9a, 0xc5, 0x88, 0x1e, 0x1c, 0x0a, 0x1a, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61,
  7007  	0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x63,
  7008  	0x69, 0x6e, 0x67, 0x22, 0xf6, 0x02, 0x0a, 0x0e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x43,
  7009  	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
  7010  	0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
  7011  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e,
  7012  	0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x52, 0x07, 0x68,
  7013  	0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
  7014  	0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e,
  7015  	0x61, 0x6d, 0x65, 0x12, 0x60, 0x0a, 0x1f, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x65, 0x6e,
  7016  	0x76, 0x6f, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x70,
  7017  	0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0x18, 0x01,
  7018  	0xfa, 0x42, 0x05, 0x72, 0x03, 0x28, 0x80, 0x08, 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e,
  7019  	0x30, 0xb8, 0xee, 0xf2, 0xd2, 0x05, 0x01, 0x52, 0x1c, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45,
  7020  	0x6e, 0x76, 0x6f, 0x79, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x50, 0x61,
  7021  	0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x7b, 0x0a, 0x1e, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f,
  7022  	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64,
  7023  	0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e,
  7024  	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72,
  7025  	0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x68,
  7026  	0x6f, 0x64, 0x42, 0x11, 0x18, 0x01, 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e, 0x30, 0xb8,
  7027  	0xee, 0xf2, 0xd2, 0x05, 0x01, 0x52, 0x1b, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76,
  7028  	0x6f, 0x79, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x68,
  7029  	0x6f, 0x64, 0x3a, 0x28, 0x9a, 0xc5, 0x88, 0x1e, 0x23, 0x0a, 0x21, 0x65, 0x6e, 0x76, 0x6f, 0x79,
  7030  	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x56, 0x69,
  7031  	0x72, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0xaa, 0x16, 0x0a,
  7032  	0x09, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74,
  7033  	0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  7034  	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74,
  7035  	0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x2a, 0x02, 0x18, 0x0a,
  7036  	0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62,
  7037  	0x6c, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x69,
  7038  	0x73, 0x61, 0x62, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x4b, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69,
  7039  	0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
  7040  	0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76,
  7041  	0x33, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69,
  7042  	0x6f, 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x07, 0x61, 0x63,
  7043  	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3f, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04,
  7044  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e,
  7045  	0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x61, 0x74,
  7046  	0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x52,
  7047  	0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x1a, 0x96, 0x12, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f,
  7048  	0x6e, 0x12, 0x5e, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73,
  7049  	0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
  7050  	0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76,
  7051  	0x33, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69,
  7052  	0x6f, 0x6e, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
  7053  	0x48, 0x00, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
  7054  	0x72, 0x12, 0x6d, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  7055  	0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a,
  7056  	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f,
  7057  	0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74,
  7058  	0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74,
  7059  	0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x12, 0x64, 0x65,
  7060  	0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
  7061  	0x12, 0x61, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64,
  7062  	0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
  7063  	0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76,
  7064  	0x33, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69,
  7065  	0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
  7066  	0x73, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64,
  7067  	0x65, 0x72, 0x73, 0x12, 0x5e, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64,
  7068  	0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x65, 0x6e,
  7069  	0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65,
  7070  	0x2e, 0x76, 0x33, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e, 0x41, 0x63,
  7071  	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65,
  7072  	0x73, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72,
  7073  	0x65, 0x73, 0x73, 0x12, 0x55, 0x0a, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x6b,
  7074  	0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
  7075  	0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33,
  7076  	0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f,
  7077  	0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x48, 0x00, 0x52, 0x0a,
  7078  	0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x68, 0x0a, 0x12, 0x68, 0x65,
  7079  	0x61, 0x64, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68,
  7080  	0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63,
  7081  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52,
  7082  	0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
  7083  	0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68,
  7084  	0x48, 0x00, 0x52, 0x10, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4d,
  7085  	0x61, 0x74, 0x63, 0x68, 0x12, 0x77, 0x0a, 0x10, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f,
  7086  	0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37,
  7087  	0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f,
  7088  	0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74,
  7089  	0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d,
  7090  	0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x42, 0x11, 0x18, 0x01, 0x92, 0xc7, 0x86, 0xd8, 0x04,
  7091  	0x03, 0x33, 0x2e, 0x30, 0xb8, 0xee, 0xf2, 0xd2, 0x05, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x79,
  7092  	0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4e, 0x0a,
  7093  	0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32,
  7094  	0x30, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72,
  7095  	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69,
  7096  	0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74,
  7097  	0x61, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4a, 0x0a,
  7098  	0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,
  7099  	0x32, 0x2a, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
  7100  	0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x64, 0x45, 0x78, 0x74,
  7101  	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x09,
  7102  	0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x49, 0x0a, 0x0d, 0x53, 0x6f, 0x75,
  7103  	0x72, 0x63, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x3a, 0x38, 0x9a, 0xc5, 0x88, 0x1e,
  7104  	0x33, 0x0a, 0x31, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e,
  7105  	0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e,
  7106  	0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6c, 0x75,
  7107  	0x73, 0x74, 0x65, 0x72, 0x1a, 0x53, 0x0a, 0x12, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74,
  7108  	0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x3a, 0x3d, 0x9a, 0xc5, 0x88, 0x1e,
  7109  	0x38, 0x0a, 0x36, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e,
  7110  	0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e,
  7111  	0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69,
  7112  	0x6f, 0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x1a, 0xd1, 0x01, 0x0a, 0x0e, 0x52, 0x65,
  7113  	0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x0b,
  7114  	0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
  7115  	0x09, 0x42, 0x0d, 0xfa, 0x42, 0x0a, 0x72, 0x08, 0x10, 0x01, 0xc0, 0x01, 0x01, 0xc8, 0x01, 0x00,
  7116  	0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x0e,
  7117  	0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02,
  7118  	0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x64,
  7119  	0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0e,
  7120  	0x73, 0x6b, 0x69, 0x70, 0x5f, 0x69, 0x66, 0x5f, 0x61, 0x62, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x03,
  7121  	0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x6b, 0x69, 0x70, 0x49, 0x66, 0x41, 0x62, 0x73, 0x65,
  7122  	0x6e, 0x74, 0x3a, 0x39, 0x9a, 0xc5, 0x88, 0x1e, 0x34, 0x0a, 0x32, 0x65, 0x6e, 0x76, 0x6f, 0x79,
  7123  	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x61,
  7124  	0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52,
  7125  	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x1a, 0x49, 0x0a,
  7126  	0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x38,
  7127  	0x9a, 0xc5, 0x88, 0x1e, 0x33, 0x0a, 0x31, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69,
  7128  	0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69,
  7129  	0x6d, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74,
  7130  	0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x9e, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x6e,
  7131  	0x65, 0x72, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x63, 0x72,
  7132  	0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
  7133  	0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x63,
  7134  	0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x64,
  7135  	0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20,
  7136  	0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x4b,
  7137  	0x65, 0x79, 0x3a, 0x35, 0x9a, 0xc5, 0x88, 0x1e, 0x30, 0x0a, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
  7138  	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x61,
  7139  	0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47,
  7140  	0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x1a, 0x8c, 0x02, 0x0a, 0x10, 0x48, 0x65,
  7141  	0x61, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x32,
  7142  	0x0a, 0x10, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x61, 0x6c,
  7143  	0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10,
  7144  	0x01, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c,
  7145  	0x75, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x6d, 0x61, 0x74,
  7146  	0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  7147  	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56,
  7148  	0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63,
  7149  	0x68, 0x12, 0x48, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03,
  7150  	0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
  7151  	0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65,
  7152  	0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02,
  7153  	0x08, 0x01, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x3a, 0x3b, 0x9a, 0xc5, 0x88,
  7154  	0x1e, 0x36, 0x0a, 0x34, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32,
  7155  	0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74,
  7156  	0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x61,
  7157  	0x6c, 0x75, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x1a, 0xb8, 0x01, 0x0a, 0x0f, 0x44, 0x79, 0x6e,
  7158  	0x61, 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2e, 0x0a, 0x0e,
  7159  	0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01,
  7160  	0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x64,
  7161  	0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x50, 0x0a, 0x0c,
  7162  	0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01,
  7163  	0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e,
  7164  	0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x61,
  7165  	0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10,
  7166  	0x01, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x23,
  7167  	0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
  7168  	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61,
  7169  	0x6c, 0x75, 0x65, 0x1a, 0xb4, 0x02, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61,
  7170  	0x12, 0x2e, 0x0a, 0x0e, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x6b,
  7171  	0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10,
  7172  	0x01, 0x52, 0x0d, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x4b, 0x65, 0x79,
  7173  	0x12, 0x50, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79,
  7174  	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74,
  7175  	0x79, 0x70, 0x65, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x33, 0x2e,
  7176  	0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05,
  7177  	0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b,
  7178  	0x65, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61,
  7179  	0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75,
  7180  	0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x59, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63,
  7181  	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e,
  7182  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e,
  7183  	0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  7184  	0x2e, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,
  7185  	0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72,
  7186  	0x63, 0x65, 0x22, 0x26, 0x0a, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x0b, 0x0a, 0x07,
  7187  	0x44, 0x59, 0x4e, 0x41, 0x4d, 0x49, 0x43, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x4f, 0x55,
  7188  	0x54, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x01, 0x3a, 0x2a, 0x9a, 0xc5, 0x88, 0x1e,
  7189  	0x25, 0x0a, 0x23, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e,
  7190  	0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e,
  7191  	0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x17, 0x0a, 0x10, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  7192  	0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x1a,
  7193  	0xf2, 0x01, 0x0a, 0x08, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x66, 0x0a, 0x10,
  7194  	0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
  7195  	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63,
  7196  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52,
  7197  	0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64,
  7198  	0x65, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
  7199  	0x61, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61,
  7200  	0x64, 0x61, 0x74, 0x61, 0x1a, 0x63, 0x0a, 0x0f, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x4d,
  7201  	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x50, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x61, 0x64,
  7202  	0x61, 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e,
  7203  	0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64,
  7204  	0x61, 0x74, 0x61, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b,
  7205  	0x65, 0x79, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x6d, 0x65,
  7206  	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x42, 0x19, 0x0a, 0x12, 0x6f, 0x76, 0x65,
  7207  	0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12,
  7208  	0x03, 0xf8, 0x42, 0x01, 0x3a, 0x23, 0x9a, 0xc5, 0x88, 0x1e, 0x1e, 0x0a, 0x1c, 0x65, 0x6e, 0x76,
  7209  	0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e,
  7210  	0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xfc, 0x05, 0x0a, 0x0d, 0x48, 0x65,
  7211  	0x61, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x04, 0x6e,
  7212  	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xfa, 0x42, 0x0a, 0x72, 0x08,
  7213  	0x10, 0x01, 0xc0, 0x01, 0x01, 0xc8, 0x01, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2e,
  7214  	0x0a, 0x0b, 0x65, 0x78, 0x61, 0x63, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x04, 0x20,
  7215  	0x01, 0x28, 0x09, 0x42, 0x0b, 0x18, 0x01, 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e, 0x30,
  7216  	0x48, 0x00, 0x52, 0x0a, 0x65, 0x78, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x5c,
  7217  	0x0a, 0x10, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x6d, 0x61, 0x74,
  7218  	0x63, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
  7219  	0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x76, 0x33,
  7220  	0x2e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x42, 0x0b, 0x18,
  7221  	0x01, 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e, 0x30, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x61,
  7222  	0x66, 0x65, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x3c, 0x0a, 0x0b,
  7223  	0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28,
  7224  	0x0b, 0x32, 0x19, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76,
  7225  	0x33, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0a,
  7226  	0x72, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x25, 0x0a, 0x0d, 0x70, 0x72,
  7227  	0x65, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28,
  7228  	0x08, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x63,
  7229  	0x68, 0x12, 0x37, 0x0a, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6d, 0x61, 0x74, 0x63,
  7230  	0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x12, 0x18, 0x01, 0xfa, 0x42, 0x04, 0x72, 0x02,
  7231  	0x10, 0x01, 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e, 0x30, 0x48, 0x00, 0x52, 0x0b, 0x70,
  7232  	0x72, 0x65, 0x66, 0x69, 0x78, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x0c, 0x73, 0x75,
  7233  	0x66, 0x66, 0x69, 0x78, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09,
  7234  	0x42, 0x12, 0x18, 0x01, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x92, 0xc7, 0x86, 0xd8, 0x04,
  7235  	0x03, 0x33, 0x2e, 0x30, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x4d, 0x61,
  7236  	0x74, 0x63, 0x68, 0x12, 0x3b, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x5f,
  7237  	0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x12, 0x18, 0x01, 0xfa,
  7238  	0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e, 0x30, 0x48,
  7239  	0x00, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68,
  7240  	0x12, 0x49, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68,
  7241  	0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74,
  7242  	0x79, 0x70, 0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x76, 0x33, 0x2e, 0x53,
  7243  	0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b,
  7244  	0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x69, 0x0a, 0x23, 0x68,
  7245  	0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x72,
  7246  	0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x5f, 0x6d, 0x61, 0x74,
  7247  	0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x19, 0x18, 0x01, 0xfa, 0x42, 0x05, 0x72,
  7248  	0x03, 0x28, 0x80, 0x08, 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e, 0x30, 0xb8, 0xee, 0xf2,
  7249  	0xd2, 0x05, 0x01, 0x48, 0x00, 0x52, 0x1f, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76,
  7250  	0x6f, 0x79, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x67, 0x65,
  7251  	0x78, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74,
  7252  	0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x6e,
  7253  	0x76, 0x65, 0x72, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x3a, 0x27, 0x9a, 0xc5, 0x88, 0x1e, 0x22,
  7254  	0x0a, 0x20, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72,
  7255  	0x6f, 0x75, 0x74, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68,
  7256  	0x65, 0x72, 0x42, 0x18, 0x0a, 0x16, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x74,
  7257  	0x63, 0x68, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4a, 0x04, 0x08, 0x02,
  7258  	0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0xcf, 0x03, 0x0a, 0x15, 0x51, 0x75, 0x65,
  7259  	0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68,
  7260  	0x65, 0x72, 0x12, 0x1e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
  7261  	0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0x10, 0x01, 0x28, 0x80, 0x08, 0x52, 0x04, 0x6e, 0x61,
  7262  	0x6d, 0x65, 0x12, 0x53, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x61, 0x74,
  7263  	0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79,
  7264  	0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 0x76, 0x33,
  7265  	0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x42, 0x08,
  7266  	0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69,
  7267  	0x6e, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x25, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x73, 0x65,
  7268  	0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00,
  7269  	0x52, 0x0c, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x54,
  7270  	0x0a, 0x1d, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x5f, 0x64,
  7271  	0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
  7272  	0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x11, 0x18, 0x01, 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33,
  7273  	0x2e, 0x30, 0xb8, 0xee, 0xf2, 0xd2, 0x05, 0x01, 0x52, 0x1a, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e,
  7274  	0x45, 0x6e, 0x76, 0x6f, 0x79, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x56,
  7275  	0x61, 0x6c, 0x75, 0x65, 0x12, 0x70, 0x0a, 0x1d, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x65,
  7276  	0x6e, 0x76, 0x6f, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f,
  7277  	0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
  7278  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f,
  7279  	0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x11, 0x18, 0x01, 0x92, 0xc7, 0x86, 0xd8, 0x04,
  7280  	0x03, 0x33, 0x2e, 0x30, 0xb8, 0xee, 0xf2, 0xd2, 0x05, 0x01, 0x52, 0x1a, 0x68, 0x69, 0x64, 0x64,
  7281  	0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65,
  7282  	0x64, 0x52, 0x65, 0x67, 0x65, 0x78, 0x3a, 0x2f, 0x9a, 0xc5, 0x88, 0x1e, 0x2a, 0x0a, 0x28, 0x65,
  7283  	0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x6f, 0x75, 0x74,
  7284  	0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,
  7285  	0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x42, 0x21, 0x0a, 0x1f, 0x71, 0x75, 0x65, 0x72, 0x79,
  7286  	0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68,
  7287  	0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0xb9, 0x02, 0x0a, 0x16, 0x49,
  7288  	0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50,
  7289  	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x52, 0x0a, 0x16, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x6e, 0x74,
  7290  	0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x18,
  7291  	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
  7292  	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61,
  7293  	0x6c, 0x75, 0x65, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
  7294  	0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x17, 0x72, 0x65, 0x64,
  7295  	0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63,
  7296  	0x6f, 0x64, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92,
  7297  	0x01, 0x02, 0x10, 0x05, 0x52, 0x15, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65,
  7298  	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0a, 0x70,
  7299  	0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
  7300  	0x2a, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63,
  7301  	0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65,
  7302  	0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x70, 0x72, 0x65,
  7303  	0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x1b, 0x61, 0x6c, 0x6c, 0x6f, 0x77,
  7304  	0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x5f, 0x72, 0x65,
  7305  	0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x61, 0x6c,
  7306  	0x6c, 0x6f, 0x77, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x52, 0x65,
  7307  	0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x22, 0x5d, 0x0a, 0x0c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
  7308  	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  7309  	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  7310  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x06, 0x63, 0x6f,
  7311  	0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f,
  7312  	0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x4f, 0x70, 0x74,
  7313  	0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x45, 0x0a, 0x23, 0x69, 0x6f, 0x2e, 0x65, 0x6e, 0x76, 0x6f,
  7314  	0x79, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e,
  7315  	0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x42, 0x14, 0x52, 0x6f,
  7316  	0x75, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x72, 0x6f,
  7317  	0x74, 0x6f, 0x50, 0x01, 0xba, 0x80, 0xc8, 0xd1, 0x06, 0x02, 0x10, 0x02, 0x62, 0x06, 0x70, 0x72,
  7318  	0x6f, 0x74, 0x6f, 0x33,
  7319  }
  7320  
  7321  var (
  7322  	file_envoy_config_route_v3_route_components_proto_rawDescOnce sync.Once
  7323  	file_envoy_config_route_v3_route_components_proto_rawDescData = file_envoy_config_route_v3_route_components_proto_rawDesc
  7324  )
  7325  
  7326  func file_envoy_config_route_v3_route_components_proto_rawDescGZIP() []byte {
  7327  	file_envoy_config_route_v3_route_components_proto_rawDescOnce.Do(func() {
  7328  		file_envoy_config_route_v3_route_components_proto_rawDescData = protoimpl.X.CompressGZIP(file_envoy_config_route_v3_route_components_proto_rawDescData)
  7329  	})
  7330  	return file_envoy_config_route_v3_route_components_proto_rawDescData
  7331  }
  7332  
  7333  var file_envoy_config_route_v3_route_components_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
  7334  var file_envoy_config_route_v3_route_components_proto_msgTypes = make([]protoimpl.MessageInfo, 56)
  7335  var file_envoy_config_route_v3_route_components_proto_goTypes = []interface{}{
  7336  	(VirtualHost_TlsRequirementType)(0),          // 0: envoy.config.route.v3.VirtualHost.TlsRequirementType
  7337  	(RouteAction_ClusterNotFoundResponseCode)(0), // 1: envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode
  7338  	(RouteAction_InternalRedirectAction)(0),      // 2: envoy.config.route.v3.RouteAction.InternalRedirectAction
  7339  	(RetryPolicy_ResetHeaderFormat)(0),           // 3: envoy.config.route.v3.RetryPolicy.ResetHeaderFormat
  7340  	(RedirectAction_RedirectResponseCode)(0),     // 4: envoy.config.route.v3.RedirectAction.RedirectResponseCode
  7341  	(RateLimit_Action_MetaData_Source)(0),        // 5: envoy.config.route.v3.RateLimit.Action.MetaData.Source
  7342  	(*VirtualHost)(nil),                          // 6: envoy.config.route.v3.VirtualHost
  7343  	(*FilterAction)(nil),                         // 7: envoy.config.route.v3.FilterAction
  7344  	(*Route)(nil),                                // 8: envoy.config.route.v3.Route
  7345  	(*WeightedCluster)(nil),                      // 9: envoy.config.route.v3.WeightedCluster
  7346  	(*RouteMatch)(nil),                           // 10: envoy.config.route.v3.RouteMatch
  7347  	(*CorsPolicy)(nil),                           // 11: envoy.config.route.v3.CorsPolicy
  7348  	(*RouteAction)(nil),                          // 12: envoy.config.route.v3.RouteAction
  7349  	(*RetryPolicy)(nil),                          // 13: envoy.config.route.v3.RetryPolicy
  7350  	(*HedgePolicy)(nil),                          // 14: envoy.config.route.v3.HedgePolicy
  7351  	(*RedirectAction)(nil),                       // 15: envoy.config.route.v3.RedirectAction
  7352  	(*DirectResponseAction)(nil),                 // 16: envoy.config.route.v3.DirectResponseAction
  7353  	(*NonForwardingAction)(nil),                  // 17: envoy.config.route.v3.NonForwardingAction
  7354  	(*Decorator)(nil),                            // 18: envoy.config.route.v3.Decorator
  7355  	(*Tracing)(nil),                              // 19: envoy.config.route.v3.Tracing
  7356  	(*VirtualCluster)(nil),                       // 20: envoy.config.route.v3.VirtualCluster
  7357  	(*RateLimit)(nil),                            // 21: envoy.config.route.v3.RateLimit
  7358  	(*HeaderMatcher)(nil),                        // 22: envoy.config.route.v3.HeaderMatcher
  7359  	(*QueryParameterMatcher)(nil),                // 23: envoy.config.route.v3.QueryParameterMatcher
  7360  	(*InternalRedirectPolicy)(nil),               // 24: envoy.config.route.v3.InternalRedirectPolicy
  7361  	(*FilterConfig)(nil),                         // 25: envoy.config.route.v3.FilterConfig
  7362  	nil,                                          // 26: envoy.config.route.v3.VirtualHost.TypedPerFilterConfigEntry
  7363  	nil,                                          // 27: envoy.config.route.v3.VirtualHost.HiddenEnvoyDeprecatedPerFilterConfigEntry
  7364  	nil,                                          // 28: envoy.config.route.v3.Route.TypedPerFilterConfigEntry
  7365  	nil,                                          // 29: envoy.config.route.v3.Route.HiddenEnvoyDeprecatedPerFilterConfigEntry
  7366  	(*WeightedCluster_ClusterWeight)(nil),        // 30: envoy.config.route.v3.WeightedCluster.ClusterWeight
  7367  	nil,                                          // 31: envoy.config.route.v3.WeightedCluster.ClusterWeight.TypedPerFilterConfigEntry
  7368  	nil,                                          // 32: envoy.config.route.v3.WeightedCluster.ClusterWeight.HiddenEnvoyDeprecatedPerFilterConfigEntry
  7369  	(*RouteMatch_GrpcRouteMatchOptions)(nil),     // 33: envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions
  7370  	(*RouteMatch_TlsContextMatchOptions)(nil),    // 34: envoy.config.route.v3.RouteMatch.TlsContextMatchOptions
  7371  	(*RouteMatch_ConnectMatcher)(nil),            // 35: envoy.config.route.v3.RouteMatch.ConnectMatcher
  7372  	(*RouteAction_RequestMirrorPolicy)(nil),      // 36: envoy.config.route.v3.RouteAction.RequestMirrorPolicy
  7373  	(*RouteAction_HashPolicy)(nil),               // 37: envoy.config.route.v3.RouteAction.HashPolicy
  7374  	(*RouteAction_UpgradeConfig)(nil),            // 38: envoy.config.route.v3.RouteAction.UpgradeConfig
  7375  	(*RouteAction_MaxStreamDuration)(nil),        // 39: envoy.config.route.v3.RouteAction.MaxStreamDuration
  7376  	(*RouteAction_HashPolicy_Header)(nil),        // 40: envoy.config.route.v3.RouteAction.HashPolicy.Header
  7377  	(*RouteAction_HashPolicy_Cookie)(nil),        // 41: envoy.config.route.v3.RouteAction.HashPolicy.Cookie
  7378  	(*RouteAction_HashPolicy_ConnectionProperties)(nil), // 42: envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties
  7379  	(*RouteAction_HashPolicy_QueryParameter)(nil),       // 43: envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter
  7380  	(*RouteAction_HashPolicy_FilterState)(nil),          // 44: envoy.config.route.v3.RouteAction.HashPolicy.FilterState
  7381  	(*RouteAction_UpgradeConfig_ConnectConfig)(nil),     // 45: envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig
  7382  	(*RetryPolicy_RetryPriority)(nil),                   // 46: envoy.config.route.v3.RetryPolicy.RetryPriority
  7383  	(*RetryPolicy_RetryHostPredicate)(nil),              // 47: envoy.config.route.v3.RetryPolicy.RetryHostPredicate
  7384  	(*RetryPolicy_RetryBackOff)(nil),                    // 48: envoy.config.route.v3.RetryPolicy.RetryBackOff
  7385  	(*RetryPolicy_ResetHeader)(nil),                     // 49: envoy.config.route.v3.RetryPolicy.ResetHeader
  7386  	(*RetryPolicy_RateLimitedRetryBackOff)(nil),         // 50: envoy.config.route.v3.RetryPolicy.RateLimitedRetryBackOff
  7387  	(*RateLimit_Action)(nil),                            // 51: envoy.config.route.v3.RateLimit.Action
  7388  	(*RateLimit_Override)(nil),                          // 52: envoy.config.route.v3.RateLimit.Override
  7389  	(*RateLimit_Action_SourceCluster)(nil),              // 53: envoy.config.route.v3.RateLimit.Action.SourceCluster
  7390  	(*RateLimit_Action_DestinationCluster)(nil),         // 54: envoy.config.route.v3.RateLimit.Action.DestinationCluster
  7391  	(*RateLimit_Action_RequestHeaders)(nil),             // 55: envoy.config.route.v3.RateLimit.Action.RequestHeaders
  7392  	(*RateLimit_Action_RemoteAddress)(nil),              // 56: envoy.config.route.v3.RateLimit.Action.RemoteAddress
  7393  	(*RateLimit_Action_GenericKey)(nil),                 // 57: envoy.config.route.v3.RateLimit.Action.GenericKey
  7394  	(*RateLimit_Action_HeaderValueMatch)(nil),           // 58: envoy.config.route.v3.RateLimit.Action.HeaderValueMatch
  7395  	(*RateLimit_Action_DynamicMetaData)(nil),            // 59: envoy.config.route.v3.RateLimit.Action.DynamicMetaData
  7396  	(*RateLimit_Action_MetaData)(nil),                   // 60: envoy.config.route.v3.RateLimit.Action.MetaData
  7397  	(*RateLimit_Override_DynamicMetadata)(nil),          // 61: envoy.config.route.v3.RateLimit.Override.DynamicMetadata
  7398  	(*v3.HeaderValueOption)(nil),                        // 62: envoy.config.core.v3.HeaderValueOption
  7399  	(*any.Any)(nil),                                     // 63: google.protobuf.Any
  7400  	(*wrappers.UInt32Value)(nil),                        // 64: google.protobuf.UInt32Value
  7401  	(*v3.Metadata)(nil),                                 // 65: envoy.config.core.v3.Metadata
  7402  	(*v31.RegexMatcher)(nil),                            // 66: envoy.type.matcher.v3.RegexMatcher
  7403  	(*wrappers.BoolValue)(nil),                          // 67: google.protobuf.BoolValue
  7404  	(*v3.RuntimeFractionalPercent)(nil),                 // 68: envoy.config.core.v3.RuntimeFractionalPercent
  7405  	(*v31.MetadataMatcher)(nil),                         // 69: envoy.type.matcher.v3.MetadataMatcher
  7406  	(*v31.StringMatcher)(nil),                           // 70: envoy.type.matcher.v3.StringMatcher
  7407  	(*v31.RegexMatchAndSubstitute)(nil),                 // 71: envoy.type.matcher.v3.RegexMatchAndSubstitute
  7408  	(*duration.Duration)(nil),                           // 72: google.protobuf.Duration
  7409  	(v3.RoutingPriority)(0),                             // 73: envoy.config.core.v3.RoutingPriority
  7410  	(*v32.FractionalPercent)(nil),                       // 74: envoy.type.v3.FractionalPercent
  7411  	(*v3.DataSource)(nil),                               // 75: envoy.config.core.v3.DataSource
  7412  	(*v33.CustomTag)(nil),                               // 76: envoy.type.tracing.v3.CustomTag
  7413  	(v3.RequestMethod)(0),                               // 77: envoy.config.core.v3.RequestMethod
  7414  	(*v32.Int64Range)(nil),                              // 78: envoy.type.v3.Int64Range
  7415  	(*v3.TypedExtensionConfig)(nil),                     // 79: envoy.config.core.v3.TypedExtensionConfig
  7416  	(*_struct.Struct)(nil),                              // 80: google.protobuf.Struct
  7417  	(*v3.ProxyProtocolConfig)(nil),                      // 81: envoy.config.core.v3.ProxyProtocolConfig
  7418  	(*v34.MetadataKey)(nil),                             // 82: envoy.type.metadata.v3.MetadataKey
  7419  }
  7420  var file_envoy_config_route_v3_route_components_proto_depIdxs = []int32{
  7421  	8,   // 0: envoy.config.route.v3.VirtualHost.routes:type_name -> envoy.config.route.v3.Route
  7422  	0,   // 1: envoy.config.route.v3.VirtualHost.require_tls:type_name -> envoy.config.route.v3.VirtualHost.TlsRequirementType
  7423  	20,  // 2: envoy.config.route.v3.VirtualHost.virtual_clusters:type_name -> envoy.config.route.v3.VirtualCluster
  7424  	21,  // 3: envoy.config.route.v3.VirtualHost.rate_limits:type_name -> envoy.config.route.v3.RateLimit
  7425  	62,  // 4: envoy.config.route.v3.VirtualHost.request_headers_to_add:type_name -> envoy.config.core.v3.HeaderValueOption
  7426  	62,  // 5: envoy.config.route.v3.VirtualHost.response_headers_to_add:type_name -> envoy.config.core.v3.HeaderValueOption
  7427  	11,  // 6: envoy.config.route.v3.VirtualHost.cors:type_name -> envoy.config.route.v3.CorsPolicy
  7428  	26,  // 7: envoy.config.route.v3.VirtualHost.typed_per_filter_config:type_name -> envoy.config.route.v3.VirtualHost.TypedPerFilterConfigEntry
  7429  	13,  // 8: envoy.config.route.v3.VirtualHost.retry_policy:type_name -> envoy.config.route.v3.RetryPolicy
  7430  	63,  // 9: envoy.config.route.v3.VirtualHost.retry_policy_typed_config:type_name -> google.protobuf.Any
  7431  	14,  // 10: envoy.config.route.v3.VirtualHost.hedge_policy:type_name -> envoy.config.route.v3.HedgePolicy
  7432  	64,  // 11: envoy.config.route.v3.VirtualHost.per_request_buffer_limit_bytes:type_name -> google.protobuf.UInt32Value
  7433  	27,  // 12: envoy.config.route.v3.VirtualHost.hidden_envoy_deprecated_per_filter_config:type_name -> envoy.config.route.v3.VirtualHost.HiddenEnvoyDeprecatedPerFilterConfigEntry
  7434  	63,  // 13: envoy.config.route.v3.FilterAction.action:type_name -> google.protobuf.Any
  7435  	10,  // 14: envoy.config.route.v3.Route.match:type_name -> envoy.config.route.v3.RouteMatch
  7436  	12,  // 15: envoy.config.route.v3.Route.route:type_name -> envoy.config.route.v3.RouteAction
  7437  	15,  // 16: envoy.config.route.v3.Route.redirect:type_name -> envoy.config.route.v3.RedirectAction
  7438  	16,  // 17: envoy.config.route.v3.Route.direct_response:type_name -> envoy.config.route.v3.DirectResponseAction
  7439  	7,   // 18: envoy.config.route.v3.Route.filter_action:type_name -> envoy.config.route.v3.FilterAction
  7440  	17,  // 19: envoy.config.route.v3.Route.non_forwarding_action:type_name -> envoy.config.route.v3.NonForwardingAction
  7441  	65,  // 20: envoy.config.route.v3.Route.metadata:type_name -> envoy.config.core.v3.Metadata
  7442  	18,  // 21: envoy.config.route.v3.Route.decorator:type_name -> envoy.config.route.v3.Decorator
  7443  	28,  // 22: envoy.config.route.v3.Route.typed_per_filter_config:type_name -> envoy.config.route.v3.Route.TypedPerFilterConfigEntry
  7444  	62,  // 23: envoy.config.route.v3.Route.request_headers_to_add:type_name -> envoy.config.core.v3.HeaderValueOption
  7445  	62,  // 24: envoy.config.route.v3.Route.response_headers_to_add:type_name -> envoy.config.core.v3.HeaderValueOption
  7446  	19,  // 25: envoy.config.route.v3.Route.tracing:type_name -> envoy.config.route.v3.Tracing
  7447  	64,  // 26: envoy.config.route.v3.Route.per_request_buffer_limit_bytes:type_name -> google.protobuf.UInt32Value
  7448  	29,  // 27: envoy.config.route.v3.Route.hidden_envoy_deprecated_per_filter_config:type_name -> envoy.config.route.v3.Route.HiddenEnvoyDeprecatedPerFilterConfigEntry
  7449  	30,  // 28: envoy.config.route.v3.WeightedCluster.clusters:type_name -> envoy.config.route.v3.WeightedCluster.ClusterWeight
  7450  	64,  // 29: envoy.config.route.v3.WeightedCluster.total_weight:type_name -> google.protobuf.UInt32Value
  7451  	66,  // 30: envoy.config.route.v3.RouteMatch.safe_regex:type_name -> envoy.type.matcher.v3.RegexMatcher
  7452  	35,  // 31: envoy.config.route.v3.RouteMatch.connect_matcher:type_name -> envoy.config.route.v3.RouteMatch.ConnectMatcher
  7453  	67,  // 32: envoy.config.route.v3.RouteMatch.case_sensitive:type_name -> google.protobuf.BoolValue
  7454  	68,  // 33: envoy.config.route.v3.RouteMatch.runtime_fraction:type_name -> envoy.config.core.v3.RuntimeFractionalPercent
  7455  	22,  // 34: envoy.config.route.v3.RouteMatch.headers:type_name -> envoy.config.route.v3.HeaderMatcher
  7456  	23,  // 35: envoy.config.route.v3.RouteMatch.query_parameters:type_name -> envoy.config.route.v3.QueryParameterMatcher
  7457  	33,  // 36: envoy.config.route.v3.RouteMatch.grpc:type_name -> envoy.config.route.v3.RouteMatch.GrpcRouteMatchOptions
  7458  	34,  // 37: envoy.config.route.v3.RouteMatch.tls_context:type_name -> envoy.config.route.v3.RouteMatch.TlsContextMatchOptions
  7459  	69,  // 38: envoy.config.route.v3.RouteMatch.dynamic_metadata:type_name -> envoy.type.matcher.v3.MetadataMatcher
  7460  	70,  // 39: envoy.config.route.v3.CorsPolicy.allow_origin_string_match:type_name -> envoy.type.matcher.v3.StringMatcher
  7461  	67,  // 40: envoy.config.route.v3.CorsPolicy.allow_credentials:type_name -> google.protobuf.BoolValue
  7462  	68,  // 41: envoy.config.route.v3.CorsPolicy.filter_enabled:type_name -> envoy.config.core.v3.RuntimeFractionalPercent
  7463  	67,  // 42: envoy.config.route.v3.CorsPolicy.hidden_envoy_deprecated_enabled:type_name -> google.protobuf.BoolValue
  7464  	68,  // 43: envoy.config.route.v3.CorsPolicy.shadow_enabled:type_name -> envoy.config.core.v3.RuntimeFractionalPercent
  7465  	9,   // 44: envoy.config.route.v3.RouteAction.weighted_clusters:type_name -> envoy.config.route.v3.WeightedCluster
  7466  	1,   // 45: envoy.config.route.v3.RouteAction.cluster_not_found_response_code:type_name -> envoy.config.route.v3.RouteAction.ClusterNotFoundResponseCode
  7467  	65,  // 46: envoy.config.route.v3.RouteAction.metadata_match:type_name -> envoy.config.core.v3.Metadata
  7468  	71,  // 47: envoy.config.route.v3.RouteAction.regex_rewrite:type_name -> envoy.type.matcher.v3.RegexMatchAndSubstitute
  7469  	67,  // 48: envoy.config.route.v3.RouteAction.auto_host_rewrite:type_name -> google.protobuf.BoolValue
  7470  	71,  // 49: envoy.config.route.v3.RouteAction.host_rewrite_path_regex:type_name -> envoy.type.matcher.v3.RegexMatchAndSubstitute
  7471  	72,  // 50: envoy.config.route.v3.RouteAction.timeout:type_name -> google.protobuf.Duration
  7472  	72,  // 51: envoy.config.route.v3.RouteAction.idle_timeout:type_name -> google.protobuf.Duration
  7473  	13,  // 52: envoy.config.route.v3.RouteAction.retry_policy:type_name -> envoy.config.route.v3.RetryPolicy
  7474  	63,  // 53: envoy.config.route.v3.RouteAction.retry_policy_typed_config:type_name -> google.protobuf.Any
  7475  	36,  // 54: envoy.config.route.v3.RouteAction.request_mirror_policies:type_name -> envoy.config.route.v3.RouteAction.RequestMirrorPolicy
  7476  	73,  // 55: envoy.config.route.v3.RouteAction.priority:type_name -> envoy.config.core.v3.RoutingPriority
  7477  	21,  // 56: envoy.config.route.v3.RouteAction.rate_limits:type_name -> envoy.config.route.v3.RateLimit
  7478  	67,  // 57: envoy.config.route.v3.RouteAction.include_vh_rate_limits:type_name -> google.protobuf.BoolValue
  7479  	37,  // 58: envoy.config.route.v3.RouteAction.hash_policy:type_name -> envoy.config.route.v3.RouteAction.HashPolicy
  7480  	11,  // 59: envoy.config.route.v3.RouteAction.cors:type_name -> envoy.config.route.v3.CorsPolicy
  7481  	72,  // 60: envoy.config.route.v3.RouteAction.max_grpc_timeout:type_name -> google.protobuf.Duration
  7482  	72,  // 61: envoy.config.route.v3.RouteAction.grpc_timeout_offset:type_name -> google.protobuf.Duration
  7483  	38,  // 62: envoy.config.route.v3.RouteAction.upgrade_configs:type_name -> envoy.config.route.v3.RouteAction.UpgradeConfig
  7484  	24,  // 63: envoy.config.route.v3.RouteAction.internal_redirect_policy:type_name -> envoy.config.route.v3.InternalRedirectPolicy
  7485  	2,   // 64: envoy.config.route.v3.RouteAction.internal_redirect_action:type_name -> envoy.config.route.v3.RouteAction.InternalRedirectAction
  7486  	64,  // 65: envoy.config.route.v3.RouteAction.max_internal_redirects:type_name -> google.protobuf.UInt32Value
  7487  	14,  // 66: envoy.config.route.v3.RouteAction.hedge_policy:type_name -> envoy.config.route.v3.HedgePolicy
  7488  	39,  // 67: envoy.config.route.v3.RouteAction.max_stream_duration:type_name -> envoy.config.route.v3.RouteAction.MaxStreamDuration
  7489  	36,  // 68: envoy.config.route.v3.RouteAction.hidden_envoy_deprecated_request_mirror_policy:type_name -> envoy.config.route.v3.RouteAction.RequestMirrorPolicy
  7490  	64,  // 69: envoy.config.route.v3.RetryPolicy.num_retries:type_name -> google.protobuf.UInt32Value
  7491  	72,  // 70: envoy.config.route.v3.RetryPolicy.per_try_timeout:type_name -> google.protobuf.Duration
  7492  	46,  // 71: envoy.config.route.v3.RetryPolicy.retry_priority:type_name -> envoy.config.route.v3.RetryPolicy.RetryPriority
  7493  	47,  // 72: envoy.config.route.v3.RetryPolicy.retry_host_predicate:type_name -> envoy.config.route.v3.RetryPolicy.RetryHostPredicate
  7494  	48,  // 73: envoy.config.route.v3.RetryPolicy.retry_back_off:type_name -> envoy.config.route.v3.RetryPolicy.RetryBackOff
  7495  	50,  // 74: envoy.config.route.v3.RetryPolicy.rate_limited_retry_back_off:type_name -> envoy.config.route.v3.RetryPolicy.RateLimitedRetryBackOff
  7496  	22,  // 75: envoy.config.route.v3.RetryPolicy.retriable_headers:type_name -> envoy.config.route.v3.HeaderMatcher
  7497  	22,  // 76: envoy.config.route.v3.RetryPolicy.retriable_request_headers:type_name -> envoy.config.route.v3.HeaderMatcher
  7498  	64,  // 77: envoy.config.route.v3.HedgePolicy.initial_requests:type_name -> google.protobuf.UInt32Value
  7499  	74,  // 78: envoy.config.route.v3.HedgePolicy.additional_request_chance:type_name -> envoy.type.v3.FractionalPercent
  7500  	71,  // 79: envoy.config.route.v3.RedirectAction.regex_rewrite:type_name -> envoy.type.matcher.v3.RegexMatchAndSubstitute
  7501  	4,   // 80: envoy.config.route.v3.RedirectAction.response_code:type_name -> envoy.config.route.v3.RedirectAction.RedirectResponseCode
  7502  	75,  // 81: envoy.config.route.v3.DirectResponseAction.body:type_name -> envoy.config.core.v3.DataSource
  7503  	67,  // 82: envoy.config.route.v3.Decorator.propagate:type_name -> google.protobuf.BoolValue
  7504  	74,  // 83: envoy.config.route.v3.Tracing.client_sampling:type_name -> envoy.type.v3.FractionalPercent
  7505  	74,  // 84: envoy.config.route.v3.Tracing.random_sampling:type_name -> envoy.type.v3.FractionalPercent
  7506  	74,  // 85: envoy.config.route.v3.Tracing.overall_sampling:type_name -> envoy.type.v3.FractionalPercent
  7507  	76,  // 86: envoy.config.route.v3.Tracing.custom_tags:type_name -> envoy.type.tracing.v3.CustomTag
  7508  	22,  // 87: envoy.config.route.v3.VirtualCluster.headers:type_name -> envoy.config.route.v3.HeaderMatcher
  7509  	77,  // 88: envoy.config.route.v3.VirtualCluster.hidden_envoy_deprecated_method:type_name -> envoy.config.core.v3.RequestMethod
  7510  	64,  // 89: envoy.config.route.v3.RateLimit.stage:type_name -> google.protobuf.UInt32Value
  7511  	51,  // 90: envoy.config.route.v3.RateLimit.actions:type_name -> envoy.config.route.v3.RateLimit.Action
  7512  	52,  // 91: envoy.config.route.v3.RateLimit.limit:type_name -> envoy.config.route.v3.RateLimit.Override
  7513  	66,  // 92: envoy.config.route.v3.HeaderMatcher.safe_regex_match:type_name -> envoy.type.matcher.v3.RegexMatcher
  7514  	78,  // 93: envoy.config.route.v3.HeaderMatcher.range_match:type_name -> envoy.type.v3.Int64Range
  7515  	70,  // 94: envoy.config.route.v3.HeaderMatcher.string_match:type_name -> envoy.type.matcher.v3.StringMatcher
  7516  	70,  // 95: envoy.config.route.v3.QueryParameterMatcher.string_match:type_name -> envoy.type.matcher.v3.StringMatcher
  7517  	67,  // 96: envoy.config.route.v3.QueryParameterMatcher.hidden_envoy_deprecated_regex:type_name -> google.protobuf.BoolValue
  7518  	64,  // 97: envoy.config.route.v3.InternalRedirectPolicy.max_internal_redirects:type_name -> google.protobuf.UInt32Value
  7519  	79,  // 98: envoy.config.route.v3.InternalRedirectPolicy.predicates:type_name -> envoy.config.core.v3.TypedExtensionConfig
  7520  	63,  // 99: envoy.config.route.v3.FilterConfig.config:type_name -> google.protobuf.Any
  7521  	63,  // 100: envoy.config.route.v3.VirtualHost.TypedPerFilterConfigEntry.value:type_name -> google.protobuf.Any
  7522  	80,  // 101: envoy.config.route.v3.VirtualHost.HiddenEnvoyDeprecatedPerFilterConfigEntry.value:type_name -> google.protobuf.Struct
  7523  	63,  // 102: envoy.config.route.v3.Route.TypedPerFilterConfigEntry.value:type_name -> google.protobuf.Any
  7524  	80,  // 103: envoy.config.route.v3.Route.HiddenEnvoyDeprecatedPerFilterConfigEntry.value:type_name -> google.protobuf.Struct
  7525  	64,  // 104: envoy.config.route.v3.WeightedCluster.ClusterWeight.weight:type_name -> google.protobuf.UInt32Value
  7526  	65,  // 105: envoy.config.route.v3.WeightedCluster.ClusterWeight.metadata_match:type_name -> envoy.config.core.v3.Metadata
  7527  	62,  // 106: envoy.config.route.v3.WeightedCluster.ClusterWeight.request_headers_to_add:type_name -> envoy.config.core.v3.HeaderValueOption
  7528  	62,  // 107: envoy.config.route.v3.WeightedCluster.ClusterWeight.response_headers_to_add:type_name -> envoy.config.core.v3.HeaderValueOption
  7529  	31,  // 108: envoy.config.route.v3.WeightedCluster.ClusterWeight.typed_per_filter_config:type_name -> envoy.config.route.v3.WeightedCluster.ClusterWeight.TypedPerFilterConfigEntry
  7530  	32,  // 109: envoy.config.route.v3.WeightedCluster.ClusterWeight.hidden_envoy_deprecated_per_filter_config:type_name -> envoy.config.route.v3.WeightedCluster.ClusterWeight.HiddenEnvoyDeprecatedPerFilterConfigEntry
  7531  	63,  // 110: envoy.config.route.v3.WeightedCluster.ClusterWeight.TypedPerFilterConfigEntry.value:type_name -> google.protobuf.Any
  7532  	80,  // 111: envoy.config.route.v3.WeightedCluster.ClusterWeight.HiddenEnvoyDeprecatedPerFilterConfigEntry.value:type_name -> google.protobuf.Struct
  7533  	67,  // 112: envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.presented:type_name -> google.protobuf.BoolValue
  7534  	67,  // 113: envoy.config.route.v3.RouteMatch.TlsContextMatchOptions.validated:type_name -> google.protobuf.BoolValue
  7535  	68,  // 114: envoy.config.route.v3.RouteAction.RequestMirrorPolicy.runtime_fraction:type_name -> envoy.config.core.v3.RuntimeFractionalPercent
  7536  	67,  // 115: envoy.config.route.v3.RouteAction.RequestMirrorPolicy.trace_sampled:type_name -> google.protobuf.BoolValue
  7537  	40,  // 116: envoy.config.route.v3.RouteAction.HashPolicy.header:type_name -> envoy.config.route.v3.RouteAction.HashPolicy.Header
  7538  	41,  // 117: envoy.config.route.v3.RouteAction.HashPolicy.cookie:type_name -> envoy.config.route.v3.RouteAction.HashPolicy.Cookie
  7539  	42,  // 118: envoy.config.route.v3.RouteAction.HashPolicy.connection_properties:type_name -> envoy.config.route.v3.RouteAction.HashPolicy.ConnectionProperties
  7540  	43,  // 119: envoy.config.route.v3.RouteAction.HashPolicy.query_parameter:type_name -> envoy.config.route.v3.RouteAction.HashPolicy.QueryParameter
  7541  	44,  // 120: envoy.config.route.v3.RouteAction.HashPolicy.filter_state:type_name -> envoy.config.route.v3.RouteAction.HashPolicy.FilterState
  7542  	67,  // 121: envoy.config.route.v3.RouteAction.UpgradeConfig.enabled:type_name -> google.protobuf.BoolValue
  7543  	45,  // 122: envoy.config.route.v3.RouteAction.UpgradeConfig.connect_config:type_name -> envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig
  7544  	72,  // 123: envoy.config.route.v3.RouteAction.MaxStreamDuration.max_stream_duration:type_name -> google.protobuf.Duration
  7545  	72,  // 124: envoy.config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_max:type_name -> google.protobuf.Duration
  7546  	72,  // 125: envoy.config.route.v3.RouteAction.MaxStreamDuration.grpc_timeout_header_offset:type_name -> google.protobuf.Duration
  7547  	71,  // 126: envoy.config.route.v3.RouteAction.HashPolicy.Header.regex_rewrite:type_name -> envoy.type.matcher.v3.RegexMatchAndSubstitute
  7548  	72,  // 127: envoy.config.route.v3.RouteAction.HashPolicy.Cookie.ttl:type_name -> google.protobuf.Duration
  7549  	81,  // 128: envoy.config.route.v3.RouteAction.UpgradeConfig.ConnectConfig.proxy_protocol_config:type_name -> envoy.config.core.v3.ProxyProtocolConfig
  7550  	63,  // 129: envoy.config.route.v3.RetryPolicy.RetryPriority.typed_config:type_name -> google.protobuf.Any
  7551  	80,  // 130: envoy.config.route.v3.RetryPolicy.RetryPriority.hidden_envoy_deprecated_config:type_name -> google.protobuf.Struct
  7552  	63,  // 131: envoy.config.route.v3.RetryPolicy.RetryHostPredicate.typed_config:type_name -> google.protobuf.Any
  7553  	80,  // 132: envoy.config.route.v3.RetryPolicy.RetryHostPredicate.hidden_envoy_deprecated_config:type_name -> google.protobuf.Struct
  7554  	72,  // 133: envoy.config.route.v3.RetryPolicy.RetryBackOff.base_interval:type_name -> google.protobuf.Duration
  7555  	72,  // 134: envoy.config.route.v3.RetryPolicy.RetryBackOff.max_interval:type_name -> google.protobuf.Duration
  7556  	3,   // 135: envoy.config.route.v3.RetryPolicy.ResetHeader.format:type_name -> envoy.config.route.v3.RetryPolicy.ResetHeaderFormat
  7557  	49,  // 136: envoy.config.route.v3.RetryPolicy.RateLimitedRetryBackOff.reset_headers:type_name -> envoy.config.route.v3.RetryPolicy.ResetHeader
  7558  	72,  // 137: envoy.config.route.v3.RetryPolicy.RateLimitedRetryBackOff.max_interval:type_name -> google.protobuf.Duration
  7559  	53,  // 138: envoy.config.route.v3.RateLimit.Action.source_cluster:type_name -> envoy.config.route.v3.RateLimit.Action.SourceCluster
  7560  	54,  // 139: envoy.config.route.v3.RateLimit.Action.destination_cluster:type_name -> envoy.config.route.v3.RateLimit.Action.DestinationCluster
  7561  	55,  // 140: envoy.config.route.v3.RateLimit.Action.request_headers:type_name -> envoy.config.route.v3.RateLimit.Action.RequestHeaders
  7562  	56,  // 141: envoy.config.route.v3.RateLimit.Action.remote_address:type_name -> envoy.config.route.v3.RateLimit.Action.RemoteAddress
  7563  	57,  // 142: envoy.config.route.v3.RateLimit.Action.generic_key:type_name -> envoy.config.route.v3.RateLimit.Action.GenericKey
  7564  	58,  // 143: envoy.config.route.v3.RateLimit.Action.header_value_match:type_name -> envoy.config.route.v3.RateLimit.Action.HeaderValueMatch
  7565  	59,  // 144: envoy.config.route.v3.RateLimit.Action.dynamic_metadata:type_name -> envoy.config.route.v3.RateLimit.Action.DynamicMetaData
  7566  	60,  // 145: envoy.config.route.v3.RateLimit.Action.metadata:type_name -> envoy.config.route.v3.RateLimit.Action.MetaData
  7567  	79,  // 146: envoy.config.route.v3.RateLimit.Action.extension:type_name -> envoy.config.core.v3.TypedExtensionConfig
  7568  	61,  // 147: envoy.config.route.v3.RateLimit.Override.dynamic_metadata:type_name -> envoy.config.route.v3.RateLimit.Override.DynamicMetadata
  7569  	67,  // 148: envoy.config.route.v3.RateLimit.Action.HeaderValueMatch.expect_match:type_name -> google.protobuf.BoolValue
  7570  	22,  // 149: envoy.config.route.v3.RateLimit.Action.HeaderValueMatch.headers:type_name -> envoy.config.route.v3.HeaderMatcher
  7571  	82,  // 150: envoy.config.route.v3.RateLimit.Action.DynamicMetaData.metadata_key:type_name -> envoy.type.metadata.v3.MetadataKey
  7572  	82,  // 151: envoy.config.route.v3.RateLimit.Action.MetaData.metadata_key:type_name -> envoy.type.metadata.v3.MetadataKey
  7573  	5,   // 152: envoy.config.route.v3.RateLimit.Action.MetaData.source:type_name -> envoy.config.route.v3.RateLimit.Action.MetaData.Source
  7574  	82,  // 153: envoy.config.route.v3.RateLimit.Override.DynamicMetadata.metadata_key:type_name -> envoy.type.metadata.v3.MetadataKey
  7575  	154, // [154:154] is the sub-list for method output_type
  7576  	154, // [154:154] is the sub-list for method input_type
  7577  	154, // [154:154] is the sub-list for extension type_name
  7578  	154, // [154:154] is the sub-list for extension extendee
  7579  	0,   // [0:154] is the sub-list for field type_name
  7580  }
  7581  
  7582  func init() { file_envoy_config_route_v3_route_components_proto_init() }
  7583  func file_envoy_config_route_v3_route_components_proto_init() {
  7584  	if File_envoy_config_route_v3_route_components_proto != nil {
  7585  		return
  7586  	}
  7587  	if !protoimpl.UnsafeEnabled {
  7588  		file_envoy_config_route_v3_route_components_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  7589  			switch v := v.(*VirtualHost); i {
  7590  			case 0:
  7591  				return &v.state
  7592  			case 1:
  7593  				return &v.sizeCache
  7594  			case 2:
  7595  				return &v.unknownFields
  7596  			default:
  7597  				return nil
  7598  			}
  7599  		}
  7600  		file_envoy_config_route_v3_route_components_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  7601  			switch v := v.(*FilterAction); i {
  7602  			case 0:
  7603  				return &v.state
  7604  			case 1:
  7605  				return &v.sizeCache
  7606  			case 2:
  7607  				return &v.unknownFields
  7608  			default:
  7609  				return nil
  7610  			}
  7611  		}
  7612  		file_envoy_config_route_v3_route_components_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  7613  			switch v := v.(*Route); i {
  7614  			case 0:
  7615  				return &v.state
  7616  			case 1:
  7617  				return &v.sizeCache
  7618  			case 2:
  7619  				return &v.unknownFields
  7620  			default:
  7621  				return nil
  7622  			}
  7623  		}
  7624  		file_envoy_config_route_v3_route_components_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  7625  			switch v := v.(*WeightedCluster); i {
  7626  			case 0:
  7627  				return &v.state
  7628  			case 1:
  7629  				return &v.sizeCache
  7630  			case 2:
  7631  				return &v.unknownFields
  7632  			default:
  7633  				return nil
  7634  			}
  7635  		}
  7636  		file_envoy_config_route_v3_route_components_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
  7637  			switch v := v.(*RouteMatch); i {
  7638  			case 0:
  7639  				return &v.state
  7640  			case 1:
  7641  				return &v.sizeCache
  7642  			case 2:
  7643  				return &v.unknownFields
  7644  			default:
  7645  				return nil
  7646  			}
  7647  		}
  7648  		file_envoy_config_route_v3_route_components_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  7649  			switch v := v.(*CorsPolicy); i {
  7650  			case 0:
  7651  				return &v.state
  7652  			case 1:
  7653  				return &v.sizeCache
  7654  			case 2:
  7655  				return &v.unknownFields
  7656  			default:
  7657  				return nil
  7658  			}
  7659  		}
  7660  		file_envoy_config_route_v3_route_components_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  7661  			switch v := v.(*RouteAction); i {
  7662  			case 0:
  7663  				return &v.state
  7664  			case 1:
  7665  				return &v.sizeCache
  7666  			case 2:
  7667  				return &v.unknownFields
  7668  			default:
  7669  				return nil
  7670  			}
  7671  		}
  7672  		file_envoy_config_route_v3_route_components_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  7673  			switch v := v.(*RetryPolicy); i {
  7674  			case 0:
  7675  				return &v.state
  7676  			case 1:
  7677  				return &v.sizeCache
  7678  			case 2:
  7679  				return &v.unknownFields
  7680  			default:
  7681  				return nil
  7682  			}
  7683  		}
  7684  		file_envoy_config_route_v3_route_components_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
  7685  			switch v := v.(*HedgePolicy); i {
  7686  			case 0:
  7687  				return &v.state
  7688  			case 1:
  7689  				return &v.sizeCache
  7690  			case 2:
  7691  				return &v.unknownFields
  7692  			default:
  7693  				return nil
  7694  			}
  7695  		}
  7696  		file_envoy_config_route_v3_route_components_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
  7697  			switch v := v.(*RedirectAction); i {
  7698  			case 0:
  7699  				return &v.state
  7700  			case 1:
  7701  				return &v.sizeCache
  7702  			case 2:
  7703  				return &v.unknownFields
  7704  			default:
  7705  				return nil
  7706  			}
  7707  		}
  7708  		file_envoy_config_route_v3_route_components_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
  7709  			switch v := v.(*DirectResponseAction); i {
  7710  			case 0:
  7711  				return &v.state
  7712  			case 1:
  7713  				return &v.sizeCache
  7714  			case 2:
  7715  				return &v.unknownFields
  7716  			default:
  7717  				return nil
  7718  			}
  7719  		}
  7720  		file_envoy_config_route_v3_route_components_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
  7721  			switch v := v.(*NonForwardingAction); i {
  7722  			case 0:
  7723  				return &v.state
  7724  			case 1:
  7725  				return &v.sizeCache
  7726  			case 2:
  7727  				return &v.unknownFields
  7728  			default:
  7729  				return nil
  7730  			}
  7731  		}
  7732  		file_envoy_config_route_v3_route_components_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
  7733  			switch v := v.(*Decorator); i {
  7734  			case 0:
  7735  				return &v.state
  7736  			case 1:
  7737  				return &v.sizeCache
  7738  			case 2:
  7739  				return &v.unknownFields
  7740  			default:
  7741  				return nil
  7742  			}
  7743  		}
  7744  		file_envoy_config_route_v3_route_components_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
  7745  			switch v := v.(*Tracing); i {
  7746  			case 0:
  7747  				return &v.state
  7748  			case 1:
  7749  				return &v.sizeCache
  7750  			case 2:
  7751  				return &v.unknownFields
  7752  			default:
  7753  				return nil
  7754  			}
  7755  		}
  7756  		file_envoy_config_route_v3_route_components_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
  7757  			switch v := v.(*VirtualCluster); i {
  7758  			case 0:
  7759  				return &v.state
  7760  			case 1:
  7761  				return &v.sizeCache
  7762  			case 2:
  7763  				return &v.unknownFields
  7764  			default:
  7765  				return nil
  7766  			}
  7767  		}
  7768  		file_envoy_config_route_v3_route_components_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
  7769  			switch v := v.(*RateLimit); i {
  7770  			case 0:
  7771  				return &v.state
  7772  			case 1:
  7773  				return &v.sizeCache
  7774  			case 2:
  7775  				return &v.unknownFields
  7776  			default:
  7777  				return nil
  7778  			}
  7779  		}
  7780  		file_envoy_config_route_v3_route_components_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
  7781  			switch v := v.(*HeaderMatcher); i {
  7782  			case 0:
  7783  				return &v.state
  7784  			case 1:
  7785  				return &v.sizeCache
  7786  			case 2:
  7787  				return &v.unknownFields
  7788  			default:
  7789  				return nil
  7790  			}
  7791  		}
  7792  		file_envoy_config_route_v3_route_components_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
  7793  			switch v := v.(*QueryParameterMatcher); i {
  7794  			case 0:
  7795  				return &v.state
  7796  			case 1:
  7797  				return &v.sizeCache
  7798  			case 2:
  7799  				return &v.unknownFields
  7800  			default:
  7801  				return nil
  7802  			}
  7803  		}
  7804  		file_envoy_config_route_v3_route_components_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
  7805  			switch v := v.(*InternalRedirectPolicy); i {
  7806  			case 0:
  7807  				return &v.state
  7808  			case 1:
  7809  				return &v.sizeCache
  7810  			case 2:
  7811  				return &v.unknownFields
  7812  			default:
  7813  				return nil
  7814  			}
  7815  		}
  7816  		file_envoy_config_route_v3_route_components_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
  7817  			switch v := v.(*FilterConfig); i {
  7818  			case 0:
  7819  				return &v.state
  7820  			case 1:
  7821  				return &v.sizeCache
  7822  			case 2:
  7823  				return &v.unknownFields
  7824  			default:
  7825  				return nil
  7826  			}
  7827  		}
  7828  		file_envoy_config_route_v3_route_components_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
  7829  			switch v := v.(*WeightedCluster_ClusterWeight); i {
  7830  			case 0:
  7831  				return &v.state
  7832  			case 1:
  7833  				return &v.sizeCache
  7834  			case 2:
  7835  				return &v.unknownFields
  7836  			default:
  7837  				return nil
  7838  			}
  7839  		}
  7840  		file_envoy_config_route_v3_route_components_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
  7841  			switch v := v.(*RouteMatch_GrpcRouteMatchOptions); i {
  7842  			case 0:
  7843  				return &v.state
  7844  			case 1:
  7845  				return &v.sizeCache
  7846  			case 2:
  7847  				return &v.unknownFields
  7848  			default:
  7849  				return nil
  7850  			}
  7851  		}
  7852  		file_envoy_config_route_v3_route_components_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
  7853  			switch v := v.(*RouteMatch_TlsContextMatchOptions); i {
  7854  			case 0:
  7855  				return &v.state
  7856  			case 1:
  7857  				return &v.sizeCache
  7858  			case 2:
  7859  				return &v.unknownFields
  7860  			default:
  7861  				return nil
  7862  			}
  7863  		}
  7864  		file_envoy_config_route_v3_route_components_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
  7865  			switch v := v.(*RouteMatch_ConnectMatcher); i {
  7866  			case 0:
  7867  				return &v.state
  7868  			case 1:
  7869  				return &v.sizeCache
  7870  			case 2:
  7871  				return &v.unknownFields
  7872  			default:
  7873  				return nil
  7874  			}
  7875  		}
  7876  		file_envoy_config_route_v3_route_components_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
  7877  			switch v := v.(*RouteAction_RequestMirrorPolicy); i {
  7878  			case 0:
  7879  				return &v.state
  7880  			case 1:
  7881  				return &v.sizeCache
  7882  			case 2:
  7883  				return &v.unknownFields
  7884  			default:
  7885  				return nil
  7886  			}
  7887  		}
  7888  		file_envoy_config_route_v3_route_components_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
  7889  			switch v := v.(*RouteAction_HashPolicy); i {
  7890  			case 0:
  7891  				return &v.state
  7892  			case 1:
  7893  				return &v.sizeCache
  7894  			case 2:
  7895  				return &v.unknownFields
  7896  			default:
  7897  				return nil
  7898  			}
  7899  		}
  7900  		file_envoy_config_route_v3_route_components_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
  7901  			switch v := v.(*RouteAction_UpgradeConfig); i {
  7902  			case 0:
  7903  				return &v.state
  7904  			case 1:
  7905  				return &v.sizeCache
  7906  			case 2:
  7907  				return &v.unknownFields
  7908  			default:
  7909  				return nil
  7910  			}
  7911  		}
  7912  		file_envoy_config_route_v3_route_components_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
  7913  			switch v := v.(*RouteAction_MaxStreamDuration); i {
  7914  			case 0:
  7915  				return &v.state
  7916  			case 1:
  7917  				return &v.sizeCache
  7918  			case 2:
  7919  				return &v.unknownFields
  7920  			default:
  7921  				return nil
  7922  			}
  7923  		}
  7924  		file_envoy_config_route_v3_route_components_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
  7925  			switch v := v.(*RouteAction_HashPolicy_Header); i {
  7926  			case 0:
  7927  				return &v.state
  7928  			case 1:
  7929  				return &v.sizeCache
  7930  			case 2:
  7931  				return &v.unknownFields
  7932  			default:
  7933  				return nil
  7934  			}
  7935  		}
  7936  		file_envoy_config_route_v3_route_components_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
  7937  			switch v := v.(*RouteAction_HashPolicy_Cookie); i {
  7938  			case 0:
  7939  				return &v.state
  7940  			case 1:
  7941  				return &v.sizeCache
  7942  			case 2:
  7943  				return &v.unknownFields
  7944  			default:
  7945  				return nil
  7946  			}
  7947  		}
  7948  		file_envoy_config_route_v3_route_components_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
  7949  			switch v := v.(*RouteAction_HashPolicy_ConnectionProperties); i {
  7950  			case 0:
  7951  				return &v.state
  7952  			case 1:
  7953  				return &v.sizeCache
  7954  			case 2:
  7955  				return &v.unknownFields
  7956  			default:
  7957  				return nil
  7958  			}
  7959  		}
  7960  		file_envoy_config_route_v3_route_components_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
  7961  			switch v := v.(*RouteAction_HashPolicy_QueryParameter); i {
  7962  			case 0:
  7963  				return &v.state
  7964  			case 1:
  7965  				return &v.sizeCache
  7966  			case 2:
  7967  				return &v.unknownFields
  7968  			default:
  7969  				return nil
  7970  			}
  7971  		}
  7972  		file_envoy_config_route_v3_route_components_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
  7973  			switch v := v.(*RouteAction_HashPolicy_FilterState); i {
  7974  			case 0:
  7975  				return &v.state
  7976  			case 1:
  7977  				return &v.sizeCache
  7978  			case 2:
  7979  				return &v.unknownFields
  7980  			default:
  7981  				return nil
  7982  			}
  7983  		}
  7984  		file_envoy_config_route_v3_route_components_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
  7985  			switch v := v.(*RouteAction_UpgradeConfig_ConnectConfig); i {
  7986  			case 0:
  7987  				return &v.state
  7988  			case 1:
  7989  				return &v.sizeCache
  7990  			case 2:
  7991  				return &v.unknownFields
  7992  			default:
  7993  				return nil
  7994  			}
  7995  		}
  7996  		file_envoy_config_route_v3_route_components_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
  7997  			switch v := v.(*RetryPolicy_RetryPriority); i {
  7998  			case 0:
  7999  				return &v.state
  8000  			case 1:
  8001  				return &v.sizeCache
  8002  			case 2:
  8003  				return &v.unknownFields
  8004  			default:
  8005  				return nil
  8006  			}
  8007  		}
  8008  		file_envoy_config_route_v3_route_components_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
  8009  			switch v := v.(*RetryPolicy_RetryHostPredicate); i {
  8010  			case 0:
  8011  				return &v.state
  8012  			case 1:
  8013  				return &v.sizeCache
  8014  			case 2:
  8015  				return &v.unknownFields
  8016  			default:
  8017  				return nil
  8018  			}
  8019  		}
  8020  		file_envoy_config_route_v3_route_components_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
  8021  			switch v := v.(*RetryPolicy_RetryBackOff); i {
  8022  			case 0:
  8023  				return &v.state
  8024  			case 1:
  8025  				return &v.sizeCache
  8026  			case 2:
  8027  				return &v.unknownFields
  8028  			default:
  8029  				return nil
  8030  			}
  8031  		}
  8032  		file_envoy_config_route_v3_route_components_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
  8033  			switch v := v.(*RetryPolicy_ResetHeader); i {
  8034  			case 0:
  8035  				return &v.state
  8036  			case 1:
  8037  				return &v.sizeCache
  8038  			case 2:
  8039  				return &v.unknownFields
  8040  			default:
  8041  				return nil
  8042  			}
  8043  		}
  8044  		file_envoy_config_route_v3_route_components_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
  8045  			switch v := v.(*RetryPolicy_RateLimitedRetryBackOff); i {
  8046  			case 0:
  8047  				return &v.state
  8048  			case 1:
  8049  				return &v.sizeCache
  8050  			case 2:
  8051  				return &v.unknownFields
  8052  			default:
  8053  				return nil
  8054  			}
  8055  		}
  8056  		file_envoy_config_route_v3_route_components_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
  8057  			switch v := v.(*RateLimit_Action); i {
  8058  			case 0:
  8059  				return &v.state
  8060  			case 1:
  8061  				return &v.sizeCache
  8062  			case 2:
  8063  				return &v.unknownFields
  8064  			default:
  8065  				return nil
  8066  			}
  8067  		}
  8068  		file_envoy_config_route_v3_route_components_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
  8069  			switch v := v.(*RateLimit_Override); i {
  8070  			case 0:
  8071  				return &v.state
  8072  			case 1:
  8073  				return &v.sizeCache
  8074  			case 2:
  8075  				return &v.unknownFields
  8076  			default:
  8077  				return nil
  8078  			}
  8079  		}
  8080  		file_envoy_config_route_v3_route_components_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
  8081  			switch v := v.(*RateLimit_Action_SourceCluster); i {
  8082  			case 0:
  8083  				return &v.state
  8084  			case 1:
  8085  				return &v.sizeCache
  8086  			case 2:
  8087  				return &v.unknownFields
  8088  			default:
  8089  				return nil
  8090  			}
  8091  		}
  8092  		file_envoy_config_route_v3_route_components_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
  8093  			switch v := v.(*RateLimit_Action_DestinationCluster); i {
  8094  			case 0:
  8095  				return &v.state
  8096  			case 1:
  8097  				return &v.sizeCache
  8098  			case 2:
  8099  				return &v.unknownFields
  8100  			default:
  8101  				return nil
  8102  			}
  8103  		}
  8104  		file_envoy_config_route_v3_route_components_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
  8105  			switch v := v.(*RateLimit_Action_RequestHeaders); i {
  8106  			case 0:
  8107  				return &v.state
  8108  			case 1:
  8109  				return &v.sizeCache
  8110  			case 2:
  8111  				return &v.unknownFields
  8112  			default:
  8113  				return nil
  8114  			}
  8115  		}
  8116  		file_envoy_config_route_v3_route_components_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
  8117  			switch v := v.(*RateLimit_Action_RemoteAddress); i {
  8118  			case 0:
  8119  				return &v.state
  8120  			case 1:
  8121  				return &v.sizeCache
  8122  			case 2:
  8123  				return &v.unknownFields
  8124  			default:
  8125  				return nil
  8126  			}
  8127  		}
  8128  		file_envoy_config_route_v3_route_components_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
  8129  			switch v := v.(*RateLimit_Action_GenericKey); i {
  8130  			case 0:
  8131  				return &v.state
  8132  			case 1:
  8133  				return &v.sizeCache
  8134  			case 2:
  8135  				return &v.unknownFields
  8136  			default:
  8137  				return nil
  8138  			}
  8139  		}
  8140  		file_envoy_config_route_v3_route_components_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
  8141  			switch v := v.(*RateLimit_Action_HeaderValueMatch); i {
  8142  			case 0:
  8143  				return &v.state
  8144  			case 1:
  8145  				return &v.sizeCache
  8146  			case 2:
  8147  				return &v.unknownFields
  8148  			default:
  8149  				return nil
  8150  			}
  8151  		}
  8152  		file_envoy_config_route_v3_route_components_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
  8153  			switch v := v.(*RateLimit_Action_DynamicMetaData); i {
  8154  			case 0:
  8155  				return &v.state
  8156  			case 1:
  8157  				return &v.sizeCache
  8158  			case 2:
  8159  				return &v.unknownFields
  8160  			default:
  8161  				return nil
  8162  			}
  8163  		}
  8164  		file_envoy_config_route_v3_route_components_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
  8165  			switch v := v.(*RateLimit_Action_MetaData); i {
  8166  			case 0:
  8167  				return &v.state
  8168  			case 1:
  8169  				return &v.sizeCache
  8170  			case 2:
  8171  				return &v.unknownFields
  8172  			default:
  8173  				return nil
  8174  			}
  8175  		}
  8176  		file_envoy_config_route_v3_route_components_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
  8177  			switch v := v.(*RateLimit_Override_DynamicMetadata); i {
  8178  			case 0:
  8179  				return &v.state
  8180  			case 1:
  8181  				return &v.sizeCache
  8182  			case 2:
  8183  				return &v.unknownFields
  8184  			default:
  8185  				return nil
  8186  			}
  8187  		}
  8188  	}
  8189  	file_envoy_config_route_v3_route_components_proto_msgTypes[2].OneofWrappers = []interface{}{
  8190  		(*Route_Route)(nil),
  8191  		(*Route_Redirect)(nil),
  8192  		(*Route_DirectResponse)(nil),
  8193  		(*Route_FilterAction)(nil),
  8194  		(*Route_NonForwardingAction)(nil),
  8195  	}
  8196  	file_envoy_config_route_v3_route_components_proto_msgTypes[4].OneofWrappers = []interface{}{
  8197  		(*RouteMatch_Prefix)(nil),
  8198  		(*RouteMatch_Path)(nil),
  8199  		(*RouteMatch_SafeRegex)(nil),
  8200  		(*RouteMatch_ConnectMatcher_)(nil),
  8201  		(*RouteMatch_HiddenEnvoyDeprecatedRegex)(nil),
  8202  	}
  8203  	file_envoy_config_route_v3_route_components_proto_msgTypes[5].OneofWrappers = []interface{}{
  8204  		(*CorsPolicy_FilterEnabled)(nil),
  8205  		(*CorsPolicy_HiddenEnvoyDeprecatedEnabled)(nil),
  8206  	}
  8207  	file_envoy_config_route_v3_route_components_proto_msgTypes[6].OneofWrappers = []interface{}{
  8208  		(*RouteAction_Cluster)(nil),
  8209  		(*RouteAction_ClusterHeader)(nil),
  8210  		(*RouteAction_WeightedClusters)(nil),
  8211  		(*RouteAction_ClusterSpecifierPlugin)(nil),
  8212  		(*RouteAction_HostRewriteLiteral)(nil),
  8213  		(*RouteAction_AutoHostRewrite)(nil),
  8214  		(*RouteAction_HostRewriteHeader)(nil),
  8215  		(*RouteAction_HostRewritePathRegex)(nil),
  8216  	}
  8217  	file_envoy_config_route_v3_route_components_proto_msgTypes[9].OneofWrappers = []interface{}{
  8218  		(*RedirectAction_HttpsRedirect)(nil),
  8219  		(*RedirectAction_SchemeRedirect)(nil),
  8220  		(*RedirectAction_PathRedirect)(nil),
  8221  		(*RedirectAction_PrefixRewrite)(nil),
  8222  		(*RedirectAction_RegexRewrite)(nil),
  8223  	}
  8224  	file_envoy_config_route_v3_route_components_proto_msgTypes[16].OneofWrappers = []interface{}{
  8225  		(*HeaderMatcher_ExactMatch)(nil),
  8226  		(*HeaderMatcher_SafeRegexMatch)(nil),
  8227  		(*HeaderMatcher_RangeMatch)(nil),
  8228  		(*HeaderMatcher_PresentMatch)(nil),
  8229  		(*HeaderMatcher_PrefixMatch)(nil),
  8230  		(*HeaderMatcher_SuffixMatch)(nil),
  8231  		(*HeaderMatcher_ContainsMatch)(nil),
  8232  		(*HeaderMatcher_StringMatch)(nil),
  8233  		(*HeaderMatcher_HiddenEnvoyDeprecatedRegexMatch)(nil),
  8234  	}
  8235  	file_envoy_config_route_v3_route_components_proto_msgTypes[17].OneofWrappers = []interface{}{
  8236  		(*QueryParameterMatcher_StringMatch)(nil),
  8237  		(*QueryParameterMatcher_PresentMatch)(nil),
  8238  	}
  8239  	file_envoy_config_route_v3_route_components_proto_msgTypes[24].OneofWrappers = []interface{}{
  8240  		(*WeightedCluster_ClusterWeight_HostRewriteLiteral)(nil),
  8241  	}
  8242  	file_envoy_config_route_v3_route_components_proto_msgTypes[31].OneofWrappers = []interface{}{
  8243  		(*RouteAction_HashPolicy_Header_)(nil),
  8244  		(*RouteAction_HashPolicy_Cookie_)(nil),
  8245  		(*RouteAction_HashPolicy_ConnectionProperties_)(nil),
  8246  		(*RouteAction_HashPolicy_QueryParameter_)(nil),
  8247  		(*RouteAction_HashPolicy_FilterState_)(nil),
  8248  	}
  8249  	file_envoy_config_route_v3_route_components_proto_msgTypes[40].OneofWrappers = []interface{}{
  8250  		(*RetryPolicy_RetryPriority_TypedConfig)(nil),
  8251  		(*RetryPolicy_RetryPriority_HiddenEnvoyDeprecatedConfig)(nil),
  8252  	}
  8253  	file_envoy_config_route_v3_route_components_proto_msgTypes[41].OneofWrappers = []interface{}{
  8254  		(*RetryPolicy_RetryHostPredicate_TypedConfig)(nil),
  8255  		(*RetryPolicy_RetryHostPredicate_HiddenEnvoyDeprecatedConfig)(nil),
  8256  	}
  8257  	file_envoy_config_route_v3_route_components_proto_msgTypes[45].OneofWrappers = []interface{}{
  8258  		(*RateLimit_Action_SourceCluster_)(nil),
  8259  		(*RateLimit_Action_DestinationCluster_)(nil),
  8260  		(*RateLimit_Action_RequestHeaders_)(nil),
  8261  		(*RateLimit_Action_RemoteAddress_)(nil),
  8262  		(*RateLimit_Action_GenericKey_)(nil),
  8263  		(*RateLimit_Action_HeaderValueMatch_)(nil),
  8264  		(*RateLimit_Action_DynamicMetadata)(nil),
  8265  		(*RateLimit_Action_Metadata)(nil),
  8266  		(*RateLimit_Action_Extension)(nil),
  8267  	}
  8268  	file_envoy_config_route_v3_route_components_proto_msgTypes[46].OneofWrappers = []interface{}{
  8269  		(*RateLimit_Override_DynamicMetadata_)(nil),
  8270  	}
  8271  	type x struct{}
  8272  	out := protoimpl.TypeBuilder{
  8273  		File: protoimpl.DescBuilder{
  8274  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  8275  			RawDescriptor: file_envoy_config_route_v3_route_components_proto_rawDesc,
  8276  			NumEnums:      6,
  8277  			NumMessages:   56,
  8278  			NumExtensions: 0,
  8279  			NumServices:   0,
  8280  		},
  8281  		GoTypes:           file_envoy_config_route_v3_route_components_proto_goTypes,
  8282  		DependencyIndexes: file_envoy_config_route_v3_route_components_proto_depIdxs,
  8283  		EnumInfos:         file_envoy_config_route_v3_route_components_proto_enumTypes,
  8284  		MessageInfos:      file_envoy_config_route_v3_route_components_proto_msgTypes,
  8285  	}.Build()
  8286  	File_envoy_config_route_v3_route_components_proto = out.File
  8287  	file_envoy_config_route_v3_route_components_proto_rawDesc = nil
  8288  	file_envoy_config_route_v3_route_components_proto_goTypes = nil
  8289  	file_envoy_config_route_v3_route_components_proto_depIdxs = nil
  8290  }