syntax = "proto3"; option csharp_namespace = "vestige.published.v2_1"; package vestige.published.v2_1; import "google/protobuf/timestamp.proto"; message RootMessage{ optional TimelineUpdate TimelineUpdate = 1; } message TimelineUpdate { string AssetId = 1; google.protobuf.Timestamp Date = 2; string SubscriptionId = 3; optional Event Event = 4; optional Location Location = 5; optional Odometer Odometer = 6; optional Ignition Ignition = 7; string AssetExternalId = 8; string SubscriptionExternalId = 9; optional DiagnosticTroubleCodes DiagnosticTroubleCodes = 10; optional BodyCamRecordingIntent BodyCamRecordingIntent = 11; optional BodyCamRecordingEnded BodyCamRecordingEnded = 12; optional BodyCamRecordingMediaAvailable BodyCamRecordingMediaAvailable = 13; optional EngineHours EngineHours = 14; } message Location{ google.protobuf.Timestamp Date = 1; double Lat = 2; double Lng = 3; double Speed = 4; double Heading = 5; } message Event{ google.protobuf.Timestamp Date = 1; string Name = 2; // Fields 3 and 4 are not used by this schema version (gaps from upstream vestige schema) string MediaUrl = 5; Roles Role = 6; enum Roles { Unspecified = 0; None = 1; PanicButton = 2; WheelchairNoSeatbelt = 3; WheelchairNoSecurement = 4; } } message Odometer{ google.protobuf.Timestamp Date = 1; double Value = 2; } message EngineHours{ google.protobuf.Timestamp Date = 1; double Value = 2; } message DiagnosticTroubleCodes{ google.protobuf.Timestamp Date = 1; string Value = 2; } message Ignition{ google.protobuf.Timestamp Date = 1; bool Value = 2; } message BodyCamRecordingIntent { google.protobuf.Timestamp EventDate = 1; optional Location GpsLocation = 2; } message BodyCamRecordingEnded { google.protobuf.Timestamp RecordingStartDate = 1; google.protobuf.Timestamp RecordingEndDate = 2; repeated Location GpsLocations = 3; string MediaUrl = 4; } message BodyCamRecordingMediaAvailable { google.protobuf.Timestamp RecordingStartDate = 1; google.protobuf.Timestamp RecordingEndDate = 2; repeated Location GpsLocations = 3; string MediaUrl = 4; repeated string Mp4Urls = 5; }