github.com/cilium/cilium@v1.16.2/api/v1/flow/flow.pb.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // Copyright Authors of Hubble 3 4 // Code generated by protoc-gen-go. DO NOT EDIT. 5 // versions: 6 // protoc-gen-go v1.34.2 7 // protoc v5.28.1 8 // source: flow/flow.proto 9 10 package flow 11 12 import ( 13 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 14 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 15 anypb "google.golang.org/protobuf/types/known/anypb" 16 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 17 wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" 18 reflect "reflect" 19 sync "sync" 20 ) 21 22 const ( 23 // Verify that this generated code is sufficiently up-to-date. 24 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 25 // Verify that runtime/protoimpl is sufficiently up-to-date. 26 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 27 ) 28 29 type FlowType int32 30 31 const ( 32 FlowType_UNKNOWN_TYPE FlowType = 0 33 FlowType_L3_L4 FlowType = 1 // not sure about the underscore here, but `L34` also reads strange 34 FlowType_L7 FlowType = 2 35 FlowType_SOCK FlowType = 3 36 ) 37 38 // Enum value maps for FlowType. 39 var ( 40 FlowType_name = map[int32]string{ 41 0: "UNKNOWN_TYPE", 42 1: "L3_L4", 43 2: "L7", 44 3: "SOCK", 45 } 46 FlowType_value = map[string]int32{ 47 "UNKNOWN_TYPE": 0, 48 "L3_L4": 1, 49 "L7": 2, 50 "SOCK": 3, 51 } 52 ) 53 54 func (x FlowType) Enum() *FlowType { 55 p := new(FlowType) 56 *p = x 57 return p 58 } 59 60 func (x FlowType) String() string { 61 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 62 } 63 64 func (FlowType) Descriptor() protoreflect.EnumDescriptor { 65 return file_flow_flow_proto_enumTypes[0].Descriptor() 66 } 67 68 func (FlowType) Type() protoreflect.EnumType { 69 return &file_flow_flow_proto_enumTypes[0] 70 } 71 72 func (x FlowType) Number() protoreflect.EnumNumber { 73 return protoreflect.EnumNumber(x) 74 } 75 76 // Deprecated: Use FlowType.Descriptor instead. 77 func (FlowType) EnumDescriptor() ([]byte, []int) { 78 return file_flow_flow_proto_rawDescGZIP(), []int{0} 79 } 80 81 // These types correspond to definitions in pkg/policy/l4.go. 82 type AuthType int32 83 84 const ( 85 AuthType_DISABLED AuthType = 0 86 AuthType_SPIRE AuthType = 1 87 AuthType_TEST_ALWAYS_FAIL AuthType = 2 88 ) 89 90 // Enum value maps for AuthType. 91 var ( 92 AuthType_name = map[int32]string{ 93 0: "DISABLED", 94 1: "SPIRE", 95 2: "TEST_ALWAYS_FAIL", 96 } 97 AuthType_value = map[string]int32{ 98 "DISABLED": 0, 99 "SPIRE": 1, 100 "TEST_ALWAYS_FAIL": 2, 101 } 102 ) 103 104 func (x AuthType) Enum() *AuthType { 105 p := new(AuthType) 106 *p = x 107 return p 108 } 109 110 func (x AuthType) String() string { 111 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 112 } 113 114 func (AuthType) Descriptor() protoreflect.EnumDescriptor { 115 return file_flow_flow_proto_enumTypes[1].Descriptor() 116 } 117 118 func (AuthType) Type() protoreflect.EnumType { 119 return &file_flow_flow_proto_enumTypes[1] 120 } 121 122 func (x AuthType) Number() protoreflect.EnumNumber { 123 return protoreflect.EnumNumber(x) 124 } 125 126 // Deprecated: Use AuthType.Descriptor instead. 127 func (AuthType) EnumDescriptor() ([]byte, []int) { 128 return file_flow_flow_proto_rawDescGZIP(), []int{1} 129 } 130 131 type TraceObservationPoint int32 132 133 const ( 134 // Cilium treats 0 as TO_LXC, but its's something we should work to remove. 135 // This is intentionally set as unknown, so proto API can guarantee the 136 // observation point is always going to be present on trace events. 137 TraceObservationPoint_UNKNOWN_POINT TraceObservationPoint = 0 138 // TO_PROXY indicates network packets are transmitted towards the l7 proxy. 139 TraceObservationPoint_TO_PROXY TraceObservationPoint = 1 140 // TO_HOST indicates network packets are transmitted towards the host 141 // namespace. 142 TraceObservationPoint_TO_HOST TraceObservationPoint = 2 143 // TO_STACK indicates network packets are transmitted towards the Linux 144 // kernel network stack on host machine. 145 TraceObservationPoint_TO_STACK TraceObservationPoint = 3 146 // TO_OVERLAY indicates network packets are transmitted towards the tunnel 147 // device. 148 TraceObservationPoint_TO_OVERLAY TraceObservationPoint = 4 149 // TO_ENDPOINT indicates network packets are transmitted towards endpoints 150 // (containers). 151 TraceObservationPoint_TO_ENDPOINT TraceObservationPoint = 101 152 // FROM_ENDPOINT indicates network packets were received from endpoints 153 // (containers). 154 TraceObservationPoint_FROM_ENDPOINT TraceObservationPoint = 5 155 // FROM_PROXY indicates network packets were received from the l7 proxy. 156 TraceObservationPoint_FROM_PROXY TraceObservationPoint = 6 157 // FROM_HOST indicates network packets were received from the host 158 // namespace. 159 TraceObservationPoint_FROM_HOST TraceObservationPoint = 7 160 // FROM_STACK indicates network packets were received from the Linux kernel 161 // network stack on host machine. 162 TraceObservationPoint_FROM_STACK TraceObservationPoint = 8 163 // FROM_OVERLAY indicates network packets were received from the tunnel 164 // device. 165 TraceObservationPoint_FROM_OVERLAY TraceObservationPoint = 9 166 // FROM_NETWORK indicates network packets were received from native 167 // devices. 168 TraceObservationPoint_FROM_NETWORK TraceObservationPoint = 10 169 // TO_NETWORK indicates network packets are transmitted towards native 170 // devices. 171 TraceObservationPoint_TO_NETWORK TraceObservationPoint = 11 172 ) 173 174 // Enum value maps for TraceObservationPoint. 175 var ( 176 TraceObservationPoint_name = map[int32]string{ 177 0: "UNKNOWN_POINT", 178 1: "TO_PROXY", 179 2: "TO_HOST", 180 3: "TO_STACK", 181 4: "TO_OVERLAY", 182 101: "TO_ENDPOINT", 183 5: "FROM_ENDPOINT", 184 6: "FROM_PROXY", 185 7: "FROM_HOST", 186 8: "FROM_STACK", 187 9: "FROM_OVERLAY", 188 10: "FROM_NETWORK", 189 11: "TO_NETWORK", 190 } 191 TraceObservationPoint_value = map[string]int32{ 192 "UNKNOWN_POINT": 0, 193 "TO_PROXY": 1, 194 "TO_HOST": 2, 195 "TO_STACK": 3, 196 "TO_OVERLAY": 4, 197 "TO_ENDPOINT": 101, 198 "FROM_ENDPOINT": 5, 199 "FROM_PROXY": 6, 200 "FROM_HOST": 7, 201 "FROM_STACK": 8, 202 "FROM_OVERLAY": 9, 203 "FROM_NETWORK": 10, 204 "TO_NETWORK": 11, 205 } 206 ) 207 208 func (x TraceObservationPoint) Enum() *TraceObservationPoint { 209 p := new(TraceObservationPoint) 210 *p = x 211 return p 212 } 213 214 func (x TraceObservationPoint) String() string { 215 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 216 } 217 218 func (TraceObservationPoint) Descriptor() protoreflect.EnumDescriptor { 219 return file_flow_flow_proto_enumTypes[2].Descriptor() 220 } 221 222 func (TraceObservationPoint) Type() protoreflect.EnumType { 223 return &file_flow_flow_proto_enumTypes[2] 224 } 225 226 func (x TraceObservationPoint) Number() protoreflect.EnumNumber { 227 return protoreflect.EnumNumber(x) 228 } 229 230 // Deprecated: Use TraceObservationPoint.Descriptor instead. 231 func (TraceObservationPoint) EnumDescriptor() ([]byte, []int) { 232 return file_flow_flow_proto_rawDescGZIP(), []int{2} 233 } 234 235 type TraceReason int32 236 237 const ( 238 TraceReason_TRACE_REASON_UNKNOWN TraceReason = 0 239 TraceReason_NEW TraceReason = 1 240 TraceReason_ESTABLISHED TraceReason = 2 241 TraceReason_REPLY TraceReason = 3 242 TraceReason_RELATED TraceReason = 4 243 // Deprecated: Marked as deprecated in flow/flow.proto. 244 TraceReason_REOPENED TraceReason = 5 245 TraceReason_SRV6_ENCAP TraceReason = 6 246 TraceReason_SRV6_DECAP TraceReason = 7 247 TraceReason_ENCRYPT_OVERLAY TraceReason = 8 248 ) 249 250 // Enum value maps for TraceReason. 251 var ( 252 TraceReason_name = map[int32]string{ 253 0: "TRACE_REASON_UNKNOWN", 254 1: "NEW", 255 2: "ESTABLISHED", 256 3: "REPLY", 257 4: "RELATED", 258 5: "REOPENED", 259 6: "SRV6_ENCAP", 260 7: "SRV6_DECAP", 261 8: "ENCRYPT_OVERLAY", 262 } 263 TraceReason_value = map[string]int32{ 264 "TRACE_REASON_UNKNOWN": 0, 265 "NEW": 1, 266 "ESTABLISHED": 2, 267 "REPLY": 3, 268 "RELATED": 4, 269 "REOPENED": 5, 270 "SRV6_ENCAP": 6, 271 "SRV6_DECAP": 7, 272 "ENCRYPT_OVERLAY": 8, 273 } 274 ) 275 276 func (x TraceReason) Enum() *TraceReason { 277 p := new(TraceReason) 278 *p = x 279 return p 280 } 281 282 func (x TraceReason) String() string { 283 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 284 } 285 286 func (TraceReason) Descriptor() protoreflect.EnumDescriptor { 287 return file_flow_flow_proto_enumTypes[3].Descriptor() 288 } 289 290 func (TraceReason) Type() protoreflect.EnumType { 291 return &file_flow_flow_proto_enumTypes[3] 292 } 293 294 func (x TraceReason) Number() protoreflect.EnumNumber { 295 return protoreflect.EnumNumber(x) 296 } 297 298 // Deprecated: Use TraceReason.Descriptor instead. 299 func (TraceReason) EnumDescriptor() ([]byte, []int) { 300 return file_flow_flow_proto_rawDescGZIP(), []int{3} 301 } 302 303 // This enum corresponds to Cilium's L7 accesslog [FlowType](https://github.com/cilium/cilium/blob/728c79e427438ab6f8d9375b62fccd6fed4ace3a/pkg/proxy/accesslog/record.go#L26): 304 type L7FlowType int32 305 306 const ( 307 L7FlowType_UNKNOWN_L7_TYPE L7FlowType = 0 308 L7FlowType_REQUEST L7FlowType = 1 309 L7FlowType_RESPONSE L7FlowType = 2 310 L7FlowType_SAMPLE L7FlowType = 3 311 ) 312 313 // Enum value maps for L7FlowType. 314 var ( 315 L7FlowType_name = map[int32]string{ 316 0: "UNKNOWN_L7_TYPE", 317 1: "REQUEST", 318 2: "RESPONSE", 319 3: "SAMPLE", 320 } 321 L7FlowType_value = map[string]int32{ 322 "UNKNOWN_L7_TYPE": 0, 323 "REQUEST": 1, 324 "RESPONSE": 2, 325 "SAMPLE": 3, 326 } 327 ) 328 329 func (x L7FlowType) Enum() *L7FlowType { 330 p := new(L7FlowType) 331 *p = x 332 return p 333 } 334 335 func (x L7FlowType) String() string { 336 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 337 } 338 339 func (L7FlowType) Descriptor() protoreflect.EnumDescriptor { 340 return file_flow_flow_proto_enumTypes[4].Descriptor() 341 } 342 343 func (L7FlowType) Type() protoreflect.EnumType { 344 return &file_flow_flow_proto_enumTypes[4] 345 } 346 347 func (x L7FlowType) Number() protoreflect.EnumNumber { 348 return protoreflect.EnumNumber(x) 349 } 350 351 // Deprecated: Use L7FlowType.Descriptor instead. 352 func (L7FlowType) EnumDescriptor() ([]byte, []int) { 353 return file_flow_flow_proto_rawDescGZIP(), []int{4} 354 } 355 356 type IPVersion int32 357 358 const ( 359 IPVersion_IP_NOT_USED IPVersion = 0 360 IPVersion_IPv4 IPVersion = 1 361 IPVersion_IPv6 IPVersion = 2 362 ) 363 364 // Enum value maps for IPVersion. 365 var ( 366 IPVersion_name = map[int32]string{ 367 0: "IP_NOT_USED", 368 1: "IPv4", 369 2: "IPv6", 370 } 371 IPVersion_value = map[string]int32{ 372 "IP_NOT_USED": 0, 373 "IPv4": 1, 374 "IPv6": 2, 375 } 376 ) 377 378 func (x IPVersion) Enum() *IPVersion { 379 p := new(IPVersion) 380 *p = x 381 return p 382 } 383 384 func (x IPVersion) String() string { 385 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 386 } 387 388 func (IPVersion) Descriptor() protoreflect.EnumDescriptor { 389 return file_flow_flow_proto_enumTypes[5].Descriptor() 390 } 391 392 func (IPVersion) Type() protoreflect.EnumType { 393 return &file_flow_flow_proto_enumTypes[5] 394 } 395 396 func (x IPVersion) Number() protoreflect.EnumNumber { 397 return protoreflect.EnumNumber(x) 398 } 399 400 // Deprecated: Use IPVersion.Descriptor instead. 401 func (IPVersion) EnumDescriptor() ([]byte, []int) { 402 return file_flow_flow_proto_rawDescGZIP(), []int{5} 403 } 404 405 type Verdict int32 406 407 const ( 408 // UNKNOWN is used if there is no verdict for this flow event 409 Verdict_VERDICT_UNKNOWN Verdict = 0 410 // FORWARDED is used for flow events where the trace point has forwarded 411 // this packet or connection to the next processing entity. 412 Verdict_FORWARDED Verdict = 1 413 // DROPPED is used for flow events where the connection or packet has 414 // been dropped (e.g. due to a malformed packet, it being rejected by a 415 // network policy etc). The exact drop reason may be found in drop_reason_desc. 416 Verdict_DROPPED Verdict = 2 417 // ERROR is used for flow events where an error occurred during processing 418 Verdict_ERROR Verdict = 3 419 // AUDIT is used on policy verdict events in policy audit mode, to 420 // denominate flows that would have been dropped by policy if audit mode 421 // was turned off 422 Verdict_AUDIT Verdict = 4 423 // REDIRECTED is used for flow events which have been redirected to the proxy 424 Verdict_REDIRECTED Verdict = 5 425 // TRACED is used for flow events which have been observed at a trace point, 426 // but no particular verdict has been reached yet 427 Verdict_TRACED Verdict = 6 428 // TRANSLATED is used for flow events where an address has been translated 429 Verdict_TRANSLATED Verdict = 7 430 ) 431 432 // Enum value maps for Verdict. 433 var ( 434 Verdict_name = map[int32]string{ 435 0: "VERDICT_UNKNOWN", 436 1: "FORWARDED", 437 2: "DROPPED", 438 3: "ERROR", 439 4: "AUDIT", 440 5: "REDIRECTED", 441 6: "TRACED", 442 7: "TRANSLATED", 443 } 444 Verdict_value = map[string]int32{ 445 "VERDICT_UNKNOWN": 0, 446 "FORWARDED": 1, 447 "DROPPED": 2, 448 "ERROR": 3, 449 "AUDIT": 4, 450 "REDIRECTED": 5, 451 "TRACED": 6, 452 "TRANSLATED": 7, 453 } 454 ) 455 456 func (x Verdict) Enum() *Verdict { 457 p := new(Verdict) 458 *p = x 459 return p 460 } 461 462 func (x Verdict) String() string { 463 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 464 } 465 466 func (Verdict) Descriptor() protoreflect.EnumDescriptor { 467 return file_flow_flow_proto_enumTypes[6].Descriptor() 468 } 469 470 func (Verdict) Type() protoreflect.EnumType { 471 return &file_flow_flow_proto_enumTypes[6] 472 } 473 474 func (x Verdict) Number() protoreflect.EnumNumber { 475 return protoreflect.EnumNumber(x) 476 } 477 478 // Deprecated: Use Verdict.Descriptor instead. 479 func (Verdict) EnumDescriptor() ([]byte, []int) { 480 return file_flow_flow_proto_rawDescGZIP(), []int{6} 481 } 482 483 // These values are shared with pkg/monitor/api/drop.go and bpf/lib/common.h. 484 // Note that non-drop reasons (i.e. values less than api.DropMin) are not used 485 // here. 486 type DropReason int32 487 488 const ( 489 // non-drop reasons 490 DropReason_DROP_REASON_UNKNOWN DropReason = 0 491 // drop reasons 492 // 493 // Deprecated: Marked as deprecated in flow/flow.proto. 494 DropReason_INVALID_SOURCE_MAC DropReason = 130 495 // Deprecated: Marked as deprecated in flow/flow.proto. 496 DropReason_INVALID_DESTINATION_MAC DropReason = 131 497 DropReason_INVALID_SOURCE_IP DropReason = 132 498 DropReason_POLICY_DENIED DropReason = 133 499 DropReason_INVALID_PACKET_DROPPED DropReason = 134 500 DropReason_CT_TRUNCATED_OR_INVALID_HEADER DropReason = 135 501 DropReason_CT_MISSING_TCP_ACK_FLAG DropReason = 136 502 DropReason_CT_UNKNOWN_L4_PROTOCOL DropReason = 137 503 // Deprecated: Marked as deprecated in flow/flow.proto. 504 DropReason_CT_CANNOT_CREATE_ENTRY_FROM_PACKET DropReason = 138 505 DropReason_UNSUPPORTED_L3_PROTOCOL DropReason = 139 506 DropReason_MISSED_TAIL_CALL DropReason = 140 507 DropReason_ERROR_WRITING_TO_PACKET DropReason = 141 508 DropReason_UNKNOWN_L4_PROTOCOL DropReason = 142 509 DropReason_UNKNOWN_ICMPV4_CODE DropReason = 143 510 DropReason_UNKNOWN_ICMPV4_TYPE DropReason = 144 511 DropReason_UNKNOWN_ICMPV6_CODE DropReason = 145 512 DropReason_UNKNOWN_ICMPV6_TYPE DropReason = 146 513 DropReason_ERROR_RETRIEVING_TUNNEL_KEY DropReason = 147 514 // Deprecated: Marked as deprecated in flow/flow.proto. 515 DropReason_ERROR_RETRIEVING_TUNNEL_OPTIONS DropReason = 148 516 // Deprecated: Marked as deprecated in flow/flow.proto. 517 DropReason_INVALID_GENEVE_OPTION DropReason = 149 518 DropReason_UNKNOWN_L3_TARGET_ADDRESS DropReason = 150 519 DropReason_STALE_OR_UNROUTABLE_IP DropReason = 151 520 // Deprecated: Marked as deprecated in flow/flow.proto. 521 DropReason_NO_MATCHING_LOCAL_CONTAINER_FOUND DropReason = 152 522 DropReason_ERROR_WHILE_CORRECTING_L3_CHECKSUM DropReason = 153 523 DropReason_ERROR_WHILE_CORRECTING_L4_CHECKSUM DropReason = 154 524 DropReason_CT_MAP_INSERTION_FAILED DropReason = 155 525 DropReason_INVALID_IPV6_EXTENSION_HEADER DropReason = 156 526 DropReason_IP_FRAGMENTATION_NOT_SUPPORTED DropReason = 157 527 DropReason_SERVICE_BACKEND_NOT_FOUND DropReason = 158 528 DropReason_NO_TUNNEL_OR_ENCAPSULATION_ENDPOINT DropReason = 160 529 DropReason_FAILED_TO_INSERT_INTO_PROXYMAP DropReason = 161 530 DropReason_REACHED_EDT_RATE_LIMITING_DROP_HORIZON DropReason = 162 531 DropReason_UNKNOWN_CONNECTION_TRACKING_STATE DropReason = 163 532 DropReason_LOCAL_HOST_IS_UNREACHABLE DropReason = 164 533 DropReason_NO_CONFIGURATION_AVAILABLE_TO_PERFORM_POLICY_DECISION DropReason = 165 534 DropReason_UNSUPPORTED_L2_PROTOCOL DropReason = 166 535 DropReason_NO_MAPPING_FOR_NAT_MASQUERADE DropReason = 167 536 DropReason_UNSUPPORTED_PROTOCOL_FOR_NAT_MASQUERADE DropReason = 168 537 DropReason_FIB_LOOKUP_FAILED DropReason = 169 538 DropReason_ENCAPSULATION_TRAFFIC_IS_PROHIBITED DropReason = 170 539 DropReason_INVALID_IDENTITY DropReason = 171 540 DropReason_UNKNOWN_SENDER DropReason = 172 541 DropReason_NAT_NOT_NEEDED DropReason = 173 542 DropReason_IS_A_CLUSTERIP DropReason = 174 543 DropReason_FIRST_LOGICAL_DATAGRAM_FRAGMENT_NOT_FOUND DropReason = 175 544 DropReason_FORBIDDEN_ICMPV6_MESSAGE DropReason = 176 545 DropReason_DENIED_BY_LB_SRC_RANGE_CHECK DropReason = 177 546 DropReason_SOCKET_LOOKUP_FAILED DropReason = 178 547 DropReason_SOCKET_ASSIGN_FAILED DropReason = 179 548 DropReason_PROXY_REDIRECTION_NOT_SUPPORTED_FOR_PROTOCOL DropReason = 180 549 DropReason_POLICY_DENY DropReason = 181 550 DropReason_VLAN_FILTERED DropReason = 182 551 DropReason_INVALID_VNI DropReason = 183 552 DropReason_INVALID_TC_BUFFER DropReason = 184 553 DropReason_NO_SID DropReason = 185 554 // Deprecated: Marked as deprecated in flow/flow.proto. 555 DropReason_MISSING_SRV6_STATE DropReason = 186 556 DropReason_NAT46 DropReason = 187 557 DropReason_NAT64 DropReason = 188 558 DropReason_AUTH_REQUIRED DropReason = 189 559 DropReason_CT_NO_MAP_FOUND DropReason = 190 560 DropReason_SNAT_NO_MAP_FOUND DropReason = 191 561 DropReason_INVALID_CLUSTER_ID DropReason = 192 562 DropReason_UNSUPPORTED_PROTOCOL_FOR_DSR_ENCAP DropReason = 193 563 DropReason_NO_EGRESS_GATEWAY DropReason = 194 564 DropReason_UNENCRYPTED_TRAFFIC DropReason = 195 565 DropReason_TTL_EXCEEDED DropReason = 196 566 DropReason_NO_NODE_ID DropReason = 197 567 DropReason_DROP_RATE_LIMITED DropReason = 198 568 DropReason_IGMP_HANDLED DropReason = 199 569 DropReason_IGMP_SUBSCRIBED DropReason = 200 570 DropReason_MULTICAST_HANDLED DropReason = 201 571 // A BPF program wants to tail call into bpf_host, but the host datapath 572 // hasn't been loaded yet. 573 DropReason_DROP_HOST_NOT_READY DropReason = 202 574 // A BPF program wants to tail call some endpoint's policy program in the 575 // POLICY_CALL_MAP, but the program is not available. 576 DropReason_DROP_EP_NOT_READY DropReason = 203 577 // An Egress Gateway node matched a packet against an Egress Gateway policy 578 // that didn't select a valid Egress IP. 579 DropReason_DROP_NO_EGRESS_IP DropReason = 204 580 ) 581 582 // Enum value maps for DropReason. 583 var ( 584 DropReason_name = map[int32]string{ 585 0: "DROP_REASON_UNKNOWN", 586 130: "INVALID_SOURCE_MAC", 587 131: "INVALID_DESTINATION_MAC", 588 132: "INVALID_SOURCE_IP", 589 133: "POLICY_DENIED", 590 134: "INVALID_PACKET_DROPPED", 591 135: "CT_TRUNCATED_OR_INVALID_HEADER", 592 136: "CT_MISSING_TCP_ACK_FLAG", 593 137: "CT_UNKNOWN_L4_PROTOCOL", 594 138: "CT_CANNOT_CREATE_ENTRY_FROM_PACKET", 595 139: "UNSUPPORTED_L3_PROTOCOL", 596 140: "MISSED_TAIL_CALL", 597 141: "ERROR_WRITING_TO_PACKET", 598 142: "UNKNOWN_L4_PROTOCOL", 599 143: "UNKNOWN_ICMPV4_CODE", 600 144: "UNKNOWN_ICMPV4_TYPE", 601 145: "UNKNOWN_ICMPV6_CODE", 602 146: "UNKNOWN_ICMPV6_TYPE", 603 147: "ERROR_RETRIEVING_TUNNEL_KEY", 604 148: "ERROR_RETRIEVING_TUNNEL_OPTIONS", 605 149: "INVALID_GENEVE_OPTION", 606 150: "UNKNOWN_L3_TARGET_ADDRESS", 607 151: "STALE_OR_UNROUTABLE_IP", 608 152: "NO_MATCHING_LOCAL_CONTAINER_FOUND", 609 153: "ERROR_WHILE_CORRECTING_L3_CHECKSUM", 610 154: "ERROR_WHILE_CORRECTING_L4_CHECKSUM", 611 155: "CT_MAP_INSERTION_FAILED", 612 156: "INVALID_IPV6_EXTENSION_HEADER", 613 157: "IP_FRAGMENTATION_NOT_SUPPORTED", 614 158: "SERVICE_BACKEND_NOT_FOUND", 615 160: "NO_TUNNEL_OR_ENCAPSULATION_ENDPOINT", 616 161: "FAILED_TO_INSERT_INTO_PROXYMAP", 617 162: "REACHED_EDT_RATE_LIMITING_DROP_HORIZON", 618 163: "UNKNOWN_CONNECTION_TRACKING_STATE", 619 164: "LOCAL_HOST_IS_UNREACHABLE", 620 165: "NO_CONFIGURATION_AVAILABLE_TO_PERFORM_POLICY_DECISION", 621 166: "UNSUPPORTED_L2_PROTOCOL", 622 167: "NO_MAPPING_FOR_NAT_MASQUERADE", 623 168: "UNSUPPORTED_PROTOCOL_FOR_NAT_MASQUERADE", 624 169: "FIB_LOOKUP_FAILED", 625 170: "ENCAPSULATION_TRAFFIC_IS_PROHIBITED", 626 171: "INVALID_IDENTITY", 627 172: "UNKNOWN_SENDER", 628 173: "NAT_NOT_NEEDED", 629 174: "IS_A_CLUSTERIP", 630 175: "FIRST_LOGICAL_DATAGRAM_FRAGMENT_NOT_FOUND", 631 176: "FORBIDDEN_ICMPV6_MESSAGE", 632 177: "DENIED_BY_LB_SRC_RANGE_CHECK", 633 178: "SOCKET_LOOKUP_FAILED", 634 179: "SOCKET_ASSIGN_FAILED", 635 180: "PROXY_REDIRECTION_NOT_SUPPORTED_FOR_PROTOCOL", 636 181: "POLICY_DENY", 637 182: "VLAN_FILTERED", 638 183: "INVALID_VNI", 639 184: "INVALID_TC_BUFFER", 640 185: "NO_SID", 641 186: "MISSING_SRV6_STATE", 642 187: "NAT46", 643 188: "NAT64", 644 189: "AUTH_REQUIRED", 645 190: "CT_NO_MAP_FOUND", 646 191: "SNAT_NO_MAP_FOUND", 647 192: "INVALID_CLUSTER_ID", 648 193: "UNSUPPORTED_PROTOCOL_FOR_DSR_ENCAP", 649 194: "NO_EGRESS_GATEWAY", 650 195: "UNENCRYPTED_TRAFFIC", 651 196: "TTL_EXCEEDED", 652 197: "NO_NODE_ID", 653 198: "DROP_RATE_LIMITED", 654 199: "IGMP_HANDLED", 655 200: "IGMP_SUBSCRIBED", 656 201: "MULTICAST_HANDLED", 657 202: "DROP_HOST_NOT_READY", 658 203: "DROP_EP_NOT_READY", 659 204: "DROP_NO_EGRESS_IP", 660 } 661 DropReason_value = map[string]int32{ 662 "DROP_REASON_UNKNOWN": 0, 663 "INVALID_SOURCE_MAC": 130, 664 "INVALID_DESTINATION_MAC": 131, 665 "INVALID_SOURCE_IP": 132, 666 "POLICY_DENIED": 133, 667 "INVALID_PACKET_DROPPED": 134, 668 "CT_TRUNCATED_OR_INVALID_HEADER": 135, 669 "CT_MISSING_TCP_ACK_FLAG": 136, 670 "CT_UNKNOWN_L4_PROTOCOL": 137, 671 "CT_CANNOT_CREATE_ENTRY_FROM_PACKET": 138, 672 "UNSUPPORTED_L3_PROTOCOL": 139, 673 "MISSED_TAIL_CALL": 140, 674 "ERROR_WRITING_TO_PACKET": 141, 675 "UNKNOWN_L4_PROTOCOL": 142, 676 "UNKNOWN_ICMPV4_CODE": 143, 677 "UNKNOWN_ICMPV4_TYPE": 144, 678 "UNKNOWN_ICMPV6_CODE": 145, 679 "UNKNOWN_ICMPV6_TYPE": 146, 680 "ERROR_RETRIEVING_TUNNEL_KEY": 147, 681 "ERROR_RETRIEVING_TUNNEL_OPTIONS": 148, 682 "INVALID_GENEVE_OPTION": 149, 683 "UNKNOWN_L3_TARGET_ADDRESS": 150, 684 "STALE_OR_UNROUTABLE_IP": 151, 685 "NO_MATCHING_LOCAL_CONTAINER_FOUND": 152, 686 "ERROR_WHILE_CORRECTING_L3_CHECKSUM": 153, 687 "ERROR_WHILE_CORRECTING_L4_CHECKSUM": 154, 688 "CT_MAP_INSERTION_FAILED": 155, 689 "INVALID_IPV6_EXTENSION_HEADER": 156, 690 "IP_FRAGMENTATION_NOT_SUPPORTED": 157, 691 "SERVICE_BACKEND_NOT_FOUND": 158, 692 "NO_TUNNEL_OR_ENCAPSULATION_ENDPOINT": 160, 693 "FAILED_TO_INSERT_INTO_PROXYMAP": 161, 694 "REACHED_EDT_RATE_LIMITING_DROP_HORIZON": 162, 695 "UNKNOWN_CONNECTION_TRACKING_STATE": 163, 696 "LOCAL_HOST_IS_UNREACHABLE": 164, 697 "NO_CONFIGURATION_AVAILABLE_TO_PERFORM_POLICY_DECISION": 165, 698 "UNSUPPORTED_L2_PROTOCOL": 166, 699 "NO_MAPPING_FOR_NAT_MASQUERADE": 167, 700 "UNSUPPORTED_PROTOCOL_FOR_NAT_MASQUERADE": 168, 701 "FIB_LOOKUP_FAILED": 169, 702 "ENCAPSULATION_TRAFFIC_IS_PROHIBITED": 170, 703 "INVALID_IDENTITY": 171, 704 "UNKNOWN_SENDER": 172, 705 "NAT_NOT_NEEDED": 173, 706 "IS_A_CLUSTERIP": 174, 707 "FIRST_LOGICAL_DATAGRAM_FRAGMENT_NOT_FOUND": 175, 708 "FORBIDDEN_ICMPV6_MESSAGE": 176, 709 "DENIED_BY_LB_SRC_RANGE_CHECK": 177, 710 "SOCKET_LOOKUP_FAILED": 178, 711 "SOCKET_ASSIGN_FAILED": 179, 712 "PROXY_REDIRECTION_NOT_SUPPORTED_FOR_PROTOCOL": 180, 713 "POLICY_DENY": 181, 714 "VLAN_FILTERED": 182, 715 "INVALID_VNI": 183, 716 "INVALID_TC_BUFFER": 184, 717 "NO_SID": 185, 718 "MISSING_SRV6_STATE": 186, 719 "NAT46": 187, 720 "NAT64": 188, 721 "AUTH_REQUIRED": 189, 722 "CT_NO_MAP_FOUND": 190, 723 "SNAT_NO_MAP_FOUND": 191, 724 "INVALID_CLUSTER_ID": 192, 725 "UNSUPPORTED_PROTOCOL_FOR_DSR_ENCAP": 193, 726 "NO_EGRESS_GATEWAY": 194, 727 "UNENCRYPTED_TRAFFIC": 195, 728 "TTL_EXCEEDED": 196, 729 "NO_NODE_ID": 197, 730 "DROP_RATE_LIMITED": 198, 731 "IGMP_HANDLED": 199, 732 "IGMP_SUBSCRIBED": 200, 733 "MULTICAST_HANDLED": 201, 734 "DROP_HOST_NOT_READY": 202, 735 "DROP_EP_NOT_READY": 203, 736 "DROP_NO_EGRESS_IP": 204, 737 } 738 ) 739 740 func (x DropReason) Enum() *DropReason { 741 p := new(DropReason) 742 *p = x 743 return p 744 } 745 746 func (x DropReason) String() string { 747 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 748 } 749 750 func (DropReason) Descriptor() protoreflect.EnumDescriptor { 751 return file_flow_flow_proto_enumTypes[7].Descriptor() 752 } 753 754 func (DropReason) Type() protoreflect.EnumType { 755 return &file_flow_flow_proto_enumTypes[7] 756 } 757 758 func (x DropReason) Number() protoreflect.EnumNumber { 759 return protoreflect.EnumNumber(x) 760 } 761 762 // Deprecated: Use DropReason.Descriptor instead. 763 func (DropReason) EnumDescriptor() ([]byte, []int) { 764 return file_flow_flow_proto_rawDescGZIP(), []int{7} 765 } 766 767 type TrafficDirection int32 768 769 const ( 770 TrafficDirection_TRAFFIC_DIRECTION_UNKNOWN TrafficDirection = 0 771 TrafficDirection_INGRESS TrafficDirection = 1 772 TrafficDirection_EGRESS TrafficDirection = 2 773 ) 774 775 // Enum value maps for TrafficDirection. 776 var ( 777 TrafficDirection_name = map[int32]string{ 778 0: "TRAFFIC_DIRECTION_UNKNOWN", 779 1: "INGRESS", 780 2: "EGRESS", 781 } 782 TrafficDirection_value = map[string]int32{ 783 "TRAFFIC_DIRECTION_UNKNOWN": 0, 784 "INGRESS": 1, 785 "EGRESS": 2, 786 } 787 ) 788 789 func (x TrafficDirection) Enum() *TrafficDirection { 790 p := new(TrafficDirection) 791 *p = x 792 return p 793 } 794 795 func (x TrafficDirection) String() string { 796 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 797 } 798 799 func (TrafficDirection) Descriptor() protoreflect.EnumDescriptor { 800 return file_flow_flow_proto_enumTypes[8].Descriptor() 801 } 802 803 func (TrafficDirection) Type() protoreflect.EnumType { 804 return &file_flow_flow_proto_enumTypes[8] 805 } 806 807 func (x TrafficDirection) Number() protoreflect.EnumNumber { 808 return protoreflect.EnumNumber(x) 809 } 810 811 // Deprecated: Use TrafficDirection.Descriptor instead. 812 func (TrafficDirection) EnumDescriptor() ([]byte, []int) { 813 return file_flow_flow_proto_rawDescGZIP(), []int{8} 814 } 815 816 // These values are shared with pkg/monitor/api/datapath_debug.go and bpf/lib/dbg.h. 817 type DebugCapturePoint int32 818 819 const ( 820 DebugCapturePoint_DBG_CAPTURE_POINT_UNKNOWN DebugCapturePoint = 0 821 DebugCapturePoint_DBG_CAPTURE_DELIVERY DebugCapturePoint = 4 822 DebugCapturePoint_DBG_CAPTURE_FROM_LB DebugCapturePoint = 5 823 DebugCapturePoint_DBG_CAPTURE_AFTER_V46 DebugCapturePoint = 6 824 DebugCapturePoint_DBG_CAPTURE_AFTER_V64 DebugCapturePoint = 7 825 DebugCapturePoint_DBG_CAPTURE_PROXY_PRE DebugCapturePoint = 8 826 DebugCapturePoint_DBG_CAPTURE_PROXY_POST DebugCapturePoint = 9 827 DebugCapturePoint_DBG_CAPTURE_SNAT_PRE DebugCapturePoint = 10 828 DebugCapturePoint_DBG_CAPTURE_SNAT_POST DebugCapturePoint = 11 829 ) 830 831 // Enum value maps for DebugCapturePoint. 832 var ( 833 DebugCapturePoint_name = map[int32]string{ 834 0: "DBG_CAPTURE_POINT_UNKNOWN", 835 4: "DBG_CAPTURE_DELIVERY", 836 5: "DBG_CAPTURE_FROM_LB", 837 6: "DBG_CAPTURE_AFTER_V46", 838 7: "DBG_CAPTURE_AFTER_V64", 839 8: "DBG_CAPTURE_PROXY_PRE", 840 9: "DBG_CAPTURE_PROXY_POST", 841 10: "DBG_CAPTURE_SNAT_PRE", 842 11: "DBG_CAPTURE_SNAT_POST", 843 } 844 DebugCapturePoint_value = map[string]int32{ 845 "DBG_CAPTURE_POINT_UNKNOWN": 0, 846 "DBG_CAPTURE_DELIVERY": 4, 847 "DBG_CAPTURE_FROM_LB": 5, 848 "DBG_CAPTURE_AFTER_V46": 6, 849 "DBG_CAPTURE_AFTER_V64": 7, 850 "DBG_CAPTURE_PROXY_PRE": 8, 851 "DBG_CAPTURE_PROXY_POST": 9, 852 "DBG_CAPTURE_SNAT_PRE": 10, 853 "DBG_CAPTURE_SNAT_POST": 11, 854 } 855 ) 856 857 func (x DebugCapturePoint) Enum() *DebugCapturePoint { 858 p := new(DebugCapturePoint) 859 *p = x 860 return p 861 } 862 863 func (x DebugCapturePoint) String() string { 864 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 865 } 866 867 func (DebugCapturePoint) Descriptor() protoreflect.EnumDescriptor { 868 return file_flow_flow_proto_enumTypes[9].Descriptor() 869 } 870 871 func (DebugCapturePoint) Type() protoreflect.EnumType { 872 return &file_flow_flow_proto_enumTypes[9] 873 } 874 875 func (x DebugCapturePoint) Number() protoreflect.EnumNumber { 876 return protoreflect.EnumNumber(x) 877 } 878 879 // Deprecated: Use DebugCapturePoint.Descriptor instead. 880 func (DebugCapturePoint) EnumDescriptor() ([]byte, []int) { 881 return file_flow_flow_proto_rawDescGZIP(), []int{9} 882 } 883 884 // EventType are constants are based on the ones from <linux/perf_event.h>. 885 type EventType int32 886 887 const ( 888 EventType_UNKNOWN EventType = 0 889 // EventSample is equivalent to PERF_RECORD_SAMPLE. 890 EventType_EventSample EventType = 9 891 // RecordLost is equivalent to PERF_RECORD_LOST. 892 EventType_RecordLost EventType = 2 893 ) 894 895 // Enum value maps for EventType. 896 var ( 897 EventType_name = map[int32]string{ 898 0: "UNKNOWN", 899 9: "EventSample", 900 2: "RecordLost", 901 } 902 EventType_value = map[string]int32{ 903 "UNKNOWN": 0, 904 "EventSample": 9, 905 "RecordLost": 2, 906 } 907 ) 908 909 func (x EventType) Enum() *EventType { 910 p := new(EventType) 911 *p = x 912 return p 913 } 914 915 func (x EventType) String() string { 916 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 917 } 918 919 func (EventType) Descriptor() protoreflect.EnumDescriptor { 920 return file_flow_flow_proto_enumTypes[10].Descriptor() 921 } 922 923 func (EventType) Type() protoreflect.EnumType { 924 return &file_flow_flow_proto_enumTypes[10] 925 } 926 927 func (x EventType) Number() protoreflect.EnumNumber { 928 return protoreflect.EnumNumber(x) 929 } 930 931 // Deprecated: Use EventType.Descriptor instead. 932 func (EventType) EnumDescriptor() ([]byte, []int) { 933 return file_flow_flow_proto_rawDescGZIP(), []int{10} 934 } 935 936 type LostEventSource int32 937 938 const ( 939 LostEventSource_UNKNOWN_LOST_EVENT_SOURCE LostEventSource = 0 940 // PERF_EVENT_RING_BUFFER indicates that events were dropped in the BPF 941 // perf event ring buffer, indicating that userspace agent did not keep up 942 // with the events produced by the datapath. 943 LostEventSource_PERF_EVENT_RING_BUFFER LostEventSource = 1 944 // OBSERVER_EVENTS_QUEUE indicates that events were dropped because the 945 // Hubble events queue was full, indicating that the Hubble observer did 946 // not keep up. 947 LostEventSource_OBSERVER_EVENTS_QUEUE LostEventSource = 2 948 // HUBBLE_RING_BUFFER indicates that the event was dropped because it could 949 // not be read from Hubble's ring buffer in time before being overwritten. 950 LostEventSource_HUBBLE_RING_BUFFER LostEventSource = 3 951 ) 952 953 // Enum value maps for LostEventSource. 954 var ( 955 LostEventSource_name = map[int32]string{ 956 0: "UNKNOWN_LOST_EVENT_SOURCE", 957 1: "PERF_EVENT_RING_BUFFER", 958 2: "OBSERVER_EVENTS_QUEUE", 959 3: "HUBBLE_RING_BUFFER", 960 } 961 LostEventSource_value = map[string]int32{ 962 "UNKNOWN_LOST_EVENT_SOURCE": 0, 963 "PERF_EVENT_RING_BUFFER": 1, 964 "OBSERVER_EVENTS_QUEUE": 2, 965 "HUBBLE_RING_BUFFER": 3, 966 } 967 ) 968 969 func (x LostEventSource) Enum() *LostEventSource { 970 p := new(LostEventSource) 971 *p = x 972 return p 973 } 974 975 func (x LostEventSource) String() string { 976 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 977 } 978 979 func (LostEventSource) Descriptor() protoreflect.EnumDescriptor { 980 return file_flow_flow_proto_enumTypes[11].Descriptor() 981 } 982 983 func (LostEventSource) Type() protoreflect.EnumType { 984 return &file_flow_flow_proto_enumTypes[11] 985 } 986 987 func (x LostEventSource) Number() protoreflect.EnumNumber { 988 return protoreflect.EnumNumber(x) 989 } 990 991 // Deprecated: Use LostEventSource.Descriptor instead. 992 func (LostEventSource) EnumDescriptor() ([]byte, []int) { 993 return file_flow_flow_proto_rawDescGZIP(), []int{11} 994 } 995 996 // AgentEventType is the type of agent event. These values are shared with type 997 // AgentNotification in pkg/monitor/api/types.go. 998 type AgentEventType int32 999 1000 const ( 1001 AgentEventType_AGENT_EVENT_UNKNOWN AgentEventType = 0 1002 AgentEventType_AGENT_STARTED AgentEventType = 2 1003 AgentEventType_POLICY_UPDATED AgentEventType = 3 1004 AgentEventType_POLICY_DELETED AgentEventType = 4 1005 AgentEventType_ENDPOINT_REGENERATE_SUCCESS AgentEventType = 5 1006 AgentEventType_ENDPOINT_REGENERATE_FAILURE AgentEventType = 6 1007 AgentEventType_ENDPOINT_CREATED AgentEventType = 7 1008 AgentEventType_ENDPOINT_DELETED AgentEventType = 8 1009 AgentEventType_IPCACHE_UPSERTED AgentEventType = 9 1010 AgentEventType_IPCACHE_DELETED AgentEventType = 10 1011 AgentEventType_SERVICE_UPSERTED AgentEventType = 11 1012 AgentEventType_SERVICE_DELETED AgentEventType = 12 1013 ) 1014 1015 // Enum value maps for AgentEventType. 1016 var ( 1017 AgentEventType_name = map[int32]string{ 1018 0: "AGENT_EVENT_UNKNOWN", 1019 2: "AGENT_STARTED", 1020 3: "POLICY_UPDATED", 1021 4: "POLICY_DELETED", 1022 5: "ENDPOINT_REGENERATE_SUCCESS", 1023 6: "ENDPOINT_REGENERATE_FAILURE", 1024 7: "ENDPOINT_CREATED", 1025 8: "ENDPOINT_DELETED", 1026 9: "IPCACHE_UPSERTED", 1027 10: "IPCACHE_DELETED", 1028 11: "SERVICE_UPSERTED", 1029 12: "SERVICE_DELETED", 1030 } 1031 AgentEventType_value = map[string]int32{ 1032 "AGENT_EVENT_UNKNOWN": 0, 1033 "AGENT_STARTED": 2, 1034 "POLICY_UPDATED": 3, 1035 "POLICY_DELETED": 4, 1036 "ENDPOINT_REGENERATE_SUCCESS": 5, 1037 "ENDPOINT_REGENERATE_FAILURE": 6, 1038 "ENDPOINT_CREATED": 7, 1039 "ENDPOINT_DELETED": 8, 1040 "IPCACHE_UPSERTED": 9, 1041 "IPCACHE_DELETED": 10, 1042 "SERVICE_UPSERTED": 11, 1043 "SERVICE_DELETED": 12, 1044 } 1045 ) 1046 1047 func (x AgentEventType) Enum() *AgentEventType { 1048 p := new(AgentEventType) 1049 *p = x 1050 return p 1051 } 1052 1053 func (x AgentEventType) String() string { 1054 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 1055 } 1056 1057 func (AgentEventType) Descriptor() protoreflect.EnumDescriptor { 1058 return file_flow_flow_proto_enumTypes[12].Descriptor() 1059 } 1060 1061 func (AgentEventType) Type() protoreflect.EnumType { 1062 return &file_flow_flow_proto_enumTypes[12] 1063 } 1064 1065 func (x AgentEventType) Number() protoreflect.EnumNumber { 1066 return protoreflect.EnumNumber(x) 1067 } 1068 1069 // Deprecated: Use AgentEventType.Descriptor instead. 1070 func (AgentEventType) EnumDescriptor() ([]byte, []int) { 1071 return file_flow_flow_proto_rawDescGZIP(), []int{12} 1072 } 1073 1074 // This mirrors enum xlate_point in bpf/lib/trace_sock.h 1075 type SocketTranslationPoint int32 1076 1077 const ( 1078 SocketTranslationPoint_SOCK_XLATE_POINT_UNKNOWN SocketTranslationPoint = 0 1079 SocketTranslationPoint_SOCK_XLATE_POINT_PRE_DIRECTION_FWD SocketTranslationPoint = 1 // Pre service translation 1080 SocketTranslationPoint_SOCK_XLATE_POINT_POST_DIRECTION_FWD SocketTranslationPoint = 2 // Post service translation 1081 SocketTranslationPoint_SOCK_XLATE_POINT_PRE_DIRECTION_REV SocketTranslationPoint = 3 // Pre reverse service translation 1082 SocketTranslationPoint_SOCK_XLATE_POINT_POST_DIRECTION_REV SocketTranslationPoint = 4 // Post reverse service translation 1083 ) 1084 1085 // Enum value maps for SocketTranslationPoint. 1086 var ( 1087 SocketTranslationPoint_name = map[int32]string{ 1088 0: "SOCK_XLATE_POINT_UNKNOWN", 1089 1: "SOCK_XLATE_POINT_PRE_DIRECTION_FWD", 1090 2: "SOCK_XLATE_POINT_POST_DIRECTION_FWD", 1091 3: "SOCK_XLATE_POINT_PRE_DIRECTION_REV", 1092 4: "SOCK_XLATE_POINT_POST_DIRECTION_REV", 1093 } 1094 SocketTranslationPoint_value = map[string]int32{ 1095 "SOCK_XLATE_POINT_UNKNOWN": 0, 1096 "SOCK_XLATE_POINT_PRE_DIRECTION_FWD": 1, 1097 "SOCK_XLATE_POINT_POST_DIRECTION_FWD": 2, 1098 "SOCK_XLATE_POINT_PRE_DIRECTION_REV": 3, 1099 "SOCK_XLATE_POINT_POST_DIRECTION_REV": 4, 1100 } 1101 ) 1102 1103 func (x SocketTranslationPoint) Enum() *SocketTranslationPoint { 1104 p := new(SocketTranslationPoint) 1105 *p = x 1106 return p 1107 } 1108 1109 func (x SocketTranslationPoint) String() string { 1110 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 1111 } 1112 1113 func (SocketTranslationPoint) Descriptor() protoreflect.EnumDescriptor { 1114 return file_flow_flow_proto_enumTypes[13].Descriptor() 1115 } 1116 1117 func (SocketTranslationPoint) Type() protoreflect.EnumType { 1118 return &file_flow_flow_proto_enumTypes[13] 1119 } 1120 1121 func (x SocketTranslationPoint) Number() protoreflect.EnumNumber { 1122 return protoreflect.EnumNumber(x) 1123 } 1124 1125 // Deprecated: Use SocketTranslationPoint.Descriptor instead. 1126 func (SocketTranslationPoint) EnumDescriptor() ([]byte, []int) { 1127 return file_flow_flow_proto_rawDescGZIP(), []int{13} 1128 } 1129 1130 // These values are shared with pkg/monitor/api/datapath_debug.go and bpf/lib/dbg.h. 1131 type DebugEventType int32 1132 1133 const ( 1134 DebugEventType_DBG_EVENT_UNKNOWN DebugEventType = 0 1135 DebugEventType_DBG_GENERIC DebugEventType = 1 1136 DebugEventType_DBG_LOCAL_DELIVERY DebugEventType = 2 1137 DebugEventType_DBG_ENCAP DebugEventType = 3 1138 DebugEventType_DBG_LXC_FOUND DebugEventType = 4 1139 DebugEventType_DBG_POLICY_DENIED DebugEventType = 5 1140 DebugEventType_DBG_CT_LOOKUP DebugEventType = 6 1141 DebugEventType_DBG_CT_LOOKUP_REV DebugEventType = 7 1142 DebugEventType_DBG_CT_MATCH DebugEventType = 8 1143 DebugEventType_DBG_CT_CREATED DebugEventType = 9 1144 DebugEventType_DBG_CT_CREATED2 DebugEventType = 10 1145 DebugEventType_DBG_ICMP6_HANDLE DebugEventType = 11 1146 DebugEventType_DBG_ICMP6_REQUEST DebugEventType = 12 1147 DebugEventType_DBG_ICMP6_NS DebugEventType = 13 1148 DebugEventType_DBG_ICMP6_TIME_EXCEEDED DebugEventType = 14 1149 DebugEventType_DBG_CT_VERDICT DebugEventType = 15 1150 DebugEventType_DBG_DECAP DebugEventType = 16 1151 DebugEventType_DBG_PORT_MAP DebugEventType = 17 1152 DebugEventType_DBG_ERROR_RET DebugEventType = 18 1153 DebugEventType_DBG_TO_HOST DebugEventType = 19 1154 DebugEventType_DBG_TO_STACK DebugEventType = 20 1155 DebugEventType_DBG_PKT_HASH DebugEventType = 21 1156 DebugEventType_DBG_LB6_LOOKUP_FRONTEND DebugEventType = 22 1157 DebugEventType_DBG_LB6_LOOKUP_FRONTEND_FAIL DebugEventType = 23 1158 DebugEventType_DBG_LB6_LOOKUP_BACKEND_SLOT DebugEventType = 24 1159 DebugEventType_DBG_LB6_LOOKUP_BACKEND_SLOT_SUCCESS DebugEventType = 25 1160 DebugEventType_DBG_LB6_LOOKUP_BACKEND_SLOT_V2_FAIL DebugEventType = 26 1161 DebugEventType_DBG_LB6_LOOKUP_BACKEND_FAIL DebugEventType = 27 1162 DebugEventType_DBG_LB6_REVERSE_NAT_LOOKUP DebugEventType = 28 1163 DebugEventType_DBG_LB6_REVERSE_NAT DebugEventType = 29 1164 DebugEventType_DBG_LB4_LOOKUP_FRONTEND DebugEventType = 30 1165 DebugEventType_DBG_LB4_LOOKUP_FRONTEND_FAIL DebugEventType = 31 1166 DebugEventType_DBG_LB4_LOOKUP_BACKEND_SLOT DebugEventType = 32 1167 DebugEventType_DBG_LB4_LOOKUP_BACKEND_SLOT_SUCCESS DebugEventType = 33 1168 DebugEventType_DBG_LB4_LOOKUP_BACKEND_SLOT_V2_FAIL DebugEventType = 34 1169 DebugEventType_DBG_LB4_LOOKUP_BACKEND_FAIL DebugEventType = 35 1170 DebugEventType_DBG_LB4_REVERSE_NAT_LOOKUP DebugEventType = 36 1171 DebugEventType_DBG_LB4_REVERSE_NAT DebugEventType = 37 1172 DebugEventType_DBG_LB4_LOOPBACK_SNAT DebugEventType = 38 1173 DebugEventType_DBG_LB4_LOOPBACK_SNAT_REV DebugEventType = 39 1174 DebugEventType_DBG_CT_LOOKUP4 DebugEventType = 40 1175 DebugEventType_DBG_RR_BACKEND_SLOT_SEL DebugEventType = 41 1176 DebugEventType_DBG_REV_PROXY_LOOKUP DebugEventType = 42 1177 DebugEventType_DBG_REV_PROXY_FOUND DebugEventType = 43 1178 DebugEventType_DBG_REV_PROXY_UPDATE DebugEventType = 44 1179 DebugEventType_DBG_L4_POLICY DebugEventType = 45 1180 DebugEventType_DBG_NETDEV_IN_CLUSTER DebugEventType = 46 1181 DebugEventType_DBG_NETDEV_ENCAP4 DebugEventType = 47 1182 DebugEventType_DBG_CT_LOOKUP4_1 DebugEventType = 48 1183 DebugEventType_DBG_CT_LOOKUP4_2 DebugEventType = 49 1184 DebugEventType_DBG_CT_CREATED4 DebugEventType = 50 1185 DebugEventType_DBG_CT_LOOKUP6_1 DebugEventType = 51 1186 DebugEventType_DBG_CT_LOOKUP6_2 DebugEventType = 52 1187 DebugEventType_DBG_CT_CREATED6 DebugEventType = 53 1188 DebugEventType_DBG_SKIP_PROXY DebugEventType = 54 1189 DebugEventType_DBG_L4_CREATE DebugEventType = 55 1190 DebugEventType_DBG_IP_ID_MAP_FAILED4 DebugEventType = 56 1191 DebugEventType_DBG_IP_ID_MAP_FAILED6 DebugEventType = 57 1192 DebugEventType_DBG_IP_ID_MAP_SUCCEED4 DebugEventType = 58 1193 DebugEventType_DBG_IP_ID_MAP_SUCCEED6 DebugEventType = 59 1194 DebugEventType_DBG_LB_STALE_CT DebugEventType = 60 1195 DebugEventType_DBG_INHERIT_IDENTITY DebugEventType = 61 1196 DebugEventType_DBG_SK_LOOKUP4 DebugEventType = 62 1197 DebugEventType_DBG_SK_LOOKUP6 DebugEventType = 63 1198 DebugEventType_DBG_SK_ASSIGN DebugEventType = 64 1199 DebugEventType_DBG_L7_LB DebugEventType = 65 1200 DebugEventType_DBG_SKIP_POLICY DebugEventType = 66 1201 ) 1202 1203 // Enum value maps for DebugEventType. 1204 var ( 1205 DebugEventType_name = map[int32]string{ 1206 0: "DBG_EVENT_UNKNOWN", 1207 1: "DBG_GENERIC", 1208 2: "DBG_LOCAL_DELIVERY", 1209 3: "DBG_ENCAP", 1210 4: "DBG_LXC_FOUND", 1211 5: "DBG_POLICY_DENIED", 1212 6: "DBG_CT_LOOKUP", 1213 7: "DBG_CT_LOOKUP_REV", 1214 8: "DBG_CT_MATCH", 1215 9: "DBG_CT_CREATED", 1216 10: "DBG_CT_CREATED2", 1217 11: "DBG_ICMP6_HANDLE", 1218 12: "DBG_ICMP6_REQUEST", 1219 13: "DBG_ICMP6_NS", 1220 14: "DBG_ICMP6_TIME_EXCEEDED", 1221 15: "DBG_CT_VERDICT", 1222 16: "DBG_DECAP", 1223 17: "DBG_PORT_MAP", 1224 18: "DBG_ERROR_RET", 1225 19: "DBG_TO_HOST", 1226 20: "DBG_TO_STACK", 1227 21: "DBG_PKT_HASH", 1228 22: "DBG_LB6_LOOKUP_FRONTEND", 1229 23: "DBG_LB6_LOOKUP_FRONTEND_FAIL", 1230 24: "DBG_LB6_LOOKUP_BACKEND_SLOT", 1231 25: "DBG_LB6_LOOKUP_BACKEND_SLOT_SUCCESS", 1232 26: "DBG_LB6_LOOKUP_BACKEND_SLOT_V2_FAIL", 1233 27: "DBG_LB6_LOOKUP_BACKEND_FAIL", 1234 28: "DBG_LB6_REVERSE_NAT_LOOKUP", 1235 29: "DBG_LB6_REVERSE_NAT", 1236 30: "DBG_LB4_LOOKUP_FRONTEND", 1237 31: "DBG_LB4_LOOKUP_FRONTEND_FAIL", 1238 32: "DBG_LB4_LOOKUP_BACKEND_SLOT", 1239 33: "DBG_LB4_LOOKUP_BACKEND_SLOT_SUCCESS", 1240 34: "DBG_LB4_LOOKUP_BACKEND_SLOT_V2_FAIL", 1241 35: "DBG_LB4_LOOKUP_BACKEND_FAIL", 1242 36: "DBG_LB4_REVERSE_NAT_LOOKUP", 1243 37: "DBG_LB4_REVERSE_NAT", 1244 38: "DBG_LB4_LOOPBACK_SNAT", 1245 39: "DBG_LB4_LOOPBACK_SNAT_REV", 1246 40: "DBG_CT_LOOKUP4", 1247 41: "DBG_RR_BACKEND_SLOT_SEL", 1248 42: "DBG_REV_PROXY_LOOKUP", 1249 43: "DBG_REV_PROXY_FOUND", 1250 44: "DBG_REV_PROXY_UPDATE", 1251 45: "DBG_L4_POLICY", 1252 46: "DBG_NETDEV_IN_CLUSTER", 1253 47: "DBG_NETDEV_ENCAP4", 1254 48: "DBG_CT_LOOKUP4_1", 1255 49: "DBG_CT_LOOKUP4_2", 1256 50: "DBG_CT_CREATED4", 1257 51: "DBG_CT_LOOKUP6_1", 1258 52: "DBG_CT_LOOKUP6_2", 1259 53: "DBG_CT_CREATED6", 1260 54: "DBG_SKIP_PROXY", 1261 55: "DBG_L4_CREATE", 1262 56: "DBG_IP_ID_MAP_FAILED4", 1263 57: "DBG_IP_ID_MAP_FAILED6", 1264 58: "DBG_IP_ID_MAP_SUCCEED4", 1265 59: "DBG_IP_ID_MAP_SUCCEED6", 1266 60: "DBG_LB_STALE_CT", 1267 61: "DBG_INHERIT_IDENTITY", 1268 62: "DBG_SK_LOOKUP4", 1269 63: "DBG_SK_LOOKUP6", 1270 64: "DBG_SK_ASSIGN", 1271 65: "DBG_L7_LB", 1272 66: "DBG_SKIP_POLICY", 1273 } 1274 DebugEventType_value = map[string]int32{ 1275 "DBG_EVENT_UNKNOWN": 0, 1276 "DBG_GENERIC": 1, 1277 "DBG_LOCAL_DELIVERY": 2, 1278 "DBG_ENCAP": 3, 1279 "DBG_LXC_FOUND": 4, 1280 "DBG_POLICY_DENIED": 5, 1281 "DBG_CT_LOOKUP": 6, 1282 "DBG_CT_LOOKUP_REV": 7, 1283 "DBG_CT_MATCH": 8, 1284 "DBG_CT_CREATED": 9, 1285 "DBG_CT_CREATED2": 10, 1286 "DBG_ICMP6_HANDLE": 11, 1287 "DBG_ICMP6_REQUEST": 12, 1288 "DBG_ICMP6_NS": 13, 1289 "DBG_ICMP6_TIME_EXCEEDED": 14, 1290 "DBG_CT_VERDICT": 15, 1291 "DBG_DECAP": 16, 1292 "DBG_PORT_MAP": 17, 1293 "DBG_ERROR_RET": 18, 1294 "DBG_TO_HOST": 19, 1295 "DBG_TO_STACK": 20, 1296 "DBG_PKT_HASH": 21, 1297 "DBG_LB6_LOOKUP_FRONTEND": 22, 1298 "DBG_LB6_LOOKUP_FRONTEND_FAIL": 23, 1299 "DBG_LB6_LOOKUP_BACKEND_SLOT": 24, 1300 "DBG_LB6_LOOKUP_BACKEND_SLOT_SUCCESS": 25, 1301 "DBG_LB6_LOOKUP_BACKEND_SLOT_V2_FAIL": 26, 1302 "DBG_LB6_LOOKUP_BACKEND_FAIL": 27, 1303 "DBG_LB6_REVERSE_NAT_LOOKUP": 28, 1304 "DBG_LB6_REVERSE_NAT": 29, 1305 "DBG_LB4_LOOKUP_FRONTEND": 30, 1306 "DBG_LB4_LOOKUP_FRONTEND_FAIL": 31, 1307 "DBG_LB4_LOOKUP_BACKEND_SLOT": 32, 1308 "DBG_LB4_LOOKUP_BACKEND_SLOT_SUCCESS": 33, 1309 "DBG_LB4_LOOKUP_BACKEND_SLOT_V2_FAIL": 34, 1310 "DBG_LB4_LOOKUP_BACKEND_FAIL": 35, 1311 "DBG_LB4_REVERSE_NAT_LOOKUP": 36, 1312 "DBG_LB4_REVERSE_NAT": 37, 1313 "DBG_LB4_LOOPBACK_SNAT": 38, 1314 "DBG_LB4_LOOPBACK_SNAT_REV": 39, 1315 "DBG_CT_LOOKUP4": 40, 1316 "DBG_RR_BACKEND_SLOT_SEL": 41, 1317 "DBG_REV_PROXY_LOOKUP": 42, 1318 "DBG_REV_PROXY_FOUND": 43, 1319 "DBG_REV_PROXY_UPDATE": 44, 1320 "DBG_L4_POLICY": 45, 1321 "DBG_NETDEV_IN_CLUSTER": 46, 1322 "DBG_NETDEV_ENCAP4": 47, 1323 "DBG_CT_LOOKUP4_1": 48, 1324 "DBG_CT_LOOKUP4_2": 49, 1325 "DBG_CT_CREATED4": 50, 1326 "DBG_CT_LOOKUP6_1": 51, 1327 "DBG_CT_LOOKUP6_2": 52, 1328 "DBG_CT_CREATED6": 53, 1329 "DBG_SKIP_PROXY": 54, 1330 "DBG_L4_CREATE": 55, 1331 "DBG_IP_ID_MAP_FAILED4": 56, 1332 "DBG_IP_ID_MAP_FAILED6": 57, 1333 "DBG_IP_ID_MAP_SUCCEED4": 58, 1334 "DBG_IP_ID_MAP_SUCCEED6": 59, 1335 "DBG_LB_STALE_CT": 60, 1336 "DBG_INHERIT_IDENTITY": 61, 1337 "DBG_SK_LOOKUP4": 62, 1338 "DBG_SK_LOOKUP6": 63, 1339 "DBG_SK_ASSIGN": 64, 1340 "DBG_L7_LB": 65, 1341 "DBG_SKIP_POLICY": 66, 1342 } 1343 ) 1344 1345 func (x DebugEventType) Enum() *DebugEventType { 1346 p := new(DebugEventType) 1347 *p = x 1348 return p 1349 } 1350 1351 func (x DebugEventType) String() string { 1352 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 1353 } 1354 1355 func (DebugEventType) Descriptor() protoreflect.EnumDescriptor { 1356 return file_flow_flow_proto_enumTypes[14].Descriptor() 1357 } 1358 1359 func (DebugEventType) Type() protoreflect.EnumType { 1360 return &file_flow_flow_proto_enumTypes[14] 1361 } 1362 1363 func (x DebugEventType) Number() protoreflect.EnumNumber { 1364 return protoreflect.EnumNumber(x) 1365 } 1366 1367 // Deprecated: Use DebugEventType.Descriptor instead. 1368 func (DebugEventType) EnumDescriptor() ([]byte, []int) { 1369 return file_flow_flow_proto_rawDescGZIP(), []int{14} 1370 } 1371 1372 type Flow struct { 1373 state protoimpl.MessageState 1374 sizeCache protoimpl.SizeCache 1375 unknownFields protoimpl.UnknownFields 1376 1377 Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"` 1378 // uuid is a universally unique identifier for this flow. 1379 Uuid string `protobuf:"bytes,34,opt,name=uuid,proto3" json:"uuid,omitempty"` 1380 Verdict Verdict `protobuf:"varint,2,opt,name=verdict,proto3,enum=flow.Verdict" json:"verdict,omitempty"` 1381 // only applicable to Verdict = DROPPED. 1382 // deprecated in favor of drop_reason_desc. 1383 // 1384 // Deprecated: Marked as deprecated in flow/flow.proto. 1385 DropReason uint32 `protobuf:"varint,3,opt,name=drop_reason,json=dropReason,proto3" json:"drop_reason,omitempty"` 1386 // auth_type is the authentication type specified for the flow in Cilium Network Policy. 1387 // Only set on policy verdict events. 1388 AuthType AuthType `protobuf:"varint,35,opt,name=auth_type,json=authType,proto3,enum=flow.AuthType" json:"auth_type,omitempty"` 1389 // l2 1390 Ethernet *Ethernet `protobuf:"bytes,4,opt,name=ethernet,proto3" json:"ethernet,omitempty"` 1391 // l3 1392 IP *IP `protobuf:"bytes,5,opt,name=IP,proto3" json:"IP,omitempty"` 1393 // l4 1394 L4 *Layer4 `protobuf:"bytes,6,opt,name=l4,proto3" json:"l4,omitempty"` 1395 Source *Endpoint `protobuf:"bytes,8,opt,name=source,proto3" json:"source,omitempty"` 1396 Destination *Endpoint `protobuf:"bytes,9,opt,name=destination,proto3" json:"destination,omitempty"` 1397 Type FlowType `protobuf:"varint,10,opt,name=Type,proto3,enum=flow.FlowType" json:"Type,omitempty"` 1398 // NodeName is the name of the node from which this Flow was captured. 1399 NodeName string `protobuf:"bytes,11,opt,name=node_name,json=nodeName,proto3" json:"node_name,omitempty"` 1400 // node labels in `foo=bar` format. 1401 NodeLabels []string `protobuf:"bytes,37,rep,name=node_labels,json=nodeLabels,proto3" json:"node_labels,omitempty"` 1402 // all names the source IP can have. 1403 SourceNames []string `protobuf:"bytes,13,rep,name=source_names,json=sourceNames,proto3" json:"source_names,omitempty"` 1404 // all names the destination IP can have. 1405 DestinationNames []string `protobuf:"bytes,14,rep,name=destination_names,json=destinationNames,proto3" json:"destination_names,omitempty"` 1406 // L7 information. This field is set if and only if FlowType is L7. 1407 L7 *Layer7 `protobuf:"bytes,15,opt,name=l7,proto3" json:"l7,omitempty"` 1408 // Deprecated. This suffers from false negatives due to protobuf not being 1409 // able to distinguish between the value being false or it being absent. 1410 // Please use is_reply instead. 1411 // 1412 // Deprecated: Marked as deprecated in flow/flow.proto. 1413 Reply bool `protobuf:"varint,16,opt,name=reply,proto3" json:"reply,omitempty"` 1414 // EventType of the originating Cilium event 1415 EventType *CiliumEventType `protobuf:"bytes,19,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"` 1416 // source_service contains the service name of the source 1417 SourceService *Service `protobuf:"bytes,20,opt,name=source_service,json=sourceService,proto3" json:"source_service,omitempty"` 1418 // destination_service contains the service name of the destination 1419 DestinationService *Service `protobuf:"bytes,21,opt,name=destination_service,json=destinationService,proto3" json:"destination_service,omitempty"` 1420 // traffic_direction of the connection, e.g. ingress or egress 1421 TrafficDirection TrafficDirection `protobuf:"varint,22,opt,name=traffic_direction,json=trafficDirection,proto3,enum=flow.TrafficDirection" json:"traffic_direction,omitempty"` 1422 // policy_match_type is only applicable to the cilium event type PolicyVerdict 1423 // https://github.com/cilium/cilium/blob/e831859b5cc336c6d964a6d35bbd34d1840e21b9/pkg/monitor/datapath_policy.go#L50 1424 PolicyMatchType uint32 `protobuf:"varint,23,opt,name=policy_match_type,json=policyMatchType,proto3" json:"policy_match_type,omitempty"` 1425 // Only applicable to cilium trace notifications, blank for other types. 1426 TraceObservationPoint TraceObservationPoint `protobuf:"varint,24,opt,name=trace_observation_point,json=traceObservationPoint,proto3,enum=flow.TraceObservationPoint" json:"trace_observation_point,omitempty"` 1427 // Cilium datapath trace reason info. 1428 TraceReason TraceReason `protobuf:"varint,36,opt,name=trace_reason,json=traceReason,proto3,enum=flow.TraceReason" json:"trace_reason,omitempty"` 1429 // only applicable to Verdict = DROPPED. 1430 DropReasonDesc DropReason `protobuf:"varint,25,opt,name=drop_reason_desc,json=dropReasonDesc,proto3,enum=flow.DropReason" json:"drop_reason_desc,omitempty"` 1431 // is_reply indicates that this was a packet (L4) or message (L7) in the 1432 // reply direction. May be absent (in which case it is unknown whether it 1433 // is a reply or not). 1434 IsReply *wrapperspb.BoolValue `protobuf:"bytes,26,opt,name=is_reply,json=isReply,proto3" json:"is_reply,omitempty"` 1435 // Only applicable to cilium debug capture events, blank for other types 1436 DebugCapturePoint DebugCapturePoint `protobuf:"varint,27,opt,name=debug_capture_point,json=debugCapturePoint,proto3,enum=flow.DebugCapturePoint" json:"debug_capture_point,omitempty"` 1437 // interface is the network interface on which this flow was observed 1438 Interface *NetworkInterface `protobuf:"bytes,28,opt,name=interface,proto3" json:"interface,omitempty"` 1439 // proxy_port indicates the port of the proxy to which the flow was forwarded 1440 ProxyPort uint32 `protobuf:"varint,29,opt,name=proxy_port,json=proxyPort,proto3" json:"proxy_port,omitempty"` 1441 // trace_context contains information about a trace related to the flow, if 1442 // any. 1443 TraceContext *TraceContext `protobuf:"bytes,30,opt,name=trace_context,json=traceContext,proto3" json:"trace_context,omitempty"` 1444 // sock_xlate_point is the socket translation point. 1445 // Only applicable to TraceSock notifications, blank for other types 1446 SockXlatePoint SocketTranslationPoint `protobuf:"varint,31,opt,name=sock_xlate_point,json=sockXlatePoint,proto3,enum=flow.SocketTranslationPoint" json:"sock_xlate_point,omitempty"` 1447 // socket_cookie is the Linux kernel socket cookie for this flow. 1448 // Only applicable to TraceSock notifications, zero for other types 1449 SocketCookie uint64 `protobuf:"varint,32,opt,name=socket_cookie,json=socketCookie,proto3" json:"socket_cookie,omitempty"` 1450 // cgroup_id of the process which emitted this event. 1451 // Only applicable to TraceSock notifications, zero for other types 1452 CgroupId uint64 `protobuf:"varint,33,opt,name=cgroup_id,json=cgroupId,proto3" json:"cgroup_id,omitempty"` 1453 // This is a temporary workaround to support summary field for pb.Flow without 1454 // duplicating logic from the old parser. This field will be removed once we 1455 // fully migrate to the new parser. 1456 // 1457 // Deprecated: Marked as deprecated in flow/flow.proto. 1458 Summary string `protobuf:"bytes,100000,opt,name=Summary,proto3" json:"Summary,omitempty"` 1459 // extensions can be used to add arbitrary additional metadata to flows. 1460 // This can be used to extend functionality for other Hubble compatible 1461 // APIs, or experiment with new functionality without needing to change the public API. 1462 Extensions *anypb.Any `protobuf:"bytes,150000,opt,name=extensions,proto3" json:"extensions,omitempty"` 1463 // The CiliumNetworkPolicies allowing the egress of the flow. 1464 EgressAllowedBy []*Policy `protobuf:"bytes,21001,rep,name=egress_allowed_by,json=egressAllowedBy,proto3" json:"egress_allowed_by,omitempty"` 1465 // The CiliumNetworkPolicies allowing the ingress of the flow. 1466 IngressAllowedBy []*Policy `protobuf:"bytes,21002,rep,name=ingress_allowed_by,json=ingressAllowedBy,proto3" json:"ingress_allowed_by,omitempty"` 1467 // The CiliumNetworkPolicies denying the egress of the flow. 1468 EgressDeniedBy []*Policy `protobuf:"bytes,21004,rep,name=egress_denied_by,json=egressDeniedBy,proto3" json:"egress_denied_by,omitempty"` 1469 // The CiliumNetworkPolicies denying the ingress of the flow. 1470 IngressDeniedBy []*Policy `protobuf:"bytes,21005,rep,name=ingress_denied_by,json=ingressDeniedBy,proto3" json:"ingress_denied_by,omitempty"` 1471 } 1472 1473 func (x *Flow) Reset() { 1474 *x = Flow{} 1475 if protoimpl.UnsafeEnabled { 1476 mi := &file_flow_flow_proto_msgTypes[0] 1477 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1478 ms.StoreMessageInfo(mi) 1479 } 1480 } 1481 1482 func (x *Flow) String() string { 1483 return protoimpl.X.MessageStringOf(x) 1484 } 1485 1486 func (*Flow) ProtoMessage() {} 1487 1488 func (x *Flow) ProtoReflect() protoreflect.Message { 1489 mi := &file_flow_flow_proto_msgTypes[0] 1490 if protoimpl.UnsafeEnabled && x != nil { 1491 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1492 if ms.LoadMessageInfo() == nil { 1493 ms.StoreMessageInfo(mi) 1494 } 1495 return ms 1496 } 1497 return mi.MessageOf(x) 1498 } 1499 1500 // Deprecated: Use Flow.ProtoReflect.Descriptor instead. 1501 func (*Flow) Descriptor() ([]byte, []int) { 1502 return file_flow_flow_proto_rawDescGZIP(), []int{0} 1503 } 1504 1505 func (x *Flow) GetTime() *timestamppb.Timestamp { 1506 if x != nil { 1507 return x.Time 1508 } 1509 return nil 1510 } 1511 1512 func (x *Flow) GetUuid() string { 1513 if x != nil { 1514 return x.Uuid 1515 } 1516 return "" 1517 } 1518 1519 func (x *Flow) GetVerdict() Verdict { 1520 if x != nil { 1521 return x.Verdict 1522 } 1523 return Verdict_VERDICT_UNKNOWN 1524 } 1525 1526 // Deprecated: Marked as deprecated in flow/flow.proto. 1527 func (x *Flow) GetDropReason() uint32 { 1528 if x != nil { 1529 return x.DropReason 1530 } 1531 return 0 1532 } 1533 1534 func (x *Flow) GetAuthType() AuthType { 1535 if x != nil { 1536 return x.AuthType 1537 } 1538 return AuthType_DISABLED 1539 } 1540 1541 func (x *Flow) GetEthernet() *Ethernet { 1542 if x != nil { 1543 return x.Ethernet 1544 } 1545 return nil 1546 } 1547 1548 func (x *Flow) GetIP() *IP { 1549 if x != nil { 1550 return x.IP 1551 } 1552 return nil 1553 } 1554 1555 func (x *Flow) GetL4() *Layer4 { 1556 if x != nil { 1557 return x.L4 1558 } 1559 return nil 1560 } 1561 1562 func (x *Flow) GetSource() *Endpoint { 1563 if x != nil { 1564 return x.Source 1565 } 1566 return nil 1567 } 1568 1569 func (x *Flow) GetDestination() *Endpoint { 1570 if x != nil { 1571 return x.Destination 1572 } 1573 return nil 1574 } 1575 1576 func (x *Flow) GetType() FlowType { 1577 if x != nil { 1578 return x.Type 1579 } 1580 return FlowType_UNKNOWN_TYPE 1581 } 1582 1583 func (x *Flow) GetNodeName() string { 1584 if x != nil { 1585 return x.NodeName 1586 } 1587 return "" 1588 } 1589 1590 func (x *Flow) GetNodeLabels() []string { 1591 if x != nil { 1592 return x.NodeLabels 1593 } 1594 return nil 1595 } 1596 1597 func (x *Flow) GetSourceNames() []string { 1598 if x != nil { 1599 return x.SourceNames 1600 } 1601 return nil 1602 } 1603 1604 func (x *Flow) GetDestinationNames() []string { 1605 if x != nil { 1606 return x.DestinationNames 1607 } 1608 return nil 1609 } 1610 1611 func (x *Flow) GetL7() *Layer7 { 1612 if x != nil { 1613 return x.L7 1614 } 1615 return nil 1616 } 1617 1618 // Deprecated: Marked as deprecated in flow/flow.proto. 1619 func (x *Flow) GetReply() bool { 1620 if x != nil { 1621 return x.Reply 1622 } 1623 return false 1624 } 1625 1626 func (x *Flow) GetEventType() *CiliumEventType { 1627 if x != nil { 1628 return x.EventType 1629 } 1630 return nil 1631 } 1632 1633 func (x *Flow) GetSourceService() *Service { 1634 if x != nil { 1635 return x.SourceService 1636 } 1637 return nil 1638 } 1639 1640 func (x *Flow) GetDestinationService() *Service { 1641 if x != nil { 1642 return x.DestinationService 1643 } 1644 return nil 1645 } 1646 1647 func (x *Flow) GetTrafficDirection() TrafficDirection { 1648 if x != nil { 1649 return x.TrafficDirection 1650 } 1651 return TrafficDirection_TRAFFIC_DIRECTION_UNKNOWN 1652 } 1653 1654 func (x *Flow) GetPolicyMatchType() uint32 { 1655 if x != nil { 1656 return x.PolicyMatchType 1657 } 1658 return 0 1659 } 1660 1661 func (x *Flow) GetTraceObservationPoint() TraceObservationPoint { 1662 if x != nil { 1663 return x.TraceObservationPoint 1664 } 1665 return TraceObservationPoint_UNKNOWN_POINT 1666 } 1667 1668 func (x *Flow) GetTraceReason() TraceReason { 1669 if x != nil { 1670 return x.TraceReason 1671 } 1672 return TraceReason_TRACE_REASON_UNKNOWN 1673 } 1674 1675 func (x *Flow) GetDropReasonDesc() DropReason { 1676 if x != nil { 1677 return x.DropReasonDesc 1678 } 1679 return DropReason_DROP_REASON_UNKNOWN 1680 } 1681 1682 func (x *Flow) GetIsReply() *wrapperspb.BoolValue { 1683 if x != nil { 1684 return x.IsReply 1685 } 1686 return nil 1687 } 1688 1689 func (x *Flow) GetDebugCapturePoint() DebugCapturePoint { 1690 if x != nil { 1691 return x.DebugCapturePoint 1692 } 1693 return DebugCapturePoint_DBG_CAPTURE_POINT_UNKNOWN 1694 } 1695 1696 func (x *Flow) GetInterface() *NetworkInterface { 1697 if x != nil { 1698 return x.Interface 1699 } 1700 return nil 1701 } 1702 1703 func (x *Flow) GetProxyPort() uint32 { 1704 if x != nil { 1705 return x.ProxyPort 1706 } 1707 return 0 1708 } 1709 1710 func (x *Flow) GetTraceContext() *TraceContext { 1711 if x != nil { 1712 return x.TraceContext 1713 } 1714 return nil 1715 } 1716 1717 func (x *Flow) GetSockXlatePoint() SocketTranslationPoint { 1718 if x != nil { 1719 return x.SockXlatePoint 1720 } 1721 return SocketTranslationPoint_SOCK_XLATE_POINT_UNKNOWN 1722 } 1723 1724 func (x *Flow) GetSocketCookie() uint64 { 1725 if x != nil { 1726 return x.SocketCookie 1727 } 1728 return 0 1729 } 1730 1731 func (x *Flow) GetCgroupId() uint64 { 1732 if x != nil { 1733 return x.CgroupId 1734 } 1735 return 0 1736 } 1737 1738 // Deprecated: Marked as deprecated in flow/flow.proto. 1739 func (x *Flow) GetSummary() string { 1740 if x != nil { 1741 return x.Summary 1742 } 1743 return "" 1744 } 1745 1746 func (x *Flow) GetExtensions() *anypb.Any { 1747 if x != nil { 1748 return x.Extensions 1749 } 1750 return nil 1751 } 1752 1753 func (x *Flow) GetEgressAllowedBy() []*Policy { 1754 if x != nil { 1755 return x.EgressAllowedBy 1756 } 1757 return nil 1758 } 1759 1760 func (x *Flow) GetIngressAllowedBy() []*Policy { 1761 if x != nil { 1762 return x.IngressAllowedBy 1763 } 1764 return nil 1765 } 1766 1767 func (x *Flow) GetEgressDeniedBy() []*Policy { 1768 if x != nil { 1769 return x.EgressDeniedBy 1770 } 1771 return nil 1772 } 1773 1774 func (x *Flow) GetIngressDeniedBy() []*Policy { 1775 if x != nil { 1776 return x.IngressDeniedBy 1777 } 1778 return nil 1779 } 1780 1781 type Layer4 struct { 1782 state protoimpl.MessageState 1783 sizeCache protoimpl.SizeCache 1784 unknownFields protoimpl.UnknownFields 1785 1786 // Types that are assignable to Protocol: 1787 // 1788 // *Layer4_TCP 1789 // *Layer4_UDP 1790 // *Layer4_ICMPv4 1791 // *Layer4_ICMPv6 1792 // *Layer4_SCTP 1793 Protocol isLayer4_Protocol `protobuf_oneof:"protocol"` 1794 } 1795 1796 func (x *Layer4) Reset() { 1797 *x = Layer4{} 1798 if protoimpl.UnsafeEnabled { 1799 mi := &file_flow_flow_proto_msgTypes[1] 1800 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1801 ms.StoreMessageInfo(mi) 1802 } 1803 } 1804 1805 func (x *Layer4) String() string { 1806 return protoimpl.X.MessageStringOf(x) 1807 } 1808 1809 func (*Layer4) ProtoMessage() {} 1810 1811 func (x *Layer4) ProtoReflect() protoreflect.Message { 1812 mi := &file_flow_flow_proto_msgTypes[1] 1813 if protoimpl.UnsafeEnabled && x != nil { 1814 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1815 if ms.LoadMessageInfo() == nil { 1816 ms.StoreMessageInfo(mi) 1817 } 1818 return ms 1819 } 1820 return mi.MessageOf(x) 1821 } 1822 1823 // Deprecated: Use Layer4.ProtoReflect.Descriptor instead. 1824 func (*Layer4) Descriptor() ([]byte, []int) { 1825 return file_flow_flow_proto_rawDescGZIP(), []int{1} 1826 } 1827 1828 func (m *Layer4) GetProtocol() isLayer4_Protocol { 1829 if m != nil { 1830 return m.Protocol 1831 } 1832 return nil 1833 } 1834 1835 func (x *Layer4) GetTCP() *TCP { 1836 if x, ok := x.GetProtocol().(*Layer4_TCP); ok { 1837 return x.TCP 1838 } 1839 return nil 1840 } 1841 1842 func (x *Layer4) GetUDP() *UDP { 1843 if x, ok := x.GetProtocol().(*Layer4_UDP); ok { 1844 return x.UDP 1845 } 1846 return nil 1847 } 1848 1849 func (x *Layer4) GetICMPv4() *ICMPv4 { 1850 if x, ok := x.GetProtocol().(*Layer4_ICMPv4); ok { 1851 return x.ICMPv4 1852 } 1853 return nil 1854 } 1855 1856 func (x *Layer4) GetICMPv6() *ICMPv6 { 1857 if x, ok := x.GetProtocol().(*Layer4_ICMPv6); ok { 1858 return x.ICMPv6 1859 } 1860 return nil 1861 } 1862 1863 func (x *Layer4) GetSCTP() *SCTP { 1864 if x, ok := x.GetProtocol().(*Layer4_SCTP); ok { 1865 return x.SCTP 1866 } 1867 return nil 1868 } 1869 1870 type isLayer4_Protocol interface { 1871 isLayer4_Protocol() 1872 } 1873 1874 type Layer4_TCP struct { 1875 TCP *TCP `protobuf:"bytes,1,opt,name=TCP,proto3,oneof"` 1876 } 1877 1878 type Layer4_UDP struct { 1879 UDP *UDP `protobuf:"bytes,2,opt,name=UDP,proto3,oneof"` 1880 } 1881 1882 type Layer4_ICMPv4 struct { 1883 // ICMP is technically not L4, but mutually exclusive with the above 1884 ICMPv4 *ICMPv4 `protobuf:"bytes,3,opt,name=ICMPv4,proto3,oneof"` 1885 } 1886 1887 type Layer4_ICMPv6 struct { 1888 ICMPv6 *ICMPv6 `protobuf:"bytes,4,opt,name=ICMPv6,proto3,oneof"` 1889 } 1890 1891 type Layer4_SCTP struct { 1892 SCTP *SCTP `protobuf:"bytes,5,opt,name=SCTP,proto3,oneof"` 1893 } 1894 1895 func (*Layer4_TCP) isLayer4_Protocol() {} 1896 1897 func (*Layer4_UDP) isLayer4_Protocol() {} 1898 1899 func (*Layer4_ICMPv4) isLayer4_Protocol() {} 1900 1901 func (*Layer4_ICMPv6) isLayer4_Protocol() {} 1902 1903 func (*Layer4_SCTP) isLayer4_Protocol() {} 1904 1905 // Message for L7 flow, which roughly corresponds to Cilium's accesslog [LogRecord](https://github.com/cilium/cilium/blob/728c79e427438ab6f8d9375b62fccd6fed4ace3a/pkg/proxy/accesslog/record.go#L141): 1906 type Layer7 struct { 1907 state protoimpl.MessageState 1908 sizeCache protoimpl.SizeCache 1909 unknownFields protoimpl.UnknownFields 1910 1911 Type L7FlowType `protobuf:"varint,1,opt,name=type,proto3,enum=flow.L7FlowType" json:"type,omitempty"` 1912 // Latency of the response 1913 LatencyNs uint64 `protobuf:"varint,2,opt,name=latency_ns,json=latencyNs,proto3" json:"latency_ns,omitempty"` 1914 // L7 field. This field is set if and only if FlowType is L7. 1915 // 1916 // Types that are assignable to Record: 1917 // 1918 // *Layer7_Dns 1919 // *Layer7_Http 1920 // *Layer7_Kafka 1921 Record isLayer7_Record `protobuf_oneof:"record"` 1922 } 1923 1924 func (x *Layer7) Reset() { 1925 *x = Layer7{} 1926 if protoimpl.UnsafeEnabled { 1927 mi := &file_flow_flow_proto_msgTypes[2] 1928 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1929 ms.StoreMessageInfo(mi) 1930 } 1931 } 1932 1933 func (x *Layer7) String() string { 1934 return protoimpl.X.MessageStringOf(x) 1935 } 1936 1937 func (*Layer7) ProtoMessage() {} 1938 1939 func (x *Layer7) ProtoReflect() protoreflect.Message { 1940 mi := &file_flow_flow_proto_msgTypes[2] 1941 if protoimpl.UnsafeEnabled && x != nil { 1942 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1943 if ms.LoadMessageInfo() == nil { 1944 ms.StoreMessageInfo(mi) 1945 } 1946 return ms 1947 } 1948 return mi.MessageOf(x) 1949 } 1950 1951 // Deprecated: Use Layer7.ProtoReflect.Descriptor instead. 1952 func (*Layer7) Descriptor() ([]byte, []int) { 1953 return file_flow_flow_proto_rawDescGZIP(), []int{2} 1954 } 1955 1956 func (x *Layer7) GetType() L7FlowType { 1957 if x != nil { 1958 return x.Type 1959 } 1960 return L7FlowType_UNKNOWN_L7_TYPE 1961 } 1962 1963 func (x *Layer7) GetLatencyNs() uint64 { 1964 if x != nil { 1965 return x.LatencyNs 1966 } 1967 return 0 1968 } 1969 1970 func (m *Layer7) GetRecord() isLayer7_Record { 1971 if m != nil { 1972 return m.Record 1973 } 1974 return nil 1975 } 1976 1977 func (x *Layer7) GetDns() *DNS { 1978 if x, ok := x.GetRecord().(*Layer7_Dns); ok { 1979 return x.Dns 1980 } 1981 return nil 1982 } 1983 1984 func (x *Layer7) GetHttp() *HTTP { 1985 if x, ok := x.GetRecord().(*Layer7_Http); ok { 1986 return x.Http 1987 } 1988 return nil 1989 } 1990 1991 func (x *Layer7) GetKafka() *Kafka { 1992 if x, ok := x.GetRecord().(*Layer7_Kafka); ok { 1993 return x.Kafka 1994 } 1995 return nil 1996 } 1997 1998 type isLayer7_Record interface { 1999 isLayer7_Record() 2000 } 2001 2002 type Layer7_Dns struct { 2003 Dns *DNS `protobuf:"bytes,100,opt,name=dns,proto3,oneof"` 2004 } 2005 2006 type Layer7_Http struct { 2007 Http *HTTP `protobuf:"bytes,101,opt,name=http,proto3,oneof"` 2008 } 2009 2010 type Layer7_Kafka struct { 2011 Kafka *Kafka `protobuf:"bytes,102,opt,name=kafka,proto3,oneof"` 2012 } 2013 2014 func (*Layer7_Dns) isLayer7_Record() {} 2015 2016 func (*Layer7_Http) isLayer7_Record() {} 2017 2018 func (*Layer7_Kafka) isLayer7_Record() {} 2019 2020 // TraceContext contains trace context propagation data, i.e. information about a 2021 // distributed trace. 2022 // For more information about trace context, check the [W3C Trace Context specification](https://www.w3.org/TR/trace-context/). 2023 type TraceContext struct { 2024 state protoimpl.MessageState 2025 sizeCache protoimpl.SizeCache 2026 unknownFields protoimpl.UnknownFields 2027 2028 // parent identifies the incoming request in a tracing system. 2029 Parent *TraceParent `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 2030 } 2031 2032 func (x *TraceContext) Reset() { 2033 *x = TraceContext{} 2034 if protoimpl.UnsafeEnabled { 2035 mi := &file_flow_flow_proto_msgTypes[3] 2036 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2037 ms.StoreMessageInfo(mi) 2038 } 2039 } 2040 2041 func (x *TraceContext) String() string { 2042 return protoimpl.X.MessageStringOf(x) 2043 } 2044 2045 func (*TraceContext) ProtoMessage() {} 2046 2047 func (x *TraceContext) ProtoReflect() protoreflect.Message { 2048 mi := &file_flow_flow_proto_msgTypes[3] 2049 if protoimpl.UnsafeEnabled && x != nil { 2050 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2051 if ms.LoadMessageInfo() == nil { 2052 ms.StoreMessageInfo(mi) 2053 } 2054 return ms 2055 } 2056 return mi.MessageOf(x) 2057 } 2058 2059 // Deprecated: Use TraceContext.ProtoReflect.Descriptor instead. 2060 func (*TraceContext) Descriptor() ([]byte, []int) { 2061 return file_flow_flow_proto_rawDescGZIP(), []int{3} 2062 } 2063 2064 func (x *TraceContext) GetParent() *TraceParent { 2065 if x != nil { 2066 return x.Parent 2067 } 2068 return nil 2069 } 2070 2071 // TraceParent identifies the incoming request in a tracing system. 2072 type TraceParent struct { 2073 state protoimpl.MessageState 2074 sizeCache protoimpl.SizeCache 2075 unknownFields protoimpl.UnknownFields 2076 2077 // trace_id is a unique value that identifies a trace. It is a byte array 2078 // represented as a hex string. 2079 TraceId string `protobuf:"bytes,1,opt,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"` 2080 } 2081 2082 func (x *TraceParent) Reset() { 2083 *x = TraceParent{} 2084 if protoimpl.UnsafeEnabled { 2085 mi := &file_flow_flow_proto_msgTypes[4] 2086 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2087 ms.StoreMessageInfo(mi) 2088 } 2089 } 2090 2091 func (x *TraceParent) String() string { 2092 return protoimpl.X.MessageStringOf(x) 2093 } 2094 2095 func (*TraceParent) ProtoMessage() {} 2096 2097 func (x *TraceParent) ProtoReflect() protoreflect.Message { 2098 mi := &file_flow_flow_proto_msgTypes[4] 2099 if protoimpl.UnsafeEnabled && x != nil { 2100 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2101 if ms.LoadMessageInfo() == nil { 2102 ms.StoreMessageInfo(mi) 2103 } 2104 return ms 2105 } 2106 return mi.MessageOf(x) 2107 } 2108 2109 // Deprecated: Use TraceParent.ProtoReflect.Descriptor instead. 2110 func (*TraceParent) Descriptor() ([]byte, []int) { 2111 return file_flow_flow_proto_rawDescGZIP(), []int{4} 2112 } 2113 2114 func (x *TraceParent) GetTraceId() string { 2115 if x != nil { 2116 return x.TraceId 2117 } 2118 return "" 2119 } 2120 2121 type Endpoint struct { 2122 state protoimpl.MessageState 2123 sizeCache protoimpl.SizeCache 2124 unknownFields protoimpl.UnknownFields 2125 2126 ID uint32 `protobuf:"varint,1,opt,name=ID,proto3" json:"ID,omitempty"` 2127 Identity uint32 `protobuf:"varint,2,opt,name=identity,proto3" json:"identity,omitempty"` 2128 ClusterName string `protobuf:"bytes,7,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"` 2129 Namespace string `protobuf:"bytes,3,opt,name=namespace,proto3" json:"namespace,omitempty"` 2130 // labels in `foo=bar` format. 2131 Labels []string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty"` 2132 PodName string `protobuf:"bytes,5,opt,name=pod_name,json=podName,proto3" json:"pod_name,omitempty"` 2133 Workloads []*Workload `protobuf:"bytes,6,rep,name=workloads,proto3" json:"workloads,omitempty"` 2134 } 2135 2136 func (x *Endpoint) Reset() { 2137 *x = Endpoint{} 2138 if protoimpl.UnsafeEnabled { 2139 mi := &file_flow_flow_proto_msgTypes[5] 2140 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2141 ms.StoreMessageInfo(mi) 2142 } 2143 } 2144 2145 func (x *Endpoint) String() string { 2146 return protoimpl.X.MessageStringOf(x) 2147 } 2148 2149 func (*Endpoint) ProtoMessage() {} 2150 2151 func (x *Endpoint) ProtoReflect() protoreflect.Message { 2152 mi := &file_flow_flow_proto_msgTypes[5] 2153 if protoimpl.UnsafeEnabled && x != nil { 2154 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2155 if ms.LoadMessageInfo() == nil { 2156 ms.StoreMessageInfo(mi) 2157 } 2158 return ms 2159 } 2160 return mi.MessageOf(x) 2161 } 2162 2163 // Deprecated: Use Endpoint.ProtoReflect.Descriptor instead. 2164 func (*Endpoint) Descriptor() ([]byte, []int) { 2165 return file_flow_flow_proto_rawDescGZIP(), []int{5} 2166 } 2167 2168 func (x *Endpoint) GetID() uint32 { 2169 if x != nil { 2170 return x.ID 2171 } 2172 return 0 2173 } 2174 2175 func (x *Endpoint) GetIdentity() uint32 { 2176 if x != nil { 2177 return x.Identity 2178 } 2179 return 0 2180 } 2181 2182 func (x *Endpoint) GetClusterName() string { 2183 if x != nil { 2184 return x.ClusterName 2185 } 2186 return "" 2187 } 2188 2189 func (x *Endpoint) GetNamespace() string { 2190 if x != nil { 2191 return x.Namespace 2192 } 2193 return "" 2194 } 2195 2196 func (x *Endpoint) GetLabels() []string { 2197 if x != nil { 2198 return x.Labels 2199 } 2200 return nil 2201 } 2202 2203 func (x *Endpoint) GetPodName() string { 2204 if x != nil { 2205 return x.PodName 2206 } 2207 return "" 2208 } 2209 2210 func (x *Endpoint) GetWorkloads() []*Workload { 2211 if x != nil { 2212 return x.Workloads 2213 } 2214 return nil 2215 } 2216 2217 type Workload struct { 2218 state protoimpl.MessageState 2219 sizeCache protoimpl.SizeCache 2220 unknownFields protoimpl.UnknownFields 2221 2222 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 2223 Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"` 2224 } 2225 2226 func (x *Workload) Reset() { 2227 *x = Workload{} 2228 if protoimpl.UnsafeEnabled { 2229 mi := &file_flow_flow_proto_msgTypes[6] 2230 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2231 ms.StoreMessageInfo(mi) 2232 } 2233 } 2234 2235 func (x *Workload) String() string { 2236 return protoimpl.X.MessageStringOf(x) 2237 } 2238 2239 func (*Workload) ProtoMessage() {} 2240 2241 func (x *Workload) ProtoReflect() protoreflect.Message { 2242 mi := &file_flow_flow_proto_msgTypes[6] 2243 if protoimpl.UnsafeEnabled && x != nil { 2244 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2245 if ms.LoadMessageInfo() == nil { 2246 ms.StoreMessageInfo(mi) 2247 } 2248 return ms 2249 } 2250 return mi.MessageOf(x) 2251 } 2252 2253 // Deprecated: Use Workload.ProtoReflect.Descriptor instead. 2254 func (*Workload) Descriptor() ([]byte, []int) { 2255 return file_flow_flow_proto_rawDescGZIP(), []int{6} 2256 } 2257 2258 func (x *Workload) GetName() string { 2259 if x != nil { 2260 return x.Name 2261 } 2262 return "" 2263 } 2264 2265 func (x *Workload) GetKind() string { 2266 if x != nil { 2267 return x.Kind 2268 } 2269 return "" 2270 } 2271 2272 type TCP struct { 2273 state protoimpl.MessageState 2274 sizeCache protoimpl.SizeCache 2275 unknownFields protoimpl.UnknownFields 2276 2277 SourcePort uint32 `protobuf:"varint,1,opt,name=source_port,json=sourcePort,proto3" json:"source_port,omitempty"` 2278 DestinationPort uint32 `protobuf:"varint,2,opt,name=destination_port,json=destinationPort,proto3" json:"destination_port,omitempty"` 2279 Flags *TCPFlags `protobuf:"bytes,3,opt,name=flags,proto3" json:"flags,omitempty"` 2280 } 2281 2282 func (x *TCP) Reset() { 2283 *x = TCP{} 2284 if protoimpl.UnsafeEnabled { 2285 mi := &file_flow_flow_proto_msgTypes[7] 2286 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2287 ms.StoreMessageInfo(mi) 2288 } 2289 } 2290 2291 func (x *TCP) String() string { 2292 return protoimpl.X.MessageStringOf(x) 2293 } 2294 2295 func (*TCP) ProtoMessage() {} 2296 2297 func (x *TCP) ProtoReflect() protoreflect.Message { 2298 mi := &file_flow_flow_proto_msgTypes[7] 2299 if protoimpl.UnsafeEnabled && x != nil { 2300 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2301 if ms.LoadMessageInfo() == nil { 2302 ms.StoreMessageInfo(mi) 2303 } 2304 return ms 2305 } 2306 return mi.MessageOf(x) 2307 } 2308 2309 // Deprecated: Use TCP.ProtoReflect.Descriptor instead. 2310 func (*TCP) Descriptor() ([]byte, []int) { 2311 return file_flow_flow_proto_rawDescGZIP(), []int{7} 2312 } 2313 2314 func (x *TCP) GetSourcePort() uint32 { 2315 if x != nil { 2316 return x.SourcePort 2317 } 2318 return 0 2319 } 2320 2321 func (x *TCP) GetDestinationPort() uint32 { 2322 if x != nil { 2323 return x.DestinationPort 2324 } 2325 return 0 2326 } 2327 2328 func (x *TCP) GetFlags() *TCPFlags { 2329 if x != nil { 2330 return x.Flags 2331 } 2332 return nil 2333 } 2334 2335 type IP struct { 2336 state protoimpl.MessageState 2337 sizeCache protoimpl.SizeCache 2338 unknownFields protoimpl.UnknownFields 2339 2340 Source string `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` 2341 // source_xlated is the post translation source IP when the flow was SNATed 2342 // (and in that case source is the the original source IP). 2343 SourceXlated string `protobuf:"bytes,5,opt,name=source_xlated,json=sourceXlated,proto3" json:"source_xlated,omitempty"` 2344 Destination string `protobuf:"bytes,2,opt,name=destination,proto3" json:"destination,omitempty"` 2345 IpVersion IPVersion `protobuf:"varint,3,opt,name=ipVersion,proto3,enum=flow.IPVersion" json:"ipVersion,omitempty"` 2346 // This field indicates whether the TraceReasonEncryptMask is set or not. 2347 // https://github.com/cilium/cilium/blob/ba0ed147bd5bb342f67b1794c2ad13c6e99d5236/pkg/monitor/datapath_trace.go#L27 2348 Encrypted bool `protobuf:"varint,4,opt,name=encrypted,proto3" json:"encrypted,omitempty"` 2349 } 2350 2351 func (x *IP) Reset() { 2352 *x = IP{} 2353 if protoimpl.UnsafeEnabled { 2354 mi := &file_flow_flow_proto_msgTypes[8] 2355 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2356 ms.StoreMessageInfo(mi) 2357 } 2358 } 2359 2360 func (x *IP) String() string { 2361 return protoimpl.X.MessageStringOf(x) 2362 } 2363 2364 func (*IP) ProtoMessage() {} 2365 2366 func (x *IP) ProtoReflect() protoreflect.Message { 2367 mi := &file_flow_flow_proto_msgTypes[8] 2368 if protoimpl.UnsafeEnabled && x != nil { 2369 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2370 if ms.LoadMessageInfo() == nil { 2371 ms.StoreMessageInfo(mi) 2372 } 2373 return ms 2374 } 2375 return mi.MessageOf(x) 2376 } 2377 2378 // Deprecated: Use IP.ProtoReflect.Descriptor instead. 2379 func (*IP) Descriptor() ([]byte, []int) { 2380 return file_flow_flow_proto_rawDescGZIP(), []int{8} 2381 } 2382 2383 func (x *IP) GetSource() string { 2384 if x != nil { 2385 return x.Source 2386 } 2387 return "" 2388 } 2389 2390 func (x *IP) GetSourceXlated() string { 2391 if x != nil { 2392 return x.SourceXlated 2393 } 2394 return "" 2395 } 2396 2397 func (x *IP) GetDestination() string { 2398 if x != nil { 2399 return x.Destination 2400 } 2401 return "" 2402 } 2403 2404 func (x *IP) GetIpVersion() IPVersion { 2405 if x != nil { 2406 return x.IpVersion 2407 } 2408 return IPVersion_IP_NOT_USED 2409 } 2410 2411 func (x *IP) GetEncrypted() bool { 2412 if x != nil { 2413 return x.Encrypted 2414 } 2415 return false 2416 } 2417 2418 type Ethernet struct { 2419 state protoimpl.MessageState 2420 sizeCache protoimpl.SizeCache 2421 unknownFields protoimpl.UnknownFields 2422 2423 Source string `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` 2424 Destination string `protobuf:"bytes,2,opt,name=destination,proto3" json:"destination,omitempty"` 2425 } 2426 2427 func (x *Ethernet) Reset() { 2428 *x = Ethernet{} 2429 if protoimpl.UnsafeEnabled { 2430 mi := &file_flow_flow_proto_msgTypes[9] 2431 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2432 ms.StoreMessageInfo(mi) 2433 } 2434 } 2435 2436 func (x *Ethernet) String() string { 2437 return protoimpl.X.MessageStringOf(x) 2438 } 2439 2440 func (*Ethernet) ProtoMessage() {} 2441 2442 func (x *Ethernet) ProtoReflect() protoreflect.Message { 2443 mi := &file_flow_flow_proto_msgTypes[9] 2444 if protoimpl.UnsafeEnabled && x != nil { 2445 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2446 if ms.LoadMessageInfo() == nil { 2447 ms.StoreMessageInfo(mi) 2448 } 2449 return ms 2450 } 2451 return mi.MessageOf(x) 2452 } 2453 2454 // Deprecated: Use Ethernet.ProtoReflect.Descriptor instead. 2455 func (*Ethernet) Descriptor() ([]byte, []int) { 2456 return file_flow_flow_proto_rawDescGZIP(), []int{9} 2457 } 2458 2459 func (x *Ethernet) GetSource() string { 2460 if x != nil { 2461 return x.Source 2462 } 2463 return "" 2464 } 2465 2466 func (x *Ethernet) GetDestination() string { 2467 if x != nil { 2468 return x.Destination 2469 } 2470 return "" 2471 } 2472 2473 type TCPFlags struct { 2474 state protoimpl.MessageState 2475 sizeCache protoimpl.SizeCache 2476 unknownFields protoimpl.UnknownFields 2477 2478 FIN bool `protobuf:"varint,1,opt,name=FIN,proto3" json:"FIN,omitempty"` 2479 SYN bool `protobuf:"varint,2,opt,name=SYN,proto3" json:"SYN,omitempty"` 2480 RST bool `protobuf:"varint,3,opt,name=RST,proto3" json:"RST,omitempty"` 2481 PSH bool `protobuf:"varint,4,opt,name=PSH,proto3" json:"PSH,omitempty"` 2482 ACK bool `protobuf:"varint,5,opt,name=ACK,proto3" json:"ACK,omitempty"` 2483 URG bool `protobuf:"varint,6,opt,name=URG,proto3" json:"URG,omitempty"` 2484 ECE bool `protobuf:"varint,7,opt,name=ECE,proto3" json:"ECE,omitempty"` 2485 CWR bool `protobuf:"varint,8,opt,name=CWR,proto3" json:"CWR,omitempty"` 2486 NS bool `protobuf:"varint,9,opt,name=NS,proto3" json:"NS,omitempty"` 2487 } 2488 2489 func (x *TCPFlags) Reset() { 2490 *x = TCPFlags{} 2491 if protoimpl.UnsafeEnabled { 2492 mi := &file_flow_flow_proto_msgTypes[10] 2493 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2494 ms.StoreMessageInfo(mi) 2495 } 2496 } 2497 2498 func (x *TCPFlags) String() string { 2499 return protoimpl.X.MessageStringOf(x) 2500 } 2501 2502 func (*TCPFlags) ProtoMessage() {} 2503 2504 func (x *TCPFlags) ProtoReflect() protoreflect.Message { 2505 mi := &file_flow_flow_proto_msgTypes[10] 2506 if protoimpl.UnsafeEnabled && x != nil { 2507 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2508 if ms.LoadMessageInfo() == nil { 2509 ms.StoreMessageInfo(mi) 2510 } 2511 return ms 2512 } 2513 return mi.MessageOf(x) 2514 } 2515 2516 // Deprecated: Use TCPFlags.ProtoReflect.Descriptor instead. 2517 func (*TCPFlags) Descriptor() ([]byte, []int) { 2518 return file_flow_flow_proto_rawDescGZIP(), []int{10} 2519 } 2520 2521 func (x *TCPFlags) GetFIN() bool { 2522 if x != nil { 2523 return x.FIN 2524 } 2525 return false 2526 } 2527 2528 func (x *TCPFlags) GetSYN() bool { 2529 if x != nil { 2530 return x.SYN 2531 } 2532 return false 2533 } 2534 2535 func (x *TCPFlags) GetRST() bool { 2536 if x != nil { 2537 return x.RST 2538 } 2539 return false 2540 } 2541 2542 func (x *TCPFlags) GetPSH() bool { 2543 if x != nil { 2544 return x.PSH 2545 } 2546 return false 2547 } 2548 2549 func (x *TCPFlags) GetACK() bool { 2550 if x != nil { 2551 return x.ACK 2552 } 2553 return false 2554 } 2555 2556 func (x *TCPFlags) GetURG() bool { 2557 if x != nil { 2558 return x.URG 2559 } 2560 return false 2561 } 2562 2563 func (x *TCPFlags) GetECE() bool { 2564 if x != nil { 2565 return x.ECE 2566 } 2567 return false 2568 } 2569 2570 func (x *TCPFlags) GetCWR() bool { 2571 if x != nil { 2572 return x.CWR 2573 } 2574 return false 2575 } 2576 2577 func (x *TCPFlags) GetNS() bool { 2578 if x != nil { 2579 return x.NS 2580 } 2581 return false 2582 } 2583 2584 type UDP struct { 2585 state protoimpl.MessageState 2586 sizeCache protoimpl.SizeCache 2587 unknownFields protoimpl.UnknownFields 2588 2589 SourcePort uint32 `protobuf:"varint,1,opt,name=source_port,json=sourcePort,proto3" json:"source_port,omitempty"` 2590 DestinationPort uint32 `protobuf:"varint,2,opt,name=destination_port,json=destinationPort,proto3" json:"destination_port,omitempty"` 2591 } 2592 2593 func (x *UDP) Reset() { 2594 *x = UDP{} 2595 if protoimpl.UnsafeEnabled { 2596 mi := &file_flow_flow_proto_msgTypes[11] 2597 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2598 ms.StoreMessageInfo(mi) 2599 } 2600 } 2601 2602 func (x *UDP) String() string { 2603 return protoimpl.X.MessageStringOf(x) 2604 } 2605 2606 func (*UDP) ProtoMessage() {} 2607 2608 func (x *UDP) ProtoReflect() protoreflect.Message { 2609 mi := &file_flow_flow_proto_msgTypes[11] 2610 if protoimpl.UnsafeEnabled && x != nil { 2611 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2612 if ms.LoadMessageInfo() == nil { 2613 ms.StoreMessageInfo(mi) 2614 } 2615 return ms 2616 } 2617 return mi.MessageOf(x) 2618 } 2619 2620 // Deprecated: Use UDP.ProtoReflect.Descriptor instead. 2621 func (*UDP) Descriptor() ([]byte, []int) { 2622 return file_flow_flow_proto_rawDescGZIP(), []int{11} 2623 } 2624 2625 func (x *UDP) GetSourcePort() uint32 { 2626 if x != nil { 2627 return x.SourcePort 2628 } 2629 return 0 2630 } 2631 2632 func (x *UDP) GetDestinationPort() uint32 { 2633 if x != nil { 2634 return x.DestinationPort 2635 } 2636 return 0 2637 } 2638 2639 type SCTP struct { 2640 state protoimpl.MessageState 2641 sizeCache protoimpl.SizeCache 2642 unknownFields protoimpl.UnknownFields 2643 2644 SourcePort uint32 `protobuf:"varint,1,opt,name=source_port,json=sourcePort,proto3" json:"source_port,omitempty"` 2645 DestinationPort uint32 `protobuf:"varint,2,opt,name=destination_port,json=destinationPort,proto3" json:"destination_port,omitempty"` 2646 } 2647 2648 func (x *SCTP) Reset() { 2649 *x = SCTP{} 2650 if protoimpl.UnsafeEnabled { 2651 mi := &file_flow_flow_proto_msgTypes[12] 2652 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2653 ms.StoreMessageInfo(mi) 2654 } 2655 } 2656 2657 func (x *SCTP) String() string { 2658 return protoimpl.X.MessageStringOf(x) 2659 } 2660 2661 func (*SCTP) ProtoMessage() {} 2662 2663 func (x *SCTP) ProtoReflect() protoreflect.Message { 2664 mi := &file_flow_flow_proto_msgTypes[12] 2665 if protoimpl.UnsafeEnabled && x != nil { 2666 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2667 if ms.LoadMessageInfo() == nil { 2668 ms.StoreMessageInfo(mi) 2669 } 2670 return ms 2671 } 2672 return mi.MessageOf(x) 2673 } 2674 2675 // Deprecated: Use SCTP.ProtoReflect.Descriptor instead. 2676 func (*SCTP) Descriptor() ([]byte, []int) { 2677 return file_flow_flow_proto_rawDescGZIP(), []int{12} 2678 } 2679 2680 func (x *SCTP) GetSourcePort() uint32 { 2681 if x != nil { 2682 return x.SourcePort 2683 } 2684 return 0 2685 } 2686 2687 func (x *SCTP) GetDestinationPort() uint32 { 2688 if x != nil { 2689 return x.DestinationPort 2690 } 2691 return 0 2692 } 2693 2694 type ICMPv4 struct { 2695 state protoimpl.MessageState 2696 sizeCache protoimpl.SizeCache 2697 unknownFields protoimpl.UnknownFields 2698 2699 Type uint32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` 2700 Code uint32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` 2701 } 2702 2703 func (x *ICMPv4) Reset() { 2704 *x = ICMPv4{} 2705 if protoimpl.UnsafeEnabled { 2706 mi := &file_flow_flow_proto_msgTypes[13] 2707 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2708 ms.StoreMessageInfo(mi) 2709 } 2710 } 2711 2712 func (x *ICMPv4) String() string { 2713 return protoimpl.X.MessageStringOf(x) 2714 } 2715 2716 func (*ICMPv4) ProtoMessage() {} 2717 2718 func (x *ICMPv4) ProtoReflect() protoreflect.Message { 2719 mi := &file_flow_flow_proto_msgTypes[13] 2720 if protoimpl.UnsafeEnabled && x != nil { 2721 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2722 if ms.LoadMessageInfo() == nil { 2723 ms.StoreMessageInfo(mi) 2724 } 2725 return ms 2726 } 2727 return mi.MessageOf(x) 2728 } 2729 2730 // Deprecated: Use ICMPv4.ProtoReflect.Descriptor instead. 2731 func (*ICMPv4) Descriptor() ([]byte, []int) { 2732 return file_flow_flow_proto_rawDescGZIP(), []int{13} 2733 } 2734 2735 func (x *ICMPv4) GetType() uint32 { 2736 if x != nil { 2737 return x.Type 2738 } 2739 return 0 2740 } 2741 2742 func (x *ICMPv4) GetCode() uint32 { 2743 if x != nil { 2744 return x.Code 2745 } 2746 return 0 2747 } 2748 2749 type ICMPv6 struct { 2750 state protoimpl.MessageState 2751 sizeCache protoimpl.SizeCache 2752 unknownFields protoimpl.UnknownFields 2753 2754 Type uint32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` 2755 Code uint32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` 2756 } 2757 2758 func (x *ICMPv6) Reset() { 2759 *x = ICMPv6{} 2760 if protoimpl.UnsafeEnabled { 2761 mi := &file_flow_flow_proto_msgTypes[14] 2762 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2763 ms.StoreMessageInfo(mi) 2764 } 2765 } 2766 2767 func (x *ICMPv6) String() string { 2768 return protoimpl.X.MessageStringOf(x) 2769 } 2770 2771 func (*ICMPv6) ProtoMessage() {} 2772 2773 func (x *ICMPv6) ProtoReflect() protoreflect.Message { 2774 mi := &file_flow_flow_proto_msgTypes[14] 2775 if protoimpl.UnsafeEnabled && x != nil { 2776 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2777 if ms.LoadMessageInfo() == nil { 2778 ms.StoreMessageInfo(mi) 2779 } 2780 return ms 2781 } 2782 return mi.MessageOf(x) 2783 } 2784 2785 // Deprecated: Use ICMPv6.ProtoReflect.Descriptor instead. 2786 func (*ICMPv6) Descriptor() ([]byte, []int) { 2787 return file_flow_flow_proto_rawDescGZIP(), []int{14} 2788 } 2789 2790 func (x *ICMPv6) GetType() uint32 { 2791 if x != nil { 2792 return x.Type 2793 } 2794 return 0 2795 } 2796 2797 func (x *ICMPv6) GetCode() uint32 { 2798 if x != nil { 2799 return x.Code 2800 } 2801 return 0 2802 } 2803 2804 type Policy struct { 2805 state protoimpl.MessageState 2806 sizeCache protoimpl.SizeCache 2807 unknownFields protoimpl.UnknownFields 2808 2809 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 2810 Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` 2811 Labels []string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty"` 2812 Revision uint64 `protobuf:"varint,4,opt,name=revision,proto3" json:"revision,omitempty"` 2813 } 2814 2815 func (x *Policy) Reset() { 2816 *x = Policy{} 2817 if protoimpl.UnsafeEnabled { 2818 mi := &file_flow_flow_proto_msgTypes[15] 2819 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2820 ms.StoreMessageInfo(mi) 2821 } 2822 } 2823 2824 func (x *Policy) String() string { 2825 return protoimpl.X.MessageStringOf(x) 2826 } 2827 2828 func (*Policy) ProtoMessage() {} 2829 2830 func (x *Policy) ProtoReflect() protoreflect.Message { 2831 mi := &file_flow_flow_proto_msgTypes[15] 2832 if protoimpl.UnsafeEnabled && x != nil { 2833 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2834 if ms.LoadMessageInfo() == nil { 2835 ms.StoreMessageInfo(mi) 2836 } 2837 return ms 2838 } 2839 return mi.MessageOf(x) 2840 } 2841 2842 // Deprecated: Use Policy.ProtoReflect.Descriptor instead. 2843 func (*Policy) Descriptor() ([]byte, []int) { 2844 return file_flow_flow_proto_rawDescGZIP(), []int{15} 2845 } 2846 2847 func (x *Policy) GetName() string { 2848 if x != nil { 2849 return x.Name 2850 } 2851 return "" 2852 } 2853 2854 func (x *Policy) GetNamespace() string { 2855 if x != nil { 2856 return x.Namespace 2857 } 2858 return "" 2859 } 2860 2861 func (x *Policy) GetLabels() []string { 2862 if x != nil { 2863 return x.Labels 2864 } 2865 return nil 2866 } 2867 2868 func (x *Policy) GetRevision() uint64 { 2869 if x != nil { 2870 return x.Revision 2871 } 2872 return 0 2873 } 2874 2875 // EventTypeFilter is a filter describing a particular event type. 2876 type EventTypeFilter struct { 2877 state protoimpl.MessageState 2878 sizeCache protoimpl.SizeCache 2879 unknownFields protoimpl.UnknownFields 2880 2881 // type is the primary flow type as defined by: 2882 // github.com/cilium/cilium/pkg/monitor/api.MessageType* 2883 Type int32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` 2884 // match_sub_type is set to true when matching on the sub_type should 2885 // be done. This flag is required as 0 is a valid sub_type. 2886 MatchSubType bool `protobuf:"varint,2,opt,name=match_sub_type,json=matchSubType,proto3" json:"match_sub_type,omitempty"` 2887 // sub_type is the secondary type, e.g. 2888 // - github.com/cilium/cilium/pkg/monitor/api.Trace* 2889 SubType int32 `protobuf:"varint,3,opt,name=sub_type,json=subType,proto3" json:"sub_type,omitempty"` 2890 } 2891 2892 func (x *EventTypeFilter) Reset() { 2893 *x = EventTypeFilter{} 2894 if protoimpl.UnsafeEnabled { 2895 mi := &file_flow_flow_proto_msgTypes[16] 2896 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2897 ms.StoreMessageInfo(mi) 2898 } 2899 } 2900 2901 func (x *EventTypeFilter) String() string { 2902 return protoimpl.X.MessageStringOf(x) 2903 } 2904 2905 func (*EventTypeFilter) ProtoMessage() {} 2906 2907 func (x *EventTypeFilter) ProtoReflect() protoreflect.Message { 2908 mi := &file_flow_flow_proto_msgTypes[16] 2909 if protoimpl.UnsafeEnabled && x != nil { 2910 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2911 if ms.LoadMessageInfo() == nil { 2912 ms.StoreMessageInfo(mi) 2913 } 2914 return ms 2915 } 2916 return mi.MessageOf(x) 2917 } 2918 2919 // Deprecated: Use EventTypeFilter.ProtoReflect.Descriptor instead. 2920 func (*EventTypeFilter) Descriptor() ([]byte, []int) { 2921 return file_flow_flow_proto_rawDescGZIP(), []int{16} 2922 } 2923 2924 func (x *EventTypeFilter) GetType() int32 { 2925 if x != nil { 2926 return x.Type 2927 } 2928 return 0 2929 } 2930 2931 func (x *EventTypeFilter) GetMatchSubType() bool { 2932 if x != nil { 2933 return x.MatchSubType 2934 } 2935 return false 2936 } 2937 2938 func (x *EventTypeFilter) GetSubType() int32 { 2939 if x != nil { 2940 return x.SubType 2941 } 2942 return 0 2943 } 2944 2945 // CiliumEventType from which the flow originated. 2946 type CiliumEventType struct { 2947 state protoimpl.MessageState 2948 sizeCache protoimpl.SizeCache 2949 unknownFields protoimpl.UnknownFields 2950 2951 // type of event the flow originated from, i.e. 2952 // github.com/cilium/cilium/pkg/monitor/api.MessageType* 2953 Type int32 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` 2954 // sub_type may indicate more details depending on type, e.g. 2955 // - github.com/cilium/cilium/pkg/monitor/api.Trace* 2956 // - github.com/cilium/cilium/pkg/monitor/api.Drop* 2957 // - github.com/cilium/cilium/pkg/monitor/api.DbgCapture* 2958 SubType int32 `protobuf:"varint,2,opt,name=sub_type,json=subType,proto3" json:"sub_type,omitempty"` 2959 } 2960 2961 func (x *CiliumEventType) Reset() { 2962 *x = CiliumEventType{} 2963 if protoimpl.UnsafeEnabled { 2964 mi := &file_flow_flow_proto_msgTypes[17] 2965 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2966 ms.StoreMessageInfo(mi) 2967 } 2968 } 2969 2970 func (x *CiliumEventType) String() string { 2971 return protoimpl.X.MessageStringOf(x) 2972 } 2973 2974 func (*CiliumEventType) ProtoMessage() {} 2975 2976 func (x *CiliumEventType) ProtoReflect() protoreflect.Message { 2977 mi := &file_flow_flow_proto_msgTypes[17] 2978 if protoimpl.UnsafeEnabled && x != nil { 2979 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2980 if ms.LoadMessageInfo() == nil { 2981 ms.StoreMessageInfo(mi) 2982 } 2983 return ms 2984 } 2985 return mi.MessageOf(x) 2986 } 2987 2988 // Deprecated: Use CiliumEventType.ProtoReflect.Descriptor instead. 2989 func (*CiliumEventType) Descriptor() ([]byte, []int) { 2990 return file_flow_flow_proto_rawDescGZIP(), []int{17} 2991 } 2992 2993 func (x *CiliumEventType) GetType() int32 { 2994 if x != nil { 2995 return x.Type 2996 } 2997 return 0 2998 } 2999 3000 func (x *CiliumEventType) GetSubType() int32 { 3001 if x != nil { 3002 return x.SubType 3003 } 3004 return 0 3005 } 3006 3007 // FlowFilter represent an individual flow filter. All fields are optional. If 3008 // multiple fields are set, then all fields must match for the filter to match. 3009 type FlowFilter struct { 3010 state protoimpl.MessageState 3011 sizeCache protoimpl.SizeCache 3012 unknownFields protoimpl.UnknownFields 3013 3014 // uuid filters by a list of flow uuids. 3015 Uuid []string `protobuf:"bytes,29,rep,name=uuid,proto3" json:"uuid,omitempty"` 3016 // source_ip filters by a list of source ips. Each of the source ips can be 3017 // specified as an exact match (e.g. "1.1.1.1") or as a CIDR range (e.g. 3018 // "1.1.1.0/24"). 3019 SourceIp []string `protobuf:"bytes,1,rep,name=source_ip,json=sourceIp,proto3" json:"source_ip,omitempty"` 3020 // source_ip_xlated filters by a list IPs. Each of the IPs can be specified 3021 // as an exact match (e.g. "1.1.1.1") or as a CIDR range (e.g. 3022 // "1.1.1.0/24"). 3023 SourceIpXlated []string `protobuf:"bytes,34,rep,name=source_ip_xlated,json=sourceIpXlated,proto3" json:"source_ip_xlated,omitempty"` 3024 // source_pod filters by a list of source pod name prefixes, optionally 3025 // within a given namespace (e.g. "xwing", "kube-system/coredns-"). 3026 // The pod name can be omitted to only filter by namespace 3027 // (e.g. "kube-system/") or the namespace can be omitted to filter for 3028 // pods in any namespace (e.g. "/xwing") 3029 SourcePod []string `protobuf:"bytes,2,rep,name=source_pod,json=sourcePod,proto3" json:"source_pod,omitempty"` 3030 // source_fqdn filters by a list of source fully qualified domain names 3031 SourceFqdn []string `protobuf:"bytes,7,rep,name=source_fqdn,json=sourceFqdn,proto3" json:"source_fqdn,omitempty"` 3032 // source_labels filters on a list of source label selectors. Selectors 3033 // support the full Kubernetes label selector syntax. 3034 SourceLabel []string `protobuf:"bytes,10,rep,name=source_label,json=sourceLabel,proto3" json:"source_label,omitempty"` 3035 // source_service filters on a list of source service names. This field 3036 // supports the same syntax as the source_pod field. 3037 SourceService []string `protobuf:"bytes,16,rep,name=source_service,json=sourceService,proto3" json:"source_service,omitempty"` 3038 // source_workload filters by a list of source workload. 3039 SourceWorkload []*Workload `protobuf:"bytes,26,rep,name=source_workload,json=sourceWorkload,proto3" json:"source_workload,omitempty"` 3040 // destination_ip filters by a list of destination ips. Each of the 3041 // destination ips can be specified as an exact match (e.g. "1.1.1.1") or 3042 // as a CIDR range (e.g. "1.1.1.0/24"). 3043 DestinationIp []string `protobuf:"bytes,3,rep,name=destination_ip,json=destinationIp,proto3" json:"destination_ip,omitempty"` 3044 // destination_pod filters by a list of destination pod names 3045 DestinationPod []string `protobuf:"bytes,4,rep,name=destination_pod,json=destinationPod,proto3" json:"destination_pod,omitempty"` 3046 // destination_fqdn filters by a list of destination fully qualified domain names 3047 DestinationFqdn []string `protobuf:"bytes,8,rep,name=destination_fqdn,json=destinationFqdn,proto3" json:"destination_fqdn,omitempty"` 3048 // destination_label filters on a list of destination label selectors 3049 DestinationLabel []string `protobuf:"bytes,11,rep,name=destination_label,json=destinationLabel,proto3" json:"destination_label,omitempty"` 3050 // destination_service filters on a list of destination service names 3051 DestinationService []string `protobuf:"bytes,17,rep,name=destination_service,json=destinationService,proto3" json:"destination_service,omitempty"` 3052 // destination_workload filters by a list of destination workload. 3053 DestinationWorkload []*Workload `protobuf:"bytes,27,rep,name=destination_workload,json=destinationWorkload,proto3" json:"destination_workload,omitempty"` 3054 // traffic_direction filters flow by direction of the connection, e.g. 3055 // ingress or egress. 3056 TrafficDirection []TrafficDirection `protobuf:"varint,30,rep,packed,name=traffic_direction,json=trafficDirection,proto3,enum=flow.TrafficDirection" json:"traffic_direction,omitempty"` 3057 // only return Flows that were classified with a particular verdict. 3058 Verdict []Verdict `protobuf:"varint,5,rep,packed,name=verdict,proto3,enum=flow.Verdict" json:"verdict,omitempty"` 3059 // only applicable to Verdict = DROPPED (e.g. "POLICY_DENIED", "UNSUPPORTED_L3_PROTOCOL") 3060 DropReasonDesc []DropReason `protobuf:"varint,33,rep,packed,name=drop_reason_desc,json=dropReasonDesc,proto3,enum=flow.DropReason" json:"drop_reason_desc,omitempty"` 3061 // interface is the network interface on which this flow was observed. 3062 Interface []*NetworkInterface `protobuf:"bytes,35,rep,name=interface,proto3" json:"interface,omitempty"` 3063 // event_type is the list of event types to filter on 3064 EventType []*EventTypeFilter `protobuf:"bytes,6,rep,name=event_type,json=eventType,proto3" json:"event_type,omitempty"` 3065 // http_status_code is a list of string prefixes (e.g. "4+", "404", "5+") 3066 // to filter on the HTTP status code 3067 HttpStatusCode []string `protobuf:"bytes,9,rep,name=http_status_code,json=httpStatusCode,proto3" json:"http_status_code,omitempty"` 3068 // protocol filters flows by L4 or L7 protocol, e.g. (e.g. "tcp", "http") 3069 Protocol []string `protobuf:"bytes,12,rep,name=protocol,proto3" json:"protocol,omitempty"` 3070 // source_port filters flows by L4 source port 3071 SourcePort []string `protobuf:"bytes,13,rep,name=source_port,json=sourcePort,proto3" json:"source_port,omitempty"` 3072 // destination_port filters flows by L4 destination port 3073 DestinationPort []string `protobuf:"bytes,14,rep,name=destination_port,json=destinationPort,proto3" json:"destination_port,omitempty"` 3074 // reply filters flows based on the direction of the flow. 3075 Reply []bool `protobuf:"varint,15,rep,packed,name=reply,proto3" json:"reply,omitempty"` 3076 // dns_query filters L7 DNS flows by query patterns (RE2 regex), e.g. 'kube.*local'. 3077 DnsQuery []string `protobuf:"bytes,18,rep,name=dns_query,json=dnsQuery,proto3" json:"dns_query,omitempty"` 3078 // source_identity filters by the security identity of the source endpoint. 3079 SourceIdentity []uint32 `protobuf:"varint,19,rep,packed,name=source_identity,json=sourceIdentity,proto3" json:"source_identity,omitempty"` 3080 // destination_identity filters by the security identity of the destination endpoint. 3081 DestinationIdentity []uint32 `protobuf:"varint,20,rep,packed,name=destination_identity,json=destinationIdentity,proto3" json:"destination_identity,omitempty"` 3082 // GET, POST, PUT, etc. methods. This type of field is well suited for an 3083 // enum but every single existing place is using a string already. 3084 HttpMethod []string `protobuf:"bytes,21,rep,name=http_method,json=httpMethod,proto3" json:"http_method,omitempty"` 3085 // http_path is a list of regular expressions to filter on the HTTP path. 3086 HttpPath []string `protobuf:"bytes,22,rep,name=http_path,json=httpPath,proto3" json:"http_path,omitempty"` 3087 // http_url is a list of regular expressions to filter on the HTTP URL. 3088 HttpUrl []string `protobuf:"bytes,31,rep,name=http_url,json=httpUrl,proto3" json:"http_url,omitempty"` 3089 // http_header is a list of key:value pairs to filter on the HTTP headers. 3090 HttpHeader []*HTTPHeader `protobuf:"bytes,32,rep,name=http_header,json=httpHeader,proto3" json:"http_header,omitempty"` 3091 // tcp_flags filters flows based on TCP header flags 3092 TcpFlags []*TCPFlags `protobuf:"bytes,23,rep,name=tcp_flags,json=tcpFlags,proto3" json:"tcp_flags,omitempty"` 3093 // node_name is a list of patterns to filter on the node name, e.g. "k8s*", 3094 // "test-cluster/*.domain.com", "cluster-name/" etc. 3095 NodeName []string `protobuf:"bytes,24,rep,name=node_name,json=nodeName,proto3" json:"node_name,omitempty"` 3096 // node_labels filters on a list of node label selectors. Selectors support 3097 // the full Kubernetes label selector syntax. 3098 NodeLabels []string `protobuf:"bytes,36,rep,name=node_labels,json=nodeLabels,proto3" json:"node_labels,omitempty"` 3099 // filter based on IP version (ipv4 or ipv6) 3100 IpVersion []IPVersion `protobuf:"varint,25,rep,packed,name=ip_version,json=ipVersion,proto3,enum=flow.IPVersion" json:"ip_version,omitempty"` 3101 // trace_id filters flows by trace ID 3102 TraceId []string `protobuf:"bytes,28,rep,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"` 3103 // experimental contains filters that are not stable yet. Support for 3104 // experimental features is always optional and subject to change. 3105 Experimental *FlowFilter_Experimental `protobuf:"bytes,999,opt,name=experimental,proto3" json:"experimental,omitempty"` 3106 } 3107 3108 func (x *FlowFilter) Reset() { 3109 *x = FlowFilter{} 3110 if protoimpl.UnsafeEnabled { 3111 mi := &file_flow_flow_proto_msgTypes[18] 3112 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3113 ms.StoreMessageInfo(mi) 3114 } 3115 } 3116 3117 func (x *FlowFilter) String() string { 3118 return protoimpl.X.MessageStringOf(x) 3119 } 3120 3121 func (*FlowFilter) ProtoMessage() {} 3122 3123 func (x *FlowFilter) ProtoReflect() protoreflect.Message { 3124 mi := &file_flow_flow_proto_msgTypes[18] 3125 if protoimpl.UnsafeEnabled && x != nil { 3126 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3127 if ms.LoadMessageInfo() == nil { 3128 ms.StoreMessageInfo(mi) 3129 } 3130 return ms 3131 } 3132 return mi.MessageOf(x) 3133 } 3134 3135 // Deprecated: Use FlowFilter.ProtoReflect.Descriptor instead. 3136 func (*FlowFilter) Descriptor() ([]byte, []int) { 3137 return file_flow_flow_proto_rawDescGZIP(), []int{18} 3138 } 3139 3140 func (x *FlowFilter) GetUuid() []string { 3141 if x != nil { 3142 return x.Uuid 3143 } 3144 return nil 3145 } 3146 3147 func (x *FlowFilter) GetSourceIp() []string { 3148 if x != nil { 3149 return x.SourceIp 3150 } 3151 return nil 3152 } 3153 3154 func (x *FlowFilter) GetSourceIpXlated() []string { 3155 if x != nil { 3156 return x.SourceIpXlated 3157 } 3158 return nil 3159 } 3160 3161 func (x *FlowFilter) GetSourcePod() []string { 3162 if x != nil { 3163 return x.SourcePod 3164 } 3165 return nil 3166 } 3167 3168 func (x *FlowFilter) GetSourceFqdn() []string { 3169 if x != nil { 3170 return x.SourceFqdn 3171 } 3172 return nil 3173 } 3174 3175 func (x *FlowFilter) GetSourceLabel() []string { 3176 if x != nil { 3177 return x.SourceLabel 3178 } 3179 return nil 3180 } 3181 3182 func (x *FlowFilter) GetSourceService() []string { 3183 if x != nil { 3184 return x.SourceService 3185 } 3186 return nil 3187 } 3188 3189 func (x *FlowFilter) GetSourceWorkload() []*Workload { 3190 if x != nil { 3191 return x.SourceWorkload 3192 } 3193 return nil 3194 } 3195 3196 func (x *FlowFilter) GetDestinationIp() []string { 3197 if x != nil { 3198 return x.DestinationIp 3199 } 3200 return nil 3201 } 3202 3203 func (x *FlowFilter) GetDestinationPod() []string { 3204 if x != nil { 3205 return x.DestinationPod 3206 } 3207 return nil 3208 } 3209 3210 func (x *FlowFilter) GetDestinationFqdn() []string { 3211 if x != nil { 3212 return x.DestinationFqdn 3213 } 3214 return nil 3215 } 3216 3217 func (x *FlowFilter) GetDestinationLabel() []string { 3218 if x != nil { 3219 return x.DestinationLabel 3220 } 3221 return nil 3222 } 3223 3224 func (x *FlowFilter) GetDestinationService() []string { 3225 if x != nil { 3226 return x.DestinationService 3227 } 3228 return nil 3229 } 3230 3231 func (x *FlowFilter) GetDestinationWorkload() []*Workload { 3232 if x != nil { 3233 return x.DestinationWorkload 3234 } 3235 return nil 3236 } 3237 3238 func (x *FlowFilter) GetTrafficDirection() []TrafficDirection { 3239 if x != nil { 3240 return x.TrafficDirection 3241 } 3242 return nil 3243 } 3244 3245 func (x *FlowFilter) GetVerdict() []Verdict { 3246 if x != nil { 3247 return x.Verdict 3248 } 3249 return nil 3250 } 3251 3252 func (x *FlowFilter) GetDropReasonDesc() []DropReason { 3253 if x != nil { 3254 return x.DropReasonDesc 3255 } 3256 return nil 3257 } 3258 3259 func (x *FlowFilter) GetInterface() []*NetworkInterface { 3260 if x != nil { 3261 return x.Interface 3262 } 3263 return nil 3264 } 3265 3266 func (x *FlowFilter) GetEventType() []*EventTypeFilter { 3267 if x != nil { 3268 return x.EventType 3269 } 3270 return nil 3271 } 3272 3273 func (x *FlowFilter) GetHttpStatusCode() []string { 3274 if x != nil { 3275 return x.HttpStatusCode 3276 } 3277 return nil 3278 } 3279 3280 func (x *FlowFilter) GetProtocol() []string { 3281 if x != nil { 3282 return x.Protocol 3283 } 3284 return nil 3285 } 3286 3287 func (x *FlowFilter) GetSourcePort() []string { 3288 if x != nil { 3289 return x.SourcePort 3290 } 3291 return nil 3292 } 3293 3294 func (x *FlowFilter) GetDestinationPort() []string { 3295 if x != nil { 3296 return x.DestinationPort 3297 } 3298 return nil 3299 } 3300 3301 func (x *FlowFilter) GetReply() []bool { 3302 if x != nil { 3303 return x.Reply 3304 } 3305 return nil 3306 } 3307 3308 func (x *FlowFilter) GetDnsQuery() []string { 3309 if x != nil { 3310 return x.DnsQuery 3311 } 3312 return nil 3313 } 3314 3315 func (x *FlowFilter) GetSourceIdentity() []uint32 { 3316 if x != nil { 3317 return x.SourceIdentity 3318 } 3319 return nil 3320 } 3321 3322 func (x *FlowFilter) GetDestinationIdentity() []uint32 { 3323 if x != nil { 3324 return x.DestinationIdentity 3325 } 3326 return nil 3327 } 3328 3329 func (x *FlowFilter) GetHttpMethod() []string { 3330 if x != nil { 3331 return x.HttpMethod 3332 } 3333 return nil 3334 } 3335 3336 func (x *FlowFilter) GetHttpPath() []string { 3337 if x != nil { 3338 return x.HttpPath 3339 } 3340 return nil 3341 } 3342 3343 func (x *FlowFilter) GetHttpUrl() []string { 3344 if x != nil { 3345 return x.HttpUrl 3346 } 3347 return nil 3348 } 3349 3350 func (x *FlowFilter) GetHttpHeader() []*HTTPHeader { 3351 if x != nil { 3352 return x.HttpHeader 3353 } 3354 return nil 3355 } 3356 3357 func (x *FlowFilter) GetTcpFlags() []*TCPFlags { 3358 if x != nil { 3359 return x.TcpFlags 3360 } 3361 return nil 3362 } 3363 3364 func (x *FlowFilter) GetNodeName() []string { 3365 if x != nil { 3366 return x.NodeName 3367 } 3368 return nil 3369 } 3370 3371 func (x *FlowFilter) GetNodeLabels() []string { 3372 if x != nil { 3373 return x.NodeLabels 3374 } 3375 return nil 3376 } 3377 3378 func (x *FlowFilter) GetIpVersion() []IPVersion { 3379 if x != nil { 3380 return x.IpVersion 3381 } 3382 return nil 3383 } 3384 3385 func (x *FlowFilter) GetTraceId() []string { 3386 if x != nil { 3387 return x.TraceId 3388 } 3389 return nil 3390 } 3391 3392 func (x *FlowFilter) GetExperimental() *FlowFilter_Experimental { 3393 if x != nil { 3394 return x.Experimental 3395 } 3396 return nil 3397 } 3398 3399 // DNS flow. This is basically directly mapped from Cilium's [LogRecordDNS](https://github.com/cilium/cilium/blob/04f3889d627774f79e56d14ddbc165b3169e2d01/pkg/proxy/accesslog/record.go#L264): 3400 type DNS struct { 3401 state protoimpl.MessageState 3402 sizeCache protoimpl.SizeCache 3403 unknownFields protoimpl.UnknownFields 3404 3405 // DNS name that's being looked up: e.g. "isovalent.com." 3406 Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"` 3407 // List of IP addresses in the DNS response. 3408 Ips []string `protobuf:"bytes,2,rep,name=ips,proto3" json:"ips,omitempty"` 3409 // TTL in the DNS response. 3410 Ttl uint32 `protobuf:"varint,3,opt,name=ttl,proto3" json:"ttl,omitempty"` 3411 // List of CNames in the DNS response. 3412 Cnames []string `protobuf:"bytes,4,rep,name=cnames,proto3" json:"cnames,omitempty"` 3413 // Corresponds to DNSDataSource defined in: 3414 // 3415 // https://github.com/cilium/cilium/blob/04f3889d627774f79e56d14ddbc165b3169e2d01/pkg/proxy/accesslog/record.go#L253 3416 ObservationSource string `protobuf:"bytes,5,opt,name=observation_source,json=observationSource,proto3" json:"observation_source,omitempty"` 3417 // Return code of the DNS request defined in: 3418 // 3419 // https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6 3420 Rcode uint32 `protobuf:"varint,6,opt,name=rcode,proto3" json:"rcode,omitempty"` 3421 // String representation of qtypes defined in: 3422 // 3423 // https://tools.ietf.org/html/rfc1035#section-3.2.3 3424 Qtypes []string `protobuf:"bytes,7,rep,name=qtypes,proto3" json:"qtypes,omitempty"` 3425 // String representation of rrtypes defined in: 3426 // https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4 3427 Rrtypes []string `protobuf:"bytes,8,rep,name=rrtypes,proto3" json:"rrtypes,omitempty"` 3428 } 3429 3430 func (x *DNS) Reset() { 3431 *x = DNS{} 3432 if protoimpl.UnsafeEnabled { 3433 mi := &file_flow_flow_proto_msgTypes[19] 3434 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3435 ms.StoreMessageInfo(mi) 3436 } 3437 } 3438 3439 func (x *DNS) String() string { 3440 return protoimpl.X.MessageStringOf(x) 3441 } 3442 3443 func (*DNS) ProtoMessage() {} 3444 3445 func (x *DNS) ProtoReflect() protoreflect.Message { 3446 mi := &file_flow_flow_proto_msgTypes[19] 3447 if protoimpl.UnsafeEnabled && x != nil { 3448 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3449 if ms.LoadMessageInfo() == nil { 3450 ms.StoreMessageInfo(mi) 3451 } 3452 return ms 3453 } 3454 return mi.MessageOf(x) 3455 } 3456 3457 // Deprecated: Use DNS.ProtoReflect.Descriptor instead. 3458 func (*DNS) Descriptor() ([]byte, []int) { 3459 return file_flow_flow_proto_rawDescGZIP(), []int{19} 3460 } 3461 3462 func (x *DNS) GetQuery() string { 3463 if x != nil { 3464 return x.Query 3465 } 3466 return "" 3467 } 3468 3469 func (x *DNS) GetIps() []string { 3470 if x != nil { 3471 return x.Ips 3472 } 3473 return nil 3474 } 3475 3476 func (x *DNS) GetTtl() uint32 { 3477 if x != nil { 3478 return x.Ttl 3479 } 3480 return 0 3481 } 3482 3483 func (x *DNS) GetCnames() []string { 3484 if x != nil { 3485 return x.Cnames 3486 } 3487 return nil 3488 } 3489 3490 func (x *DNS) GetObservationSource() string { 3491 if x != nil { 3492 return x.ObservationSource 3493 } 3494 return "" 3495 } 3496 3497 func (x *DNS) GetRcode() uint32 { 3498 if x != nil { 3499 return x.Rcode 3500 } 3501 return 0 3502 } 3503 3504 func (x *DNS) GetQtypes() []string { 3505 if x != nil { 3506 return x.Qtypes 3507 } 3508 return nil 3509 } 3510 3511 func (x *DNS) GetRrtypes() []string { 3512 if x != nil { 3513 return x.Rrtypes 3514 } 3515 return nil 3516 } 3517 3518 type HTTPHeader struct { 3519 state protoimpl.MessageState 3520 sizeCache protoimpl.SizeCache 3521 unknownFields protoimpl.UnknownFields 3522 3523 Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` 3524 Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` 3525 } 3526 3527 func (x *HTTPHeader) Reset() { 3528 *x = HTTPHeader{} 3529 if protoimpl.UnsafeEnabled { 3530 mi := &file_flow_flow_proto_msgTypes[20] 3531 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3532 ms.StoreMessageInfo(mi) 3533 } 3534 } 3535 3536 func (x *HTTPHeader) String() string { 3537 return protoimpl.X.MessageStringOf(x) 3538 } 3539 3540 func (*HTTPHeader) ProtoMessage() {} 3541 3542 func (x *HTTPHeader) ProtoReflect() protoreflect.Message { 3543 mi := &file_flow_flow_proto_msgTypes[20] 3544 if protoimpl.UnsafeEnabled && x != nil { 3545 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3546 if ms.LoadMessageInfo() == nil { 3547 ms.StoreMessageInfo(mi) 3548 } 3549 return ms 3550 } 3551 return mi.MessageOf(x) 3552 } 3553 3554 // Deprecated: Use HTTPHeader.ProtoReflect.Descriptor instead. 3555 func (*HTTPHeader) Descriptor() ([]byte, []int) { 3556 return file_flow_flow_proto_rawDescGZIP(), []int{20} 3557 } 3558 3559 func (x *HTTPHeader) GetKey() string { 3560 if x != nil { 3561 return x.Key 3562 } 3563 return "" 3564 } 3565 3566 func (x *HTTPHeader) GetValue() string { 3567 if x != nil { 3568 return x.Value 3569 } 3570 return "" 3571 } 3572 3573 // L7 information for HTTP flows. It corresponds to Cilium's [accesslog.LogRecordHTTP](https://github.com/cilium/cilium/blob/728c79e427438ab6f8d9375b62fccd6fed4ace3a/pkg/proxy/accesslog/record.go#L206) type. 3574 type HTTP struct { 3575 state protoimpl.MessageState 3576 sizeCache protoimpl.SizeCache 3577 unknownFields protoimpl.UnknownFields 3578 3579 Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` 3580 Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"` 3581 Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` 3582 Protocol string `protobuf:"bytes,4,opt,name=protocol,proto3" json:"protocol,omitempty"` 3583 Headers []*HTTPHeader `protobuf:"bytes,5,rep,name=headers,proto3" json:"headers,omitempty"` 3584 } 3585 3586 func (x *HTTP) Reset() { 3587 *x = HTTP{} 3588 if protoimpl.UnsafeEnabled { 3589 mi := &file_flow_flow_proto_msgTypes[21] 3590 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3591 ms.StoreMessageInfo(mi) 3592 } 3593 } 3594 3595 func (x *HTTP) String() string { 3596 return protoimpl.X.MessageStringOf(x) 3597 } 3598 3599 func (*HTTP) ProtoMessage() {} 3600 3601 func (x *HTTP) ProtoReflect() protoreflect.Message { 3602 mi := &file_flow_flow_proto_msgTypes[21] 3603 if protoimpl.UnsafeEnabled && x != nil { 3604 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3605 if ms.LoadMessageInfo() == nil { 3606 ms.StoreMessageInfo(mi) 3607 } 3608 return ms 3609 } 3610 return mi.MessageOf(x) 3611 } 3612 3613 // Deprecated: Use HTTP.ProtoReflect.Descriptor instead. 3614 func (*HTTP) Descriptor() ([]byte, []int) { 3615 return file_flow_flow_proto_rawDescGZIP(), []int{21} 3616 } 3617 3618 func (x *HTTP) GetCode() uint32 { 3619 if x != nil { 3620 return x.Code 3621 } 3622 return 0 3623 } 3624 3625 func (x *HTTP) GetMethod() string { 3626 if x != nil { 3627 return x.Method 3628 } 3629 return "" 3630 } 3631 3632 func (x *HTTP) GetUrl() string { 3633 if x != nil { 3634 return x.Url 3635 } 3636 return "" 3637 } 3638 3639 func (x *HTTP) GetProtocol() string { 3640 if x != nil { 3641 return x.Protocol 3642 } 3643 return "" 3644 } 3645 3646 func (x *HTTP) GetHeaders() []*HTTPHeader { 3647 if x != nil { 3648 return x.Headers 3649 } 3650 return nil 3651 } 3652 3653 // L7 information for Kafka flows. It corresponds to Cilium's [accesslog.LogRecordKafka](https://github.com/cilium/cilium/blob/728c79e427438ab6f8d9375b62fccd6fed4ace3a/pkg/proxy/accesslog/record.go#L229) type. 3654 type Kafka struct { 3655 state protoimpl.MessageState 3656 sizeCache protoimpl.SizeCache 3657 unknownFields protoimpl.UnknownFields 3658 3659 ErrorCode int32 `protobuf:"varint,1,opt,name=error_code,json=errorCode,proto3" json:"error_code,omitempty"` 3660 ApiVersion int32 `protobuf:"varint,2,opt,name=api_version,json=apiVersion,proto3" json:"api_version,omitempty"` 3661 ApiKey string `protobuf:"bytes,3,opt,name=api_key,json=apiKey,proto3" json:"api_key,omitempty"` 3662 CorrelationId int32 `protobuf:"varint,4,opt,name=correlation_id,json=correlationId,proto3" json:"correlation_id,omitempty"` 3663 Topic string `protobuf:"bytes,5,opt,name=topic,proto3" json:"topic,omitempty"` 3664 } 3665 3666 func (x *Kafka) Reset() { 3667 *x = Kafka{} 3668 if protoimpl.UnsafeEnabled { 3669 mi := &file_flow_flow_proto_msgTypes[22] 3670 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3671 ms.StoreMessageInfo(mi) 3672 } 3673 } 3674 3675 func (x *Kafka) String() string { 3676 return protoimpl.X.MessageStringOf(x) 3677 } 3678 3679 func (*Kafka) ProtoMessage() {} 3680 3681 func (x *Kafka) ProtoReflect() protoreflect.Message { 3682 mi := &file_flow_flow_proto_msgTypes[22] 3683 if protoimpl.UnsafeEnabled && x != nil { 3684 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3685 if ms.LoadMessageInfo() == nil { 3686 ms.StoreMessageInfo(mi) 3687 } 3688 return ms 3689 } 3690 return mi.MessageOf(x) 3691 } 3692 3693 // Deprecated: Use Kafka.ProtoReflect.Descriptor instead. 3694 func (*Kafka) Descriptor() ([]byte, []int) { 3695 return file_flow_flow_proto_rawDescGZIP(), []int{22} 3696 } 3697 3698 func (x *Kafka) GetErrorCode() int32 { 3699 if x != nil { 3700 return x.ErrorCode 3701 } 3702 return 0 3703 } 3704 3705 func (x *Kafka) GetApiVersion() int32 { 3706 if x != nil { 3707 return x.ApiVersion 3708 } 3709 return 0 3710 } 3711 3712 func (x *Kafka) GetApiKey() string { 3713 if x != nil { 3714 return x.ApiKey 3715 } 3716 return "" 3717 } 3718 3719 func (x *Kafka) GetCorrelationId() int32 { 3720 if x != nil { 3721 return x.CorrelationId 3722 } 3723 return 0 3724 } 3725 3726 func (x *Kafka) GetTopic() string { 3727 if x != nil { 3728 return x.Topic 3729 } 3730 return "" 3731 } 3732 3733 type Service struct { 3734 state protoimpl.MessageState 3735 sizeCache protoimpl.SizeCache 3736 unknownFields protoimpl.UnknownFields 3737 3738 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 3739 Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` 3740 } 3741 3742 func (x *Service) Reset() { 3743 *x = Service{} 3744 if protoimpl.UnsafeEnabled { 3745 mi := &file_flow_flow_proto_msgTypes[23] 3746 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3747 ms.StoreMessageInfo(mi) 3748 } 3749 } 3750 3751 func (x *Service) String() string { 3752 return protoimpl.X.MessageStringOf(x) 3753 } 3754 3755 func (*Service) ProtoMessage() {} 3756 3757 func (x *Service) ProtoReflect() protoreflect.Message { 3758 mi := &file_flow_flow_proto_msgTypes[23] 3759 if protoimpl.UnsafeEnabled && x != nil { 3760 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3761 if ms.LoadMessageInfo() == nil { 3762 ms.StoreMessageInfo(mi) 3763 } 3764 return ms 3765 } 3766 return mi.MessageOf(x) 3767 } 3768 3769 // Deprecated: Use Service.ProtoReflect.Descriptor instead. 3770 func (*Service) Descriptor() ([]byte, []int) { 3771 return file_flow_flow_proto_rawDescGZIP(), []int{23} 3772 } 3773 3774 func (x *Service) GetName() string { 3775 if x != nil { 3776 return x.Name 3777 } 3778 return "" 3779 } 3780 3781 func (x *Service) GetNamespace() string { 3782 if x != nil { 3783 return x.Namespace 3784 } 3785 return "" 3786 } 3787 3788 // LostEvent is a message which notifies consumers about a loss of events 3789 // that happened before the events were captured by Hubble. 3790 type LostEvent struct { 3791 state protoimpl.MessageState 3792 sizeCache protoimpl.SizeCache 3793 unknownFields protoimpl.UnknownFields 3794 3795 // source is the location where events got lost. 3796 Source LostEventSource `protobuf:"varint,1,opt,name=source,proto3,enum=flow.LostEventSource" json:"source,omitempty"` 3797 // num_events_lost is the number of events that haven been lost at source. 3798 NumEventsLost uint64 `protobuf:"varint,2,opt,name=num_events_lost,json=numEventsLost,proto3" json:"num_events_lost,omitempty"` 3799 // cpu on which the event was lost if the source of lost events is 3800 // PERF_EVENT_RING_BUFFER. 3801 Cpu *wrapperspb.Int32Value `protobuf:"bytes,3,opt,name=cpu,proto3" json:"cpu,omitempty"` 3802 } 3803 3804 func (x *LostEvent) Reset() { 3805 *x = LostEvent{} 3806 if protoimpl.UnsafeEnabled { 3807 mi := &file_flow_flow_proto_msgTypes[24] 3808 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3809 ms.StoreMessageInfo(mi) 3810 } 3811 } 3812 3813 func (x *LostEvent) String() string { 3814 return protoimpl.X.MessageStringOf(x) 3815 } 3816 3817 func (*LostEvent) ProtoMessage() {} 3818 3819 func (x *LostEvent) ProtoReflect() protoreflect.Message { 3820 mi := &file_flow_flow_proto_msgTypes[24] 3821 if protoimpl.UnsafeEnabled && x != nil { 3822 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3823 if ms.LoadMessageInfo() == nil { 3824 ms.StoreMessageInfo(mi) 3825 } 3826 return ms 3827 } 3828 return mi.MessageOf(x) 3829 } 3830 3831 // Deprecated: Use LostEvent.ProtoReflect.Descriptor instead. 3832 func (*LostEvent) Descriptor() ([]byte, []int) { 3833 return file_flow_flow_proto_rawDescGZIP(), []int{24} 3834 } 3835 3836 func (x *LostEvent) GetSource() LostEventSource { 3837 if x != nil { 3838 return x.Source 3839 } 3840 return LostEventSource_UNKNOWN_LOST_EVENT_SOURCE 3841 } 3842 3843 func (x *LostEvent) GetNumEventsLost() uint64 { 3844 if x != nil { 3845 return x.NumEventsLost 3846 } 3847 return 0 3848 } 3849 3850 func (x *LostEvent) GetCpu() *wrapperspb.Int32Value { 3851 if x != nil { 3852 return x.Cpu 3853 } 3854 return nil 3855 } 3856 3857 type AgentEvent struct { 3858 state protoimpl.MessageState 3859 sizeCache protoimpl.SizeCache 3860 unknownFields protoimpl.UnknownFields 3861 3862 Type AgentEventType `protobuf:"varint,1,opt,name=type,proto3,enum=flow.AgentEventType" json:"type,omitempty"` 3863 // Types that are assignable to Notification: 3864 // 3865 // *AgentEvent_Unknown 3866 // *AgentEvent_AgentStart 3867 // *AgentEvent_PolicyUpdate 3868 // *AgentEvent_EndpointRegenerate 3869 // *AgentEvent_EndpointUpdate 3870 // *AgentEvent_IpcacheUpdate 3871 // *AgentEvent_ServiceUpsert 3872 // *AgentEvent_ServiceDelete 3873 Notification isAgentEvent_Notification `protobuf_oneof:"notification"` 3874 } 3875 3876 func (x *AgentEvent) Reset() { 3877 *x = AgentEvent{} 3878 if protoimpl.UnsafeEnabled { 3879 mi := &file_flow_flow_proto_msgTypes[25] 3880 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3881 ms.StoreMessageInfo(mi) 3882 } 3883 } 3884 3885 func (x *AgentEvent) String() string { 3886 return protoimpl.X.MessageStringOf(x) 3887 } 3888 3889 func (*AgentEvent) ProtoMessage() {} 3890 3891 func (x *AgentEvent) ProtoReflect() protoreflect.Message { 3892 mi := &file_flow_flow_proto_msgTypes[25] 3893 if protoimpl.UnsafeEnabled && x != nil { 3894 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 3895 if ms.LoadMessageInfo() == nil { 3896 ms.StoreMessageInfo(mi) 3897 } 3898 return ms 3899 } 3900 return mi.MessageOf(x) 3901 } 3902 3903 // Deprecated: Use AgentEvent.ProtoReflect.Descriptor instead. 3904 func (*AgentEvent) Descriptor() ([]byte, []int) { 3905 return file_flow_flow_proto_rawDescGZIP(), []int{25} 3906 } 3907 3908 func (x *AgentEvent) GetType() AgentEventType { 3909 if x != nil { 3910 return x.Type 3911 } 3912 return AgentEventType_AGENT_EVENT_UNKNOWN 3913 } 3914 3915 func (m *AgentEvent) GetNotification() isAgentEvent_Notification { 3916 if m != nil { 3917 return m.Notification 3918 } 3919 return nil 3920 } 3921 3922 func (x *AgentEvent) GetUnknown() *AgentEventUnknown { 3923 if x, ok := x.GetNotification().(*AgentEvent_Unknown); ok { 3924 return x.Unknown 3925 } 3926 return nil 3927 } 3928 3929 func (x *AgentEvent) GetAgentStart() *TimeNotification { 3930 if x, ok := x.GetNotification().(*AgentEvent_AgentStart); ok { 3931 return x.AgentStart 3932 } 3933 return nil 3934 } 3935 3936 func (x *AgentEvent) GetPolicyUpdate() *PolicyUpdateNotification { 3937 if x, ok := x.GetNotification().(*AgentEvent_PolicyUpdate); ok { 3938 return x.PolicyUpdate 3939 } 3940 return nil 3941 } 3942 3943 func (x *AgentEvent) GetEndpointRegenerate() *EndpointRegenNotification { 3944 if x, ok := x.GetNotification().(*AgentEvent_EndpointRegenerate); ok { 3945 return x.EndpointRegenerate 3946 } 3947 return nil 3948 } 3949 3950 func (x *AgentEvent) GetEndpointUpdate() *EndpointUpdateNotification { 3951 if x, ok := x.GetNotification().(*AgentEvent_EndpointUpdate); ok { 3952 return x.EndpointUpdate 3953 } 3954 return nil 3955 } 3956 3957 func (x *AgentEvent) GetIpcacheUpdate() *IPCacheNotification { 3958 if x, ok := x.GetNotification().(*AgentEvent_IpcacheUpdate); ok { 3959 return x.IpcacheUpdate 3960 } 3961 return nil 3962 } 3963 3964 func (x *AgentEvent) GetServiceUpsert() *ServiceUpsertNotification { 3965 if x, ok := x.GetNotification().(*AgentEvent_ServiceUpsert); ok { 3966 return x.ServiceUpsert 3967 } 3968 return nil 3969 } 3970 3971 func (x *AgentEvent) GetServiceDelete() *ServiceDeleteNotification { 3972 if x, ok := x.GetNotification().(*AgentEvent_ServiceDelete); ok { 3973 return x.ServiceDelete 3974 } 3975 return nil 3976 } 3977 3978 type isAgentEvent_Notification interface { 3979 isAgentEvent_Notification() 3980 } 3981 3982 type AgentEvent_Unknown struct { 3983 Unknown *AgentEventUnknown `protobuf:"bytes,100,opt,name=unknown,proto3,oneof"` 3984 } 3985 3986 type AgentEvent_AgentStart struct { 3987 AgentStart *TimeNotification `protobuf:"bytes,101,opt,name=agent_start,json=agentStart,proto3,oneof"` 3988 } 3989 3990 type AgentEvent_PolicyUpdate struct { 3991 // used for POLICY_UPDATED and POLICY_DELETED 3992 PolicyUpdate *PolicyUpdateNotification `protobuf:"bytes,102,opt,name=policy_update,json=policyUpdate,proto3,oneof"` 3993 } 3994 3995 type AgentEvent_EndpointRegenerate struct { 3996 // used for ENDPOINT_REGENERATE_SUCCESS and ENDPOINT_REGENERATE_FAILURE 3997 EndpointRegenerate *EndpointRegenNotification `protobuf:"bytes,103,opt,name=endpoint_regenerate,json=endpointRegenerate,proto3,oneof"` 3998 } 3999 4000 type AgentEvent_EndpointUpdate struct { 4001 // used for ENDPOINT_CREATED and ENDPOINT_DELETED 4002 EndpointUpdate *EndpointUpdateNotification `protobuf:"bytes,104,opt,name=endpoint_update,json=endpointUpdate,proto3,oneof"` 4003 } 4004 4005 type AgentEvent_IpcacheUpdate struct { 4006 // used for IPCACHE_UPSERTED and IPCACHE_DELETED 4007 IpcacheUpdate *IPCacheNotification `protobuf:"bytes,105,opt,name=ipcache_update,json=ipcacheUpdate,proto3,oneof"` 4008 } 4009 4010 type AgentEvent_ServiceUpsert struct { 4011 ServiceUpsert *ServiceUpsertNotification `protobuf:"bytes,106,opt,name=service_upsert,json=serviceUpsert,proto3,oneof"` 4012 } 4013 4014 type AgentEvent_ServiceDelete struct { 4015 ServiceDelete *ServiceDeleteNotification `protobuf:"bytes,107,opt,name=service_delete,json=serviceDelete,proto3,oneof"` 4016 } 4017 4018 func (*AgentEvent_Unknown) isAgentEvent_Notification() {} 4019 4020 func (*AgentEvent_AgentStart) isAgentEvent_Notification() {} 4021 4022 func (*AgentEvent_PolicyUpdate) isAgentEvent_Notification() {} 4023 4024 func (*AgentEvent_EndpointRegenerate) isAgentEvent_Notification() {} 4025 4026 func (*AgentEvent_EndpointUpdate) isAgentEvent_Notification() {} 4027 4028 func (*AgentEvent_IpcacheUpdate) isAgentEvent_Notification() {} 4029 4030 func (*AgentEvent_ServiceUpsert) isAgentEvent_Notification() {} 4031 4032 func (*AgentEvent_ServiceDelete) isAgentEvent_Notification() {} 4033 4034 type AgentEventUnknown struct { 4035 state protoimpl.MessageState 4036 sizeCache protoimpl.SizeCache 4037 unknownFields protoimpl.UnknownFields 4038 4039 Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` 4040 Notification string `protobuf:"bytes,2,opt,name=notification,proto3" json:"notification,omitempty"` 4041 } 4042 4043 func (x *AgentEventUnknown) Reset() { 4044 *x = AgentEventUnknown{} 4045 if protoimpl.UnsafeEnabled { 4046 mi := &file_flow_flow_proto_msgTypes[26] 4047 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4048 ms.StoreMessageInfo(mi) 4049 } 4050 } 4051 4052 func (x *AgentEventUnknown) String() string { 4053 return protoimpl.X.MessageStringOf(x) 4054 } 4055 4056 func (*AgentEventUnknown) ProtoMessage() {} 4057 4058 func (x *AgentEventUnknown) ProtoReflect() protoreflect.Message { 4059 mi := &file_flow_flow_proto_msgTypes[26] 4060 if protoimpl.UnsafeEnabled && x != nil { 4061 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4062 if ms.LoadMessageInfo() == nil { 4063 ms.StoreMessageInfo(mi) 4064 } 4065 return ms 4066 } 4067 return mi.MessageOf(x) 4068 } 4069 4070 // Deprecated: Use AgentEventUnknown.ProtoReflect.Descriptor instead. 4071 func (*AgentEventUnknown) Descriptor() ([]byte, []int) { 4072 return file_flow_flow_proto_rawDescGZIP(), []int{26} 4073 } 4074 4075 func (x *AgentEventUnknown) GetType() string { 4076 if x != nil { 4077 return x.Type 4078 } 4079 return "" 4080 } 4081 4082 func (x *AgentEventUnknown) GetNotification() string { 4083 if x != nil { 4084 return x.Notification 4085 } 4086 return "" 4087 } 4088 4089 type TimeNotification struct { 4090 state protoimpl.MessageState 4091 sizeCache protoimpl.SizeCache 4092 unknownFields protoimpl.UnknownFields 4093 4094 Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"` 4095 } 4096 4097 func (x *TimeNotification) Reset() { 4098 *x = TimeNotification{} 4099 if protoimpl.UnsafeEnabled { 4100 mi := &file_flow_flow_proto_msgTypes[27] 4101 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4102 ms.StoreMessageInfo(mi) 4103 } 4104 } 4105 4106 func (x *TimeNotification) String() string { 4107 return protoimpl.X.MessageStringOf(x) 4108 } 4109 4110 func (*TimeNotification) ProtoMessage() {} 4111 4112 func (x *TimeNotification) ProtoReflect() protoreflect.Message { 4113 mi := &file_flow_flow_proto_msgTypes[27] 4114 if protoimpl.UnsafeEnabled && x != nil { 4115 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4116 if ms.LoadMessageInfo() == nil { 4117 ms.StoreMessageInfo(mi) 4118 } 4119 return ms 4120 } 4121 return mi.MessageOf(x) 4122 } 4123 4124 // Deprecated: Use TimeNotification.ProtoReflect.Descriptor instead. 4125 func (*TimeNotification) Descriptor() ([]byte, []int) { 4126 return file_flow_flow_proto_rawDescGZIP(), []int{27} 4127 } 4128 4129 func (x *TimeNotification) GetTime() *timestamppb.Timestamp { 4130 if x != nil { 4131 return x.Time 4132 } 4133 return nil 4134 } 4135 4136 type PolicyUpdateNotification struct { 4137 state protoimpl.MessageState 4138 sizeCache protoimpl.SizeCache 4139 unknownFields protoimpl.UnknownFields 4140 4141 Labels []string `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels,omitempty"` 4142 Revision uint64 `protobuf:"varint,2,opt,name=revision,proto3" json:"revision,omitempty"` 4143 RuleCount int64 `protobuf:"varint,3,opt,name=rule_count,json=ruleCount,proto3" json:"rule_count,omitempty"` 4144 } 4145 4146 func (x *PolicyUpdateNotification) Reset() { 4147 *x = PolicyUpdateNotification{} 4148 if protoimpl.UnsafeEnabled { 4149 mi := &file_flow_flow_proto_msgTypes[28] 4150 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4151 ms.StoreMessageInfo(mi) 4152 } 4153 } 4154 4155 func (x *PolicyUpdateNotification) String() string { 4156 return protoimpl.X.MessageStringOf(x) 4157 } 4158 4159 func (*PolicyUpdateNotification) ProtoMessage() {} 4160 4161 func (x *PolicyUpdateNotification) ProtoReflect() protoreflect.Message { 4162 mi := &file_flow_flow_proto_msgTypes[28] 4163 if protoimpl.UnsafeEnabled && x != nil { 4164 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4165 if ms.LoadMessageInfo() == nil { 4166 ms.StoreMessageInfo(mi) 4167 } 4168 return ms 4169 } 4170 return mi.MessageOf(x) 4171 } 4172 4173 // Deprecated: Use PolicyUpdateNotification.ProtoReflect.Descriptor instead. 4174 func (*PolicyUpdateNotification) Descriptor() ([]byte, []int) { 4175 return file_flow_flow_proto_rawDescGZIP(), []int{28} 4176 } 4177 4178 func (x *PolicyUpdateNotification) GetLabels() []string { 4179 if x != nil { 4180 return x.Labels 4181 } 4182 return nil 4183 } 4184 4185 func (x *PolicyUpdateNotification) GetRevision() uint64 { 4186 if x != nil { 4187 return x.Revision 4188 } 4189 return 0 4190 } 4191 4192 func (x *PolicyUpdateNotification) GetRuleCount() int64 { 4193 if x != nil { 4194 return x.RuleCount 4195 } 4196 return 0 4197 } 4198 4199 type EndpointRegenNotification struct { 4200 state protoimpl.MessageState 4201 sizeCache protoimpl.SizeCache 4202 unknownFields protoimpl.UnknownFields 4203 4204 Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` 4205 Labels []string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty"` 4206 Error string `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"` 4207 } 4208 4209 func (x *EndpointRegenNotification) Reset() { 4210 *x = EndpointRegenNotification{} 4211 if protoimpl.UnsafeEnabled { 4212 mi := &file_flow_flow_proto_msgTypes[29] 4213 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4214 ms.StoreMessageInfo(mi) 4215 } 4216 } 4217 4218 func (x *EndpointRegenNotification) String() string { 4219 return protoimpl.X.MessageStringOf(x) 4220 } 4221 4222 func (*EndpointRegenNotification) ProtoMessage() {} 4223 4224 func (x *EndpointRegenNotification) ProtoReflect() protoreflect.Message { 4225 mi := &file_flow_flow_proto_msgTypes[29] 4226 if protoimpl.UnsafeEnabled && x != nil { 4227 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4228 if ms.LoadMessageInfo() == nil { 4229 ms.StoreMessageInfo(mi) 4230 } 4231 return ms 4232 } 4233 return mi.MessageOf(x) 4234 } 4235 4236 // Deprecated: Use EndpointRegenNotification.ProtoReflect.Descriptor instead. 4237 func (*EndpointRegenNotification) Descriptor() ([]byte, []int) { 4238 return file_flow_flow_proto_rawDescGZIP(), []int{29} 4239 } 4240 4241 func (x *EndpointRegenNotification) GetId() uint64 { 4242 if x != nil { 4243 return x.Id 4244 } 4245 return 0 4246 } 4247 4248 func (x *EndpointRegenNotification) GetLabels() []string { 4249 if x != nil { 4250 return x.Labels 4251 } 4252 return nil 4253 } 4254 4255 func (x *EndpointRegenNotification) GetError() string { 4256 if x != nil { 4257 return x.Error 4258 } 4259 return "" 4260 } 4261 4262 type EndpointUpdateNotification struct { 4263 state protoimpl.MessageState 4264 sizeCache protoimpl.SizeCache 4265 unknownFields protoimpl.UnknownFields 4266 4267 Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` 4268 Labels []string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty"` 4269 Error string `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"` 4270 PodName string `protobuf:"bytes,4,opt,name=pod_name,json=podName,proto3" json:"pod_name,omitempty"` 4271 Namespace string `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"` 4272 } 4273 4274 func (x *EndpointUpdateNotification) Reset() { 4275 *x = EndpointUpdateNotification{} 4276 if protoimpl.UnsafeEnabled { 4277 mi := &file_flow_flow_proto_msgTypes[30] 4278 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4279 ms.StoreMessageInfo(mi) 4280 } 4281 } 4282 4283 func (x *EndpointUpdateNotification) String() string { 4284 return protoimpl.X.MessageStringOf(x) 4285 } 4286 4287 func (*EndpointUpdateNotification) ProtoMessage() {} 4288 4289 func (x *EndpointUpdateNotification) ProtoReflect() protoreflect.Message { 4290 mi := &file_flow_flow_proto_msgTypes[30] 4291 if protoimpl.UnsafeEnabled && x != nil { 4292 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4293 if ms.LoadMessageInfo() == nil { 4294 ms.StoreMessageInfo(mi) 4295 } 4296 return ms 4297 } 4298 return mi.MessageOf(x) 4299 } 4300 4301 // Deprecated: Use EndpointUpdateNotification.ProtoReflect.Descriptor instead. 4302 func (*EndpointUpdateNotification) Descriptor() ([]byte, []int) { 4303 return file_flow_flow_proto_rawDescGZIP(), []int{30} 4304 } 4305 4306 func (x *EndpointUpdateNotification) GetId() uint64 { 4307 if x != nil { 4308 return x.Id 4309 } 4310 return 0 4311 } 4312 4313 func (x *EndpointUpdateNotification) GetLabels() []string { 4314 if x != nil { 4315 return x.Labels 4316 } 4317 return nil 4318 } 4319 4320 func (x *EndpointUpdateNotification) GetError() string { 4321 if x != nil { 4322 return x.Error 4323 } 4324 return "" 4325 } 4326 4327 func (x *EndpointUpdateNotification) GetPodName() string { 4328 if x != nil { 4329 return x.PodName 4330 } 4331 return "" 4332 } 4333 4334 func (x *EndpointUpdateNotification) GetNamespace() string { 4335 if x != nil { 4336 return x.Namespace 4337 } 4338 return "" 4339 } 4340 4341 type IPCacheNotification struct { 4342 state protoimpl.MessageState 4343 sizeCache protoimpl.SizeCache 4344 unknownFields protoimpl.UnknownFields 4345 4346 Cidr string `protobuf:"bytes,1,opt,name=cidr,proto3" json:"cidr,omitempty"` 4347 Identity uint32 `protobuf:"varint,2,opt,name=identity,proto3" json:"identity,omitempty"` 4348 OldIdentity *wrapperspb.UInt32Value `protobuf:"bytes,3,opt,name=old_identity,json=oldIdentity,proto3" json:"old_identity,omitempty"` 4349 HostIp string `protobuf:"bytes,4,opt,name=host_ip,json=hostIp,proto3" json:"host_ip,omitempty"` 4350 OldHostIp string `protobuf:"bytes,5,opt,name=old_host_ip,json=oldHostIp,proto3" json:"old_host_ip,omitempty"` 4351 EncryptKey uint32 `protobuf:"varint,6,opt,name=encrypt_key,json=encryptKey,proto3" json:"encrypt_key,omitempty"` 4352 Namespace string `protobuf:"bytes,7,opt,name=namespace,proto3" json:"namespace,omitempty"` 4353 PodName string `protobuf:"bytes,8,opt,name=pod_name,json=podName,proto3" json:"pod_name,omitempty"` 4354 } 4355 4356 func (x *IPCacheNotification) Reset() { 4357 *x = IPCacheNotification{} 4358 if protoimpl.UnsafeEnabled { 4359 mi := &file_flow_flow_proto_msgTypes[31] 4360 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4361 ms.StoreMessageInfo(mi) 4362 } 4363 } 4364 4365 func (x *IPCacheNotification) String() string { 4366 return protoimpl.X.MessageStringOf(x) 4367 } 4368 4369 func (*IPCacheNotification) ProtoMessage() {} 4370 4371 func (x *IPCacheNotification) ProtoReflect() protoreflect.Message { 4372 mi := &file_flow_flow_proto_msgTypes[31] 4373 if protoimpl.UnsafeEnabled && x != nil { 4374 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4375 if ms.LoadMessageInfo() == nil { 4376 ms.StoreMessageInfo(mi) 4377 } 4378 return ms 4379 } 4380 return mi.MessageOf(x) 4381 } 4382 4383 // Deprecated: Use IPCacheNotification.ProtoReflect.Descriptor instead. 4384 func (*IPCacheNotification) Descriptor() ([]byte, []int) { 4385 return file_flow_flow_proto_rawDescGZIP(), []int{31} 4386 } 4387 4388 func (x *IPCacheNotification) GetCidr() string { 4389 if x != nil { 4390 return x.Cidr 4391 } 4392 return "" 4393 } 4394 4395 func (x *IPCacheNotification) GetIdentity() uint32 { 4396 if x != nil { 4397 return x.Identity 4398 } 4399 return 0 4400 } 4401 4402 func (x *IPCacheNotification) GetOldIdentity() *wrapperspb.UInt32Value { 4403 if x != nil { 4404 return x.OldIdentity 4405 } 4406 return nil 4407 } 4408 4409 func (x *IPCacheNotification) GetHostIp() string { 4410 if x != nil { 4411 return x.HostIp 4412 } 4413 return "" 4414 } 4415 4416 func (x *IPCacheNotification) GetOldHostIp() string { 4417 if x != nil { 4418 return x.OldHostIp 4419 } 4420 return "" 4421 } 4422 4423 func (x *IPCacheNotification) GetEncryptKey() uint32 { 4424 if x != nil { 4425 return x.EncryptKey 4426 } 4427 return 0 4428 } 4429 4430 func (x *IPCacheNotification) GetNamespace() string { 4431 if x != nil { 4432 return x.Namespace 4433 } 4434 return "" 4435 } 4436 4437 func (x *IPCacheNotification) GetPodName() string { 4438 if x != nil { 4439 return x.PodName 4440 } 4441 return "" 4442 } 4443 4444 type ServiceUpsertNotificationAddr struct { 4445 state protoimpl.MessageState 4446 sizeCache protoimpl.SizeCache 4447 unknownFields protoimpl.UnknownFields 4448 4449 Ip string `protobuf:"bytes,1,opt,name=ip,proto3" json:"ip,omitempty"` 4450 Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"` 4451 } 4452 4453 func (x *ServiceUpsertNotificationAddr) Reset() { 4454 *x = ServiceUpsertNotificationAddr{} 4455 if protoimpl.UnsafeEnabled { 4456 mi := &file_flow_flow_proto_msgTypes[32] 4457 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4458 ms.StoreMessageInfo(mi) 4459 } 4460 } 4461 4462 func (x *ServiceUpsertNotificationAddr) String() string { 4463 return protoimpl.X.MessageStringOf(x) 4464 } 4465 4466 func (*ServiceUpsertNotificationAddr) ProtoMessage() {} 4467 4468 func (x *ServiceUpsertNotificationAddr) ProtoReflect() protoreflect.Message { 4469 mi := &file_flow_flow_proto_msgTypes[32] 4470 if protoimpl.UnsafeEnabled && x != nil { 4471 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4472 if ms.LoadMessageInfo() == nil { 4473 ms.StoreMessageInfo(mi) 4474 } 4475 return ms 4476 } 4477 return mi.MessageOf(x) 4478 } 4479 4480 // Deprecated: Use ServiceUpsertNotificationAddr.ProtoReflect.Descriptor instead. 4481 func (*ServiceUpsertNotificationAddr) Descriptor() ([]byte, []int) { 4482 return file_flow_flow_proto_rawDescGZIP(), []int{32} 4483 } 4484 4485 func (x *ServiceUpsertNotificationAddr) GetIp() string { 4486 if x != nil { 4487 return x.Ip 4488 } 4489 return "" 4490 } 4491 4492 func (x *ServiceUpsertNotificationAddr) GetPort() uint32 { 4493 if x != nil { 4494 return x.Port 4495 } 4496 return 0 4497 } 4498 4499 type ServiceUpsertNotification struct { 4500 state protoimpl.MessageState 4501 sizeCache protoimpl.SizeCache 4502 unknownFields protoimpl.UnknownFields 4503 4504 Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` 4505 FrontendAddress *ServiceUpsertNotificationAddr `protobuf:"bytes,2,opt,name=frontend_address,json=frontendAddress,proto3" json:"frontend_address,omitempty"` 4506 BackendAddresses []*ServiceUpsertNotificationAddr `protobuf:"bytes,3,rep,name=backend_addresses,json=backendAddresses,proto3" json:"backend_addresses,omitempty"` 4507 Type string `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"` 4508 // Deprecated: Marked as deprecated in flow/flow.proto. 4509 TrafficPolicy string `protobuf:"bytes,5,opt,name=traffic_policy,json=trafficPolicy,proto3" json:"traffic_policy,omitempty"` 4510 Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` 4511 Namespace string `protobuf:"bytes,7,opt,name=namespace,proto3" json:"namespace,omitempty"` 4512 ExtTrafficPolicy string `protobuf:"bytes,8,opt,name=ext_traffic_policy,json=extTrafficPolicy,proto3" json:"ext_traffic_policy,omitempty"` 4513 IntTrafficPolicy string `protobuf:"bytes,9,opt,name=int_traffic_policy,json=intTrafficPolicy,proto3" json:"int_traffic_policy,omitempty"` 4514 } 4515 4516 func (x *ServiceUpsertNotification) Reset() { 4517 *x = ServiceUpsertNotification{} 4518 if protoimpl.UnsafeEnabled { 4519 mi := &file_flow_flow_proto_msgTypes[33] 4520 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4521 ms.StoreMessageInfo(mi) 4522 } 4523 } 4524 4525 func (x *ServiceUpsertNotification) String() string { 4526 return protoimpl.X.MessageStringOf(x) 4527 } 4528 4529 func (*ServiceUpsertNotification) ProtoMessage() {} 4530 4531 func (x *ServiceUpsertNotification) ProtoReflect() protoreflect.Message { 4532 mi := &file_flow_flow_proto_msgTypes[33] 4533 if protoimpl.UnsafeEnabled && x != nil { 4534 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4535 if ms.LoadMessageInfo() == nil { 4536 ms.StoreMessageInfo(mi) 4537 } 4538 return ms 4539 } 4540 return mi.MessageOf(x) 4541 } 4542 4543 // Deprecated: Use ServiceUpsertNotification.ProtoReflect.Descriptor instead. 4544 func (*ServiceUpsertNotification) Descriptor() ([]byte, []int) { 4545 return file_flow_flow_proto_rawDescGZIP(), []int{33} 4546 } 4547 4548 func (x *ServiceUpsertNotification) GetId() uint32 { 4549 if x != nil { 4550 return x.Id 4551 } 4552 return 0 4553 } 4554 4555 func (x *ServiceUpsertNotification) GetFrontendAddress() *ServiceUpsertNotificationAddr { 4556 if x != nil { 4557 return x.FrontendAddress 4558 } 4559 return nil 4560 } 4561 4562 func (x *ServiceUpsertNotification) GetBackendAddresses() []*ServiceUpsertNotificationAddr { 4563 if x != nil { 4564 return x.BackendAddresses 4565 } 4566 return nil 4567 } 4568 4569 func (x *ServiceUpsertNotification) GetType() string { 4570 if x != nil { 4571 return x.Type 4572 } 4573 return "" 4574 } 4575 4576 // Deprecated: Marked as deprecated in flow/flow.proto. 4577 func (x *ServiceUpsertNotification) GetTrafficPolicy() string { 4578 if x != nil { 4579 return x.TrafficPolicy 4580 } 4581 return "" 4582 } 4583 4584 func (x *ServiceUpsertNotification) GetName() string { 4585 if x != nil { 4586 return x.Name 4587 } 4588 return "" 4589 } 4590 4591 func (x *ServiceUpsertNotification) GetNamespace() string { 4592 if x != nil { 4593 return x.Namespace 4594 } 4595 return "" 4596 } 4597 4598 func (x *ServiceUpsertNotification) GetExtTrafficPolicy() string { 4599 if x != nil { 4600 return x.ExtTrafficPolicy 4601 } 4602 return "" 4603 } 4604 4605 func (x *ServiceUpsertNotification) GetIntTrafficPolicy() string { 4606 if x != nil { 4607 return x.IntTrafficPolicy 4608 } 4609 return "" 4610 } 4611 4612 type ServiceDeleteNotification struct { 4613 state protoimpl.MessageState 4614 sizeCache protoimpl.SizeCache 4615 unknownFields protoimpl.UnknownFields 4616 4617 Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` 4618 } 4619 4620 func (x *ServiceDeleteNotification) Reset() { 4621 *x = ServiceDeleteNotification{} 4622 if protoimpl.UnsafeEnabled { 4623 mi := &file_flow_flow_proto_msgTypes[34] 4624 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4625 ms.StoreMessageInfo(mi) 4626 } 4627 } 4628 4629 func (x *ServiceDeleteNotification) String() string { 4630 return protoimpl.X.MessageStringOf(x) 4631 } 4632 4633 func (*ServiceDeleteNotification) ProtoMessage() {} 4634 4635 func (x *ServiceDeleteNotification) ProtoReflect() protoreflect.Message { 4636 mi := &file_flow_flow_proto_msgTypes[34] 4637 if protoimpl.UnsafeEnabled && x != nil { 4638 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4639 if ms.LoadMessageInfo() == nil { 4640 ms.StoreMessageInfo(mi) 4641 } 4642 return ms 4643 } 4644 return mi.MessageOf(x) 4645 } 4646 4647 // Deprecated: Use ServiceDeleteNotification.ProtoReflect.Descriptor instead. 4648 func (*ServiceDeleteNotification) Descriptor() ([]byte, []int) { 4649 return file_flow_flow_proto_rawDescGZIP(), []int{34} 4650 } 4651 4652 func (x *ServiceDeleteNotification) GetId() uint32 { 4653 if x != nil { 4654 return x.Id 4655 } 4656 return 0 4657 } 4658 4659 type NetworkInterface struct { 4660 state protoimpl.MessageState 4661 sizeCache protoimpl.SizeCache 4662 unknownFields protoimpl.UnknownFields 4663 4664 Index uint32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` 4665 Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` 4666 } 4667 4668 func (x *NetworkInterface) Reset() { 4669 *x = NetworkInterface{} 4670 if protoimpl.UnsafeEnabled { 4671 mi := &file_flow_flow_proto_msgTypes[35] 4672 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4673 ms.StoreMessageInfo(mi) 4674 } 4675 } 4676 4677 func (x *NetworkInterface) String() string { 4678 return protoimpl.X.MessageStringOf(x) 4679 } 4680 4681 func (*NetworkInterface) ProtoMessage() {} 4682 4683 func (x *NetworkInterface) ProtoReflect() protoreflect.Message { 4684 mi := &file_flow_flow_proto_msgTypes[35] 4685 if protoimpl.UnsafeEnabled && x != nil { 4686 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4687 if ms.LoadMessageInfo() == nil { 4688 ms.StoreMessageInfo(mi) 4689 } 4690 return ms 4691 } 4692 return mi.MessageOf(x) 4693 } 4694 4695 // Deprecated: Use NetworkInterface.ProtoReflect.Descriptor instead. 4696 func (*NetworkInterface) Descriptor() ([]byte, []int) { 4697 return file_flow_flow_proto_rawDescGZIP(), []int{35} 4698 } 4699 4700 func (x *NetworkInterface) GetIndex() uint32 { 4701 if x != nil { 4702 return x.Index 4703 } 4704 return 0 4705 } 4706 4707 func (x *NetworkInterface) GetName() string { 4708 if x != nil { 4709 return x.Name 4710 } 4711 return "" 4712 } 4713 4714 type DebugEvent struct { 4715 state protoimpl.MessageState 4716 sizeCache protoimpl.SizeCache 4717 unknownFields protoimpl.UnknownFields 4718 4719 Type DebugEventType `protobuf:"varint,1,opt,name=type,proto3,enum=flow.DebugEventType" json:"type,omitempty"` 4720 Source *Endpoint `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"` 4721 Hash *wrapperspb.UInt32Value `protobuf:"bytes,3,opt,name=hash,proto3" json:"hash,omitempty"` 4722 Arg1 *wrapperspb.UInt32Value `protobuf:"bytes,4,opt,name=arg1,proto3" json:"arg1,omitempty"` 4723 Arg2 *wrapperspb.UInt32Value `protobuf:"bytes,5,opt,name=arg2,proto3" json:"arg2,omitempty"` 4724 Arg3 *wrapperspb.UInt32Value `protobuf:"bytes,6,opt,name=arg3,proto3" json:"arg3,omitempty"` 4725 Message string `protobuf:"bytes,7,opt,name=message,proto3" json:"message,omitempty"` 4726 Cpu *wrapperspb.Int32Value `protobuf:"bytes,8,opt,name=cpu,proto3" json:"cpu,omitempty"` 4727 } 4728 4729 func (x *DebugEvent) Reset() { 4730 *x = DebugEvent{} 4731 if protoimpl.UnsafeEnabled { 4732 mi := &file_flow_flow_proto_msgTypes[36] 4733 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4734 ms.StoreMessageInfo(mi) 4735 } 4736 } 4737 4738 func (x *DebugEvent) String() string { 4739 return protoimpl.X.MessageStringOf(x) 4740 } 4741 4742 func (*DebugEvent) ProtoMessage() {} 4743 4744 func (x *DebugEvent) ProtoReflect() protoreflect.Message { 4745 mi := &file_flow_flow_proto_msgTypes[36] 4746 if protoimpl.UnsafeEnabled && x != nil { 4747 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4748 if ms.LoadMessageInfo() == nil { 4749 ms.StoreMessageInfo(mi) 4750 } 4751 return ms 4752 } 4753 return mi.MessageOf(x) 4754 } 4755 4756 // Deprecated: Use DebugEvent.ProtoReflect.Descriptor instead. 4757 func (*DebugEvent) Descriptor() ([]byte, []int) { 4758 return file_flow_flow_proto_rawDescGZIP(), []int{36} 4759 } 4760 4761 func (x *DebugEvent) GetType() DebugEventType { 4762 if x != nil { 4763 return x.Type 4764 } 4765 return DebugEventType_DBG_EVENT_UNKNOWN 4766 } 4767 4768 func (x *DebugEvent) GetSource() *Endpoint { 4769 if x != nil { 4770 return x.Source 4771 } 4772 return nil 4773 } 4774 4775 func (x *DebugEvent) GetHash() *wrapperspb.UInt32Value { 4776 if x != nil { 4777 return x.Hash 4778 } 4779 return nil 4780 } 4781 4782 func (x *DebugEvent) GetArg1() *wrapperspb.UInt32Value { 4783 if x != nil { 4784 return x.Arg1 4785 } 4786 return nil 4787 } 4788 4789 func (x *DebugEvent) GetArg2() *wrapperspb.UInt32Value { 4790 if x != nil { 4791 return x.Arg2 4792 } 4793 return nil 4794 } 4795 4796 func (x *DebugEvent) GetArg3() *wrapperspb.UInt32Value { 4797 if x != nil { 4798 return x.Arg3 4799 } 4800 return nil 4801 } 4802 4803 func (x *DebugEvent) GetMessage() string { 4804 if x != nil { 4805 return x.Message 4806 } 4807 return "" 4808 } 4809 4810 func (x *DebugEvent) GetCpu() *wrapperspb.Int32Value { 4811 if x != nil { 4812 return x.Cpu 4813 } 4814 return nil 4815 } 4816 4817 // Experimental contains filters that are not stable yet. Support for 4818 // experimental features is always optional and subject to change. 4819 type FlowFilter_Experimental struct { 4820 state protoimpl.MessageState 4821 sizeCache protoimpl.SizeCache 4822 unknownFields protoimpl.UnknownFields 4823 4824 // cel_expression takes a common expression language (CEL) expression 4825 // returning a boolean to determine if the filter matched or not. 4826 // You can use the `_flow` variable to access fields on the flow using 4827 // the flow.Flow protobuf field names. 4828 // See https://github.com/google/cel-spec/blob/v0.14.0/doc/intro.md#introduction 4829 // for more details on CEL and accessing the protobuf fields in CEL. 4830 // Using CEL has performance cost compared to other filters, so prefer 4831 // using non-CEL filters when possible, and try to specify CEL filters 4832 // last in the list of FlowFilters. 4833 CelExpression []string `protobuf:"bytes,1,rep,name=cel_expression,json=celExpression,proto3" json:"cel_expression,omitempty"` 4834 } 4835 4836 func (x *FlowFilter_Experimental) Reset() { 4837 *x = FlowFilter_Experimental{} 4838 if protoimpl.UnsafeEnabled { 4839 mi := &file_flow_flow_proto_msgTypes[37] 4840 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4841 ms.StoreMessageInfo(mi) 4842 } 4843 } 4844 4845 func (x *FlowFilter_Experimental) String() string { 4846 return protoimpl.X.MessageStringOf(x) 4847 } 4848 4849 func (*FlowFilter_Experimental) ProtoMessage() {} 4850 4851 func (x *FlowFilter_Experimental) ProtoReflect() protoreflect.Message { 4852 mi := &file_flow_flow_proto_msgTypes[37] 4853 if protoimpl.UnsafeEnabled && x != nil { 4854 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 4855 if ms.LoadMessageInfo() == nil { 4856 ms.StoreMessageInfo(mi) 4857 } 4858 return ms 4859 } 4860 return mi.MessageOf(x) 4861 } 4862 4863 // Deprecated: Use FlowFilter_Experimental.ProtoReflect.Descriptor instead. 4864 func (*FlowFilter_Experimental) Descriptor() ([]byte, []int) { 4865 return file_flow_flow_proto_rawDescGZIP(), []int{18, 0} 4866 } 4867 4868 func (x *FlowFilter_Experimental) GetCelExpression() []string { 4869 if x != nil { 4870 return x.CelExpression 4871 } 4872 return nil 4873 } 4874 4875 var File_flow_flow_proto protoreflect.FileDescriptor 4876 4877 var file_flow_flow_proto_rawDesc = []byte{ 4878 0x0a, 0x0f, 0x66, 0x6c, 0x6f, 0x77, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x70, 0x72, 0x6f, 0x74, 4879 0x6f, 0x12, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 4880 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 4881 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 4882 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 4883 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 4884 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 4885 0x6f, 0x74, 0x6f, 0x22, 0xc9, 0x0e, 0x0a, 0x04, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x2e, 0x0a, 0x04, 4886 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 4887 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 4888 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 4889 0x75, 0x75, 0x69, 0x64, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 4890 0x12, 0x27, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 4891 0x0e, 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x56, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 4892 0x52, 0x07, 0x76, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x12, 0x23, 0x0a, 0x0b, 0x64, 0x72, 0x6f, 4893 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, 4894 0x18, 0x01, 0x52, 0x0a, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x2b, 4895 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 4896 0x0e, 0x32, 0x0e, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 4897 0x65, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x08, 0x65, 4898 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 4899 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x52, 0x08, 0x65, 4900 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x02, 0x49, 0x50, 0x18, 0x05, 0x20, 4901 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x49, 0x50, 0x52, 0x02, 0x49, 4902 0x50, 0x12, 0x1c, 0x0a, 0x02, 0x6c, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 4903 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x34, 0x52, 0x02, 0x6c, 0x34, 0x12, 4904 0x26, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 4905 0x0e, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 4906 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 4907 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x66, 4908 0x6c, 0x6f, 0x77, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0b, 0x64, 0x65, 4909 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x04, 0x54, 0x79, 0x70, 4910 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x46, 4911 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 4912 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 4913 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x6f, 4914 0x64, 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x25, 0x20, 0x03, 0x28, 0x09, 0x52, 4915 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, 4916 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 4917 0x09, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2b, 4918 0x0a, 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 4919 0x6d, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 4920 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x02, 0x6c, 4921 0x37, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4c, 4922 0x61, 0x79, 0x65, 0x72, 0x37, 0x52, 0x02, 0x6c, 0x37, 0x12, 0x18, 0x0a, 0x05, 0x72, 0x65, 0x70, 4923 0x6c, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x05, 0x72, 0x65, 4924 0x70, 0x6c, 0x79, 0x12, 0x34, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 4925 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x43, 4926 0x69, 0x6c, 0x69, 0x75, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 4927 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 4928 0x72, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 4929 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 4930 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 4931 0x3e, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 4932 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 4933 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x12, 0x64, 0x65, 0x73, 4934 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 4935 0x43, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 4936 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x66, 0x6c, 0x6f, 4937 0x77, 0x2e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 4938 0x6f, 0x6e, 0x52, 0x10, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 4939 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6d, 4940 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 4941 0x0f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 4942 0x12, 0x53, 0x0a, 0x17, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 4943 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 4944 0x0e, 0x32, 0x1b, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4f, 0x62, 4945 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x15, 4946 0x74, 0x72, 0x61, 0x63, 0x65, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 4947 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 4948 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x66, 0x6c, 4949 0x6f, 0x77, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0b, 4950 0x74, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x10, 0x64, 4951 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x18, 4952 0x19, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x44, 0x72, 0x6f, 4953 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0e, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 4954 0x73, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x12, 0x35, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x72, 0x65, 4955 0x70, 0x6c, 0x79, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 4956 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 4957 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x69, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x47, 4958 0x0a, 0x13, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x5f, 4959 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x66, 0x6c, 4960 0x6f, 0x77, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x50, 4961 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x11, 0x64, 0x65, 0x62, 0x75, 0x67, 0x43, 0x61, 0x70, 0x74, 0x75, 4962 0x72, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 4963 0x66, 0x61, 0x63, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x6c, 0x6f, 4964 0x77, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 4965 0x63, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1d, 0x0a, 4966 0x0a, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 4967 0x0d, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x37, 0x0a, 0x0d, 4968 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x1e, 0x20, 4969 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 4970 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 4971 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x46, 0x0a, 0x10, 0x73, 0x6f, 0x63, 0x6b, 0x5f, 0x78, 0x6c, 4972 0x61, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0e, 0x32, 4973 0x1c, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x72, 0x61, 4974 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0e, 0x73, 4975 0x6f, 0x63, 0x6b, 0x58, 0x6c, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x23, 0x0a, 4976 0x0d, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x20, 4977 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x6f, 0x6b, 4978 0x69, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 4979 0x21, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 4980 0x1e, 0x0a, 0x07, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0xa0, 0x8d, 0x06, 0x20, 0x01, 4981 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 4982 0x36, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf0, 0x93, 4983 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 4984 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0a, 0x65, 0x78, 0x74, 4985 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3a, 0x0a, 0x11, 0x65, 0x67, 0x72, 0x65, 0x73, 4986 0x73, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x89, 0xa4, 0x01, 4987 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 4988 0x63, 0x79, 0x52, 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 4989 0x64, 0x42, 0x79, 0x12, 0x3c, 0x0a, 0x12, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 4990 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x8a, 0xa4, 0x01, 0x20, 0x03, 0x28, 4991 0x0b, 0x32, 0x0c, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 4992 0x10, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x42, 4993 0x79, 0x12, 0x38, 0x0a, 0x10, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x65, 0x6e, 0x69, 4994 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x8c, 0xa4, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 4995 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x65, 0x67, 0x72, 4996 0x65, 0x73, 0x73, 0x44, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x42, 0x79, 0x12, 0x3a, 0x0a, 0x11, 0x69, 4997 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x65, 0x6e, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x79, 4998 0x18, 0x8d, 0xa4, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 4999 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x44, 5000 0x65, 0x6e, 0x69, 0x65, 0x64, 0x42, 0x79, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x4a, 0x04, 0x08, 5001 0x0c, 0x10, 0x0d, 0x4a, 0x04, 0x08, 0x11, 0x10, 0x12, 0x4a, 0x04, 0x08, 0x12, 0x10, 0x13, 0x22, 5002 0xc4, 0x01, 0x0a, 0x06, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x34, 0x12, 0x1d, 0x0a, 0x03, 0x54, 0x43, 5003 0x50, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 5004 0x43, 0x50, 0x48, 0x00, 0x52, 0x03, 0x54, 0x43, 0x50, 0x12, 0x1d, 0x0a, 0x03, 0x55, 0x44, 0x50, 5005 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x55, 0x44, 5006 0x50, 0x48, 0x00, 0x52, 0x03, 0x55, 0x44, 0x50, 0x12, 0x26, 0x0a, 0x06, 0x49, 0x43, 0x4d, 0x50, 5007 0x76, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 5008 0x49, 0x43, 0x4d, 0x50, 0x76, 0x34, 0x48, 0x00, 0x52, 0x06, 0x49, 0x43, 0x4d, 0x50, 0x76, 0x34, 5009 0x12, 0x26, 0x0a, 0x06, 0x49, 0x43, 0x4d, 0x50, 0x76, 0x36, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 5010 0x32, 0x0c, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x49, 0x43, 0x4d, 0x50, 0x76, 0x36, 0x48, 0x00, 5011 0x52, 0x06, 0x49, 0x43, 0x4d, 0x50, 0x76, 0x36, 0x12, 0x20, 0x0a, 0x04, 0x53, 0x43, 0x54, 0x50, 5012 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x43, 5013 0x54, 0x50, 0x48, 0x00, 0x52, 0x04, 0x53, 0x43, 0x54, 0x50, 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 5014 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0xbd, 0x01, 0x0a, 0x06, 0x4c, 0x61, 0x79, 0x65, 0x72, 5015 0x37, 0x12, 0x24, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 5016 0x10, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4c, 0x37, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 5017 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x74, 0x65, 0x6e, 5018 0x63, 0x79, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6c, 0x61, 0x74, 5019 0x65, 0x6e, 0x63, 0x79, 0x4e, 0x73, 0x12, 0x1d, 0x0a, 0x03, 0x64, 0x6e, 0x73, 0x18, 0x64, 0x20, 5020 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x44, 0x4e, 0x53, 0x48, 0x00, 5021 0x52, 0x03, 0x64, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x04, 0x68, 0x74, 0x74, 0x70, 0x18, 0x65, 0x20, 5022 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x48, 5023 0x00, 0x52, 0x04, 0x68, 0x74, 0x74, 0x70, 0x12, 0x23, 0x0a, 0x05, 0x6b, 0x61, 0x66, 0x6b, 0x61, 5024 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4b, 0x61, 5025 0x66, 0x6b, 0x61, 0x48, 0x00, 0x52, 0x05, 0x6b, 0x61, 0x66, 0x6b, 0x61, 0x42, 0x08, 0x0a, 0x06, 5026 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x39, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 5027 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 5028 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x72, 5029 0x61, 0x63, 0x65, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 5030 0x74, 0x22, 0x28, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 5031 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 5032 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 0x22, 0xd8, 0x01, 0x0a, 0x08, 5033 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 5034 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 5035 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 5036 0x74, 0x69, 0x74, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 5037 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 5038 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 5039 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 5040 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 5041 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x19, 0x0a, 5042 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 5043 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 5044 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x66, 0x6c, 5045 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x09, 0x77, 0x6f, 0x72, 5046 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x22, 0x32, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 5047 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 5048 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 5049 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x77, 0x0a, 0x03, 0x54, 0x43, 5050 0x50, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 5051 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 5052 0x72, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 5053 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x64, 0x65, 5054 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x0a, 5055 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x66, 5056 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x43, 0x50, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 5057 0x61, 0x67, 0x73, 0x22, 0xb0, 0x01, 0x0a, 0x02, 0x49, 0x50, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 5058 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 5059 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x78, 0x6c, 0x61, 5060 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 5061 0x65, 0x58, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 5062 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 5063 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x09, 0x69, 0x70, 0x56, 5064 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x66, 5065 0x6c, 0x6f, 0x77, 0x2e, 0x49, 0x50, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x69, 5066 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x63, 0x72, 5067 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x65, 0x6e, 0x63, 5068 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x22, 0x44, 0x0a, 0x08, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 5069 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 5070 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 5071 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 5072 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xaa, 0x01, 0x0a, 5073 0x08, 0x54, 0x43, 0x50, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x46, 0x49, 0x4e, 5074 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x46, 0x49, 0x4e, 0x12, 0x10, 0x0a, 0x03, 0x53, 5075 0x59, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x53, 0x59, 0x4e, 0x12, 0x10, 0x0a, 5076 0x03, 0x52, 0x53, 0x54, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x52, 0x53, 0x54, 0x12, 5077 0x10, 0x0a, 0x03, 0x50, 0x53, 0x48, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x50, 0x53, 5078 0x48, 0x12, 0x10, 0x0a, 0x03, 0x41, 0x43, 0x4b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 5079 0x41, 0x43, 0x4b, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x52, 0x47, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 5080 0x52, 0x03, 0x55, 0x52, 0x47, 0x12, 0x10, 0x0a, 0x03, 0x45, 0x43, 0x45, 0x18, 0x07, 0x20, 0x01, 5081 0x28, 0x08, 0x52, 0x03, 0x45, 0x43, 0x45, 0x12, 0x10, 0x0a, 0x03, 0x43, 0x57, 0x52, 0x18, 0x08, 5082 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x43, 0x57, 0x52, 0x12, 0x0e, 0x0a, 0x02, 0x4e, 0x53, 0x18, 5083 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x4e, 0x53, 0x22, 0x51, 0x0a, 0x03, 0x55, 0x44, 0x50, 5084 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 5085 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x72, 5086 0x74, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 5087 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x64, 0x65, 0x73, 5088 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x52, 0x0a, 0x04, 5089 0x53, 0x43, 0x54, 0x50, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 5090 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 5091 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 5092 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 5093 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 5094 0x22, 0x30, 0x0a, 0x06, 0x49, 0x43, 0x4d, 0x50, 0x76, 0x34, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 5095 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 5096 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 5097 0x64, 0x65, 0x22, 0x30, 0x0a, 0x06, 0x49, 0x43, 0x4d, 0x50, 0x76, 0x36, 0x12, 0x12, 0x0a, 0x04, 5098 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 5099 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 5100 0x63, 0x6f, 0x64, 0x65, 0x22, 0x6e, 0x0a, 0x06, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x12, 5101 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 5102 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 5103 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 5104 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 5105 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 5106 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 5107 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x66, 0x0a, 0x0f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 5108 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 5109 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 5110 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 5111 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 5112 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 5113 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x22, 0x40, 0x0a, 0x0f, 5114 0x43, 0x69, 0x6c, 0x69, 0x75, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 5115 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 5116 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 5117 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x22, 0xba, 5118 0x0c, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 5119 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 5120 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x70, 0x18, 0x01, 5121 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x70, 0x12, 0x28, 5122 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x70, 0x5f, 0x78, 0x6c, 0x61, 0x74, 5123 0x65, 0x64, 0x18, 0x22, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 5124 0x49, 0x70, 0x58, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x6f, 0x75, 0x72, 5125 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6f, 5126 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 5127 0x65, 0x5f, 0x66, 0x71, 0x64, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 5128 0x75, 0x72, 0x63, 0x65, 0x46, 0x71, 0x64, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72, 5129 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 5130 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x73, 5131 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x10, 0x20, 5132 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 5133 0x63, 0x65, 0x12, 0x37, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x77, 0x6f, 0x72, 5134 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x66, 0x6c, 5135 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x0e, 0x73, 0x6f, 0x75, 5136 0x72, 0x63, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x64, 5137 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 5138 0x03, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 5139 0x49, 0x70, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 5140 0x6e, 0x5f, 0x70, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, 0x73, 5141 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x64, 5142 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x71, 0x64, 0x6e, 0x18, 5143 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 5144 0x6f, 0x6e, 0x46, 0x71, 0x64, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 5145 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x0b, 0x20, 0x03, 0x28, 5146 0x09, 0x52, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 5147 0x62, 0x65, 0x6c, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 5148 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 5149 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 5150 0x76, 0x69, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x14, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 5151 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x1b, 0x20, 0x03, 5152 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 5153 0x61, 0x64, 0x52, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 5154 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x43, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x66, 0x66, 5155 0x69, 0x63, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1e, 0x20, 0x03, 5156 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 5157 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x74, 0x72, 0x61, 0x66, 5158 0x66, 0x69, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x07, 5159 0x76, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 5160 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x56, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x52, 0x07, 0x76, 0x65, 5161 0x72, 0x64, 0x69, 0x63, 0x74, 0x12, 0x3a, 0x0a, 0x10, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x65, 5162 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x18, 0x21, 0x20, 0x03, 0x28, 0x0e, 0x32, 5163 0x10, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 5164 0x6e, 0x52, 0x0e, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x44, 0x65, 0x73, 5165 0x63, 0x12, 0x34, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x23, 5166 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x4e, 0x65, 0x74, 0x77, 5167 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x09, 0x69, 0x6e, 5168 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 5169 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x66, 0x6c, 5170 0x6f, 0x77, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x46, 0x69, 0x6c, 0x74, 5171 0x65, 0x72, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 5172 0x10, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 5173 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x68, 0x74, 0x74, 0x70, 0x53, 0x74, 0x61, 5174 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 5175 0x63, 0x6f, 0x6c, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 5176 0x63, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 5177 0x72, 0x74, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 5178 0x50, 0x6f, 0x72, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 5179 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 5180 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 5181 0x14, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x08, 0x52, 0x05, 5182 0x72, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x6e, 0x73, 0x5f, 0x71, 0x75, 0x65, 5183 0x72, 0x79, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x64, 0x6e, 0x73, 0x51, 0x75, 0x65, 5184 0x72, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x65, 5185 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x73, 0x6f, 0x75, 5186 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x14, 0x64, 5187 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 5188 0x69, 0x74, 0x79, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 5189 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1f, 5190 0x0a, 0x0b, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x15, 0x20, 5191 0x03, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x74, 0x74, 0x70, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 5192 0x1b, 0x0a, 0x09, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x16, 0x20, 0x03, 5193 0x28, 0x09, 0x52, 0x08, 0x68, 0x74, 0x74, 0x70, 0x50, 0x61, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x08, 5194 0x68, 0x74, 0x74, 0x70, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 5195 0x68, 0x74, 0x74, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x31, 0x0a, 0x0b, 0x68, 0x74, 0x74, 0x70, 0x5f, 5196 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x20, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 5197 0x6c, 0x6f, 0x77, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 5198 0x68, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x09, 0x74, 0x63, 5199 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 5200 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x43, 0x50, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x08, 0x74, 5201 0x63, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 5202 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x18, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 5203 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6c, 0x61, 0x62, 5204 0x65, 0x6c, 0x73, 0x18, 0x24, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x4c, 5205 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x2e, 0x0a, 0x0a, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 5206 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 5207 0x2e, 0x49, 0x50, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x69, 0x70, 0x56, 0x65, 5208 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x69, 5209 0x64, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, 0x49, 0x64, 5210 0x12, 0x42, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 5211 0x18, 0xe7, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x46, 5212 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 5213 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 5214 0x6e, 0x74, 0x61, 0x6c, 0x1a, 0x35, 0x0a, 0x0c, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 5215 0x6e, 0x74, 0x61, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x65, 0x6c, 0x5f, 0x65, 0x78, 0x70, 0x72, 5216 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x65, 5217 0x6c, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xce, 0x01, 0x0a, 0x03, 5218 0x44, 0x4e, 0x53, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 5219 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x70, 0x73, 5220 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x69, 0x70, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x74, 5221 0x74, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, 0x16, 0x0a, 5222 0x06, 0x63, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x63, 5223 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 5224 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 5225 0x09, 0x52, 0x11, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 5226 0x75, 0x72, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 5227 0x01, 0x28, 0x0d, 0x52, 0x05, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x71, 0x74, 5228 0x79, 0x70, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x71, 0x74, 0x79, 0x70, 5229 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x72, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x08, 0x20, 5230 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, 0x72, 0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0x34, 0x0a, 0x0a, 5231 0x48, 0x54, 0x54, 0x50, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 5232 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 5233 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 5234 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x04, 0x48, 0x54, 0x54, 0x50, 0x12, 0x12, 0x0a, 0x04, 0x63, 5235 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 5236 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 5237 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 5238 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 5239 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 5240 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x2a, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 5241 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x48, 0x54, 5242 0x54, 0x50, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 5243 0x73, 0x22, 0x9d, 0x01, 0x0a, 0x05, 0x4b, 0x61, 0x66, 0x6b, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 5244 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 5245 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 5246 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 5247 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x61, 5248 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x70, 5249 0x69, 0x4b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 5250 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x63, 0x6f, 5251 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 5252 0x6f, 0x70, 0x69, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 5253 0x63, 0x22, 0x3b, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 5254 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 5255 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 5256 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x91, 5257 0x01, 0x0a, 0x09, 0x4c, 0x6f, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x06, 5258 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x66, 5259 0x6c, 0x6f, 0x77, 0x2e, 0x4c, 0x6f, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x6f, 0x75, 5260 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 5261 0x75, 0x6d, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x6c, 0x6f, 0x73, 0x74, 0x18, 0x02, 5262 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x4c, 5263 0x6f, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 5264 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 5265 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x63, 5266 0x70, 0x75, 0x22, 0xf6, 0x04, 0x0a, 0x0a, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 5267 0x74, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 5268 0x14, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 5269 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x75, 5270 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x66, 5271 0x6c, 0x6f, 0x77, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x55, 0x6e, 5272 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 5273 0x12, 0x39, 0x0a, 0x0b, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 5274 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x54, 0x69, 0x6d, 5275 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 5276 0x0a, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x45, 0x0a, 0x0d, 0x70, 5277 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x66, 0x20, 0x01, 5278 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 5279 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 5280 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, 5281 0x74, 0x65, 0x12, 0x52, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x72, 5282 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, 0x32, 5283 0x1f, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 5284 0x65, 0x67, 0x65, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 5285 0x48, 0x00, 0x52, 0x12, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x67, 0x65, 5286 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x4b, 0x0a, 0x0f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 5287 0x6e, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, 5288 0x20, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x55, 5289 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 5290 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x70, 0x64, 5291 0x61, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x0e, 0x69, 0x70, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x75, 5292 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x69, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 5293 0x6f, 0x77, 0x2e, 0x49, 0x50, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 5294 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x70, 0x63, 0x61, 0x63, 0x68, 5295 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 5296 0x63, 0x65, 0x5f, 0x75, 0x70, 0x73, 0x65, 0x72, 0x74, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 5297 0x1f, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 5298 0x73, 0x65, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 5299 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x73, 0x65, 0x72, 5300 0x74, 0x12, 0x48, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x6c, 5301 0x65, 0x74, 0x65, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 5302 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 5303 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 5304 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x6e, 5305 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4b, 0x0a, 0x11, 0x41, 5306 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 5307 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 5308 0x74, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 5309 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 5310 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x42, 0x0a, 0x10, 0x54, 0x69, 0x6d, 0x65, 5311 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x04, 5312 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 5313 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 5314 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x6d, 0x0a, 0x18, 5315 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x69, 5316 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 5317 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 5318 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 5319 0x28, 0x04, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 5320 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 5321 0x52, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x59, 0x0a, 0x19, 0x45, 5322 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 5323 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 5324 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 5325 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 5326 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 5327 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x93, 0x01, 0x0a, 0x1a, 0x45, 0x6e, 0x64, 0x70, 0x6f, 5328 0x69, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 5329 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 5330 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 5331 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x14, 0x0a, 5332 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 5333 0x72, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 5334 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 5335 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 5336 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x99, 0x02, 0x0a, 5337 0x13, 0x49, 0x50, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 5338 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 5339 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x64, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 5340 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 5341 0x74, 0x69, 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x0c, 0x6f, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x65, 0x6e, 5342 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 5343 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 5344 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x6f, 0x6c, 0x64, 0x49, 0x64, 0x65, 5345 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x70, 5346 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x70, 0x12, 0x1e, 5347 0x0a, 0x0b, 0x6f, 0x6c, 0x64, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x05, 0x20, 5348 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x6c, 0x64, 0x48, 0x6f, 0x73, 0x74, 0x49, 0x70, 0x12, 0x1f, 5349 0x0a, 0x0b, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 5350 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x4b, 0x65, 0x79, 0x12, 5351 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 5352 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x19, 0x0a, 5353 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 5354 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x43, 0x0a, 0x1d, 0x53, 0x65, 0x72, 0x76, 5355 0x69, 0x63, 0x65, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 5356 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 5357 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 5358 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x9a, 0x03, 5359 0x0a, 0x19, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4e, 5360 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 5361 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x4e, 0x0a, 0x10, 0x66, 5362 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 5363 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x65, 0x72, 5364 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 5365 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x52, 0x0f, 0x66, 0x72, 0x6f, 0x6e, 5366 0x74, 0x65, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x50, 0x0a, 0x11, 0x62, 5367 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 5368 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x53, 0x65, 5369 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 5370 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x52, 0x10, 0x62, 0x61, 0x63, 5371 0x6b, 0x65, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x12, 0x0a, 5372 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 5373 0x65, 0x12, 0x29, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x6c, 5374 0x69, 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, 0x74, 5375 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x12, 0x0a, 0x04, 5376 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 5377 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x07, 0x20, 5378 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2c, 5379 0x0a, 0x12, 0x65, 0x78, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x70, 0x6f, 5380 0x6c, 0x69, 0x63, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x74, 0x54, 5381 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2c, 0x0a, 0x12, 5382 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 5383 0x63, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x54, 0x72, 0x61, 5384 0x66, 0x66, 0x69, 0x63, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x2b, 0x0a, 0x19, 0x53, 0x65, 5385 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 5386 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 5387 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x22, 0x3c, 0x0a, 0x10, 0x4e, 0x65, 0x74, 0x77, 0x6f, 5388 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 5389 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 5390 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 5391 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xef, 0x02, 0x0a, 0x0a, 0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 5392 0x76, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 5393 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 5394 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x26, 5395 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 5396 0x2e, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x06, 5397 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 5398 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 5399 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 5400 0x75, 0x65, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x30, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x31, 5401 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 5402 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 5403 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x61, 0x72, 0x67, 0x31, 0x12, 0x30, 0x0a, 0x04, 0x61, 0x72, 5404 0x67, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 5405 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 5406 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x61, 0x72, 0x67, 0x32, 0x12, 0x30, 0x0a, 0x04, 5407 0x61, 0x72, 0x67, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 5408 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 5409 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x61, 0x72, 0x67, 0x33, 0x12, 0x18, 5410 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 5411 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2d, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 5412 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 5413 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 5414 0x75, 0x65, 0x52, 0x03, 0x63, 0x70, 0x75, 0x2a, 0x39, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x54, 5415 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x54, 5416 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x33, 0x5f, 0x4c, 0x34, 0x10, 0x01, 5417 0x12, 0x06, 0x0a, 0x02, 0x4c, 0x37, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x4f, 0x43, 0x4b, 5418 0x10, 0x03, 0x2a, 0x39, 0x0a, 0x08, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 5419 0x0a, 0x08, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 5420 0x53, 0x50, 0x49, 0x52, 0x45, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x45, 0x53, 0x54, 0x5f, 5421 0x41, 0x4c, 0x57, 0x41, 0x59, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x02, 0x2a, 0xea, 0x01, 5422 0x0a, 0x15, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 5423 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 5424 0x57, 0x4e, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x4f, 5425 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x4f, 0x5f, 0x48, 5426 0x4f, 0x53, 0x54, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x4f, 0x5f, 0x53, 0x54, 0x41, 0x43, 5427 0x4b, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x4f, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x41, 5428 0x59, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x4f, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 5429 0x4e, 0x54, 0x10, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x45, 0x4e, 0x44, 5430 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 5431 0x50, 0x52, 0x4f, 0x58, 0x59, 0x10, 0x06, 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 5432 0x48, 0x4f, 0x53, 0x54, 0x10, 0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x53, 5433 0x54, 0x41, 0x43, 0x4b, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x4f, 5434 0x56, 0x45, 0x52, 0x4c, 0x41, 0x59, 0x10, 0x09, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x52, 0x4f, 0x4d, 5435 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x10, 0x0a, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x4f, 5436 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x10, 0x0b, 0x2a, 0xa0, 0x01, 0x0a, 0x0b, 0x54, 5437 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x52, 5438 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 5439 0x57, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x45, 0x57, 0x10, 0x01, 0x12, 0x0f, 0x0a, 5440 0x0b, 0x45, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x02, 0x12, 0x09, 5441 0x0a, 0x05, 0x52, 0x45, 0x50, 0x4c, 0x59, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x4c, 5442 0x41, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x08, 0x52, 0x45, 0x4f, 0x50, 0x45, 0x4e, 5443 0x45, 0x44, 0x10, 0x05, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x52, 0x56, 0x36, 5444 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x52, 0x56, 0x36, 5445 0x5f, 0x44, 0x45, 0x43, 0x41, 0x50, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x43, 0x52, 5446 0x59, 0x50, 0x54, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x41, 0x59, 0x10, 0x08, 0x2a, 0x48, 0x0a, 5447 0x0a, 0x4c, 0x37, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x55, 5448 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4c, 0x37, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 5449 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x01, 0x12, 0x0c, 0x0a, 5450 0x08, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x53, 5451 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x10, 0x03, 0x2a, 0x30, 0x0a, 0x09, 0x49, 0x50, 0x56, 0x65, 0x72, 5452 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x50, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x55, 5453 0x53, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x50, 0x76, 0x34, 0x10, 0x01, 0x12, 5454 0x08, 0x0a, 0x04, 0x49, 0x50, 0x76, 0x36, 0x10, 0x02, 0x2a, 0x7c, 0x0a, 0x07, 0x56, 0x65, 0x72, 5455 0x64, 0x69, 0x63, 0x74, 0x12, 0x13, 0x0a, 0x0f, 0x56, 0x45, 0x52, 0x44, 0x49, 0x43, 0x54, 0x5f, 5456 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x4f, 0x52, 5457 0x57, 0x41, 0x52, 0x44, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x52, 0x4f, 0x50, 5458 0x50, 0x45, 0x44, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 5459 0x12, 0x09, 0x0a, 0x05, 0x41, 0x55, 0x44, 0x49, 0x54, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 5460 0x45, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x54, 5461 0x52, 0x41, 0x43, 0x45, 0x44, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x52, 0x41, 0x4e, 0x53, 5462 0x4c, 0x41, 0x54, 0x45, 0x44, 0x10, 0x07, 0x2a, 0xaf, 0x11, 0x0a, 0x0a, 0x44, 0x72, 0x6f, 0x70, 5463 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 5464 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 5465 0x1b, 0x0a, 0x12, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 5466 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x82, 0x01, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x20, 0x0a, 0x17, 5467 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x41, 0x54, 5468 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x83, 0x01, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x16, 5469 0x0a, 0x11, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 5470 0x5f, 0x49, 0x50, 0x10, 0x84, 0x01, 0x12, 0x12, 0x0a, 0x0d, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 5471 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x85, 0x01, 0x12, 0x1b, 0x0a, 0x16, 0x49, 0x4e, 5472 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x44, 0x52, 0x4f, 5473 0x50, 0x50, 0x45, 0x44, 0x10, 0x86, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x43, 0x54, 0x5f, 0x54, 0x52, 5474 0x55, 0x4e, 0x43, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x4f, 0x52, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 5475 0x49, 0x44, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x10, 0x87, 0x01, 0x12, 0x1c, 0x0a, 0x17, 5476 0x43, 0x54, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x43, 0x50, 0x5f, 0x41, 5477 0x43, 0x4b, 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x10, 0x88, 0x01, 0x12, 0x1b, 0x0a, 0x16, 0x43, 0x54, 5478 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4c, 0x34, 0x5f, 0x50, 0x52, 0x4f, 0x54, 5479 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x89, 0x01, 0x12, 0x2b, 0x0a, 0x22, 0x43, 0x54, 0x5f, 0x43, 0x41, 5480 0x4e, 0x4e, 0x4f, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x52, 5481 0x59, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x10, 0x8a, 0x01, 5482 0x1a, 0x02, 0x08, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 5483 0x54, 0x45, 0x44, 0x5f, 0x4c, 0x33, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 5484 0x8b, 0x01, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x49, 0x53, 0x53, 0x45, 0x44, 0x5f, 0x54, 0x41, 0x49, 5485 0x4c, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x8c, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x45, 0x52, 0x52, 5486 0x4f, 0x52, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x4f, 0x5f, 0x50, 0x41, 5487 0x43, 0x4b, 0x45, 0x54, 0x10, 0x8d, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 5488 0x57, 0x4e, 0x5f, 0x4c, 0x34, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x8e, 5489 0x01, 0x12, 0x18, 0x0a, 0x13, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x49, 0x43, 0x4d, 5490 0x50, 0x56, 0x34, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x8f, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x55, 5491 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x56, 0x34, 0x5f, 0x54, 0x59, 5492 0x50, 0x45, 0x10, 0x90, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 5493 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x56, 0x36, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x91, 0x01, 0x12, 5494 0x18, 0x0a, 0x13, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x56, 5495 0x36, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x92, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x45, 0x52, 0x52, 5496 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x49, 0x45, 0x56, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x55, 5497 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x93, 0x01, 0x12, 0x28, 0x0a, 0x1f, 0x45, 5498 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x49, 0x45, 0x56, 0x49, 0x4e, 0x47, 0x5f, 5499 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x94, 5500 0x01, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x1e, 0x0a, 0x15, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 5501 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x56, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x95, 5502 0x01, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x1e, 0x0a, 0x19, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 5503 0x5f, 0x4c, 0x33, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 5504 0x53, 0x53, 0x10, 0x96, 0x01, 0x12, 0x1b, 0x0a, 0x16, 0x53, 0x54, 0x41, 0x4c, 0x45, 0x5f, 0x4f, 5505 0x52, 0x5f, 0x55, 0x4e, 0x52, 0x4f, 0x55, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x49, 0x50, 0x10, 5506 0x97, 0x01, 0x12, 0x2a, 0x0a, 0x21, 0x4e, 0x4f, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x49, 0x4e, 5507 0x47, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 5508 0x52, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x98, 0x01, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x27, 5509 0x0a, 0x22, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x57, 0x48, 0x49, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 5510 0x52, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x33, 0x5f, 0x43, 0x48, 0x45, 0x43, 5511 0x4b, 0x53, 0x55, 0x4d, 0x10, 0x99, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x45, 0x52, 0x52, 0x4f, 0x52, 5512 0x5f, 0x57, 0x48, 0x49, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x52, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4e, 5513 0x47, 0x5f, 0x4c, 0x34, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x53, 0x55, 0x4d, 0x10, 0x9a, 0x01, 5514 0x12, 0x1c, 0x0a, 0x17, 0x43, 0x54, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x49, 0x4e, 0x53, 0x45, 0x52, 5515 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x9b, 0x01, 0x12, 0x22, 5516 0x0a, 0x1d, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x5f, 0x45, 5517 0x58, 0x54, 0x45, 0x4e, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x10, 5518 0x9c, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x49, 0x50, 0x5f, 0x46, 0x52, 0x41, 0x47, 0x4d, 0x45, 0x4e, 5519 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 5520 0x52, 0x54, 0x45, 0x44, 0x10, 0x9d, 0x01, 0x12, 0x1e, 0x0a, 0x19, 0x53, 0x45, 0x52, 0x56, 0x49, 5521 0x43, 0x45, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 5522 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x9e, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x4e, 0x4f, 0x5f, 0x54, 0x55, 5523 0x4e, 0x4e, 0x45, 0x4c, 0x5f, 0x4f, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, 0x55, 0x4c, 5524 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x10, 0xa0, 5525 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x49, 5526 0x4e, 0x53, 0x45, 0x52, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x4f, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 5527 0x4d, 0x41, 0x50, 0x10, 0xa1, 0x01, 0x12, 0x2b, 0x0a, 0x26, 0x52, 0x45, 0x41, 0x43, 0x48, 0x45, 5528 0x44, 0x5f, 0x45, 0x44, 0x54, 0x5f, 0x52, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 5529 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x4f, 0x4e, 5530 0x10, 0xa2, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x43, 5531 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x49, 5532 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xa3, 0x01, 0x12, 0x1e, 0x0a, 0x19, 0x4c, 5533 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x5f, 0x49, 0x53, 0x5f, 0x55, 0x4e, 0x52, 5534 0x45, 0x41, 0x43, 0x48, 0x41, 0x42, 0x4c, 0x45, 0x10, 0xa4, 0x01, 0x12, 0x3a, 0x0a, 0x35, 0x4e, 5535 0x4f, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 5536 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x50, 0x45, 0x52, 5537 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x44, 0x45, 0x43, 0x49, 5538 0x53, 0x49, 0x4f, 0x4e, 0x10, 0xa5, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x55, 0x4e, 0x53, 0x55, 0x50, 5539 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x4c, 0x32, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 5540 0x4f, 0x4c, 0x10, 0xa6, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x4e, 0x4f, 0x5f, 0x4d, 0x41, 0x50, 0x50, 5541 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x4e, 0x41, 0x54, 0x5f, 0x4d, 0x41, 0x53, 0x51, 5542 0x55, 0x45, 0x52, 0x41, 0x44, 0x45, 0x10, 0xa7, 0x01, 0x12, 0x2c, 0x0a, 0x27, 0x55, 0x4e, 0x53, 5543 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 5544 0x4c, 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x4e, 0x41, 0x54, 0x5f, 0x4d, 0x41, 0x53, 0x51, 0x55, 0x45, 5545 0x52, 0x41, 0x44, 0x45, 0x10, 0xa8, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x46, 0x49, 0x42, 0x5f, 0x4c, 5546 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0xa9, 0x01, 0x12, 5547 0x28, 0x0a, 0x23, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x53, 0x55, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 5548 0x5f, 0x54, 0x52, 0x41, 0x46, 0x46, 0x49, 0x43, 0x5f, 0x49, 0x53, 0x5f, 0x50, 0x52, 0x4f, 0x48, 5549 0x49, 0x42, 0x49, 0x54, 0x45, 0x44, 0x10, 0xaa, 0x01, 0x12, 0x15, 0x0a, 0x10, 0x49, 0x4e, 0x56, 5550 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x10, 0xab, 0x01, 5551 0x12, 0x13, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x53, 0x45, 0x4e, 0x44, 5552 0x45, 0x52, 0x10, 0xac, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x4e, 0x41, 0x54, 0x5f, 0x4e, 0x4f, 0x54, 5553 0x5f, 0x4e, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0xad, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x49, 0x53, 5554 0x5f, 0x41, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x49, 0x50, 0x10, 0xae, 0x01, 0x12, 5555 0x2e, 0x0a, 0x29, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x49, 0x43, 0x41, 0x4c, 5556 0x5f, 0x44, 0x41, 0x54, 0x41, 0x47, 0x52, 0x41, 0x4d, 0x5f, 0x46, 0x52, 0x41, 0x47, 0x4d, 0x45, 5557 0x4e, 0x54, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0xaf, 0x01, 0x12, 5558 0x1d, 0x0a, 0x18, 0x46, 0x4f, 0x52, 0x42, 0x49, 0x44, 0x44, 0x45, 0x4e, 0x5f, 0x49, 0x43, 0x4d, 5559 0x50, 0x56, 0x36, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0xb0, 0x01, 0x12, 0x21, 5560 0x0a, 0x1c, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x5f, 0x4c, 0x42, 0x5f, 0x53, 5561 0x52, 0x43, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x10, 0xb1, 5562 0x01, 0x12, 0x19, 0x0a, 0x14, 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 5563 0x55, 0x50, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0xb2, 0x01, 0x12, 0x19, 0x0a, 0x14, 5564 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x41, 0x53, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x46, 0x41, 5565 0x49, 0x4c, 0x45, 0x44, 0x10, 0xb3, 0x01, 0x12, 0x31, 0x0a, 0x2c, 0x50, 0x52, 0x4f, 0x58, 0x59, 5566 0x5f, 0x52, 0x45, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x54, 5567 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x50, 5568 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0xb4, 0x01, 0x12, 0x10, 0x0a, 0x0b, 0x50, 0x4f, 5569 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x44, 0x45, 0x4e, 0x59, 0x10, 0xb5, 0x01, 0x12, 0x12, 0x0a, 0x0d, 5570 0x56, 0x4c, 0x41, 0x4e, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x45, 0x44, 0x10, 0xb6, 0x01, 5571 0x12, 0x10, 0x0a, 0x0b, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x56, 0x4e, 0x49, 0x10, 5572 0xb7, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x54, 0x43, 5573 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x10, 0xb8, 0x01, 0x12, 0x0b, 0x0a, 0x06, 0x4e, 0x4f, 5574 0x5f, 0x53, 0x49, 0x44, 0x10, 0xb9, 0x01, 0x12, 0x1b, 0x0a, 0x12, 0x4d, 0x49, 0x53, 0x53, 0x49, 5575 0x4e, 0x47, 0x5f, 0x53, 0x52, 0x56, 0x36, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xba, 0x01, 5576 0x1a, 0x02, 0x08, 0x01, 0x12, 0x0a, 0x0a, 0x05, 0x4e, 0x41, 0x54, 0x34, 0x36, 0x10, 0xbb, 0x01, 5577 0x12, 0x0a, 0x0a, 0x05, 0x4e, 0x41, 0x54, 0x36, 0x34, 0x10, 0xbc, 0x01, 0x12, 0x12, 0x0a, 0x0d, 5578 0x41, 0x55, 0x54, 0x48, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0xbd, 0x01, 5579 0x12, 0x14, 0x0a, 0x0f, 0x43, 0x54, 0x5f, 0x4e, 0x4f, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x46, 0x4f, 5580 0x55, 0x4e, 0x44, 0x10, 0xbe, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x53, 0x4e, 0x41, 0x54, 0x5f, 0x4e, 5581 0x4f, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0xbf, 0x01, 0x12, 0x17, 5582 0x0a, 0x12, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 5583 0x52, 0x5f, 0x49, 0x44, 0x10, 0xc0, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x55, 0x4e, 0x53, 0x55, 0x50, 5584 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 5585 0x46, 0x4f, 0x52, 0x5f, 0x44, 0x53, 0x52, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x10, 0xc1, 0x01, 5586 0x12, 0x16, 0x0a, 0x11, 0x4e, 0x4f, 0x5f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x47, 0x41, 5587 0x54, 0x45, 0x57, 0x41, 0x59, 0x10, 0xc2, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x55, 0x4e, 0x45, 0x4e, 5588 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x46, 0x46, 0x49, 0x43, 0x10, 5589 0xc3, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x54, 0x54, 0x4c, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 5590 0x45, 0x44, 0x10, 0xc4, 0x01, 0x12, 0x0f, 0x0a, 0x0a, 0x4e, 0x4f, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 5591 0x5f, 0x49, 0x44, 0x10, 0xc5, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 5592 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x10, 0xc6, 0x01, 0x12, 0x11, 5593 0x0a, 0x0c, 0x49, 0x47, 0x4d, 0x50, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x44, 0x10, 0xc7, 5594 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x49, 0x47, 0x4d, 0x50, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 5595 0x49, 0x42, 0x45, 0x44, 0x10, 0xc8, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x4d, 0x55, 0x4c, 0x54, 0x49, 5596 0x43, 0x41, 0x53, 0x54, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x44, 0x10, 0xc9, 0x01, 0x12, 5597 0x18, 0x0a, 0x13, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x48, 0x4f, 0x53, 0x54, 0x5f, 0x4e, 0x4f, 0x54, 5598 0x5f, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0xca, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x52, 0x4f, 5599 0x50, 0x5f, 0x45, 0x50, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0xcb, 5600 0x01, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x4e, 0x4f, 0x5f, 0x45, 0x47, 0x52, 5601 0x45, 0x53, 0x53, 0x5f, 0x49, 0x50, 0x10, 0xcc, 0x01, 0x2a, 0x4a, 0x0a, 0x10, 0x54, 0x72, 0x61, 5602 0x66, 0x66, 0x69, 0x63, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 5603 0x19, 0x54, 0x52, 0x41, 0x46, 0x46, 0x49, 0x43, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 5604 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 5605 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x47, 0x52, 5606 0x45, 0x53, 0x53, 0x10, 0x02, 0x2a, 0x8d, 0x02, 0x0a, 0x11, 0x44, 0x65, 0x62, 0x75, 0x67, 0x43, 5607 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x19, 0x44, 5608 0x42, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 5609 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x42, 5610 0x47, 0x5f, 0x43, 0x41, 0x50, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 5611 0x52, 0x59, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x54, 5612 0x55, 0x52, 0x45, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x4c, 0x42, 0x10, 0x05, 0x12, 0x19, 0x0a, 5613 0x15, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x41, 0x46, 0x54, 5614 0x45, 0x52, 0x5f, 0x56, 0x34, 0x36, 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x42, 0x47, 0x5f, 5615 0x43, 0x41, 0x50, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x41, 0x46, 0x54, 0x45, 0x52, 0x5f, 0x56, 0x36, 5616 0x34, 0x10, 0x07, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x54, 0x55, 5617 0x52, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x50, 0x52, 0x45, 0x10, 0x08, 0x12, 0x1a, 5618 0x0a, 0x16, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x50, 0x52, 5619 0x4f, 0x58, 0x59, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x10, 0x09, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x42, 5620 0x47, 0x5f, 0x43, 0x41, 0x50, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x53, 0x4e, 0x41, 0x54, 0x5f, 0x50, 5621 0x52, 0x45, 0x10, 0x0a, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x41, 0x50, 0x54, 5622 0x55, 0x52, 0x45, 0x5f, 0x53, 0x4e, 0x41, 0x54, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x10, 0x0b, 0x22, 5623 0x04, 0x08, 0x01, 0x10, 0x03, 0x2a, 0x39, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 5624 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 5625 0x0f, 0x0a, 0x0b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x10, 0x09, 5626 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x6f, 0x73, 0x74, 0x10, 0x02, 5627 0x2a, 0x7f, 0x0a, 0x0f, 0x4c, 0x6f, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x6f, 0x75, 5628 0x72, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4c, 5629 0x4f, 0x53, 0x54, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 5630 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x45, 0x52, 0x46, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 5631 0x5f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x10, 0x01, 0x12, 0x19, 5632 0x0a, 0x15, 0x4f, 0x42, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 5633 0x53, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x48, 0x55, 0x42, 5634 0x42, 0x4c, 0x45, 0x5f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x55, 0x46, 0x46, 0x45, 0x52, 0x10, 5635 0x03, 0x2a, 0xae, 0x02, 0x0a, 0x0e, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 5636 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x56, 5637 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x11, 0x0a, 5638 0x0d, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x02, 5639 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 5640 0x45, 0x44, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x44, 5641 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x4e, 0x44, 0x50, 5642 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x5f, 5643 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x05, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x4e, 0x44, 5644 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 5645 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x45, 0x4e, 5646 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x07, 5647 0x12, 0x14, 0x0a, 0x10, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x44, 0x45, 0x4c, 5648 0x45, 0x54, 0x45, 0x44, 0x10, 0x08, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x50, 0x43, 0x41, 0x43, 0x48, 5649 0x45, 0x5f, 0x55, 0x50, 0x53, 0x45, 0x52, 0x54, 0x45, 0x44, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 5650 0x49, 0x50, 0x43, 0x41, 0x43, 0x48, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 5651 0x0a, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x55, 0x50, 0x53, 5652 0x45, 0x52, 0x54, 0x45, 0x44, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x45, 0x52, 0x56, 0x49, 5653 0x43, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x0c, 0x22, 0x04, 0x08, 0x01, 5654 0x10, 0x01, 0x2a, 0xd8, 0x01, 0x0a, 0x16, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x72, 0x61, 5655 0x6e, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 5656 0x18, 0x53, 0x4f, 0x43, 0x4b, 0x5f, 0x58, 0x4c, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 5657 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x53, 5658 0x4f, 0x43, 0x4b, 0x5f, 0x58, 0x4c, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 5659 0x50, 0x52, 0x45, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x57, 5660 0x44, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x4f, 0x43, 0x4b, 0x5f, 0x58, 0x4c, 0x41, 0x54, 5661 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x5f, 0x44, 0x49, 0x52, 5662 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x57, 0x44, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 5663 0x53, 0x4f, 0x43, 0x4b, 0x5f, 0x58, 0x4c, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 5664 0x5f, 0x50, 0x52, 0x45, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 5665 0x45, 0x56, 0x10, 0x03, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x4f, 0x43, 0x4b, 0x5f, 0x58, 0x4c, 0x41, 5666 0x54, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x5f, 0x44, 0x49, 5667 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x56, 0x10, 0x04, 0x2a, 0x81, 0x0d, 5668 0x0a, 0x0e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 5669 0x12, 0x15, 0x0a, 0x11, 0x44, 0x42, 0x47, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 5670 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x42, 0x47, 0x5f, 0x47, 5671 0x45, 0x4e, 0x45, 0x52, 0x49, 0x43, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x42, 0x47, 0x5f, 5672 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x59, 0x10, 0x02, 5673 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x42, 0x47, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x10, 0x03, 0x12, 5674 0x11, 0x0a, 0x0d, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x58, 0x43, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 5675 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x42, 0x47, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 5676 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x42, 0x47, 5677 0x5f, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 5678 0x44, 0x42, 0x47, 0x5f, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x52, 0x45, 5679 0x56, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x54, 0x5f, 0x4d, 0x41, 5680 0x54, 0x43, 0x48, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x54, 0x5f, 5681 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x42, 0x47, 5682 0x5f, 0x43, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x32, 0x10, 0x0a, 0x12, 0x14, 5683 0x0a, 0x10, 0x44, 0x42, 0x47, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x36, 0x5f, 0x48, 0x41, 0x4e, 0x44, 5684 0x4c, 0x45, 0x10, 0x0b, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x42, 0x47, 0x5f, 0x49, 0x43, 0x4d, 0x50, 5685 0x36, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x0c, 0x12, 0x10, 0x0a, 0x0c, 0x44, 5686 0x42, 0x47, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x36, 0x5f, 0x4e, 0x53, 0x10, 0x0d, 0x12, 0x1b, 0x0a, 5687 0x17, 0x44, 0x42, 0x47, 0x5f, 0x49, 0x43, 0x4d, 0x50, 0x36, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x5f, 5688 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x42, 5689 0x47, 0x5f, 0x43, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x44, 0x49, 0x43, 0x54, 0x10, 0x0f, 0x12, 0x0d, 5690 0x0a, 0x09, 0x44, 0x42, 0x47, 0x5f, 0x44, 0x45, 0x43, 0x41, 0x50, 0x10, 0x10, 0x12, 0x10, 0x0a, 5691 0x0c, 0x44, 0x42, 0x47, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x41, 0x50, 0x10, 0x11, 0x12, 5692 0x11, 0x0a, 0x0d, 0x44, 0x42, 0x47, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x54, 5693 0x10, 0x12, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x42, 0x47, 0x5f, 0x54, 0x4f, 0x5f, 0x48, 0x4f, 0x53, 5694 0x54, 0x10, 0x13, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x42, 0x47, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x54, 5695 0x41, 0x43, 0x4b, 0x10, 0x14, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x42, 0x47, 0x5f, 0x50, 0x4b, 0x54, 5696 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, 0x15, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x42, 0x47, 0x5f, 0x4c, 5697 0x42, 0x36, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x46, 0x52, 0x4f, 0x4e, 0x54, 0x45, 5698 0x4e, 0x44, 0x10, 0x16, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x36, 0x5f, 5699 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x46, 0x52, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x44, 0x5f, 5700 0x46, 0x41, 0x49, 0x4c, 0x10, 0x17, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 5701 0x36, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 5702 0x5f, 0x53, 0x4c, 0x4f, 0x54, 0x10, 0x18, 0x12, 0x27, 0x0a, 0x23, 0x44, 0x42, 0x47, 0x5f, 0x4c, 5703 0x42, 0x36, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 5704 0x44, 0x5f, 0x53, 0x4c, 0x4f, 0x54, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x19, 5705 0x12, 0x27, 0x0a, 0x23, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x36, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 5706 0x55, 0x50, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f, 0x53, 0x4c, 0x4f, 0x54, 0x5f, 5707 0x56, 0x32, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x1a, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x42, 0x47, 5708 0x5f, 0x4c, 0x42, 0x36, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x42, 0x41, 0x43, 0x4b, 5709 0x45, 0x4e, 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x1b, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x42, 5710 0x47, 0x5f, 0x4c, 0x42, 0x36, 0x5f, 0x52, 0x45, 0x56, 0x45, 0x52, 0x53, 0x45, 0x5f, 0x4e, 0x41, 5711 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x10, 0x1c, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x42, 5712 0x47, 0x5f, 0x4c, 0x42, 0x36, 0x5f, 0x52, 0x45, 0x56, 0x45, 0x52, 0x53, 0x45, 0x5f, 0x4e, 0x41, 5713 0x54, 0x10, 0x1d, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34, 0x5f, 0x4c, 5714 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x46, 0x52, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x44, 0x10, 0x1e, 5715 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 5716 0x55, 0x50, 0x5f, 0x46, 0x52, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c, 5717 0x10, 0x1f, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34, 0x5f, 0x4c, 0x4f, 5718 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f, 0x53, 0x4c, 0x4f, 5719 0x54, 0x10, 0x20, 0x12, 0x27, 0x0a, 0x23, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34, 0x5f, 0x4c, 5720 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f, 0x53, 0x4c, 5721 0x4f, 0x54, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x21, 0x12, 0x27, 0x0a, 0x23, 5722 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x42, 5723 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f, 0x53, 0x4c, 0x4f, 0x54, 0x5f, 0x56, 0x32, 0x5f, 0x46, 5724 0x41, 0x49, 0x4c, 0x10, 0x22, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34, 5725 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f, 5726 0x46, 0x41, 0x49, 0x4c, 0x10, 0x23, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 5727 0x34, 0x5f, 0x52, 0x45, 0x56, 0x45, 0x52, 0x53, 0x45, 0x5f, 0x4e, 0x41, 0x54, 0x5f, 0x4c, 0x4f, 5728 0x4f, 0x4b, 0x55, 0x50, 0x10, 0x24, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 5729 0x34, 0x5f, 0x52, 0x45, 0x56, 0x45, 0x52, 0x53, 0x45, 0x5f, 0x4e, 0x41, 0x54, 0x10, 0x25, 0x12, 5730 0x19, 0x0a, 0x15, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x34, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 5731 0x41, 0x43, 0x4b, 0x5f, 0x53, 0x4e, 0x41, 0x54, 0x10, 0x26, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x42, 5732 0x47, 0x5f, 0x4c, 0x42, 0x34, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x53, 5733 0x4e, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x56, 0x10, 0x27, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x42, 0x47, 5734 0x5f, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x34, 0x10, 0x28, 0x12, 0x1b, 0x0a, 5735 0x17, 0x44, 0x42, 0x47, 0x5f, 0x52, 0x52, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f, 5736 0x53, 0x4c, 0x4f, 0x54, 0x5f, 0x53, 0x45, 0x4c, 0x10, 0x29, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x42, 5737 0x47, 0x5f, 0x52, 0x45, 0x56, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 5738 0x55, 0x50, 0x10, 0x2a, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x42, 0x47, 0x5f, 0x52, 0x45, 0x56, 0x5f, 5739 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x2b, 0x12, 0x18, 0x0a, 5740 0x14, 0x44, 0x42, 0x47, 0x5f, 0x52, 0x45, 0x56, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x5f, 0x55, 5741 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x2c, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x42, 0x47, 0x5f, 0x4c, 5742 0x34, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x10, 0x2d, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x42, 5743 0x47, 0x5f, 0x4e, 0x45, 0x54, 0x44, 0x45, 0x56, 0x5f, 0x49, 0x4e, 0x5f, 0x43, 0x4c, 0x55, 0x53, 5744 0x54, 0x45, 0x52, 0x10, 0x2e, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x42, 0x47, 0x5f, 0x4e, 0x45, 0x54, 5745 0x44, 0x45, 0x56, 0x5f, 0x45, 0x4e, 0x43, 0x41, 0x50, 0x34, 0x10, 0x2f, 0x12, 0x14, 0x0a, 0x10, 5746 0x44, 0x42, 0x47, 0x5f, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x34, 0x5f, 0x31, 5747 0x10, 0x30, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 5748 0x4b, 0x55, 0x50, 0x34, 0x5f, 0x32, 0x10, 0x31, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x42, 0x47, 0x5f, 5749 0x43, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x34, 0x10, 0x32, 0x12, 0x14, 0x0a, 5750 0x10, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x36, 0x5f, 5751 0x31, 0x10, 0x33, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x42, 0x47, 0x5f, 0x43, 0x54, 0x5f, 0x4c, 0x4f, 5752 0x4f, 0x4b, 0x55, 0x50, 0x36, 0x5f, 0x32, 0x10, 0x34, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x42, 0x47, 5753 0x5f, 0x43, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x36, 0x10, 0x35, 0x12, 0x12, 5754 0x0a, 0x0e, 0x44, 0x42, 0x47, 0x5f, 0x53, 0x4b, 0x49, 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x58, 0x59, 5755 0x10, 0x36, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x34, 0x5f, 0x43, 0x52, 0x45, 5756 0x41, 0x54, 0x45, 0x10, 0x37, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x42, 0x47, 0x5f, 0x49, 0x50, 0x5f, 5757 0x49, 0x44, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x34, 0x10, 0x38, 5758 0x12, 0x19, 0x0a, 0x15, 0x44, 0x42, 0x47, 0x5f, 0x49, 0x50, 0x5f, 0x49, 0x44, 0x5f, 0x4d, 0x41, 5759 0x50, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x36, 0x10, 0x39, 0x12, 0x1a, 0x0a, 0x16, 0x44, 5760 0x42, 0x47, 0x5f, 0x49, 0x50, 0x5f, 0x49, 0x44, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x53, 0x55, 0x43, 5761 0x43, 0x45, 0x45, 0x44, 0x34, 0x10, 0x3a, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x42, 0x47, 0x5f, 0x49, 5762 0x50, 0x5f, 0x49, 0x44, 0x5f, 0x4d, 0x41, 0x50, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 5763 0x36, 0x10, 0x3b, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x42, 0x5f, 0x53, 0x54, 5764 0x41, 0x4c, 0x45, 0x5f, 0x43, 0x54, 0x10, 0x3c, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x42, 0x47, 0x5f, 5765 0x49, 0x4e, 0x48, 0x45, 0x52, 0x49, 0x54, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 5766 0x10, 0x3d, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x42, 0x47, 0x5f, 0x53, 0x4b, 0x5f, 0x4c, 0x4f, 0x4f, 5767 0x4b, 0x55, 0x50, 0x34, 0x10, 0x3e, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x42, 0x47, 0x5f, 0x53, 0x4b, 5768 0x5f, 0x4c, 0x4f, 0x4f, 0x4b, 0x55, 0x50, 0x36, 0x10, 0x3f, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x42, 5769 0x47, 0x5f, 0x53, 0x4b, 0x5f, 0x41, 0x53, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x40, 0x12, 0x0d, 0x0a, 5770 0x09, 0x44, 0x42, 0x47, 0x5f, 0x4c, 0x37, 0x5f, 0x4c, 0x42, 0x10, 0x41, 0x12, 0x13, 0x0a, 0x0f, 5771 0x44, 0x42, 0x47, 0x5f, 0x53, 0x4b, 0x49, 0x50, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x10, 5772 0x42, 0x42, 0x26, 0x5a, 0x24, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 5773 0x63, 0x69, 0x6c, 0x69, 0x75, 0x6d, 0x2f, 0x63, 0x69, 0x6c, 0x69, 0x75, 0x6d, 0x2f, 0x61, 0x70, 5774 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x6c, 0x6f, 0x77, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 5775 0x33, 5776 } 5777 5778 var ( 5779 file_flow_flow_proto_rawDescOnce sync.Once 5780 file_flow_flow_proto_rawDescData = file_flow_flow_proto_rawDesc 5781 ) 5782 5783 func file_flow_flow_proto_rawDescGZIP() []byte { 5784 file_flow_flow_proto_rawDescOnce.Do(func() { 5785 file_flow_flow_proto_rawDescData = protoimpl.X.CompressGZIP(file_flow_flow_proto_rawDescData) 5786 }) 5787 return file_flow_flow_proto_rawDescData 5788 } 5789 5790 var file_flow_flow_proto_enumTypes = make([]protoimpl.EnumInfo, 15) 5791 var file_flow_flow_proto_msgTypes = make([]protoimpl.MessageInfo, 38) 5792 var file_flow_flow_proto_goTypes = []any{ 5793 (FlowType)(0), // 0: flow.FlowType 5794 (AuthType)(0), // 1: flow.AuthType 5795 (TraceObservationPoint)(0), // 2: flow.TraceObservationPoint 5796 (TraceReason)(0), // 3: flow.TraceReason 5797 (L7FlowType)(0), // 4: flow.L7FlowType 5798 (IPVersion)(0), // 5: flow.IPVersion 5799 (Verdict)(0), // 6: flow.Verdict 5800 (DropReason)(0), // 7: flow.DropReason 5801 (TrafficDirection)(0), // 8: flow.TrafficDirection 5802 (DebugCapturePoint)(0), // 9: flow.DebugCapturePoint 5803 (EventType)(0), // 10: flow.EventType 5804 (LostEventSource)(0), // 11: flow.LostEventSource 5805 (AgentEventType)(0), // 12: flow.AgentEventType 5806 (SocketTranslationPoint)(0), // 13: flow.SocketTranslationPoint 5807 (DebugEventType)(0), // 14: flow.DebugEventType 5808 (*Flow)(nil), // 15: flow.Flow 5809 (*Layer4)(nil), // 16: flow.Layer4 5810 (*Layer7)(nil), // 17: flow.Layer7 5811 (*TraceContext)(nil), // 18: flow.TraceContext 5812 (*TraceParent)(nil), // 19: flow.TraceParent 5813 (*Endpoint)(nil), // 20: flow.Endpoint 5814 (*Workload)(nil), // 21: flow.Workload 5815 (*TCP)(nil), // 22: flow.TCP 5816 (*IP)(nil), // 23: flow.IP 5817 (*Ethernet)(nil), // 24: flow.Ethernet 5818 (*TCPFlags)(nil), // 25: flow.TCPFlags 5819 (*UDP)(nil), // 26: flow.UDP 5820 (*SCTP)(nil), // 27: flow.SCTP 5821 (*ICMPv4)(nil), // 28: flow.ICMPv4 5822 (*ICMPv6)(nil), // 29: flow.ICMPv6 5823 (*Policy)(nil), // 30: flow.Policy 5824 (*EventTypeFilter)(nil), // 31: flow.EventTypeFilter 5825 (*CiliumEventType)(nil), // 32: flow.CiliumEventType 5826 (*FlowFilter)(nil), // 33: flow.FlowFilter 5827 (*DNS)(nil), // 34: flow.DNS 5828 (*HTTPHeader)(nil), // 35: flow.HTTPHeader 5829 (*HTTP)(nil), // 36: flow.HTTP 5830 (*Kafka)(nil), // 37: flow.Kafka 5831 (*Service)(nil), // 38: flow.Service 5832 (*LostEvent)(nil), // 39: flow.LostEvent 5833 (*AgentEvent)(nil), // 40: flow.AgentEvent 5834 (*AgentEventUnknown)(nil), // 41: flow.AgentEventUnknown 5835 (*TimeNotification)(nil), // 42: flow.TimeNotification 5836 (*PolicyUpdateNotification)(nil), // 43: flow.PolicyUpdateNotification 5837 (*EndpointRegenNotification)(nil), // 44: flow.EndpointRegenNotification 5838 (*EndpointUpdateNotification)(nil), // 45: flow.EndpointUpdateNotification 5839 (*IPCacheNotification)(nil), // 46: flow.IPCacheNotification 5840 (*ServiceUpsertNotificationAddr)(nil), // 47: flow.ServiceUpsertNotificationAddr 5841 (*ServiceUpsertNotification)(nil), // 48: flow.ServiceUpsertNotification 5842 (*ServiceDeleteNotification)(nil), // 49: flow.ServiceDeleteNotification 5843 (*NetworkInterface)(nil), // 50: flow.NetworkInterface 5844 (*DebugEvent)(nil), // 51: flow.DebugEvent 5845 (*FlowFilter_Experimental)(nil), // 52: flow.FlowFilter.Experimental 5846 (*timestamppb.Timestamp)(nil), // 53: google.protobuf.Timestamp 5847 (*wrapperspb.BoolValue)(nil), // 54: google.protobuf.BoolValue 5848 (*anypb.Any)(nil), // 55: google.protobuf.Any 5849 (*wrapperspb.Int32Value)(nil), // 56: google.protobuf.Int32Value 5850 (*wrapperspb.UInt32Value)(nil), // 57: google.protobuf.UInt32Value 5851 } 5852 var file_flow_flow_proto_depIdxs = []int32{ 5853 53, // 0: flow.Flow.time:type_name -> google.protobuf.Timestamp 5854 6, // 1: flow.Flow.verdict:type_name -> flow.Verdict 5855 1, // 2: flow.Flow.auth_type:type_name -> flow.AuthType 5856 24, // 3: flow.Flow.ethernet:type_name -> flow.Ethernet 5857 23, // 4: flow.Flow.IP:type_name -> flow.IP 5858 16, // 5: flow.Flow.l4:type_name -> flow.Layer4 5859 20, // 6: flow.Flow.source:type_name -> flow.Endpoint 5860 20, // 7: flow.Flow.destination:type_name -> flow.Endpoint 5861 0, // 8: flow.Flow.Type:type_name -> flow.FlowType 5862 17, // 9: flow.Flow.l7:type_name -> flow.Layer7 5863 32, // 10: flow.Flow.event_type:type_name -> flow.CiliumEventType 5864 38, // 11: flow.Flow.source_service:type_name -> flow.Service 5865 38, // 12: flow.Flow.destination_service:type_name -> flow.Service 5866 8, // 13: flow.Flow.traffic_direction:type_name -> flow.TrafficDirection 5867 2, // 14: flow.Flow.trace_observation_point:type_name -> flow.TraceObservationPoint 5868 3, // 15: flow.Flow.trace_reason:type_name -> flow.TraceReason 5869 7, // 16: flow.Flow.drop_reason_desc:type_name -> flow.DropReason 5870 54, // 17: flow.Flow.is_reply:type_name -> google.protobuf.BoolValue 5871 9, // 18: flow.Flow.debug_capture_point:type_name -> flow.DebugCapturePoint 5872 50, // 19: flow.Flow.interface:type_name -> flow.NetworkInterface 5873 18, // 20: flow.Flow.trace_context:type_name -> flow.TraceContext 5874 13, // 21: flow.Flow.sock_xlate_point:type_name -> flow.SocketTranslationPoint 5875 55, // 22: flow.Flow.extensions:type_name -> google.protobuf.Any 5876 30, // 23: flow.Flow.egress_allowed_by:type_name -> flow.Policy 5877 30, // 24: flow.Flow.ingress_allowed_by:type_name -> flow.Policy 5878 30, // 25: flow.Flow.egress_denied_by:type_name -> flow.Policy 5879 30, // 26: flow.Flow.ingress_denied_by:type_name -> flow.Policy 5880 22, // 27: flow.Layer4.TCP:type_name -> flow.TCP 5881 26, // 28: flow.Layer4.UDP:type_name -> flow.UDP 5882 28, // 29: flow.Layer4.ICMPv4:type_name -> flow.ICMPv4 5883 29, // 30: flow.Layer4.ICMPv6:type_name -> flow.ICMPv6 5884 27, // 31: flow.Layer4.SCTP:type_name -> flow.SCTP 5885 4, // 32: flow.Layer7.type:type_name -> flow.L7FlowType 5886 34, // 33: flow.Layer7.dns:type_name -> flow.DNS 5887 36, // 34: flow.Layer7.http:type_name -> flow.HTTP 5888 37, // 35: flow.Layer7.kafka:type_name -> flow.Kafka 5889 19, // 36: flow.TraceContext.parent:type_name -> flow.TraceParent 5890 21, // 37: flow.Endpoint.workloads:type_name -> flow.Workload 5891 25, // 38: flow.TCP.flags:type_name -> flow.TCPFlags 5892 5, // 39: flow.IP.ipVersion:type_name -> flow.IPVersion 5893 21, // 40: flow.FlowFilter.source_workload:type_name -> flow.Workload 5894 21, // 41: flow.FlowFilter.destination_workload:type_name -> flow.Workload 5895 8, // 42: flow.FlowFilter.traffic_direction:type_name -> flow.TrafficDirection 5896 6, // 43: flow.FlowFilter.verdict:type_name -> flow.Verdict 5897 7, // 44: flow.FlowFilter.drop_reason_desc:type_name -> flow.DropReason 5898 50, // 45: flow.FlowFilter.interface:type_name -> flow.NetworkInterface 5899 31, // 46: flow.FlowFilter.event_type:type_name -> flow.EventTypeFilter 5900 35, // 47: flow.FlowFilter.http_header:type_name -> flow.HTTPHeader 5901 25, // 48: flow.FlowFilter.tcp_flags:type_name -> flow.TCPFlags 5902 5, // 49: flow.FlowFilter.ip_version:type_name -> flow.IPVersion 5903 52, // 50: flow.FlowFilter.experimental:type_name -> flow.FlowFilter.Experimental 5904 35, // 51: flow.HTTP.headers:type_name -> flow.HTTPHeader 5905 11, // 52: flow.LostEvent.source:type_name -> flow.LostEventSource 5906 56, // 53: flow.LostEvent.cpu:type_name -> google.protobuf.Int32Value 5907 12, // 54: flow.AgentEvent.type:type_name -> flow.AgentEventType 5908 41, // 55: flow.AgentEvent.unknown:type_name -> flow.AgentEventUnknown 5909 42, // 56: flow.AgentEvent.agent_start:type_name -> flow.TimeNotification 5910 43, // 57: flow.AgentEvent.policy_update:type_name -> flow.PolicyUpdateNotification 5911 44, // 58: flow.AgentEvent.endpoint_regenerate:type_name -> flow.EndpointRegenNotification 5912 45, // 59: flow.AgentEvent.endpoint_update:type_name -> flow.EndpointUpdateNotification 5913 46, // 60: flow.AgentEvent.ipcache_update:type_name -> flow.IPCacheNotification 5914 48, // 61: flow.AgentEvent.service_upsert:type_name -> flow.ServiceUpsertNotification 5915 49, // 62: flow.AgentEvent.service_delete:type_name -> flow.ServiceDeleteNotification 5916 53, // 63: flow.TimeNotification.time:type_name -> google.protobuf.Timestamp 5917 57, // 64: flow.IPCacheNotification.old_identity:type_name -> google.protobuf.UInt32Value 5918 47, // 65: flow.ServiceUpsertNotification.frontend_address:type_name -> flow.ServiceUpsertNotificationAddr 5919 47, // 66: flow.ServiceUpsertNotification.backend_addresses:type_name -> flow.ServiceUpsertNotificationAddr 5920 14, // 67: flow.DebugEvent.type:type_name -> flow.DebugEventType 5921 20, // 68: flow.DebugEvent.source:type_name -> flow.Endpoint 5922 57, // 69: flow.DebugEvent.hash:type_name -> google.protobuf.UInt32Value 5923 57, // 70: flow.DebugEvent.arg1:type_name -> google.protobuf.UInt32Value 5924 57, // 71: flow.DebugEvent.arg2:type_name -> google.protobuf.UInt32Value 5925 57, // 72: flow.DebugEvent.arg3:type_name -> google.protobuf.UInt32Value 5926 56, // 73: flow.DebugEvent.cpu:type_name -> google.protobuf.Int32Value 5927 74, // [74:74] is the sub-list for method output_type 5928 74, // [74:74] is the sub-list for method input_type 5929 74, // [74:74] is the sub-list for extension type_name 5930 74, // [74:74] is the sub-list for extension extendee 5931 0, // [0:74] is the sub-list for field type_name 5932 } 5933 5934 func init() { file_flow_flow_proto_init() } 5935 func file_flow_flow_proto_init() { 5936 if File_flow_flow_proto != nil { 5937 return 5938 } 5939 if !protoimpl.UnsafeEnabled { 5940 file_flow_flow_proto_msgTypes[0].Exporter = func(v any, i int) any { 5941 switch v := v.(*Flow); i { 5942 case 0: 5943 return &v.state 5944 case 1: 5945 return &v.sizeCache 5946 case 2: 5947 return &v.unknownFields 5948 default: 5949 return nil 5950 } 5951 } 5952 file_flow_flow_proto_msgTypes[1].Exporter = func(v any, i int) any { 5953 switch v := v.(*Layer4); i { 5954 case 0: 5955 return &v.state 5956 case 1: 5957 return &v.sizeCache 5958 case 2: 5959 return &v.unknownFields 5960 default: 5961 return nil 5962 } 5963 } 5964 file_flow_flow_proto_msgTypes[2].Exporter = func(v any, i int) any { 5965 switch v := v.(*Layer7); i { 5966 case 0: 5967 return &v.state 5968 case 1: 5969 return &v.sizeCache 5970 case 2: 5971 return &v.unknownFields 5972 default: 5973 return nil 5974 } 5975 } 5976 file_flow_flow_proto_msgTypes[3].Exporter = func(v any, i int) any { 5977 switch v := v.(*TraceContext); i { 5978 case 0: 5979 return &v.state 5980 case 1: 5981 return &v.sizeCache 5982 case 2: 5983 return &v.unknownFields 5984 default: 5985 return nil 5986 } 5987 } 5988 file_flow_flow_proto_msgTypes[4].Exporter = func(v any, i int) any { 5989 switch v := v.(*TraceParent); i { 5990 case 0: 5991 return &v.state 5992 case 1: 5993 return &v.sizeCache 5994 case 2: 5995 return &v.unknownFields 5996 default: 5997 return nil 5998 } 5999 } 6000 file_flow_flow_proto_msgTypes[5].Exporter = func(v any, i int) any { 6001 switch v := v.(*Endpoint); i { 6002 case 0: 6003 return &v.state 6004 case 1: 6005 return &v.sizeCache 6006 case 2: 6007 return &v.unknownFields 6008 default: 6009 return nil 6010 } 6011 } 6012 file_flow_flow_proto_msgTypes[6].Exporter = func(v any, i int) any { 6013 switch v := v.(*Workload); i { 6014 case 0: 6015 return &v.state 6016 case 1: 6017 return &v.sizeCache 6018 case 2: 6019 return &v.unknownFields 6020 default: 6021 return nil 6022 } 6023 } 6024 file_flow_flow_proto_msgTypes[7].Exporter = func(v any, i int) any { 6025 switch v := v.(*TCP); i { 6026 case 0: 6027 return &v.state 6028 case 1: 6029 return &v.sizeCache 6030 case 2: 6031 return &v.unknownFields 6032 default: 6033 return nil 6034 } 6035 } 6036 file_flow_flow_proto_msgTypes[8].Exporter = func(v any, i int) any { 6037 switch v := v.(*IP); i { 6038 case 0: 6039 return &v.state 6040 case 1: 6041 return &v.sizeCache 6042 case 2: 6043 return &v.unknownFields 6044 default: 6045 return nil 6046 } 6047 } 6048 file_flow_flow_proto_msgTypes[9].Exporter = func(v any, i int) any { 6049 switch v := v.(*Ethernet); i { 6050 case 0: 6051 return &v.state 6052 case 1: 6053 return &v.sizeCache 6054 case 2: 6055 return &v.unknownFields 6056 default: 6057 return nil 6058 } 6059 } 6060 file_flow_flow_proto_msgTypes[10].Exporter = func(v any, i int) any { 6061 switch v := v.(*TCPFlags); i { 6062 case 0: 6063 return &v.state 6064 case 1: 6065 return &v.sizeCache 6066 case 2: 6067 return &v.unknownFields 6068 default: 6069 return nil 6070 } 6071 } 6072 file_flow_flow_proto_msgTypes[11].Exporter = func(v any, i int) any { 6073 switch v := v.(*UDP); i { 6074 case 0: 6075 return &v.state 6076 case 1: 6077 return &v.sizeCache 6078 case 2: 6079 return &v.unknownFields 6080 default: 6081 return nil 6082 } 6083 } 6084 file_flow_flow_proto_msgTypes[12].Exporter = func(v any, i int) any { 6085 switch v := v.(*SCTP); i { 6086 case 0: 6087 return &v.state 6088 case 1: 6089 return &v.sizeCache 6090 case 2: 6091 return &v.unknownFields 6092 default: 6093 return nil 6094 } 6095 } 6096 file_flow_flow_proto_msgTypes[13].Exporter = func(v any, i int) any { 6097 switch v := v.(*ICMPv4); i { 6098 case 0: 6099 return &v.state 6100 case 1: 6101 return &v.sizeCache 6102 case 2: 6103 return &v.unknownFields 6104 default: 6105 return nil 6106 } 6107 } 6108 file_flow_flow_proto_msgTypes[14].Exporter = func(v any, i int) any { 6109 switch v := v.(*ICMPv6); i { 6110 case 0: 6111 return &v.state 6112 case 1: 6113 return &v.sizeCache 6114 case 2: 6115 return &v.unknownFields 6116 default: 6117 return nil 6118 } 6119 } 6120 file_flow_flow_proto_msgTypes[15].Exporter = func(v any, i int) any { 6121 switch v := v.(*Policy); i { 6122 case 0: 6123 return &v.state 6124 case 1: 6125 return &v.sizeCache 6126 case 2: 6127 return &v.unknownFields 6128 default: 6129 return nil 6130 } 6131 } 6132 file_flow_flow_proto_msgTypes[16].Exporter = func(v any, i int) any { 6133 switch v := v.(*EventTypeFilter); i { 6134 case 0: 6135 return &v.state 6136 case 1: 6137 return &v.sizeCache 6138 case 2: 6139 return &v.unknownFields 6140 default: 6141 return nil 6142 } 6143 } 6144 file_flow_flow_proto_msgTypes[17].Exporter = func(v any, i int) any { 6145 switch v := v.(*CiliumEventType); i { 6146 case 0: 6147 return &v.state 6148 case 1: 6149 return &v.sizeCache 6150 case 2: 6151 return &v.unknownFields 6152 default: 6153 return nil 6154 } 6155 } 6156 file_flow_flow_proto_msgTypes[18].Exporter = func(v any, i int) any { 6157 switch v := v.(*FlowFilter); i { 6158 case 0: 6159 return &v.state 6160 case 1: 6161 return &v.sizeCache 6162 case 2: 6163 return &v.unknownFields 6164 default: 6165 return nil 6166 } 6167 } 6168 file_flow_flow_proto_msgTypes[19].Exporter = func(v any, i int) any { 6169 switch v := v.(*DNS); i { 6170 case 0: 6171 return &v.state 6172 case 1: 6173 return &v.sizeCache 6174 case 2: 6175 return &v.unknownFields 6176 default: 6177 return nil 6178 } 6179 } 6180 file_flow_flow_proto_msgTypes[20].Exporter = func(v any, i int) any { 6181 switch v := v.(*HTTPHeader); i { 6182 case 0: 6183 return &v.state 6184 case 1: 6185 return &v.sizeCache 6186 case 2: 6187 return &v.unknownFields 6188 default: 6189 return nil 6190 } 6191 } 6192 file_flow_flow_proto_msgTypes[21].Exporter = func(v any, i int) any { 6193 switch v := v.(*HTTP); i { 6194 case 0: 6195 return &v.state 6196 case 1: 6197 return &v.sizeCache 6198 case 2: 6199 return &v.unknownFields 6200 default: 6201 return nil 6202 } 6203 } 6204 file_flow_flow_proto_msgTypes[22].Exporter = func(v any, i int) any { 6205 switch v := v.(*Kafka); i { 6206 case 0: 6207 return &v.state 6208 case 1: 6209 return &v.sizeCache 6210 case 2: 6211 return &v.unknownFields 6212 default: 6213 return nil 6214 } 6215 } 6216 file_flow_flow_proto_msgTypes[23].Exporter = func(v any, i int) any { 6217 switch v := v.(*Service); i { 6218 case 0: 6219 return &v.state 6220 case 1: 6221 return &v.sizeCache 6222 case 2: 6223 return &v.unknownFields 6224 default: 6225 return nil 6226 } 6227 } 6228 file_flow_flow_proto_msgTypes[24].Exporter = func(v any, i int) any { 6229 switch v := v.(*LostEvent); i { 6230 case 0: 6231 return &v.state 6232 case 1: 6233 return &v.sizeCache 6234 case 2: 6235 return &v.unknownFields 6236 default: 6237 return nil 6238 } 6239 } 6240 file_flow_flow_proto_msgTypes[25].Exporter = func(v any, i int) any { 6241 switch v := v.(*AgentEvent); i { 6242 case 0: 6243 return &v.state 6244 case 1: 6245 return &v.sizeCache 6246 case 2: 6247 return &v.unknownFields 6248 default: 6249 return nil 6250 } 6251 } 6252 file_flow_flow_proto_msgTypes[26].Exporter = func(v any, i int) any { 6253 switch v := v.(*AgentEventUnknown); i { 6254 case 0: 6255 return &v.state 6256 case 1: 6257 return &v.sizeCache 6258 case 2: 6259 return &v.unknownFields 6260 default: 6261 return nil 6262 } 6263 } 6264 file_flow_flow_proto_msgTypes[27].Exporter = func(v any, i int) any { 6265 switch v := v.(*TimeNotification); i { 6266 case 0: 6267 return &v.state 6268 case 1: 6269 return &v.sizeCache 6270 case 2: 6271 return &v.unknownFields 6272 default: 6273 return nil 6274 } 6275 } 6276 file_flow_flow_proto_msgTypes[28].Exporter = func(v any, i int) any { 6277 switch v := v.(*PolicyUpdateNotification); i { 6278 case 0: 6279 return &v.state 6280 case 1: 6281 return &v.sizeCache 6282 case 2: 6283 return &v.unknownFields 6284 default: 6285 return nil 6286 } 6287 } 6288 file_flow_flow_proto_msgTypes[29].Exporter = func(v any, i int) any { 6289 switch v := v.(*EndpointRegenNotification); i { 6290 case 0: 6291 return &v.state 6292 case 1: 6293 return &v.sizeCache 6294 case 2: 6295 return &v.unknownFields 6296 default: 6297 return nil 6298 } 6299 } 6300 file_flow_flow_proto_msgTypes[30].Exporter = func(v any, i int) any { 6301 switch v := v.(*EndpointUpdateNotification); i { 6302 case 0: 6303 return &v.state 6304 case 1: 6305 return &v.sizeCache 6306 case 2: 6307 return &v.unknownFields 6308 default: 6309 return nil 6310 } 6311 } 6312 file_flow_flow_proto_msgTypes[31].Exporter = func(v any, i int) any { 6313 switch v := v.(*IPCacheNotification); i { 6314 case 0: 6315 return &v.state 6316 case 1: 6317 return &v.sizeCache 6318 case 2: 6319 return &v.unknownFields 6320 default: 6321 return nil 6322 } 6323 } 6324 file_flow_flow_proto_msgTypes[32].Exporter = func(v any, i int) any { 6325 switch v := v.(*ServiceUpsertNotificationAddr); i { 6326 case 0: 6327 return &v.state 6328 case 1: 6329 return &v.sizeCache 6330 case 2: 6331 return &v.unknownFields 6332 default: 6333 return nil 6334 } 6335 } 6336 file_flow_flow_proto_msgTypes[33].Exporter = func(v any, i int) any { 6337 switch v := v.(*ServiceUpsertNotification); i { 6338 case 0: 6339 return &v.state 6340 case 1: 6341 return &v.sizeCache 6342 case 2: 6343 return &v.unknownFields 6344 default: 6345 return nil 6346 } 6347 } 6348 file_flow_flow_proto_msgTypes[34].Exporter = func(v any, i int) any { 6349 switch v := v.(*ServiceDeleteNotification); i { 6350 case 0: 6351 return &v.state 6352 case 1: 6353 return &v.sizeCache 6354 case 2: 6355 return &v.unknownFields 6356 default: 6357 return nil 6358 } 6359 } 6360 file_flow_flow_proto_msgTypes[35].Exporter = func(v any, i int) any { 6361 switch v := v.(*NetworkInterface); i { 6362 case 0: 6363 return &v.state 6364 case 1: 6365 return &v.sizeCache 6366 case 2: 6367 return &v.unknownFields 6368 default: 6369 return nil 6370 } 6371 } 6372 file_flow_flow_proto_msgTypes[36].Exporter = func(v any, i int) any { 6373 switch v := v.(*DebugEvent); i { 6374 case 0: 6375 return &v.state 6376 case 1: 6377 return &v.sizeCache 6378 case 2: 6379 return &v.unknownFields 6380 default: 6381 return nil 6382 } 6383 } 6384 file_flow_flow_proto_msgTypes[37].Exporter = func(v any, i int) any { 6385 switch v := v.(*FlowFilter_Experimental); i { 6386 case 0: 6387 return &v.state 6388 case 1: 6389 return &v.sizeCache 6390 case 2: 6391 return &v.unknownFields 6392 default: 6393 return nil 6394 } 6395 } 6396 } 6397 file_flow_flow_proto_msgTypes[1].OneofWrappers = []any{ 6398 (*Layer4_TCP)(nil), 6399 (*Layer4_UDP)(nil), 6400 (*Layer4_ICMPv4)(nil), 6401 (*Layer4_ICMPv6)(nil), 6402 (*Layer4_SCTP)(nil), 6403 } 6404 file_flow_flow_proto_msgTypes[2].OneofWrappers = []any{ 6405 (*Layer7_Dns)(nil), 6406 (*Layer7_Http)(nil), 6407 (*Layer7_Kafka)(nil), 6408 } 6409 file_flow_flow_proto_msgTypes[25].OneofWrappers = []any{ 6410 (*AgentEvent_Unknown)(nil), 6411 (*AgentEvent_AgentStart)(nil), 6412 (*AgentEvent_PolicyUpdate)(nil), 6413 (*AgentEvent_EndpointRegenerate)(nil), 6414 (*AgentEvent_EndpointUpdate)(nil), 6415 (*AgentEvent_IpcacheUpdate)(nil), 6416 (*AgentEvent_ServiceUpsert)(nil), 6417 (*AgentEvent_ServiceDelete)(nil), 6418 } 6419 type x struct{} 6420 out := protoimpl.TypeBuilder{ 6421 File: protoimpl.DescBuilder{ 6422 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 6423 RawDescriptor: file_flow_flow_proto_rawDesc, 6424 NumEnums: 15, 6425 NumMessages: 38, 6426 NumExtensions: 0, 6427 NumServices: 0, 6428 }, 6429 GoTypes: file_flow_flow_proto_goTypes, 6430 DependencyIndexes: file_flow_flow_proto_depIdxs, 6431 EnumInfos: file_flow_flow_proto_enumTypes, 6432 MessageInfos: file_flow_flow_proto_msgTypes, 6433 }.Build() 6434 File_flow_flow_proto = out.File 6435 file_flow_flow_proto_rawDesc = nil 6436 file_flow_flow_proto_goTypes = nil 6437 file_flow_flow_proto_depIdxs = nil 6438 }