syntax = "proto3";

package tensorflow;

option go_package = "github.com/tensorflow/tensorflow/tensorflow/go/core/protobuf/for_core_protos_go_proto";

// Coordination service configuration parameters.
// The system picks appropriate values for fields that are not set.
message CoordinationServiceConfig {
  // Type of coordination service implementation to enable.
  // For example, setting the service type as "standalone" starts a service
  // instance on the leader task to provide the coordination services such as
  // heartbeats and consistent key-value store.
  string service_type = 1;

  // Address where the coordination service instance is hosted.
  string service_leader = 2;

  // Whether to enable the health check mechanism.
  bool enable_health_check = 3;

  // Maximum wait time for all members in the cluster to be registered.
  int64 cluster_register_timeout_in_ms = 4;

  // Heartbeat timeout, if a worker does not record heartbeat in this time
  // window, it will be considered disconnected.
  int64 heartbeat_timeout_in_ms = 5;

  // The list of jobs that partipate in the coordination service. If empty, all
  // jobs will be included in the coordination service by default.
  repeated string coordinated_jobs = 6;
}
