// 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 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 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; }