syntax = "proto2";
package heron.proto.scheduler;

option java_package = "org.apache.heron.proto.scheduler";
option java_outer_classname = "Scheduler";

import "common.proto";
import "packing_plan.proto";

message SchedulerLocation {
  required string topology_name = 1;
  // host:port or DNS address of scheduler which can be reached for runtime management.
  required string http_endpoint = 2;
  // Optional links to topology's customized ui page
  // Example: link to the Mesos Slave UI page displaying all scheduled containers
  repeated string job_page_link = 3;
}

//
// Interfaces called by scheduler
//
message KillTopologyRequest {
  required string topology_name = 1;
}

message RestartTopologyRequest {
  required string topology_name = 1;
  // container_index would be -1 if no container is specified to restart
  // That means we would restart all containers.
  required int32 container_index = 2;
}

message UpdateTopologyRequest {
  required heron.proto.system.PackingPlan currentPackingPlan = 1;
  required heron.proto.system.PackingPlan proposedPackingPlan = 2;
}

message SchedulerResponse {
  required heron.proto.system.Status status = 1;
}
