syntax = "proto2";

// The types of message notification sent from Moblab.
enum MessageType {
  MSG_UNKNOWN = 0;
  MSG_MOBLAB_HEARTBEAT = 1;
  MSG_MOBLAB_REMOTE_EVENT = 2;
  MSG_MOBLAB_ALERT = 3;
}

// The common pubsub notification attribute names.
enum MessageAttribute {
  ATTR_INVALID = 0;
  ATTR_MESSAGE_TYPE = 1;
  ATTR_MESSAGE_VERSION = 2;
  ATTR_MOBLAB_MAC_ADDRESS = 3;
  ATTR_MOBLAB_ID = 4;
}

// Timestamp is not defined in proto2. We need to define it by ourselves.
// It represents a point in time independent of any time zone
// or calendar, represented as seconds and fractions of seconds at
// nanosecond resolution.
// Clone from https://github.com/google/protobuf/blob/master/src/google/protobuf/timestamp.proto. //nocheck
message Timestamp {
  optional int64 seconds = 1;
  // Non-negative fractions of a second at nanosecond resolution.
  optional int64 nanos = 2 [default = 0];
}

message Heartbeat {
  optional Timestamp timestamp = 1;
}

// The remote event notification message.
message RemoteEventMessage {
  // EventType is an enumeration of event types sent to cloud console.
  // Any new event type should be added here.
  enum Type {
    EVENT_UNKNOWN = 0;
    EVENT_MOBLAB_BOOT_COMPLETE = 1;
  }

  optional Type type = 1 [default = EVENT_UNKNOWN];
  optional string data = 2;
}

// Moblab alerts
message Alert {
  enum AlertLevel {
    ALERT_UNSPECIFIED = 0;
    ALERT_CRITICAL = 1;
    ALERT_MAJOR = 2;
    ALERT_MINOR = 3;
  }
  optional AlertLevel level = 1;
  optional string data = 2;
  optional Timestamp timestamp = 3;
  optional string source_application = 4;
  optional string source_component = 5;
}
