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