blob: 25c2fa9c3476dd25694c81b64818c7b1a800c703 [file] [log] [blame]
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.
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;
}