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/extensions/filters/network/thrift_proxy/v3/route.proto 6 7package envoy_extensions_filters_network_thrift_proxy_v3 8 9import ( 10 _ "github.com/cncf/xds/go/udpa/annotations" 11 v31 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" 12 v3 "github.com/envoyproxy/go-control-plane/envoy/config/route/v3" 13 _ "github.com/envoyproxy/protoc-gen-validate/validate" 14 proto "github.com/golang/protobuf/proto" 15 wrappers "github.com/golang/protobuf/ptypes/wrappers" 16 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 17 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 18 reflect "reflect" 19 sync "sync" 20) 21 22const ( 23 // Verify that this generated code is sufficiently up-to-date. 24 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 25 // Verify that runtime/protoimpl is sufficiently up-to-date. 26 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 27) 28 29// This is a compile-time assertion that a sufficiently up-to-date version 30// of the legacy proto package is being used. 31const _ = proto.ProtoPackageIsVersion4 32 33type RouteConfiguration struct { 34 state protoimpl.MessageState 35 sizeCache protoimpl.SizeCache 36 unknownFields protoimpl.UnknownFields 37 38 // The name of the route configuration. Reserved for future use in asynchronous route discovery. 39 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 40 // The list of routes that will be matched, in order, against incoming requests. The first route 41 // that matches will be used. 42 Routes []*Route `protobuf:"bytes,2,rep,name=routes,proto3" json:"routes,omitempty"` 43} 44 45func (x *RouteConfiguration) Reset() { 46 *x = RouteConfiguration{} 47 if protoimpl.UnsafeEnabled { 48 mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[0] 49 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 50 ms.StoreMessageInfo(mi) 51 } 52} 53 54func (x *RouteConfiguration) String() string { 55 return protoimpl.X.MessageStringOf(x) 56} 57 58func (*RouteConfiguration) ProtoMessage() {} 59 60func (x *RouteConfiguration) ProtoReflect() protoreflect.Message { 61 mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[0] 62 if protoimpl.UnsafeEnabled && x != nil { 63 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 64 if ms.LoadMessageInfo() == nil { 65 ms.StoreMessageInfo(mi) 66 } 67 return ms 68 } 69 return mi.MessageOf(x) 70} 71 72// Deprecated: Use RouteConfiguration.ProtoReflect.Descriptor instead. 73func (*RouteConfiguration) Descriptor() ([]byte, []int) { 74 return file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescGZIP(), []int{0} 75} 76 77func (x *RouteConfiguration) GetName() string { 78 if x != nil { 79 return x.Name 80 } 81 return "" 82} 83 84func (x *RouteConfiguration) GetRoutes() []*Route { 85 if x != nil { 86 return x.Routes 87 } 88 return nil 89} 90 91type Route struct { 92 state protoimpl.MessageState 93 sizeCache protoimpl.SizeCache 94 unknownFields protoimpl.UnknownFields 95 96 // Route matching parameters. 97 Match *RouteMatch `protobuf:"bytes,1,opt,name=match,proto3" json:"match,omitempty"` 98 // Route request to some upstream cluster. 99 Route *RouteAction `protobuf:"bytes,2,opt,name=route,proto3" json:"route,omitempty"` 100} 101 102func (x *Route) Reset() { 103 *x = Route{} 104 if protoimpl.UnsafeEnabled { 105 mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[1] 106 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 107 ms.StoreMessageInfo(mi) 108 } 109} 110 111func (x *Route) String() string { 112 return protoimpl.X.MessageStringOf(x) 113} 114 115func (*Route) ProtoMessage() {} 116 117func (x *Route) ProtoReflect() protoreflect.Message { 118 mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[1] 119 if protoimpl.UnsafeEnabled && x != nil { 120 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 121 if ms.LoadMessageInfo() == nil { 122 ms.StoreMessageInfo(mi) 123 } 124 return ms 125 } 126 return mi.MessageOf(x) 127} 128 129// Deprecated: Use Route.ProtoReflect.Descriptor instead. 130func (*Route) Descriptor() ([]byte, []int) { 131 return file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescGZIP(), []int{1} 132} 133 134func (x *Route) GetMatch() *RouteMatch { 135 if x != nil { 136 return x.Match 137 } 138 return nil 139} 140 141func (x *Route) GetRoute() *RouteAction { 142 if x != nil { 143 return x.Route 144 } 145 return nil 146} 147 148type RouteMatch struct { 149 state protoimpl.MessageState 150 sizeCache protoimpl.SizeCache 151 unknownFields protoimpl.UnknownFields 152 153 // Types that are assignable to MatchSpecifier: 154 // *RouteMatch_MethodName 155 // *RouteMatch_ServiceName 156 MatchSpecifier isRouteMatch_MatchSpecifier `protobuf_oneof:"match_specifier"` 157 // Inverts whatever matching is done in the :ref:`method_name 158 // <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.RouteMatch.method_name>` or 159 // :ref:`service_name 160 // <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.RouteMatch.service_name>` fields. 161 // Cannot be combined with wildcard matching as that would result in routes never being matched. 162 // 163 // .. note:: 164 // 165 // This does not invert matching done as part of the :ref:`headers field 166 // <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.RouteMatch.headers>` field. To 167 // invert header matching, see :ref:`invert_match 168 // <envoy_v3_api_field_config.route.v3.HeaderMatcher.invert_match>`. 169 Invert bool `protobuf:"varint,3,opt,name=invert,proto3" json:"invert,omitempty"` 170 // Specifies a set of headers that the route should match on. The router will check the request’s 171 // headers against all the specified headers in the route config. A match will happen if all the 172 // headers in the route are present in the request with the same values (or based on presence if 173 // the value field is not in the config). Note that this only applies for Thrift transports and/or 174 // protocols that support headers. 175 Headers []*v3.HeaderMatcher `protobuf:"bytes,4,rep,name=headers,proto3" json:"headers,omitempty"` 176} 177 178func (x *RouteMatch) Reset() { 179 *x = RouteMatch{} 180 if protoimpl.UnsafeEnabled { 181 mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[2] 182 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 183 ms.StoreMessageInfo(mi) 184 } 185} 186 187func (x *RouteMatch) String() string { 188 return protoimpl.X.MessageStringOf(x) 189} 190 191func (*RouteMatch) ProtoMessage() {} 192 193func (x *RouteMatch) ProtoReflect() protoreflect.Message { 194 mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[2] 195 if protoimpl.UnsafeEnabled && x != nil { 196 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 197 if ms.LoadMessageInfo() == nil { 198 ms.StoreMessageInfo(mi) 199 } 200 return ms 201 } 202 return mi.MessageOf(x) 203} 204 205// Deprecated: Use RouteMatch.ProtoReflect.Descriptor instead. 206func (*RouteMatch) Descriptor() ([]byte, []int) { 207 return file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescGZIP(), []int{2} 208} 209 210func (m *RouteMatch) GetMatchSpecifier() isRouteMatch_MatchSpecifier { 211 if m != nil { 212 return m.MatchSpecifier 213 } 214 return nil 215} 216 217func (x *RouteMatch) GetMethodName() string { 218 if x, ok := x.GetMatchSpecifier().(*RouteMatch_MethodName); ok { 219 return x.MethodName 220 } 221 return "" 222} 223 224func (x *RouteMatch) GetServiceName() string { 225 if x, ok := x.GetMatchSpecifier().(*RouteMatch_ServiceName); ok { 226 return x.ServiceName 227 } 228 return "" 229} 230 231func (x *RouteMatch) GetInvert() bool { 232 if x != nil { 233 return x.Invert 234 } 235 return false 236} 237 238func (x *RouteMatch) GetHeaders() []*v3.HeaderMatcher { 239 if x != nil { 240 return x.Headers 241 } 242 return nil 243} 244 245type isRouteMatch_MatchSpecifier interface { 246 isRouteMatch_MatchSpecifier() 247} 248 249type RouteMatch_MethodName struct { 250 // If specified, the route must exactly match the request method name. As a special case, an 251 // empty string matches any request method name. 252 MethodName string `protobuf:"bytes,1,opt,name=method_name,json=methodName,proto3,oneof"` 253} 254 255type RouteMatch_ServiceName struct { 256 // If specified, the route must have the service name as the request method name prefix. As a 257 // special case, an empty string matches any service name. Only relevant when service 258 // multiplexing. 259 ServiceName string `protobuf:"bytes,2,opt,name=service_name,json=serviceName,proto3,oneof"` 260} 261 262func (*RouteMatch_MethodName) isRouteMatch_MatchSpecifier() {} 263 264func (*RouteMatch_ServiceName) isRouteMatch_MatchSpecifier() {} 265 266// [#next-free-field: 7] 267type RouteAction struct { 268 state protoimpl.MessageState 269 sizeCache protoimpl.SizeCache 270 unknownFields protoimpl.UnknownFields 271 272 // Types that are assignable to ClusterSpecifier: 273 // *RouteAction_Cluster 274 // *RouteAction_WeightedClusters 275 // *RouteAction_ClusterHeader 276 ClusterSpecifier isRouteAction_ClusterSpecifier `protobuf_oneof:"cluster_specifier"` 277 // Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints in 278 // the upstream cluster with metadata matching what is set in this field will be considered. 279 // Note that this will be merged with what's provided in :ref:`WeightedCluster.metadata_match 280 // <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.WeightedCluster.ClusterWeight.metadata_match>`, 281 // with values there taking precedence. Keys and values should be provided under the "envoy.lb" 282 // metadata key. 283 MetadataMatch *v31.Metadata `protobuf:"bytes,3,opt,name=metadata_match,json=metadataMatch,proto3" json:"metadata_match,omitempty"` 284 // Specifies a set of rate limit configurations that could be applied to the route. 285 // N.B. Thrift service or method name matching can be achieved by specifying a RequestHeaders 286 // action with the header name ":method-name". 287 RateLimits []*v3.RateLimit `protobuf:"bytes,4,rep,name=rate_limits,json=rateLimits,proto3" json:"rate_limits,omitempty"` 288 // Strip the service prefix from the method name, if there's a prefix. For 289 // example, the method call Service:method would end up being just method. 290 StripServiceName bool `protobuf:"varint,5,opt,name=strip_service_name,json=stripServiceName,proto3" json:"strip_service_name,omitempty"` 291} 292 293func (x *RouteAction) Reset() { 294 *x = RouteAction{} 295 if protoimpl.UnsafeEnabled { 296 mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[3] 297 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 298 ms.StoreMessageInfo(mi) 299 } 300} 301 302func (x *RouteAction) String() string { 303 return protoimpl.X.MessageStringOf(x) 304} 305 306func (*RouteAction) ProtoMessage() {} 307 308func (x *RouteAction) ProtoReflect() protoreflect.Message { 309 mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[3] 310 if protoimpl.UnsafeEnabled && x != nil { 311 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 312 if ms.LoadMessageInfo() == nil { 313 ms.StoreMessageInfo(mi) 314 } 315 return ms 316 } 317 return mi.MessageOf(x) 318} 319 320// Deprecated: Use RouteAction.ProtoReflect.Descriptor instead. 321func (*RouteAction) Descriptor() ([]byte, []int) { 322 return file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescGZIP(), []int{3} 323} 324 325func (m *RouteAction) GetClusterSpecifier() isRouteAction_ClusterSpecifier { 326 if m != nil { 327 return m.ClusterSpecifier 328 } 329 return nil 330} 331 332func (x *RouteAction) GetCluster() string { 333 if x, ok := x.GetClusterSpecifier().(*RouteAction_Cluster); ok { 334 return x.Cluster 335 } 336 return "" 337} 338 339func (x *RouteAction) GetWeightedClusters() *WeightedCluster { 340 if x, ok := x.GetClusterSpecifier().(*RouteAction_WeightedClusters); ok { 341 return x.WeightedClusters 342 } 343 return nil 344} 345 346func (x *RouteAction) GetClusterHeader() string { 347 if x, ok := x.GetClusterSpecifier().(*RouteAction_ClusterHeader); ok { 348 return x.ClusterHeader 349 } 350 return "" 351} 352 353func (x *RouteAction) GetMetadataMatch() *v31.Metadata { 354 if x != nil { 355 return x.MetadataMatch 356 } 357 return nil 358} 359 360func (x *RouteAction) GetRateLimits() []*v3.RateLimit { 361 if x != nil { 362 return x.RateLimits 363 } 364 return nil 365} 366 367func (x *RouteAction) GetStripServiceName() bool { 368 if x != nil { 369 return x.StripServiceName 370 } 371 return false 372} 373 374type isRouteAction_ClusterSpecifier interface { 375 isRouteAction_ClusterSpecifier() 376} 377 378type RouteAction_Cluster struct { 379 // Indicates a single upstream cluster to which the request should be routed 380 // to. 381 Cluster string `protobuf:"bytes,1,opt,name=cluster,proto3,oneof"` 382} 383 384type RouteAction_WeightedClusters struct { 385 // Multiple upstream clusters can be specified for a given route. The 386 // request is routed to one of the upstream clusters based on weights 387 // assigned to each cluster. 388 WeightedClusters *WeightedCluster `protobuf:"bytes,2,opt,name=weighted_clusters,json=weightedClusters,proto3,oneof"` 389} 390 391type RouteAction_ClusterHeader struct { 392 // Envoy will determine the cluster to route to by reading the value of the 393 // Thrift header named by cluster_header from the request headers. If the 394 // header is not found or the referenced cluster does not exist Envoy will 395 // respond with an unknown method exception or an internal error exception, 396 // respectively. 397 ClusterHeader string `protobuf:"bytes,6,opt,name=cluster_header,json=clusterHeader,proto3,oneof"` 398} 399 400func (*RouteAction_Cluster) isRouteAction_ClusterSpecifier() {} 401 402func (*RouteAction_WeightedClusters) isRouteAction_ClusterSpecifier() {} 403 404func (*RouteAction_ClusterHeader) isRouteAction_ClusterSpecifier() {} 405 406// Allows for specification of multiple upstream clusters along with weights that indicate the 407// percentage of traffic to be forwarded to each cluster. The router selects an upstream cluster 408// based on these weights. 409type WeightedCluster struct { 410 state protoimpl.MessageState 411 sizeCache protoimpl.SizeCache 412 unknownFields protoimpl.UnknownFields 413 414 // Specifies one or more upstream clusters associated with the route. 415 Clusters []*WeightedCluster_ClusterWeight `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"` 416} 417 418func (x *WeightedCluster) Reset() { 419 *x = WeightedCluster{} 420 if protoimpl.UnsafeEnabled { 421 mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[4] 422 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 423 ms.StoreMessageInfo(mi) 424 } 425} 426 427func (x *WeightedCluster) String() string { 428 return protoimpl.X.MessageStringOf(x) 429} 430 431func (*WeightedCluster) ProtoMessage() {} 432 433func (x *WeightedCluster) ProtoReflect() protoreflect.Message { 434 mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[4] 435 if protoimpl.UnsafeEnabled && x != nil { 436 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 437 if ms.LoadMessageInfo() == nil { 438 ms.StoreMessageInfo(mi) 439 } 440 return ms 441 } 442 return mi.MessageOf(x) 443} 444 445// Deprecated: Use WeightedCluster.ProtoReflect.Descriptor instead. 446func (*WeightedCluster) Descriptor() ([]byte, []int) { 447 return file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescGZIP(), []int{4} 448} 449 450func (x *WeightedCluster) GetClusters() []*WeightedCluster_ClusterWeight { 451 if x != nil { 452 return x.Clusters 453 } 454 return nil 455} 456 457type WeightedCluster_ClusterWeight struct { 458 state protoimpl.MessageState 459 sizeCache protoimpl.SizeCache 460 unknownFields protoimpl.UnknownFields 461 462 // Name of the upstream cluster. 463 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 464 // When a request matches the route, the choice of an upstream cluster is determined by its 465 // weight. The sum of weights across all entries in the clusters array determines the total 466 // weight. 467 Weight *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=weight,proto3" json:"weight,omitempty"` 468 // Optional endpoint metadata match criteria used by the subset load balancer. Only endpoints in 469 // the upstream cluster with metadata matching what is set in this field, combined with what's 470 // provided in :ref:`RouteAction's metadata_match 471 // <envoy_v3_api_field_extensions.filters.network.thrift_proxy.v3.RouteAction.metadata_match>`, 472 // will be considered. Values here will take precedence. Keys and values should be provided 473 // under the "envoy.lb" metadata key. 474 MetadataMatch *v31.Metadata `protobuf:"bytes,3,opt,name=metadata_match,json=metadataMatch,proto3" json:"metadata_match,omitempty"` 475} 476 477func (x *WeightedCluster_ClusterWeight) Reset() { 478 *x = WeightedCluster_ClusterWeight{} 479 if protoimpl.UnsafeEnabled { 480 mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[5] 481 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 482 ms.StoreMessageInfo(mi) 483 } 484} 485 486func (x *WeightedCluster_ClusterWeight) String() string { 487 return protoimpl.X.MessageStringOf(x) 488} 489 490func (*WeightedCluster_ClusterWeight) ProtoMessage() {} 491 492func (x *WeightedCluster_ClusterWeight) ProtoReflect() protoreflect.Message { 493 mi := &file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[5] 494 if protoimpl.UnsafeEnabled && x != nil { 495 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 496 if ms.LoadMessageInfo() == nil { 497 ms.StoreMessageInfo(mi) 498 } 499 return ms 500 } 501 return mi.MessageOf(x) 502} 503 504// Deprecated: Use WeightedCluster_ClusterWeight.ProtoReflect.Descriptor instead. 505func (*WeightedCluster_ClusterWeight) Descriptor() ([]byte, []int) { 506 return file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescGZIP(), []int{4, 0} 507} 508 509func (x *WeightedCluster_ClusterWeight) GetName() string { 510 if x != nil { 511 return x.Name 512 } 513 return "" 514} 515 516func (x *WeightedCluster_ClusterWeight) GetWeight() *wrappers.UInt32Value { 517 if x != nil { 518 return x.Weight 519 } 520 return nil 521} 522 523func (x *WeightedCluster_ClusterWeight) GetMetadataMatch() *v31.Metadata { 524 if x != nil { 525 return x.MetadataMatch 526 } 527 return nil 528} 529 530var File_envoy_extensions_filters_network_thrift_proxy_v3_route_proto protoreflect.FileDescriptor 531 532var file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDesc = []byte{ 533 0x0a, 0x3c, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 534 0x6e, 0x73, 0x2f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 535 0x72, 0x6b, 0x2f, 0x74, 0x68, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 536 0x76, 0x33, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x30, 537 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 538 0x2e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 539 0x2e, 0x74, 0x68, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x33, 540 0x1a, 0x1f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 541 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 542 0x6f, 0x1a, 0x2c, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 543 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x63, 544 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 545 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 546 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 547 0x1d, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 548 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 549 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 550 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 551 0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 552 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc6, 0x01, 0x0a, 0x12, 0x52, 553 0x6f, 0x75, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 554 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 555 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 556 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x65, 0x78, 557 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 558 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x74, 0x68, 0x72, 0x69, 0x66, 0x74, 0x5f, 559 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x06, 560 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x3a, 0x4b, 0x9a, 0xc5, 0x88, 0x1e, 0x46, 0x0a, 0x44, 0x65, 561 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x66, 0x69, 0x6c, 0x74, 562 0x65, 0x72, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x74, 0x68, 0x72, 0x69, 0x66, 563 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 564 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 565 0x69, 0x6f, 0x6e, 0x22, 0x84, 0x02, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x5c, 0x0a, 566 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x65, 567 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 568 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 569 0x74, 0x68, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x33, 0x2e, 570 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 571 0x01, 0x02, 0x10, 0x01, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x5d, 0x0a, 0x05, 0x72, 572 0x6f, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x65, 0x6e, 0x76, 573 0x6f, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x66, 0x69, 574 0x6c, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x74, 0x68, 575 0x72, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x6f, 576 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 577 0x02, 0x10, 0x01, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x3a, 0x3e, 0x9a, 0xc5, 0x88, 0x1e, 578 0x39, 0x0a, 0x37, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 579 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x74, 580 0x68, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x32, 0x61, 0x6c, 581 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x22, 0x89, 0x02, 0x0a, 0x0a, 0x52, 582 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x21, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 583 0x68, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 584 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0c, 585 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 586 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 587 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 588 0x08, 0x52, 0x06, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x12, 0x3e, 0x0a, 0x07, 0x68, 0x65, 0x61, 589 0x64, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x76, 590 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 591 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 592 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x3a, 0x43, 0x9a, 0xc5, 0x88, 0x1e, 0x3e, 593 0x0a, 0x3c, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x66, 594 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x74, 0x68, 595 0x72, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 596 0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x16, 597 0x0a, 0x0f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 598 0x72, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0xf4, 0x03, 0x0a, 0x0b, 0x52, 0x6f, 0x75, 0x74, 0x65, 599 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 600 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 601 0x48, 0x00, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x70, 0x0a, 0x11, 0x77, 602 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 603 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x65, 604 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 605 0x73, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x74, 0x68, 0x72, 0x69, 0x66, 0x74, 606 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x33, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 607 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x77, 0x65, 0x69, 608 0x67, 0x68, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 609 0x0e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 610 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xfa, 0x42, 0x0a, 0x72, 0x08, 0x10, 0x01, 0xc0, 0x01, 611 0x02, 0xc8, 0x01, 0x00, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 612 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 613 0x61, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 614 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 615 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x6d, 616 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x41, 0x0a, 0x0b, 617 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 618 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 619 0x2e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 620 0x6d, 0x69, 0x74, 0x52, 0x0a, 0x72, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 621 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x69, 0x70, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 622 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x74, 0x72, 623 0x69, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x44, 0x9a, 624 0xc5, 0x88, 0x1e, 0x3f, 0x0a, 0x3d, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 625 0x69, 0x67, 0x2e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 626 0x6b, 0x2e, 0x74, 0x68, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 627 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 628 0x69, 0x6f, 0x6e, 0x42, 0x18, 0x0a, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 629 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0xdf, 0x03, 630 0x0a, 0x0f, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 631 0x72, 0x12, 0x75, 0x0a, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 632 0x03, 0x28, 0x0b, 0x32, 0x4f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 633 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x6e, 634 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x74, 0x68, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 635 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x33, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x43, 636 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x57, 0x65, 637 0x69, 0x67, 0x68, 0x74, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x08, 638 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x8a, 0x02, 0x0a, 0x0d, 0x43, 0x6c, 0x75, 639 0x73, 0x74, 0x65, 0x72, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 640 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 641 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 642 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 643 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 644 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x2a, 0x02, 0x28, 0x01, 0x52, 0x06, 645 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x45, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 646 0x74, 0x61, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 647 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 648 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0d, 649 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x3a, 0x56, 0x9a, 650 0xc5, 0x88, 0x1e, 0x51, 0x0a, 0x4f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 651 0x69, 0x67, 0x2e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 652 0x6b, 0x2e, 0x74, 0x68, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 653 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 654 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x57, 655 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x48, 0x9a, 0xc5, 0x88, 0x1e, 0x43, 0x0a, 0x41, 0x65, 0x6e, 656 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x66, 0x69, 0x6c, 0x74, 0x65, 657 0x72, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x74, 0x68, 0x72, 0x69, 0x66, 0x74, 658 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 0x32, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 659 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x42, 660 0x56, 0x0a, 0x3e, 0x69, 0x6f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x70, 0x72, 0x6f, 0x78, 0x79, 661 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 662 0x73, 0x2e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 663 0x6b, 0x2e, 0x74, 0x68, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x76, 664 0x33, 0x42, 0x0a, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xba, 665 0x80, 0xc8, 0xd1, 0x06, 0x02, 0x10, 0x02, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 666} 667 668var ( 669 file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescOnce sync.Once 670 file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescData = file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDesc 671) 672 673func file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescGZIP() []byte { 674 file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescOnce.Do(func() { 675 file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescData = protoimpl.X.CompressGZIP(file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescData) 676 }) 677 return file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDescData 678} 679 680var file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes = make([]protoimpl.MessageInfo, 6) 681var file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_goTypes = []interface{}{ 682 (*RouteConfiguration)(nil), // 0: envoy.extensions.filters.network.thrift_proxy.v3.RouteConfiguration 683 (*Route)(nil), // 1: envoy.extensions.filters.network.thrift_proxy.v3.Route 684 (*RouteMatch)(nil), // 2: envoy.extensions.filters.network.thrift_proxy.v3.RouteMatch 685 (*RouteAction)(nil), // 3: envoy.extensions.filters.network.thrift_proxy.v3.RouteAction 686 (*WeightedCluster)(nil), // 4: envoy.extensions.filters.network.thrift_proxy.v3.WeightedCluster 687 (*WeightedCluster_ClusterWeight)(nil), // 5: envoy.extensions.filters.network.thrift_proxy.v3.WeightedCluster.ClusterWeight 688 (*v3.HeaderMatcher)(nil), // 6: envoy.config.route.v3.HeaderMatcher 689 (*v31.Metadata)(nil), // 7: envoy.config.core.v3.Metadata 690 (*v3.RateLimit)(nil), // 8: envoy.config.route.v3.RateLimit 691 (*wrappers.UInt32Value)(nil), // 9: google.protobuf.UInt32Value 692} 693var file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_depIdxs = []int32{ 694 1, // 0: envoy.extensions.filters.network.thrift_proxy.v3.RouteConfiguration.routes:type_name -> envoy.extensions.filters.network.thrift_proxy.v3.Route 695 2, // 1: envoy.extensions.filters.network.thrift_proxy.v3.Route.match:type_name -> envoy.extensions.filters.network.thrift_proxy.v3.RouteMatch 696 3, // 2: envoy.extensions.filters.network.thrift_proxy.v3.Route.route:type_name -> envoy.extensions.filters.network.thrift_proxy.v3.RouteAction 697 6, // 3: envoy.extensions.filters.network.thrift_proxy.v3.RouteMatch.headers:type_name -> envoy.config.route.v3.HeaderMatcher 698 4, // 4: envoy.extensions.filters.network.thrift_proxy.v3.RouteAction.weighted_clusters:type_name -> envoy.extensions.filters.network.thrift_proxy.v3.WeightedCluster 699 7, // 5: envoy.extensions.filters.network.thrift_proxy.v3.RouteAction.metadata_match:type_name -> envoy.config.core.v3.Metadata 700 8, // 6: envoy.extensions.filters.network.thrift_proxy.v3.RouteAction.rate_limits:type_name -> envoy.config.route.v3.RateLimit 701 5, // 7: envoy.extensions.filters.network.thrift_proxy.v3.WeightedCluster.clusters:type_name -> envoy.extensions.filters.network.thrift_proxy.v3.WeightedCluster.ClusterWeight 702 9, // 8: envoy.extensions.filters.network.thrift_proxy.v3.WeightedCluster.ClusterWeight.weight:type_name -> google.protobuf.UInt32Value 703 7, // 9: envoy.extensions.filters.network.thrift_proxy.v3.WeightedCluster.ClusterWeight.metadata_match:type_name -> envoy.config.core.v3.Metadata 704 10, // [10:10] is the sub-list for method output_type 705 10, // [10:10] is the sub-list for method input_type 706 10, // [10:10] is the sub-list for extension type_name 707 10, // [10:10] is the sub-list for extension extendee 708 0, // [0:10] is the sub-list for field type_name 709} 710 711func init() { file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_init() } 712func file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_init() { 713 if File_envoy_extensions_filters_network_thrift_proxy_v3_route_proto != nil { 714 return 715 } 716 if !protoimpl.UnsafeEnabled { 717 file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 718 switch v := v.(*RouteConfiguration); i { 719 case 0: 720 return &v.state 721 case 1: 722 return &v.sizeCache 723 case 2: 724 return &v.unknownFields 725 default: 726 return nil 727 } 728 } 729 file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 730 switch v := v.(*Route); i { 731 case 0: 732 return &v.state 733 case 1: 734 return &v.sizeCache 735 case 2: 736 return &v.unknownFields 737 default: 738 return nil 739 } 740 } 741 file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 742 switch v := v.(*RouteMatch); i { 743 case 0: 744 return &v.state 745 case 1: 746 return &v.sizeCache 747 case 2: 748 return &v.unknownFields 749 default: 750 return nil 751 } 752 } 753 file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 754 switch v := v.(*RouteAction); i { 755 case 0: 756 return &v.state 757 case 1: 758 return &v.sizeCache 759 case 2: 760 return &v.unknownFields 761 default: 762 return nil 763 } 764 } 765 file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 766 switch v := v.(*WeightedCluster); i { 767 case 0: 768 return &v.state 769 case 1: 770 return &v.sizeCache 771 case 2: 772 return &v.unknownFields 773 default: 774 return nil 775 } 776 } 777 file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 778 switch v := v.(*WeightedCluster_ClusterWeight); i { 779 case 0: 780 return &v.state 781 case 1: 782 return &v.sizeCache 783 case 2: 784 return &v.unknownFields 785 default: 786 return nil 787 } 788 } 789 } 790 file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[2].OneofWrappers = []interface{}{ 791 (*RouteMatch_MethodName)(nil), 792 (*RouteMatch_ServiceName)(nil), 793 } 794 file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes[3].OneofWrappers = []interface{}{ 795 (*RouteAction_Cluster)(nil), 796 (*RouteAction_WeightedClusters)(nil), 797 (*RouteAction_ClusterHeader)(nil), 798 } 799 type x struct{} 800 out := protoimpl.TypeBuilder{ 801 File: protoimpl.DescBuilder{ 802 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 803 RawDescriptor: file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDesc, 804 NumEnums: 0, 805 NumMessages: 6, 806 NumExtensions: 0, 807 NumServices: 0, 808 }, 809 GoTypes: file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_goTypes, 810 DependencyIndexes: file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_depIdxs, 811 MessageInfos: file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_msgTypes, 812 }.Build() 813 File_envoy_extensions_filters_network_thrift_proxy_v3_route_proto = out.File 814 file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_rawDesc = nil 815 file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_goTypes = nil 816 file_envoy_extensions_filters_network_thrift_proxy_v3_route_proto_depIdxs = nil 817} 818