syntax = "proto2";
option go_package = "system";

package appengine;

message SystemServiceError {
  enum ErrorCode {
    OK = 0;
    INTERNAL_ERROR = 1;
    BACKEND_REQUIRED = 2;
    LIMIT_REACHED = 3;
  }
}

message SystemStat {
  // Instaneous value of this stat.
  optional double current = 1;

  // Average over time, if this stat has an instaneous value.
  optional double average1m = 3;
  optional double average10m = 4;

  // Total value, if the stat accumulates over time.
  optional double total = 2;

  // Rate over time, if this stat accumulates.
  optional double rate1m = 5;
  optional double rate10m = 6;
}

message GetSystemStatsRequest {
}

message GetSystemStatsResponse {
  // CPU used by this instance, in mcycles.
  optional SystemStat cpu = 1;

  // Physical memory (RAM) used by this instance, in megabytes.
  optional SystemStat memory = 2;
}

message StartBackgroundRequestRequest {
}

message StartBackgroundRequestResponse {
  // Every /_ah/background request will have an X-AppEngine-BackgroundRequest
  // header, whose value will be equal to this parameter, the request_id.
  optional string request_id = 1;
}