feat: sync with latest API updates

* Refresh documentation
* Messages related to terminal point service were removed
* The already deprecated available_capacity field was removed
* Route information added to UpdateTrip

PiperOrigin-RevId: 417686942
This commit is contained in:
Google APIs 2021-12-21 14:03:46 -08:00 committed by Copybara-Service
parent 489719aa33
commit f7cdb413e7
9 changed files with 746 additions and 495 deletions

View file

@ -1,5 +1,6 @@
# This file was automatically generated by BuildFileGenerator
# https://github.com/googleapis/rules_gapic/tree/master/bazel
# Most of the manual changes to this file will be overwritten.
# It's **only** allowed to change the following rule attribute values:
# - names of *_gapic_assembly_* rules
@ -7,6 +8,7 @@
# * extra_protoc_parameters
# * extra_protoc_file_parameters
# The complete list of preserved parameters can be found in the source code.
# This is an API workspace, having public visibility by default makes perfect sense.
package(default_visibility = ["//visibility:public"])
@ -21,6 +23,7 @@ proto_library(
srcs = [
"fleetengine.proto",
"header.proto",
"traffic.proto",
"trip_api.proto",
"trips.proto",
"vehicle_api.proto",
@ -32,7 +35,6 @@ proto_library(
"//google/api:field_behavior_proto",
"//google/api:resource_proto",
"//google/type:latlng_proto",
"@com_google_protobuf//:any_proto",
"@com_google_protobuf//:duration_proto",
"@com_google_protobuf//:empty_proto",
"@com_google_protobuf//:field_mask_proto",
@ -75,12 +77,15 @@ java_grpc_library(
java_gapic_library(
name = "fleetengine_java_gapic",
srcs = [":fleetengine_proto_with_info"],
gapic_yaml = None,
grpc_service_config = "fleetengine_grpc_service_config.json",
service_yaml = "fleetengine.yaml",
test_deps = [
":fleetengine_java_grpc",
],
deps = [
":fleetengine_java_proto",
"//google/api:api_java_proto",
],
)
@ -134,7 +139,7 @@ go_gapic_library(
metadata = True,
service_yaml = "fleetengine.yaml",
deps = [
":fleetengine_go_proto",
":fleetengine_go_proto",
"@io_bazel_rules_go//proto/wkt:duration_go_proto",
],
)

View file

@ -17,7 +17,7 @@ syntax = "proto3";
package maps.fleetengine.v1;
import "google/api/field_behavior.proto";
import "google/protobuf/any.proto";
import "google/maps/fleetengine/v1/traffic.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
@ -55,10 +55,10 @@ message TerminalLocation {
// Deprecated.
string access_point_id = 3 [deprecated = true];
// Deprecated. Use vehicle.waypoint instead.
// Deprecated.
string trip_id = 4 [deprecated = true];
// Deprecated. Vehicle.waypoint will have this data.
// Deprecated: `Vehicle.waypoint` will have this data.
WaypointType terminal_location_type = 5 [deprecated = true];
}
@ -79,64 +79,33 @@ message TripWaypoint {
// current waypoint.
repeated google.type.LatLng path_to_waypoint = 4;
// The path calculated by the server from the previous waypoint to the current
// waypoint. Decoding is not yet supported.
string encoded_path_to_waypoint = 5;
// The traffic conditions along the path to this waypoint.
// Note that traffic is only available for Geo Enterprise Rides and Deliveries
// Solution customers.
ConsumableTrafficPolyline traffic_to_waypoint = 10;
// The path distance calculated by Fleet Engine from the previous waypoint to
// the current waypoint.
// If the current waypoint is the first waypoint in the list (Vehicle.waypoint
// or Trip.remaining_waypoints), then the starting point is the vehicle's
// location recorded at the time this TripWaypoint was added to the list.
// the current waypoint. If the waypoint is the first waypoint in the list
// (e.g., `Vehicle.waypoints[0]` or `Trip.remaining_waypoints[0]`), then the
// value of this field is undefined.
google.protobuf.Int32Value distance_meters = 6;
// The arrival time to this waypoint calculated by Fleet Engine.
google.protobuf.Timestamp eta = 7;
// The travel time from previous waypoint to this point.
// If the current waypoint is the first waypoint in the list (Vehicle.waypoint
// or Trip.remaining_waypoints), then the starting point is the vehicle's
// location recorded at the time that this waypoint was added to the list.
// This field is filled only when returning Trip/Vehicle data.
// The travel time from previous waypoint to this point. If the waypoint is
// the first waypoint in the list (e.g., `Vehicle.waypoints[0]` or
// `Trip.remaining_waypoints[0]`), then this value indicates the remaining
// time to the waypoint.
google.protobuf.Duration duration = 8;
}
// The 'Status' defines a FleetEngine custom logical error mode.
message Status {
// The canonical error code.
enum Code {
// Unspecified status, not a valid value to set.
UNSPECIFIED = 0;
// Internal server error. Usually expect the client to retry in this case.
FAILURE = 1;
// There is no possible route. Client should not retry.
ROUTE_NOT_POSSIBLE = 2;
}
// The error code. It is not possible to have a value as 0 if it is explicitly
// set by the server.
Code code = 1;
// Detailed error message.
string message = 2;
// A list of messages that carry the error details. There is a common set of
// message types for APIs to use.
repeated google.protobuf.Any details = 3;
}
// A full, human-readable address for the entity containing this message.
message FormattedAddress {
// The lines of text that describe the address.
// At least one line must be present.
repeated string lines = 1;
}
// Address of a place.
message Address {
// A full, human-readable address for this place.
FormattedAddress formatted_address = 1;
}
// Describes a vehicle attribute as a key-value pair.
// Describes a vehicle attribute as a key-value pair. The "key:value" string
// length cannot exceed 256 characters.
message VehicleAttribute {
// The attribute's key. Keys may not contain the colon character (:).
string key = 1;
@ -148,72 +117,68 @@ message VehicleAttribute {
// The location, speed, and heading of a vehicle at a point in time.
message VehicleLocation {
// The location of the vehicle.
// When it is sent to FleetEngine, the vehicle's location is a GPS location.
// When it is sent to Fleet Engine, the vehicle's location is a GPS location.
// When you receive it in a response, the vehicle's location can be either a
// GPS location or a supplemental location. The source is specified in the
// field 'location_sensor'.
// GPS location, a supplemental location, or some other estimated location.
// The source is specified in `location_sensor`.
google.type.LatLng location = 1;
// Deprecated. Use latlng_accuracy instead.
// Deprecated: Use `latlng_accuracy` instead.
google.protobuf.DoubleValue horizontal_accuracy = 8 [deprecated = true];
// Accuracy of horizontal measurements (lat/lng) in meters as a radius.
// Accuracy of `location` in meters as a radius.
google.protobuf.DoubleValue latlng_accuracy = 22;
// Direction the vehicle is moving in degrees. 0 represents North.
// The valid range is [0,360).
google.protobuf.Int32Value heading = 2;
// Deprecated. Use heading_accuracy instead.
// Deprecated: Use `heading_accuracy` instead.
google.protobuf.DoubleValue bearing_accuracy = 10 [deprecated = true];
// Accuracy of heading (bearing) in degrees.
// Accuracy of `heading` in degrees.
google.protobuf.DoubleValue heading_accuracy = 23;
// Altitude in meters above WGS84.
google.protobuf.DoubleValue altitude = 5;
// Deprecated. Use altitude_accurarcy instead.
// Deprecated: Use `altitude_accuracy` instead.
google.protobuf.DoubleValue vertical_accuracy = 9 [deprecated = true];
// Accuracy of altitude measurement in meters.
// Accuracy of `altitude` in meters.
google.protobuf.DoubleValue altitude_accuracy = 24;
// Speed of the vehicle in kilometers per hour.
// Deprecated. Use speed instead.
// Deprecated: Use `speed` instead.
google.protobuf.Int32Value speed_kmph = 3 [deprecated = true];
// Speed of the vehicle in meters/second
google.protobuf.DoubleValue speed = 6;
// Accuracy of speed in meters/second.
// Accuracy of `speed` in meters/second.
google.protobuf.DoubleValue speed_accuracy = 7;
// The time when the location was recorded.
// The time when `location` was reported by the sensor.
google.protobuf.Timestamp update_time = 4;
// Output only. The time when the server receives the location information, filled by
// FleetEngine.
// Output only. The time when the server received the location information.
google.protobuf.Timestamp server_time = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
// Provider of location data (for example, "gps").
// Provider of location data (for example, `GPS`).
LocationSensor location_sensor = 11;
// Whether the vehicle location given by "location" field is snapped to a road
// closest to the location given by "raw_location".
// Driver SDK 1.15.1/2.1.1 and up will always set this field.
// Unset value will be treated as true.
// Whether `location` is snapped to a road.
google.protobuf.BoolValue is_road_snapped = 27;
// Input only. Indicates whether the GPS sensor is enabled.
// Input only. Indicates whether the GPS sensor is enabled on the mobile device.
google.protobuf.BoolValue is_gps_sensor_enabled = 12 [(google.api.field_behavior) = INPUT_ONLY];
// Input only. Time (in seconds) since this location sample was first sent to the server.
// Input only. Time (in seconds) since this location was first sent to the server.
// This will be zero for the first update. If the time is unknown
// (for example, when the app restarts), this value resets to zero.
google.protobuf.Int32Value time_since_update = 14 [(google.api.field_behavior) = INPUT_ONLY];
// Input only. Number of additional attempts to send the current location to the server.
// Input only. Number of additional attempts to send this location to the server.
// If this value is zero, then it is not stale.
google.protobuf.Int32Value num_stale_updates = 15 [(google.api.field_behavior) = INPUT_ONLY];
@ -226,7 +191,7 @@ message VehicleLocation {
// Input only. Source of the raw location.
LocationSensor raw_location_sensor = 28 [(google.api.field_behavior) = INPUT_ONLY];
// Input only. Accuracy of the raw location (lat/lng) as a radius, measured in meters.
// Input only. Accuracy of `raw_location` as a radius, in meters.
google.protobuf.DoubleValue raw_location_accuracy = 25 [(google.api.field_behavior) = INPUT_ONLY];
// Input only. Supplemental location provided by the integrating app, such as the location
@ -239,11 +204,10 @@ message VehicleLocation {
// Input only. Source of the supplemental location.
LocationSensor supplemental_location_sensor = 20 [(google.api.field_behavior) = INPUT_ONLY];
// Input only. Accuracy of supplemental location (lat/lng) as a radius, measured in
// meters.
// Input only. Accuracy of `supplemental_location` as a radius, in meters.
google.protobuf.DoubleValue supplemental_location_accuracy = 21 [(google.api.field_behavior) = INPUT_ONLY];
// Deprecated, use is_road_snapped instead.
// Deprecated: Use `is_road_snapped` instead.
bool road_snapped = 26 [deprecated = true];
}
@ -261,13 +225,13 @@ enum TripType {
// The type of waypoint.
enum WaypointType {
// Default, unknown waypoint type
// Unknown or unspecified waypoint type.
UNKNOWN_WAYPOINT_TYPE = 0;
// Waypoints for picking up customers or merchandise.
// Waypoints for picking up riders or items.
PICKUP_WAYPOINT_TYPE = 1;
// Waypoints for dropping off customers or merchandise.
// Waypoints for dropping off riders or items.
DROP_OFF_WAYPOINT_TYPE = 2;
// Waypoints for intermediate destinations in a multi-destination trip.
@ -276,10 +240,10 @@ enum WaypointType {
// The type of polyline format.
enum PolylineFormatType {
// Unspecified format type.
// The format is unspecified or unknown.
UNKNOWN_FORMAT_TYPE = 0;
// Repeated LatLng.
// A list of `google.type.LatLng`.
LAT_LNG_LIST_TYPE = 1;
// A polyline encoded with a polyline compression algorithm. Decoding is not
@ -287,43 +251,42 @@ enum PolylineFormatType {
ENCODED_POLYLINE_TYPE = 2;
}
// A set of values that specify the vehicle's navigation status.
// The vehicle's navigation status.
enum NavigationStatus {
// Unspecified navigation status.
UNKNOWN_NAVIGATION_STATUS = 0;
// The Driver app's navigation is in FREE_NAV mode.
// The Driver app's navigation is in `FREE_NAV` mode.
NO_GUIDANCE = 1;
// Turn-by-turn navigation starts and the Driver app navigation enters
// GUIDED_NAV mode showing the green header, route, and destination marker.
// Turn-by-turn navigation is available and the Driver app navigation has
// entered `GUIDED_NAV` mode.
ENROUTE_TO_DESTINATION = 2;
// Vehicle has gone off the suggested route.
// The vehicle has gone off the suggested route.
OFF_ROUTE = 3;
// The vehicle is within 50m of the destination and onArrival was
// automatically triggered.
// The vehicle is within approximately 50m of the destination.
ARRIVED_AT_DESTINATION = 4;
}
// Possible location providers.
// The sensor or methodology used to determine the location.
enum LocationSensor {
// Undefined sensor.
// The sensor is unspecified or unknown.
UNKNOWN_SENSOR = 0;
// Sensors: (GPS, AGPS).
// GPS or Assisted GPS.
GPS = 1;
// Sensors: (AGPS, CellID, WiFi MACID).
// Assisted GPS, cell tower ID, or WiFi access point.
NETWORK = 2;
// Sensors: (CellID, WiFi MACID).
// Cell tower ID or WiFi access point.
PASSIVE = 3;
// GMM's road snapped (gmfc) location.
// A location signal snapped to the best road position.
ROAD_SNAPPED_LOCATION_PROVIDER = 4;
// Unspecified, but generated by the Fused Location Provider.
// The fused location provider in Google Play services.
FUSED_LOCATION_PROVIDER = 100;
}

View file

@ -8,7 +8,9 @@ apis:
- name: maps.fleetengine.v1.VehicleService
documentation:
summary: Services for ridesharing providers.
summary: |-
Enables Fleet Engine for access to the On Demand Rides and Deliveries and
Last Mile Fleet Solution APIs.
backend:
rules:
@ -16,3 +18,5 @@ backend:
deadline: 10.0
- selector: 'maps.fleetengine.v1.VehicleService.*'
deadline: 10.0
- selector: maps.fleetengine.v1.VehicleService.UpdateVehicleLocation
deadline: 3.0

View file

@ -26,21 +26,78 @@ option objc_class_prefix = "CFE";
// A RequestHeader contains fields common to all Fleet Engine RPC requests.
message RequestHeader {
// The language requested. The external form of Google International
// Identifiers Initiative (III) LanguageCode objects. If none is specified,
// return a name in any language, with a preference for English if such a
// name exists.
// Possible types of SDK.
enum SdkType {
// The default value. This value is used if the `sdk_type` is omitted.
SDK_TYPE_UNSPECIFIED = 0;
// The calling SDK is Consumer.
CONSUMER = 1;
// The calling SDK is Driver.
DRIVER = 2;
// The calling SDK is JavaScript.
JAVASCRIPT = 3;
}
// The platform of the calling SDK.
enum Platform {
// The default value. This value is used if the platform is omitted.
PLATFORM_UNSPECIFIED = 0;
// The request is coming from Android.
ANDROID = 1;
// The request is coming from iOS.
IOS = 2;
// The request is coming from the web.
WEB = 3;
}
// The BCP-47 language code, such as en-US or sr-Latn. For more information,
// see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. If none
// is specified, the response may be in any language, with a preference for
// English if such a name exists. Field value example: `en-US`.
string language_code = 1;
// Required. CLDR region code of the region where the request originates.
// Field value example: `US`.
string region_code = 2 [(google.api.field_behavior) = REQUIRED];
// Version of the calling SDK, if applicable.
// The version format is "major.minor.patch", example: `1.1.2`.
string sdk_version = 3;
// Version of the operating system on which the calling SDK is running.
// Field value examples: `4.4.1`, `12.1`.
string os_version = 4;
// Model of the device on which the calling SDK is running.
// Field value examples: `iPhone12,1`, `SM-G920F`.
string device_model = 5;
// The type of SDK sending the request.
SdkType sdk_type = 6;
// Version of the MapSDK which the calling SDK depends on, if applicable.
// The version format is "major.minor.patch", example: `5.2.1`.
string maps_sdk_version = 7;
// Version of the NavSDK which the calling SDK depends on, if applicable.
// The version format is "major.minor.patch", example: `2.1.0`.
string nav_sdk_version = 8;
// Platform of the calling SDK.
Platform platform = 9;
// Manufacturer of the Android device from the calling SDK, only applicable
// for the Android SDKs.
// Field value example: `Samsung`.
string manufacturer = 10;
// Android API level of the calling SDK, only applicable for the Android SDKs.
// Field value example: `23`.
int32 android_api_level = 11;
}

View file

@ -0,0 +1,67 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package maps.fleetengine.v1;
option go_package = "google.golang.org/genproto/googleapis/maps/fleetengine/v1;fleetengine";
option java_multiple_files = true;
option java_outer_classname = "TrafficProto";
option java_package = "google.maps.fleetengine.v1";
option objc_class_prefix = "CFE";
// Traffic density indicator on a contiguous segment of a path. Given a path
// with points P_0, P_1, ... , P_N (zero-based index), the SpeedReadingInterval
// defines an interval and describes its traffic using the following categories.
message SpeedReadingInterval {
// The classification of polyline speed based on traffic data.
enum Speed {
// Default value. This value is unused.
SPEED_UNSPECIFIED = 0;
// Normal speed, no slowdown is detected.
NORMAL = 1;
// Slowdown detected, but no traffic jam formed.
SLOW = 2;
// Traffic jam detected.
TRAFFIC_JAM = 3;
}
// The starting index of this interval in the path.
// In JSON, when the index is 0, the field will appear to be unpopulated.
int32 start_polyline_point_index = 1;
// The ending index of this interval in the path.
// In JSON, when the index is 0, the field will appear to be unpopulated.
int32 end_polyline_point_index = 2;
// Traffic speed in this interval.
Speed speed = 3;
}
// Traffic density along a Vehicle's path.
message ConsumableTrafficPolyline {
// Traffic speed along the path from the previous waypoint to the current
// waypoint.
repeated SpeedReadingInterval speed_reading_interval = 1;
// The path the driver is taking from the previous waypoint to the current
// waypoint. This path has landmarks in it so clients can show traffic markers
// along the path (see `speed_reading_interval`). Decoding is not yet
// supported.
string encoded_path_to_waypoint = 2;
}

View file

@ -83,8 +83,8 @@ message CreateTripRequest {
// The standard Fleet Engine request header.
RequestHeader header = 1;
// Required. Must be in the format "providers/{provider}".
// The provider must be the Project ID (for example, sample-cloud-project)
// Required. Must be in the format `providers/{provider}`.
// The provider must be the Project ID (for example, `sample-cloud-project`)
// of the Google Cloud Project of which the service account making
// this call is a member.
string parent = 3 [
@ -94,28 +94,34 @@ message CreateTripRequest {
}
];
// Required. Unique Trip ID; must be unique per provider. The actual
// format and value is opaque to the Fleet Engine and is determined
// by the provider.
// Required. Unique Trip ID; must be unique per provider.
// Subject to the following normalization and restrictions:
//
// 1. IDs must be valid Unicode strings.
// 2. IDs are limited to a maximum length of 64 characters.
// 3. IDs will be normalized according to Unicode Normalization Form C
// (http://www.unicode.org/reports/tr15/).
// 4. IDs may not contain any of the following ASCII characters: '/', ':',
// '\\', '?', or '#'.
string trip_id = 5 [(google.api.field_behavior) = REQUIRED];
// Required. Trip entity to create.
//
// When creating a Trip, the following fields are required:
//
// * trip_type
// * pickup_point
// * `trip_type`
// * `pickup_point`
//
// The following fields are used if you provide them:
//
// * number_of_passengers
// * vehicle_id
// * dropoff_point
// * intermediate_destinations
// * `number_of_passengers`
// * `vehicle_id`
// * `dropoff_point`
// * `intermediate_destinations`
//
// Only EXCLUSIVE trips support multiple destinations.
// Only `EXCLUSIVE` trips support multiple destinations.
//
// When vehicle_id is set for a shared trip, you must supply
// When `vehicle_id` is set for a shared trip, you must supply
// the list of `Trip.vehicle_waypoints` to specify the order of the remaining
// waypoints for the vehicle, otherwise the waypoint order will be
// undetermined.
@ -128,7 +134,7 @@ message CreateTripRequest {
// waypoints must not interleave with any other trips.
//
// The `trip_id`, `waypoint_type` and `location` fields are used, and all
// other TripWaypoint fields in vehicle_waypoints are ignored.
// other TripWaypoint fields in `vehicle_waypoints` are ignored.
//
// All other Trip fields are ignored.
Trip trip = 4 [(google.api.field_behavior) = REQUIRED];
@ -139,8 +145,8 @@ message GetTripRequest {
// The standard Fleet Engine request header.
RequestHeader header = 1;
// Required. Must be in the format "providers/{provider}/trips/{trip}".
// The provider must be the Project ID (for example, sample-cloud-project)
// Required. Must be in the format `providers/{provider}/trips/{trip}`.
// The provider must be the Project ID (for example, `sample-cloud-project`)
// of the Google Cloud Project of which the service account making
// this call is a member.
string name = 3 [
@ -153,22 +159,38 @@ message GetTripRequest {
// The subset of Trip fields that should be returned and their interpretation.
TripView view = 11;
// Indicates the minimum timestamp (exclusive) for which Trip.route or
// Trip.current_route_segment data is retrieved. If route data is unchanged
// since this timestamp, the route field is not set in the response. If a
// minimum is unspecified, the route data is always retrieved.
// Indicates the minimum timestamp (exclusive) for which `Trip.route` or
// `Trip.current_route_segment` data are retrieved. If route data are
// unchanged since this timestamp, the route field is not set in the response.
// If a minimum is unspecified, the route data are always retrieved.
google.protobuf.Timestamp current_route_segment_version = 6;
// Indicates the minimum timestamp (exclusive) for which
// Trip.remaining_waypoints are retrieved. If they are unchanged since this
// timestamp, the remaining_waypoints are not set in the response. If this
// field is unspecified, remaining_waypoints is always retrieved.
// `Trip.remaining_waypoints` are retrieved. If they are unchanged since this
// timestamp, the `remaining_waypoints` are not set in the response. If this
// field is unspecified, `remaining_waypoints` is always retrieved.
google.protobuf.Timestamp remaining_waypoints_version = 7;
// The returned current route format, LAT_LNG_LIST_TYPE (in Trip.route), or
// ENCODED_POLYLINE_TYPE (in Trip.current_route_segment).
// The default is LAT_LNG_LIST_TYPE.
// The returned current route format, `LAT_LNG_LIST_TYPE` (in `Trip.route`),
// or `ENCODED_POLYLINE_TYPE` (in `Trip.current_route_segment`). The default
// is `LAT_LNG_LIST_TYPE`.
PolylineFormatType route_format_type = 8;
// Indicates the minimum timestamp (exclusive) for which
// `Trip.current_route_segment_traffic` is retrieved. If traffic data are
// unchanged since this timestamp, the `current_route_segment_traffic` field
// is not set in the response. If a minimum is unspecified, the traffic data
// are always retrieved. Note that traffic is only available for On-Demand
// Rides and Deliveries Solution customers.
google.protobuf.Timestamp current_route_segment_traffic_version = 9;
// Indicates the minimum timestamp (exclusive) for which
// `Trip.remaining_waypoints.traffic_to_waypoint` and
// `Trip.remaining_waypoints.path_to_waypoint` data are retrieved. If data are
// unchanged since this timestamp, the fields above are
// not set in the response. If `remaining_waypoints_route_version` is
// unspecified, traffic and path are always retrieved.
google.protobuf.Timestamp remaining_waypoints_route_version = 10;
}
// ReportBillableTrip request message.
@ -176,7 +198,7 @@ message ReportBillableTripRequest {
// Selector for different solution types of a reported trip.
enum SolutionType {
// The default value. For backwards-compatibility, the API will use
// ON_DEMAND_RIDESHARING_AND_DELIVERIES by default which is the first
// `ON_DEMAND_RIDESHARING_AND_DELIVERIES` by default which is the first
// supported solution type.
SOLUTION_TYPE_UNSPECIFIED = 0;
@ -185,9 +207,9 @@ message ReportBillableTripRequest {
}
// Required. Must be in the format
// "providers/{provider}/billableTrips/{billable_trip}". The
// provider must be the Project ID (for example, sample-cloud-project) of the
// Google Cloud Project of which the service account making this call is a
// `providers/{provider}/billableTrips/{billable_trip}`. The
// provider must be the Project ID (for example, `sample-cloud-project`) of
// the Google Cloud Project of which the service account making this call is a
// member.
string name = 2 [(google.api.field_behavior) = REQUIRED];
@ -200,12 +222,12 @@ message ReportBillableTripRequest {
// The identifiers that are directly related to the trip being reported. These
// are usually IDs (for example, session IDs) of pre-booking operations done
// before the trip ID is available. The number of related_ids is
// before the trip ID is available. The number of `related_ids` is
// limited to 50.
repeated string related_ids = 6;
// The type of GMP product solution (for example,
// ON_DEMAND_RIDESHARING_AND_DELIVERIES) used for the reported trip.
// `ON_DEMAND_RIDESHARING_AND_DELIVERIES`) used for the reported trip.
SolutionType solution_type = 7;
}
@ -216,7 +238,7 @@ message UpdateTripRequest {
// Required. Must be in the format
// `providers/{provider}/trips/{trip}`. The provider must
// be the Project ID (for example, sample-consumer-project) of the Google
// be the Project ID (for example, `sample-consumer-project`) of the Google
// Cloud Project of which the service account making this call is a member.
string name = 3 [(google.api.field_behavior) = REQUIRED];
@ -225,17 +247,23 @@ message UpdateTripRequest {
// The following fields are maintained by the Fleet Engine. Do not update
// them using Trip.update.
//
// * current_route_segment
// * current_route_segment_version
// * eta_to_next_waypoint
// * intermediate_destinations_version
// * last_location
// * name
// * number_of_passengers
// * remaining_distance_meters
// * remaining_time_to_first_waypoint
// * remaining_waypoints
// * remaining_waypoints_version
// * `current_route_segment`
// * `current_route_segment_end_point`
// * `current_route_segment_traffic`
// * `current_route_segment_traffic_version`
// * `current_route_segment_version`
// * `dropoff_time`
// * `eta_to_next_waypoint`
// * `intermediate_destinations_version`
// * `last_location`
// * `name`
// * `number_of_passengers`
// * `pickup_time`
// * `remaining_distance_meters`
// * `remaining_time_to_first_waypoint`
// * `remaining_waypoints`
// * `remaining_waypoints_version`
// * `route`
//
// When you update the `Trip.vehicle_id` for a shared trip, you must supply
// the list of `Trip.vehicle_waypoints` to specify the order of the remaining
@ -248,7 +276,7 @@ message UpdateTripRequest {
// destinations come before the drop-off point. An `EXCLUSIVE` trip's
// waypoints must not interleave with any other trips.
// The `trip_id`, `waypoint_type` and `location` fields are used, and all
// other TripWaypoint fields in vehicle_waypoints are ignored.
// other TripWaypoint fields in `vehicle_waypoints` are ignored.
//
// To avoid a race condition for trips with multiple destinations, you
// should provide `Trip.intermediate_destinations_version` when updating
@ -258,7 +286,7 @@ message UpdateTripRequest {
Trip trip = 4 [(google.api.field_behavior) = REQUIRED];
// Required. The field mask indicating which fields in Trip to update.
// The update_mask must contain at least one field.
// The `update_mask` must contain at least one field.
google.protobuf.FieldMask update_mask = 5 [(google.api.field_behavior) = REQUIRED];
}
@ -267,8 +295,8 @@ message SearchTripsRequest {
// The standard Fleet Engine request header.
RequestHeader header = 1;
// Required. Must be in the format "providers/*"
// The provider must be the Project ID (for example, sample-cloud-project)
// Required. Must be in the format `providers/{provider}`.
// The provider must be the Project ID (for example, `sample-cloud-project`)
// of the Google Cloud Project of which the service account making
// this call is a member.
string parent = 3 [(google.api.field_behavior) = REQUIRED];
@ -276,10 +304,10 @@ message SearchTripsRequest {
// The vehicle associated with the trips in the request. If unspecified, the
// returned trips do not contain:
//
// * current_route_segment
// * remaining_waypoints
// * remaining_distance_meters
// * eta_to_first_waypoint
// * `current_route_segment`
// * `remaining_waypoints`
// * `remaining_distance_meters`
// * `eta_to_first_waypoint`
string vehicle_id = 4;
// If set to true, only Trips that influence the drivers route
@ -295,7 +323,7 @@ message SearchTripsRequest {
string page_token = 7;
// If specified, returns the trips that have not been updated after
// the time (current - minimum_staleness).
// the time `(current - minimum_staleness)`.
google.protobuf.Duration minimum_staleness = 8;
}

View file

@ -19,6 +19,7 @@ package maps.fleetengine.v1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/maps/fleetengine/v1/fleetengine.proto";
import "google/maps/fleetengine/v1/traffic.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
@ -37,8 +38,8 @@ message Trip {
pattern: "providers/{provider}/trips/{trip}"
};
// In the format "providers/{provider}/trips/{trip}"
string name = 1;
// Output only. In the format "providers/{provider}/trips/{trip}"
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// ID of the vehicle making this trip.
string vehicle_id = 2;
@ -63,9 +64,9 @@ message Trip {
// information at the pickup point.
StopLocation actual_pickup_arrival_point = 32 [(google.api.field_behavior) = INPUT_ONLY];
// Either the estimated future time when the rider(s) will be picked up, or
// Output only. Either the estimated future time when the rider(s) will be picked up, or
// the actual time when they were picked up.
google.protobuf.Timestamp pickup_time = 6;
google.protobuf.Timestamp pickup_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
// Intermediate stops in order that the trip requests (in addition
// to pickup and dropoff). Initially this will not be supported for shared
@ -107,9 +108,9 @@ message Trip {
// information.
StopLocation actual_dropoff_point = 23 [(google.api.field_behavior) = INPUT_ONLY];
// Either the estimated future time when the rider(s) will be dropped off at
// Output only. Either the estimated future time when the rider(s) will be dropped off at
// the final destination, or the actual time when they were dropped off.
google.protobuf.Timestamp dropoff_time = 8;
google.protobuf.Timestamp dropoff_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The full path from the current location to the dropoff point, inclusive.
// If this is a shared ride, this path could include waypoints from other
@ -124,20 +125,41 @@ message Trip {
// UpdateTrip and CreateTrip calls, and NOT on GetTrip calls.
repeated TripWaypoint vehicle_waypoints = 20;
// Anticipated route for this trip to the first entry in remaining_waypoints.
// If back_to_back or shared trips are enabled, the waypoint may belong to a
// Output only. Anticipated route for this trip to the first entry in remaining_waypoints.
// If back_to_back or shared trips are enabled, the waypoints may belong to a
// different trip.
repeated google.type.LatLng route = 9;
repeated google.type.LatLng route = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
// The waypoint where current_route_segment ends. This can be supplied by
// Output only. An encoded path to the next waypoint. This field facilitates journey
// sharing between a Driver app and a Rider app. Your driver app is
// responsible for setting this field on all of its current trips by passing
// Vehicle.current_route_segment to UpdateVehicle. Note: This field is
// intended only for use by the Driver SDK and Consumer SDK.
string current_route_segment = 21 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Indicates the last time the route was modified. Note: This field is
// intended only for use by the Driver SDK and Consumer SDK.
google.protobuf.Timestamp current_route_segment_version = 17 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. When available, the traffic conditions along the
// current_route_segment. Note: This field is intended only
// for use by the Driver SDK and Consumer SDK.
ConsumableTrafficPolyline current_route_segment_traffic = 28 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Indicates the last time the current_route_segment_traffic was modified.
// Note: This field is intended only for use by the Driver SDK and Consumer
// SDK.
google.protobuf.Timestamp current_route_segment_traffic_version = 30 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The waypoint where current_route_segment ends. This can be supplied by
// drivers on UpdateVehicle calls either as a full trip waypoint, a waypoint
// latlng, or as a the last latlng of the current_route_segment. FleetEngine
// latlng, or as a the last latlng of the current_route_segment. Fleet Engine
// will then do its best to interpolate to an actual waypoint if it is not
// fully specified. It will be returned in GetTrip calls. It is not respected
// in Create/Update Trip calls.
TripWaypoint current_route_segment_end_point = 24;
TripWaypoint current_route_segment_end_point = 24 [(google.api.field_behavior) = OUTPUT_ONLY];
// The remaining driving distance in Trip.current_route_segment field.
// Output only. The remaining driving distance in Trip.current_route_segment field.
// This field facilitates journey sharing between a driver and rider and
// Fleet Engine does not update it. Your driver app is responsible for setting
// field on all of its current trips by passing
@ -145,7 +167,7 @@ message Trip {
// The value is unspecified if the trip is not assigned to a vehicle, or the
// trip is inactive (completed or cancelled), or driver hasn't updated this
// value.
google.protobuf.Int32Value remaining_distance_meters = 12;
google.protobuf.Int32Value remaining_distance_meters = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The ETA to the next waypoint (the first entry in the
// Trip.remaining_waypoints field). This field facilitates journey sharing
@ -162,29 +184,29 @@ message Trip {
// Trip.eta_to_first_waypoint.
google.protobuf.Duration remaining_time_to_first_waypoint = 27 [(google.api.field_behavior) = OUTPUT_ONLY];
// Indicates the last time that `remaining_waypoints` was changed (a
// Output only. Indicates the last time that `remaining_waypoints` was changed (a
// waypoint was added, removed, or changed).
google.protobuf.Timestamp remaining_waypoints_version = 19;
google.protobuf.Timestamp remaining_waypoints_version = 19 [(google.api.field_behavior) = OUTPUT_ONLY];
// Indicates the last time the remaining_waypoints.path_to_waypoint and
// remaining_waypoints.traffic_to_waypoint were modified. Your client app
// should cache this value and pass it in GetTripRequest to ensure the
// paths and traffic for remaining_waypoints are only returned if updated.
google.protobuf.Timestamp remaining_waypoints_route_version = 29;
// Output only. Indicates the last time the `remaining_waypoints.path_to_waypoint` and
// `remaining_waypoints.traffic_to_waypoint` were modified. Your client app
// should cache this value and pass it in `GetTripRequest` to ensure the
// paths and traffic for `remaining_waypoints` are only returned if updated.
google.protobuf.Timestamp remaining_waypoints_route_version = 29 [(google.api.field_behavior) = OUTPUT_ONLY];
// Indicates the number of passengers on this trip and does not include the
// driver. A vehicle must have available_capacity to be returned
// in SearchTrips.
int32 number_of_passengers = 10;
// Immutable. Indicates the number of passengers on this trip and does not include the
// driver. A vehicle must have available capacity to be returned
// in SearchVehicles.
int32 number_of_passengers = 10 [(google.api.field_behavior) = IMMUTABLE];
// Indicates the last reported location of the vehicle along the route.
VehicleLocation last_location = 11;
// Output only. Indicates the last reported location of the vehicle along the route.
VehicleLocation last_location = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
// Indicates whether the vehicle's last_location can be snapped to
// Output only. Indicates whether the vehicle's last_location can be snapped to
// the current_route_segment. False if last_location or current_route_segment
// doesn't exist.
// It is computed by Fleet Engine. Any update from clients will be ignored.
bool last_location_snappable = 26;
bool last_location_snappable = 26 [(google.api.field_behavior) = OUTPUT_ONLY];
// The subset of Trip fields that are populated and how they should be
// interpreted.
@ -196,11 +218,14 @@ message StopLocation {
// Required. Denotes the actual location.
google.type.LatLng point = 1 [(google.api.field_behavior) = REQUIRED];
// The timestamp when the location was measured.
// Indicates when the stop happened.
google.protobuf.Timestamp timestamp = 2;
// Indicates when the stop actually happened.
google.protobuf.Timestamp stop_time = 3;
// Input only. Deprecated. Use the timestamp field.
google.protobuf.Timestamp stop_time = 3 [
deprecated = true,
(google.api.field_behavior) = INPUT_ONLY
];
}
// The status of a trip indicating its progression.

View file

@ -39,28 +39,32 @@ option objc_class_prefix = "CFE";
service VehicleService {
option (google.api.default_host) = "fleetengine.googleapis.com";
// CreateVehicle instantiates a new vehicle associated with a rideshare
// provider in the Fleet Engine. Vehicles must have a unique vehicle ID.
// Instantiates a new vehicle associated with an on-demand rideshare or
// deliveries provider. Each `Vehicle` must have a unique vehicle ID.
//
// The following Vehicle fields are required when creating a Vehicle:
// The following `Vehicle` fields are required when creating a `Vehicle`:
//
// * vehicleState
// * supportedTripTypes
// * maximumCapacity
// * vehicleType
// * `vehicleState`
// * `supportedTripTypes`
// * `maximumCapacity`
// * `vehicleType`
//
// The following Vehicle fields are ignored when creating a Vehicle:
// The following `Vehicle` fields are ignored when creating a `Vehicle`:
//
// * name
// * currentTrips
// * availableCapacity
// * current_route_segment
// * current_route_segment_version
// * waypoint
// * waypoints_version
// * remaining_distance_meters
// * eta_to_next_waypoint
// * navigation_status
// * `name`
// * `currentTrips`
// * `availableCapacity`
// * `current_route_segment`
// * `current_route_segment_end_point`
// * `current_route_segment_version`
// * `current_route_segment_traffic`
// * `route`
// * `waypoints`
// * `waypoints_version`
// * `remaining_distance_meters`
// * `remaining_time_seconds`
// * `eta_to_next_waypoint`
// * `navigation_status`
//
// All other fields are optional and used if provided.
rpc CreateVehicle(CreateVehicleRequest) returns (Vehicle) {
@ -70,26 +74,29 @@ service VehicleService {
};
}
// GetVehicle returns a vehicle from the Fleet Engine.
// Returns a vehicle from the Fleet Engine.
rpc GetVehicle(GetVehicleRequest) returns (Vehicle) {
option (google.api.http) = {
get: "/v1/{name=providers/*/vehicles/*}"
};
}
// UpdateVehicle writes updated vehicle data to the Fleet Engine.
// Writes updated vehicle data to the Fleet Engine.
//
// When updating a Vehicle, the following fields cannot be updated since they
// are managed by the Fleet Engine:
// When updating a `Vehicle`, the following fields cannot be updated since
// they are managed by the server:
//
// * currentTrips
// * availableCapacity
// * current_route_segment_version
// * waypoints_version
// * `currentTrips`
// * `availableCapacity`
// * `current_route_segment_version`
// * `waypoints_version`
//
// The vehicle name also cannot be updated.
// The vehicle `name` also cannot be updated.
//
// The waypoints field can be updated, but must contain all the waypoints
// If the `attributes` field is updated, **all** the vehicle's attributes are
// replaced with the attributes provided in the request. If you want to update
// only some attributes, see the `UpdateVehicleAttributes` method. Likewise,
// the `waypoints` field can be updated, but must contain all the waypoints
// currently on the vehicle, and no other waypoints.
rpc UpdateVehicle(UpdateVehicleRequest) returns (Vehicle) {
option (google.api.http) = {
@ -98,8 +105,8 @@ service VehicleService {
};
}
// Deprecated: Use the `UpdateVehicle` method instead.
// UpdateVehicleLocation updates the location of the vehicle.
// This method is deprecated. Use UpdateVehicle method instead.
rpc UpdateVehicleLocation(UpdateVehicleLocationRequest) returns (VehicleLocation) {
option deprecated = true;
option (google.api.http) = {
@ -108,11 +115,11 @@ service VehicleService {
};
}
// UpdateVehicleAttributes partially updates a vehicle's attributes.
// Partially updates a vehicle's attributes.
// Only the attributes mentioned in the request will be updated, other
// attributes will NOT be altered. Note: this is different in UpdateVehicle,
// attributes will NOT be altered. Note: this is different in `UpdateVehicle`,
// where the whole `attributes` field will be replaced by the one in
// UpdateVehicleRequest, attributes not in the request would be removed.
// `UpdateVehicleRequest`, attributes not in the request would be removed.
rpc UpdateVehicleAttributes(UpdateVehicleAttributesRequest) returns (UpdateVehicleAttributesResponse) {
option (google.api.http) = {
post: "/v1/{name=providers/*/vehicles/*}:updateAttributes"
@ -120,7 +127,7 @@ service VehicleService {
};
}
// ListVehicles returns a paginated list of vehicles associated with
// Returns a paginated list of vehicles associated with
// a provider that match the request options.
rpc ListVehicles(ListVehiclesRequest) returns (ListVehiclesResponse) {
option (google.api.http) = {
@ -128,7 +135,7 @@ service VehicleService {
};
}
// SearchVehicles returns a list of vehicles that match the request options.
// Returns a list of vehicles that match the request options.
rpc SearchVehicles(SearchVehiclesRequest) returns (SearchVehiclesResponse) {
option (google.api.http) = {
post: "/v1/{parent=providers/*}/vehicles:search"
@ -136,12 +143,11 @@ service VehicleService {
};
}
// SearchFuzzedVehicles returns a list of vehicles that match the request
// options with their locations fuzzed.
// Request does not support 'order_by' field.
// Vehicle matches in response will be in order of distance from pickup point.
// Vehicle matches in response will only have 'vehicle' and 'trip_type' field
// set.
// Returns a list of vehicles that match the request
// options, but the vehicle locations will be somewhat altered for privacy.
// This method does not support the `SearchVehicleRequest.order_by` field.
// Vehicle matches in the response will be in order of distance from the
// pickup point. Only the `vehicle` and `trip_type` fields will be populated.
rpc SearchFuzzedVehicles(SearchVehiclesRequest) returns (SearchVehiclesResponse) {
option (google.api.http) = {
post: "/v1/{parent=providers/*}/vehicles:searchFuzzed"
@ -150,55 +156,65 @@ service VehicleService {
}
}
// CreateVehicle request message.
// `CreateVehicle` request message.
message CreateVehicleRequest {
// The standard Fleet Engine request header.
RequestHeader header = 1;
// Required. Must be in the format "providers/{provider}".
// The provider must be the Project ID (for example, sample-cloud-project)
// Required. Must be in the format `providers/{provider}`.
// The provider must be the Project ID (for example, `sample-cloud-project`)
// of the Google Cloud Project of which the service account making
// this call is a member.
string parent = 3 [(google.api.field_behavior) = REQUIRED];
// Required. Unique Vehicle ID; must be unique per provider. The actual
// format and value is opaque to the Fleet Engine and is determined
// by the provider.
// Required. Unique Vehicle ID; must be unique per provider.
// Subject to the following normalization and restrictions:
//
// 1. IDs must be valid Unicode strings.
// 2. IDs are limited to a maximum length of 64 characters.
// 3. IDs will be normalized according to Unicode Normalization Form C
// (http://www.unicode.org/reports/tr15/).
// 4. IDs may not contain any of the following ASCII characters: '/', ':',
// '\\', '?', or '#'.
string vehicle_id = 4 [(google.api.field_behavior) = REQUIRED];
// Required. The Vehicle entity to create. When creating a Vehicle, the following
// fields are required:
//
// * vehicle_state
// * supported_trip_types
// * maximum_capacity
// * vehicle_type
// * `vehicleState`
// * `supportedTripTypes`
// * `maximumCapacity`
// * `vehicleType`
//
// When creating a Vehicle, the following fields are ignored:
//
// * name
// * current_trips
// * available_capacity
// * current_route_segment
// * current_route_segment_version
// * waypoints
// * waypoints_version
// * remaining_distance_meters
// * eta_to_next_waypoint
// * navigation_status
// * `name`
// * `currentTrips`
// * `availableCapacity`
// * `current_route_segment`
// * `current_route_segment_end_point`
// * `current_route_segment_version`
// * `current_route_segment_traffic`
// * `route`
// * `waypoints`
// * `waypoints_version`
// * `remaining_distance_meters`
// * `remaining_time_seconds`
// * `eta_to_next_waypoint`
// * `navigation_status`
//
// All other fields will be used if provided.
// All other fields are optional and used if provided.
Vehicle vehicle = 5 [(google.api.field_behavior) = REQUIRED];
}
// GetVehicle request message.
// `GetVehicle` request message.
message GetVehicleRequest {
// The standard Fleet Engine request header.
RequestHeader header = 1;
// Required. Must be in the format
// "providers/{provider}/vehicles/{vehicle}".
// The provider must be the Project ID (for example, sample-cloud-project)
// `providers/{provider}/vehicles/{vehicle}`.
// The provider must be the Project ID (for example, `sample-cloud-project`)
// of the Google Cloud Project of which the service account making
// this call is a member.
string name = 3 [
@ -209,51 +225,55 @@ message GetVehicleRequest {
];
// Indicates the minimum timestamp (exclusive) for which
// vehicle.current_route_segment is retrieved.
// If route is unchanged since this timestamp, the current_route_segment
// `Vehicle.current_route_segment` is retrieved.
// If the route is unchanged since this timestamp, the `current_route_segment`
// field is not set in the response. If a minimum is unspecified, the
// current_route_segment is always retrieved.
// `current_route_segment` is always retrieved.
google.protobuf.Timestamp current_route_segment_version = 4;
// Indicates the minimum timestamp (exclusive) for which vehicle.waypoints
// data is retrieved. If data is unchanged since this timestamp, the
// vehicle.waypoints data is not set in the response. If this field is
// unspecified, vehicle.waypoints is always retrieved.
// Indicates the minimum timestamp (exclusive) for which `Vehicle.waypoints`
// data is retrieved. If the waypoints are unchanged since this timestamp, the
// `vehicle.waypoints` data is not set in the response. If this field is
// unspecified, `vehicle.waypoints` is always retrieved.
google.protobuf.Timestamp waypoints_version = 5;
}
// UpdateVehicle request message.
// `UpdateVehicle request message.
message UpdateVehicleRequest {
// The standard Fleet Engine request header.
RequestHeader header = 1;
// Required. Must be in the format
// "providers/{provider}/vehicles/{vehicle}".
// The {provider} must be the Project ID (for example, sample-cloud-project)
// `providers/{provider}/vehicles/{vehicle}`.
// The {provider} must be the Project ID (for example, `sample-cloud-project`)
// of the Google Cloud Project of which the service account making
// this call is a member.
//
// Note that if the name is also specified in the name field of the
// vehicle and name is set in the update_mask, both names must be the
// same. Otherwise it is an Error.
string name = 3 [(google.api.field_behavior) = REQUIRED];
// Required. The Vehicle entity update to apply. When updating a Vehicle,
// Required. The `Vehicle` entity values to apply. When updating a `Vehicle`,
// the following fields may not be updated as they are managed by the
// Fleet Engine.
// current_trips
// available_capacity
// current_route_segment_version
// waypoints_version
// Furthermore, the name of the vehicle cannot be updated.
// server.
//
// * `current_trips`
// * `available_capacity`
// * `current_route_segment_version`
// * `waypoints_version`
//
// Furthermore, the vehicle `name` cannot be updated.
//
// If the `attributes` field is updated, **all** the vehicle's attributes are
// replaced with the attributes provided in the request. If you want to update
// only some attributes, see the `UpdateVehicleAttributes` method. Likewise,
// the `waypoints` field can be updated, but must contain all the waypoints.
// currently on the vehicle, and no other waypoints.
Vehicle vehicle = 4 [(google.api.field_behavior) = REQUIRED];
// Required. A field mask indicating which fields of the Vehicle to update.
// The update_mask must contain at least one field.
// Required. A field mask indicating which fields of the `Vehicle` to update.
// At least one field name must be provided.
google.protobuf.FieldMask update_mask = 5 [(google.api.field_behavior) = REQUIRED];
}
// UpdateVehicleLocation request message.
// `UpdateVehicleLocation` request message.
message UpdateVehicleLocationRequest {
option deprecated = true;
@ -261,50 +281,47 @@ message UpdateVehicleLocationRequest {
RequestHeader header = 1;
// Required. Must be in the format
// "providers/{provider}/vehicles/{vehicle}.
// The {provider} must be the Project ID (for example, sample-cloud-project)
// `providers/{provider}/vehicles/{vehicle}`.
// The {provider} must be the Project ID (for example, `sample-cloud-project`)
// of the Google Cloud Project of which the service account making
// this call is a member.
string name = 3 [(google.api.field_behavior) = REQUIRED];
// Required. The location to update to. The last_location and update_time
// Required. The vehicle's most recent location. The `location` and `update_time`
// subfields are required.
VehicleLocation current_location = 4 [(google.api.field_behavior) = REQUIRED];
// Set current vehicle state to either ONLINE or OFFLINE;
// if set to UNKNOWN_VEHICLE_STATE, vehicle state will not be altered.
// Set the vehicle's state to either `ONLINE` or `OFFLINE`.
// If set to `UNKNOWN_VEHICLE_STATE`, the vehicle's state will not be altered.
VehicleState current_state = 5;
}
// UpdateVehicleAttributes request message.
// `UpdateVehicleAttributes` request message.
message UpdateVehicleAttributesRequest {
// The standard Fleet Engine request header.
RequestHeader header = 1;
// Required. Must be in the format
// "providers/{provider}/vehicles/{vehicle}.
// The provider must be the Project ID (for example, sample-cloud-project)
// Required. Must be in the format `providers/{provider}/vehicles/{vehicle}`.
// The provider must be the Project ID (for example, `sample-cloud-project`)
// of the Google Cloud Project of which the service account making
// this call is a member.
string name = 3 [(google.api.field_behavior) = REQUIRED];
// Required. The attributes to update;
// unmentioned attributes will not be altered or removed.
// At most 20 attributes; the combined "key:value" string length cannot
// exceed 256.
// Required. The vehicle attributes to update. Unmentioned attributes will not be
// altered or removed.
repeated VehicleAttribute attributes = 4 [(google.api.field_behavior) = REQUIRED];
}
// UpdateVehicleAttributes response message.
// `UpdateVehicleAttributes` response message.
message UpdateVehicleAttributesResponse {
// Required. The updated full list of vehicle attributes, including new,
// altered and untouched attributes.
repeated VehicleAttribute attributes = 1 [(google.api.field_behavior) = REQUIRED];
}
// SearchVehicles request message.
// `SearchVehicles` request message.
message SearchVehiclesRequest {
// Specifies the sort order of the vehicle matches in the response.
// Specifies the order of the vehicle matches in the response.
enum VehicleMatchOrder {
// Default, used for unspecified or unrecognized vehicle matches order.
UNKNOWN_VEHICLE_MATCH_ORDER = 0;
@ -312,27 +329,26 @@ message SearchVehiclesRequest {
// Ascending order by vehicle driving time to the pickup point.
PICKUP_POINT_ETA = 1;
// Ascending order by the vehicle driving distance to the pickup point.
// Ascending order by vehicle driving distance to the pickup point.
PICKUP_POINT_DISTANCE = 2;
// Ascending order by vehicle driving time to the dropoff point. This order
// can only be used if the dropoff_point is specified in the request.
// can only be used if the dropoff point is specified in the request.
DROPOFF_POINT_ETA = 3;
// Ascending order by straightline distance from vehicle location to pickup
// location. This is used primarily as a backup if the maps backend is not
// reachable.
// Ascending order by straight-line distance from the vehicle's last
// reported location to the pickup point.
PICKUP_POINT_STRAIGHT_DISTANCE = 4;
// Ascending order by the match cost.
// Ascending order by the configured match cost.
COST = 5;
}
// The standard Fleet Engine request header.
RequestHeader header = 1;
// Required. Must be in the format "providers/{provider}".
// The provider must be the Project ID (for example, sample-cloud-project)
// Required. Must be in the format `providers/{provider}`.
// The provider must be the Project ID (for example, `sample-cloud-project`)
// of the Google Cloud Project of which the service account making
// this call is a member.
string parent = 3 [(google.api.field_behavior) = REQUIRED];
@ -341,50 +357,54 @@ message SearchVehiclesRequest {
TerminalLocation pickup_point = 4 [(google.api.field_behavior) = REQUIRED];
// The customer's intended dropoff location. The field is required if
// trip_types contains TripType.SHARED.
// `trip_types` contains `TripType.SHARED`.
TerminalLocation dropoff_point = 5;
// Required. Defines the vehicle search radius around the pickup point. Only
// vehicles within the search radius will be returned. Value must be between
// 400 and 10000 meters.
// 400 and 10000 meters (inclusive).
int32 pickup_radius_meters = 6 [(google.api.field_behavior) = REQUIRED];
// Required. Specifies the maximum number of available vehicles to return. By
// default, the Fleet Engine limits the number to 50.
// Required. Specifies the maximum number of vehicles to return. The value
// must be between 1 and 50 (inclusive).
int32 count = 7 [(google.api.field_behavior) = REQUIRED];
// Required. Specifies the minimum number of passengers allowed in the
// vehicle. Must number must be greater than or equal to one. The driver is
// not considered in the capacity search. This number indicates the number of
// passengers being considered for a trip.
// Required. Specifies the number of passengers being considered for a trip. The
// value must be greater than or equal to one. The driver is not considered in
// the capacity value.
int32 minimum_capacity = 8 [(google.api.field_behavior) = REQUIRED];
// Required. Restricts the search to only those vehicles that support at least
// one of the specified trip types.
//
// At the present time, only `EXCLUSIVE` is supported.
repeated TripType trip_types = 9 [(google.api.field_behavior) = REQUIRED];
// Restricts the search to only those vehicles that have updated their
// locations within the specified duration back from now. If this field is not
// locations within the specified duration. If this field is not
// set, the server uses five minutes as the default value.
google.protobuf.Duration maximum_staleness = 10;
// Required. Restricts the search to those vehicles with the specified types.
// Required. Restricts the search to vehicles with one of the specified types.
// At least one vehicle type must be specified.
repeated Vehicle.VehicleType vehicle_types = 14 [(google.api.field_behavior) = REQUIRED];
// Callers can form complex logical operations using the
// requiredAttributes and requiredOneOfAttributes fields.
// Callers can form complex logical operations using any combination of the
// `required_attributes`, `required_one_of_attributes`, and
// `required_one_of_attribute_sets` fields.
//
// requiredAttributes is a list; requiredOneOfAttributes uses a message which
// allows a list of lists. In combination, the two fields allow the
// composition of this expression:
// `required_attributes` is a list; `required_one_of_attributes` uses a
// message which allows a list of lists. In combination, the two fields allow
// the composition of this expression:
//
// ```
// (required_attribute[0] AND required_attribute[1] AND ...)
// (required_attributes[0] AND required_attributes[1] AND ...)
// AND
// (required_one_of_attribute[0][0] OR required_one_of_attribute[0][1] OR ...)
// (required_one_of_attributes[0][0] OR required_one_of_attributes[0][1] OR
// ...)
// AND
// (required_one_of_attribute[1][0] OR required_one_of_attribute[1][1] OR ...)
// (required_one_of_attributes[1][0] OR required_one_of_attributes[1][1] OR
// ...)
// ```
//
// Restricts the search to only those vehicles with the specified attributes.
@ -394,60 +414,76 @@ message SearchVehiclesRequest {
repeated VehicleAttribute required_attributes = 12;
// Restricts the search to only those vehicles with at least one of
// the specified attributes applied to each VehicleAttributeList. Within each
// the specified attributes in each `VehicleAttributeList`. Within each
// list, a vehicle must match at least one of the attributes. This field is an
// inclusive disjunction/OR operation in each VehicleAttributeList and a
// conjunction/AND operation across the collection of VehicleAttributeList.
// inclusive disjunction/OR operation in each `VehicleAttributeList` and a
// conjunction/AND operation across the collection of `VehicleAttributeList`.
repeated VehicleAttributeList required_one_of_attributes = 15;
// Restricts the search to only those vehicles with at least one set of the
// specified attributes in the VehicleAttributeList. Within each list, a
// `required_one_of_attribute_sets` provides additional functionality.
//
// Similar to `required_one_of_attributes`, `required_one_of_attribute_sets`
// uses a message which allows a list of lists, allowing expressions such as
// this one:
//
// ```
// (required_attributes[0] AND required_attributes[1] AND ...)
// AND
// (required_one_of_attributes[0][0] AND required_one_of_attributes[0][1] AND
// ...)
// OR
// (required_one_of_attributes[1][0] AND required_one_of_attributes[1][1] AND
// ...)
// ```
//
// Restricts the search to only those vehicles with all the attributes in a
// `VehicleAttributeList`. Within each list, a
// vehicle must match all of the attributes. This field is a conjunction/AND
// operation in each VehicleAttributeList and inclusive disjunction/OR
// operation across the collection of VehicleAttributeList.
// operation in each `VehicleAttributeList` and inclusive disjunction/OR
// operation across the collection of `VehicleAttributeList`.
repeated VehicleAttributeList required_one_of_attribute_sets = 20;
// Required. Specifies ordering criterion for results.
// Required. Specifies the desired ordering criterion for results.
VehicleMatchOrder order_by = 13 [(google.api.field_behavior) = REQUIRED];
// Indicates if a vehicle with an active trip is eligible for
// another match. If `false`, a vehicle is excluded from search results.
// If `true`, search results include vehicles with `TripStatus` of
// `ENROUTE_TO_DROPOFF`. The services only use this field if
// the `SearchVehicles` request has `TripType` set to EXCLUSIVE.
// Default value is `false`.
// Indicates if a vehicle with a single active trip is eligible for another
// match. If `false`, vehicles with assigned trips are excluded from the
// search results. If `true`, search results include vehicles with
// `TripStatus` of `ENROUTE_TO_DROPOFF`.
//
// This field is only considered if a single `trip_type` of `EXCLUSIVE` is
// specified.
//
// The default value is `false`.
bool include_back_to_back = 18;
// Indicates the ID of the trip the searchVehicleRequest is
// associated with.
// Indicates the trip associated with this `SearchVehicleRequest`.
// Unique Trip ID; must be unique per provider.
// Subject to the following normalization and restrictions:
//
// 1. IDs must be valid Unicode strings.
// 2. IDs are limited to a maximum length of 64 characters.
// 3. IDs will be normalized according to Unicode Normalization Form C
// (http://www.unicode.org/reports/tr15/).
// 4. IDs may not contain any of the following ASCII characters: '/', ':',
// '\\', '?', or '#'.
string trip_id = 19;
}
// SearchVehicles response message.
// `SearchVehicles` response message.
message SearchVehiclesResponse {
// List of vehicles that match the request options.
//
// Ordered by ascending vehicle_pickup_eta, with ties broken by ascending
// trip_type enum value, followed by matches that don't have
// vehicle_pickup_eta set.
//
// Example response: (Logically represented, not actual response fields):
//
// * (VehicleId: Vehicle1, ETA: 10 AM, TripType: SHARED),
// * (VehicleId: Vehicle2, ETA: 10 AM, TripType: EXCLUSIVE),
// * (VehicleId: Vehicle3, ETA: 11 AM, TripType: EXCLUSIVE),
// * (VehicleId: Vehicle4, ETA: Not set, TripType: SHARED),
// * (VehicleId: Vehicle5, ETA: Not set, TripType: EXCLUSIVE)
// List of vehicles that match the `SearchVehiclesRequest` criteria, ordered
// according to `SearchVehiclesRequest.order_by` field.
repeated VehicleMatch matches = 1;
}
// ListVehicles request message.
// `ListVehicles` request message.
message ListVehiclesRequest {
// The standard Fleet Engine request header.
RequestHeader header = 12;
// Required. Must be in the format "providers/{provider}".
// The provider must be the Project ID (for example, sample-cloud-project)
// Required. Must be in the format `providers/{provider}`.
// The provider must be the Project ID (for example, `sample-cloud-project`)
// of the Google Cloud Project of which the service account making
// this call is a member.
string parent = 1 [(google.api.field_behavior) = REQUIRED];
@ -456,88 +492,110 @@ message ListVehiclesRequest {
// Default value: 100.
int32 page_size = 3;
// The next_page_token value returned from a previous response, if any.
// The `next_page_token` value returned from a previous call to
// `ListVehicles`. Functionality is undefined if the filter criteria of this
// request don't match the criteria in the request that produced this
// `page_token`.
string page_token = 4;
// Specifies the required minimum capacity of the vehicle.
// The driver is not considered in the capacity search.
// This is just the number of passengers being considered for a trip.
// If set, must be greater or equal to 0.
// Specifies the required minimum capacity of the vehicle. All vehicles
// returned will have a `maximum_capacity` greater than or equal to this
// value. If set, must be greater or equal to 0.
google.protobuf.Int32Value minimum_capacity = 6;
// Restrict the search to only those vehicles that support at least
// Restrict the response to vehicles that support at least
// one of the specified trip types.
repeated TripType trip_types = 7;
// Restrict the search to only those vehicles that have updated
// Restrict the response to vehicles that have updated
// their locations within the specified duration back from now.
// If present, must be a valid positive duration.
google.protobuf.Duration maximum_staleness = 8;
// Required. Restrict the search to those vehicles with the specified type categories.
// Required. Restrict the response to vehicles with one of the specified type
// categories.
repeated Vehicle.VehicleType.Category vehicle_type_categories = 9 [(google.api.field_behavior) = REQUIRED];
// Callers can form complex logical operations using the
// requiredAttributes and requiredOneOfAttributes fields.
// Callers can form complex logical operations using any combination of the
// `required_attributes`, `required_one_of_attributes`, and
// `required_one_of_attribute_sets` fields.
//
// requiredAttributes is a list; requiredOneOfAttributes uses a message which
// allows a list of lists. In combination, the two fields allow the
// composition of this expression:
// `required_attributes` is a list; `required_one_of_attributes` uses a
// message which allows a list of lists. In combination, the two fields allow
// the composition of this expression:
//
// ```
// (required_attribute[0] AND required_attribute[1] AND ...)
// (required_attributes[0] AND required_attributes[1] AND ...)
// AND
// (required_one_of_attribute[0][0] OR required_one_of_attribute[0][1] OR ...)
// (required_one_of_attributes[0][0] OR required_one_of_attributes[0][1] OR
// ...)
// AND
// (required_one_of_attribute[1][0] OR required_one_of_attribute[1][1] OR ...)
// (required_one_of_attributes[1][0] OR required_one_of_attributes[1][1] OR
// ...)
// ```
//
// Restrict the search to only those vehicles
// with the specified attributes. This field is a conjunction/AND operation.
// Your app can specify up to 100 attributes; however, the combined
// key:value string length cannot exceed 1024 characters.
// Restrict the response to vehicles with the specified attributes. This field
// is a conjunction/AND operation. Your app can specify up to 100 attributes;
// however, the combined key:value string length cannot exceed 1024
// characters.
repeated string required_attributes = 10;
// Restrict the search to only those vehicles with at least one
// of the specified attributes applied to each VehicleAttributeList.
// Restrict the response to vehicles with at least one
// of the specified attributes in each `VehicleAttributeList`.
// Within each list, a vehicle must match at least one of the attributes.
// This field is an inclusive disjunction/OR operation in each
// VehicleAttributeList and a conjunction/AND operation across the collection
// of VehicleAttributeList.
// Format: key1:value1|key2:value2|key3:value3...
// `VehicleAttributeList` and a conjunction/AND operation across the
// collection of `VehicleAttributeList`. Format:
// key1:value1|key2:value2|key3:value3...
repeated string required_one_of_attributes = 13;
// Restrict the search to only those vehicles with at least one set of the
// specified attributes in the VehicleAttributeList. Within each list, a
// vehicle must match all of the attributes. This field is a conjunction/AND
// operation in each VehicleAttributeList and inclusive disjunction/OR
// operation across the collection of VehicleAttributeList.
// Format: key1:value1|key2:value2|key3:value3...
// `required_one_of_attribute_sets` provides additional functionality.
//
// Similar to `required_one_of_attributes`, `required_one_of_attribute_sets`
// uses a message which allows a list of lists, allowing expressions such as
// this one:
//
// ```
// (required_attributes[0] AND required_attributes[1] AND ...)
// AND
// (required_one_of_attributes[0][0] AND required_one_of_attributes[0][1] AND
// ...)
// OR
// (required_one_of_attributes[1][0] AND required_one_of_attributes[1][1] AND
// ...)
// ```
//
// Restrict the response to vehicles that match all the attributes in a
// `VehicleAttributeList`. Within each list, a vehicle must match all of the
// attributes. This field is a conjunction/AND operation in each
// `VehicleAttributeList` and inclusive disjunction/OR operation across the
// collection of `VehicleAttributeList`. Format:
// key1:value1|key2:value2|key3:value3...
repeated string required_one_of_attribute_sets = 15;
// Restrict the search to only those vehicles that have this vehicle state.
// Restrict the response to vehicles that have this vehicle state.
VehicleState vehicle_state = 11;
// Only return the vehicles with current trip(s).
bool on_trip_only = 14;
}
// ListVehicles response message.
// `ListVehicles` response message.
message ListVehiclesResponse {
// Depends on vehicles matching request criteria.
// There will be a maximum number of vehicles returned based on the page_size
// Vehicles matching the criteria in the request.
// The maximum number of vehicles returned is determined by the `page_size`
// field in the request.
repeated Vehicle vehicles = 1;
// Token to retrieve the next page of vehicles, or empty if there are no
// more vehicles in the list.
// more vehicles that meet the request criteria.
string next_page_token = 2;
// Required. Total number of vehicles matching request criteria across all pages.
// Required. Total number of vehicles matching the request criteria across all pages.
int64 total_size = 3 [(google.api.field_behavior) = REQUIRED];
}
// Waypoint describes intermediate points along a route.
// Describes intermediate points along a route.
message Waypoint {
// The location of this waypoint.
google.type.LatLng lat_lng = 1;
@ -546,24 +604,29 @@ message Waypoint {
google.protobuf.Timestamp eta = 2;
}
// VehicleMatch contains the vehicle, ETA, and distance calculations for a
// vehicle that matches the SearchVehiclesRequest.
// Contains the vehicle and related estimates for a vehicle that match the
// points of active trips for the vehicle `SearchVehiclesRequest`.
message VehicleMatch {
// Type of vehicle match.
enum VehicleMatchType {
// Unknown vehicle match type
UNKNOWN = 0;
// Exclusive vehicle trip match
// The vehicle currently has no trip assigned to it and can proceed to the
// pickup point.
EXCLUSIVE = 1;
// Back to back ride match.
// The vehicle is currently assigned to a trip, but can proceed to the
// pickup point after completing the in-progress trip. ETA and distance
// calculations take the existing trip into account.
BACK_TO_BACK = 2;
// Carpool ride match.
// The vehicle has sufficient capacity for a shared ride.
CARPOOL = 3;
// Carpool ride match. The car has an active exclusive trip.
// The vehicle will finish its current, active trip before proceeding to the
// pickup point. ETA and distance calculations take the existing trip into
// account.
CARPOOL_BACK_TO_BACK = 4;
}
@ -572,27 +635,29 @@ message VehicleMatch {
// The vehicle's driving ETA to the pickup point specified in the
// request. An empty value indicates a failure in calculating ETA for the
// vehicle.
// vehicle. If `SearchVehiclesRequest.include_back_to_back` was `true` and
// this vehicle has an active trip, `vehicle_pickup_eta` includes the time
// required to complete the current active trip.
google.protobuf.Timestamp vehicle_pickup_eta = 2;
// The vehicle's driving distance to the pickup point specified in
// the request, including any intermediate pickup or dropoff points for
// an existing ride. An empty value indicates a failure in calculating
// distance for the vehicle.
// The distance from the Vehicle's current location to the pickup point
// specified in the request, including any intermediate pickup or dropoff
// points for existing trips. This distance comprises the calculated driving
// (route) distance, plus the straight line distance between the navigation
// end point and the requested pickup point. (The distance between the
// navigation end point and the requested pickup point is typically small.) An
// empty value indicates an error in calculating the distance.
google.protobuf.Int32Value vehicle_pickup_distance_meters = 3;
// Required. The straight-line distance between the vehicle and the pickup
// point specified in the request, including intermediate waypoints for
// existing trips.
// Required. The straight-line distance between the vehicle and the pickup point
// specified in the request.
google.protobuf.Int32Value vehicle_pickup_straight_line_distance_meters = 11 [(google.api.field_behavior) = REQUIRED];
// The complete vehicle's driving ETA to the drop off point
// specified in the request. The ETA includes any required visits for active
// trips that must be completed before the vehicle visits the dropoff_point
// specified in the request. The value will only be populated when a
// dropoff_point is specified in the request. An empty value indicates
// a failure in calculating the ETA for the vehicle to reach
// the dropoff_point.
// The complete vehicle's driving ETA to the drop off point specified in the
// request. The ETA includes stopping at any waypoints before the
// `dropoff_point` specified in the request. The value will only be populated
// when a drop off point is specified in the request. An empty value indicates
// an error calculating the ETA.
google.protobuf.Timestamp vehicle_dropoff_eta = 4;
// The vehicle's driving distance (in meters) from the pickup point
@ -600,9 +665,9 @@ message VehicleMatch {
// between the two points and does not include the vehicle location or any
// other points that must be visited before the vehicle visits either the
// pickup point or dropoff point. The value will only be populated when a
// dropoff_point is specified in the request. An empty value indicates
// `dropoff_point` is specified in the request. An empty value indicates
// a failure in calculating the distance from the pickup to
// dropoff points specified in the request.
// drop off point specified in the request.
google.protobuf.Int32Value vehicle_pickup_to_dropoff_distance_meters = 5;
// Required. The trip type of the request that was used to calculate the ETA
@ -610,8 +675,8 @@ message VehicleMatch {
TripType trip_type = 6 [(google.api.field_behavior) = REQUIRED];
// The ordered list of waypoints used to calculate the ETA. The list
// will include the vehicle location, the pickup/drop off points of active
// trips for the vehicle and the pickup/dropoff points provided in the
// includes vehicle location, the pickup/drop off points of active
// trips for the vehicle, and the pickup/drop off points provided in the
// request. An empty list indicates a failure in calculating ETA for the
// vehicle.
repeated Waypoint vehicle_trips_waypoints = 7;
@ -619,17 +684,17 @@ message VehicleMatch {
// Type of the vehicle match.
VehicleMatchType vehicle_match_type = 8;
// The method the caller requested for sorting vehicle matches.
// The order requested for sorting vehicle matches.
SearchVehiclesRequest.VehicleMatchOrder requested_ordered_by = 9;
// The actual method that is used to order this vehicle. In normal cases this
// will match the 'order_by' field from the request, however in certain
// circumstances such as a failure of google maps backends, a different method
// may be used (such as PICKUP_POINT_STRAIGHT_DISTANCE).
// The actual order that was used for this vehicle. Normally this
// will match the 'order_by' field from the request; however, in certain
// circumstances such as an internal server error, a different method
// may be used (such as `PICKUP_POINT_STRAIGHT_DISTANCE`).
SearchVehiclesRequest.VehicleMatchOrder ordered_by = 10;
}
// This messages allows a list-of-list datatype for VehicleAttribute.
// A list-of-lists datatype for vehicle attributes.
message VehicleAttributeList {
// A list of attributes in this collection.
repeated VehicleAttribute attributes = 1;

View file

@ -35,17 +35,17 @@ message Vehicle {
pattern: "providers/{provider}/vehicles/{vehicle}"
};
// Types of vehicles that may be filtered for in SearchVehicles.
// The type of vehicle.
message VehicleType {
// Vehicle type categories
enum Category {
// Default, used for unspecified or unrecognized vehicle types.
// Default, used for unspecified or unrecognized vehicle categories.
UNKNOWN = 0;
// An automobile.
AUTO = 1;
// Any vehicle that acts as a taxi.
// Any vehicle that acts as a taxi (typically licensed or regulated).
TAXI = 2;
// Generally, a vehicle with a large storage capacity.
@ -59,9 +59,9 @@ message Vehicle {
Category category = 1;
}
// The unique name for this vehicle.
// The format is providers/{provider}/vehicles/{vehicle}
string name = 1;
// Output only. The unique name for this vehicle.
// The format is `providers/{provider}/vehicles/{vehicle}`.
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// The vehicle state.
VehicleState vehicle_state = 2;
@ -69,106 +69,101 @@ message Vehicle {
// Supported trip types.
repeated TripType supported_trip_types = 3;
// List of IDs for trips in progress.
repeated string current_trips = 4;
// Output only. List of `trip_id`'s for trips currently assigned to this vehicle.
repeated string current_trips = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Last reported location of the vehicle.
VehicleLocation last_location = 5;
// Maximum capacity of the vehicle. This is the total numbers of riders
// on trips this vehicle can contain. The driver is not considered in
// this value. This value must be greater than or equal to one.
// The total numbers of riders this vehicle can carry. The driver is not
// considered in this value. This value must be greater than or equal to one.
int32 maximum_capacity = 6;
// The current available capacity of the vehicle. This is the
// maximum_capacity minus the current number of riders.
int32 available_capacity = 7;
// List of vehicle service attributes.
// List of vehicle attributes. A vehicle can have at most 50
// attributes.
repeated VehicleAttribute attributes = 8;
// The type of this Vehicle. Can be filtered during SearchVehicles. Also
// influences ETA and route calculations.
// The type of this vehicle. Can be used to filter vehicles in
// `SearchVehicles` results. Also influences ETA and route calculations.
VehicleType vehicle_type = 9;
// License plate information for the vehicle.
LicensePlate license_plate = 10;
// Deprecated. Use vehicle.waypoint instead.
// Deprecated: Use `Vehicle.waypoints` instead.
repeated TerminalLocation route = 12 [deprecated = true];
// The polyline specifying the route the driver app intends to take to
// the next waypoint. Your driver app updates this every time a waypoint is
// passed or the driver reroutes. This list is also returned in
// Trip.current_route_segment for all active trips assigned to the vehicle.
// `Trip.current_route_segment` for all active trips assigned to the vehicle.
// Note: This field is intended only for use by the Driver SDK.
string current_route_segment = 20;
// Time when current_route_segment was set. This field is ignored in
// UpdateVehicleRequests as it is calculated by the server. It should be
// stored by client and passed in to future requests to prevent returning
// routes to first way point that haven't changed.
google.protobuf.Timestamp current_route_segment_version = 15;
// Input only. Fleet Engine uses this information to improve its
// understanding of a Trip, but does not populate the field in its responses.
// Note: This field is intended only for use by the Driver SDK.
TrafficPolylineData current_route_segment_traffic = 28 [(google.api.field_behavior) = INPUT_ONLY];
// The waypoint where current_route_segment ends. This can be supplied by
// drivers on UpdateVehicle calls either as a full trip waypoint, a waypoint
// latlnt, or as a the last latlng of the current_route_segment. FleetEngine
// will then do its best to interpolate to an actual waypoint if it is not
// fully specified. This field is ignored in UpdateVehicle calls unless
// current_route_segment is also specified.
// Output only. Time when `current_route_segment` was set. It should be
// stored by the client and passed in future `GetVehicle` requests to
// prevent returning routes that haven't changed.
google.protobuf.Timestamp current_route_segment_version = 15 [(google.api.field_behavior) = OUTPUT_ONLY];
// The waypoint where `current_route_segment` ends. This can be supplied by
// drivers on `UpdateVehicle` calls either as a full trip waypoint, a waypoint
// `LatLng`, or as the last `LatLng` of the `current_route_segment`. Fleet
// Engine will then do its best to interpolate to an actual waypoint if it is
// not fully specified. This field is ignored in `UpdateVehicle` calls unless
// `current_route_segment` is also specified.
TripWaypoint current_route_segment_end_point = 24;
// The remaining driving distance for the 'current_route_segment'. This field
// The remaining driving distance for the `current_route_segment`. This field
// facilitates journey sharing between the Driver app and the Consumer app.
// This value is updated by the Driver SDK. Fleet Engine does not update it.
// This field is also returned in Trip.remaining_distance_meters for all
// active trips assigned to the vehicle. The value is unspecified if the
// `Vehicle.current_route_segment` field is empty, or if the Driver app has
// not updated its value.
// This value is provided by the Driver SDK. This field is also returned in
// `Trip.remaining_distance_meters` for all active trips assigned to the
// vehicle. The value is unspecified if the `current_route_segment` field is
// empty, or if the Driver app has not updated its value.
google.protobuf.Int32Value remaining_distance_meters = 18;
// The ETA to the next waypoint that is the first entry in Vehicle.waypoint
// The ETA to the first entry in the `waypoints`
// field. This field facilitates journey sharing between a Driver app and a
// Consumer app and is updated by the Driver SDK, and Fleet Engine does not
// update it. This field is also returned in Trip.eta_to_first_waypoint for
// all active trips assigned to the vehicle. The value is unspecified if the
// Vehicle.waypoint field is empty, or the Driver app has not updated its
// value.
// Consumer app. Is is provided by the Driver SDK. This field is also returned
// in `Trip.eta_to_first_waypoint` for all active trips assigned to the
// vehicle. The value is unspecified if the `waypoints` field is empty, or the
// Driver app has not updated its value.
google.protobuf.Timestamp eta_to_first_waypoint = 19;
// The remaining driving time for the 'current_route_segment'. This field
// Input only. The remaining driving time for the `current_route_segment`. This field
// facilitates journey sharing between the Driver app and the Consumer app.
// This value is updated by the Driver SDK. Fleet Engine does not update it.
// The value is unspecified if the `Vehicle.current_route_segment` field is
// empty, or if the Driver app has not updated its value. This value should
// match eta_to_first_waypoint - current_time if all parties are using the
// same clock. This field is currently write-only and will not yet be
// populated in Vehicle's get/update/search operations. When updating a
// vehicle, if you update both eta_to_first_waypoint and
// remaining_time_seconds in the same request, then only
// remaining_time_seconds is considered.
google.protobuf.Int32Value remaining_time_seconds = 25;
// match `eta_to_first_waypoint` - `current_time` if all parties are using the
// same clock. When updating a
// vehicle, if you update both `eta_to_first_waypoint` and
// `remaining_time_seconds` in the same request, `remaining_time_seconds`
// takes precedence.
google.protobuf.Int32Value remaining_time_seconds = 25 [(google.api.field_behavior) = INPUT_ONLY];
// The remaining set of waypoints assigned to this Vehicle.
// The remaining waypoints assigned to this Vehicle.
repeated TripWaypoint waypoints = 22;
// Last time the waypoints was updated. Client should cache
// this value and pass it in GetVehicleRequest to ensure the
// waypoints.path_to_waypoint is only returned if it is updated
google.protobuf.Timestamp waypoints_version = 16;
// Output only. Last time the `waypoints` field was updated. Clients should cache
// this value and pass it in `GetVehicleRequest` to ensure the
// `waypoints` field is only returned if it is updated.
google.protobuf.Timestamp waypoints_version = 16 [(google.api.field_behavior) = OUTPUT_ONLY];
// Indicates if the driver accepts back-to-back rides. If
// `true`, services include the vehicle for back-to-back matches.
// If `false`, services exclude the vehicle from back-to-back matches.
// Default value is `false`.
// Indicates if the driver accepts back-to-back trips. If `true`,
// `SearchVehicles` may include the vehicle even if it is currently assigned
// to a trip. The default value is `false`.
bool back_to_back_enabled = 23;
// Vehicle's navigation status.
// The vehicle's navigation status.
NavigationStatus navigation_status = 26;
// Information about various device settings. This is internal debug only
// field, not included in the response.
DeviceSettings device_settings = 27;
// Input only. Information about settings in the mobile device being used by the driver.
DeviceSettings device_settings = 27 [(google.api.field_behavior) = INPUT_ONLY];
}
// Information about the device's battery.
@ -183,7 +178,7 @@ message BatteryInfo {
float battery_percentage = 3;
}
// Information about various settings on the device.
// Information about various settings on the mobile device.
message DeviceSettings {
// How location features are set to behave on the device when battery saver is
// on.
@ -199,17 +194,16 @@ message DeviceSettings {
BatteryInfo battery_info = 4;
}
// The license plate information of the Vehicle. This is used to support
// congestion pricing restrictions in certain areas. To avoid storing
// The license plate information of the Vehicle. To avoid storing
// personally-identifiable information, only the minimum information
// about the license plate is stored as part of the entity.
message LicensePlate {
// Required. CLDR Country/Region Code. For example, "US" for United States,
// or "IN" for India.
// Required. CLDR Country/Region Code. For example, `US` for United States,
// or `IN` for India.
string country_code = 1 [(google.api.field_behavior) = REQUIRED];
// The last digit of the license plate or "-1" to denote no numeric value
// present in the license plate.
// is present in the license plate.
//
// * "ABC 1234" -> "4"
// * "AB 123 CD" -> "3"
@ -217,20 +211,63 @@ message LicensePlate {
string last_character = 2;
}
// The state of a Vehicle.
// Describes how clients should color one portion of the polyline along the
// route.
message VisualTrafficReportPolylineRendering {
// One road stretch that should be rendered.
message RoadStretch {
// The traffic style, indicating traffic speed.
enum Style {
// No style selected.
STYLE_UNSPECIFIED = 0;
// Traffic is slowing down.
SLOWER_TRAFFIC = 1;
// There is a traffic jam.
TRAFFIC_JAM = 2;
}
// Required. The style to apply.
Style style = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The style should be applied between `[offset_meters, offset_meters +
// length_meters)`.
int32 offset_meters = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The length of the path where to apply the style.
int32 length_meters = 3 [(google.api.field_behavior) = REQUIRED];
}
// Optional. Road stretches that should be rendered along the polyline. Note that
// the stretches are guaranteed to not overlap, and that they do not
// necessarily span the full route. In the absence of a road stretch to style,
// the client should apply the default for the route.
repeated RoadStretch road_stretch = 1 [(google.api.field_behavior) = OPTIONAL];
}
// Traffic conditions along the expected vehicle route.
message TrafficPolylineData {
// A polyline rendering of how fast traffic is for all regions along
// one stretch of a customer ride.
VisualTrafficReportPolylineRendering traffic_rendering = 1;
}
// The state of a `Vehicle`.
enum VehicleState {
// Default, used for unspecified or unrecognized vehicle states.
UNKNOWN_VEHICLE_STATE = 0;
// The vehicle is not accepting new trips.
// The vehicle is not accepting new trips. Note: the vehicle may continue to
// operate in this state while completing a trip assigned to it.
OFFLINE = 1;
// The vehicle is accepting new trips.
ONLINE = 2;
}
// How location features are set to behave on the device when battery saver is
// on.
// How location features are configured to behave on the mobile device when the
// devices "battery saver" feature is on.
// (https://developer.android.com/reference/android/os/PowerManager#getLocationPowerSaveMode())
enum LocationPowerSaveMode {
// Undefined LocationPowerSaveMode