syntax = "proto3";

option go_package = "github.com/opencord/voltha-protos/v5/go/health";
option java_package = "org.opencord.voltha.health";

package health;

import "google/api/annotations.proto";
import "google/protobuf/empty.proto";

// Encode health status of a Voltha instance
message HealthStatus {

    // Health states
    enum HealthState {
        HEALTHY = 0;  // The instance is healthy
        OVERLOADED = 1;  // The instance is overloaded, decrease query rate
        DYING = 2;  // The instance is in a critical condition, do not use it
    }

    // Current state of health of this Voltha instance
    HealthState state = 1 ;
}

// Health related services
service HealthService {

    // Return current health status of a Voltha instance
    rpc GetHealthStatus(google.protobuf.Empty) returns (HealthStatus) {
        option (google.api.http) = {
            get: "/health"
        };
    }

}

