OpenWeather-gRPC-API/proto/location.proto

51 lines
1.4 KiB
Protocol Buffer
Raw Permalink Normal View History

2022-07-26 15:05:21 -04:00
syntax = "proto3";
package weather;
2024-06-19 12:51:47 -04:00
option go_package = "codeberg.org/andyscott/OpenWeather-gRPC-API/proto";
2022-07-26 15:05:21 -04:00
2022-09-02 22:52:02 -04:00
/* Get the latitude and longitude for a given location
* Commented parameters in the message definition are not implemeneted yet
* location_type {LocationType} - name or value of the desired LocationType enum
* location {OneOfLocation} - city name, zip code, or coordinates
*/
message RequestLocation {
LocationType location_type = 1;
OneOfLocation location = 2;
}
// Response to RequestLocation
message SendLocation {
float latitude = 1;
float longitude = 2;
}
// Sub-message for OneOfLocation
// Used to specify actual coordinates for the desired location
message Coordinates {
float latitude = 1;
float longitude = 2;
}
2022-09-02 22:52:02 -04:00
// Sub-message for RequestLocation, RequestCurrent, and RequestFiveDay
// Used to specify the desired location: city, zip code, or coordinates.
message OneOfLocation {
oneof location_id {
string city = 1;
string zip_code = 2;
Coordinates coords = 3;
}
}
/* Enum to specify the location type for which data is needed.
* Helps the API find info for the correct location. If unspecified, an
* attept is still made. However, results may be inaccurate if city is used,
* or fail entirely if zip code or coordinates are used.
*/
enum LocationType {
LOCATION_TYPE_UNSPECIFIED = 0;
LOCATION_TYPE_CITY = 1;
LOCATION_TYPE_ZIP_CODE = 2;
LOCATION_TYPE_COORDS = 3;
}