// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: BUSL-1.1
syntax = "proto3" ;
package hashicorp . consul.internal.service ;
import "google/protobuf/duration.proto" ;
import "private/pbcommon/common.proto" ;
// HealthCheck represents a single check on a given node
//
// mog annotation:
//
// target=github.com/hashicorp/consul/agent/structs.HealthCheck
// output=healthcheck.gen.go
// name=Structs
message HealthCheck {
string Node = 1 ;
// mog: func-to=CheckIDType func-from=string
string CheckID = 2 ;
string Name = 3 ;
string Status = 4 ; // The current check status
string Notes = 5 ; // Additional notes with the status
string Output = 6 ; // Holds output of script runs
string ServiceID = 7 ; // optional associated service
string ServiceName = 8 ; // optional service name
repeated string ServiceTags = 9 ; // optional service tags
string Type = 12 ; // Check type: http/ttl/tcp/etc
HealthCheckDefinition Definition = 10 ;
// mog: func-to=RaftIndexToStructs func-from=NewRaftIndexFromStructs
common.RaftIndex RaftIndex = 11 ;
// mog: func-to=EnterpriseMetaToStructs func-from=NewEnterpriseMetaFromStructs
common.EnterpriseMeta EnterpriseMeta = 13 ;
// mog: func-to=int func-from=int32
int32 ExposedPort = 14 ;
string Interval = 15 ;
string Timeout = 16 ;
string PeerName = 17 ;
}
message HeaderValue {
repeated string Value = 1 ;
}
// HealthCheckDefinition of a single HealthCheck.
//
// mog annotation:
//
// target=github.com/hashicorp/consul/agent/structs.HealthCheckDefinition
// output=healthcheck.gen.go
// name=Structs
message HealthCheckDefinition {
string HTTP = 1 ;
string TLSServerName = 19 ;
bool TLSSkipVerify = 2 ;
// mog: func-to=MapHeadersToStructs func-from=NewMapHeadersFromStructs
map < string , HeaderValue > Header = 3 ;
string Method = 4 ;
string Body = 18 ;
bool DisableRedirects = 22 ;
string TCP = 5 ;
bool TCPUseTLS = 25 ;
string UDP = 23 ;
string OSService = 24 ;
// mog: func-to=structs.DurationFromProto func-from=structs.DurationToProto
google.protobuf.Duration Interval = 6 ;
// mog: func-to=uint func-from=uint32
uint32 OutputMaxSize = 9 ;
// mog: func-to=structs.DurationFromProto func-from=structs.DurationToProto
google.protobuf.Duration Timeout = 7 ;
// mog: func-to=structs.DurationFromProto func-from=structs.DurationToProto
google.protobuf.Duration DeregisterCriticalServiceAfter = 8 ;
repeated string ScriptArgs = 10 ;
string DockerContainerID = 11 ;
string Shell = 12 ;
string H2PING = 20 ;
bool H2PingUseTLS = 21 ;
string GRPC = 13 ;
bool GRPCUseTLS = 14 ;
string AliasNode = 15 ;
string AliasService = 16 ;
// mog: func-to=structs.DurationFromProto func-from=structs.DurationToProto
google.protobuf.Duration TTL = 17 ;
}
// CheckType is used to create either the CheckMonitor or the CheckTTL.
// The following types are supported: Script, HTTP, TCP, Docker, TTL, GRPC,
// Alias. Script, H2PING,
// HTTP, Docker, TCP, H2PING and GRPC all require Interval. Only one of the types may
// to be provided: TTL or Script/Interval or HTTP/Interval or TCP/Interval or
// Docker/Interval or GRPC/Interval or H2PING/Interval or AliasService.
//
// mog annotation:
//
// target=github.com/hashicorp/consul/agent/structs.CheckType
// output=healthcheck.gen.go
// name=Structs
message CheckType {
// mog: func-to=CheckIDType func-from=string
string CheckID = 1 ;
string Name = 2 ;
string Status = 3 ;
string Notes = 4 ;
repeated string ScriptArgs = 5 ;
string HTTP = 6 ;
// mog: func-to=MapHeadersToStructs func-from=NewMapHeadersFromStructs
map < string , HeaderValue > Header = 20 ;
string Method = 7 ;
string Body = 26 ;
bool DisableRedirects = 31 ;
string TCP = 8 ;
bool TCPUseTLS = 34 ;
string UDP = 32 ;
string OSService = 33 ;
// mog: func-to=structs.DurationFromProto func-from=structs.DurationToProto
google.protobuf.Duration Interval = 9 ;
string AliasNode = 10 ;
string AliasService = 11 ;
string DockerContainerID = 12 ;
string Shell = 13 ;
string H2PING = 28 ;
bool H2PingUseTLS = 30 ;
string GRPC = 14 ;
bool GRPCUseTLS = 15 ;
string TLSServerName = 27 ;
bool TLSSkipVerify = 16 ;
// mog: func-to=structs.DurationFromProto func-from=structs.DurationToProto
google.protobuf.Duration Timeout = 17 ;
// mog: func-to=structs.DurationFromProto func-from=structs.DurationToProto
google.protobuf.Duration TTL = 18 ;
// mog: func-to=int func-from=int32
int32 SuccessBeforePassing = 21 ;
// mog: func-to=int func-from=int32
int32 FailuresBeforeWarning = 29 ;
// mog: func-to=int func-from=int32
int32 FailuresBeforeCritical = 22 ;
// Definition fields used when exposing checks through a proxy
string ProxyHTTP = 23 ;
string ProxyGRPC = 24 ;
// DeregisterCriticalServiceAfter, if >0, will cause the associated
// service, if any, to be deregistered if this check is critical for
// longer than this duration.
// mog: func-to=structs.DurationFromProto func-from=structs.DurationToProto
google.protobuf.Duration DeregisterCriticalServiceAfter = 19 ;
// mog: func-to=int func-from=int32
int32 OutputMaxSize = 25 ;
}