1// Copyright 2020 The gRPC Authors 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15// Code generated by protoc-gen-go. DO NOT EDIT. 16// versions: 17// protoc-gen-go v1.25.0 18// protoc v3.3.0 19// source: grpc/lookup/v1/rls_config.proto 20 21package grpc_lookup_v1 22 23import ( 24 proto "github.com/golang/protobuf/proto" 25 duration "github.com/golang/protobuf/ptypes/duration" 26 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 27 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 28 reflect "reflect" 29 sync "sync" 30) 31 32const ( 33 // Verify that this generated code is sufficiently up-to-date. 34 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 35 // Verify that runtime/protoimpl is sufficiently up-to-date. 36 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 37) 38 39// This is a compile-time assertion that a sufficiently up-to-date version 40// of the legacy proto package is being used. 41const _ = proto.ProtoPackageIsVersion4 42 43// Extract a key based on a given name (e.g. header name or query parameter 44// name). The name must match one of the names listed in the "name" field. If 45// the "required_match" field is true, one of the specified names must be 46// present for the keybuilder to match. 47type NameMatcher struct { 48 state protoimpl.MessageState 49 sizeCache protoimpl.SizeCache 50 unknownFields protoimpl.UnknownFields 51 52 // The name that will be used in the RLS key_map to refer to this value. 53 Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` 54 // Ordered list of names (headers or query parameter names) that can supply 55 // this value; the first one with a non-empty value is used. 56 Names []string `protobuf:"bytes,2,rep,name=names,proto3" json:"names,omitempty"` 57 // If true, make this extraction required; the key builder will not match 58 // if no value is found. 59 RequiredMatch bool `protobuf:"varint,3,opt,name=required_match,json=requiredMatch,proto3" json:"required_match,omitempty"` 60} 61 62func (x *NameMatcher) Reset() { 63 *x = NameMatcher{} 64 if protoimpl.UnsafeEnabled { 65 mi := &file_grpc_lookup_v1_rls_config_proto_msgTypes[0] 66 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 67 ms.StoreMessageInfo(mi) 68 } 69} 70 71func (x *NameMatcher) String() string { 72 return protoimpl.X.MessageStringOf(x) 73} 74 75func (*NameMatcher) ProtoMessage() {} 76 77func (x *NameMatcher) ProtoReflect() protoreflect.Message { 78 mi := &file_grpc_lookup_v1_rls_config_proto_msgTypes[0] 79 if protoimpl.UnsafeEnabled && x != nil { 80 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 81 if ms.LoadMessageInfo() == nil { 82 ms.StoreMessageInfo(mi) 83 } 84 return ms 85 } 86 return mi.MessageOf(x) 87} 88 89// Deprecated: Use NameMatcher.ProtoReflect.Descriptor instead. 90func (*NameMatcher) Descriptor() ([]byte, []int) { 91 return file_grpc_lookup_v1_rls_config_proto_rawDescGZIP(), []int{0} 92} 93 94func (x *NameMatcher) GetKey() string { 95 if x != nil { 96 return x.Key 97 } 98 return "" 99} 100 101func (x *NameMatcher) GetNames() []string { 102 if x != nil { 103 return x.Names 104 } 105 return nil 106} 107 108func (x *NameMatcher) GetRequiredMatch() bool { 109 if x != nil { 110 return x.RequiredMatch 111 } 112 return false 113} 114 115// A GrpcKeyBuilder applies to a given gRPC service, name, and headers. 116type GrpcKeyBuilder struct { 117 state protoimpl.MessageState 118 sizeCache protoimpl.SizeCache 119 unknownFields protoimpl.UnknownFields 120 121 Names []*GrpcKeyBuilder_Name `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"` 122 // Extract keys from all listed headers. 123 // For gRPC, it is an error to specify "required_match" on the NameMatcher 124 // protos. 125 Headers []*NameMatcher `protobuf:"bytes,2,rep,name=headers,proto3" json:"headers,omitempty"` 126} 127 128func (x *GrpcKeyBuilder) Reset() { 129 *x = GrpcKeyBuilder{} 130 if protoimpl.UnsafeEnabled { 131 mi := &file_grpc_lookup_v1_rls_config_proto_msgTypes[1] 132 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 133 ms.StoreMessageInfo(mi) 134 } 135} 136 137func (x *GrpcKeyBuilder) String() string { 138 return protoimpl.X.MessageStringOf(x) 139} 140 141func (*GrpcKeyBuilder) ProtoMessage() {} 142 143func (x *GrpcKeyBuilder) ProtoReflect() protoreflect.Message { 144 mi := &file_grpc_lookup_v1_rls_config_proto_msgTypes[1] 145 if protoimpl.UnsafeEnabled && x != nil { 146 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 147 if ms.LoadMessageInfo() == nil { 148 ms.StoreMessageInfo(mi) 149 } 150 return ms 151 } 152 return mi.MessageOf(x) 153} 154 155// Deprecated: Use GrpcKeyBuilder.ProtoReflect.Descriptor instead. 156func (*GrpcKeyBuilder) Descriptor() ([]byte, []int) { 157 return file_grpc_lookup_v1_rls_config_proto_rawDescGZIP(), []int{1} 158} 159 160func (x *GrpcKeyBuilder) GetNames() []*GrpcKeyBuilder_Name { 161 if x != nil { 162 return x.Names 163 } 164 return nil 165} 166 167func (x *GrpcKeyBuilder) GetHeaders() []*NameMatcher { 168 if x != nil { 169 return x.Headers 170 } 171 return nil 172} 173 174// An HttpKeyBuilder applies to a given HTTP URL and headers. 175// 176// Path and host patterns use the matching syntax from gRPC transcoding to 177// extract named key/value pairs from the path and host components of the URL: 178// https://github.com/googleapis/googleapis/blob/master/google/api/http.proto 179// 180// It is invalid to specify the same key name in multiple places in a pattern. 181// 182// For a service where the project id can be expressed either as a subdomain or 183// in the path, separate HttpKeyBuilders must be used: 184// host_pattern: 'example.com' path_pattern: '/{id}/{object}/**' 185// host_pattern: '{id}.example.com' path_pattern: '/{object}/**' 186// If the host is exactly 'example.com', the first path segment will be used as 187// the id and the second segment as the object. If the host has a subdomain, the 188// subdomain will be used as the id and the first segment as the object. If 189// neither pattern matches, no keys will be extracted. 190type HttpKeyBuilder struct { 191 state protoimpl.MessageState 192 sizeCache protoimpl.SizeCache 193 unknownFields protoimpl.UnknownFields 194 195 // host_pattern is an ordered list of host template patterns for the desired 196 // value. If any host_pattern values are specified, then at least one must 197 // match, and the last one wins and sets any specified variables. A host 198 // consists of labels separated by dots. Each label is matched against the 199 // label in the pattern as follows: 200 // - "*": Matches any single label. 201 // - "**": Matches zero or more labels (first or last part of host only). 202 // - "{<name>=...}": One or more label capture, where "..." can be any 203 // template that does not include a capture. 204 // - "{<name>}": A single label capture. Identical to {<name>=*}. 205 // 206 // Examples: 207 // - "example.com": Only applies to the exact host example.com. 208 // - "*.example.com": Matches subdomains of example.com. 209 // - "**.example.com": matches example.com, and all levels of subdomains. 210 // - "{project}.example.com": Extracts the third level subdomain. 211 // - "{project=**}.example.com": Extracts the third level+ subdomains. 212 // - "{project=**}": Extracts the entire host. 213 HostPatterns []string `protobuf:"bytes,1,rep,name=host_patterns,json=hostPatterns,proto3" json:"host_patterns,omitempty"` 214 // path_pattern is an ordered list of path template patterns for the desired 215 // value. If any path_pattern values are specified, then at least one must 216 // match, and the last one wins and sets any specified variables. A path 217 // consists of segments separated by slashes. Each segment is matched against 218 // the segment in the pattern as follows: 219 // - "*": Matches any single segment. 220 // - "**": Matches zero or more segments (first or last part of path only). 221 // - "{<name>=...}": One or more segment capture, where "..." can be any 222 // template that does not include a capture. 223 // - "{<name>}": A single segment capture. Identical to {<name>=*}. 224 // A custom method may also be specified by appending ":" and the custom 225 // method name or "*" to indicate any custom method (including no custom 226 // method). For example, "/*/projects/{project_id}/**:*" extracts 227 // `{project_id}` for any version, resource and custom method that includes 228 // it. By default, any custom method will be matched. 229 // 230 // Examples: 231 // - "/v1/{name=messages/*}": extracts a name like "messages/12345". 232 // - "/v1/messages/{message_id}": extracts a message_id like "12345". 233 // - "/v1/users/{user_id}/messages/{message_id}": extracts two key values. 234 PathPatterns []string `protobuf:"bytes,2,rep,name=path_patterns,json=pathPatterns,proto3" json:"path_patterns,omitempty"` 235 // List of query parameter names to try to match. 236 // For example: ["parent", "name", "resource.name"] 237 // We extract all the specified query_parameters (case-sensitively). If any 238 // are marked as "required_match" and are not present, this keybuilder fails 239 // to match. If a given parameter appears multiple times (?foo=a&foo=b) we 240 // will report it as a comma-separated string (foo=a,b). 241 QueryParameters []*NameMatcher `protobuf:"bytes,3,rep,name=query_parameters,json=queryParameters,proto3" json:"query_parameters,omitempty"` 242 // List of headers to try to match. 243 // We extract all the specified header values (case-insensitively). If any 244 // are marked as "required_match" and are not present, this keybuilder fails 245 // to match. If a given header appears multiple times in the request we will 246 // report it as a comma-separated string, in standard HTTP fashion. 247 Headers []*NameMatcher `protobuf:"bytes,4,rep,name=headers,proto3" json:"headers,omitempty"` 248} 249 250func (x *HttpKeyBuilder) Reset() { 251 *x = HttpKeyBuilder{} 252 if protoimpl.UnsafeEnabled { 253 mi := &file_grpc_lookup_v1_rls_config_proto_msgTypes[2] 254 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 255 ms.StoreMessageInfo(mi) 256 } 257} 258 259func (x *HttpKeyBuilder) String() string { 260 return protoimpl.X.MessageStringOf(x) 261} 262 263func (*HttpKeyBuilder) ProtoMessage() {} 264 265func (x *HttpKeyBuilder) ProtoReflect() protoreflect.Message { 266 mi := &file_grpc_lookup_v1_rls_config_proto_msgTypes[2] 267 if protoimpl.UnsafeEnabled && x != nil { 268 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 269 if ms.LoadMessageInfo() == nil { 270 ms.StoreMessageInfo(mi) 271 } 272 return ms 273 } 274 return mi.MessageOf(x) 275} 276 277// Deprecated: Use HttpKeyBuilder.ProtoReflect.Descriptor instead. 278func (*HttpKeyBuilder) Descriptor() ([]byte, []int) { 279 return file_grpc_lookup_v1_rls_config_proto_rawDescGZIP(), []int{2} 280} 281 282func (x *HttpKeyBuilder) GetHostPatterns() []string { 283 if x != nil { 284 return x.HostPatterns 285 } 286 return nil 287} 288 289func (x *HttpKeyBuilder) GetPathPatterns() []string { 290 if x != nil { 291 return x.PathPatterns 292 } 293 return nil 294} 295 296func (x *HttpKeyBuilder) GetQueryParameters() []*NameMatcher { 297 if x != nil { 298 return x.QueryParameters 299 } 300 return nil 301} 302 303func (x *HttpKeyBuilder) GetHeaders() []*NameMatcher { 304 if x != nil { 305 return x.Headers 306 } 307 return nil 308} 309 310type RouteLookupConfig struct { 311 state protoimpl.MessageState 312 sizeCache protoimpl.SizeCache 313 unknownFields protoimpl.UnknownFields 314 315 // Ordered specifications for constructing keys for HTTP requests. Last 316 // match wins. If no HttpKeyBuilder matches, an empty key_map will be sent to 317 // the lookup service; it should likely reply with a global default route 318 // and raise an alert. 319 HttpKeybuilders []*HttpKeyBuilder `protobuf:"bytes,1,rep,name=http_keybuilders,json=httpKeybuilders,proto3" json:"http_keybuilders,omitempty"` 320 // Unordered specifications for constructing keys for gRPC requests. All 321 // GrpcKeyBuilders on this list must have unique "name" fields so that the 322 // client is free to prebuild a hash map keyed by name. If no GrpcKeyBuilder 323 // matches, an empty key_map will be sent to the lookup service; it should 324 // likely reply with a global default route and raise an alert. 325 GrpcKeybuilders []*GrpcKeyBuilder `protobuf:"bytes,2,rep,name=grpc_keybuilders,json=grpcKeybuilders,proto3" json:"grpc_keybuilders,omitempty"` 326 // The name of the lookup service as a gRPC URI. Typically, this will be 327 // a subdomain of the target, such as "lookup.datastore.googleapis.com". 328 LookupService string `protobuf:"bytes,3,opt,name=lookup_service,json=lookupService,proto3" json:"lookup_service,omitempty"` 329 // Configure a timeout value for lookup service requests. 330 // Defaults to 10 seconds if not specified. 331 LookupServiceTimeout *duration.Duration `protobuf:"bytes,4,opt,name=lookup_service_timeout,json=lookupServiceTimeout,proto3" json:"lookup_service_timeout,omitempty"` 332 // How long are responses valid for (like HTTP Cache-Control). 333 // If omitted or zero, the longest valid cache time is used. 334 // This value is clamped to 5 minutes to avoid unflushable bad responses. 335 MaxAge *duration.Duration `protobuf:"bytes,5,opt,name=max_age,json=maxAge,proto3" json:"max_age,omitempty"` 336 // After a response has been in the client cache for this amount of time 337 // and is re-requested, start an asynchronous RPC to re-validate it. 338 // This value should be less than max_age by at least the length of a 339 // typical RTT to the Route Lookup Service to fully mask the RTT latency. 340 // If omitted, keys are only re-requested after they have expired. 341 StaleAge *duration.Duration `protobuf:"bytes,6,opt,name=stale_age,json=staleAge,proto3" json:"stale_age,omitempty"` 342 // Rough indicator of amount of memory to use for the client cache. Some of 343 // the data structure overhead is not accounted for, so actual memory consumed 344 // will be somewhat greater than this value. If this field is omitted or set 345 // to zero, a client default will be used. The value may be capped to a lower 346 // amount based on client configuration. 347 CacheSizeBytes int64 `protobuf:"varint,7,opt,name=cache_size_bytes,json=cacheSizeBytes,proto3" json:"cache_size_bytes,omitempty"` 348 // This is a list of all the possible targets that can be returned by the 349 // lookup service. If a target not on this list is returned, it will be 350 // treated the same as an unhealthy target. 351 ValidTargets []string `protobuf:"bytes,8,rep,name=valid_targets,json=validTargets,proto3" json:"valid_targets,omitempty"` 352 // This value provides a default target to use if needed. If set, it will be 353 // used if RLS returns an error, times out, or returns an invalid response. 354 // Note that requests can be routed only to a subdomain of the original 355 // target, e.g. "us_east_1.cloudbigtable.googleapis.com". 356 DefaultTarget string `protobuf:"bytes,9,opt,name=default_target,json=defaultTarget,proto3" json:"default_target,omitempty"` 357} 358 359func (x *RouteLookupConfig) Reset() { 360 *x = RouteLookupConfig{} 361 if protoimpl.UnsafeEnabled { 362 mi := &file_grpc_lookup_v1_rls_config_proto_msgTypes[3] 363 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 364 ms.StoreMessageInfo(mi) 365 } 366} 367 368func (x *RouteLookupConfig) String() string { 369 return protoimpl.X.MessageStringOf(x) 370} 371 372func (*RouteLookupConfig) ProtoMessage() {} 373 374func (x *RouteLookupConfig) ProtoReflect() protoreflect.Message { 375 mi := &file_grpc_lookup_v1_rls_config_proto_msgTypes[3] 376 if protoimpl.UnsafeEnabled && x != nil { 377 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 378 if ms.LoadMessageInfo() == nil { 379 ms.StoreMessageInfo(mi) 380 } 381 return ms 382 } 383 return mi.MessageOf(x) 384} 385 386// Deprecated: Use RouteLookupConfig.ProtoReflect.Descriptor instead. 387func (*RouteLookupConfig) Descriptor() ([]byte, []int) { 388 return file_grpc_lookup_v1_rls_config_proto_rawDescGZIP(), []int{3} 389} 390 391func (x *RouteLookupConfig) GetHttpKeybuilders() []*HttpKeyBuilder { 392 if x != nil { 393 return x.HttpKeybuilders 394 } 395 return nil 396} 397 398func (x *RouteLookupConfig) GetGrpcKeybuilders() []*GrpcKeyBuilder { 399 if x != nil { 400 return x.GrpcKeybuilders 401 } 402 return nil 403} 404 405func (x *RouteLookupConfig) GetLookupService() string { 406 if x != nil { 407 return x.LookupService 408 } 409 return "" 410} 411 412func (x *RouteLookupConfig) GetLookupServiceTimeout() *duration.Duration { 413 if x != nil { 414 return x.LookupServiceTimeout 415 } 416 return nil 417} 418 419func (x *RouteLookupConfig) GetMaxAge() *duration.Duration { 420 if x != nil { 421 return x.MaxAge 422 } 423 return nil 424} 425 426func (x *RouteLookupConfig) GetStaleAge() *duration.Duration { 427 if x != nil { 428 return x.StaleAge 429 } 430 return nil 431} 432 433func (x *RouteLookupConfig) GetCacheSizeBytes() int64 { 434 if x != nil { 435 return x.CacheSizeBytes 436 } 437 return 0 438} 439 440func (x *RouteLookupConfig) GetValidTargets() []string { 441 if x != nil { 442 return x.ValidTargets 443 } 444 return nil 445} 446 447func (x *RouteLookupConfig) GetDefaultTarget() string { 448 if x != nil { 449 return x.DefaultTarget 450 } 451 return "" 452} 453 454// To match, one of the given Name fields must match; the service and method 455// fields are specified as fixed strings. The service name is required and 456// includes the proto package name. The method name may be omitted, in 457// which case any method on the given service is matched. 458type GrpcKeyBuilder_Name struct { 459 state protoimpl.MessageState 460 sizeCache protoimpl.SizeCache 461 unknownFields protoimpl.UnknownFields 462 463 Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"` 464 Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"` 465} 466 467func (x *GrpcKeyBuilder_Name) Reset() { 468 *x = GrpcKeyBuilder_Name{} 469 if protoimpl.UnsafeEnabled { 470 mi := &file_grpc_lookup_v1_rls_config_proto_msgTypes[4] 471 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 472 ms.StoreMessageInfo(mi) 473 } 474} 475 476func (x *GrpcKeyBuilder_Name) String() string { 477 return protoimpl.X.MessageStringOf(x) 478} 479 480func (*GrpcKeyBuilder_Name) ProtoMessage() {} 481 482func (x *GrpcKeyBuilder_Name) ProtoReflect() protoreflect.Message { 483 mi := &file_grpc_lookup_v1_rls_config_proto_msgTypes[4] 484 if protoimpl.UnsafeEnabled && x != nil { 485 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 486 if ms.LoadMessageInfo() == nil { 487 ms.StoreMessageInfo(mi) 488 } 489 return ms 490 } 491 return mi.MessageOf(x) 492} 493 494// Deprecated: Use GrpcKeyBuilder_Name.ProtoReflect.Descriptor instead. 495func (*GrpcKeyBuilder_Name) Descriptor() ([]byte, []int) { 496 return file_grpc_lookup_v1_rls_config_proto_rawDescGZIP(), []int{1, 0} 497} 498 499func (x *GrpcKeyBuilder_Name) GetService() string { 500 if x != nil { 501 return x.Service 502 } 503 return "" 504} 505 506func (x *GrpcKeyBuilder_Name) GetMethod() string { 507 if x != nil { 508 return x.Method 509 } 510 return "" 511} 512 513var File_grpc_lookup_v1_rls_config_proto protoreflect.FileDescriptor 514 515var file_grpc_lookup_v1_rls_config_proto_rawDesc = []byte{ 516 0x0a, 0x1f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x2f, 0x76, 0x31, 517 0x2f, 0x72, 0x6c, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 518 0x6f, 0x12, 0x0e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x2e, 0x76, 519 0x31, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 520 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 521 0x6f, 0x22, 0x5c, 0x0a, 0x0b, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 522 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 523 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 524 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 525 0x69, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 526 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x22, 527 0xbc, 0x01, 0x0a, 0x0e, 0x47, 0x72, 0x70, 0x63, 0x4b, 0x65, 0x79, 0x42, 0x75, 0x69, 0x6c, 0x64, 528 0x65, 0x72, 0x12, 0x39, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 529 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x2e, 530 0x76, 0x31, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x4b, 0x65, 0x79, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 531 0x72, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x35, 0x0a, 532 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 533 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 534 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x52, 0x07, 0x68, 0x65, 0x61, 535 0x64, 0x65, 0x72, 0x73, 0x1a, 0x38, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 536 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 537 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 538 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0xd9, 539 0x01, 0x0a, 0x0e, 0x48, 0x74, 0x74, 0x70, 0x4b, 0x65, 0x79, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 540 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 541 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x6f, 0x73, 0x74, 0x50, 0x61, 542 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x70, 543 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x70, 544 0x61, 0x74, 0x68, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x10, 0x71, 545 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 546 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x6c, 0x6f, 0x6f, 547 0x6b, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 548 0x65, 0x72, 0x52, 0x0f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 549 0x65, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x04, 550 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x6c, 0x6f, 0x6f, 0x6b, 551 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 552 0x72, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x22, 0xa6, 0x04, 0x0a, 0x11, 0x52, 553 0x6f, 0x75, 0x74, 0x65, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 554 0x12, 0x49, 0x0a, 0x10, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x62, 0x75, 0x69, 0x6c, 555 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x72, 0x70, 556 0x63, 0x2e, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x74, 0x74, 0x70, 557 0x4b, 0x65, 0x79, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x52, 0x0f, 0x68, 0x74, 0x74, 0x70, 558 0x4b, 0x65, 0x79, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x12, 0x49, 0x0a, 0x10, 0x67, 559 0x72, 0x70, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x18, 560 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x6c, 0x6f, 0x6f, 561 0x6b, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x4b, 0x65, 0x79, 0x42, 0x75, 562 0x69, 0x6c, 0x64, 0x65, 0x72, 0x52, 0x0f, 0x67, 0x72, 0x70, 0x63, 0x4b, 0x65, 0x79, 0x62, 0x75, 563 0x69, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 564 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 565 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4f, 0x0a, 566 0x16, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 567 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 568 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 569 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 570 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x32, 571 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 572 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 573 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x41, 574 0x67, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x5f, 0x61, 0x67, 0x65, 0x18, 575 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 576 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 577 0x52, 0x08, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x41, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x61, 578 0x63, 0x68, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 579 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x63, 0x61, 0x63, 0x68, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x42, 580 0x79, 0x74, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x74, 0x61, 581 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x61, 0x6c, 582 0x69, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x66, 583 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 584 0x09, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 585 0x4a, 0x04, 0x08, 0x0a, 0x10, 0x0b, 0x52, 0x1b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 586 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 587 0x65, 0x67, 0x79, 0x42, 0x53, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x6c, 588 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x52, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 589 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 590 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x72, 591 0x70, 0x63, 0x2f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x6c, 592 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 593} 594 595var ( 596 file_grpc_lookup_v1_rls_config_proto_rawDescOnce sync.Once 597 file_grpc_lookup_v1_rls_config_proto_rawDescData = file_grpc_lookup_v1_rls_config_proto_rawDesc 598) 599 600func file_grpc_lookup_v1_rls_config_proto_rawDescGZIP() []byte { 601 file_grpc_lookup_v1_rls_config_proto_rawDescOnce.Do(func() { 602 file_grpc_lookup_v1_rls_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_grpc_lookup_v1_rls_config_proto_rawDescData) 603 }) 604 return file_grpc_lookup_v1_rls_config_proto_rawDescData 605} 606 607var file_grpc_lookup_v1_rls_config_proto_msgTypes = make([]protoimpl.MessageInfo, 5) 608var file_grpc_lookup_v1_rls_config_proto_goTypes = []interface{}{ 609 (*NameMatcher)(nil), // 0: grpc.lookup.v1.NameMatcher 610 (*GrpcKeyBuilder)(nil), // 1: grpc.lookup.v1.GrpcKeyBuilder 611 (*HttpKeyBuilder)(nil), // 2: grpc.lookup.v1.HttpKeyBuilder 612 (*RouteLookupConfig)(nil), // 3: grpc.lookup.v1.RouteLookupConfig 613 (*GrpcKeyBuilder_Name)(nil), // 4: grpc.lookup.v1.GrpcKeyBuilder.Name 614 (*duration.Duration)(nil), // 5: google.protobuf.Duration 615} 616var file_grpc_lookup_v1_rls_config_proto_depIdxs = []int32{ 617 4, // 0: grpc.lookup.v1.GrpcKeyBuilder.names:type_name -> grpc.lookup.v1.GrpcKeyBuilder.Name 618 0, // 1: grpc.lookup.v1.GrpcKeyBuilder.headers:type_name -> grpc.lookup.v1.NameMatcher 619 0, // 2: grpc.lookup.v1.HttpKeyBuilder.query_parameters:type_name -> grpc.lookup.v1.NameMatcher 620 0, // 3: grpc.lookup.v1.HttpKeyBuilder.headers:type_name -> grpc.lookup.v1.NameMatcher 621 2, // 4: grpc.lookup.v1.RouteLookupConfig.http_keybuilders:type_name -> grpc.lookup.v1.HttpKeyBuilder 622 1, // 5: grpc.lookup.v1.RouteLookupConfig.grpc_keybuilders:type_name -> grpc.lookup.v1.GrpcKeyBuilder 623 5, // 6: grpc.lookup.v1.RouteLookupConfig.lookup_service_timeout:type_name -> google.protobuf.Duration 624 5, // 7: grpc.lookup.v1.RouteLookupConfig.max_age:type_name -> google.protobuf.Duration 625 5, // 8: grpc.lookup.v1.RouteLookupConfig.stale_age:type_name -> google.protobuf.Duration 626 9, // [9:9] is the sub-list for method output_type 627 9, // [9:9] is the sub-list for method input_type 628 9, // [9:9] is the sub-list for extension type_name 629 9, // [9:9] is the sub-list for extension extendee 630 0, // [0:9] is the sub-list for field type_name 631} 632 633func init() { file_grpc_lookup_v1_rls_config_proto_init() } 634func file_grpc_lookup_v1_rls_config_proto_init() { 635 if File_grpc_lookup_v1_rls_config_proto != nil { 636 return 637 } 638 if !protoimpl.UnsafeEnabled { 639 file_grpc_lookup_v1_rls_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 640 switch v := v.(*NameMatcher); i { 641 case 0: 642 return &v.state 643 case 1: 644 return &v.sizeCache 645 case 2: 646 return &v.unknownFields 647 default: 648 return nil 649 } 650 } 651 file_grpc_lookup_v1_rls_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 652 switch v := v.(*GrpcKeyBuilder); i { 653 case 0: 654 return &v.state 655 case 1: 656 return &v.sizeCache 657 case 2: 658 return &v.unknownFields 659 default: 660 return nil 661 } 662 } 663 file_grpc_lookup_v1_rls_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 664 switch v := v.(*HttpKeyBuilder); i { 665 case 0: 666 return &v.state 667 case 1: 668 return &v.sizeCache 669 case 2: 670 return &v.unknownFields 671 default: 672 return nil 673 } 674 } 675 file_grpc_lookup_v1_rls_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 676 switch v := v.(*RouteLookupConfig); i { 677 case 0: 678 return &v.state 679 case 1: 680 return &v.sizeCache 681 case 2: 682 return &v.unknownFields 683 default: 684 return nil 685 } 686 } 687 file_grpc_lookup_v1_rls_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 688 switch v := v.(*GrpcKeyBuilder_Name); i { 689 case 0: 690 return &v.state 691 case 1: 692 return &v.sizeCache 693 case 2: 694 return &v.unknownFields 695 default: 696 return nil 697 } 698 } 699 } 700 type x struct{} 701 out := protoimpl.TypeBuilder{ 702 File: protoimpl.DescBuilder{ 703 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 704 RawDescriptor: file_grpc_lookup_v1_rls_config_proto_rawDesc, 705 NumEnums: 0, 706 NumMessages: 5, 707 NumExtensions: 0, 708 NumServices: 0, 709 }, 710 GoTypes: file_grpc_lookup_v1_rls_config_proto_goTypes, 711 DependencyIndexes: file_grpc_lookup_v1_rls_config_proto_depIdxs, 712 MessageInfos: file_grpc_lookup_v1_rls_config_proto_msgTypes, 713 }.Build() 714 File_grpc_lookup_v1_rls_config_proto = out.File 715 file_grpc_lookup_v1_rls_config_proto_rawDesc = nil 716 file_grpc_lookup_v1_rls_config_proto_goTypes = nil 717 file_grpc_lookup_v1_rls_config_proto_depIdxs = nil 718} 719