github.com/hxx258456/ccgo@v0.0.5-0.20230213014102-48b35f46f66f/go-control-plane/envoy/config/core/v3/health_check.pb.go (about) 1 // Code generated by protoc-gen-go. DO NOT EDIT. 2 // versions: 3 // protoc-gen-go v1.25.0 4 // protoc v3.16.0 5 // source: envoy/config/core/v3/health_check.proto 6 7 package envoy_config_core_v3 8 9 import ( 10 _ "github.com/cncf/xds/go/udpa/annotations" 11 _ "github.com/hxx258456/ccgo/go-control-plane/envoy/annotations" 12 v31 "github.com/hxx258456/ccgo/go-control-plane/envoy/type/matcher/v3" 13 v3 "github.com/hxx258456/ccgo/go-control-plane/envoy/type/v3" 14 _ "github.com/envoyproxy/protoc-gen-validate/validate" 15 proto "github.com/golang/protobuf/proto" 16 any "github.com/golang/protobuf/ptypes/any" 17 duration "github.com/golang/protobuf/ptypes/duration" 18 _struct "github.com/golang/protobuf/ptypes/struct" 19 wrappers "github.com/golang/protobuf/ptypes/wrappers" 20 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 21 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 22 reflect "reflect" 23 sync "sync" 24 ) 25 26 const ( 27 // Verify that this generated code is sufficiently up-to-date. 28 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 29 // Verify that runtime/protoimpl is sufficiently up-to-date. 30 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 31 ) 32 33 // This is a compile-time assertion that a sufficiently up-to-date version 34 // of the legacy proto package is being used. 35 const _ = proto.ProtoPackageIsVersion4 36 37 // Endpoint health status. 38 type HealthStatus int32 39 40 const ( 41 // The health status is not known. This is interpreted by Envoy as *HEALTHY*. 42 HealthStatus_UNKNOWN HealthStatus = 0 43 // Healthy. 44 HealthStatus_HEALTHY HealthStatus = 1 45 // Unhealthy. 46 HealthStatus_UNHEALTHY HealthStatus = 2 47 // Connection draining in progress. E.g., 48 // `<https://aws.amazon.com/blogs/aws/elb-connection-draining-remove-instances-from-service-with-care/>`_ 49 // or 50 // `<https://cloud.google.com/compute/docs/load-balancing/enabling-connection-draining>`_. 51 // This is interpreted by Envoy as *UNHEALTHY*. 52 HealthStatus_DRAINING HealthStatus = 3 53 // Health check timed out. This is part of HDS and is interpreted by Envoy as 54 // *UNHEALTHY*. 55 HealthStatus_TIMEOUT HealthStatus = 4 56 // Degraded. 57 HealthStatus_DEGRADED HealthStatus = 5 58 ) 59 60 // Enum value maps for HealthStatus. 61 var ( 62 HealthStatus_name = map[int32]string{ 63 0: "UNKNOWN", 64 1: "HEALTHY", 65 2: "UNHEALTHY", 66 3: "DRAINING", 67 4: "TIMEOUT", 68 5: "DEGRADED", 69 } 70 HealthStatus_value = map[string]int32{ 71 "UNKNOWN": 0, 72 "HEALTHY": 1, 73 "UNHEALTHY": 2, 74 "DRAINING": 3, 75 "TIMEOUT": 4, 76 "DEGRADED": 5, 77 } 78 ) 79 80 func (x HealthStatus) Enum() *HealthStatus { 81 p := new(HealthStatus) 82 *p = x 83 return p 84 } 85 86 func (x HealthStatus) String() string { 87 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 88 } 89 90 func (HealthStatus) Descriptor() protoreflect.EnumDescriptor { 91 return file_envoy_config_core_v3_health_check_proto_enumTypes[0].Descriptor() 92 } 93 94 func (HealthStatus) Type() protoreflect.EnumType { 95 return &file_envoy_config_core_v3_health_check_proto_enumTypes[0] 96 } 97 98 func (x HealthStatus) Number() protoreflect.EnumNumber { 99 return protoreflect.EnumNumber(x) 100 } 101 102 // Deprecated: Use HealthStatus.Descriptor instead. 103 func (HealthStatus) EnumDescriptor() ([]byte, []int) { 104 return file_envoy_config_core_v3_health_check_proto_rawDescGZIP(), []int{0} 105 } 106 107 // [#next-free-field: 25] 108 type HealthCheck struct { 109 state protoimpl.MessageState 110 sizeCache protoimpl.SizeCache 111 unknownFields protoimpl.UnknownFields 112 113 // The time to wait for a health check response. If the timeout is reached the 114 // health check attempt will be considered a failure. 115 Timeout *duration.Duration `protobuf:"bytes,1,opt,name=timeout,proto3" json:"timeout,omitempty"` 116 // The interval between health checks. 117 Interval *duration.Duration `protobuf:"bytes,2,opt,name=interval,proto3" json:"interval,omitempty"` 118 // An optional jitter amount in milliseconds. If specified, Envoy will start health 119 // checking after for a random time in ms between 0 and initial_jitter. This only 120 // applies to the first health check. 121 InitialJitter *duration.Duration `protobuf:"bytes,20,opt,name=initial_jitter,json=initialJitter,proto3" json:"initial_jitter,omitempty"` 122 // An optional jitter amount in milliseconds. If specified, during every 123 // interval Envoy will add interval_jitter to the wait time. 124 IntervalJitter *duration.Duration `protobuf:"bytes,3,opt,name=interval_jitter,json=intervalJitter,proto3" json:"interval_jitter,omitempty"` 125 // An optional jitter amount as a percentage of interval_ms. If specified, 126 // during every interval Envoy will add interval_ms * 127 // interval_jitter_percent / 100 to the wait time. 128 // 129 // If interval_jitter_ms and interval_jitter_percent are both set, both of 130 // them will be used to increase the wait time. 131 IntervalJitterPercent uint32 `protobuf:"varint,18,opt,name=interval_jitter_percent,json=intervalJitterPercent,proto3" json:"interval_jitter_percent,omitempty"` 132 // The number of unhealthy health checks required before a host is marked 133 // unhealthy. Note that for *http* health checking if a host responds with 503 134 // this threshold is ignored and the host is considered unhealthy immediately. 135 UnhealthyThreshold *wrappers.UInt32Value `protobuf:"bytes,4,opt,name=unhealthy_threshold,json=unhealthyThreshold,proto3" json:"unhealthy_threshold,omitempty"` 136 // The number of healthy health checks required before a host is marked 137 // healthy. Note that during startup, only a single successful health check is 138 // required to mark a host healthy. 139 HealthyThreshold *wrappers.UInt32Value `protobuf:"bytes,5,opt,name=healthy_threshold,json=healthyThreshold,proto3" json:"healthy_threshold,omitempty"` 140 // [#not-implemented-hide:] Non-serving port for health checking. 141 AltPort *wrappers.UInt32Value `protobuf:"bytes,6,opt,name=alt_port,json=altPort,proto3" json:"alt_port,omitempty"` 142 // Reuse health check connection between health checks. Default is true. 143 ReuseConnection *wrappers.BoolValue `protobuf:"bytes,7,opt,name=reuse_connection,json=reuseConnection,proto3" json:"reuse_connection,omitempty"` 144 // Types that are assignable to HealthChecker: 145 // *HealthCheck_HttpHealthCheck_ 146 // *HealthCheck_TcpHealthCheck_ 147 // *HealthCheck_GrpcHealthCheck_ 148 // *HealthCheck_CustomHealthCheck_ 149 HealthChecker isHealthCheck_HealthChecker `protobuf_oneof:"health_checker"` 150 // The "no traffic interval" is a special health check interval that is used when a cluster has 151 // never had traffic routed to it. This lower interval allows cluster information to be kept up to 152 // date, without sending a potentially large amount of active health checking traffic for no 153 // reason. Once a cluster has been used for traffic routing, Envoy will shift back to using the 154 // standard health check interval that is defined. Note that this interval takes precedence over 155 // any other. 156 // 157 // The default value for "no traffic interval" is 60 seconds. 158 NoTrafficInterval *duration.Duration `protobuf:"bytes,12,opt,name=no_traffic_interval,json=noTrafficInterval,proto3" json:"no_traffic_interval,omitempty"` 159 // The "no traffic healthy interval" is a special health check interval that 160 // is used for hosts that are currently passing active health checking 161 // (including new hosts) when the cluster has received no traffic. 162 // 163 // This is useful for when we want to send frequent health checks with 164 // `no_traffic_interval` but then revert to lower frequency `no_traffic_healthy_interval` once 165 // a host in the cluster is marked as healthy. 166 // 167 // Once a cluster has been used for traffic routing, Envoy will shift back to using the 168 // standard health check interval that is defined. 169 // 170 // If no_traffic_healthy_interval is not set, it will default to the 171 // no traffic interval and send that interval regardless of health state. 172 NoTrafficHealthyInterval *duration.Duration `protobuf:"bytes,24,opt,name=no_traffic_healthy_interval,json=noTrafficHealthyInterval,proto3" json:"no_traffic_healthy_interval,omitempty"` 173 // The "unhealthy interval" is a health check interval that is used for hosts that are marked as 174 // unhealthy. As soon as the host is marked as healthy, Envoy will shift back to using the 175 // standard health check interval that is defined. 176 // 177 // The default value for "unhealthy interval" is the same as "interval". 178 UnhealthyInterval *duration.Duration `protobuf:"bytes,14,opt,name=unhealthy_interval,json=unhealthyInterval,proto3" json:"unhealthy_interval,omitempty"` 179 // The "unhealthy edge interval" is a special health check interval that is used for the first 180 // health check right after a host is marked as unhealthy. For subsequent health checks 181 // Envoy will shift back to using either "unhealthy interval" if present or the standard health 182 // check interval that is defined. 183 // 184 // The default value for "unhealthy edge interval" is the same as "unhealthy interval". 185 UnhealthyEdgeInterval *duration.Duration `protobuf:"bytes,15,opt,name=unhealthy_edge_interval,json=unhealthyEdgeInterval,proto3" json:"unhealthy_edge_interval,omitempty"` 186 // The "healthy edge interval" is a special health check interval that is used for the first 187 // health check right after a host is marked as healthy. For subsequent health checks 188 // Envoy will shift back to using the standard health check interval that is defined. 189 // 190 // The default value for "healthy edge interval" is the same as the default interval. 191 HealthyEdgeInterval *duration.Duration `protobuf:"bytes,16,opt,name=healthy_edge_interval,json=healthyEdgeInterval,proto3" json:"healthy_edge_interval,omitempty"` 192 // Specifies the path to the :ref:`health check event log <arch_overview_health_check_logging>`. 193 // If empty, no event log will be written. 194 EventLogPath string `protobuf:"bytes,17,opt,name=event_log_path,json=eventLogPath,proto3" json:"event_log_path,omitempty"` 195 // [#not-implemented-hide:] 196 // The gRPC service for the health check event service. 197 // If empty, health check events won't be sent to a remote endpoint. 198 EventService *EventServiceConfig `protobuf:"bytes,22,opt,name=event_service,json=eventService,proto3" json:"event_service,omitempty"` 199 // If set to true, health check failure events will always be logged. If set to false, only the 200 // initial health check failure event will be logged. 201 // The default value is false. 202 AlwaysLogHealthCheckFailures bool `protobuf:"varint,19,opt,name=always_log_health_check_failures,json=alwaysLogHealthCheckFailures,proto3" json:"always_log_health_check_failures,omitempty"` 203 // This allows overriding the cluster TLS settings, just for health check connections. 204 TlsOptions *HealthCheck_TlsOptions `protobuf:"bytes,21,opt,name=tls_options,json=tlsOptions,proto3" json:"tls_options,omitempty"` 205 // Optional key/value pairs that will be used to match a transport socket from those specified in the cluster's 206 // :ref:`tranport socket matches <envoy_v3_api_field_config.cluster.v3.Cluster.transport_socket_matches>`. 207 // For example, the following match criteria 208 // 209 // .. code-block:: yaml 210 // 211 // transport_socket_match_criteria: 212 // useMTLS: true 213 // 214 // Will match the following :ref:`cluster socket match <envoy_v3_api_msg_config.cluster.v3.Cluster.TransportSocketMatch>` 215 // 216 // .. code-block:: yaml 217 // 218 // transport_socket_matches: 219 // - name: "useMTLS" 220 // match: 221 // useMTLS: true 222 // transport_socket: 223 // name: envoy.transport_sockets.tls 224 // config: { ... } # tls socket configuration 225 // 226 // If this field is set, then for health checks it will supersede an entry of *envoy.transport_socket* in the 227 // :ref:`LbEndpoint.Metadata <envoy_v3_api_field_config.endpoint.v3.LbEndpoint.metadata>`. 228 // This allows using different transport socket capabilities for health checking versus proxying to the 229 // endpoint. 230 // 231 // If the key/values pairs specified do not match any 232 // :ref:`transport socket matches <envoy_v3_api_field_config.cluster.v3.Cluster.transport_socket_matches>`, 233 // the cluster's :ref:`transport socket <envoy_v3_api_field_config.cluster.v3.Cluster.transport_socket>` 234 // will be used for health check socket configuration. 235 TransportSocketMatchCriteria *_struct.Struct `protobuf:"bytes,23,opt,name=transport_socket_match_criteria,json=transportSocketMatchCriteria,proto3" json:"transport_socket_match_criteria,omitempty"` 236 } 237 238 func (x *HealthCheck) Reset() { 239 *x = HealthCheck{} 240 if protoimpl.UnsafeEnabled { 241 mi := &file_envoy_config_core_v3_health_check_proto_msgTypes[0] 242 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 243 ms.StoreMessageInfo(mi) 244 } 245 } 246 247 func (x *HealthCheck) String() string { 248 return protoimpl.X.MessageStringOf(x) 249 } 250 251 func (*HealthCheck) ProtoMessage() {} 252 253 func (x *HealthCheck) ProtoReflect() protoreflect.Message { 254 mi := &file_envoy_config_core_v3_health_check_proto_msgTypes[0] 255 if protoimpl.UnsafeEnabled && x != nil { 256 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 257 if ms.LoadMessageInfo() == nil { 258 ms.StoreMessageInfo(mi) 259 } 260 return ms 261 } 262 return mi.MessageOf(x) 263 } 264 265 // Deprecated: Use HealthCheck.ProtoReflect.Descriptor instead. 266 func (*HealthCheck) Descriptor() ([]byte, []int) { 267 return file_envoy_config_core_v3_health_check_proto_rawDescGZIP(), []int{0} 268 } 269 270 func (x *HealthCheck) GetTimeout() *duration.Duration { 271 if x != nil { 272 return x.Timeout 273 } 274 return nil 275 } 276 277 func (x *HealthCheck) GetInterval() *duration.Duration { 278 if x != nil { 279 return x.Interval 280 } 281 return nil 282 } 283 284 func (x *HealthCheck) GetInitialJitter() *duration.Duration { 285 if x != nil { 286 return x.InitialJitter 287 } 288 return nil 289 } 290 291 func (x *HealthCheck) GetIntervalJitter() *duration.Duration { 292 if x != nil { 293 return x.IntervalJitter 294 } 295 return nil 296 } 297 298 func (x *HealthCheck) GetIntervalJitterPercent() uint32 { 299 if x != nil { 300 return x.IntervalJitterPercent 301 } 302 return 0 303 } 304 305 func (x *HealthCheck) GetUnhealthyThreshold() *wrappers.UInt32Value { 306 if x != nil { 307 return x.UnhealthyThreshold 308 } 309 return nil 310 } 311 312 func (x *HealthCheck) GetHealthyThreshold() *wrappers.UInt32Value { 313 if x != nil { 314 return x.HealthyThreshold 315 } 316 return nil 317 } 318 319 func (x *HealthCheck) GetAltPort() *wrappers.UInt32Value { 320 if x != nil { 321 return x.AltPort 322 } 323 return nil 324 } 325 326 func (x *HealthCheck) GetReuseConnection() *wrappers.BoolValue { 327 if x != nil { 328 return x.ReuseConnection 329 } 330 return nil 331 } 332 333 func (m *HealthCheck) GetHealthChecker() isHealthCheck_HealthChecker { 334 if m != nil { 335 return m.HealthChecker 336 } 337 return nil 338 } 339 340 func (x *HealthCheck) GetHttpHealthCheck() *HealthCheck_HttpHealthCheck { 341 if x, ok := x.GetHealthChecker().(*HealthCheck_HttpHealthCheck_); ok { 342 return x.HttpHealthCheck 343 } 344 return nil 345 } 346 347 func (x *HealthCheck) GetTcpHealthCheck() *HealthCheck_TcpHealthCheck { 348 if x, ok := x.GetHealthChecker().(*HealthCheck_TcpHealthCheck_); ok { 349 return x.TcpHealthCheck 350 } 351 return nil 352 } 353 354 func (x *HealthCheck) GetGrpcHealthCheck() *HealthCheck_GrpcHealthCheck { 355 if x, ok := x.GetHealthChecker().(*HealthCheck_GrpcHealthCheck_); ok { 356 return x.GrpcHealthCheck 357 } 358 return nil 359 } 360 361 func (x *HealthCheck) GetCustomHealthCheck() *HealthCheck_CustomHealthCheck { 362 if x, ok := x.GetHealthChecker().(*HealthCheck_CustomHealthCheck_); ok { 363 return x.CustomHealthCheck 364 } 365 return nil 366 } 367 368 func (x *HealthCheck) GetNoTrafficInterval() *duration.Duration { 369 if x != nil { 370 return x.NoTrafficInterval 371 } 372 return nil 373 } 374 375 func (x *HealthCheck) GetNoTrafficHealthyInterval() *duration.Duration { 376 if x != nil { 377 return x.NoTrafficHealthyInterval 378 } 379 return nil 380 } 381 382 func (x *HealthCheck) GetUnhealthyInterval() *duration.Duration { 383 if x != nil { 384 return x.UnhealthyInterval 385 } 386 return nil 387 } 388 389 func (x *HealthCheck) GetUnhealthyEdgeInterval() *duration.Duration { 390 if x != nil { 391 return x.UnhealthyEdgeInterval 392 } 393 return nil 394 } 395 396 func (x *HealthCheck) GetHealthyEdgeInterval() *duration.Duration { 397 if x != nil { 398 return x.HealthyEdgeInterval 399 } 400 return nil 401 } 402 403 func (x *HealthCheck) GetEventLogPath() string { 404 if x != nil { 405 return x.EventLogPath 406 } 407 return "" 408 } 409 410 func (x *HealthCheck) GetEventService() *EventServiceConfig { 411 if x != nil { 412 return x.EventService 413 } 414 return nil 415 } 416 417 func (x *HealthCheck) GetAlwaysLogHealthCheckFailures() bool { 418 if x != nil { 419 return x.AlwaysLogHealthCheckFailures 420 } 421 return false 422 } 423 424 func (x *HealthCheck) GetTlsOptions() *HealthCheck_TlsOptions { 425 if x != nil { 426 return x.TlsOptions 427 } 428 return nil 429 } 430 431 func (x *HealthCheck) GetTransportSocketMatchCriteria() *_struct.Struct { 432 if x != nil { 433 return x.TransportSocketMatchCriteria 434 } 435 return nil 436 } 437 438 type isHealthCheck_HealthChecker interface { 439 isHealthCheck_HealthChecker() 440 } 441 442 type HealthCheck_HttpHealthCheck_ struct { 443 // HTTP health check. 444 HttpHealthCheck *HealthCheck_HttpHealthCheck `protobuf:"bytes,8,opt,name=http_health_check,json=httpHealthCheck,proto3,oneof"` 445 } 446 447 type HealthCheck_TcpHealthCheck_ struct { 448 // TCP health check. 449 TcpHealthCheck *HealthCheck_TcpHealthCheck `protobuf:"bytes,9,opt,name=tcp_health_check,json=tcpHealthCheck,proto3,oneof"` 450 } 451 452 type HealthCheck_GrpcHealthCheck_ struct { 453 // gRPC health check. 454 GrpcHealthCheck *HealthCheck_GrpcHealthCheck `protobuf:"bytes,11,opt,name=grpc_health_check,json=grpcHealthCheck,proto3,oneof"` 455 } 456 457 type HealthCheck_CustomHealthCheck_ struct { 458 // Custom health check. 459 CustomHealthCheck *HealthCheck_CustomHealthCheck `protobuf:"bytes,13,opt,name=custom_health_check,json=customHealthCheck,proto3,oneof"` 460 } 461 462 func (*HealthCheck_HttpHealthCheck_) isHealthCheck_HealthChecker() {} 463 464 func (*HealthCheck_TcpHealthCheck_) isHealthCheck_HealthChecker() {} 465 466 func (*HealthCheck_GrpcHealthCheck_) isHealthCheck_HealthChecker() {} 467 468 func (*HealthCheck_CustomHealthCheck_) isHealthCheck_HealthChecker() {} 469 470 // Describes the encoding of the payload bytes in the payload. 471 type HealthCheck_Payload struct { 472 state protoimpl.MessageState 473 sizeCache protoimpl.SizeCache 474 unknownFields protoimpl.UnknownFields 475 476 // Types that are assignable to Payload: 477 // *HealthCheck_Payload_Text 478 // *HealthCheck_Payload_Binary 479 Payload isHealthCheck_Payload_Payload `protobuf_oneof:"payload"` 480 } 481 482 func (x *HealthCheck_Payload) Reset() { 483 *x = HealthCheck_Payload{} 484 if protoimpl.UnsafeEnabled { 485 mi := &file_envoy_config_core_v3_health_check_proto_msgTypes[1] 486 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 487 ms.StoreMessageInfo(mi) 488 } 489 } 490 491 func (x *HealthCheck_Payload) String() string { 492 return protoimpl.X.MessageStringOf(x) 493 } 494 495 func (*HealthCheck_Payload) ProtoMessage() {} 496 497 func (x *HealthCheck_Payload) ProtoReflect() protoreflect.Message { 498 mi := &file_envoy_config_core_v3_health_check_proto_msgTypes[1] 499 if protoimpl.UnsafeEnabled && x != nil { 500 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 501 if ms.LoadMessageInfo() == nil { 502 ms.StoreMessageInfo(mi) 503 } 504 return ms 505 } 506 return mi.MessageOf(x) 507 } 508 509 // Deprecated: Use HealthCheck_Payload.ProtoReflect.Descriptor instead. 510 func (*HealthCheck_Payload) Descriptor() ([]byte, []int) { 511 return file_envoy_config_core_v3_health_check_proto_rawDescGZIP(), []int{0, 0} 512 } 513 514 func (m *HealthCheck_Payload) GetPayload() isHealthCheck_Payload_Payload { 515 if m != nil { 516 return m.Payload 517 } 518 return nil 519 } 520 521 func (x *HealthCheck_Payload) GetText() string { 522 if x, ok := x.GetPayload().(*HealthCheck_Payload_Text); ok { 523 return x.Text 524 } 525 return "" 526 } 527 528 func (x *HealthCheck_Payload) GetBinary() []byte { 529 if x, ok := x.GetPayload().(*HealthCheck_Payload_Binary); ok { 530 return x.Binary 531 } 532 return nil 533 } 534 535 type isHealthCheck_Payload_Payload interface { 536 isHealthCheck_Payload_Payload() 537 } 538 539 type HealthCheck_Payload_Text struct { 540 // Hex encoded payload. E.g., "000000FF". 541 Text string `protobuf:"bytes,1,opt,name=text,proto3,oneof"` 542 } 543 544 type HealthCheck_Payload_Binary struct { 545 // [#not-implemented-hide:] Binary payload. 546 Binary []byte `protobuf:"bytes,2,opt,name=binary,proto3,oneof"` 547 } 548 549 func (*HealthCheck_Payload_Text) isHealthCheck_Payload_Payload() {} 550 551 func (*HealthCheck_Payload_Binary) isHealthCheck_Payload_Payload() {} 552 553 // [#next-free-field: 12] 554 type HealthCheck_HttpHealthCheck struct { 555 state protoimpl.MessageState 556 sizeCache protoimpl.SizeCache 557 unknownFields protoimpl.UnknownFields 558 559 // The value of the host header in the HTTP health check request. If 560 // left empty (default value), the name of the cluster this health check is associated 561 // with will be used. The host header can be customized for a specific endpoint by setting the 562 // :ref:`hostname <envoy_v3_api_field_config.endpoint.v3.Endpoint.HealthCheckConfig.hostname>` field. 563 Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"` 564 // Specifies the HTTP path that will be requested during health checking. For example 565 // */healthcheck*. 566 Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` 567 // [#not-implemented-hide:] HTTP specific payload. 568 Send *HealthCheck_Payload `protobuf:"bytes,3,opt,name=send,proto3" json:"send,omitempty"` 569 // [#not-implemented-hide:] HTTP specific response. 570 Receive *HealthCheck_Payload `protobuf:"bytes,4,opt,name=receive,proto3" json:"receive,omitempty"` 571 // Specifies a list of HTTP headers that should be added to each request that is sent to the 572 // health checked cluster. For more information, including details on header value syntax, see 573 // the documentation on :ref:`custom request headers 574 // <config_http_conn_man_headers_custom_request_headers>`. 575 RequestHeadersToAdd []*HeaderValueOption `protobuf:"bytes,6,rep,name=request_headers_to_add,json=requestHeadersToAdd,proto3" json:"request_headers_to_add,omitempty"` 576 // Specifies a list of HTTP headers that should be removed from each request that is sent to the 577 // health checked cluster. 578 RequestHeadersToRemove []string `protobuf:"bytes,8,rep,name=request_headers_to_remove,json=requestHeadersToRemove,proto3" json:"request_headers_to_remove,omitempty"` 579 // Specifies a list of HTTP response statuses considered healthy. If provided, replaces default 580 // 200-only policy - 200 must be included explicitly as needed. Ranges follow half-open 581 // semantics of :ref:`Int64Range <envoy_v3_api_msg_type.v3.Int64Range>`. The start and end of each 582 // range are required. Only statuses in the range [100, 600) are allowed. 583 ExpectedStatuses []*v3.Int64Range `protobuf:"bytes,9,rep,name=expected_statuses,json=expectedStatuses,proto3" json:"expected_statuses,omitempty"` 584 // Use specified application protocol for health checks. 585 CodecClientType v3.CodecClientType `protobuf:"varint,10,opt,name=codec_client_type,json=codecClientType,proto3,enum=envoy.type.v3.CodecClientType" json:"codec_client_type,omitempty"` 586 // An optional service name parameter which is used to validate the identity of 587 // the health checked cluster using a :ref:`StringMatcher 588 // <envoy_v3_api_msg_type.matcher.v3.StringMatcher>`. See the :ref:`architecture overview 589 // <arch_overview_health_checking_identity>` for more information. 590 ServiceNameMatcher *v31.StringMatcher `protobuf:"bytes,11,opt,name=service_name_matcher,json=serviceNameMatcher,proto3" json:"service_name_matcher,omitempty"` 591 // Deprecated: Do not use. 592 HiddenEnvoyDeprecatedServiceName string `protobuf:"bytes,5,opt,name=hidden_envoy_deprecated_service_name,json=hiddenEnvoyDeprecatedServiceName,proto3" json:"hidden_envoy_deprecated_service_name,omitempty"` 593 // Deprecated: Do not use. 594 HiddenEnvoyDeprecatedUseHttp2 bool `protobuf:"varint,7,opt,name=hidden_envoy_deprecated_use_http2,json=hiddenEnvoyDeprecatedUseHttp2,proto3" json:"hidden_envoy_deprecated_use_http2,omitempty"` 595 } 596 597 func (x *HealthCheck_HttpHealthCheck) Reset() { 598 *x = HealthCheck_HttpHealthCheck{} 599 if protoimpl.UnsafeEnabled { 600 mi := &file_envoy_config_core_v3_health_check_proto_msgTypes[2] 601 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 602 ms.StoreMessageInfo(mi) 603 } 604 } 605 606 func (x *HealthCheck_HttpHealthCheck) String() string { 607 return protoimpl.X.MessageStringOf(x) 608 } 609 610 func (*HealthCheck_HttpHealthCheck) ProtoMessage() {} 611 612 func (x *HealthCheck_HttpHealthCheck) ProtoReflect() protoreflect.Message { 613 mi := &file_envoy_config_core_v3_health_check_proto_msgTypes[2] 614 if protoimpl.UnsafeEnabled && x != nil { 615 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 616 if ms.LoadMessageInfo() == nil { 617 ms.StoreMessageInfo(mi) 618 } 619 return ms 620 } 621 return mi.MessageOf(x) 622 } 623 624 // Deprecated: Use HealthCheck_HttpHealthCheck.ProtoReflect.Descriptor instead. 625 func (*HealthCheck_HttpHealthCheck) Descriptor() ([]byte, []int) { 626 return file_envoy_config_core_v3_health_check_proto_rawDescGZIP(), []int{0, 1} 627 } 628 629 func (x *HealthCheck_HttpHealthCheck) GetHost() string { 630 if x != nil { 631 return x.Host 632 } 633 return "" 634 } 635 636 func (x *HealthCheck_HttpHealthCheck) GetPath() string { 637 if x != nil { 638 return x.Path 639 } 640 return "" 641 } 642 643 func (x *HealthCheck_HttpHealthCheck) GetSend() *HealthCheck_Payload { 644 if x != nil { 645 return x.Send 646 } 647 return nil 648 } 649 650 func (x *HealthCheck_HttpHealthCheck) GetReceive() *HealthCheck_Payload { 651 if x != nil { 652 return x.Receive 653 } 654 return nil 655 } 656 657 func (x *HealthCheck_HttpHealthCheck) GetRequestHeadersToAdd() []*HeaderValueOption { 658 if x != nil { 659 return x.RequestHeadersToAdd 660 } 661 return nil 662 } 663 664 func (x *HealthCheck_HttpHealthCheck) GetRequestHeadersToRemove() []string { 665 if x != nil { 666 return x.RequestHeadersToRemove 667 } 668 return nil 669 } 670 671 func (x *HealthCheck_HttpHealthCheck) GetExpectedStatuses() []*v3.Int64Range { 672 if x != nil { 673 return x.ExpectedStatuses 674 } 675 return nil 676 } 677 678 func (x *HealthCheck_HttpHealthCheck) GetCodecClientType() v3.CodecClientType { 679 if x != nil { 680 return x.CodecClientType 681 } 682 return v3.CodecClientType_HTTP1 683 } 684 685 func (x *HealthCheck_HttpHealthCheck) GetServiceNameMatcher() *v31.StringMatcher { 686 if x != nil { 687 return x.ServiceNameMatcher 688 } 689 return nil 690 } 691 692 // Deprecated: Do not use. 693 func (x *HealthCheck_HttpHealthCheck) GetHiddenEnvoyDeprecatedServiceName() string { 694 if x != nil { 695 return x.HiddenEnvoyDeprecatedServiceName 696 } 697 return "" 698 } 699 700 // Deprecated: Do not use. 701 func (x *HealthCheck_HttpHealthCheck) GetHiddenEnvoyDeprecatedUseHttp2() bool { 702 if x != nil { 703 return x.HiddenEnvoyDeprecatedUseHttp2 704 } 705 return false 706 } 707 708 type HealthCheck_TcpHealthCheck struct { 709 state protoimpl.MessageState 710 sizeCache protoimpl.SizeCache 711 unknownFields protoimpl.UnknownFields 712 713 // Empty payloads imply a connect-only health check. 714 Send *HealthCheck_Payload `protobuf:"bytes,1,opt,name=send,proto3" json:"send,omitempty"` 715 // When checking the response, “fuzzy” matching is performed such that each 716 // binary block must be found, and in the order specified, but not 717 // necessarily contiguous. 718 Receive []*HealthCheck_Payload `protobuf:"bytes,2,rep,name=receive,proto3" json:"receive,omitempty"` 719 } 720 721 func (x *HealthCheck_TcpHealthCheck) Reset() { 722 *x = HealthCheck_TcpHealthCheck{} 723 if protoimpl.UnsafeEnabled { 724 mi := &file_envoy_config_core_v3_health_check_proto_msgTypes[3] 725 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 726 ms.StoreMessageInfo(mi) 727 } 728 } 729 730 func (x *HealthCheck_TcpHealthCheck) String() string { 731 return protoimpl.X.MessageStringOf(x) 732 } 733 734 func (*HealthCheck_TcpHealthCheck) ProtoMessage() {} 735 736 func (x *HealthCheck_TcpHealthCheck) ProtoReflect() protoreflect.Message { 737 mi := &file_envoy_config_core_v3_health_check_proto_msgTypes[3] 738 if protoimpl.UnsafeEnabled && x != nil { 739 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 740 if ms.LoadMessageInfo() == nil { 741 ms.StoreMessageInfo(mi) 742 } 743 return ms 744 } 745 return mi.MessageOf(x) 746 } 747 748 // Deprecated: Use HealthCheck_TcpHealthCheck.ProtoReflect.Descriptor instead. 749 func (*HealthCheck_TcpHealthCheck) Descriptor() ([]byte, []int) { 750 return file_envoy_config_core_v3_health_check_proto_rawDescGZIP(), []int{0, 2} 751 } 752 753 func (x *HealthCheck_TcpHealthCheck) GetSend() *HealthCheck_Payload { 754 if x != nil { 755 return x.Send 756 } 757 return nil 758 } 759 760 func (x *HealthCheck_TcpHealthCheck) GetReceive() []*HealthCheck_Payload { 761 if x != nil { 762 return x.Receive 763 } 764 return nil 765 } 766 767 type HealthCheck_RedisHealthCheck struct { 768 state protoimpl.MessageState 769 sizeCache protoimpl.SizeCache 770 unknownFields protoimpl.UnknownFields 771 772 // If set, optionally perform ``EXISTS <key>`` instead of ``PING``. A return value 773 // from Redis of 0 (does not exist) is considered a passing healthcheck. A return value other 774 // than 0 is considered a failure. This allows the user to mark a Redis instance for maintenance 775 // by setting the specified key to any value and waiting for traffic to drain. 776 Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` 777 } 778 779 func (x *HealthCheck_RedisHealthCheck) Reset() { 780 *x = HealthCheck_RedisHealthCheck{} 781 if protoimpl.UnsafeEnabled { 782 mi := &file_envoy_config_core_v3_health_check_proto_msgTypes[4] 783 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 784 ms.StoreMessageInfo(mi) 785 } 786 } 787 788 func (x *HealthCheck_RedisHealthCheck) String() string { 789 return protoimpl.X.MessageStringOf(x) 790 } 791 792 func (*HealthCheck_RedisHealthCheck) ProtoMessage() {} 793 794 func (x *HealthCheck_RedisHealthCheck) ProtoReflect() protoreflect.Message { 795 mi := &file_envoy_config_core_v3_health_check_proto_msgTypes[4] 796 if protoimpl.UnsafeEnabled && x != nil { 797 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 798 if ms.LoadMessageInfo() == nil { 799 ms.StoreMessageInfo(mi) 800 } 801 return ms 802 } 803 return mi.MessageOf(x) 804 } 805 806 // Deprecated: Use HealthCheck_RedisHealthCheck.ProtoReflect.Descriptor instead. 807 func (*HealthCheck_RedisHealthCheck) Descriptor() ([]byte, []int) { 808 return file_envoy_config_core_v3_health_check_proto_rawDescGZIP(), []int{0, 3} 809 } 810 811 func (x *HealthCheck_RedisHealthCheck) GetKey() string { 812 if x != nil { 813 return x.Key 814 } 815 return "" 816 } 817 818 // `grpc.health.v1.Health 819 // <https://github.com/grpc/grpc/blob/master/src/proto/grpc/health/v1/health.proto>`_-based 820 // healthcheck. See `gRPC doc <https://github.com/grpc/grpc/blob/master/doc/health-checking.md>`_ 821 // for details. 822 type HealthCheck_GrpcHealthCheck struct { 823 state protoimpl.MessageState 824 sizeCache protoimpl.SizeCache 825 unknownFields protoimpl.UnknownFields 826 827 // An optional service name parameter which will be sent to gRPC service in 828 // `grpc.health.v1.HealthCheckRequest 829 // <https://github.com/grpc/grpc/blob/master/src/proto/grpc/health/v1/health.proto#L20>`_. 830 // message. See `gRPC health-checking overview 831 // <https://github.com/grpc/grpc/blob/master/doc/health-checking.md>`_ for more information. 832 ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"` 833 // The value of the :authority header in the gRPC health check request. If 834 // left empty (default value), the name of the cluster this health check is associated 835 // with will be used. The authority header can be customized for a specific endpoint by setting 836 // the :ref:`hostname <envoy_v3_api_field_config.endpoint.v3.Endpoint.HealthCheckConfig.hostname>` field. 837 Authority string `protobuf:"bytes,2,opt,name=authority,proto3" json:"authority,omitempty"` 838 } 839 840 func (x *HealthCheck_GrpcHealthCheck) Reset() { 841 *x = HealthCheck_GrpcHealthCheck{} 842 if protoimpl.UnsafeEnabled { 843 mi := &file_envoy_config_core_v3_health_check_proto_msgTypes[5] 844 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 845 ms.StoreMessageInfo(mi) 846 } 847 } 848 849 func (x *HealthCheck_GrpcHealthCheck) String() string { 850 return protoimpl.X.MessageStringOf(x) 851 } 852 853 func (*HealthCheck_GrpcHealthCheck) ProtoMessage() {} 854 855 func (x *HealthCheck_GrpcHealthCheck) ProtoReflect() protoreflect.Message { 856 mi := &file_envoy_config_core_v3_health_check_proto_msgTypes[5] 857 if protoimpl.UnsafeEnabled && x != nil { 858 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 859 if ms.LoadMessageInfo() == nil { 860 ms.StoreMessageInfo(mi) 861 } 862 return ms 863 } 864 return mi.MessageOf(x) 865 } 866 867 // Deprecated: Use HealthCheck_GrpcHealthCheck.ProtoReflect.Descriptor instead. 868 func (*HealthCheck_GrpcHealthCheck) Descriptor() ([]byte, []int) { 869 return file_envoy_config_core_v3_health_check_proto_rawDescGZIP(), []int{0, 4} 870 } 871 872 func (x *HealthCheck_GrpcHealthCheck) GetServiceName() string { 873 if x != nil { 874 return x.ServiceName 875 } 876 return "" 877 } 878 879 func (x *HealthCheck_GrpcHealthCheck) GetAuthority() string { 880 if x != nil { 881 return x.Authority 882 } 883 return "" 884 } 885 886 // Custom health check. 887 type HealthCheck_CustomHealthCheck struct { 888 state protoimpl.MessageState 889 sizeCache protoimpl.SizeCache 890 unknownFields protoimpl.UnknownFields 891 892 // The registered name of the custom health checker. 893 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 894 // A custom health checker specific configuration which depends on the custom health checker 895 // being instantiated. See :api:`envoy/config/health_checker` for reference. 896 // [#extension-category: envoy.health_checkers] 897 // 898 // Types that are assignable to ConfigType: 899 // *HealthCheck_CustomHealthCheck_TypedConfig 900 // *HealthCheck_CustomHealthCheck_HiddenEnvoyDeprecatedConfig 901 ConfigType isHealthCheck_CustomHealthCheck_ConfigType `protobuf_oneof:"config_type"` 902 } 903 904 func (x *HealthCheck_CustomHealthCheck) Reset() { 905 *x = HealthCheck_CustomHealthCheck{} 906 if protoimpl.UnsafeEnabled { 907 mi := &file_envoy_config_core_v3_health_check_proto_msgTypes[6] 908 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 909 ms.StoreMessageInfo(mi) 910 } 911 } 912 913 func (x *HealthCheck_CustomHealthCheck) String() string { 914 return protoimpl.X.MessageStringOf(x) 915 } 916 917 func (*HealthCheck_CustomHealthCheck) ProtoMessage() {} 918 919 func (x *HealthCheck_CustomHealthCheck) ProtoReflect() protoreflect.Message { 920 mi := &file_envoy_config_core_v3_health_check_proto_msgTypes[6] 921 if protoimpl.UnsafeEnabled && x != nil { 922 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 923 if ms.LoadMessageInfo() == nil { 924 ms.StoreMessageInfo(mi) 925 } 926 return ms 927 } 928 return mi.MessageOf(x) 929 } 930 931 // Deprecated: Use HealthCheck_CustomHealthCheck.ProtoReflect.Descriptor instead. 932 func (*HealthCheck_CustomHealthCheck) Descriptor() ([]byte, []int) { 933 return file_envoy_config_core_v3_health_check_proto_rawDescGZIP(), []int{0, 5} 934 } 935 936 func (x *HealthCheck_CustomHealthCheck) GetName() string { 937 if x != nil { 938 return x.Name 939 } 940 return "" 941 } 942 943 func (m *HealthCheck_CustomHealthCheck) GetConfigType() isHealthCheck_CustomHealthCheck_ConfigType { 944 if m != nil { 945 return m.ConfigType 946 } 947 return nil 948 } 949 950 func (x *HealthCheck_CustomHealthCheck) GetTypedConfig() *any.Any { 951 if x, ok := x.GetConfigType().(*HealthCheck_CustomHealthCheck_TypedConfig); ok { 952 return x.TypedConfig 953 } 954 return nil 955 } 956 957 // Deprecated: Do not use. 958 func (x *HealthCheck_CustomHealthCheck) GetHiddenEnvoyDeprecatedConfig() *_struct.Struct { 959 if x, ok := x.GetConfigType().(*HealthCheck_CustomHealthCheck_HiddenEnvoyDeprecatedConfig); ok { 960 return x.HiddenEnvoyDeprecatedConfig 961 } 962 return nil 963 } 964 965 type isHealthCheck_CustomHealthCheck_ConfigType interface { 966 isHealthCheck_CustomHealthCheck_ConfigType() 967 } 968 969 type HealthCheck_CustomHealthCheck_TypedConfig struct { 970 TypedConfig *any.Any `protobuf:"bytes,3,opt,name=typed_config,json=typedConfig,proto3,oneof"` 971 } 972 973 type HealthCheck_CustomHealthCheck_HiddenEnvoyDeprecatedConfig struct { 974 // Deprecated: Do not use. 975 HiddenEnvoyDeprecatedConfig *_struct.Struct `protobuf:"bytes,2,opt,name=hidden_envoy_deprecated_config,json=hiddenEnvoyDeprecatedConfig,proto3,oneof"` 976 } 977 978 func (*HealthCheck_CustomHealthCheck_TypedConfig) isHealthCheck_CustomHealthCheck_ConfigType() {} 979 980 func (*HealthCheck_CustomHealthCheck_HiddenEnvoyDeprecatedConfig) isHealthCheck_CustomHealthCheck_ConfigType() { 981 } 982 983 // Health checks occur over the transport socket specified for the cluster. This implies that if a 984 // cluster is using a TLS-enabled transport socket, the health check will also occur over TLS. 985 // 986 // This allows overriding the cluster TLS settings, just for health check connections. 987 type HealthCheck_TlsOptions struct { 988 state protoimpl.MessageState 989 sizeCache protoimpl.SizeCache 990 unknownFields protoimpl.UnknownFields 991 992 // Specifies the ALPN protocols for health check connections. This is useful if the 993 // corresponding upstream is using ALPN-based :ref:`FilterChainMatch 994 // <envoy_v3_api_msg_config.listener.v3.FilterChainMatch>` along with different protocols for health checks 995 // versus data connections. If empty, no ALPN protocols will be set on health check connections. 996 AlpnProtocols []string `protobuf:"bytes,1,rep,name=alpn_protocols,json=alpnProtocols,proto3" json:"alpn_protocols,omitempty"` 997 } 998 999 func (x *HealthCheck_TlsOptions) Reset() { 1000 *x = HealthCheck_TlsOptions{} 1001 if protoimpl.UnsafeEnabled { 1002 mi := &file_envoy_config_core_v3_health_check_proto_msgTypes[7] 1003 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1004 ms.StoreMessageInfo(mi) 1005 } 1006 } 1007 1008 func (x *HealthCheck_TlsOptions) String() string { 1009 return protoimpl.X.MessageStringOf(x) 1010 } 1011 1012 func (*HealthCheck_TlsOptions) ProtoMessage() {} 1013 1014 func (x *HealthCheck_TlsOptions) ProtoReflect() protoreflect.Message { 1015 mi := &file_envoy_config_core_v3_health_check_proto_msgTypes[7] 1016 if protoimpl.UnsafeEnabled && x != nil { 1017 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1018 if ms.LoadMessageInfo() == nil { 1019 ms.StoreMessageInfo(mi) 1020 } 1021 return ms 1022 } 1023 return mi.MessageOf(x) 1024 } 1025 1026 // Deprecated: Use HealthCheck_TlsOptions.ProtoReflect.Descriptor instead. 1027 func (*HealthCheck_TlsOptions) Descriptor() ([]byte, []int) { 1028 return file_envoy_config_core_v3_health_check_proto_rawDescGZIP(), []int{0, 6} 1029 } 1030 1031 func (x *HealthCheck_TlsOptions) GetAlpnProtocols() []string { 1032 if x != nil { 1033 return x.AlpnProtocols 1034 } 1035 return nil 1036 } 1037 1038 var File_envoy_config_core_v3_health_check_proto protoreflect.FileDescriptor 1039 1040 var file_envoy_config_core_v3_health_check_proto_rawDesc = []byte{ 1041 0x0a, 0x27, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 1042 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x63, 0x68, 1043 0x65, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x65, 0x6e, 0x76, 0x6f, 0x79, 1044 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x1a, 1045 0x1f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x6f, 1046 0x72, 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 1047 0x1a, 0x2f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 1048 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x72, 1049 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1050 0x6f, 0x1a, 0x22, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6d, 0x61, 1051 0x74, 0x63, 0x68, 0x65, 0x72, 0x2f, 0x76, 0x33, 0x2f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 1052 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x74, 0x79, 0x70, 1053 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 1054 0x19, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x72, 1055 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 1056 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 1057 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 1058 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 1059 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 1060 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 1061 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 1062 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 1063 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 1064 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x69, 1065 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61, 1066 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 1067 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x75, 0x64, 0x70, 0x61, 0x2f, 0x61, 0x6e, 1068 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 1069 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69, 1070 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 1071 0x6f, 0x74, 0x6f, 0x22, 0xba, 0x1d, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 1072 0x65, 0x63, 0x6b, 0x12, 0x3f, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x01, 1073 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 1074 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 1075 0x0a, 0xfa, 0x42, 0x07, 0xaa, 0x01, 0x04, 0x08, 0x01, 0x2a, 0x00, 0x52, 0x07, 0x74, 0x69, 0x6d, 1076 0x65, 0x6f, 0x75, 0x74, 0x12, 0x41, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 1077 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1078 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 1079 0x6e, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0xaa, 0x01, 0x04, 0x08, 0x01, 0x2a, 0x00, 0x52, 0x08, 0x69, 1080 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x40, 0x0a, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 1081 0x61, 0x6c, 0x5f, 0x6a, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 1082 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 1083 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x69, 0x6e, 0x69, 0x74, 1084 0x69, 0x61, 0x6c, 0x4a, 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 1085 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x6a, 0x69, 0x74, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 1086 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1087 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x69, 1088 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x4a, 0x69, 0x74, 0x74, 0x65, 0x72, 0x12, 0x36, 0x0a, 1089 0x17, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x6a, 0x69, 0x74, 0x74, 0x65, 0x72, 1090 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 1091 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x4a, 0x69, 0x74, 0x74, 0x65, 0x72, 0x50, 0x65, 1092 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x57, 0x0a, 0x13, 0x75, 0x6e, 0x68, 0x65, 0x61, 0x6c, 0x74, 1093 0x68, 0x79, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 1094 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1095 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 1096 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x12, 0x75, 0x6e, 0x68, 0x65, 1097 0x61, 0x6c, 0x74, 0x68, 0x79, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x53, 1098 0x0a, 0x11, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 1099 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 1100 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 1101 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 1102 0x01, 0x52, 0x10, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 1103 0x6f, 0x6c, 0x64, 0x12, 0x37, 0x0a, 0x08, 0x61, 0x6c, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 1104 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 1105 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 1106 0x6c, 0x75, 0x65, 0x52, 0x07, 0x61, 0x6c, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x45, 0x0a, 0x10, 1107 0x72, 0x65, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 1108 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1109 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 1110 0x75, 0x65, 0x52, 0x0f, 0x72, 0x65, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 1111 0x69, 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x11, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x68, 0x65, 0x61, 0x6c, 1112 0x74, 0x68, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 1113 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 1114 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 1115 0x6b, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 1116 0x6b, 0x48, 0x00, 0x52, 0x0f, 0x68, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 1117 0x68, 0x65, 0x63, 0x6b, 0x12, 0x5c, 0x0a, 0x10, 0x74, 0x63, 0x70, 0x5f, 0x68, 0x65, 0x61, 0x6c, 1118 0x74, 0x68, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 1119 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 1120 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 1121 0x6b, 0x2e, 0x54, 0x63, 0x70, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 1122 0x48, 0x00, 0x52, 0x0e, 0x74, 0x63, 0x70, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 1123 0x63, 0x6b, 0x12, 0x5f, 0x0a, 0x11, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 1124 0x68, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 1125 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 1126 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 1127 0x2e, 0x47, 0x72, 0x70, 0x63, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 1128 0x48, 0x00, 0x52, 0x0f, 0x67, 0x72, 0x70, 0x63, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 1129 0x65, 0x63, 0x6b, 0x12, 0x65, 0x0a, 0x13, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x68, 0x65, 1130 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 1131 0x32, 0x33, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 1132 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 1133 0x65, 0x63, 0x6b, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 1134 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 1135 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x53, 0x0a, 0x13, 0x6e, 0x6f, 1136 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 1137 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1138 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 1139 0x6f, 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xaa, 0x01, 0x02, 0x2a, 0x00, 0x52, 0x11, 0x6e, 0x6f, 1140 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 1141 0x62, 0x0a, 0x1b, 0x6e, 0x6f, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x68, 0x65, 1142 0x61, 0x6c, 0x74, 0x68, 0x79, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x18, 1143 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 1144 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 1145 0x08, 0xfa, 0x42, 0x05, 0xaa, 0x01, 0x02, 0x2a, 0x00, 0x52, 0x18, 0x6e, 0x6f, 0x54, 0x72, 0x61, 1146 0x66, 0x66, 0x69, 0x63, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 1147 0x76, 0x61, 0x6c, 0x12, 0x52, 0x0a, 0x12, 0x75, 0x6e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 1148 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 1149 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 1150 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xaa, 1151 0x01, 0x02, 0x2a, 0x00, 0x52, 0x11, 0x75, 0x6e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x49, 1152 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x5b, 0x0a, 0x17, 0x75, 0x6e, 0x68, 0x65, 0x61, 1153 0x6c, 0x74, 0x68, 0x79, 0x5f, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 1154 0x61, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1155 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 1156 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0xaa, 0x01, 0x02, 0x2a, 0x00, 0x52, 0x15, 0x75, 1157 0x6e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x45, 0x64, 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 1158 0x72, 0x76, 0x61, 0x6c, 0x12, 0x57, 0x0a, 0x15, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x5f, 1159 0x65, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x10, 0x20, 1160 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 1161 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 1162 0xfa, 0x42, 0x05, 0xaa, 0x01, 0x02, 0x2a, 0x00, 0x52, 0x13, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 1163 0x79, 0x45, 0x64, 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x24, 0x0a, 1164 0x0e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 1165 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x50, 1166 0x61, 0x74, 0x68, 0x12, 0x4d, 0x0a, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x72, 1167 0x76, 0x69, 0x63, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x65, 0x6e, 0x76, 1168 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 1169 0x33, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 1170 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 1171 0x63, 0x65, 0x12, 0x46, 0x0a, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x5f, 0x6c, 0x6f, 0x67, 1172 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x66, 0x61, 1173 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x61, 0x6c, 1174 0x77, 0x61, 0x79, 0x73, 0x4c, 0x6f, 0x67, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 1175 0x63, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x74, 0x6c, 1176 0x73, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 1177 0x2c, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 1178 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 1179 0x63, 0x6b, 0x2e, 0x54, 0x6c, 0x73, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0a, 0x74, 1180 0x6c, 0x73, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5e, 0x0a, 0x1f, 0x74, 0x72, 0x61, 1181 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6d, 0x61, 1182 0x74, 0x63, 0x68, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x18, 0x17, 0x20, 0x01, 1183 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1184 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x1c, 0x74, 0x72, 0x61, 1185 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x61, 0x74, 0x63, 1186 0x68, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x1a, 0x80, 0x01, 0x0a, 0x07, 0x50, 0x61, 1187 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1d, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 1188 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x48, 0x00, 0x52, 0x04, 1189 0x74, 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x06, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x02, 1190 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x06, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x3a, 0x2c, 1191 0x9a, 0xc5, 0x88, 0x1e, 0x27, 0x0a, 0x25, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 1192 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 1193 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x0e, 0x0a, 0x07, 1194 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x1a, 0xf5, 0x06, 0x0a, 1195 0x0f, 0x48, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 1196 0x12, 0x1f, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 1197 0xfa, 0x42, 0x08, 0x72, 0x06, 0xc0, 0x01, 0x02, 0xc8, 0x01, 0x00, 0x52, 0x04, 0x68, 0x6f, 0x73, 1198 0x74, 0x12, 0x21, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 1199 0x0d, 0xfa, 0x42, 0x0a, 0x72, 0x08, 0x10, 0x01, 0xc0, 0x01, 0x02, 0xc8, 0x01, 0x00, 0x52, 0x04, 1200 0x70, 0x61, 0x74, 0x68, 0x12, 0x3d, 0x0a, 0x04, 0x73, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 1201 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 1202 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 1203 0x43, 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x04, 0x73, 1204 0x65, 0x6e, 0x64, 0x12, 0x43, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x18, 0x04, 1205 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 1206 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x6c, 1207 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 1208 0x07, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x12, 0x67, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 1209 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 1210 0x64, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 1211 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 1212 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 1213 0x6e, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x92, 0x01, 0x03, 0x10, 0xe8, 0x07, 0x52, 0x13, 0x72, 0x65, 1214 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, 1215 0x64, 0x12, 0x4b, 0x0a, 0x19, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 1216 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x08, 1217 0x20, 0x03, 0x28, 0x09, 0x42, 0x10, 0xfa, 0x42, 0x0d, 0x92, 0x01, 0x0a, 0x22, 0x08, 0x72, 0x06, 1218 0xc0, 0x01, 0x01, 0xc8, 0x01, 0x00, 0x52, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 1219 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x46, 1220 0x0a, 0x11, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 1221 0x73, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 1222 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x52, 1223 0x61, 0x6e, 0x67, 0x65, 0x52, 0x10, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x74, 1224 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x11, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x5f, 1225 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 1226 0x0e, 0x32, 0x1e, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x76, 1227 0x33, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 1228 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0f, 0x63, 0x6f, 0x64, 1229 0x65, 0x63, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, 0x14, 1230 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x61, 0x74, 1231 0x63, 0x68, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6e, 0x76, 1232 0x6f, 0x79, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x2e, 1233 0x76, 0x33, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 1234 0x52, 0x12, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x4d, 0x61, 0x74, 1235 0x63, 0x68, 0x65, 0x72, 0x12, 0x5b, 0x0a, 0x24, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x65, 1236 0x6e, 0x76, 0x6f, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 1237 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 1238 0x28, 0x09, 0x42, 0x0b, 0x18, 0x01, 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e, 0x30, 0x52, 1239 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x44, 0x65, 0x70, 0x72, 1240 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 1241 0x65, 0x12, 0x5b, 0x0a, 0x21, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 0x76, 0x6f, 1242 0x79, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 1243 0x5f, 0x68, 0x74, 0x74, 0x70, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, 0x11, 0x18, 0x01, 1244 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e, 0x30, 0xb8, 0xee, 0xf2, 0xd2, 0x05, 0x01, 0x52, 1245 0x1d, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 0x44, 0x65, 0x70, 0x72, 1246 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x48, 0x74, 0x74, 0x70, 0x32, 0x3a, 0x34, 1247 0x9a, 0xc5, 0x88, 0x1e, 0x2f, 0x0a, 0x2d, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 1248 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 1249 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 1250 0x68, 0x65, 0x63, 0x6b, 0x1a, 0xc9, 0x01, 0x0a, 0x0e, 0x54, 0x63, 0x70, 0x48, 0x65, 0x61, 0x6c, 1251 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x3d, 0x0a, 0x04, 0x73, 0x65, 0x6e, 0x64, 0x18, 1252 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 1253 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 1254 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 1255 0x52, 0x04, 0x73, 0x65, 0x6e, 0x64, 0x12, 0x43, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 1256 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 1257 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x2e, 0x48, 1258 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 1259 0x61, 0x64, 0x52, 0x07, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x3a, 0x33, 0x9a, 0xc5, 0x88, 1260 0x1e, 0x2e, 0x0a, 0x2c, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 1261 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 1262 0x6b, 0x2e, 0x54, 0x63, 0x70, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 1263 0x1a, 0x5b, 0x0a, 0x10, 0x52, 0x65, 0x64, 0x69, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 1264 0x68, 0x65, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 1265 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x3a, 0x35, 0x9a, 0xc5, 0x88, 0x1e, 0x30, 0x0a, 0x2e, 0x65, 1266 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x72, 0x65, 1267 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x52, 0x65, 0x64, 1268 0x69, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x1a, 0x95, 0x01, 1269 0x0a, 0x0f, 0x47, 0x72, 0x70, 0x63, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 1270 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 1271 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 1272 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 1273 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xfa, 0x42, 0x08, 0x72, 0x06, 0xc0, 0x01, 1274 0x02, 0xc8, 0x01, 0x00, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x3a, 1275 0x34, 0x9a, 0xc5, 0x88, 0x1e, 0x2f, 0x0a, 0x2d, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 1276 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 1277 0x43, 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 1278 0x43, 0x68, 0x65, 0x63, 0x6b, 0x1a, 0x9f, 0x02, 0x0a, 0x11, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 1279 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 1280 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 1281 0x10, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x74, 0x79, 0x70, 0x65, 1282 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 1283 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 1284 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x79, 0x70, 0x65, 0x64, 0x43, 0x6f, 0x6e, 1285 0x66, 0x69, 0x67, 0x12, 0x6b, 0x0a, 0x1e, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x5f, 0x65, 0x6e, 1286 0x76, 0x6f, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 1287 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 1288 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 1289 0x72, 0x75, 0x63, 0x74, 0x42, 0x0b, 0x18, 0x01, 0x92, 0xc7, 0x86, 0xd8, 0x04, 0x03, 0x33, 0x2e, 1290 0x30, 0x48, 0x00, 0x52, 0x1b, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x45, 0x6e, 0x76, 0x6f, 0x79, 1291 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 1292 0x3a, 0x36, 0x9a, 0xc5, 0x88, 0x1e, 0x31, 0x0a, 0x2f, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 1293 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 1294 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x65, 0x61, 1295 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x0d, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 1296 0x69, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x64, 0x0a, 0x0a, 0x54, 0x6c, 0x73, 0x4f, 0x70, 1297 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x70, 0x6e, 0x5f, 0x70, 0x72, 1298 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 1299 0x6c, 0x70, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x3a, 0x2f, 0x9a, 0xc5, 1300 0x88, 0x1e, 0x2a, 0x0a, 0x28, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 1301 0x32, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 1302 0x63, 0x6b, 0x2e, 0x54, 0x6c, 0x73, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x24, 0x9a, 1303 0xc5, 0x88, 0x1e, 0x1f, 0x0a, 0x1d, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x61, 0x70, 0x69, 0x2e, 1304 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 1305 0x65, 0x63, 0x6b, 0x42, 0x15, 0x0a, 0x0e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x63, 0x68, 1306 0x65, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x4a, 0x04, 0x08, 0x0a, 0x10, 0x0b, 1307 0x2a, 0x60, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 1308 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 1309 0x07, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x59, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 1310 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x59, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x52, 0x41, 1311 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x49, 0x4d, 0x45, 0x4f, 1312 0x55, 0x54, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x47, 0x52, 0x41, 0x44, 0x45, 0x44, 1313 0x10, 0x05, 0x42, 0x40, 0x0a, 0x22, 0x69, 0x6f, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x70, 0x72, 1314 0x6f, 0x78, 0x79, 0x2e, 0x65, 0x6e, 0x76, 0x6f, 0x79, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 1315 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x33, 0x42, 0x10, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 1316 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0xba, 0x80, 0xc8, 0xd1, 1317 0x06, 0x02, 0x10, 0x02, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 1318 } 1319 1320 var ( 1321 file_envoy_config_core_v3_health_check_proto_rawDescOnce sync.Once 1322 file_envoy_config_core_v3_health_check_proto_rawDescData = file_envoy_config_core_v3_health_check_proto_rawDesc 1323 ) 1324 1325 func file_envoy_config_core_v3_health_check_proto_rawDescGZIP() []byte { 1326 file_envoy_config_core_v3_health_check_proto_rawDescOnce.Do(func() { 1327 file_envoy_config_core_v3_health_check_proto_rawDescData = protoimpl.X.CompressGZIP(file_envoy_config_core_v3_health_check_proto_rawDescData) 1328 }) 1329 return file_envoy_config_core_v3_health_check_proto_rawDescData 1330 } 1331 1332 var file_envoy_config_core_v3_health_check_proto_enumTypes = make([]protoimpl.EnumInfo, 1) 1333 var file_envoy_config_core_v3_health_check_proto_msgTypes = make([]protoimpl.MessageInfo, 8) 1334 var file_envoy_config_core_v3_health_check_proto_goTypes = []interface{}{ 1335 (HealthStatus)(0), // 0: envoy.config.core.v3.HealthStatus 1336 (*HealthCheck)(nil), // 1: envoy.config.core.v3.HealthCheck 1337 (*HealthCheck_Payload)(nil), // 2: envoy.config.core.v3.HealthCheck.Payload 1338 (*HealthCheck_HttpHealthCheck)(nil), // 3: envoy.config.core.v3.HealthCheck.HttpHealthCheck 1339 (*HealthCheck_TcpHealthCheck)(nil), // 4: envoy.config.core.v3.HealthCheck.TcpHealthCheck 1340 (*HealthCheck_RedisHealthCheck)(nil), // 5: envoy.config.core.v3.HealthCheck.RedisHealthCheck 1341 (*HealthCheck_GrpcHealthCheck)(nil), // 6: envoy.config.core.v3.HealthCheck.GrpcHealthCheck 1342 (*HealthCheck_CustomHealthCheck)(nil), // 7: envoy.config.core.v3.HealthCheck.CustomHealthCheck 1343 (*HealthCheck_TlsOptions)(nil), // 8: envoy.config.core.v3.HealthCheck.TlsOptions 1344 (*duration.Duration)(nil), // 9: google.protobuf.Duration 1345 (*wrappers.UInt32Value)(nil), // 10: google.protobuf.UInt32Value 1346 (*wrappers.BoolValue)(nil), // 11: google.protobuf.BoolValue 1347 (*EventServiceConfig)(nil), // 12: envoy.config.core.v3.EventServiceConfig 1348 (*_struct.Struct)(nil), // 13: google.protobuf.Struct 1349 (*HeaderValueOption)(nil), // 14: envoy.config.core.v3.HeaderValueOption 1350 (*v3.Int64Range)(nil), // 15: envoy.type.v3.Int64Range 1351 (v3.CodecClientType)(0), // 16: envoy.type.v3.CodecClientType 1352 (*v31.StringMatcher)(nil), // 17: envoy.type.matcher.v3.StringMatcher 1353 (*any.Any)(nil), // 18: google.protobuf.Any 1354 } 1355 var file_envoy_config_core_v3_health_check_proto_depIdxs = []int32{ 1356 9, // 0: envoy.config.core.v3.HealthCheck.timeout:type_name -> google.protobuf.Duration 1357 9, // 1: envoy.config.core.v3.HealthCheck.interval:type_name -> google.protobuf.Duration 1358 9, // 2: envoy.config.core.v3.HealthCheck.initial_jitter:type_name -> google.protobuf.Duration 1359 9, // 3: envoy.config.core.v3.HealthCheck.interval_jitter:type_name -> google.protobuf.Duration 1360 10, // 4: envoy.config.core.v3.HealthCheck.unhealthy_threshold:type_name -> google.protobuf.UInt32Value 1361 10, // 5: envoy.config.core.v3.HealthCheck.healthy_threshold:type_name -> google.protobuf.UInt32Value 1362 10, // 6: envoy.config.core.v3.HealthCheck.alt_port:type_name -> google.protobuf.UInt32Value 1363 11, // 7: envoy.config.core.v3.HealthCheck.reuse_connection:type_name -> google.protobuf.BoolValue 1364 3, // 8: envoy.config.core.v3.HealthCheck.http_health_check:type_name -> envoy.config.core.v3.HealthCheck.HttpHealthCheck 1365 4, // 9: envoy.config.core.v3.HealthCheck.tcp_health_check:type_name -> envoy.config.core.v3.HealthCheck.TcpHealthCheck 1366 6, // 10: envoy.config.core.v3.HealthCheck.grpc_health_check:type_name -> envoy.config.core.v3.HealthCheck.GrpcHealthCheck 1367 7, // 11: envoy.config.core.v3.HealthCheck.custom_health_check:type_name -> envoy.config.core.v3.HealthCheck.CustomHealthCheck 1368 9, // 12: envoy.config.core.v3.HealthCheck.no_traffic_interval:type_name -> google.protobuf.Duration 1369 9, // 13: envoy.config.core.v3.HealthCheck.no_traffic_healthy_interval:type_name -> google.protobuf.Duration 1370 9, // 14: envoy.config.core.v3.HealthCheck.unhealthy_interval:type_name -> google.protobuf.Duration 1371 9, // 15: envoy.config.core.v3.HealthCheck.unhealthy_edge_interval:type_name -> google.protobuf.Duration 1372 9, // 16: envoy.config.core.v3.HealthCheck.healthy_edge_interval:type_name -> google.protobuf.Duration 1373 12, // 17: envoy.config.core.v3.HealthCheck.event_service:type_name -> envoy.config.core.v3.EventServiceConfig 1374 8, // 18: envoy.config.core.v3.HealthCheck.tls_options:type_name -> envoy.config.core.v3.HealthCheck.TlsOptions 1375 13, // 19: envoy.config.core.v3.HealthCheck.transport_socket_match_criteria:type_name -> google.protobuf.Struct 1376 2, // 20: envoy.config.core.v3.HealthCheck.HttpHealthCheck.send:type_name -> envoy.config.core.v3.HealthCheck.Payload 1377 2, // 21: envoy.config.core.v3.HealthCheck.HttpHealthCheck.receive:type_name -> envoy.config.core.v3.HealthCheck.Payload 1378 14, // 22: envoy.config.core.v3.HealthCheck.HttpHealthCheck.request_headers_to_add:type_name -> envoy.config.core.v3.HeaderValueOption 1379 15, // 23: envoy.config.core.v3.HealthCheck.HttpHealthCheck.expected_statuses:type_name -> envoy.type.v3.Int64Range 1380 16, // 24: envoy.config.core.v3.HealthCheck.HttpHealthCheck.codec_client_type:type_name -> envoy.type.v3.CodecClientType 1381 17, // 25: envoy.config.core.v3.HealthCheck.HttpHealthCheck.service_name_matcher:type_name -> envoy.type.matcher.v3.StringMatcher 1382 2, // 26: envoy.config.core.v3.HealthCheck.TcpHealthCheck.send:type_name -> envoy.config.core.v3.HealthCheck.Payload 1383 2, // 27: envoy.config.core.v3.HealthCheck.TcpHealthCheck.receive:type_name -> envoy.config.core.v3.HealthCheck.Payload 1384 18, // 28: envoy.config.core.v3.HealthCheck.CustomHealthCheck.typed_config:type_name -> google.protobuf.Any 1385 13, // 29: envoy.config.core.v3.HealthCheck.CustomHealthCheck.hidden_envoy_deprecated_config:type_name -> google.protobuf.Struct 1386 30, // [30:30] is the sub-list for method output_type 1387 30, // [30:30] is the sub-list for method input_type 1388 30, // [30:30] is the sub-list for extension type_name 1389 30, // [30:30] is the sub-list for extension extendee 1390 0, // [0:30] is the sub-list for field type_name 1391 } 1392 1393 func init() { file_envoy_config_core_v3_health_check_proto_init() } 1394 func file_envoy_config_core_v3_health_check_proto_init() { 1395 if File_envoy_config_core_v3_health_check_proto != nil { 1396 return 1397 } 1398 file_envoy_config_core_v3_base_proto_init() 1399 file_envoy_config_core_v3_event_service_config_proto_init() 1400 if !protoimpl.UnsafeEnabled { 1401 file_envoy_config_core_v3_health_check_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 1402 switch v := v.(*HealthCheck); i { 1403 case 0: 1404 return &v.state 1405 case 1: 1406 return &v.sizeCache 1407 case 2: 1408 return &v.unknownFields 1409 default: 1410 return nil 1411 } 1412 } 1413 file_envoy_config_core_v3_health_check_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 1414 switch v := v.(*HealthCheck_Payload); i { 1415 case 0: 1416 return &v.state 1417 case 1: 1418 return &v.sizeCache 1419 case 2: 1420 return &v.unknownFields 1421 default: 1422 return nil 1423 } 1424 } 1425 file_envoy_config_core_v3_health_check_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 1426 switch v := v.(*HealthCheck_HttpHealthCheck); i { 1427 case 0: 1428 return &v.state 1429 case 1: 1430 return &v.sizeCache 1431 case 2: 1432 return &v.unknownFields 1433 default: 1434 return nil 1435 } 1436 } 1437 file_envoy_config_core_v3_health_check_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 1438 switch v := v.(*HealthCheck_TcpHealthCheck); i { 1439 case 0: 1440 return &v.state 1441 case 1: 1442 return &v.sizeCache 1443 case 2: 1444 return &v.unknownFields 1445 default: 1446 return nil 1447 } 1448 } 1449 file_envoy_config_core_v3_health_check_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 1450 switch v := v.(*HealthCheck_RedisHealthCheck); i { 1451 case 0: 1452 return &v.state 1453 case 1: 1454 return &v.sizeCache 1455 case 2: 1456 return &v.unknownFields 1457 default: 1458 return nil 1459 } 1460 } 1461 file_envoy_config_core_v3_health_check_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 1462 switch v := v.(*HealthCheck_GrpcHealthCheck); i { 1463 case 0: 1464 return &v.state 1465 case 1: 1466 return &v.sizeCache 1467 case 2: 1468 return &v.unknownFields 1469 default: 1470 return nil 1471 } 1472 } 1473 file_envoy_config_core_v3_health_check_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 1474 switch v := v.(*HealthCheck_CustomHealthCheck); i { 1475 case 0: 1476 return &v.state 1477 case 1: 1478 return &v.sizeCache 1479 case 2: 1480 return &v.unknownFields 1481 default: 1482 return nil 1483 } 1484 } 1485 file_envoy_config_core_v3_health_check_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 1486 switch v := v.(*HealthCheck_TlsOptions); i { 1487 case 0: 1488 return &v.state 1489 case 1: 1490 return &v.sizeCache 1491 case 2: 1492 return &v.unknownFields 1493 default: 1494 return nil 1495 } 1496 } 1497 } 1498 file_envoy_config_core_v3_health_check_proto_msgTypes[0].OneofWrappers = []interface{}{ 1499 (*HealthCheck_HttpHealthCheck_)(nil), 1500 (*HealthCheck_TcpHealthCheck_)(nil), 1501 (*HealthCheck_GrpcHealthCheck_)(nil), 1502 (*HealthCheck_CustomHealthCheck_)(nil), 1503 } 1504 file_envoy_config_core_v3_health_check_proto_msgTypes[1].OneofWrappers = []interface{}{ 1505 (*HealthCheck_Payload_Text)(nil), 1506 (*HealthCheck_Payload_Binary)(nil), 1507 } 1508 file_envoy_config_core_v3_health_check_proto_msgTypes[6].OneofWrappers = []interface{}{ 1509 (*HealthCheck_CustomHealthCheck_TypedConfig)(nil), 1510 (*HealthCheck_CustomHealthCheck_HiddenEnvoyDeprecatedConfig)(nil), 1511 } 1512 type x struct{} 1513 out := protoimpl.TypeBuilder{ 1514 File: protoimpl.DescBuilder{ 1515 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 1516 RawDescriptor: file_envoy_config_core_v3_health_check_proto_rawDesc, 1517 NumEnums: 1, 1518 NumMessages: 8, 1519 NumExtensions: 0, 1520 NumServices: 0, 1521 }, 1522 GoTypes: file_envoy_config_core_v3_health_check_proto_goTypes, 1523 DependencyIndexes: file_envoy_config_core_v3_health_check_proto_depIdxs, 1524 EnumInfos: file_envoy_config_core_v3_health_check_proto_enumTypes, 1525 MessageInfos: file_envoy_config_core_v3_health_check_proto_msgTypes, 1526 }.Build() 1527 File_envoy_config_core_v3_health_check_proto = out.File 1528 file_envoy_config_core_v3_health_check_proto_rawDesc = nil 1529 file_envoy_config_core_v3_health_check_proto_goTypes = nil 1530 file_envoy_config_core_v3_health_check_proto_depIdxs = nil 1531 }