| 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; | |
| } |