routing-service/proto/valhalla/incidents.proto

77 lines
2.1 KiB
Protocol Buffer

// File contains definitions for side-loaded data-structures
//
// Because of the more distributed nature of this data
// compared to the previous protobuf structures used in Valhalla
// it is important to follow the protobuf schema evolution rules
// when modifying this file
syntax = "proto3";
option optimize_for = LITE_RUNTIME;
option go_package = "git.coopgo.io/coopgo-platform/routing-service/proto/valhalla";
package valhalla;
message IncidentsTile {
// Sorted list of edge_ids describing what incidents are attached to an edge_id
repeated Location locations = 1;
// Look at `incident_locations` to find how to index this array
repeated Metadata metadata = 2;
// Links a portion of an edge to incident metadata
message Location {
uint32 edge_index = 1;
float start_offset = 2;
float end_offset = 3;
uint32 metadata_index = 4;
}
// A single incident is described by this
// TODO This is not yet finalized
message Metadata {
enum Type {
ACCIDENT = 0;
CONGESTION = 1;
CONSTRUCTION = 2;
DISABLED_VEHICLE = 3;
LANE_RESTRICTION = 4;
MASS_TRANSIT = 5;
MISCELLANEOUS = 6;
OTHER_NEWS = 7;
PLANNED_EVENT = 8;
ROAD_CLOSURE = 9;
ROAD_HAZARD = 10;
WEATHER = 11;
}
Type type = 1;
repeated uint32 alertc_codes = 2;
string description = 3;
string sub_type = 4;
string sub_type_description = 5;
uint64 start_time = 6;
uint64 end_time = 7;
enum Impact {
UNKNOWN = 0;
CRITICAL = 1;
MAJOR = 2;
MINOR = 3;
LOW = 4;
}
Impact impact = 9;
bool road_closed = 10;
message Congestion {
uint32 value = 1;
}
Congestion congestion = 11;
repeated string lanes_blocked = 12;
uint64 creation_time = 13;
string long_description = 14;
string clear_lanes = 15;
uint64 num_lanes_blocked = 16;
uint32 length = 17; // Length of incident as matched to road graph
// IncidentMetadata id
uint64 id = 128;
// Country code (2 & 3 char codes)
string iso_3166_1_alpha2 = 129;
string iso_3166_1_alpha3 = 130;
}
}