xref: /aosp_15_r20/external/googleapis/google/maps/fleetengine/v1/fleetengine.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 Google LLC
2*d5c09012SAndroid Build Coastguard Worker//
3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d5c09012SAndroid Build Coastguard Worker//
7*d5c09012SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*d5c09012SAndroid Build Coastguard Worker//
9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d5c09012SAndroid Build Coastguard Worker// limitations under the License.
14*d5c09012SAndroid Build Coastguard Worker
15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3";
16*d5c09012SAndroid Build Coastguard Worker
17*d5c09012SAndroid Build Coastguard Workerpackage maps.fleetengine.v1;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/maps/fleetengine/v1/traffic.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/duration.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto";
23*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/wrappers.proto";
24*d5c09012SAndroid Build Coastguard Workerimport "google/type/latlng.proto";
25*d5c09012SAndroid Build Coastguard Worker
26*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Maps.FleetEngine.V1";
27*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/maps/fleetengine/apiv1/fleetenginepb;fleetenginepb";
28*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
29*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "FleetEngine";
30*d5c09012SAndroid Build Coastguard Workeroption java_package = "google.maps.fleetengine.v1";
31*d5c09012SAndroid Build Coastguard Workeroption objc_class_prefix = "CFE";
32*d5c09012SAndroid Build Coastguard Worker
33*d5c09012SAndroid Build Coastguard Worker// Identifies a terminal point.
34*d5c09012SAndroid Build Coastguard Workermessage TerminalPointId {
35*d5c09012SAndroid Build Coastguard Worker  // Deprecated.
36*d5c09012SAndroid Build Coastguard Worker  oneof Id {
37*d5c09012SAndroid Build Coastguard Worker    // Deprecated.
38*d5c09012SAndroid Build Coastguard Worker    string place_id = 2 [deprecated = true];
39*d5c09012SAndroid Build Coastguard Worker
40*d5c09012SAndroid Build Coastguard Worker    // Deprecated.
41*d5c09012SAndroid Build Coastguard Worker    string generated_id = 3 [deprecated = true];
42*d5c09012SAndroid Build Coastguard Worker  }
43*d5c09012SAndroid Build Coastguard Worker
44*d5c09012SAndroid Build Coastguard Worker  // Unique ID of the terminal point.
45*d5c09012SAndroid Build Coastguard Worker  string value = 4;
46*d5c09012SAndroid Build Coastguard Worker}
47*d5c09012SAndroid Build Coastguard Worker
48*d5c09012SAndroid Build Coastguard Worker// Describes the location of a waypoint.
49*d5c09012SAndroid Build Coastguard Workermessage TerminalLocation {
50*d5c09012SAndroid Build Coastguard Worker  // Required. Denotes the location of a trip waypoint.
51*d5c09012SAndroid Build Coastguard Worker  google.type.LatLng point = 1 [(google.api.field_behavior) = REQUIRED];
52*d5c09012SAndroid Build Coastguard Worker
53*d5c09012SAndroid Build Coastguard Worker  // ID of the terminal point.
54*d5c09012SAndroid Build Coastguard Worker  TerminalPointId terminal_point_id = 2;
55*d5c09012SAndroid Build Coastguard Worker
56*d5c09012SAndroid Build Coastguard Worker  // Deprecated.
57*d5c09012SAndroid Build Coastguard Worker  string access_point_id = 3 [deprecated = true];
58*d5c09012SAndroid Build Coastguard Worker
59*d5c09012SAndroid Build Coastguard Worker  // Deprecated.
60*d5c09012SAndroid Build Coastguard Worker  string trip_id = 4 [deprecated = true];
61*d5c09012SAndroid Build Coastguard Worker
62*d5c09012SAndroid Build Coastguard Worker  // Deprecated: `Vehicle.waypoint` will have this data.
63*d5c09012SAndroid Build Coastguard Worker  WaypointType terminal_location_type = 5 [deprecated = true];
64*d5c09012SAndroid Build Coastguard Worker}
65*d5c09012SAndroid Build Coastguard Worker
66*d5c09012SAndroid Build Coastguard Worker// Describes a stopping point on a vehicle's route or an ending point on a
67*d5c09012SAndroid Build Coastguard Worker// vehicle's trip.
68*d5c09012SAndroid Build Coastguard Workermessage TripWaypoint {
69*d5c09012SAndroid Build Coastguard Worker  // The location of this waypoint.
70*d5c09012SAndroid Build Coastguard Worker  TerminalLocation location = 1;
71*d5c09012SAndroid Build Coastguard Worker
72*d5c09012SAndroid Build Coastguard Worker  // The trip associated with this waypoint.
73*d5c09012SAndroid Build Coastguard Worker  string trip_id = 2;
74*d5c09012SAndroid Build Coastguard Worker
75*d5c09012SAndroid Build Coastguard Worker  // The role this waypoint plays in this trip, such as pickup or dropoff.
76*d5c09012SAndroid Build Coastguard Worker  WaypointType waypoint_type = 3;
77*d5c09012SAndroid Build Coastguard Worker
78*d5c09012SAndroid Build Coastguard Worker  // The path from the previous waypoint to the current waypoint.  Undefined for
79*d5c09012SAndroid Build Coastguard Worker  // the first waypoint in a list. This field is only populated when requested.
80*d5c09012SAndroid Build Coastguard Worker  repeated google.type.LatLng path_to_waypoint = 4;
81*d5c09012SAndroid Build Coastguard Worker
82*d5c09012SAndroid Build Coastguard Worker  // The encoded path from the previous waypoint to the current waypoint.
83*d5c09012SAndroid Build Coastguard Worker  //
84*d5c09012SAndroid Build Coastguard Worker  // <p>Note: This field is intended only for use by the Driver SDK and Consumer
85*d5c09012SAndroid Build Coastguard Worker  // SDK. Decoding is not yet supported.
86*d5c09012SAndroid Build Coastguard Worker  string encoded_path_to_waypoint = 5;
87*d5c09012SAndroid Build Coastguard Worker
88*d5c09012SAndroid Build Coastguard Worker  // The traffic conditions along the path to this waypoint.  Note that traffic
89*d5c09012SAndroid Build Coastguard Worker  // is only available for Google Map Platform Rides and Deliveries Solution
90*d5c09012SAndroid Build Coastguard Worker  // customers.
91*d5c09012SAndroid Build Coastguard Worker  ConsumableTrafficPolyline traffic_to_waypoint = 10;
92*d5c09012SAndroid Build Coastguard Worker
93*d5c09012SAndroid Build Coastguard Worker  // The path distance from the previous waypoint to the current waypoint.
94*d5c09012SAndroid Build Coastguard Worker  // Undefined for the first waypoint in a list.
95*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Int32Value distance_meters = 6;
96*d5c09012SAndroid Build Coastguard Worker
97*d5c09012SAndroid Build Coastguard Worker  // The estimated time of arrival at this waypoint. Undefined for the first
98*d5c09012SAndroid Build Coastguard Worker  // waypoint in a list.
99*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp eta = 7;
100*d5c09012SAndroid Build Coastguard Worker
101*d5c09012SAndroid Build Coastguard Worker  // The travel time from previous waypoint to this point. Undefined for the
102*d5c09012SAndroid Build Coastguard Worker  // first waypoint in a list.
103*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Duration duration = 8;
104*d5c09012SAndroid Build Coastguard Worker}
105*d5c09012SAndroid Build Coastguard Worker
106*d5c09012SAndroid Build Coastguard Worker// The type of a trip.
107*d5c09012SAndroid Build Coastguard Workerenum TripType {
108*d5c09012SAndroid Build Coastguard Worker  // Default, used for unspecified or unrecognized trip types.
109*d5c09012SAndroid Build Coastguard Worker  UNKNOWN_TRIP_TYPE = 0;
110*d5c09012SAndroid Build Coastguard Worker
111*d5c09012SAndroid Build Coastguard Worker  // The trip may share a vehicle with other trips.
112*d5c09012SAndroid Build Coastguard Worker  SHARED = 1;
113*d5c09012SAndroid Build Coastguard Worker
114*d5c09012SAndroid Build Coastguard Worker  // The trip is exclusive to a vehicle.
115*d5c09012SAndroid Build Coastguard Worker  EXCLUSIVE = 2;
116*d5c09012SAndroid Build Coastguard Worker}
117*d5c09012SAndroid Build Coastguard Worker
118*d5c09012SAndroid Build Coastguard Worker// The type of waypoint.
119*d5c09012SAndroid Build Coastguard Workerenum WaypointType {
120*d5c09012SAndroid Build Coastguard Worker  // Unknown or unspecified waypoint type.
121*d5c09012SAndroid Build Coastguard Worker  UNKNOWN_WAYPOINT_TYPE = 0;
122*d5c09012SAndroid Build Coastguard Worker
123*d5c09012SAndroid Build Coastguard Worker  // Waypoints for picking up riders or items.
124*d5c09012SAndroid Build Coastguard Worker  PICKUP_WAYPOINT_TYPE = 1;
125*d5c09012SAndroid Build Coastguard Worker
126*d5c09012SAndroid Build Coastguard Worker  // Waypoints for dropping off riders or items.
127*d5c09012SAndroid Build Coastguard Worker  DROP_OFF_WAYPOINT_TYPE = 2;
128*d5c09012SAndroid Build Coastguard Worker
129*d5c09012SAndroid Build Coastguard Worker  // Waypoints for intermediate destinations in a multi-destination trip.
130*d5c09012SAndroid Build Coastguard Worker  INTERMEDIATE_DESTINATION_WAYPOINT_TYPE = 3;
131*d5c09012SAndroid Build Coastguard Worker}
132*d5c09012SAndroid Build Coastguard Worker
133*d5c09012SAndroid Build Coastguard Worker// The type of polyline format.
134*d5c09012SAndroid Build Coastguard Workerenum PolylineFormatType {
135*d5c09012SAndroid Build Coastguard Worker  // The format is unspecified or unknown.
136*d5c09012SAndroid Build Coastguard Worker  UNKNOWN_FORMAT_TYPE = 0;
137*d5c09012SAndroid Build Coastguard Worker
138*d5c09012SAndroid Build Coastguard Worker  // A list of `google.type.LatLng`.
139*d5c09012SAndroid Build Coastguard Worker  LAT_LNG_LIST_TYPE = 1;
140*d5c09012SAndroid Build Coastguard Worker
141*d5c09012SAndroid Build Coastguard Worker  // A polyline encoded with a polyline compression algorithm. Decoding is not
142*d5c09012SAndroid Build Coastguard Worker  // yet supported.
143*d5c09012SAndroid Build Coastguard Worker  ENCODED_POLYLINE_TYPE = 2;
144*d5c09012SAndroid Build Coastguard Worker}
145*d5c09012SAndroid Build Coastguard Worker
146*d5c09012SAndroid Build Coastguard Worker// The vehicle's navigation status.
147*d5c09012SAndroid Build Coastguard Workerenum NavigationStatus {
148*d5c09012SAndroid Build Coastguard Worker  // Unspecified navigation status.
149*d5c09012SAndroid Build Coastguard Worker  UNKNOWN_NAVIGATION_STATUS = 0;
150*d5c09012SAndroid Build Coastguard Worker
151*d5c09012SAndroid Build Coastguard Worker  // The Driver app's navigation is in `FREE_NAV` mode.
152*d5c09012SAndroid Build Coastguard Worker  NO_GUIDANCE = 1;
153*d5c09012SAndroid Build Coastguard Worker
154*d5c09012SAndroid Build Coastguard Worker  // Turn-by-turn navigation is available and the Driver app navigation has
155*d5c09012SAndroid Build Coastguard Worker  // entered `GUIDED_NAV` mode.
156*d5c09012SAndroid Build Coastguard Worker  ENROUTE_TO_DESTINATION = 2;
157*d5c09012SAndroid Build Coastguard Worker
158*d5c09012SAndroid Build Coastguard Worker  // The vehicle has gone off the suggested route.
159*d5c09012SAndroid Build Coastguard Worker  OFF_ROUTE = 3;
160*d5c09012SAndroid Build Coastguard Worker
161*d5c09012SAndroid Build Coastguard Worker  // The vehicle is within approximately 50m of the destination.
162*d5c09012SAndroid Build Coastguard Worker  ARRIVED_AT_DESTINATION = 4;
163*d5c09012SAndroid Build Coastguard Worker}
164*d5c09012SAndroid Build Coastguard Worker
165*d5c09012SAndroid Build Coastguard Worker// Describes a vehicle attribute as a key-value pair. The "key:value" string
166*d5c09012SAndroid Build Coastguard Worker// length cannot exceed 256 characters.
167*d5c09012SAndroid Build Coastguard Workermessage VehicleAttribute {
168*d5c09012SAndroid Build Coastguard Worker  // The attribute's key. Keys may not contain the colon character (:).
169*d5c09012SAndroid Build Coastguard Worker  string key = 1;
170*d5c09012SAndroid Build Coastguard Worker
171*d5c09012SAndroid Build Coastguard Worker  // The attribute's value.
172*d5c09012SAndroid Build Coastguard Worker  string value = 2;
173*d5c09012SAndroid Build Coastguard Worker
174*d5c09012SAndroid Build Coastguard Worker  // The attribute's value, can be in string, bool, or double type.
175*d5c09012SAndroid Build Coastguard Worker  oneof vehicle_attribute_value {
176*d5c09012SAndroid Build Coastguard Worker    // String typed attribute value.
177*d5c09012SAndroid Build Coastguard Worker    //
178*d5c09012SAndroid Build Coastguard Worker    // Note: This is identical to the `value` field which will eventually be
179*d5c09012SAndroid Build Coastguard Worker    // deprecated. For create or update methods, either field can be used, but
180*d5c09012SAndroid Build Coastguard Worker    // it's strongly recommended to use `string_value`. If both `string_value`
181*d5c09012SAndroid Build Coastguard Worker    // and `value` are set, they must be identical or an error will be thrown.
182*d5c09012SAndroid Build Coastguard Worker    // Both fields are populated in responses.
183*d5c09012SAndroid Build Coastguard Worker    string string_value = 3;
184*d5c09012SAndroid Build Coastguard Worker
185*d5c09012SAndroid Build Coastguard Worker    // Boolean typed attribute value.
186*d5c09012SAndroid Build Coastguard Worker    bool bool_value = 4;
187*d5c09012SAndroid Build Coastguard Worker
188*d5c09012SAndroid Build Coastguard Worker    // Double typed attribute value.
189*d5c09012SAndroid Build Coastguard Worker    double number_value = 5;
190*d5c09012SAndroid Build Coastguard Worker  }
191*d5c09012SAndroid Build Coastguard Worker}
192*d5c09012SAndroid Build Coastguard Worker
193*d5c09012SAndroid Build Coastguard Worker// The location, speed, and heading of a vehicle at a point in time.
194*d5c09012SAndroid Build Coastguard Workermessage VehicleLocation {
195*d5c09012SAndroid Build Coastguard Worker  // The location of the vehicle.
196*d5c09012SAndroid Build Coastguard Worker  // When it is sent to Fleet Engine, the vehicle's location is a GPS location.
197*d5c09012SAndroid Build Coastguard Worker  // When you receive it in a response, the vehicle's location can be either a
198*d5c09012SAndroid Build Coastguard Worker  // GPS location, a supplemental location, or some other estimated location.
199*d5c09012SAndroid Build Coastguard Worker  // The source is specified in `location_sensor`.
200*d5c09012SAndroid Build Coastguard Worker  google.type.LatLng location = 1;
201*d5c09012SAndroid Build Coastguard Worker
202*d5c09012SAndroid Build Coastguard Worker  // Deprecated: Use `latlng_accuracy` instead.
203*d5c09012SAndroid Build Coastguard Worker  google.protobuf.DoubleValue horizontal_accuracy = 8 [deprecated = true];
204*d5c09012SAndroid Build Coastguard Worker
205*d5c09012SAndroid Build Coastguard Worker  // Accuracy of `location` in meters as a radius.
206*d5c09012SAndroid Build Coastguard Worker  google.protobuf.DoubleValue latlng_accuracy = 22;
207*d5c09012SAndroid Build Coastguard Worker
208*d5c09012SAndroid Build Coastguard Worker  // Direction the vehicle is moving in degrees.  0 represents North.
209*d5c09012SAndroid Build Coastguard Worker  // The valid range is [0,360).
210*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Int32Value heading = 2;
211*d5c09012SAndroid Build Coastguard Worker
212*d5c09012SAndroid Build Coastguard Worker  // Deprecated: Use `heading_accuracy` instead.
213*d5c09012SAndroid Build Coastguard Worker  google.protobuf.DoubleValue bearing_accuracy = 10 [deprecated = true];
214*d5c09012SAndroid Build Coastguard Worker
215*d5c09012SAndroid Build Coastguard Worker  // Accuracy of `heading` in degrees.
216*d5c09012SAndroid Build Coastguard Worker  google.protobuf.DoubleValue heading_accuracy = 23;
217*d5c09012SAndroid Build Coastguard Worker
218*d5c09012SAndroid Build Coastguard Worker  // Altitude in meters above WGS84.
219*d5c09012SAndroid Build Coastguard Worker  google.protobuf.DoubleValue altitude = 5;
220*d5c09012SAndroid Build Coastguard Worker
221*d5c09012SAndroid Build Coastguard Worker  // Deprecated: Use `altitude_accuracy` instead.
222*d5c09012SAndroid Build Coastguard Worker  google.protobuf.DoubleValue vertical_accuracy = 9 [deprecated = true];
223*d5c09012SAndroid Build Coastguard Worker
224*d5c09012SAndroid Build Coastguard Worker  // Accuracy of `altitude` in meters.
225*d5c09012SAndroid Build Coastguard Worker  google.protobuf.DoubleValue altitude_accuracy = 24;
226*d5c09012SAndroid Build Coastguard Worker
227*d5c09012SAndroid Build Coastguard Worker  // Speed of the vehicle in kilometers per hour.
228*d5c09012SAndroid Build Coastguard Worker  // Deprecated: Use `speed` instead.
229*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Int32Value speed_kmph = 3 [deprecated = true];
230*d5c09012SAndroid Build Coastguard Worker
231*d5c09012SAndroid Build Coastguard Worker  // Speed of the vehicle in meters/second
232*d5c09012SAndroid Build Coastguard Worker  google.protobuf.DoubleValue speed = 6;
233*d5c09012SAndroid Build Coastguard Worker
234*d5c09012SAndroid Build Coastguard Worker  // Accuracy of `speed` in meters/second.
235*d5c09012SAndroid Build Coastguard Worker  google.protobuf.DoubleValue speed_accuracy = 7;
236*d5c09012SAndroid Build Coastguard Worker
237*d5c09012SAndroid Build Coastguard Worker  // The time when `location` was reported by the sensor according to the
238*d5c09012SAndroid Build Coastguard Worker  // sensor's clock.
239*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp update_time = 4;
240*d5c09012SAndroid Build Coastguard Worker
241*d5c09012SAndroid Build Coastguard Worker  // Output only. The time when the server received the location information.
242*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp server_time = 13
243*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = OUTPUT_ONLY];
244*d5c09012SAndroid Build Coastguard Worker
245*d5c09012SAndroid Build Coastguard Worker  // Provider of location data (for example, `GPS`).
246*d5c09012SAndroid Build Coastguard Worker  LocationSensor location_sensor = 11;
247*d5c09012SAndroid Build Coastguard Worker
248*d5c09012SAndroid Build Coastguard Worker  // Whether `location` is snapped to a road.
249*d5c09012SAndroid Build Coastguard Worker  google.protobuf.BoolValue is_road_snapped = 27;
250*d5c09012SAndroid Build Coastguard Worker
251*d5c09012SAndroid Build Coastguard Worker  // Input only. Indicates whether the GPS sensor is enabled on the mobile
252*d5c09012SAndroid Build Coastguard Worker  // device.
253*d5c09012SAndroid Build Coastguard Worker  google.protobuf.BoolValue is_gps_sensor_enabled = 12
254*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = INPUT_ONLY];
255*d5c09012SAndroid Build Coastguard Worker
256*d5c09012SAndroid Build Coastguard Worker  // Input only. Time (in seconds) since this location was first sent to the
257*d5c09012SAndroid Build Coastguard Worker  // server. This will be zero for the first update. If the time is unknown (for
258*d5c09012SAndroid Build Coastguard Worker  // example, when the app restarts), this value resets to zero.
259*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Int32Value time_since_update = 14
260*d5c09012SAndroid Build Coastguard Worker      [(google.api.field_behavior) = INPUT_ONLY];
261*d5c09012SAndroid Build Coastguard Worker
262*d5c09012SAndroid Build Coastguard Worker  // Input only. Deprecated: Other signals are now used to determine if a
263*d5c09012SAndroid Build Coastguard Worker  // location is stale.
264*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Int32Value num_stale_updates = 15
265*d5c09012SAndroid Build Coastguard Worker      [deprecated = true, (google.api.field_behavior) = INPUT_ONLY];
266*d5c09012SAndroid Build Coastguard Worker
267*d5c09012SAndroid Build Coastguard Worker  // Raw vehicle location (unprocessed by road-snapper).
268*d5c09012SAndroid Build Coastguard Worker  google.type.LatLng raw_location = 16;
269*d5c09012SAndroid Build Coastguard Worker
270*d5c09012SAndroid Build Coastguard Worker  // Timestamp associated with the raw location.
271*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp raw_location_time = 17;
272*d5c09012SAndroid Build Coastguard Worker
273*d5c09012SAndroid Build Coastguard Worker  // Source of the raw location. Defaults to `GPS`.
274*d5c09012SAndroid Build Coastguard Worker  LocationSensor raw_location_sensor = 28;
275*d5c09012SAndroid Build Coastguard Worker
276*d5c09012SAndroid Build Coastguard Worker  // Accuracy of `raw_location` as a radius, in meters.
277*d5c09012SAndroid Build Coastguard Worker  google.protobuf.DoubleValue raw_location_accuracy = 25;
278*d5c09012SAndroid Build Coastguard Worker
279*d5c09012SAndroid Build Coastguard Worker  // Supplemental location provided by the integrating app.
280*d5c09012SAndroid Build Coastguard Worker  google.type.LatLng supplemental_location = 18;
281*d5c09012SAndroid Build Coastguard Worker
282*d5c09012SAndroid Build Coastguard Worker  // Timestamp associated with the supplemental location.
283*d5c09012SAndroid Build Coastguard Worker  google.protobuf.Timestamp supplemental_location_time = 19;
284*d5c09012SAndroid Build Coastguard Worker
285*d5c09012SAndroid Build Coastguard Worker  // Source of the supplemental location. Defaults to
286*d5c09012SAndroid Build Coastguard Worker  // `CUSTOMER_SUPPLIED_LOCATION`.
287*d5c09012SAndroid Build Coastguard Worker  LocationSensor supplemental_location_sensor = 20;
288*d5c09012SAndroid Build Coastguard Worker
289*d5c09012SAndroid Build Coastguard Worker  // Accuracy of `supplemental_location` as a radius, in meters.
290*d5c09012SAndroid Build Coastguard Worker  google.protobuf.DoubleValue supplemental_location_accuracy = 21;
291*d5c09012SAndroid Build Coastguard Worker
292*d5c09012SAndroid Build Coastguard Worker  // Deprecated: Use `is_road_snapped` instead.
293*d5c09012SAndroid Build Coastguard Worker  bool road_snapped = 26 [deprecated = true];
294*d5c09012SAndroid Build Coastguard Worker}
295*d5c09012SAndroid Build Coastguard Worker
296*d5c09012SAndroid Build Coastguard Worker// The sensor or methodology used to determine the location.
297*d5c09012SAndroid Build Coastguard Workerenum LocationSensor {
298*d5c09012SAndroid Build Coastguard Worker  // The sensor is unspecified or unknown.
299*d5c09012SAndroid Build Coastguard Worker  UNKNOWN_SENSOR = 0;
300*d5c09012SAndroid Build Coastguard Worker
301*d5c09012SAndroid Build Coastguard Worker  // GPS or Assisted GPS.
302*d5c09012SAndroid Build Coastguard Worker  GPS = 1;
303*d5c09012SAndroid Build Coastguard Worker
304*d5c09012SAndroid Build Coastguard Worker  // Assisted GPS, cell tower ID, or WiFi access point.
305*d5c09012SAndroid Build Coastguard Worker  NETWORK = 2;
306*d5c09012SAndroid Build Coastguard Worker
307*d5c09012SAndroid Build Coastguard Worker  // Cell tower ID or WiFi access point.
308*d5c09012SAndroid Build Coastguard Worker  PASSIVE = 3;
309*d5c09012SAndroid Build Coastguard Worker
310*d5c09012SAndroid Build Coastguard Worker  // A location determined by the mobile device to be the most likely
311*d5c09012SAndroid Build Coastguard Worker  // road position.
312*d5c09012SAndroid Build Coastguard Worker  ROAD_SNAPPED_LOCATION_PROVIDER = 4;
313*d5c09012SAndroid Build Coastguard Worker
314*d5c09012SAndroid Build Coastguard Worker  // A customer-supplied location from an independent source.  Typically, this
315*d5c09012SAndroid Build Coastguard Worker  // value is used for a location provided from sources other than the mobile
316*d5c09012SAndroid Build Coastguard Worker  // device running Driver SDK.  If the original source is described by one of
317*d5c09012SAndroid Build Coastguard Worker  // the other enum values, use that value. Locations marked
318*d5c09012SAndroid Build Coastguard Worker  // CUSTOMER_SUPPLIED_LOCATION are typically provided via a Vehicle's
319*d5c09012SAndroid Build Coastguard Worker  // `last_location.supplemental_location_sensor`.
320*d5c09012SAndroid Build Coastguard Worker  CUSTOMER_SUPPLIED_LOCATION = 5;
321*d5c09012SAndroid Build Coastguard Worker
322*d5c09012SAndroid Build Coastguard Worker  // A location calculated by Fleet Engine based on the signals available to it.
323*d5c09012SAndroid Build Coastguard Worker  // Output only. This value will be rejected if it is received in a request.
324*d5c09012SAndroid Build Coastguard Worker  FLEET_ENGINE_LOCATION = 6;
325*d5c09012SAndroid Build Coastguard Worker
326*d5c09012SAndroid Build Coastguard Worker  // Android's Fused Location Provider.
327*d5c09012SAndroid Build Coastguard Worker  FUSED_LOCATION_PROVIDER = 100;
328*d5c09012SAndroid Build Coastguard Worker
329*d5c09012SAndroid Build Coastguard Worker  // The location provider on Apple operating systems.
330*d5c09012SAndroid Build Coastguard Worker  CORE_LOCATION = 200;
331*d5c09012SAndroid Build Coastguard Worker}
332