shuttle-proto 0.51.0

Library for all the gRPC definitions used by shuttle
Documentation
syntax = "proto3";
package runtime;

service Runtime {
  // Load a service file to be ready to start it
  rpc Load(LoadRequest) returns (LoadResponse);

  // Start a loaded service file
  rpc Start(StartRequest) returns (StartResponse);

  // Stop a started service
  rpc Stop(StopRequest) returns (StopResponse);

  // Channel to notify a service has been stopped
  rpc SubscribeStop(SubscribeStopRequest) returns (stream SubscribeStopResponse);

  rpc Version(Ping) returns (VersionInfo);
  rpc HealthCheck(Ping) returns (Pong);
}

message LoadRequest {
  string project_name = 1;
  // "local" or "deployment"
  string env = 3;
  // Secrets that belong to this deployment
  map<string, string> secrets = 20;

  // deprecated
  string path = 2;
  // deprecated
  repeated bytes resources = 10;
}

message LoadResponse {
  // Could the service be loaded
  bool success = 1;
  // Error message if not successful
  string message = 2;
  // Which resources where requested
  repeated bytes resources = 10;
}

message StartRequest {
  // Address and port to start the service on
  string ip = 1;
  // The resources available
  repeated bytes resources = 10;
}

message StartResponse {
  // Was the start successful
  bool success = 1;
  // Error message if not successful
  string message = 2;
}

message StopRequest {}

message StopResponse {
  // Was the stop successful
  bool success = 1;
}

message SubscribeStopRequest {}

message SubscribeStopResponse {
  // Reason the service has stopped
  StopReason reason = 1;

  // Any extra message to go with the reason. If there are any
  string message = 2;
}

enum StopReason {
  // User requested this stop
  Request = 0;

  // Service stopped by itself
  End = 1;

  // Service crashed
  Crash = 2;
}

message Ping {}
message Pong {}

message VersionInfo {
  string version = 1;
}