syntax = "proto3";

package cluster;

option go_package = "github.com/siderolabs/talos/pkg/machinery/api/cluster";
option java_package = "dev.talos.api.cluster";

import "common/common.proto";
import "google/protobuf/duration.proto";

// The cluster service definition.
service ClusterService {
  rpc HealthCheck(HealthCheckRequest) returns (stream HealthCheckProgress);
}

message HealthCheckRequest {
  google.protobuf.Duration wait_timeout = 1;
  ClusterInfo cluster_info = 2;
}

message ClusterInfo {
  repeated string control_plane_nodes = 1;
  repeated string worker_nodes = 2;
  string force_endpoint = 3;
}

message HealthCheckProgress {
  common.Metadata metadata = 1;
  string message = 2;
}
