syntax = "proto3"; package locations.v1; service LocationsService { rpc GetLocationsV1 (LocationsRequest) returns (LocationsResponse); } message LocationsRequest { string locale = 1; // e.g. "en" } message LocationsResponse { // field 1-4: unknown/unused repeated Airport airports = 5; repeated City cities = 6; repeated Country countries = 7; repeated Region regions = 8; } message Uuid { bytes value = 1; // 16-byte UUID } message Airport { Uuid id = 1; string iata = 2; // e.g. "MCO" string icao = 3; // e.g. "KMCO" string name = 4; // e.g. "Orlando International" double lat = 5; double lon = 6; Uuid city_id = 7; // references City.id } message City { Uuid id = 1; string name = 2; // e.g. "New York" // field 3: unknown Uuid country_id = 4; // references Country.id double lat = 5; double lon = 6; } message Country { Uuid id = 1; string iso_code2 = 2; // e.g. "US" string iso_code3 = 3; // e.g. "USA" string name_eng = 4; // e.g. "United States" string name_native = 5; // e.g. "United States" string phone_prefix = 6; // e.g. "1" } message Region { Uuid id = 1; string slug = 2; // e.g. "azores" string name = 3; // e.g. "Azores" string name_localized = 4; // e.g. "Azores" string slug_localized = 5; // e.g. "azores" // field 6: unknown repeated string airport_iata_codes = 7; // e.g. ["TER", "PDL", "SMA"] }