github.com/99designs/gqlgen@v0.17.45/graphql/handler/apollofederatedtracingv1/generated/apollo_trace.pb.go (about) 1 // Code generated by protoc-gen-go. DO NOT EDIT. 2 // versions: 3 // protoc-gen-go v1.28.0 4 // protoc v3.19.4 5 // source: apollo_trace.proto 6 7 package generated 8 9 import ( 10 reflect "reflect" 11 sync "sync" 12 13 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 14 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 15 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 16 ) 17 18 const ( 19 // Verify that this generated code is sufficiently up-to-date. 20 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 21 // Verify that runtime/protoimpl is sufficiently up-to-date. 22 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 23 ) 24 25 type Trace_CachePolicy_Scope int32 26 27 const ( 28 Trace_CachePolicy_UNKNOWN Trace_CachePolicy_Scope = 0 29 Trace_CachePolicy_PUBLIC Trace_CachePolicy_Scope = 1 30 Trace_CachePolicy_PRIVATE Trace_CachePolicy_Scope = 2 31 ) 32 33 // Enum value maps for Trace_CachePolicy_Scope. 34 var ( 35 Trace_CachePolicy_Scope_name = map[int32]string{ 36 0: "UNKNOWN", 37 1: "PUBLIC", 38 2: "PRIVATE", 39 } 40 Trace_CachePolicy_Scope_value = map[string]int32{ 41 "UNKNOWN": 0, 42 "PUBLIC": 1, 43 "PRIVATE": 2, 44 } 45 ) 46 47 func (x Trace_CachePolicy_Scope) Enum() *Trace_CachePolicy_Scope { 48 p := new(Trace_CachePolicy_Scope) 49 *p = x 50 return p 51 } 52 53 func (x Trace_CachePolicy_Scope) String() string { 54 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 55 } 56 57 func (Trace_CachePolicy_Scope) Descriptor() protoreflect.EnumDescriptor { 58 return file_apollo_trace_proto_enumTypes[0].Descriptor() 59 } 60 61 func (Trace_CachePolicy_Scope) Type() protoreflect.EnumType { 62 return &file_apollo_trace_proto_enumTypes[0] 63 } 64 65 func (x Trace_CachePolicy_Scope) Number() protoreflect.EnumNumber { 66 return protoreflect.EnumNumber(x) 67 } 68 69 // Deprecated: Use Trace_CachePolicy_Scope.Descriptor instead. 70 func (Trace_CachePolicy_Scope) EnumDescriptor() ([]byte, []int) { 71 return file_apollo_trace_proto_rawDescGZIP(), []int{0, 0, 0} 72 } 73 74 type Trace_HTTP_Method int32 75 76 const ( 77 Trace_HTTP_UNKNOWN Trace_HTTP_Method = 0 78 Trace_HTTP_OPTIONS Trace_HTTP_Method = 1 79 Trace_HTTP_GET Trace_HTTP_Method = 2 80 Trace_HTTP_HEAD Trace_HTTP_Method = 3 81 Trace_HTTP_POST Trace_HTTP_Method = 4 82 Trace_HTTP_PUT Trace_HTTP_Method = 5 83 Trace_HTTP_DELETE Trace_HTTP_Method = 6 84 Trace_HTTP_TRACE Trace_HTTP_Method = 7 85 Trace_HTTP_CONNECT Trace_HTTP_Method = 8 86 Trace_HTTP_PATCH Trace_HTTP_Method = 9 87 ) 88 89 // Enum value maps for Trace_HTTP_Method. 90 var ( 91 Trace_HTTP_Method_name = map[int32]string{ 92 0: "UNKNOWN", 93 1: "OPTIONS", 94 2: "GET", 95 3: "HEAD", 96 4: "POST", 97 5: "PUT", 98 6: "DELETE", 99 7: "TRACE", 100 8: "CONNECT", 101 9: "PATCH", 102 } 103 Trace_HTTP_Method_value = map[string]int32{ 104 "UNKNOWN": 0, 105 "OPTIONS": 1, 106 "GET": 2, 107 "HEAD": 3, 108 "POST": 4, 109 "PUT": 5, 110 "DELETE": 6, 111 "TRACE": 7, 112 "CONNECT": 8, 113 "PATCH": 9, 114 } 115 ) 116 117 func (x Trace_HTTP_Method) Enum() *Trace_HTTP_Method { 118 p := new(Trace_HTTP_Method) 119 *p = x 120 return p 121 } 122 123 func (x Trace_HTTP_Method) String() string { 124 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 125 } 126 127 func (Trace_HTTP_Method) Descriptor() protoreflect.EnumDescriptor { 128 return file_apollo_trace_proto_enumTypes[1].Descriptor() 129 } 130 131 func (Trace_HTTP_Method) Type() protoreflect.EnumType { 132 return &file_apollo_trace_proto_enumTypes[1] 133 } 134 135 func (x Trace_HTTP_Method) Number() protoreflect.EnumNumber { 136 return protoreflect.EnumNumber(x) 137 } 138 139 // Deprecated: Use Trace_HTTP_Method.Descriptor instead. 140 func (Trace_HTTP_Method) EnumDescriptor() ([]byte, []int) { 141 return file_apollo_trace_proto_rawDescGZIP(), []int{0, 3, 0} 142 } 143 144 type Trace struct { 145 state protoimpl.MessageState 146 sizeCache protoimpl.SizeCache 147 unknownFields protoimpl.UnknownFields 148 149 // Wallclock time when the trace began. 150 StartTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // required 151 // Wallclock time when the trace ended. 152 EndTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // required 153 // High precision duration of the trace; may not equal end_time-start_time 154 // (eg, if your machine's clock changed during the trace). 155 DurationNs uint64 `protobuf:"varint,11,opt,name=duration_ns,json=durationNs,proto3" json:"duration_ns,omitempty"` // required 156 // A tree containing information about all resolvers run directly by this 157 // service, including errors. 158 Root *Trace_Node `protobuf:"bytes,14,opt,name=root,proto3" json:"root,omitempty"` 159 // In addition to details.raw_query, we include a "signature" of the query, 160 // which can be normalized: for example, you may want to discard aliases, drop 161 // unused operations and fragments, sort fields, etc. The most important thing 162 // here is that the signature match the signature in StatsReports. In 163 // StatsReports signatures show up as the key in the per_query map (with the 164 // operation name prepended). The signature should be a valid GraphQL query. 165 // All traces must have a signature; if this Trace is in a FullTracesReport 166 // that signature is in the key of traces_per_query rather than in this field. 167 // Engineproxy provides the signature in legacy_signature_needs_resigning 168 // instead. 169 Signature string `protobuf:"bytes,19,opt,name=signature,proto3" json:"signature,omitempty"` 170 // Optional: when GraphQL parsing or validation against the GraphQL schema fails, these fields 171 // can include reference to the operation being sent for users to dig into the set of operations 172 // that are failing validation. 173 UnexecutedOperationBody string `protobuf:"bytes,27,opt,name=unexecutedOperationBody,proto3" json:"unexecutedOperationBody,omitempty"` 174 UnexecutedOperationName string `protobuf:"bytes,28,opt,name=unexecutedOperationName,proto3" json:"unexecutedOperationName,omitempty"` 175 Details *Trace_Details `protobuf:"bytes,6,opt,name=details,proto3" json:"details,omitempty"` 176 ClientName string `protobuf:"bytes,7,opt,name=client_name,json=clientName,proto3" json:"client_name,omitempty"` 177 ClientVersion string `protobuf:"bytes,8,opt,name=client_version,json=clientVersion,proto3" json:"client_version,omitempty"` 178 Http *Trace_HTTP `protobuf:"bytes,10,opt,name=http,proto3" json:"http,omitempty"` 179 CachePolicy *Trace_CachePolicy `protobuf:"bytes,18,opt,name=cache_policy,json=cachePolicy,proto3" json:"cache_policy,omitempty"` 180 // If this Trace was created by a gateway, this is the query plan, including 181 // sub-Traces for federated services. Note that the 'root' tree on the 182 // top-level Trace won't contain any resolvers (though it could contain errors 183 // that occurred in the gateway itself). 184 QueryPlan *Trace_QueryPlanNode `protobuf:"bytes,26,opt,name=query_plan,json=queryPlan,proto3" json:"query_plan,omitempty"` 185 // Was this response served from a full query response cache? (In that case 186 // the node tree will have no resolvers.) 187 FullQueryCacheHit bool `protobuf:"varint,20,opt,name=full_query_cache_hit,json=fullQueryCacheHit,proto3" json:"full_query_cache_hit,omitempty"` 188 // Was this query specified successfully as a persisted query hash? 189 PersistedQueryHit bool `protobuf:"varint,21,opt,name=persisted_query_hit,json=persistedQueryHit,proto3" json:"persisted_query_hit,omitempty"` 190 // Did this query contain both a full query string and a persisted query hash? 191 // (This typically means that a previous request was rejected as an unknown 192 // persisted query.) 193 PersistedQueryRegister bool `protobuf:"varint,22,opt,name=persisted_query_register,json=persistedQueryRegister,proto3" json:"persisted_query_register,omitempty"` 194 // Was this operation registered and a part of the safelist? 195 RegisteredOperation bool `protobuf:"varint,24,opt,name=registered_operation,json=registeredOperation,proto3" json:"registered_operation,omitempty"` 196 // Was this operation forbidden due to lack of safelisting? 197 ForbiddenOperation bool `protobuf:"varint,25,opt,name=forbidden_operation,json=forbiddenOperation,proto3" json:"forbidden_operation,omitempty"` 198 // Some servers don't do field-level instrumentation for every request and assign 199 // each request a "weight" for each request that they do instrument. When this 200 // trace is aggregated into field usage stats, it should count as this value 201 // towards the estimated_execution_count rather than just 1. This value should 202 // typically be at least 1. 203 // 204 // 0 is treated as 1 for backwards compatibility. 205 FieldExecutionWeight float64 `protobuf:"fixed64,31,opt,name=field_execution_weight,json=fieldExecutionWeight,proto3" json:"field_execution_weight,omitempty"` 206 } 207 208 func (x *Trace) Reset() { 209 *x = Trace{} 210 if protoimpl.UnsafeEnabled { 211 mi := &file_apollo_trace_proto_msgTypes[0] 212 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 213 ms.StoreMessageInfo(mi) 214 } 215 } 216 217 func (x *Trace) String() string { 218 return protoimpl.X.MessageStringOf(x) 219 } 220 221 func (*Trace) ProtoMessage() {} 222 223 func (x *Trace) ProtoReflect() protoreflect.Message { 224 mi := &file_apollo_trace_proto_msgTypes[0] 225 if protoimpl.UnsafeEnabled && x != nil { 226 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 227 if ms.LoadMessageInfo() == nil { 228 ms.StoreMessageInfo(mi) 229 } 230 return ms 231 } 232 return mi.MessageOf(x) 233 } 234 235 // Deprecated: Use Trace.ProtoReflect.Descriptor instead. 236 func (*Trace) Descriptor() ([]byte, []int) { 237 return file_apollo_trace_proto_rawDescGZIP(), []int{0} 238 } 239 240 func (x *Trace) GetStartTime() *timestamppb.Timestamp { 241 if x != nil { 242 return x.StartTime 243 } 244 return nil 245 } 246 247 func (x *Trace) GetEndTime() *timestamppb.Timestamp { 248 if x != nil { 249 return x.EndTime 250 } 251 return nil 252 } 253 254 func (x *Trace) GetDurationNs() uint64 { 255 if x != nil { 256 return x.DurationNs 257 } 258 return 0 259 } 260 261 func (x *Trace) GetRoot() *Trace_Node { 262 if x != nil { 263 return x.Root 264 } 265 return nil 266 } 267 268 func (x *Trace) GetSignature() string { 269 if x != nil { 270 return x.Signature 271 } 272 return "" 273 } 274 275 func (x *Trace) GetUnexecutedOperationBody() string { 276 if x != nil { 277 return x.UnexecutedOperationBody 278 } 279 return "" 280 } 281 282 func (x *Trace) GetUnexecutedOperationName() string { 283 if x != nil { 284 return x.UnexecutedOperationName 285 } 286 return "" 287 } 288 289 func (x *Trace) GetDetails() *Trace_Details { 290 if x != nil { 291 return x.Details 292 } 293 return nil 294 } 295 296 func (x *Trace) GetClientName() string { 297 if x != nil { 298 return x.ClientName 299 } 300 return "" 301 } 302 303 func (x *Trace) GetClientVersion() string { 304 if x != nil { 305 return x.ClientVersion 306 } 307 return "" 308 } 309 310 func (x *Trace) GetHttp() *Trace_HTTP { 311 if x != nil { 312 return x.Http 313 } 314 return nil 315 } 316 317 func (x *Trace) GetCachePolicy() *Trace_CachePolicy { 318 if x != nil { 319 return x.CachePolicy 320 } 321 return nil 322 } 323 324 func (x *Trace) GetQueryPlan() *Trace_QueryPlanNode { 325 if x != nil { 326 return x.QueryPlan 327 } 328 return nil 329 } 330 331 func (x *Trace) GetFullQueryCacheHit() bool { 332 if x != nil { 333 return x.FullQueryCacheHit 334 } 335 return false 336 } 337 338 func (x *Trace) GetPersistedQueryHit() bool { 339 if x != nil { 340 return x.PersistedQueryHit 341 } 342 return false 343 } 344 345 func (x *Trace) GetPersistedQueryRegister() bool { 346 if x != nil { 347 return x.PersistedQueryRegister 348 } 349 return false 350 } 351 352 func (x *Trace) GetRegisteredOperation() bool { 353 if x != nil { 354 return x.RegisteredOperation 355 } 356 return false 357 } 358 359 func (x *Trace) GetForbiddenOperation() bool { 360 if x != nil { 361 return x.ForbiddenOperation 362 } 363 return false 364 } 365 366 func (x *Trace) GetFieldExecutionWeight() float64 { 367 if x != nil { 368 return x.FieldExecutionWeight 369 } 370 return 0 371 } 372 373 // The `service` value embedded within the header key is not guaranteed to contain an actual service, 374 // and, in most cases, the service information is trusted to come from upstream processing. If the 375 // service _is_ specified in this header, then it is checked to match the context that is reporting it. 376 // Otherwise, the service information is deduced from the token context of the reporter and then sent 377 // along via other mechanisms (in Kafka, the `ReportKafkaKey). The other information (hostname, 378 // agent_version, etc.) is sent by the Apollo Engine Reporting agent, but we do not currently save that 379 // information to any of our persistent storage. 380 type ReportHeader struct { 381 state protoimpl.MessageState 382 sizeCache protoimpl.SizeCache 383 unknownFields protoimpl.UnknownFields 384 385 // eg "mygraph@myvariant" 386 GraphRef string `protobuf:"bytes,12,opt,name=graph_ref,json=graphRef,proto3" json:"graph_ref,omitempty"` 387 // eg "host-01.example.com" 388 Hostname string `protobuf:"bytes,5,opt,name=hostname,proto3" json:"hostname,omitempty"` 389 // eg "engineproxy 0.1.0" 390 AgentVersion string `protobuf:"bytes,6,opt,name=agent_version,json=agentVersion,proto3" json:"agent_version,omitempty"` // required 391 // eg "prod-4279-20160804T065423Z-5-g3cf0aa8" (taken from `git describe --tags`) 392 ServiceVersion string `protobuf:"bytes,7,opt,name=service_version,json=serviceVersion,proto3" json:"service_version,omitempty"` 393 // eg "node v4.6.0" 394 RuntimeVersion string `protobuf:"bytes,8,opt,name=runtime_version,json=runtimeVersion,proto3" json:"runtime_version,omitempty"` 395 // eg "Linux box 4.6.5-1-ec2 #1 SMP Mon Aug 1 02:31:38 PDT 2016 x86_64 GNU/Linux" 396 Uname string `protobuf:"bytes,9,opt,name=uname,proto3" json:"uname,omitempty"` 397 // An id that is used to represent the schema to Apollo Graph Manager 398 // Using this in place of what used to be schema_hash, since that is no longer 399 // attached to a schema in the backend. 400 ExecutableSchemaId string `protobuf:"bytes,11,opt,name=executable_schema_id,json=executableSchemaId,proto3" json:"executable_schema_id,omitempty"` 401 } 402 403 func (x *ReportHeader) Reset() { 404 *x = ReportHeader{} 405 if protoimpl.UnsafeEnabled { 406 mi := &file_apollo_trace_proto_msgTypes[1] 407 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 408 ms.StoreMessageInfo(mi) 409 } 410 } 411 412 func (x *ReportHeader) String() string { 413 return protoimpl.X.MessageStringOf(x) 414 } 415 416 func (*ReportHeader) ProtoMessage() {} 417 418 func (x *ReportHeader) ProtoReflect() protoreflect.Message { 419 mi := &file_apollo_trace_proto_msgTypes[1] 420 if protoimpl.UnsafeEnabled && x != nil { 421 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 422 if ms.LoadMessageInfo() == nil { 423 ms.StoreMessageInfo(mi) 424 } 425 return ms 426 } 427 return mi.MessageOf(x) 428 } 429 430 // Deprecated: Use ReportHeader.ProtoReflect.Descriptor instead. 431 func (*ReportHeader) Descriptor() ([]byte, []int) { 432 return file_apollo_trace_proto_rawDescGZIP(), []int{1} 433 } 434 435 func (x *ReportHeader) GetGraphRef() string { 436 if x != nil { 437 return x.GraphRef 438 } 439 return "" 440 } 441 442 func (x *ReportHeader) GetHostname() string { 443 if x != nil { 444 return x.Hostname 445 } 446 return "" 447 } 448 449 func (x *ReportHeader) GetAgentVersion() string { 450 if x != nil { 451 return x.AgentVersion 452 } 453 return "" 454 } 455 456 func (x *ReportHeader) GetServiceVersion() string { 457 if x != nil { 458 return x.ServiceVersion 459 } 460 return "" 461 } 462 463 func (x *ReportHeader) GetRuntimeVersion() string { 464 if x != nil { 465 return x.RuntimeVersion 466 } 467 return "" 468 } 469 470 func (x *ReportHeader) GetUname() string { 471 if x != nil { 472 return x.Uname 473 } 474 return "" 475 } 476 477 func (x *ReportHeader) GetExecutableSchemaId() string { 478 if x != nil { 479 return x.ExecutableSchemaId 480 } 481 return "" 482 } 483 484 type PathErrorStats struct { 485 state protoimpl.MessageState 486 sizeCache protoimpl.SizeCache 487 unknownFields protoimpl.UnknownFields 488 489 Children map[string]*PathErrorStats `protobuf:"bytes,1,rep,name=children,proto3" json:"children,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 490 ErrorsCount uint64 `protobuf:"varint,4,opt,name=errors_count,json=errorsCount,proto3" json:"errors_count,omitempty"` 491 RequestsWithErrorsCount uint64 `protobuf:"varint,5,opt,name=requests_with_errors_count,json=requestsWithErrorsCount,proto3" json:"requests_with_errors_count,omitempty"` 492 } 493 494 func (x *PathErrorStats) Reset() { 495 *x = PathErrorStats{} 496 if protoimpl.UnsafeEnabled { 497 mi := &file_apollo_trace_proto_msgTypes[2] 498 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 499 ms.StoreMessageInfo(mi) 500 } 501 } 502 503 func (x *PathErrorStats) String() string { 504 return protoimpl.X.MessageStringOf(x) 505 } 506 507 func (*PathErrorStats) ProtoMessage() {} 508 509 func (x *PathErrorStats) ProtoReflect() protoreflect.Message { 510 mi := &file_apollo_trace_proto_msgTypes[2] 511 if protoimpl.UnsafeEnabled && x != nil { 512 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 513 if ms.LoadMessageInfo() == nil { 514 ms.StoreMessageInfo(mi) 515 } 516 return ms 517 } 518 return mi.MessageOf(x) 519 } 520 521 // Deprecated: Use PathErrorStats.ProtoReflect.Descriptor instead. 522 func (*PathErrorStats) Descriptor() ([]byte, []int) { 523 return file_apollo_trace_proto_rawDescGZIP(), []int{2} 524 } 525 526 func (x *PathErrorStats) GetChildren() map[string]*PathErrorStats { 527 if x != nil { 528 return x.Children 529 } 530 return nil 531 } 532 533 func (x *PathErrorStats) GetErrorsCount() uint64 { 534 if x != nil { 535 return x.ErrorsCount 536 } 537 return 0 538 } 539 540 func (x *PathErrorStats) GetRequestsWithErrorsCount() uint64 { 541 if x != nil { 542 return x.RequestsWithErrorsCount 543 } 544 return 0 545 } 546 547 type QueryLatencyStats struct { 548 state protoimpl.MessageState 549 sizeCache protoimpl.SizeCache 550 unknownFields protoimpl.UnknownFields 551 552 LatencyCount []int64 `protobuf:"zigzag64,13,rep,packed,name=latency_count,json=latencyCount,proto3" json:"latency_count,omitempty"` 553 RequestCount uint64 `protobuf:"varint,2,opt,name=request_count,json=requestCount,proto3" json:"request_count,omitempty"` 554 CacheHits uint64 `protobuf:"varint,3,opt,name=cache_hits,json=cacheHits,proto3" json:"cache_hits,omitempty"` 555 PersistedQueryHits uint64 `protobuf:"varint,4,opt,name=persisted_query_hits,json=persistedQueryHits,proto3" json:"persisted_query_hits,omitempty"` 556 PersistedQueryMisses uint64 `protobuf:"varint,5,opt,name=persisted_query_misses,json=persistedQueryMisses,proto3" json:"persisted_query_misses,omitempty"` 557 CacheLatencyCount []int64 `protobuf:"zigzag64,14,rep,packed,name=cache_latency_count,json=cacheLatencyCount,proto3" json:"cache_latency_count,omitempty"` 558 RootErrorStats *PathErrorStats `protobuf:"bytes,7,opt,name=root_error_stats,json=rootErrorStats,proto3" json:"root_error_stats,omitempty"` 559 RequestsWithErrorsCount uint64 `protobuf:"varint,8,opt,name=requests_with_errors_count,json=requestsWithErrorsCount,proto3" json:"requests_with_errors_count,omitempty"` 560 PublicCacheTtlCount []int64 `protobuf:"zigzag64,15,rep,packed,name=public_cache_ttl_count,json=publicCacheTtlCount,proto3" json:"public_cache_ttl_count,omitempty"` 561 PrivateCacheTtlCount []int64 `protobuf:"zigzag64,16,rep,packed,name=private_cache_ttl_count,json=privateCacheTtlCount,proto3" json:"private_cache_ttl_count,omitempty"` 562 RegisteredOperationCount uint64 `protobuf:"varint,11,opt,name=registered_operation_count,json=registeredOperationCount,proto3" json:"registered_operation_count,omitempty"` 563 ForbiddenOperationCount uint64 `protobuf:"varint,12,opt,name=forbidden_operation_count,json=forbiddenOperationCount,proto3" json:"forbidden_operation_count,omitempty"` 564 // The number of requests that were executed without field-level 565 // instrumentation (and thus do not contribute to `observed_execution_count` 566 // fields on this message's cousin-twice-removed FieldStats). 567 RequestsWithoutFieldInstrumentation uint64 `protobuf:"varint,17,opt,name=requests_without_field_instrumentation,json=requestsWithoutFieldInstrumentation,proto3" json:"requests_without_field_instrumentation,omitempty"` 568 } 569 570 func (x *QueryLatencyStats) Reset() { 571 *x = QueryLatencyStats{} 572 if protoimpl.UnsafeEnabled { 573 mi := &file_apollo_trace_proto_msgTypes[3] 574 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 575 ms.StoreMessageInfo(mi) 576 } 577 } 578 579 func (x *QueryLatencyStats) String() string { 580 return protoimpl.X.MessageStringOf(x) 581 } 582 583 func (*QueryLatencyStats) ProtoMessage() {} 584 585 func (x *QueryLatencyStats) ProtoReflect() protoreflect.Message { 586 mi := &file_apollo_trace_proto_msgTypes[3] 587 if protoimpl.UnsafeEnabled && x != nil { 588 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 589 if ms.LoadMessageInfo() == nil { 590 ms.StoreMessageInfo(mi) 591 } 592 return ms 593 } 594 return mi.MessageOf(x) 595 } 596 597 // Deprecated: Use QueryLatencyStats.ProtoReflect.Descriptor instead. 598 func (*QueryLatencyStats) Descriptor() ([]byte, []int) { 599 return file_apollo_trace_proto_rawDescGZIP(), []int{3} 600 } 601 602 func (x *QueryLatencyStats) GetLatencyCount() []int64 { 603 if x != nil { 604 return x.LatencyCount 605 } 606 return nil 607 } 608 609 func (x *QueryLatencyStats) GetRequestCount() uint64 { 610 if x != nil { 611 return x.RequestCount 612 } 613 return 0 614 } 615 616 func (x *QueryLatencyStats) GetCacheHits() uint64 { 617 if x != nil { 618 return x.CacheHits 619 } 620 return 0 621 } 622 623 func (x *QueryLatencyStats) GetPersistedQueryHits() uint64 { 624 if x != nil { 625 return x.PersistedQueryHits 626 } 627 return 0 628 } 629 630 func (x *QueryLatencyStats) GetPersistedQueryMisses() uint64 { 631 if x != nil { 632 return x.PersistedQueryMisses 633 } 634 return 0 635 } 636 637 func (x *QueryLatencyStats) GetCacheLatencyCount() []int64 { 638 if x != nil { 639 return x.CacheLatencyCount 640 } 641 return nil 642 } 643 644 func (x *QueryLatencyStats) GetRootErrorStats() *PathErrorStats { 645 if x != nil { 646 return x.RootErrorStats 647 } 648 return nil 649 } 650 651 func (x *QueryLatencyStats) GetRequestsWithErrorsCount() uint64 { 652 if x != nil { 653 return x.RequestsWithErrorsCount 654 } 655 return 0 656 } 657 658 func (x *QueryLatencyStats) GetPublicCacheTtlCount() []int64 { 659 if x != nil { 660 return x.PublicCacheTtlCount 661 } 662 return nil 663 } 664 665 func (x *QueryLatencyStats) GetPrivateCacheTtlCount() []int64 { 666 if x != nil { 667 return x.PrivateCacheTtlCount 668 } 669 return nil 670 } 671 672 func (x *QueryLatencyStats) GetRegisteredOperationCount() uint64 { 673 if x != nil { 674 return x.RegisteredOperationCount 675 } 676 return 0 677 } 678 679 func (x *QueryLatencyStats) GetForbiddenOperationCount() uint64 { 680 if x != nil { 681 return x.ForbiddenOperationCount 682 } 683 return 0 684 } 685 686 func (x *QueryLatencyStats) GetRequestsWithoutFieldInstrumentation() uint64 { 687 if x != nil { 688 return x.RequestsWithoutFieldInstrumentation 689 } 690 return 0 691 } 692 693 type StatsContext struct { 694 state protoimpl.MessageState 695 sizeCache protoimpl.SizeCache 696 unknownFields protoimpl.UnknownFields 697 698 ClientName string `protobuf:"bytes,2,opt,name=client_name,json=clientName,proto3" json:"client_name,omitempty"` 699 ClientVersion string `protobuf:"bytes,3,opt,name=client_version,json=clientVersion,proto3" json:"client_version,omitempty"` 700 } 701 702 func (x *StatsContext) Reset() { 703 *x = StatsContext{} 704 if protoimpl.UnsafeEnabled { 705 mi := &file_apollo_trace_proto_msgTypes[4] 706 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 707 ms.StoreMessageInfo(mi) 708 } 709 } 710 711 func (x *StatsContext) String() string { 712 return protoimpl.X.MessageStringOf(x) 713 } 714 715 func (*StatsContext) ProtoMessage() {} 716 717 func (x *StatsContext) ProtoReflect() protoreflect.Message { 718 mi := &file_apollo_trace_proto_msgTypes[4] 719 if protoimpl.UnsafeEnabled && x != nil { 720 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 721 if ms.LoadMessageInfo() == nil { 722 ms.StoreMessageInfo(mi) 723 } 724 return ms 725 } 726 return mi.MessageOf(x) 727 } 728 729 // Deprecated: Use StatsContext.ProtoReflect.Descriptor instead. 730 func (*StatsContext) Descriptor() ([]byte, []int) { 731 return file_apollo_trace_proto_rawDescGZIP(), []int{4} 732 } 733 734 func (x *StatsContext) GetClientName() string { 735 if x != nil { 736 return x.ClientName 737 } 738 return "" 739 } 740 741 func (x *StatsContext) GetClientVersion() string { 742 if x != nil { 743 return x.ClientVersion 744 } 745 return "" 746 } 747 748 type ContextualizedQueryLatencyStats struct { 749 state protoimpl.MessageState 750 sizeCache protoimpl.SizeCache 751 unknownFields protoimpl.UnknownFields 752 753 QueryLatencyStats *QueryLatencyStats `protobuf:"bytes,1,opt,name=query_latency_stats,json=queryLatencyStats,proto3" json:"query_latency_stats,omitempty"` 754 Context *StatsContext `protobuf:"bytes,2,opt,name=context,proto3" json:"context,omitempty"` 755 } 756 757 func (x *ContextualizedQueryLatencyStats) Reset() { 758 *x = ContextualizedQueryLatencyStats{} 759 if protoimpl.UnsafeEnabled { 760 mi := &file_apollo_trace_proto_msgTypes[5] 761 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 762 ms.StoreMessageInfo(mi) 763 } 764 } 765 766 func (x *ContextualizedQueryLatencyStats) String() string { 767 return protoimpl.X.MessageStringOf(x) 768 } 769 770 func (*ContextualizedQueryLatencyStats) ProtoMessage() {} 771 772 func (x *ContextualizedQueryLatencyStats) ProtoReflect() protoreflect.Message { 773 mi := &file_apollo_trace_proto_msgTypes[5] 774 if protoimpl.UnsafeEnabled && x != nil { 775 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 776 if ms.LoadMessageInfo() == nil { 777 ms.StoreMessageInfo(mi) 778 } 779 return ms 780 } 781 return mi.MessageOf(x) 782 } 783 784 // Deprecated: Use ContextualizedQueryLatencyStats.ProtoReflect.Descriptor instead. 785 func (*ContextualizedQueryLatencyStats) Descriptor() ([]byte, []int) { 786 return file_apollo_trace_proto_rawDescGZIP(), []int{5} 787 } 788 789 func (x *ContextualizedQueryLatencyStats) GetQueryLatencyStats() *QueryLatencyStats { 790 if x != nil { 791 return x.QueryLatencyStats 792 } 793 return nil 794 } 795 796 func (x *ContextualizedQueryLatencyStats) GetContext() *StatsContext { 797 if x != nil { 798 return x.Context 799 } 800 return nil 801 } 802 803 type ContextualizedTypeStats struct { 804 state protoimpl.MessageState 805 sizeCache protoimpl.SizeCache 806 unknownFields protoimpl.UnknownFields 807 808 Context *StatsContext `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` 809 PerTypeStat map[string]*TypeStat `protobuf:"bytes,2,rep,name=per_type_stat,json=perTypeStat,proto3" json:"per_type_stat,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 810 } 811 812 func (x *ContextualizedTypeStats) Reset() { 813 *x = ContextualizedTypeStats{} 814 if protoimpl.UnsafeEnabled { 815 mi := &file_apollo_trace_proto_msgTypes[6] 816 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 817 ms.StoreMessageInfo(mi) 818 } 819 } 820 821 func (x *ContextualizedTypeStats) String() string { 822 return protoimpl.X.MessageStringOf(x) 823 } 824 825 func (*ContextualizedTypeStats) ProtoMessage() {} 826 827 func (x *ContextualizedTypeStats) ProtoReflect() protoreflect.Message { 828 mi := &file_apollo_trace_proto_msgTypes[6] 829 if protoimpl.UnsafeEnabled && x != nil { 830 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 831 if ms.LoadMessageInfo() == nil { 832 ms.StoreMessageInfo(mi) 833 } 834 return ms 835 } 836 return mi.MessageOf(x) 837 } 838 839 // Deprecated: Use ContextualizedTypeStats.ProtoReflect.Descriptor instead. 840 func (*ContextualizedTypeStats) Descriptor() ([]byte, []int) { 841 return file_apollo_trace_proto_rawDescGZIP(), []int{6} 842 } 843 844 func (x *ContextualizedTypeStats) GetContext() *StatsContext { 845 if x != nil { 846 return x.Context 847 } 848 return nil 849 } 850 851 func (x *ContextualizedTypeStats) GetPerTypeStat() map[string]*TypeStat { 852 if x != nil { 853 return x.PerTypeStat 854 } 855 return nil 856 } 857 858 type FieldStat struct { 859 state protoimpl.MessageState 860 sizeCache protoimpl.SizeCache 861 unknownFields protoimpl.UnknownFields 862 863 ReturnType string `protobuf:"bytes,3,opt,name=return_type,json=returnType,proto3" json:"return_type,omitempty"` // required; eg "String!" for User.email:String! 864 // Number of errors whose path is this field. Note that we assume that error 865 // tracking does *not* require field-level instrumentation so this *will* 866 // include errors from requests that don't contribute to the 867 // `observed_execution_count` field (and does not need to be scaled by 868 // field_execution_weight). 869 ErrorsCount uint64 `protobuf:"varint,4,opt,name=errors_count,json=errorsCount,proto3" json:"errors_count,omitempty"` 870 // Number of times that the resolver for this field is directly observed being 871 // executed. 872 ObservedExecutionCount uint64 `protobuf:"varint,5,opt,name=observed_execution_count,json=observedExecutionCount,proto3" json:"observed_execution_count,omitempty"` 873 // Same as `count` but potentially scaled upwards if the server was only 874 // performing field-level instrumentation on a sampling of operations. For 875 // example, if the server randomly instruments 1% of requests for this 876 // operation, this number will be 100 times greater than 877 // `observed_execution_count`. (When aggregating a Trace into FieldStats, 878 // this number goes up by the trace's `field_execution_weight` for each 879 // observed field execution, while `observed_execution_count` above goes 880 // up by 1.) 881 EstimatedExecutionCount uint64 `protobuf:"varint,10,opt,name=estimated_execution_count,json=estimatedExecutionCount,proto3" json:"estimated_execution_count,omitempty"` 882 // Number of times the resolver for this field is executed that resulted in 883 // at least one error. "Request" is a misnomer here as this corresponds to 884 // resolver calls, not overall operations. Like `errors_count` above, this 885 // includes all requests rather than just requests with field-level 886 // instrumentation. 887 RequestsWithErrorsCount uint64 `protobuf:"varint,6,opt,name=requests_with_errors_count,json=requestsWithErrorsCount,proto3" json:"requests_with_errors_count,omitempty"` 888 // Duration histogram for the latency of this field. Note that it is scaled in 889 // the same way as estimated_execution_count so its "total count" might be 890 // greater than `observed_execution_count` and may not exactly equal 891 // `estimated_execution_count` due to rounding. 892 LatencyCount []int64 `protobuf:"zigzag64,9,rep,packed,name=latency_count,json=latencyCount,proto3" json:"latency_count,omitempty"` 893 } 894 895 func (x *FieldStat) Reset() { 896 *x = FieldStat{} 897 if protoimpl.UnsafeEnabled { 898 mi := &file_apollo_trace_proto_msgTypes[7] 899 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 900 ms.StoreMessageInfo(mi) 901 } 902 } 903 904 func (x *FieldStat) String() string { 905 return protoimpl.X.MessageStringOf(x) 906 } 907 908 func (*FieldStat) ProtoMessage() {} 909 910 func (x *FieldStat) ProtoReflect() protoreflect.Message { 911 mi := &file_apollo_trace_proto_msgTypes[7] 912 if protoimpl.UnsafeEnabled && x != nil { 913 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 914 if ms.LoadMessageInfo() == nil { 915 ms.StoreMessageInfo(mi) 916 } 917 return ms 918 } 919 return mi.MessageOf(x) 920 } 921 922 // Deprecated: Use FieldStat.ProtoReflect.Descriptor instead. 923 func (*FieldStat) Descriptor() ([]byte, []int) { 924 return file_apollo_trace_proto_rawDescGZIP(), []int{7} 925 } 926 927 func (x *FieldStat) GetReturnType() string { 928 if x != nil { 929 return x.ReturnType 930 } 931 return "" 932 } 933 934 func (x *FieldStat) GetErrorsCount() uint64 { 935 if x != nil { 936 return x.ErrorsCount 937 } 938 return 0 939 } 940 941 func (x *FieldStat) GetObservedExecutionCount() uint64 { 942 if x != nil { 943 return x.ObservedExecutionCount 944 } 945 return 0 946 } 947 948 func (x *FieldStat) GetEstimatedExecutionCount() uint64 { 949 if x != nil { 950 return x.EstimatedExecutionCount 951 } 952 return 0 953 } 954 955 func (x *FieldStat) GetRequestsWithErrorsCount() uint64 { 956 if x != nil { 957 return x.RequestsWithErrorsCount 958 } 959 return 0 960 } 961 962 func (x *FieldStat) GetLatencyCount() []int64 { 963 if x != nil { 964 return x.LatencyCount 965 } 966 return nil 967 } 968 969 type TypeStat struct { 970 state protoimpl.MessageState 971 sizeCache protoimpl.SizeCache 972 unknownFields protoimpl.UnknownFields 973 974 // Key is (eg) "email" for User.email:String! 975 PerFieldStat map[string]*FieldStat `protobuf:"bytes,3,rep,name=per_field_stat,json=perFieldStat,proto3" json:"per_field_stat,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 976 } 977 978 func (x *TypeStat) Reset() { 979 *x = TypeStat{} 980 if protoimpl.UnsafeEnabled { 981 mi := &file_apollo_trace_proto_msgTypes[8] 982 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 983 ms.StoreMessageInfo(mi) 984 } 985 } 986 987 func (x *TypeStat) String() string { 988 return protoimpl.X.MessageStringOf(x) 989 } 990 991 func (*TypeStat) ProtoMessage() {} 992 993 func (x *TypeStat) ProtoReflect() protoreflect.Message { 994 mi := &file_apollo_trace_proto_msgTypes[8] 995 if protoimpl.UnsafeEnabled && x != nil { 996 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 997 if ms.LoadMessageInfo() == nil { 998 ms.StoreMessageInfo(mi) 999 } 1000 return ms 1001 } 1002 return mi.MessageOf(x) 1003 } 1004 1005 // Deprecated: Use TypeStat.ProtoReflect.Descriptor instead. 1006 func (*TypeStat) Descriptor() ([]byte, []int) { 1007 return file_apollo_trace_proto_rawDescGZIP(), []int{8} 1008 } 1009 1010 func (x *TypeStat) GetPerFieldStat() map[string]*FieldStat { 1011 if x != nil { 1012 return x.PerFieldStat 1013 } 1014 return nil 1015 } 1016 1017 type ReferencedFieldsForType struct { 1018 state protoimpl.MessageState 1019 sizeCache protoimpl.SizeCache 1020 unknownFields protoimpl.UnknownFields 1021 1022 // Contains (eg) "email" for User.email:String! 1023 FieldNames []string `protobuf:"bytes,1,rep,name=field_names,json=fieldNames,proto3" json:"field_names,omitempty"` 1024 // True if this type is an interface. 1025 IsInterface bool `protobuf:"varint,2,opt,name=is_interface,json=isInterface,proto3" json:"is_interface,omitempty"` 1026 } 1027 1028 func (x *ReferencedFieldsForType) Reset() { 1029 *x = ReferencedFieldsForType{} 1030 if protoimpl.UnsafeEnabled { 1031 mi := &file_apollo_trace_proto_msgTypes[9] 1032 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1033 ms.StoreMessageInfo(mi) 1034 } 1035 } 1036 1037 func (x *ReferencedFieldsForType) String() string { 1038 return protoimpl.X.MessageStringOf(x) 1039 } 1040 1041 func (*ReferencedFieldsForType) ProtoMessage() {} 1042 1043 func (x *ReferencedFieldsForType) ProtoReflect() protoreflect.Message { 1044 mi := &file_apollo_trace_proto_msgTypes[9] 1045 if protoimpl.UnsafeEnabled && x != nil { 1046 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1047 if ms.LoadMessageInfo() == nil { 1048 ms.StoreMessageInfo(mi) 1049 } 1050 return ms 1051 } 1052 return mi.MessageOf(x) 1053 } 1054 1055 // Deprecated: Use ReferencedFieldsForType.ProtoReflect.Descriptor instead. 1056 func (*ReferencedFieldsForType) Descriptor() ([]byte, []int) { 1057 return file_apollo_trace_proto_rawDescGZIP(), []int{9} 1058 } 1059 1060 func (x *ReferencedFieldsForType) GetFieldNames() []string { 1061 if x != nil { 1062 return x.FieldNames 1063 } 1064 return nil 1065 } 1066 1067 func (x *ReferencedFieldsForType) GetIsInterface() bool { 1068 if x != nil { 1069 return x.IsInterface 1070 } 1071 return false 1072 } 1073 1074 // This is the top-level message used by the new traces ingress. This 1075 // is designed for the apollo-engine-reporting TypeScript agent and will 1076 // eventually be documented as a public ingress API. This message consists 1077 // solely of traces; the equivalent of the StatsReport is automatically 1078 // generated server-side from this message. Agent should either send a trace or include it in the stats 1079 // for every request in this report. Generally, buffering up until a large 1080 // size has been reached (say, 4MB) or 5-10 seconds has passed is appropriate. 1081 // This message used to be know as FullTracesReport, but got renamed since it isn't just for traces anymore 1082 type Report struct { 1083 state protoimpl.MessageState 1084 sizeCache protoimpl.SizeCache 1085 unknownFields protoimpl.UnknownFields 1086 1087 Header *ReportHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` 1088 // key is statsReportKey (# operationName\nsignature) Note that the nested 1089 // traces will *not* have a signature or details.operationName (because the 1090 // key is adequate). 1091 // 1092 // We also assume that traces don't have 1093 // legacy_per_query_implicit_operation_name, and we don't require them to have 1094 // details.raw_query (which would consume a lot of space and has privacy/data 1095 // access issues, and isn't currently exposed by our app anyway). 1096 TracesPerQuery map[string]*TracesAndStats `protobuf:"bytes,5,rep,name=traces_per_query,json=tracesPerQuery,proto3" json:"traces_per_query,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1097 // This is the time that the requests in this trace are considered to have taken place 1098 // If this field is not present the max of the end_time of each trace will be used instead. 1099 // If there are no traces and no end_time present the report will not be able to be processed. 1100 // Note: This will override the end_time from traces. 1101 EndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // required if no traces in this message 1102 // Total number of operations processed during this period. 1103 OperationCount uint64 `protobuf:"varint,6,opt,name=operation_count,json=operationCount,proto3" json:"operation_count,omitempty"` 1104 } 1105 1106 func (x *Report) Reset() { 1107 *x = Report{} 1108 if protoimpl.UnsafeEnabled { 1109 mi := &file_apollo_trace_proto_msgTypes[10] 1110 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1111 ms.StoreMessageInfo(mi) 1112 } 1113 } 1114 1115 func (x *Report) String() string { 1116 return protoimpl.X.MessageStringOf(x) 1117 } 1118 1119 func (*Report) ProtoMessage() {} 1120 1121 func (x *Report) ProtoReflect() protoreflect.Message { 1122 mi := &file_apollo_trace_proto_msgTypes[10] 1123 if protoimpl.UnsafeEnabled && x != nil { 1124 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1125 if ms.LoadMessageInfo() == nil { 1126 ms.StoreMessageInfo(mi) 1127 } 1128 return ms 1129 } 1130 return mi.MessageOf(x) 1131 } 1132 1133 // Deprecated: Use Report.ProtoReflect.Descriptor instead. 1134 func (*Report) Descriptor() ([]byte, []int) { 1135 return file_apollo_trace_proto_rawDescGZIP(), []int{10} 1136 } 1137 1138 func (x *Report) GetHeader() *ReportHeader { 1139 if x != nil { 1140 return x.Header 1141 } 1142 return nil 1143 } 1144 1145 func (x *Report) GetTracesPerQuery() map[string]*TracesAndStats { 1146 if x != nil { 1147 return x.TracesPerQuery 1148 } 1149 return nil 1150 } 1151 1152 func (x *Report) GetEndTime() *timestamppb.Timestamp { 1153 if x != nil { 1154 return x.EndTime 1155 } 1156 return nil 1157 } 1158 1159 func (x *Report) GetOperationCount() uint64 { 1160 if x != nil { 1161 return x.OperationCount 1162 } 1163 return 0 1164 } 1165 1166 type ContextualizedStats struct { 1167 state protoimpl.MessageState 1168 sizeCache protoimpl.SizeCache 1169 unknownFields protoimpl.UnknownFields 1170 1171 Context *StatsContext `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` 1172 QueryLatencyStats *QueryLatencyStats `protobuf:"bytes,2,opt,name=query_latency_stats,json=queryLatencyStats,proto3" json:"query_latency_stats,omitempty"` 1173 // Key is type name. This structure provides data for the count and latency of individual 1174 // field executions and thus only reflects operations for which field-level tracing occurred. 1175 PerTypeStat map[string]*TypeStat `protobuf:"bytes,3,rep,name=per_type_stat,json=perTypeStat,proto3" json:"per_type_stat,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1176 } 1177 1178 func (x *ContextualizedStats) Reset() { 1179 *x = ContextualizedStats{} 1180 if protoimpl.UnsafeEnabled { 1181 mi := &file_apollo_trace_proto_msgTypes[11] 1182 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1183 ms.StoreMessageInfo(mi) 1184 } 1185 } 1186 1187 func (x *ContextualizedStats) String() string { 1188 return protoimpl.X.MessageStringOf(x) 1189 } 1190 1191 func (*ContextualizedStats) ProtoMessage() {} 1192 1193 func (x *ContextualizedStats) ProtoReflect() protoreflect.Message { 1194 mi := &file_apollo_trace_proto_msgTypes[11] 1195 if protoimpl.UnsafeEnabled && x != nil { 1196 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1197 if ms.LoadMessageInfo() == nil { 1198 ms.StoreMessageInfo(mi) 1199 } 1200 return ms 1201 } 1202 return mi.MessageOf(x) 1203 } 1204 1205 // Deprecated: Use ContextualizedStats.ProtoReflect.Descriptor instead. 1206 func (*ContextualizedStats) Descriptor() ([]byte, []int) { 1207 return file_apollo_trace_proto_rawDescGZIP(), []int{11} 1208 } 1209 1210 func (x *ContextualizedStats) GetContext() *StatsContext { 1211 if x != nil { 1212 return x.Context 1213 } 1214 return nil 1215 } 1216 1217 func (x *ContextualizedStats) GetQueryLatencyStats() *QueryLatencyStats { 1218 if x != nil { 1219 return x.QueryLatencyStats 1220 } 1221 return nil 1222 } 1223 1224 func (x *ContextualizedStats) GetPerTypeStat() map[string]*TypeStat { 1225 if x != nil { 1226 return x.PerTypeStat 1227 } 1228 return nil 1229 } 1230 1231 // A sequence of traces and stats. An individual operation should either be described as a trace 1232 // or as part of stats, but not both. 1233 type TracesAndStats struct { 1234 state protoimpl.MessageState 1235 sizeCache protoimpl.SizeCache 1236 unknownFields protoimpl.UnknownFields 1237 1238 Trace []*Trace `protobuf:"bytes,1,rep,name=trace,proto3" json:"trace,omitempty"` 1239 StatsWithContext []*ContextualizedStats `protobuf:"bytes,2,rep,name=stats_with_context,json=statsWithContext,proto3" json:"stats_with_context,omitempty"` 1240 // This describes the fields referenced in the operation. Note that this may 1241 // include fields that don't show up in FieldStats (due to being interface fields, 1242 // being nested under null fields or empty lists or non-matching fragments or 1243 // `@include` or `@skip`, etc). It also may be missing fields that show up in FieldStats 1244 // (as FieldStats will include the concrete object type for fields referenced 1245 // via an interface type). 1246 ReferencedFieldsByType map[string]*ReferencedFieldsForType `protobuf:"bytes,4,rep,name=referenced_fields_by_type,json=referencedFieldsByType,proto3" json:"referenced_fields_by_type,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1247 // This field is used to validate that the algorithm used to construct `stats_with_context` 1248 // matches similar algorithms in Apollo's servers. It is otherwise ignored and should not 1249 // be included in reports. 1250 InternalTracesContributingToStats []*Trace `protobuf:"bytes,3,rep,name=internal_traces_contributing_to_stats,json=internalTracesContributingToStats,proto3" json:"internal_traces_contributing_to_stats,omitempty"` 1251 } 1252 1253 func (x *TracesAndStats) Reset() { 1254 *x = TracesAndStats{} 1255 if protoimpl.UnsafeEnabled { 1256 mi := &file_apollo_trace_proto_msgTypes[12] 1257 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1258 ms.StoreMessageInfo(mi) 1259 } 1260 } 1261 1262 func (x *TracesAndStats) String() string { 1263 return protoimpl.X.MessageStringOf(x) 1264 } 1265 1266 func (*TracesAndStats) ProtoMessage() {} 1267 1268 func (x *TracesAndStats) ProtoReflect() protoreflect.Message { 1269 mi := &file_apollo_trace_proto_msgTypes[12] 1270 if protoimpl.UnsafeEnabled && x != nil { 1271 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1272 if ms.LoadMessageInfo() == nil { 1273 ms.StoreMessageInfo(mi) 1274 } 1275 return ms 1276 } 1277 return mi.MessageOf(x) 1278 } 1279 1280 // Deprecated: Use TracesAndStats.ProtoReflect.Descriptor instead. 1281 func (*TracesAndStats) Descriptor() ([]byte, []int) { 1282 return file_apollo_trace_proto_rawDescGZIP(), []int{12} 1283 } 1284 1285 func (x *TracesAndStats) GetTrace() []*Trace { 1286 if x != nil { 1287 return x.Trace 1288 } 1289 return nil 1290 } 1291 1292 func (x *TracesAndStats) GetStatsWithContext() []*ContextualizedStats { 1293 if x != nil { 1294 return x.StatsWithContext 1295 } 1296 return nil 1297 } 1298 1299 func (x *TracesAndStats) GetReferencedFieldsByType() map[string]*ReferencedFieldsForType { 1300 if x != nil { 1301 return x.ReferencedFieldsByType 1302 } 1303 return nil 1304 } 1305 1306 func (x *TracesAndStats) GetInternalTracesContributingToStats() []*Trace { 1307 if x != nil { 1308 return x.InternalTracesContributingToStats 1309 } 1310 return nil 1311 } 1312 1313 type Trace_CachePolicy struct { 1314 state protoimpl.MessageState 1315 sizeCache protoimpl.SizeCache 1316 unknownFields protoimpl.UnknownFields 1317 1318 Scope Trace_CachePolicy_Scope `protobuf:"varint,1,opt,name=scope,proto3,enum=Trace_CachePolicy_Scope" json:"scope,omitempty"` 1319 MaxAgeNs int64 `protobuf:"varint,2,opt,name=max_age_ns,json=maxAgeNs,proto3" json:"max_age_ns,omitempty"` // use 0 for absent, -1 for 0 1320 } 1321 1322 func (x *Trace_CachePolicy) Reset() { 1323 *x = Trace_CachePolicy{} 1324 if protoimpl.UnsafeEnabled { 1325 mi := &file_apollo_trace_proto_msgTypes[13] 1326 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1327 ms.StoreMessageInfo(mi) 1328 } 1329 } 1330 1331 func (x *Trace_CachePolicy) String() string { 1332 return protoimpl.X.MessageStringOf(x) 1333 } 1334 1335 func (*Trace_CachePolicy) ProtoMessage() {} 1336 1337 func (x *Trace_CachePolicy) ProtoReflect() protoreflect.Message { 1338 mi := &file_apollo_trace_proto_msgTypes[13] 1339 if protoimpl.UnsafeEnabled && x != nil { 1340 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1341 if ms.LoadMessageInfo() == nil { 1342 ms.StoreMessageInfo(mi) 1343 } 1344 return ms 1345 } 1346 return mi.MessageOf(x) 1347 } 1348 1349 // Deprecated: Use Trace_CachePolicy.ProtoReflect.Descriptor instead. 1350 func (*Trace_CachePolicy) Descriptor() ([]byte, []int) { 1351 return file_apollo_trace_proto_rawDescGZIP(), []int{0, 0} 1352 } 1353 1354 func (x *Trace_CachePolicy) GetScope() Trace_CachePolicy_Scope { 1355 if x != nil { 1356 return x.Scope 1357 } 1358 return Trace_CachePolicy_UNKNOWN 1359 } 1360 1361 func (x *Trace_CachePolicy) GetMaxAgeNs() int64 { 1362 if x != nil { 1363 return x.MaxAgeNs 1364 } 1365 return 0 1366 } 1367 1368 type Trace_Details struct { 1369 state protoimpl.MessageState 1370 sizeCache protoimpl.SizeCache 1371 unknownFields protoimpl.UnknownFields 1372 1373 // The variables associated with this query (unless the reporting agent is 1374 // configured to keep them all private). Values are JSON: ie, strings are 1375 // enclosed in double quotes, etc. The value of a private variable is 1376 // the empty string. 1377 VariablesJson map[string]string `protobuf:"bytes,4,rep,name=variables_json,json=variablesJson,proto3" json:"variables_json,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1378 // This is deprecated and only used for legacy applications 1379 // don't include this in traces inside a FullTracesReport; the operation 1380 // name for these traces comes from the key of the traces_per_query map. 1381 OperationName string `protobuf:"bytes,3,opt,name=operation_name,json=operationName,proto3" json:"operation_name,omitempty"` 1382 } 1383 1384 func (x *Trace_Details) Reset() { 1385 *x = Trace_Details{} 1386 if protoimpl.UnsafeEnabled { 1387 mi := &file_apollo_trace_proto_msgTypes[14] 1388 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1389 ms.StoreMessageInfo(mi) 1390 } 1391 } 1392 1393 func (x *Trace_Details) String() string { 1394 return protoimpl.X.MessageStringOf(x) 1395 } 1396 1397 func (*Trace_Details) ProtoMessage() {} 1398 1399 func (x *Trace_Details) ProtoReflect() protoreflect.Message { 1400 mi := &file_apollo_trace_proto_msgTypes[14] 1401 if protoimpl.UnsafeEnabled && x != nil { 1402 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1403 if ms.LoadMessageInfo() == nil { 1404 ms.StoreMessageInfo(mi) 1405 } 1406 return ms 1407 } 1408 return mi.MessageOf(x) 1409 } 1410 1411 // Deprecated: Use Trace_Details.ProtoReflect.Descriptor instead. 1412 func (*Trace_Details) Descriptor() ([]byte, []int) { 1413 return file_apollo_trace_proto_rawDescGZIP(), []int{0, 1} 1414 } 1415 1416 func (x *Trace_Details) GetVariablesJson() map[string]string { 1417 if x != nil { 1418 return x.VariablesJson 1419 } 1420 return nil 1421 } 1422 1423 func (x *Trace_Details) GetOperationName() string { 1424 if x != nil { 1425 return x.OperationName 1426 } 1427 return "" 1428 } 1429 1430 type Trace_Error struct { 1431 state protoimpl.MessageState 1432 sizeCache protoimpl.SizeCache 1433 unknownFields protoimpl.UnknownFields 1434 1435 Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` // required 1436 Location []*Trace_Location `protobuf:"bytes,2,rep,name=location,proto3" json:"location,omitempty"` 1437 TimeNs uint64 `protobuf:"varint,3,opt,name=time_ns,json=timeNs,proto3" json:"time_ns,omitempty"` 1438 Json string `protobuf:"bytes,4,opt,name=json,proto3" json:"json,omitempty"` 1439 } 1440 1441 func (x *Trace_Error) Reset() { 1442 *x = Trace_Error{} 1443 if protoimpl.UnsafeEnabled { 1444 mi := &file_apollo_trace_proto_msgTypes[15] 1445 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1446 ms.StoreMessageInfo(mi) 1447 } 1448 } 1449 1450 func (x *Trace_Error) String() string { 1451 return protoimpl.X.MessageStringOf(x) 1452 } 1453 1454 func (*Trace_Error) ProtoMessage() {} 1455 1456 func (x *Trace_Error) ProtoReflect() protoreflect.Message { 1457 mi := &file_apollo_trace_proto_msgTypes[15] 1458 if protoimpl.UnsafeEnabled && x != nil { 1459 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1460 if ms.LoadMessageInfo() == nil { 1461 ms.StoreMessageInfo(mi) 1462 } 1463 return ms 1464 } 1465 return mi.MessageOf(x) 1466 } 1467 1468 // Deprecated: Use Trace_Error.ProtoReflect.Descriptor instead. 1469 func (*Trace_Error) Descriptor() ([]byte, []int) { 1470 return file_apollo_trace_proto_rawDescGZIP(), []int{0, 2} 1471 } 1472 1473 func (x *Trace_Error) GetMessage() string { 1474 if x != nil { 1475 return x.Message 1476 } 1477 return "" 1478 } 1479 1480 func (x *Trace_Error) GetLocation() []*Trace_Location { 1481 if x != nil { 1482 return x.Location 1483 } 1484 return nil 1485 } 1486 1487 func (x *Trace_Error) GetTimeNs() uint64 { 1488 if x != nil { 1489 return x.TimeNs 1490 } 1491 return 0 1492 } 1493 1494 func (x *Trace_Error) GetJson() string { 1495 if x != nil { 1496 return x.Json 1497 } 1498 return "" 1499 } 1500 1501 type Trace_HTTP struct { 1502 state protoimpl.MessageState 1503 sizeCache protoimpl.SizeCache 1504 unknownFields protoimpl.UnknownFields 1505 1506 Method Trace_HTTP_Method `protobuf:"varint,1,opt,name=method,proto3,enum=Trace_HTTP_Method" json:"method,omitempty"` 1507 Host string `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"` 1508 Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"` 1509 // Should exclude manual blacklist ("Auth" by default) 1510 RequestHeaders map[string]*Trace_HTTP_Values `protobuf:"bytes,4,rep,name=request_headers,json=requestHeaders,proto3" json:"request_headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1511 ResponseHeaders map[string]*Trace_HTTP_Values `protobuf:"bytes,5,rep,name=response_headers,json=responseHeaders,proto3" json:"response_headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1512 StatusCode uint32 `protobuf:"varint,6,opt,name=status_code,json=statusCode,proto3" json:"status_code,omitempty"` 1513 Secure bool `protobuf:"varint,8,opt,name=secure,proto3" json:"secure,omitempty"` // TLS was used 1514 Protocol string `protobuf:"bytes,9,opt,name=protocol,proto3" json:"protocol,omitempty"` // by convention "HTTP/1.0", "HTTP/1.1", "HTTP/2" or "h2" 1515 } 1516 1517 func (x *Trace_HTTP) Reset() { 1518 *x = Trace_HTTP{} 1519 if protoimpl.UnsafeEnabled { 1520 mi := &file_apollo_trace_proto_msgTypes[16] 1521 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1522 ms.StoreMessageInfo(mi) 1523 } 1524 } 1525 1526 func (x *Trace_HTTP) String() string { 1527 return protoimpl.X.MessageStringOf(x) 1528 } 1529 1530 func (*Trace_HTTP) ProtoMessage() {} 1531 1532 func (x *Trace_HTTP) ProtoReflect() protoreflect.Message { 1533 mi := &file_apollo_trace_proto_msgTypes[16] 1534 if protoimpl.UnsafeEnabled && x != nil { 1535 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1536 if ms.LoadMessageInfo() == nil { 1537 ms.StoreMessageInfo(mi) 1538 } 1539 return ms 1540 } 1541 return mi.MessageOf(x) 1542 } 1543 1544 // Deprecated: Use Trace_HTTP.ProtoReflect.Descriptor instead. 1545 func (*Trace_HTTP) Descriptor() ([]byte, []int) { 1546 return file_apollo_trace_proto_rawDescGZIP(), []int{0, 3} 1547 } 1548 1549 func (x *Trace_HTTP) GetMethod() Trace_HTTP_Method { 1550 if x != nil { 1551 return x.Method 1552 } 1553 return Trace_HTTP_UNKNOWN 1554 } 1555 1556 func (x *Trace_HTTP) GetHost() string { 1557 if x != nil { 1558 return x.Host 1559 } 1560 return "" 1561 } 1562 1563 func (x *Trace_HTTP) GetPath() string { 1564 if x != nil { 1565 return x.Path 1566 } 1567 return "" 1568 } 1569 1570 func (x *Trace_HTTP) GetRequestHeaders() map[string]*Trace_HTTP_Values { 1571 if x != nil { 1572 return x.RequestHeaders 1573 } 1574 return nil 1575 } 1576 1577 func (x *Trace_HTTP) GetResponseHeaders() map[string]*Trace_HTTP_Values { 1578 if x != nil { 1579 return x.ResponseHeaders 1580 } 1581 return nil 1582 } 1583 1584 func (x *Trace_HTTP) GetStatusCode() uint32 { 1585 if x != nil { 1586 return x.StatusCode 1587 } 1588 return 0 1589 } 1590 1591 func (x *Trace_HTTP) GetSecure() bool { 1592 if x != nil { 1593 return x.Secure 1594 } 1595 return false 1596 } 1597 1598 func (x *Trace_HTTP) GetProtocol() string { 1599 if x != nil { 1600 return x.Protocol 1601 } 1602 return "" 1603 } 1604 1605 type Trace_Location struct { 1606 state protoimpl.MessageState 1607 sizeCache protoimpl.SizeCache 1608 unknownFields protoimpl.UnknownFields 1609 1610 Line uint32 `protobuf:"varint,1,opt,name=line,proto3" json:"line,omitempty"` 1611 Column uint32 `protobuf:"varint,2,opt,name=column,proto3" json:"column,omitempty"` 1612 } 1613 1614 func (x *Trace_Location) Reset() { 1615 *x = Trace_Location{} 1616 if protoimpl.UnsafeEnabled { 1617 mi := &file_apollo_trace_proto_msgTypes[17] 1618 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1619 ms.StoreMessageInfo(mi) 1620 } 1621 } 1622 1623 func (x *Trace_Location) String() string { 1624 return protoimpl.X.MessageStringOf(x) 1625 } 1626 1627 func (*Trace_Location) ProtoMessage() {} 1628 1629 func (x *Trace_Location) ProtoReflect() protoreflect.Message { 1630 mi := &file_apollo_trace_proto_msgTypes[17] 1631 if protoimpl.UnsafeEnabled && x != nil { 1632 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1633 if ms.LoadMessageInfo() == nil { 1634 ms.StoreMessageInfo(mi) 1635 } 1636 return ms 1637 } 1638 return mi.MessageOf(x) 1639 } 1640 1641 // Deprecated: Use Trace_Location.ProtoReflect.Descriptor instead. 1642 func (*Trace_Location) Descriptor() ([]byte, []int) { 1643 return file_apollo_trace_proto_rawDescGZIP(), []int{0, 4} 1644 } 1645 1646 func (x *Trace_Location) GetLine() uint32 { 1647 if x != nil { 1648 return x.Line 1649 } 1650 return 0 1651 } 1652 1653 func (x *Trace_Location) GetColumn() uint32 { 1654 if x != nil { 1655 return x.Column 1656 } 1657 return 0 1658 } 1659 1660 // We store information on each resolver execution as a Node on a tree. 1661 // The structure of the tree corresponds to the structure of the GraphQL 1662 // response; it does not indicate the order in which resolvers were 1663 // invoked. Note that nodes representing indexes (and the root node) 1664 // don't contain all Node fields (eg types and times). 1665 type Trace_Node struct { 1666 state protoimpl.MessageState 1667 sizeCache protoimpl.SizeCache 1668 unknownFields protoimpl.UnknownFields 1669 1670 // The name of the field (for Nodes representing a resolver call) or the 1671 // index in a list (for intermediate Nodes representing elements of a list). 1672 // field_name is the name of the field as it appears in the GraphQL 1673 // response: ie, it may be an alias. (In that case, the original_field_name 1674 // field holds the actual field name from the schema.) In any context where 1675 // we're building up a path, we use the response_name rather than the 1676 // original_field_name. 1677 // 1678 // Types that are assignable to Id: 1679 // *Trace_Node_ResponseName 1680 // *Trace_Node_Index 1681 Id isTrace_Node_Id `protobuf_oneof:"id"` 1682 OriginalFieldName string `protobuf:"bytes,14,opt,name=original_field_name,json=originalFieldName,proto3" json:"original_field_name,omitempty"` 1683 // The field's return type; e.g. "String!" for User.email:String! 1684 Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` 1685 // The field's parent type; e.g. "User" for User.email:String! 1686 ParentType string `protobuf:"bytes,13,opt,name=parent_type,json=parentType,proto3" json:"parent_type,omitempty"` 1687 CachePolicy *Trace_CachePolicy `protobuf:"bytes,5,opt,name=cache_policy,json=cachePolicy,proto3" json:"cache_policy,omitempty"` 1688 // relative to the trace's start_time, in ns 1689 StartTime uint64 `protobuf:"varint,8,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 1690 // relative to the trace's start_time, in ns 1691 EndTime uint64 `protobuf:"varint,9,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` 1692 Error []*Trace_Error `protobuf:"bytes,11,rep,name=error,proto3" json:"error,omitempty"` 1693 Child []*Trace_Node `protobuf:"bytes,12,rep,name=child,proto3" json:"child,omitempty"` 1694 } 1695 1696 func (x *Trace_Node) Reset() { 1697 *x = Trace_Node{} 1698 if protoimpl.UnsafeEnabled { 1699 mi := &file_apollo_trace_proto_msgTypes[18] 1700 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1701 ms.StoreMessageInfo(mi) 1702 } 1703 } 1704 1705 func (x *Trace_Node) String() string { 1706 return protoimpl.X.MessageStringOf(x) 1707 } 1708 1709 func (*Trace_Node) ProtoMessage() {} 1710 1711 func (x *Trace_Node) ProtoReflect() protoreflect.Message { 1712 mi := &file_apollo_trace_proto_msgTypes[18] 1713 if protoimpl.UnsafeEnabled && x != nil { 1714 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1715 if ms.LoadMessageInfo() == nil { 1716 ms.StoreMessageInfo(mi) 1717 } 1718 return ms 1719 } 1720 return mi.MessageOf(x) 1721 } 1722 1723 // Deprecated: Use Trace_Node.ProtoReflect.Descriptor instead. 1724 func (*Trace_Node) Descriptor() ([]byte, []int) { 1725 return file_apollo_trace_proto_rawDescGZIP(), []int{0, 5} 1726 } 1727 1728 func (m *Trace_Node) GetId() isTrace_Node_Id { 1729 if m != nil { 1730 return m.Id 1731 } 1732 return nil 1733 } 1734 1735 func (x *Trace_Node) GetResponseName() string { 1736 if x, ok := x.GetId().(*Trace_Node_ResponseName); ok { 1737 return x.ResponseName 1738 } 1739 return "" 1740 } 1741 1742 func (x *Trace_Node) GetIndex() uint32 { 1743 if x, ok := x.GetId().(*Trace_Node_Index); ok { 1744 return x.Index 1745 } 1746 return 0 1747 } 1748 1749 func (x *Trace_Node) GetOriginalFieldName() string { 1750 if x != nil { 1751 return x.OriginalFieldName 1752 } 1753 return "" 1754 } 1755 1756 func (x *Trace_Node) GetType() string { 1757 if x != nil { 1758 return x.Type 1759 } 1760 return "" 1761 } 1762 1763 func (x *Trace_Node) GetParentType() string { 1764 if x != nil { 1765 return x.ParentType 1766 } 1767 return "" 1768 } 1769 1770 func (x *Trace_Node) GetCachePolicy() *Trace_CachePolicy { 1771 if x != nil { 1772 return x.CachePolicy 1773 } 1774 return nil 1775 } 1776 1777 func (x *Trace_Node) GetStartTime() uint64 { 1778 if x != nil { 1779 return x.StartTime 1780 } 1781 return 0 1782 } 1783 1784 func (x *Trace_Node) GetEndTime() uint64 { 1785 if x != nil { 1786 return x.EndTime 1787 } 1788 return 0 1789 } 1790 1791 func (x *Trace_Node) GetError() []*Trace_Error { 1792 if x != nil { 1793 return x.Error 1794 } 1795 return nil 1796 } 1797 1798 func (x *Trace_Node) GetChild() []*Trace_Node { 1799 if x != nil { 1800 return x.Child 1801 } 1802 return nil 1803 } 1804 1805 type isTrace_Node_Id interface { 1806 isTrace_Node_Id() 1807 } 1808 1809 type Trace_Node_ResponseName struct { 1810 ResponseName string `protobuf:"bytes,1,opt,name=response_name,json=responseName,proto3,oneof"` 1811 } 1812 1813 type Trace_Node_Index struct { 1814 Index uint32 `protobuf:"varint,2,opt,name=index,proto3,oneof"` 1815 } 1816 1817 func (*Trace_Node_ResponseName) isTrace_Node_Id() {} 1818 1819 func (*Trace_Node_Index) isTrace_Node_Id() {} 1820 1821 // represents a node in the query plan, under which there is a trace tree for that service fetch. 1822 // In particular, each fetch node represents a call to an implementing service, and calls to implementing 1823 // services may not be unique. See https://github.com/apollographql/apollo-server/blob/main/packages/apollo-gateway/src/QueryPlan.ts 1824 // for more information and details. 1825 type Trace_QueryPlanNode struct { 1826 state protoimpl.MessageState 1827 sizeCache protoimpl.SizeCache 1828 unknownFields protoimpl.UnknownFields 1829 1830 // Types that are assignable to Node: 1831 // *Trace_QueryPlanNode_Sequence 1832 // *Trace_QueryPlanNode_Parallel 1833 // *Trace_QueryPlanNode_Fetch 1834 // *Trace_QueryPlanNode_Flatten 1835 Node isTrace_QueryPlanNode_Node `protobuf_oneof:"node"` 1836 } 1837 1838 func (x *Trace_QueryPlanNode) Reset() { 1839 *x = Trace_QueryPlanNode{} 1840 if protoimpl.UnsafeEnabled { 1841 mi := &file_apollo_trace_proto_msgTypes[19] 1842 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1843 ms.StoreMessageInfo(mi) 1844 } 1845 } 1846 1847 func (x *Trace_QueryPlanNode) String() string { 1848 return protoimpl.X.MessageStringOf(x) 1849 } 1850 1851 func (*Trace_QueryPlanNode) ProtoMessage() {} 1852 1853 func (x *Trace_QueryPlanNode) ProtoReflect() protoreflect.Message { 1854 mi := &file_apollo_trace_proto_msgTypes[19] 1855 if protoimpl.UnsafeEnabled && x != nil { 1856 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1857 if ms.LoadMessageInfo() == nil { 1858 ms.StoreMessageInfo(mi) 1859 } 1860 return ms 1861 } 1862 return mi.MessageOf(x) 1863 } 1864 1865 // Deprecated: Use Trace_QueryPlanNode.ProtoReflect.Descriptor instead. 1866 func (*Trace_QueryPlanNode) Descriptor() ([]byte, []int) { 1867 return file_apollo_trace_proto_rawDescGZIP(), []int{0, 6} 1868 } 1869 1870 func (m *Trace_QueryPlanNode) GetNode() isTrace_QueryPlanNode_Node { 1871 if m != nil { 1872 return m.Node 1873 } 1874 return nil 1875 } 1876 1877 func (x *Trace_QueryPlanNode) GetSequence() *Trace_QueryPlanNode_SequenceNode { 1878 if x, ok := x.GetNode().(*Trace_QueryPlanNode_Sequence); ok { 1879 return x.Sequence 1880 } 1881 return nil 1882 } 1883 1884 func (x *Trace_QueryPlanNode) GetParallel() *Trace_QueryPlanNode_ParallelNode { 1885 if x, ok := x.GetNode().(*Trace_QueryPlanNode_Parallel); ok { 1886 return x.Parallel 1887 } 1888 return nil 1889 } 1890 1891 func (x *Trace_QueryPlanNode) GetFetch() *Trace_QueryPlanNode_FetchNode { 1892 if x, ok := x.GetNode().(*Trace_QueryPlanNode_Fetch); ok { 1893 return x.Fetch 1894 } 1895 return nil 1896 } 1897 1898 func (x *Trace_QueryPlanNode) GetFlatten() *Trace_QueryPlanNode_FlattenNode { 1899 if x, ok := x.GetNode().(*Trace_QueryPlanNode_Flatten); ok { 1900 return x.Flatten 1901 } 1902 return nil 1903 } 1904 1905 type isTrace_QueryPlanNode_Node interface { 1906 isTrace_QueryPlanNode_Node() 1907 } 1908 1909 type Trace_QueryPlanNode_Sequence struct { 1910 Sequence *Trace_QueryPlanNode_SequenceNode `protobuf:"bytes,1,opt,name=sequence,proto3,oneof"` 1911 } 1912 1913 type Trace_QueryPlanNode_Parallel struct { 1914 Parallel *Trace_QueryPlanNode_ParallelNode `protobuf:"bytes,2,opt,name=parallel,proto3,oneof"` 1915 } 1916 1917 type Trace_QueryPlanNode_Fetch struct { 1918 Fetch *Trace_QueryPlanNode_FetchNode `protobuf:"bytes,3,opt,name=fetch,proto3,oneof"` 1919 } 1920 1921 type Trace_QueryPlanNode_Flatten struct { 1922 Flatten *Trace_QueryPlanNode_FlattenNode `protobuf:"bytes,4,opt,name=flatten,proto3,oneof"` 1923 } 1924 1925 func (*Trace_QueryPlanNode_Sequence) isTrace_QueryPlanNode_Node() {} 1926 1927 func (*Trace_QueryPlanNode_Parallel) isTrace_QueryPlanNode_Node() {} 1928 1929 func (*Trace_QueryPlanNode_Fetch) isTrace_QueryPlanNode_Node() {} 1930 1931 func (*Trace_QueryPlanNode_Flatten) isTrace_QueryPlanNode_Node() {} 1932 1933 type Trace_HTTP_Values struct { 1934 state protoimpl.MessageState 1935 sizeCache protoimpl.SizeCache 1936 unknownFields protoimpl.UnknownFields 1937 1938 Value []string `protobuf:"bytes,1,rep,name=value,proto3" json:"value,omitempty"` 1939 } 1940 1941 func (x *Trace_HTTP_Values) Reset() { 1942 *x = Trace_HTTP_Values{} 1943 if protoimpl.UnsafeEnabled { 1944 mi := &file_apollo_trace_proto_msgTypes[21] 1945 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1946 ms.StoreMessageInfo(mi) 1947 } 1948 } 1949 1950 func (x *Trace_HTTP_Values) String() string { 1951 return protoimpl.X.MessageStringOf(x) 1952 } 1953 1954 func (*Trace_HTTP_Values) ProtoMessage() {} 1955 1956 func (x *Trace_HTTP_Values) ProtoReflect() protoreflect.Message { 1957 mi := &file_apollo_trace_proto_msgTypes[21] 1958 if protoimpl.UnsafeEnabled && x != nil { 1959 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1960 if ms.LoadMessageInfo() == nil { 1961 ms.StoreMessageInfo(mi) 1962 } 1963 return ms 1964 } 1965 return mi.MessageOf(x) 1966 } 1967 1968 // Deprecated: Use Trace_HTTP_Values.ProtoReflect.Descriptor instead. 1969 func (*Trace_HTTP_Values) Descriptor() ([]byte, []int) { 1970 return file_apollo_trace_proto_rawDescGZIP(), []int{0, 3, 0} 1971 } 1972 1973 func (x *Trace_HTTP_Values) GetValue() []string { 1974 if x != nil { 1975 return x.Value 1976 } 1977 return nil 1978 } 1979 1980 // This represents a set of nodes to be executed sequentially by the Gateway executor 1981 type Trace_QueryPlanNode_SequenceNode struct { 1982 state protoimpl.MessageState 1983 sizeCache protoimpl.SizeCache 1984 unknownFields protoimpl.UnknownFields 1985 1986 Nodes []*Trace_QueryPlanNode `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` 1987 } 1988 1989 func (x *Trace_QueryPlanNode_SequenceNode) Reset() { 1990 *x = Trace_QueryPlanNode_SequenceNode{} 1991 if protoimpl.UnsafeEnabled { 1992 mi := &file_apollo_trace_proto_msgTypes[24] 1993 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1994 ms.StoreMessageInfo(mi) 1995 } 1996 } 1997 1998 func (x *Trace_QueryPlanNode_SequenceNode) String() string { 1999 return protoimpl.X.MessageStringOf(x) 2000 } 2001 2002 func (*Trace_QueryPlanNode_SequenceNode) ProtoMessage() {} 2003 2004 func (x *Trace_QueryPlanNode_SequenceNode) ProtoReflect() protoreflect.Message { 2005 mi := &file_apollo_trace_proto_msgTypes[24] 2006 if protoimpl.UnsafeEnabled && x != nil { 2007 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2008 if ms.LoadMessageInfo() == nil { 2009 ms.StoreMessageInfo(mi) 2010 } 2011 return ms 2012 } 2013 return mi.MessageOf(x) 2014 } 2015 2016 // Deprecated: Use Trace_QueryPlanNode_SequenceNode.ProtoReflect.Descriptor instead. 2017 func (*Trace_QueryPlanNode_SequenceNode) Descriptor() ([]byte, []int) { 2018 return file_apollo_trace_proto_rawDescGZIP(), []int{0, 6, 0} 2019 } 2020 2021 func (x *Trace_QueryPlanNode_SequenceNode) GetNodes() []*Trace_QueryPlanNode { 2022 if x != nil { 2023 return x.Nodes 2024 } 2025 return nil 2026 } 2027 2028 // This represents a set of nodes to be executed in parallel by the Gateway executor 2029 type Trace_QueryPlanNode_ParallelNode struct { 2030 state protoimpl.MessageState 2031 sizeCache protoimpl.SizeCache 2032 unknownFields protoimpl.UnknownFields 2033 2034 Nodes []*Trace_QueryPlanNode `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` 2035 } 2036 2037 func (x *Trace_QueryPlanNode_ParallelNode) Reset() { 2038 *x = Trace_QueryPlanNode_ParallelNode{} 2039 if protoimpl.UnsafeEnabled { 2040 mi := &file_apollo_trace_proto_msgTypes[25] 2041 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2042 ms.StoreMessageInfo(mi) 2043 } 2044 } 2045 2046 func (x *Trace_QueryPlanNode_ParallelNode) String() string { 2047 return protoimpl.X.MessageStringOf(x) 2048 } 2049 2050 func (*Trace_QueryPlanNode_ParallelNode) ProtoMessage() {} 2051 2052 func (x *Trace_QueryPlanNode_ParallelNode) ProtoReflect() protoreflect.Message { 2053 mi := &file_apollo_trace_proto_msgTypes[25] 2054 if protoimpl.UnsafeEnabled && x != nil { 2055 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2056 if ms.LoadMessageInfo() == nil { 2057 ms.StoreMessageInfo(mi) 2058 } 2059 return ms 2060 } 2061 return mi.MessageOf(x) 2062 } 2063 2064 // Deprecated: Use Trace_QueryPlanNode_ParallelNode.ProtoReflect.Descriptor instead. 2065 func (*Trace_QueryPlanNode_ParallelNode) Descriptor() ([]byte, []int) { 2066 return file_apollo_trace_proto_rawDescGZIP(), []int{0, 6, 1} 2067 } 2068 2069 func (x *Trace_QueryPlanNode_ParallelNode) GetNodes() []*Trace_QueryPlanNode { 2070 if x != nil { 2071 return x.Nodes 2072 } 2073 return nil 2074 } 2075 2076 // This represents a node to send an operation to an implementing service 2077 type Trace_QueryPlanNode_FetchNode struct { 2078 state protoimpl.MessageState 2079 sizeCache protoimpl.SizeCache 2080 unknownFields protoimpl.UnknownFields 2081 2082 // XXX When we want to include more details about the sub-operation that was 2083 // executed against this service, we should include that here in each fetch node. 2084 // This might include an operation signature, requires directive, reference resolutions, etc. 2085 ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"` 2086 TraceParsingFailed bool `protobuf:"varint,2,opt,name=trace_parsing_failed,json=traceParsingFailed,proto3" json:"trace_parsing_failed,omitempty"` 2087 // This Trace only contains start_time, end_time, duration_ns, and root; 2088 // all timings were calculated **on the federated service**, and clock skew 2089 // will be handled by the ingress server. 2090 Trace *Trace `protobuf:"bytes,3,opt,name=trace,proto3" json:"trace,omitempty"` 2091 // relative to the outer trace's start_time, in ns, measured in the gateway. 2092 SentTimeOffset uint64 `protobuf:"varint,4,opt,name=sent_time_offset,json=sentTimeOffset,proto3" json:"sent_time_offset,omitempty"` 2093 // Wallclock times measured in the gateway for when this operation was 2094 // sent and received. 2095 SentTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=sent_time,json=sentTime,proto3" json:"sent_time,omitempty"` 2096 ReceivedTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=received_time,json=receivedTime,proto3" json:"received_time,omitempty"` 2097 } 2098 2099 func (x *Trace_QueryPlanNode_FetchNode) Reset() { 2100 *x = Trace_QueryPlanNode_FetchNode{} 2101 if protoimpl.UnsafeEnabled { 2102 mi := &file_apollo_trace_proto_msgTypes[26] 2103 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2104 ms.StoreMessageInfo(mi) 2105 } 2106 } 2107 2108 func (x *Trace_QueryPlanNode_FetchNode) String() string { 2109 return protoimpl.X.MessageStringOf(x) 2110 } 2111 2112 func (*Trace_QueryPlanNode_FetchNode) ProtoMessage() {} 2113 2114 func (x *Trace_QueryPlanNode_FetchNode) ProtoReflect() protoreflect.Message { 2115 mi := &file_apollo_trace_proto_msgTypes[26] 2116 if protoimpl.UnsafeEnabled && x != nil { 2117 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2118 if ms.LoadMessageInfo() == nil { 2119 ms.StoreMessageInfo(mi) 2120 } 2121 return ms 2122 } 2123 return mi.MessageOf(x) 2124 } 2125 2126 // Deprecated: Use Trace_QueryPlanNode_FetchNode.ProtoReflect.Descriptor instead. 2127 func (*Trace_QueryPlanNode_FetchNode) Descriptor() ([]byte, []int) { 2128 return file_apollo_trace_proto_rawDescGZIP(), []int{0, 6, 2} 2129 } 2130 2131 func (x *Trace_QueryPlanNode_FetchNode) GetServiceName() string { 2132 if x != nil { 2133 return x.ServiceName 2134 } 2135 return "" 2136 } 2137 2138 func (x *Trace_QueryPlanNode_FetchNode) GetTraceParsingFailed() bool { 2139 if x != nil { 2140 return x.TraceParsingFailed 2141 } 2142 return false 2143 } 2144 2145 func (x *Trace_QueryPlanNode_FetchNode) GetTrace() *Trace { 2146 if x != nil { 2147 return x.Trace 2148 } 2149 return nil 2150 } 2151 2152 func (x *Trace_QueryPlanNode_FetchNode) GetSentTimeOffset() uint64 { 2153 if x != nil { 2154 return x.SentTimeOffset 2155 } 2156 return 0 2157 } 2158 2159 func (x *Trace_QueryPlanNode_FetchNode) GetSentTime() *timestamppb.Timestamp { 2160 if x != nil { 2161 return x.SentTime 2162 } 2163 return nil 2164 } 2165 2166 func (x *Trace_QueryPlanNode_FetchNode) GetReceivedTime() *timestamppb.Timestamp { 2167 if x != nil { 2168 return x.ReceivedTime 2169 } 2170 return nil 2171 } 2172 2173 // This node represents a way to reach into the response path and attach related entities. 2174 // XXX Flatten is really not the right name and this node may be renamed in the query planner. 2175 type Trace_QueryPlanNode_FlattenNode struct { 2176 state protoimpl.MessageState 2177 sizeCache protoimpl.SizeCache 2178 unknownFields protoimpl.UnknownFields 2179 2180 ResponsePath []*Trace_QueryPlanNode_ResponsePathElement `protobuf:"bytes,1,rep,name=response_path,json=responsePath,proto3" json:"response_path,omitempty"` 2181 Node *Trace_QueryPlanNode `protobuf:"bytes,2,opt,name=node,proto3" json:"node,omitempty"` 2182 } 2183 2184 func (x *Trace_QueryPlanNode_FlattenNode) Reset() { 2185 *x = Trace_QueryPlanNode_FlattenNode{} 2186 if protoimpl.UnsafeEnabled { 2187 mi := &file_apollo_trace_proto_msgTypes[27] 2188 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2189 ms.StoreMessageInfo(mi) 2190 } 2191 } 2192 2193 func (x *Trace_QueryPlanNode_FlattenNode) String() string { 2194 return protoimpl.X.MessageStringOf(x) 2195 } 2196 2197 func (*Trace_QueryPlanNode_FlattenNode) ProtoMessage() {} 2198 2199 func (x *Trace_QueryPlanNode_FlattenNode) ProtoReflect() protoreflect.Message { 2200 mi := &file_apollo_trace_proto_msgTypes[27] 2201 if protoimpl.UnsafeEnabled && x != nil { 2202 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2203 if ms.LoadMessageInfo() == nil { 2204 ms.StoreMessageInfo(mi) 2205 } 2206 return ms 2207 } 2208 return mi.MessageOf(x) 2209 } 2210 2211 // Deprecated: Use Trace_QueryPlanNode_FlattenNode.ProtoReflect.Descriptor instead. 2212 func (*Trace_QueryPlanNode_FlattenNode) Descriptor() ([]byte, []int) { 2213 return file_apollo_trace_proto_rawDescGZIP(), []int{0, 6, 3} 2214 } 2215 2216 func (x *Trace_QueryPlanNode_FlattenNode) GetResponsePath() []*Trace_QueryPlanNode_ResponsePathElement { 2217 if x != nil { 2218 return x.ResponsePath 2219 } 2220 return nil 2221 } 2222 2223 func (x *Trace_QueryPlanNode_FlattenNode) GetNode() *Trace_QueryPlanNode { 2224 if x != nil { 2225 return x.Node 2226 } 2227 return nil 2228 } 2229 2230 type Trace_QueryPlanNode_ResponsePathElement struct { 2231 state protoimpl.MessageState 2232 sizeCache protoimpl.SizeCache 2233 unknownFields protoimpl.UnknownFields 2234 2235 // Types that are assignable to Id: 2236 // *Trace_QueryPlanNode_ResponsePathElement_FieldName 2237 // *Trace_QueryPlanNode_ResponsePathElement_Index 2238 Id isTrace_QueryPlanNode_ResponsePathElement_Id `protobuf_oneof:"id"` 2239 } 2240 2241 func (x *Trace_QueryPlanNode_ResponsePathElement) Reset() { 2242 *x = Trace_QueryPlanNode_ResponsePathElement{} 2243 if protoimpl.UnsafeEnabled { 2244 mi := &file_apollo_trace_proto_msgTypes[28] 2245 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2246 ms.StoreMessageInfo(mi) 2247 } 2248 } 2249 2250 func (x *Trace_QueryPlanNode_ResponsePathElement) String() string { 2251 return protoimpl.X.MessageStringOf(x) 2252 } 2253 2254 func (*Trace_QueryPlanNode_ResponsePathElement) ProtoMessage() {} 2255 2256 func (x *Trace_QueryPlanNode_ResponsePathElement) ProtoReflect() protoreflect.Message { 2257 mi := &file_apollo_trace_proto_msgTypes[28] 2258 if protoimpl.UnsafeEnabled && x != nil { 2259 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2260 if ms.LoadMessageInfo() == nil { 2261 ms.StoreMessageInfo(mi) 2262 } 2263 return ms 2264 } 2265 return mi.MessageOf(x) 2266 } 2267 2268 // Deprecated: Use Trace_QueryPlanNode_ResponsePathElement.ProtoReflect.Descriptor instead. 2269 func (*Trace_QueryPlanNode_ResponsePathElement) Descriptor() ([]byte, []int) { 2270 return file_apollo_trace_proto_rawDescGZIP(), []int{0, 6, 4} 2271 } 2272 2273 func (m *Trace_QueryPlanNode_ResponsePathElement) GetId() isTrace_QueryPlanNode_ResponsePathElement_Id { 2274 if m != nil { 2275 return m.Id 2276 } 2277 return nil 2278 } 2279 2280 func (x *Trace_QueryPlanNode_ResponsePathElement) GetFieldName() string { 2281 if x, ok := x.GetId().(*Trace_QueryPlanNode_ResponsePathElement_FieldName); ok { 2282 return x.FieldName 2283 } 2284 return "" 2285 } 2286 2287 func (x *Trace_QueryPlanNode_ResponsePathElement) GetIndex() uint32 { 2288 if x, ok := x.GetId().(*Trace_QueryPlanNode_ResponsePathElement_Index); ok { 2289 return x.Index 2290 } 2291 return 0 2292 } 2293 2294 type isTrace_QueryPlanNode_ResponsePathElement_Id interface { 2295 isTrace_QueryPlanNode_ResponsePathElement_Id() 2296 } 2297 2298 type Trace_QueryPlanNode_ResponsePathElement_FieldName struct { 2299 FieldName string `protobuf:"bytes,1,opt,name=field_name,json=fieldName,proto3,oneof"` 2300 } 2301 2302 type Trace_QueryPlanNode_ResponsePathElement_Index struct { 2303 Index uint32 `protobuf:"varint,2,opt,name=index,proto3,oneof"` 2304 } 2305 2306 func (*Trace_QueryPlanNode_ResponsePathElement_FieldName) isTrace_QueryPlanNode_ResponsePathElement_Id() { 2307 } 2308 2309 func (*Trace_QueryPlanNode_ResponsePathElement_Index) isTrace_QueryPlanNode_ResponsePathElement_Id() { 2310 } 2311 2312 var File_apollo_trace_proto protoreflect.FileDescriptor 2313 2314 var file_apollo_trace_proto_rawDesc = []byte{ 2315 0x0a, 0x12, 0x61, 0x70, 0x6f, 0x6c, 0x6c, 0x6f, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x70, 2316 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 2317 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 2318 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb6, 0x1a, 0x0a, 0x05, 0x54, 0x72, 0x61, 0x63, 0x65, 0x12, 2319 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 2320 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 2321 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 2322 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 2323 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 2324 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 2325 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 2326 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x73, 2327 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 2328 0x4e, 0x73, 0x12, 0x1f, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 2329 0x32, 0x0b, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x72, 2330 0x6f, 0x6f, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 2331 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 2332 0x65, 0x12, 0x38, 0x0a, 0x17, 0x75, 0x6e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x4f, 2333 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x1b, 0x20, 0x01, 2334 0x28, 0x09, 0x52, 0x17, 0x75, 0x6e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x4f, 0x70, 2335 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x38, 0x0a, 0x17, 0x75, 2336 0x6e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 2337 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x75, 0x6e, 2338 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 2339 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 2340 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x44, 2341 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 2342 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 2343 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 2344 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 2345 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 2346 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x18, 2347 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x48, 0x54, 2348 0x54, 0x50, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x12, 0x35, 0x0a, 0x0c, 0x63, 0x61, 0x63, 0x68, 2349 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 2350 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 2351 0x63, 0x79, 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 2352 0x33, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x1a, 0x20, 2353 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 2354 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 2355 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x2f, 0x0a, 0x14, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x71, 0x75, 0x65, 2356 0x72, 0x79, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x14, 0x20, 0x01, 2357 0x28, 0x08, 0x52, 0x11, 0x66, 0x75, 0x6c, 0x6c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x61, 0x63, 2358 0x68, 0x65, 0x48, 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 2359 0x65, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x15, 0x20, 0x01, 2360 0x28, 0x08, 0x52, 0x11, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x51, 0x75, 0x65, 2361 0x72, 0x79, 0x48, 0x69, 0x74, 0x12, 0x38, 0x0a, 0x18, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 2362 0x65, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 2363 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 2364 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 2365 0x31, 0x0a, 0x14, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x6f, 0x70, 2366 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x72, 2367 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 2368 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x13, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 2369 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 2370 0x12, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 2371 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x65, 2372 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x1f, 0x20, 2373 0x01, 0x28, 0x01, 0x52, 0x14, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 2374 0x69, 0x6f, 0x6e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x1a, 0x8a, 0x01, 0x0a, 0x0b, 0x43, 0x61, 2375 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 2376 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 2377 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x53, 0x63, 0x6f, 2378 0x70, 0x65, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 2379 0x5f, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 2380 0x61, 0x78, 0x41, 0x67, 0x65, 0x4e, 0x73, 0x22, 0x2d, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x70, 0x65, 2381 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 2382 0x06, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x49, 2383 0x56, 0x41, 0x54, 0x45, 0x10, 0x02, 0x1a, 0xbc, 0x01, 0x0a, 0x07, 0x44, 0x65, 0x74, 0x61, 0x69, 2384 0x6c, 0x73, 0x12, 0x48, 0x0a, 0x0e, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x5f, 2385 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x54, 0x72, 0x61, 2386 0x63, 0x65, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 2387 0x62, 0x6c, 0x65, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x76, 2388 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 2389 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 2390 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 2391 0x61, 0x6d, 0x65, 0x1a, 0x40, 0x0a, 0x12, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 2392 0x4a, 0x73, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 2393 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 2394 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 2395 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x7b, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 2396 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 2397 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 2398 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x54, 0x72, 0x61, 2399 0x63, 0x65, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 2400 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6e, 0x73, 2401 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x69, 0x6d, 0x65, 0x4e, 0x73, 0x12, 0x12, 2402 0x0a, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6a, 0x73, 2403 0x6f, 0x6e, 0x1a, 0x8e, 0x05, 0x0a, 0x04, 0x48, 0x54, 0x54, 0x50, 0x12, 0x2a, 0x0a, 0x06, 0x6d, 2404 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x54, 0x72, 2405 0x61, 0x63, 0x65, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 2406 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 2407 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 2408 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 2409 0x48, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 2410 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 2411 0x2e, 0x48, 0x54, 0x54, 0x50, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 2412 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 2413 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x4b, 0x0a, 0x10, 0x72, 0x65, 0x73, 2414 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 2415 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x48, 0x54, 0x54, 0x50, 2416 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 2417 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 2418 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 2419 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x74, 0x61, 2420 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x75, 0x72, 2421 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x12, 2422 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 2423 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x1a, 0x1e, 0x0a, 0x06, 0x56, 2424 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 2425 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x55, 0x0a, 0x13, 0x52, 2426 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 2427 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 2428 0x03, 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 2429 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x48, 0x54, 0x54, 0x50, 2430 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 2431 0x38, 0x01, 0x1a, 0x56, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 2432 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 2433 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x05, 2434 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x54, 0x72, 2435 0x61, 0x63, 0x65, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 2436 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x77, 0x0a, 0x06, 0x4d, 0x65, 2437 0x74, 0x68, 0x6f, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 2438 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x01, 0x12, 0x07, 2439 0x0a, 0x03, 0x47, 0x45, 0x54, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x45, 0x41, 0x44, 0x10, 2440 0x03, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x4f, 0x53, 0x54, 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x50, 2441 0x55, 0x54, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x06, 2442 0x12, 0x09, 0x0a, 0x05, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x43, 2443 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x08, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x41, 0x54, 0x43, 2444 0x48, 0x10, 0x09, 0x1a, 0x36, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 2445 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6c, 2446 0x69, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x02, 0x20, 2447 0x01, 0x28, 0x0d, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x1a, 0xee, 0x02, 0x0a, 0x04, 2448 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 2449 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x72, 2450 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x69, 2451 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 2452 0x64, 0x65, 0x78, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 2453 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 2454 0x52, 0x11, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 2455 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 2456 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 2457 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 2458 0x72, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x35, 0x0a, 0x0c, 0x63, 0x61, 0x63, 0x68, 2459 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 2460 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 2461 0x63, 0x79, 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 2462 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 2463 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 2464 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 2465 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x05, 0x65, 0x72, 0x72, 2466 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 2467 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x21, 0x0a, 2468 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x54, 2469 0x72, 0x61, 0x63, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 2470 0x42, 0x04, 0x0a, 0x02, 0x69, 0x64, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x1a, 0x8b, 0x07, 0x0a, 2471 0x0d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x3f, 2472 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 2473 0x32, 0x21, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 2474 0x61, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 2475 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 2476 0x3f, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 2477 0x0b, 0x32, 0x21, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 2478 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 2479 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x08, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 2480 0x12, 0x36, 0x0a, 0x05, 0x66, 0x65, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 2481 0x1e, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 2482 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x48, 2483 0x00, 0x52, 0x05, 0x66, 0x65, 0x74, 0x63, 0x68, 0x12, 0x3c, 0x0a, 0x07, 0x66, 0x6c, 0x61, 0x74, 2484 0x74, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x54, 0x72, 0x61, 0x63, 2485 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 2486 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x07, 0x66, 2487 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x1a, 0x3a, 0x0a, 0x0c, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 2488 0x63, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 2489 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x51, 0x75, 2490 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 2491 0x65, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x50, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x4e, 0x6f, 2492 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 2493 0x0b, 0x32, 0x14, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 2494 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x1a, 0xa2, 2495 0x02, 0x0a, 0x09, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 2496 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 2497 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 2498 0x30, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 2499 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x74, 2500 0x72, 0x61, 0x63, 0x65, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x69, 0x6c, 0x65, 2501 0x64, 0x12, 0x1c, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 2502 0x32, 0x06, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61, 0x63, 0x65, 0x12, 2503 0x28, 0x0a, 0x10, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x66, 0x66, 2504 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x65, 0x6e, 0x74, 0x54, 2505 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x73, 0x65, 0x6e, 2506 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 2507 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 2508 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x74, 0x54, 0x69, 2509 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x74, 2510 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2511 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 2512 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x54, 2513 0x69, 0x6d, 0x65, 0x1a, 0x86, 0x01, 0x0a, 0x0b, 0x46, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x4e, 2514 0x6f, 0x64, 0x65, 0x12, 0x4d, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 2515 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x54, 0x72, 0x61, 2516 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 2517 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x74, 0x68, 0x45, 0x6c, 0x65, 2518 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 2519 0x74, 0x68, 0x12, 0x28, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 2520 0x32, 0x14, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 2521 0x61, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x1a, 0x54, 0x0a, 0x13, 2522 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x74, 0x68, 0x45, 0x6c, 0x65, 0x6d, 2523 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 2524 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 2525 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 2526 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x04, 0x0a, 0x02, 2527 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 2528 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x4a, 0x04, 0x08, 0x0c, 2529 0x10, 0x0d, 0x4a, 0x04, 0x08, 0x0d, 0x10, 0x0e, 0x4a, 0x04, 0x08, 0x17, 0x10, 0x18, 0x22, 0x8c, 2530 0x02, 0x0a, 0x0c, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 2531 0x1b, 0x0a, 0x09, 0x67, 0x72, 0x61, 0x70, 0x68, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x0c, 0x20, 0x01, 2532 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x61, 0x70, 0x68, 0x52, 0x65, 0x66, 0x12, 0x1a, 0x0a, 0x08, 2533 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 2534 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x67, 0x65, 0x6e, 2535 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 2536 0x0c, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 2537 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 2538 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x56, 2539 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 2540 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 2541 0x0e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 2542 0x14, 0x0a, 0x05, 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 2543 0x75, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 2544 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 2545 0x01, 0x28, 0x09, 0x52, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 2546 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0xf9, 0x01, 2547 0x0a, 0x0e, 0x50, 0x61, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 2548 0x12, 0x39, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x03, 2549 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x74, 2550 0x61, 0x74, 0x73, 0x2e, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x45, 0x6e, 0x74, 0x72, 2551 0x79, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x65, 2552 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 2553 0x04, 0x52, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3b, 2554 0x0a, 0x1a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 2555 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 2556 0x28, 0x04, 0x52, 0x17, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 2557 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x4c, 0x0a, 0x0d, 0x43, 2558 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 2559 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x25, 2560 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 2561 0x50, 0x61, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 2562 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xdf, 0x05, 0x0a, 0x11, 0x51, 0x75, 2563 0x65, 0x72, 0x79, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 2564 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 2565 0x18, 0x0d, 0x20, 0x03, 0x28, 0x12, 0x52, 0x0c, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x43, 2566 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 2567 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x72, 0x65, 0x71, 2568 0x75, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x61, 0x63, 2569 0x68, 0x65, 0x5f, 0x68, 0x69, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 2570 0x61, 0x63, 0x68, 0x65, 0x48, 0x69, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x65, 0x72, 0x73, 2571 0x69, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x68, 0x69, 0x74, 0x73, 2572 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 2573 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x69, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x65, 2574 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6d, 0x69, 2575 0x73, 0x73, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x70, 0x65, 0x72, 0x73, 2576 0x69, 0x73, 0x74, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4d, 0x69, 0x73, 0x73, 0x65, 0x73, 2577 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 2578 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x12, 0x52, 0x11, 0x63, 2579 0x61, 0x63, 0x68, 0x65, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 2580 0x12, 0x39, 0x0a, 0x10, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 2581 0x74, 0x61, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x50, 0x61, 0x74, 2582 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 2583 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x3b, 0x0a, 0x1a, 0x72, 2584 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 2585 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 2586 0x17, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x45, 0x72, 0x72, 2587 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x16, 0x70, 0x75, 0x62, 0x6c, 2588 0x69, 0x63, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 2589 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x12, 0x52, 0x13, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 2590 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x74, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x35, 0x0a, 2591 0x17, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x74, 2592 0x74, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x03, 0x28, 0x12, 0x52, 0x14, 2593 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x54, 0x74, 0x6c, 0x43, 2594 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x1a, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 2595 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 2596 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x18, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 2597 0x65, 0x72, 0x65, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 2598 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x19, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 2599 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 2600 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 2601 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x53, 2602 0x0a, 0x26, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x6f, 2603 0x75, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 2604 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x23, 2605 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x46, 2606 0x69, 0x65, 0x6c, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 2607 0x69, 0x6f, 0x6e, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 2608 0x04, 0x08, 0x09, 0x10, 0x0a, 0x4a, 0x04, 0x08, 0x0a, 0x10, 0x0b, 0x22, 0x5c, 0x0a, 0x0c, 0x53, 2609 0x74, 0x61, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 2610 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 2611 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 2612 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 2613 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 2614 0x69, 0x6f, 0x6e, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0x8e, 0x01, 0x0a, 0x1f, 0x43, 0x6f, 2615 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 2616 0x79, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x42, 0x0a, 2617 0x13, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 2618 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x51, 0x75, 0x65, 2619 0x72, 0x79, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x11, 2620 0x71, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 2621 0x73, 0x12, 0x27, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 2622 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 2623 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0xdc, 0x01, 0x0a, 0x17, 0x43, 2624 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 2625 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 2626 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x43, 2627 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 2628 0x4d, 0x0a, 0x0d, 0x70, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 2629 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 2630 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 2631 0x2e, 0x50, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 2632 0x79, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x1a, 0x49, 2633 0x0a, 0x10, 0x50, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x45, 0x6e, 0x74, 2634 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 2635 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 2636 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x52, 0x05, 2637 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xbf, 0x02, 0x0a, 0x09, 0x46, 0x69, 2638 0x65, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x74, 0x75, 0x72, 2639 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 2640 0x74, 0x75, 0x72, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x72, 0x72, 0x6f, 2641 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 2642 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x18, 0x6f, 2643 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 2644 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x6f, 2645 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 2646 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x19, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 2647 0x65, 0x64, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 2648 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 2649 0x74, 0x65, 0x64, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 2650 0x74, 0x12, 0x3b, 0x0a, 0x1a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x77, 0x69, 2651 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 2652 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x57, 2653 0x69, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 2654 0x0a, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 2655 0x09, 0x20, 0x03, 0x28, 0x12, 0x52, 0x0c, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 2656 0x75, 0x6e, 0x74, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 2657 0x04, 0x08, 0x07, 0x10, 0x08, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x22, 0xa6, 0x01, 0x0a, 0x08, 2658 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x12, 0x41, 0x0a, 0x0e, 0x70, 0x65, 0x72, 0x5f, 2659 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 2660 0x32, 0x1b, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x2e, 0x50, 0x65, 0x72, 0x46, 2661 0x69, 0x65, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x70, 2662 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x1a, 0x4b, 0x0a, 0x11, 0x50, 2663 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 2664 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 2665 0x65, 0x79, 0x12, 0x20, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 2666 0x0b, 0x32, 0x0a, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x52, 0x05, 0x76, 2667 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 2668 0x08, 0x02, 0x10, 0x03, 0x22, 0x5d, 0x0a, 0x17, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 2669 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x46, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 2670 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 2671 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 2672 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 2673 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 2674 0x61, 0x63, 0x65, 0x22, 0xaa, 0x02, 0x0a, 0x06, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x25, 2675 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 2676 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 2677 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x63, 0x65, 0x73, 0x5f, 2678 0x70, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 2679 0x1b, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x73, 0x50, 2680 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x74, 0x72, 2681 0x61, 0x63, 0x65, 0x73, 0x50, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x35, 0x0a, 0x08, 2682 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 2683 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 2684 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 2685 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 2686 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6f, 0x70, 2687 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x52, 0x0a, 0x13, 2688 0x54, 0x72, 0x61, 0x63, 0x65, 0x73, 0x50, 0x65, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x6e, 2689 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 2690 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 2691 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x73, 0x41, 0x6e, 0x64, 2692 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 2693 0x22, 0x98, 0x02, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x69, 2694 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 2695 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x53, 0x74, 0x61, 0x74, 2696 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 2697 0x74, 0x12, 0x42, 0x0a, 0x13, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 2698 0x63, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 2699 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x74, 0x61, 2700 0x74, 0x73, 0x52, 0x11, 0x71, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 2701 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x49, 0x0a, 0x0d, 0x70, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 2702 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x43, 2703 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 2704 0x74, 0x73, 0x2e, 0x50, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x45, 0x6e, 2705 0x74, 0x72, 0x79, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 2706 0x1a, 0x49, 0x0a, 0x10, 0x50, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x45, 2707 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 2708 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 2709 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 2710 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x99, 0x03, 0x0a, 0x0e, 2711 0x54, 0x72, 0x61, 0x63, 0x65, 0x73, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x1c, 2712 0x0a, 0x05, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x06, 0x2e, 2713 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61, 0x63, 0x65, 0x12, 0x42, 0x0a, 0x12, 2714 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 2715 0x78, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 2716 0x78, 0x74, 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x10, 2717 0x73, 0x74, 0x61, 0x74, 0x73, 0x57, 0x69, 0x74, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 2718 0x12, 0x66, 0x0a, 0x19, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x66, 2719 0x69, 0x65, 0x6c, 0x64, 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 2720 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x73, 0x41, 0x6e, 0x64, 0x53, 2721 0x74, 0x61, 0x74, 0x73, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x46, 2722 0x69, 0x65, 0x6c, 0x64, 0x73, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 2723 0x52, 0x16, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 2724 0x64, 0x73, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x25, 0x69, 0x6e, 0x74, 0x65, 2725 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 2726 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x74, 2727 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 2728 0x21, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x63, 0x65, 0x73, 0x43, 2729 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x53, 0x74, 0x61, 2730 0x74, 0x73, 0x1a, 0x63, 0x0a, 0x1b, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 2731 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x74, 0x72, 2732 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 2733 0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 2734 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x46, 2735 0x69, 0x65, 0x6c, 0x64, 0x73, 0x46, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x76, 0x61, 2736 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x16, 0x5a, 0x14, 0x2e, 0x2f, 0x61, 0x70, 0x6f, 2737 0x6c, 0x6c, 0x6f, 0x74, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x74, 0x76, 0x31, 0x62, 2738 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 2739 } 2740 2741 var ( 2742 file_apollo_trace_proto_rawDescOnce sync.Once 2743 file_apollo_trace_proto_rawDescData = file_apollo_trace_proto_rawDesc 2744 ) 2745 2746 func file_apollo_trace_proto_rawDescGZIP() []byte { 2747 file_apollo_trace_proto_rawDescOnce.Do(func() { 2748 file_apollo_trace_proto_rawDescData = protoimpl.X.CompressGZIP(file_apollo_trace_proto_rawDescData) 2749 }) 2750 return file_apollo_trace_proto_rawDescData 2751 } 2752 2753 var file_apollo_trace_proto_enumTypes = make([]protoimpl.EnumInfo, 2) 2754 var file_apollo_trace_proto_msgTypes = make([]protoimpl.MessageInfo, 35) 2755 var file_apollo_trace_proto_goTypes = []interface{}{ 2756 (Trace_CachePolicy_Scope)(0), // 0: Trace.CachePolicy.Scope 2757 (Trace_HTTP_Method)(0), // 1: Trace.HTTP.Method 2758 (*Trace)(nil), // 2: Trace 2759 (*ReportHeader)(nil), // 3: ReportHeader 2760 (*PathErrorStats)(nil), // 4: PathErrorStats 2761 (*QueryLatencyStats)(nil), // 5: QueryLatencyStats 2762 (*StatsContext)(nil), // 6: StatsContext 2763 (*ContextualizedQueryLatencyStats)(nil), // 7: ContextualizedQueryLatencyStats 2764 (*ContextualizedTypeStats)(nil), // 8: ContextualizedTypeStats 2765 (*FieldStat)(nil), // 9: FieldStat 2766 (*TypeStat)(nil), // 10: TypeStat 2767 (*ReferencedFieldsForType)(nil), // 11: ReferencedFieldsForType 2768 (*Report)(nil), // 12: Report 2769 (*ContextualizedStats)(nil), // 13: ContextualizedStats 2770 (*TracesAndStats)(nil), // 14: TracesAndStats 2771 (*Trace_CachePolicy)(nil), // 15: Trace.CachePolicy 2772 (*Trace_Details)(nil), // 16: Trace.Details 2773 (*Trace_Error)(nil), // 17: Trace.Error 2774 (*Trace_HTTP)(nil), // 18: Trace.HTTP 2775 (*Trace_Location)(nil), // 19: Trace.Location 2776 (*Trace_Node)(nil), // 20: Trace.Node 2777 (*Trace_QueryPlanNode)(nil), // 21: Trace.QueryPlanNode 2778 nil, // 22: Trace.Details.VariablesJsonEntry 2779 (*Trace_HTTP_Values)(nil), // 23: Trace.HTTP.Values 2780 nil, // 24: Trace.HTTP.RequestHeadersEntry 2781 nil, // 25: Trace.HTTP.ResponseHeadersEntry 2782 (*Trace_QueryPlanNode_SequenceNode)(nil), // 26: Trace.QueryPlanNode.SequenceNode 2783 (*Trace_QueryPlanNode_ParallelNode)(nil), // 27: Trace.QueryPlanNode.ParallelNode 2784 (*Trace_QueryPlanNode_FetchNode)(nil), // 28: Trace.QueryPlanNode.FetchNode 2785 (*Trace_QueryPlanNode_FlattenNode)(nil), // 29: Trace.QueryPlanNode.FlattenNode 2786 (*Trace_QueryPlanNode_ResponsePathElement)(nil), // 30: Trace.QueryPlanNode.ResponsePathElement 2787 nil, // 31: PathErrorStats.ChildrenEntry 2788 nil, // 32: ContextualizedTypeStats.PerTypeStatEntry 2789 nil, // 33: TypeStat.PerFieldStatEntry 2790 nil, // 34: Report.TracesPerQueryEntry 2791 nil, // 35: ContextualizedStats.PerTypeStatEntry 2792 nil, // 36: TracesAndStats.ReferencedFieldsByTypeEntry 2793 (*timestamppb.Timestamp)(nil), // 37: google.protobuf.Timestamp 2794 } 2795 var file_apollo_trace_proto_depIdxs = []int32{ 2796 37, // 0: Trace.start_time:type_name -> google.protobuf.Timestamp 2797 37, // 1: Trace.end_time:type_name -> google.protobuf.Timestamp 2798 20, // 2: Trace.root:type_name -> Trace.Node 2799 16, // 3: Trace.details:type_name -> Trace.Details 2800 18, // 4: Trace.http:type_name -> Trace.HTTP 2801 15, // 5: Trace.cache_policy:type_name -> Trace.CachePolicy 2802 21, // 6: Trace.query_plan:type_name -> Trace.QueryPlanNode 2803 31, // 7: PathErrorStats.children:type_name -> PathErrorStats.ChildrenEntry 2804 4, // 8: QueryLatencyStats.root_error_stats:type_name -> PathErrorStats 2805 5, // 9: ContextualizedQueryLatencyStats.query_latency_stats:type_name -> QueryLatencyStats 2806 6, // 10: ContextualizedQueryLatencyStats.context:type_name -> StatsContext 2807 6, // 11: ContextualizedTypeStats.context:type_name -> StatsContext 2808 32, // 12: ContextualizedTypeStats.per_type_stat:type_name -> ContextualizedTypeStats.PerTypeStatEntry 2809 33, // 13: TypeStat.per_field_stat:type_name -> TypeStat.PerFieldStatEntry 2810 3, // 14: Report.header:type_name -> ReportHeader 2811 34, // 15: Report.traces_per_query:type_name -> Report.TracesPerQueryEntry 2812 37, // 16: Report.end_time:type_name -> google.protobuf.Timestamp 2813 6, // 17: ContextualizedStats.context:type_name -> StatsContext 2814 5, // 18: ContextualizedStats.query_latency_stats:type_name -> QueryLatencyStats 2815 35, // 19: ContextualizedStats.per_type_stat:type_name -> ContextualizedStats.PerTypeStatEntry 2816 2, // 20: TracesAndStats.trace:type_name -> Trace 2817 13, // 21: TracesAndStats.stats_with_context:type_name -> ContextualizedStats 2818 36, // 22: TracesAndStats.referenced_fields_by_type:type_name -> TracesAndStats.ReferencedFieldsByTypeEntry 2819 2, // 23: TracesAndStats.internal_traces_contributing_to_stats:type_name -> Trace 2820 0, // 24: Trace.CachePolicy.scope:type_name -> Trace.CachePolicy.Scope 2821 22, // 25: Trace.Details.variables_json:type_name -> Trace.Details.VariablesJsonEntry 2822 19, // 26: Trace.Error.location:type_name -> Trace.Location 2823 1, // 27: Trace.HTTP.method:type_name -> Trace.HTTP.Method 2824 24, // 28: Trace.HTTP.request_headers:type_name -> Trace.HTTP.RequestHeadersEntry 2825 25, // 29: Trace.HTTP.response_headers:type_name -> Trace.HTTP.ResponseHeadersEntry 2826 15, // 30: Trace.Node.cache_policy:type_name -> Trace.CachePolicy 2827 17, // 31: Trace.Node.error:type_name -> Trace.Error 2828 20, // 32: Trace.Node.child:type_name -> Trace.Node 2829 26, // 33: Trace.QueryPlanNode.sequence:type_name -> Trace.QueryPlanNode.SequenceNode 2830 27, // 34: Trace.QueryPlanNode.parallel:type_name -> Trace.QueryPlanNode.ParallelNode 2831 28, // 35: Trace.QueryPlanNode.fetch:type_name -> Trace.QueryPlanNode.FetchNode 2832 29, // 36: Trace.QueryPlanNode.flatten:type_name -> Trace.QueryPlanNode.FlattenNode 2833 23, // 37: Trace.HTTP.RequestHeadersEntry.value:type_name -> Trace.HTTP.Values 2834 23, // 38: Trace.HTTP.ResponseHeadersEntry.value:type_name -> Trace.HTTP.Values 2835 21, // 39: Trace.QueryPlanNode.SequenceNode.nodes:type_name -> Trace.QueryPlanNode 2836 21, // 40: Trace.QueryPlanNode.ParallelNode.nodes:type_name -> Trace.QueryPlanNode 2837 2, // 41: Trace.QueryPlanNode.FetchNode.trace:type_name -> Trace 2838 37, // 42: Trace.QueryPlanNode.FetchNode.sent_time:type_name -> google.protobuf.Timestamp 2839 37, // 43: Trace.QueryPlanNode.FetchNode.received_time:type_name -> google.protobuf.Timestamp 2840 30, // 44: Trace.QueryPlanNode.FlattenNode.response_path:type_name -> Trace.QueryPlanNode.ResponsePathElement 2841 21, // 45: Trace.QueryPlanNode.FlattenNode.node:type_name -> Trace.QueryPlanNode 2842 4, // 46: PathErrorStats.ChildrenEntry.value:type_name -> PathErrorStats 2843 10, // 47: ContextualizedTypeStats.PerTypeStatEntry.value:type_name -> TypeStat 2844 9, // 48: TypeStat.PerFieldStatEntry.value:type_name -> FieldStat 2845 14, // 49: Report.TracesPerQueryEntry.value:type_name -> TracesAndStats 2846 10, // 50: ContextualizedStats.PerTypeStatEntry.value:type_name -> TypeStat 2847 11, // 51: TracesAndStats.ReferencedFieldsByTypeEntry.value:type_name -> ReferencedFieldsForType 2848 52, // [52:52] is the sub-list for method output_type 2849 52, // [52:52] is the sub-list for method input_type 2850 52, // [52:52] is the sub-list for extension type_name 2851 52, // [52:52] is the sub-list for extension extendee 2852 0, // [0:52] is the sub-list for field type_name 2853 } 2854 2855 func init() { file_apollo_trace_proto_init() } 2856 func file_apollo_trace_proto_init() { 2857 if File_apollo_trace_proto != nil { 2858 return 2859 } 2860 if !protoimpl.UnsafeEnabled { 2861 file_apollo_trace_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 2862 switch v := v.(*Trace); i { 2863 case 0: 2864 return &v.state 2865 case 1: 2866 return &v.sizeCache 2867 case 2: 2868 return &v.unknownFields 2869 default: 2870 return nil 2871 } 2872 } 2873 file_apollo_trace_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 2874 switch v := v.(*ReportHeader); i { 2875 case 0: 2876 return &v.state 2877 case 1: 2878 return &v.sizeCache 2879 case 2: 2880 return &v.unknownFields 2881 default: 2882 return nil 2883 } 2884 } 2885 file_apollo_trace_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 2886 switch v := v.(*PathErrorStats); i { 2887 case 0: 2888 return &v.state 2889 case 1: 2890 return &v.sizeCache 2891 case 2: 2892 return &v.unknownFields 2893 default: 2894 return nil 2895 } 2896 } 2897 file_apollo_trace_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 2898 switch v := v.(*QueryLatencyStats); i { 2899 case 0: 2900 return &v.state 2901 case 1: 2902 return &v.sizeCache 2903 case 2: 2904 return &v.unknownFields 2905 default: 2906 return nil 2907 } 2908 } 2909 file_apollo_trace_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 2910 switch v := v.(*StatsContext); i { 2911 case 0: 2912 return &v.state 2913 case 1: 2914 return &v.sizeCache 2915 case 2: 2916 return &v.unknownFields 2917 default: 2918 return nil 2919 } 2920 } 2921 file_apollo_trace_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 2922 switch v := v.(*ContextualizedQueryLatencyStats); i { 2923 case 0: 2924 return &v.state 2925 case 1: 2926 return &v.sizeCache 2927 case 2: 2928 return &v.unknownFields 2929 default: 2930 return nil 2931 } 2932 } 2933 file_apollo_trace_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 2934 switch v := v.(*ContextualizedTypeStats); i { 2935 case 0: 2936 return &v.state 2937 case 1: 2938 return &v.sizeCache 2939 case 2: 2940 return &v.unknownFields 2941 default: 2942 return nil 2943 } 2944 } 2945 file_apollo_trace_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 2946 switch v := v.(*FieldStat); i { 2947 case 0: 2948 return &v.state 2949 case 1: 2950 return &v.sizeCache 2951 case 2: 2952 return &v.unknownFields 2953 default: 2954 return nil 2955 } 2956 } 2957 file_apollo_trace_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 2958 switch v := v.(*TypeStat); i { 2959 case 0: 2960 return &v.state 2961 case 1: 2962 return &v.sizeCache 2963 case 2: 2964 return &v.unknownFields 2965 default: 2966 return nil 2967 } 2968 } 2969 file_apollo_trace_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 2970 switch v := v.(*ReferencedFieldsForType); i { 2971 case 0: 2972 return &v.state 2973 case 1: 2974 return &v.sizeCache 2975 case 2: 2976 return &v.unknownFields 2977 default: 2978 return nil 2979 } 2980 } 2981 file_apollo_trace_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 2982 switch v := v.(*Report); i { 2983 case 0: 2984 return &v.state 2985 case 1: 2986 return &v.sizeCache 2987 case 2: 2988 return &v.unknownFields 2989 default: 2990 return nil 2991 } 2992 } 2993 file_apollo_trace_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 2994 switch v := v.(*ContextualizedStats); i { 2995 case 0: 2996 return &v.state 2997 case 1: 2998 return &v.sizeCache 2999 case 2: 3000 return &v.unknownFields 3001 default: 3002 return nil 3003 } 3004 } 3005 file_apollo_trace_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 3006 switch v := v.(*TracesAndStats); i { 3007 case 0: 3008 return &v.state 3009 case 1: 3010 return &v.sizeCache 3011 case 2: 3012 return &v.unknownFields 3013 default: 3014 return nil 3015 } 3016 } 3017 file_apollo_trace_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 3018 switch v := v.(*Trace_CachePolicy); i { 3019 case 0: 3020 return &v.state 3021 case 1: 3022 return &v.sizeCache 3023 case 2: 3024 return &v.unknownFields 3025 default: 3026 return nil 3027 } 3028 } 3029 file_apollo_trace_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 3030 switch v := v.(*Trace_Details); i { 3031 case 0: 3032 return &v.state 3033 case 1: 3034 return &v.sizeCache 3035 case 2: 3036 return &v.unknownFields 3037 default: 3038 return nil 3039 } 3040 } 3041 file_apollo_trace_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 3042 switch v := v.(*Trace_Error); i { 3043 case 0: 3044 return &v.state 3045 case 1: 3046 return &v.sizeCache 3047 case 2: 3048 return &v.unknownFields 3049 default: 3050 return nil 3051 } 3052 } 3053 file_apollo_trace_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 3054 switch v := v.(*Trace_HTTP); i { 3055 case 0: 3056 return &v.state 3057 case 1: 3058 return &v.sizeCache 3059 case 2: 3060 return &v.unknownFields 3061 default: 3062 return nil 3063 } 3064 } 3065 file_apollo_trace_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 3066 switch v := v.(*Trace_Location); i { 3067 case 0: 3068 return &v.state 3069 case 1: 3070 return &v.sizeCache 3071 case 2: 3072 return &v.unknownFields 3073 default: 3074 return nil 3075 } 3076 } 3077 file_apollo_trace_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 3078 switch v := v.(*Trace_Node); i { 3079 case 0: 3080 return &v.state 3081 case 1: 3082 return &v.sizeCache 3083 case 2: 3084 return &v.unknownFields 3085 default: 3086 return nil 3087 } 3088 } 3089 file_apollo_trace_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 3090 switch v := v.(*Trace_QueryPlanNode); i { 3091 case 0: 3092 return &v.state 3093 case 1: 3094 return &v.sizeCache 3095 case 2: 3096 return &v.unknownFields 3097 default: 3098 return nil 3099 } 3100 } 3101 file_apollo_trace_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 3102 switch v := v.(*Trace_HTTP_Values); i { 3103 case 0: 3104 return &v.state 3105 case 1: 3106 return &v.sizeCache 3107 case 2: 3108 return &v.unknownFields 3109 default: 3110 return nil 3111 } 3112 } 3113 file_apollo_trace_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { 3114 switch v := v.(*Trace_QueryPlanNode_SequenceNode); i { 3115 case 0: 3116 return &v.state 3117 case 1: 3118 return &v.sizeCache 3119 case 2: 3120 return &v.unknownFields 3121 default: 3122 return nil 3123 } 3124 } 3125 file_apollo_trace_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { 3126 switch v := v.(*Trace_QueryPlanNode_ParallelNode); i { 3127 case 0: 3128 return &v.state 3129 case 1: 3130 return &v.sizeCache 3131 case 2: 3132 return &v.unknownFields 3133 default: 3134 return nil 3135 } 3136 } 3137 file_apollo_trace_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { 3138 switch v := v.(*Trace_QueryPlanNode_FetchNode); i { 3139 case 0: 3140 return &v.state 3141 case 1: 3142 return &v.sizeCache 3143 case 2: 3144 return &v.unknownFields 3145 default: 3146 return nil 3147 } 3148 } 3149 file_apollo_trace_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { 3150 switch v := v.(*Trace_QueryPlanNode_FlattenNode); i { 3151 case 0: 3152 return &v.state 3153 case 1: 3154 return &v.sizeCache 3155 case 2: 3156 return &v.unknownFields 3157 default: 3158 return nil 3159 } 3160 } 3161 file_apollo_trace_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { 3162 switch v := v.(*Trace_QueryPlanNode_ResponsePathElement); i { 3163 case 0: 3164 return &v.state 3165 case 1: 3166 return &v.sizeCache 3167 case 2: 3168 return &v.unknownFields 3169 default: 3170 return nil 3171 } 3172 } 3173 } 3174 file_apollo_trace_proto_msgTypes[18].OneofWrappers = []interface{}{ 3175 (*Trace_Node_ResponseName)(nil), 3176 (*Trace_Node_Index)(nil), 3177 } 3178 file_apollo_trace_proto_msgTypes[19].OneofWrappers = []interface{}{ 3179 (*Trace_QueryPlanNode_Sequence)(nil), 3180 (*Trace_QueryPlanNode_Parallel)(nil), 3181 (*Trace_QueryPlanNode_Fetch)(nil), 3182 (*Trace_QueryPlanNode_Flatten)(nil), 3183 } 3184 file_apollo_trace_proto_msgTypes[28].OneofWrappers = []interface{}{ 3185 (*Trace_QueryPlanNode_ResponsePathElement_FieldName)(nil), 3186 (*Trace_QueryPlanNode_ResponsePathElement_Index)(nil), 3187 } 3188 type x struct{} 3189 out := protoimpl.TypeBuilder{ 3190 File: protoimpl.DescBuilder{ 3191 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 3192 RawDescriptor: file_apollo_trace_proto_rawDesc, 3193 NumEnums: 2, 3194 NumMessages: 35, 3195 NumExtensions: 0, 3196 NumServices: 0, 3197 }, 3198 GoTypes: file_apollo_trace_proto_goTypes, 3199 DependencyIndexes: file_apollo_trace_proto_depIdxs, 3200 EnumInfos: file_apollo_trace_proto_enumTypes, 3201 MessageInfos: file_apollo_trace_proto_msgTypes, 3202 }.Build() 3203 File_apollo_trace_proto = out.File 3204 file_apollo_trace_proto_rawDesc = nil 3205 file_apollo_trace_proto_goTypes = nil 3206 file_apollo_trace_proto_depIdxs = nil 3207 }