{
  "rootUrl": "https://fleetengine.googleapis.com/",
  "documentationLink": "https://developers.google.com/maps/documentation/mobility/",
  "ownerDomain": "google.com",
  "resources": {
    "providers": {
      "resources": {
        "deliveryVehicles": {
          "methods": {
            "get": {
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "DeliveryVehicle"
              },
              "description": "Returns the specified `DeliveryVehicle` instance.",
              "httpMethod": "GET",
              "path": "v1/{+name}",
              "id": "fleetengine.providers.deliveryVehicles.get",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/providers/{providersId}/deliveryVehicles/{deliveryVehiclesId}",
              "parameters": {
                "header.osVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the operating system on which the calling SDK is running. Field value examples: `4.4.1`, `12.1`."
                },
                "header.traceId": {
                  "description": "Optional ID that can be provided for logging purposes in order to identify the request.",
                  "location": "query",
                  "type": "string"
                },
                "header.sdkVersion": {
                  "description": "Version of the calling SDK, if applicable. The version format is \"major.minor.patch\", example: `1.1.2`.",
                  "location": "query",
                  "type": "string"
                },
                "header.navSdkVersion": {
                  "description": "Version of the NavSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `2.1.0`.",
                  "location": "query",
                  "type": "string"
                },
                "header.androidApiLevel": {
                  "location": "query",
                  "type": "integer",
                  "format": "int32",
                  "description": "Android API level of the calling SDK, only applicable for the Android SDKs. Field value example: `23`."
                },
                "header.languageCode": {
                  "description": "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`.",
                  "location": "query",
                  "type": "string"
                },
                "header.manufacturer": {
                  "location": "query",
                  "type": "string",
                  "description": "Manufacturer of the Android device from the calling SDK, only applicable for the Android SDKs. Field value example: `Samsung`."
                },
                "header.regionCode": {
                  "description": "Required. CLDR region code of the region where the request originates. Field value example: `US`.",
                  "location": "query",
                  "type": "string"
                },
                "header.platform": {
                  "description": "Platform of the calling SDK.",
                  "enumDescriptions": [
                    "The default value. This value is used if the platform is omitted.",
                    "The request is coming from Android.",
                    "The request is coming from iOS.",
                    "The request is coming from the web."
                  ],
                  "type": "string",
                  "enum": [
                    "PLATFORM_UNSPECIFIED",
                    "ANDROID",
                    "IOS",
                    "WEB"
                  ],
                  "location": "query"
                },
                "header.sdkType": {
                  "description": "The type of SDK sending the request.",
                  "enumDescriptions": [
                    "The default value. This value is used if the `sdk_type` is omitted.",
                    "The calling SDK is Consumer.",
                    "The calling SDK is Driver.",
                    "The calling SDK is JavaScript."
                  ],
                  "type": "string",
                  "enum": [
                    "SDK_TYPE_UNSPECIFIED",
                    "CONSUMER",
                    "DRIVER",
                    "JAVASCRIPT"
                  ],
                  "location": "query"
                },
                "header.deviceModel": {
                  "description": "Model of the device on which the calling SDK is running. Field value examples: `iPhone12,1`, `SM-G920F`.",
                  "location": "query",
                  "type": "string"
                },
                "header.mapsSdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the MapSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `5.2.1`."
                },
                "name": {
                  "type": "string",
                  "description": "Required. Must be in the format `providers/{provider}/deliveryVehicles/{delivery_vehicle}`. The `provider` must be the Google Cloud Project ID. For example, `sample-cloud-project`.",
                  "pattern": "^providers/[^/]+/deliveryVehicles/[^/]+$",
                  "required": true,
                  "location": "path"
                }
              }
            },
            "delete": {
              "id": "fleetengine.providers.deliveryVehicles.delete",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/providers/{providersId}/deliveryVehicles/{deliveryVehiclesId}",
              "parameters": {
                "header.deviceModel": {
                  "description": "Model of the device on which the calling SDK is running. Field value examples: `iPhone12,1`, `SM-G920F`.",
                  "location": "query",
                  "type": "string"
                },
                "header.mapsSdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the MapSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `5.2.1`."
                },
                "name": {
                  "description": "Required. Must be in the format `providers/{provider}/deliveryVehicles/{delivery_vehicle}`. The `provider` must be the Google Cloud Project ID. For example, `sample-cloud-project`.",
                  "pattern": "^providers/[^/]+/deliveryVehicles/[^/]+$",
                  "required": true,
                  "type": "string",
                  "location": "path"
                },
                "header.regionCode": {
                  "location": "query",
                  "type": "string",
                  "description": "Required. CLDR region code of the region where the request originates. Field value example: `US`."
                },
                "header.manufacturer": {
                  "description": "Manufacturer of the Android device from the calling SDK, only applicable for the Android SDKs. Field value example: `Samsung`.",
                  "location": "query",
                  "type": "string"
                },
                "header.sdkType": {
                  "description": "The type of SDK sending the request.",
                  "type": "string",
                  "enumDescriptions": [
                    "The default value. This value is used if the `sdk_type` is omitted.",
                    "The calling SDK is Consumer.",
                    "The calling SDK is Driver.",
                    "The calling SDK is JavaScript."
                  ],
                  "enum": [
                    "SDK_TYPE_UNSPECIFIED",
                    "CONSUMER",
                    "DRIVER",
                    "JAVASCRIPT"
                  ],
                  "location": "query"
                },
                "header.platform": {
                  "type": "string",
                  "enumDescriptions": [
                    "The default value. This value is used if the platform is omitted.",
                    "The request is coming from Android.",
                    "The request is coming from iOS.",
                    "The request is coming from the web."
                  ],
                  "description": "Platform of the calling SDK.",
                  "location": "query",
                  "enum": [
                    "PLATFORM_UNSPECIFIED",
                    "ANDROID",
                    "IOS",
                    "WEB"
                  ]
                },
                "header.androidApiLevel": {
                  "description": "Android API level of the calling SDK, only applicable for the Android SDKs. Field value example: `23`.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "header.languageCode": {
                  "description": "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`.",
                  "location": "query",
                  "type": "string"
                },
                "header.osVersion": {
                  "description": "Version of the operating system on which the calling SDK is running. Field value examples: `4.4.1`, `12.1`.",
                  "location": "query",
                  "type": "string"
                },
                "header.traceId": {
                  "description": "Optional ID that can be provided for logging purposes in order to identify the request.",
                  "location": "query",
                  "type": "string"
                },
                "header.sdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the calling SDK, if applicable. The version format is \"major.minor.patch\", example: `1.1.2`."
                },
                "header.navSdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the NavSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `2.1.0`."
                }
              },
              "path": "v1/{+name}",
              "httpMethod": "DELETE",
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Empty"
              },
              "description": "Deletes a DeliveryVehicle from the Fleet Engine. Returns FAILED_PRECONDITION if the DeliveryVehicle has OPEN Tasks assigned to it."
            },
            "list": {
              "flatPath": "v1/providers/{providersId}/deliveryVehicles",
              "parameters": {
                "header.languageCode": {
                  "description": "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`.",
                  "location": "query",
                  "type": "string"
                },
                "viewport.high.latitude": {
                  "location": "query",
                  "type": "number",
                  "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].",
                  "format": "double"
                },
                "header.androidApiLevel": {
                  "description": "Android API level of the calling SDK, only applicable for the Android SDKs. Field value example: `23`.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "header.sdkVersion": {
                  "description": "Version of the calling SDK, if applicable. The version format is \"major.minor.patch\", example: `1.1.2`.",
                  "location": "query",
                  "type": "string"
                },
                "header.navSdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the NavSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `2.1.0`."
                },
                "pageSize": {
                  "location": "query",
                  "type": "integer",
                  "format": "int32",
                  "description": "Optional. The maximum number of vehicles to return. The service may return fewer than this number. If you don't specify this number, then the server determines the number of results to return."
                },
                "header.traceId": {
                  "description": "Optional ID that can be provided for logging purposes in order to identify the request.",
                  "location": "query",
                  "type": "string"
                },
                "header.osVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the operating system on which the calling SDK is running. Field value examples: `4.4.1`, `12.1`."
                },
                "viewport.high.longitude": {
                  "format": "double",
                  "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].",
                  "location": "query",
                  "type": "number"
                },
                "parent": {
                  "type": "string",
                  "description": "Required. Must be in the format `providers/{provider}`. The `provider` must be the Google Cloud Project ID. For example, `sample-cloud-project`.",
                  "pattern": "^providers/[^/]+$",
                  "required": true,
                  "location": "path"
                },
                "header.mapsSdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the MapSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `5.2.1`."
                },
                "header.deviceModel": {
                  "description": "Model of the device on which the calling SDK is running. Field value examples: `iPhone12,1`, `SM-G920F`.",
                  "location": "query",
                  "type": "string"
                },
                "viewport.low.latitude": {
                  "format": "double",
                  "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].",
                  "location": "query",
                  "type": "number"
                },
                "filter": {
                  "location": "query",
                  "type": "string",
                  "description": "Optional. A filter query to apply when listing delivery vehicles. See http://aip.dev/160 for examples of the filter syntax. If you don't specify a value, or if you specify an empty string for the filter, then all delivery vehicles are returned. Note that the only queries supported for `ListDeliveryVehicles` are on vehicle attributes (for example, `attributes. = ` or `attributes. = AND attributes. = `). Also, all attributes are stored as strings, so the only supported comparisons against attributes are string comparisons. In order to compare against number or boolean values, the values must be explicitly quoted to be treated as strings (for example, `attributes. = \"10\"` or `attributes. = \"true\"`). The maximum number of restrictions allowed in a filter query is 50. A restriction is a part of the query of the form `attribute. `, for example `attributes.foo = bar` is 1 restriction."
                },
                "viewport.low.longitude": {
                  "format": "double",
                  "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].",
                  "location": "query",
                  "type": "number"
                },
                "pageToken": {
                  "location": "query",
                  "type": "string",
                  "description": "Optional. A page token, received from a previous `ListDeliveryVehicles` call. You must provide this in order to retrieve the subsequent page. When paginating, all other parameters provided to `ListDeliveryVehicles` must match the call that provided the page token."
                },
                "header.sdkType": {
                  "description": "The type of SDK sending the request.",
                  "type": "string",
                  "enumDescriptions": [
                    "The default value. This value is used if the `sdk_type` is omitted.",
                    "The calling SDK is Consumer.",
                    "The calling SDK is Driver.",
                    "The calling SDK is JavaScript."
                  ],
                  "enum": [
                    "SDK_TYPE_UNSPECIFIED",
                    "CONSUMER",
                    "DRIVER",
                    "JAVASCRIPT"
                  ],
                  "location": "query"
                },
                "header.platform": {
                  "enum": [
                    "PLATFORM_UNSPECIFIED",
                    "ANDROID",
                    "IOS",
                    "WEB"
                  ],
                  "location": "query",
                  "description": "Platform of the calling SDK.",
                  "enumDescriptions": [
                    "The default value. This value is used if the platform is omitted.",
                    "The request is coming from Android.",
                    "The request is coming from iOS.",
                    "The request is coming from the web."
                  ],
                  "type": "string"
                },
                "header.regionCode": {
                  "location": "query",
                  "type": "string",
                  "description": "Required. CLDR region code of the region where the request originates. Field value example: `US`."
                },
                "header.manufacturer": {
                  "location": "query",
                  "type": "string",
                  "description": "Manufacturer of the Android device from the calling SDK, only applicable for the Android SDKs. Field value example: `Samsung`."
                }
              },
              "id": "fleetengine.providers.deliveryVehicles.list",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "ListDeliveryVehiclesResponse"
              },
              "description": "Gets all `DeliveryVehicle`s that meet the specified filtering criteria.",
              "httpMethod": "GET",
              "path": "v1/{+parent}/deliveryVehicles"
            },
            "create": {
              "path": "v1/{+parent}/deliveryVehicles",
              "request": {
                "$ref": "DeliveryVehicle"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "DeliveryVehicle"
              },
              "description": "Creates and returns a new `DeliveryVehicle`.",
              "flatPath": "v1/providers/{providersId}/deliveryVehicles",
              "parameters": {
                "header.traceId": {
                  "location": "query",
                  "type": "string",
                  "description": "Optional ID that can be provided for logging purposes in order to identify the request."
                },
                "header.osVersion": {
                  "description": "Version of the operating system on which the calling SDK is running. Field value examples: `4.4.1`, `12.1`.",
                  "location": "query",
                  "type": "string"
                },
                "parent": {
                  "description": "Required. Must be in the format `providers/{provider}`. The provider must be the Google Cloud Project ID. For example, `sample-cloud-project`.",
                  "pattern": "^providers/[^/]+$",
                  "required": true,
                  "type": "string",
                  "location": "path"
                },
                "header.sdkVersion": {
                  "description": "Version of the calling SDK, if applicable. The version format is \"major.minor.patch\", example: `1.1.2`.",
                  "location": "query",
                  "type": "string"
                },
                "header.navSdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the NavSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `2.1.0`."
                },
                "header.androidApiLevel": {
                  "location": "query",
                  "type": "integer",
                  "description": "Android API level of the calling SDK, only applicable for the Android SDKs. Field value example: `23`.",
                  "format": "int32"
                },
                "header.languageCode": {
                  "description": "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`.",
                  "location": "query",
                  "type": "string"
                },
                "header.sdkType": {
                  "enumDescriptions": [
                    "The default value. This value is used if the `sdk_type` is omitted.",
                    "The calling SDK is Consumer.",
                    "The calling SDK is Driver.",
                    "The calling SDK is JavaScript."
                  ],
                  "type": "string",
                  "description": "The type of SDK sending the request.",
                  "location": "query",
                  "enum": [
                    "SDK_TYPE_UNSPECIFIED",
                    "CONSUMER",
                    "DRIVER",
                    "JAVASCRIPT"
                  ]
                },
                "header.platform": {
                  "location": "query",
                  "enum": [
                    "PLATFORM_UNSPECIFIED",
                    "ANDROID",
                    "IOS",
                    "WEB"
                  ],
                  "type": "string",
                  "enumDescriptions": [
                    "The default value. This value is used if the platform is omitted.",
                    "The request is coming from Android.",
                    "The request is coming from iOS.",
                    "The request is coming from the web."
                  ],
                  "description": "Platform of the calling SDK."
                },
                "header.regionCode": {
                  "location": "query",
                  "type": "string",
                  "description": "Required. CLDR region code of the region where the request originates. Field value example: `US`."
                },
                "header.manufacturer": {
                  "description": "Manufacturer of the Android device from the calling SDK, only applicable for the Android SDKs. Field value example: `Samsung`.",
                  "location": "query",
                  "type": "string"
                },
                "header.deviceModel": {
                  "location": "query",
                  "type": "string",
                  "description": "Model of the device on which the calling SDK is running. Field value examples: `iPhone12,1`, `SM-G920F`."
                },
                "header.mapsSdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the MapSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `5.2.1`."
                },
                "deliveryVehicleId": {
                  "description": "Required. The Delivery Vehicle ID must be unique and subject to the following restrictions: * Must be a valid Unicode string. * Limited to a maximum length of 64 characters. * Normalized according to [Unicode Normalization Form C] (http://www.unicode.org/reports/tr15/). * May not contain any of the following ASCII characters: '/', ':', '?', ',', or '#'.",
                  "location": "query",
                  "type": "string"
                }
              },
              "id": "fleetengine.providers.deliveryVehicles.create",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "patch": {
              "path": "v1/{+name}",
              "request": {
                "$ref": "DeliveryVehicle"
              },
              "httpMethod": "PATCH",
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "DeliveryVehicle"
              },
              "description": "Writes updated `DeliveryVehicle` data to Fleet Engine, and assigns `Tasks` to the `DeliveryVehicle`. You cannot update the name of the `DeliveryVehicle`. You *can* update `remaining_vehicle_journey_segments`, but it must contain all of the `VehicleJourneySegment`s to be persisted on the `DeliveryVehicle`. The `task_id`s are retrieved from `remaining_vehicle_journey_segments`, and their corresponding `Tasks` are assigned to the `DeliveryVehicle` if they have not yet been assigned.",
              "id": "fleetengine.providers.deliveryVehicles.patch",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/providers/{providersId}/deliveryVehicles/{deliveryVehiclesId}",
              "parameters": {
                "header.languageCode": {
                  "description": "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`.",
                  "location": "query",
                  "type": "string"
                },
                "updateMask": {
                  "location": "query",
                  "type": "string",
                  "description": "Required. A field mask that indicates which `DeliveryVehicle` fields to update. Note that the update_mask must contain at least one field. This is a comma-separated list of fully qualified names of fields. Example: `\"remaining_vehicle_journey_segments\"`.",
                  "format": "google-fieldmask"
                },
                "header.androidApiLevel": {
                  "description": "Android API level of the calling SDK, only applicable for the Android SDKs. Field value example: `23`.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "header.sdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the calling SDK, if applicable. The version format is \"major.minor.patch\", example: `1.1.2`."
                },
                "header.navSdkVersion": {
                  "description": "Version of the NavSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `2.1.0`.",
                  "location": "query",
                  "type": "string"
                },
                "header.traceId": {
                  "location": "query",
                  "type": "string",
                  "description": "Optional ID that can be provided for logging purposes in order to identify the request."
                },
                "header.osVersion": {
                  "description": "Version of the operating system on which the calling SDK is running. Field value examples: `4.4.1`, `12.1`.",
                  "location": "query",
                  "type": "string"
                },
                "name": {
                  "location": "path",
                  "description": "The unique name of this Delivery Vehicle. The format is `providers/{provider}/deliveryVehicles/{vehicle}`.",
                  "pattern": "^providers/[^/]+/deliveryVehicles/[^/]+$",
                  "required": true,
                  "type": "string"
                },
                "header.mapsSdkVersion": {
                  "description": "Version of the MapSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `5.2.1`.",
                  "location": "query",
                  "type": "string"
                },
                "header.deviceModel": {
                  "location": "query",
                  "type": "string",
                  "description": "Model of the device on which the calling SDK is running. Field value examples: `iPhone12,1`, `SM-G920F`."
                },
                "header.platform": {
                  "description": "Platform of the calling SDK.",
                  "type": "string",
                  "enumDescriptions": [
                    "The default value. This value is used if the platform is omitted.",
                    "The request is coming from Android.",
                    "The request is coming from iOS.",
                    "The request is coming from the web."
                  ],
                  "enum": [
                    "PLATFORM_UNSPECIFIED",
                    "ANDROID",
                    "IOS",
                    "WEB"
                  ],
                  "location": "query"
                },
                "header.sdkType": {
                  "enumDescriptions": [
                    "The default value. This value is used if the `sdk_type` is omitted.",
                    "The calling SDK is Consumer.",
                    "The calling SDK is Driver.",
                    "The calling SDK is JavaScript."
                  ],
                  "type": "string",
                  "description": "The type of SDK sending the request.",
                  "location": "query",
                  "enum": [
                    "SDK_TYPE_UNSPECIFIED",
                    "CONSUMER",
                    "DRIVER",
                    "JAVASCRIPT"
                  ]
                },
                "header.manufacturer": {
                  "description": "Manufacturer of the Android device from the calling SDK, only applicable for the Android SDKs. Field value example: `Samsung`.",
                  "location": "query",
                  "type": "string"
                },
                "header.regionCode": {
                  "location": "query",
                  "type": "string",
                  "description": "Required. CLDR region code of the region where the request originates. Field value example: `US`."
                }
              }
            }
          }
        },
        "tasks": {
          "methods": {
            "create": {
              "path": "v1/{+parent}/tasks",
              "request": {
                "$ref": "Task"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "Task"
              },
              "description": "Creates and returns a new `Task` object.",
              "flatPath": "v1/providers/{providersId}/tasks",
              "parameters": {
                "header.platform": {
                  "enum": [
                    "PLATFORM_UNSPECIFIED",
                    "ANDROID",
                    "IOS",
                    "WEB"
                  ],
                  "location": "query",
                  "description": "Platform of the calling SDK.",
                  "type": "string",
                  "enumDescriptions": [
                    "The default value. This value is used if the platform is omitted.",
                    "The request is coming from Android.",
                    "The request is coming from iOS.",
                    "The request is coming from the web."
                  ]
                },
                "header.sdkType": {
                  "enumDescriptions": [
                    "The default value. This value is used if the `sdk_type` is omitted.",
                    "The calling SDK is Consumer.",
                    "The calling SDK is Driver.",
                    "The calling SDK is JavaScript."
                  ],
                  "type": "string",
                  "description": "The type of SDK sending the request.",
                  "location": "query",
                  "enum": [
                    "SDK_TYPE_UNSPECIFIED",
                    "CONSUMER",
                    "DRIVER",
                    "JAVASCRIPT"
                  ]
                },
                "header.manufacturer": {
                  "description": "Manufacturer of the Android device from the calling SDK, only applicable for the Android SDKs. Field value example: `Samsung`.",
                  "location": "query",
                  "type": "string"
                },
                "header.regionCode": {
                  "location": "query",
                  "type": "string",
                  "description": "Required. CLDR region code of the region where the request originates. Field value example: `US`."
                },
                "header.mapsSdkVersion": {
                  "description": "Version of the MapSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `5.2.1`.",
                  "location": "query",
                  "type": "string"
                },
                "header.deviceModel": {
                  "location": "query",
                  "type": "string",
                  "description": "Model of the device on which the calling SDK is running. Field value examples: `iPhone12,1`, `SM-G920F`."
                },
                "header.sdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the calling SDK, if applicable. The version format is \"major.minor.patch\", example: `1.1.2`."
                },
                "header.navSdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the NavSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `2.1.0`."
                },
                "header.traceId": {
                  "description": "Optional ID that can be provided for logging purposes in order to identify the request.",
                  "location": "query",
                  "type": "string"
                },
                "parent": {
                  "location": "path",
                  "type": "string",
                  "description": "Required. Must be in the format `providers/{provider}`. The `provider` must be the Google Cloud Project ID. For example, `sample-cloud-project`.",
                  "pattern": "^providers/[^/]+$",
                  "required": true
                },
                "header.osVersion": {
                  "description": "Version of the operating system on which the calling SDK is running. Field value examples: `4.4.1`, `12.1`.",
                  "location": "query",
                  "type": "string"
                },
                "header.languageCode": {
                  "description": "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`.",
                  "location": "query",
                  "type": "string"
                },
                "taskId": {
                  "location": "query",
                  "type": "string",
                  "description": "Required. The Task ID must be unique, but it should be not a shipment tracking ID. To store a shipment tracking ID, use the `tracking_id` field. Note that multiple tasks can have the same `tracking_id`. Task IDs are subject to the following restrictions: * Must be a valid Unicode string. * Limited to a maximum length of 64 characters. * Normalized according to [Unicode Normalization Form C] (http://www.unicode.org/reports/tr15/). * May not contain any of the following ASCII characters: '/', ':', '?', ',', or '#'."
                },
                "header.androidApiLevel": {
                  "location": "query",
                  "type": "integer",
                  "format": "int32",
                  "description": "Android API level of the calling SDK, only applicable for the Android SDKs. Field value example: `23`."
                }
              },
              "id": "fleetengine.providers.tasks.create",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "batchCreate": {
              "path": "v1/{+parent}/tasks:batchCreate",
              "request": {
                "$ref": "BatchCreateTasksRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "BatchCreateTasksResponse"
              },
              "description": "Creates and returns a batch of new `Task` objects.",
              "id": "fleetengine.providers.tasks.batchCreate",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/providers/{providersId}/tasks:batchCreate",
              "parameters": {
                "parent": {
                  "location": "path",
                  "description": "Required. The parent resource shared by all tasks. This value must be in the format `providers/{provider}`. The `provider` must be the Google Cloud Project ID. For example, `sample-cloud-project`. The parent field in the `CreateTaskRequest` messages must either be empty, or it must match this field.",
                  "pattern": "^providers/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              }
            },
            "patch": {
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Task"
              },
              "description": "Updates `Task` data.",
              "httpMethod": "PATCH",
              "path": "v1/{+name}",
              "request": {
                "$ref": "Task"
              },
              "flatPath": "v1/providers/{providersId}/tasks/{tasksId}",
              "parameters": {
                "header.deviceModel": {
                  "location": "query",
                  "type": "string",
                  "description": "Model of the device on which the calling SDK is running. Field value examples: `iPhone12,1`, `SM-G920F`."
                },
                "header.mapsSdkVersion": {
                  "description": "Version of the MapSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `5.2.1`.",
                  "location": "query",
                  "type": "string"
                },
                "name": {
                  "type": "string",
                  "description": "Must be in the format `providers/{provider}/tasks/{task}`.",
                  "pattern": "^providers/[^/]+/tasks/[^/]+$",
                  "required": true,
                  "location": "path"
                },
                "header.regionCode": {
                  "description": "Required. CLDR region code of the region where the request originates. Field value example: `US`.",
                  "location": "query",
                  "type": "string"
                },
                "header.manufacturer": {
                  "description": "Manufacturer of the Android device from the calling SDK, only applicable for the Android SDKs. Field value example: `Samsung`.",
                  "location": "query",
                  "type": "string"
                },
                "header.sdkType": {
                  "type": "string",
                  "enumDescriptions": [
                    "The default value. This value is used if the `sdk_type` is omitted.",
                    "The calling SDK is Consumer.",
                    "The calling SDK is Driver.",
                    "The calling SDK is JavaScript."
                  ],
                  "description": "The type of SDK sending the request.",
                  "location": "query",
                  "enum": [
                    "SDK_TYPE_UNSPECIFIED",
                    "CONSUMER",
                    "DRIVER",
                    "JAVASCRIPT"
                  ]
                },
                "header.platform": {
                  "location": "query",
                  "enum": [
                    "PLATFORM_UNSPECIFIED",
                    "ANDROID",
                    "IOS",
                    "WEB"
                  ],
                  "enumDescriptions": [
                    "The default value. This value is used if the platform is omitted.",
                    "The request is coming from Android.",
                    "The request is coming from iOS.",
                    "The request is coming from the web."
                  ],
                  "type": "string",
                  "description": "Platform of the calling SDK."
                },
                "header.androidApiLevel": {
                  "location": "query",
                  "type": "integer",
                  "format": "int32",
                  "description": "Android API level of the calling SDK, only applicable for the Android SDKs. Field value example: `23`."
                },
                "header.languageCode": {
                  "description": "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`.",
                  "location": "query",
                  "type": "string"
                },
                "updateMask": {
                  "location": "query",
                  "type": "string",
                  "description": "Required. The field mask that indicates which Task fields to update. Note: The `update_mask` must contain at least one field. This is a comma-separated list of fully qualified names of fields. Example: `\"task_outcome,task_outcome_time,task_outcome_location\"`.",
                  "format": "google-fieldmask"
                },
                "header.osVersion": {
                  "description": "Version of the operating system on which the calling SDK is running. Field value examples: `4.4.1`, `12.1`.",
                  "location": "query",
                  "type": "string"
                },
                "header.traceId": {
                  "location": "query",
                  "type": "string",
                  "description": "Optional ID that can be provided for logging purposes in order to identify the request."
                },
                "header.sdkVersion": {
                  "description": "Version of the calling SDK, if applicable. The version format is \"major.minor.patch\", example: `1.1.2`.",
                  "location": "query",
                  "type": "string"
                },
                "header.navSdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the NavSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `2.1.0`."
                }
              },
              "id": "fleetengine.providers.tasks.patch",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "get": {
              "id": "fleetengine.providers.tasks.get",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/providers/{providersId}/tasks/{tasksId}",
              "parameters": {
                "header.manufacturer": {
                  "description": "Manufacturer of the Android device from the calling SDK, only applicable for the Android SDKs. Field value example: `Samsung`.",
                  "location": "query",
                  "type": "string"
                },
                "header.regionCode": {
                  "description": "Required. CLDR region code of the region where the request originates. Field value example: `US`.",
                  "location": "query",
                  "type": "string"
                },
                "header.platform": {
                  "description": "Platform of the calling SDK.",
                  "enumDescriptions": [
                    "The default value. This value is used if the platform is omitted.",
                    "The request is coming from Android.",
                    "The request is coming from iOS.",
                    "The request is coming from the web."
                  ],
                  "type": "string",
                  "enum": [
                    "PLATFORM_UNSPECIFIED",
                    "ANDROID",
                    "IOS",
                    "WEB"
                  ],
                  "location": "query"
                },
                "header.sdkType": {
                  "location": "query",
                  "enum": [
                    "SDK_TYPE_UNSPECIFIED",
                    "CONSUMER",
                    "DRIVER",
                    "JAVASCRIPT"
                  ],
                  "type": "string",
                  "enumDescriptions": [
                    "The default value. This value is used if the `sdk_type` is omitted.",
                    "The calling SDK is Consumer.",
                    "The calling SDK is Driver.",
                    "The calling SDK is JavaScript."
                  ],
                  "description": "The type of SDK sending the request."
                },
                "header.deviceModel": {
                  "location": "query",
                  "type": "string",
                  "description": "Model of the device on which the calling SDK is running. Field value examples: `iPhone12,1`, `SM-G920F`."
                },
                "header.mapsSdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the MapSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `5.2.1`."
                },
                "name": {
                  "description": "Required. Must be in the format `providers/{provider}/tasks/{task}`. The `provider` must be the Google Cloud Project ID. For example, `sample-cloud-project`.",
                  "pattern": "^providers/[^/]+/tasks/[^/]+$",
                  "required": true,
                  "type": "string",
                  "location": "path"
                },
                "header.osVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the operating system on which the calling SDK is running. Field value examples: `4.4.1`, `12.1`."
                },
                "header.traceId": {
                  "location": "query",
                  "type": "string",
                  "description": "Optional ID that can be provided for logging purposes in order to identify the request."
                },
                "header.sdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the calling SDK, if applicable. The version format is \"major.minor.patch\", example: `1.1.2`."
                },
                "header.navSdkVersion": {
                  "description": "Version of the NavSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `2.1.0`.",
                  "location": "query",
                  "type": "string"
                },
                "header.androidApiLevel": {
                  "format": "int32",
                  "description": "Android API level of the calling SDK, only applicable for the Android SDKs. Field value example: `23`.",
                  "location": "query",
                  "type": "integer"
                },
                "header.languageCode": {
                  "description": "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`.",
                  "location": "query",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Task"
              },
              "description": "Gets information about a `Task`.",
              "httpMethod": "GET",
              "path": "v1/{+name}"
            },
            "delete": {
              "id": "fleetengine.providers.tasks.delete",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/providers/{providersId}/tasks/{tasksId}",
              "parameters": {
                "header.manufacturer": {
                  "description": "Manufacturer of the Android device from the calling SDK, only applicable for the Android SDKs. Field value example: `Samsung`.",
                  "location": "query",
                  "type": "string"
                },
                "header.regionCode": {
                  "location": "query",
                  "type": "string",
                  "description": "Required. CLDR region code of the region where the request originates. Field value example: `US`."
                },
                "header.platform": {
                  "enum": [
                    "PLATFORM_UNSPECIFIED",
                    "ANDROID",
                    "IOS",
                    "WEB"
                  ],
                  "location": "query",
                  "description": "Platform of the calling SDK.",
                  "type": "string",
                  "enumDescriptions": [
                    "The default value. This value is used if the platform is omitted.",
                    "The request is coming from Android.",
                    "The request is coming from iOS.",
                    "The request is coming from the web."
                  ]
                },
                "header.sdkType": {
                  "description": "The type of SDK sending the request.",
                  "enumDescriptions": [
                    "The default value. This value is used if the `sdk_type` is omitted.",
                    "The calling SDK is Consumer.",
                    "The calling SDK is Driver.",
                    "The calling SDK is JavaScript."
                  ],
                  "type": "string",
                  "enum": [
                    "SDK_TYPE_UNSPECIFIED",
                    "CONSUMER",
                    "DRIVER",
                    "JAVASCRIPT"
                  ],
                  "location": "query"
                },
                "header.mapsSdkVersion": {
                  "description": "Version of the MapSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `5.2.1`.",
                  "location": "query",
                  "type": "string"
                },
                "name": {
                  "description": "Required. Must be in the format `providers/{provider}/tasks/{task}`. The `provider` must be the Google Cloud Project ID. For example, `sample-cloud-project`.",
                  "pattern": "^providers/[^/]+/tasks/[^/]+$",
                  "required": true,
                  "type": "string",
                  "location": "path"
                },
                "header.deviceModel": {
                  "description": "Model of the device on which the calling SDK is running. Field value examples: `iPhone12,1`, `SM-G920F`.",
                  "location": "query",
                  "type": "string"
                },
                "header.sdkVersion": {
                  "description": "Version of the calling SDK, if applicable. The version format is \"major.minor.patch\", example: `1.1.2`.",
                  "location": "query",
                  "type": "string"
                },
                "header.navSdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the NavSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `2.1.0`."
                },
                "header.osVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the operating system on which the calling SDK is running. Field value examples: `4.4.1`, `12.1`."
                },
                "header.traceId": {
                  "description": "Optional ID that can be provided for logging purposes in order to identify the request.",
                  "location": "query",
                  "type": "string"
                },
                "header.languageCode": {
                  "location": "query",
                  "type": "string",
                  "description": "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`."
                },
                "header.androidApiLevel": {
                  "format": "int32",
                  "description": "Android API level of the calling SDK, only applicable for the Android SDKs. Field value example: `23`.",
                  "location": "query",
                  "type": "integer"
                }
              },
              "httpMethod": "DELETE",
              "path": "v1/{+name}",
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Empty"
              },
              "description": "Deletes a single Task. Returns FAILED_PRECONDITION if the Task is OPEN and assigned to a DeliveryVehicle."
            },
            "list": {
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "ListTasksResponse"
              },
              "description": "Gets all `Task`s that meet the specified filtering criteria.",
              "path": "v1/{+parent}/tasks",
              "httpMethod": "GET",
              "id": "fleetengine.providers.tasks.list",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/providers/{providersId}/tasks",
              "parameters": {
                "header.languageCode": {
                  "description": "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`.",
                  "location": "query",
                  "type": "string"
                },
                "header.androidApiLevel": {
                  "location": "query",
                  "type": "integer",
                  "format": "int32",
                  "description": "Android API level of the calling SDK, only applicable for the Android SDKs. Field value example: `23`."
                },
                "header.sdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the calling SDK, if applicable. The version format is \"major.minor.patch\", example: `1.1.2`."
                },
                "header.navSdkVersion": {
                  "description": "Version of the NavSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `2.1.0`.",
                  "location": "query",
                  "type": "string"
                },
                "pageSize": {
                  "location": "query",
                  "type": "integer",
                  "format": "int32",
                  "description": "Optional. The maximum number of Tasks to return. The service may return fewer than this value. If you don't specify this value, then the server determines the number of results to return."
                },
                "header.traceId": {
                  "location": "query",
                  "type": "string",
                  "description": "Optional ID that can be provided for logging purposes in order to identify the request."
                },
                "header.osVersion": {
                  "description": "Version of the operating system on which the calling SDK is running. Field value examples: `4.4.1`, `12.1`.",
                  "location": "query",
                  "type": "string"
                },
                "parent": {
                  "location": "path",
                  "type": "string",
                  "description": "Required. Must be in the format `providers/{provider}`. The `provider` must be the Google Cloud Project ID. For example, `sample-cloud-project`.",
                  "pattern": "^providers/[^/]+$",
                  "required": true
                },
                "header.mapsSdkVersion": {
                  "description": "Version of the MapSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `5.2.1`.",
                  "location": "query",
                  "type": "string"
                },
                "header.deviceModel": {
                  "description": "Model of the device on which the calling SDK is running. Field value examples: `iPhone12,1`, `SM-G920F`.",
                  "location": "query",
                  "type": "string"
                },
                "filter": {
                  "location": "query",
                  "type": "string",
                  "description": "Optional. A filter query to apply when listing Tasks. See http://aip.dev/160 for examples of filter syntax. If you don't specify a value, or if you filter on an empty string, then all Tasks are returned. For information about the Task properties that you can filter on, see [List tasks](https://developers.google.com/maps/documentation/mobility/fleet-engine/journeys/tasks/find-tasks#filter_listed_tasks)."
                },
                "pageToken": {
                  "description": "Optional. A page token received from a previous `ListTasks` call. You can provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListTasks` must match the call that provided the page token.",
                  "location": "query",
                  "type": "string"
                },
                "header.sdkType": {
                  "description": "The type of SDK sending the request.",
                  "enumDescriptions": [
                    "The default value. This value is used if the `sdk_type` is omitted.",
                    "The calling SDK is Consumer.",
                    "The calling SDK is Driver.",
                    "The calling SDK is JavaScript."
                  ],
                  "type": "string",
                  "enum": [
                    "SDK_TYPE_UNSPECIFIED",
                    "CONSUMER",
                    "DRIVER",
                    "JAVASCRIPT"
                  ],
                  "location": "query"
                },
                "header.platform": {
                  "enumDescriptions": [
                    "The default value. This value is used if the platform is omitted.",
                    "The request is coming from Android.",
                    "The request is coming from iOS.",
                    "The request is coming from the web."
                  ],
                  "type": "string",
                  "description": "Platform of the calling SDK.",
                  "location": "query",
                  "enum": [
                    "PLATFORM_UNSPECIFIED",
                    "ANDROID",
                    "IOS",
                    "WEB"
                  ]
                },
                "header.regionCode": {
                  "location": "query",
                  "type": "string",
                  "description": "Required. CLDR region code of the region where the request originates. Field value example: `US`."
                },
                "header.manufacturer": {
                  "location": "query",
                  "type": "string",
                  "description": "Manufacturer of the Android device from the calling SDK, only applicable for the Android SDKs. Field value example: `Samsung`."
                }
              }
            }
          }
        },
        "trips": {
          "methods": {
            "create": {
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "Trip"
              },
              "description": "Creates a trip in the Fleet Engine and returns the new trip.",
              "httpMethod": "POST",
              "path": "v1/{+parent}/trips",
              "request": {
                "$ref": "Trip"
              },
              "flatPath": "v1/providers/{providersId}/trips",
              "parameters": {
                "header.regionCode": {
                  "location": "query",
                  "type": "string",
                  "description": "Required. CLDR region code of the region where the request originates. Field value example: `US`."
                },
                "header.manufacturer": {
                  "description": "Manufacturer of the Android device from the calling SDK, only applicable for the Android SDKs. Field value example: `Samsung`.",
                  "location": "query",
                  "type": "string"
                },
                "header.sdkType": {
                  "enumDescriptions": [
                    "The default value. This value is used if the `sdk_type` is omitted.",
                    "The calling SDK is Consumer.",
                    "The calling SDK is Driver.",
                    "The calling SDK is JavaScript."
                  ],
                  "type": "string",
                  "description": "The type of SDK sending the request.",
                  "location": "query",
                  "enum": [
                    "SDK_TYPE_UNSPECIFIED",
                    "CONSUMER",
                    "DRIVER",
                    "JAVASCRIPT"
                  ]
                },
                "header.platform": {
                  "description": "Platform of the calling SDK.",
                  "type": "string",
                  "enumDescriptions": [
                    "The default value. This value is used if the platform is omitted.",
                    "The request is coming from Android.",
                    "The request is coming from iOS.",
                    "The request is coming from the web."
                  ],
                  "enum": [
                    "PLATFORM_UNSPECIFIED",
                    "ANDROID",
                    "IOS",
                    "WEB"
                  ],
                  "location": "query"
                },
                "header.mapsSdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the MapSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `5.2.1`."
                },
                "header.deviceModel": {
                  "location": "query",
                  "type": "string",
                  "description": "Model of the device on which the calling SDK is running. Field value examples: `iPhone12,1`, `SM-G920F`."
                },
                "tripId": {
                  "location": "query",
                  "type": "string",
                  "description": "Required. Unique Trip ID. Subject to the following restrictions: * Must be a valid Unicode string. * Limited to a maximum length of 64 characters. * Normalized according to [Unicode Normalization Form C] (http://www.unicode.org/reports/tr15/). * May not contain any of the following ASCII characters: '/', ':', '?', ',', or '#'."
                },
                "header.sdkVersion": {
                  "description": "Version of the calling SDK, if applicable. The version format is \"major.minor.patch\", example: `1.1.2`.",
                  "location": "query",
                  "type": "string"
                },
                "header.navSdkVersion": {
                  "description": "Version of the NavSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `2.1.0`.",
                  "location": "query",
                  "type": "string"
                },
                "header.osVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the operating system on which the calling SDK is running. Field value examples: `4.4.1`, `12.1`."
                },
                "parent": {
                  "location": "path",
                  "type": "string",
                  "description": "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.",
                  "pattern": "^providers/[^/]+$",
                  "required": true
                },
                "header.traceId": {
                  "description": "Optional ID that can be provided for logging purposes in order to identify the request.",
                  "location": "query",
                  "type": "string"
                },
                "header.languageCode": {
                  "location": "query",
                  "type": "string",
                  "description": "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`."
                },
                "header.androidApiLevel": {
                  "location": "query",
                  "type": "integer",
                  "format": "int32",
                  "description": "Android API level of the calling SDK, only applicable for the Android SDKs. Field value example: `23`."
                }
              },
              "id": "fleetengine.providers.trips.create",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "update": {
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Trip"
              },
              "description": "Updates trip data.",
              "path": "v1/{+name}",
              "request": {
                "$ref": "Trip"
              },
              "httpMethod": "PUT",
              "flatPath": "v1/providers/{providersId}/trips/{tripsId}",
              "parameters": {
                "header.androidApiLevel": {
                  "description": "Android API level of the calling SDK, only applicable for the Android SDKs. Field value example: `23`.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "header.languageCode": {
                  "description": "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`.",
                  "location": "query",
                  "type": "string"
                },
                "updateMask": {
                  "location": "query",
                  "type": "string",
                  "format": "google-fieldmask",
                  "description": "Required. The field mask indicating which fields in Trip to update. The `update_mask` must contain at least one field."
                },
                "header.traceId": {
                  "location": "query",
                  "type": "string",
                  "description": "Optional ID that can be provided for logging purposes in order to identify the request."
                },
                "header.osVersion": {
                  "description": "Version of the operating system on which the calling SDK is running. Field value examples: `4.4.1`, `12.1`.",
                  "location": "query",
                  "type": "string"
                },
                "header.sdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the calling SDK, if applicable. The version format is \"major.minor.patch\", example: `1.1.2`."
                },
                "header.navSdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the NavSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `2.1.0`."
                },
                "header.deviceModel": {
                  "description": "Model of the device on which the calling SDK is running. Field value examples: `iPhone12,1`, `SM-G920F`.",
                  "location": "query",
                  "type": "string"
                },
                "name": {
                  "location": "path",
                  "description": "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 Cloud Project of which the service account making this call is a member.",
                  "pattern": "^providers/[^/]+/trips/[^/]+$",
                  "required": true,
                  "type": "string"
                },
                "header.mapsSdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the MapSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `5.2.1`."
                },
                "header.sdkType": {
                  "location": "query",
                  "enum": [
                    "SDK_TYPE_UNSPECIFIED",
                    "CONSUMER",
                    "DRIVER",
                    "JAVASCRIPT"
                  ],
                  "type": "string",
                  "enumDescriptions": [
                    "The default value. This value is used if the `sdk_type` is omitted.",
                    "The calling SDK is Consumer.",
                    "The calling SDK is Driver.",
                    "The calling SDK is JavaScript."
                  ],
                  "description": "The type of SDK sending the request."
                },
                "header.platform": {
                  "type": "string",
                  "enumDescriptions": [
                    "The default value. This value is used if the platform is omitted.",
                    "The request is coming from Android.",
                    "The request is coming from iOS.",
                    "The request is coming from the web."
                  ],
                  "description": "Platform of the calling SDK.",
                  "location": "query",
                  "enum": [
                    "PLATFORM_UNSPECIFIED",
                    "ANDROID",
                    "IOS",
                    "WEB"
                  ]
                },
                "header.regionCode": {
                  "description": "Required. CLDR region code of the region where the request originates. Field value example: `US`.",
                  "location": "query",
                  "type": "string"
                },
                "header.manufacturer": {
                  "description": "Manufacturer of the Android device from the calling SDK, only applicable for the Android SDKs. Field value example: `Samsung`.",
                  "location": "query",
                  "type": "string"
                }
              },
              "id": "fleetengine.providers.trips.update",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "get": {
              "id": "fleetengine.providers.trips.get",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/providers/{providersId}/trips/{tripsId}",
              "parameters": {
                "header.regionCode": {
                  "description": "Required. CLDR region code of the region where the request originates. Field value example: `US`.",
                  "location": "query",
                  "type": "string"
                },
                "remainingWaypointsRouteVersion": {
                  "location": "query",
                  "type": "string",
                  "format": "google-datetime",
                  "description": "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."
                },
                "header.manufacturer": {
                  "description": "Manufacturer of the Android device from the calling SDK, only applicable for the Android SDKs. Field value example: `Samsung`.",
                  "location": "query",
                  "type": "string"
                },
                "header.sdkType": {
                  "description": "The type of SDK sending the request.",
                  "type": "string",
                  "enumDescriptions": [
                    "The default value. This value is used if the `sdk_type` is omitted.",
                    "The calling SDK is Consumer.",
                    "The calling SDK is Driver.",
                    "The calling SDK is JavaScript."
                  ],
                  "enum": [
                    "SDK_TYPE_UNSPECIFIED",
                    "CONSUMER",
                    "DRIVER",
                    "JAVASCRIPT"
                  ],
                  "location": "query"
                },
                "currentRouteSegmentTrafficVersion": {
                  "description": "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.",
                  "format": "google-datetime",
                  "location": "query",
                  "type": "string"
                },
                "header.platform": {
                  "description": "Platform of the calling SDK.",
                  "enumDescriptions": [
                    "The default value. This value is used if the platform is omitted.",
                    "The request is coming from Android.",
                    "The request is coming from iOS.",
                    "The request is coming from the web."
                  ],
                  "type": "string",
                  "enum": [
                    "PLATFORM_UNSPECIFIED",
                    "ANDROID",
                    "IOS",
                    "WEB"
                  ],
                  "location": "query"
                },
                "currentRouteSegmentVersion": {
                  "description": "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.",
                  "format": "google-datetime",
                  "location": "query",
                  "type": "string"
                },
                "header.mapsSdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the MapSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `5.2.1`."
                },
                "name": {
                  "location": "path",
                  "type": "string",
                  "description": "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.",
                  "pattern": "^providers/[^/]+/trips/[^/]+$",
                  "required": true
                },
                "header.deviceModel": {
                  "description": "Model of the device on which the calling SDK is running. Field value examples: `iPhone12,1`, `SM-G920F`.",
                  "location": "query",
                  "type": "string"
                },
                "header.sdkVersion": {
                  "description": "Version of the calling SDK, if applicable. The version format is \"major.minor.patch\", example: `1.1.2`.",
                  "location": "query",
                  "type": "string"
                },
                "header.navSdkVersion": {
                  "description": "Version of the NavSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `2.1.0`.",
                  "location": "query",
                  "type": "string"
                },
                "header.osVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the operating system on which the calling SDK is running. Field value examples: `4.4.1`, `12.1`."
                },
                "header.traceId": {
                  "location": "query",
                  "type": "string",
                  "description": "Optional ID that can be provided for logging purposes in order to identify the request."
                },
                "view": {
                  "location": "query",
                  "enum": [
                    "TRIP_VIEW_UNSPECIFIED",
                    "SDK",
                    "JOURNEY_SHARING_V1S"
                  ],
                  "enumDescriptions": [
                    "The default value. For backwards-compatibility, the API will default to an SDK view. To ensure stability and support, customers are advised to select a `TripView` other than `SDK`.",
                    "Includes fields that may not be interpretable or supportable using publicly available libraries.",
                    "Trip fields are populated for the Journey Sharing use case. This view is intended for server-to-server communications."
                  ],
                  "type": "string",
                  "description": "The subset of Trip fields that should be returned and their interpretation."
                },
                "remainingWaypointsVersion": {
                  "location": "query",
                  "format": "google-datetime",
                  "deprecated": true,
                  "type": "string",
                  "description": "Deprecated: `Trip.remaining_waypoints` are always retrieved. Use `remaining_waypoints_route_version` to control when `Trip.remaining_waypoints.traffic_to_waypoint` and `Trip.remaining_waypoints.path_to_waypoint` data are retrieved."
                },
                "routeFormatType": {
                  "description": "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`.",
                  "enumDescriptions": [
                    "The format is unspecified or unknown.",
                    "A list of `google.type.LatLng`.",
                    "A polyline encoded with a polyline compression algorithm. Decoding is not yet supported."
                  ],
                  "type": "string",
                  "enum": [
                    "UNKNOWN_FORMAT_TYPE",
                    "LAT_LNG_LIST_TYPE",
                    "ENCODED_POLYLINE_TYPE"
                  ],
                  "location": "query"
                },
                "header.languageCode": {
                  "description": "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`.",
                  "location": "query",
                  "type": "string"
                },
                "header.androidApiLevel": {
                  "description": "Android API level of the calling SDK, only applicable for the Android SDKs. Field value example: `23`.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                }
              },
              "httpMethod": "GET",
              "path": "v1/{+name}",
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Trip"
              },
              "description": "Get information about a single trip."
            },
            "delete": {
              "flatPath": "v1/providers/{providersId}/trips/{tripsId}",
              "parameters": {
                "header.sdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the calling SDK, if applicable. The version format is \"major.minor.patch\", example: `1.1.2`."
                },
                "header.navSdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the NavSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `2.1.0`."
                },
                "header.osVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the operating system on which the calling SDK is running. Field value examples: `4.4.1`, `12.1`."
                },
                "header.traceId": {
                  "location": "query",
                  "type": "string",
                  "description": "Optional ID that can be provided for logging purposes in order to identify the request."
                },
                "header.languageCode": {
                  "location": "query",
                  "type": "string",
                  "description": "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`."
                },
                "header.androidApiLevel": {
                  "location": "query",
                  "type": "integer",
                  "description": "Android API level of the calling SDK, only applicable for the Android SDKs. Field value example: `23`.",
                  "format": "int32"
                },
                "header.manufacturer": {
                  "location": "query",
                  "type": "string",
                  "description": "Manufacturer of the Android device from the calling SDK, only applicable for the Android SDKs. Field value example: `Samsung`."
                },
                "header.regionCode": {
                  "location": "query",
                  "type": "string",
                  "description": "Required. CLDR region code of the region where the request originates. Field value example: `US`."
                },
                "header.platform": {
                  "type": "string",
                  "enumDescriptions": [
                    "The default value. This value is used if the platform is omitted.",
                    "The request is coming from Android.",
                    "The request is coming from iOS.",
                    "The request is coming from the web."
                  ],
                  "description": "Platform of the calling SDK.",
                  "location": "query",
                  "enum": [
                    "PLATFORM_UNSPECIFIED",
                    "ANDROID",
                    "IOS",
                    "WEB"
                  ]
                },
                "header.sdkType": {
                  "enum": [
                    "SDK_TYPE_UNSPECIFIED",
                    "CONSUMER",
                    "DRIVER",
                    "JAVASCRIPT"
                  ],
                  "location": "query",
                  "description": "The type of SDK sending the request.",
                  "type": "string",
                  "enumDescriptions": [
                    "The default value. This value is used if the `sdk_type` is omitted.",
                    "The calling SDK is Consumer.",
                    "The calling SDK is Driver.",
                    "The calling SDK is JavaScript."
                  ]
                },
                "header.mapsSdkVersion": {
                  "description": "Version of the MapSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `5.2.1`.",
                  "location": "query",
                  "type": "string"
                },
                "name": {
                  "description": "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.",
                  "pattern": "^providers/[^/]+/trips/[^/]+$",
                  "required": true,
                  "type": "string",
                  "location": "path"
                },
                "header.deviceModel": {
                  "description": "Model of the device on which the calling SDK is running. Field value examples: `iPhone12,1`, `SM-G920F`.",
                  "location": "query",
                  "type": "string"
                }
              },
              "id": "fleetengine.providers.trips.delete",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "path": "v1/{+name}",
              "httpMethod": "DELETE",
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Empty"
              },
              "description": "Deletes a single Trip. Returns FAILED_PRECONDITION if the Trip is active and assigned to a vehicle."
            },
            "search": {
              "flatPath": "v1/providers/{providersId}/trips:search",
              "parameters": {
                "parent": {
                  "location": "path",
                  "description": "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.",
                  "pattern": "^providers/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "id": "fleetengine.providers.trips.search",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "SearchTripsResponse"
              },
              "description": "Get all the trips for a specific vehicle.",
              "path": "v1/{+parent}/trips:search",
              "request": {
                "$ref": "SearchTripsRequest"
              },
              "httpMethod": "POST"
            }
          }
        },
        "vehicles": {
          "methods": {
            "update": {
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Vehicle"
              },
              "description": "Writes updated vehicle data to 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` The vehicle `name` also 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.",
              "httpMethod": "PUT",
              "path": "v1/{+name}",
              "request": {
                "$ref": "Vehicle"
              },
              "flatPath": "v1/providers/{providersId}/vehicles/{vehiclesId}",
              "parameters": {
                "header.sdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the calling SDK, if applicable. The version format is \"major.minor.patch\", example: `1.1.2`."
                },
                "header.navSdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the NavSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `2.1.0`."
                },
                "header.traceId": {
                  "location": "query",
                  "type": "string",
                  "description": "Optional ID that can be provided for logging purposes in order to identify the request."
                },
                "header.osVersion": {
                  "description": "Version of the operating system on which the calling SDK is running. Field value examples: `4.4.1`, `12.1`.",
                  "location": "query",
                  "type": "string"
                },
                "header.languageCode": {
                  "location": "query",
                  "type": "string",
                  "description": "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`."
                },
                "updateMask": {
                  "description": "Required. A field mask indicating which fields of the `Vehicle` to update. At least one field name must be provided.",
                  "format": "google-fieldmask",
                  "location": "query",
                  "type": "string"
                },
                "header.androidApiLevel": {
                  "location": "query",
                  "type": "integer",
                  "format": "int32",
                  "description": "Android API level of the calling SDK, only applicable for the Android SDKs. Field value example: `23`."
                },
                "header.sdkType": {
                  "description": "The type of SDK sending the request.",
                  "enumDescriptions": [
                    "The default value. This value is used if the `sdk_type` is omitted.",
                    "The calling SDK is Consumer.",
                    "The calling SDK is Driver.",
                    "The calling SDK is JavaScript."
                  ],
                  "type": "string",
                  "enum": [
                    "SDK_TYPE_UNSPECIFIED",
                    "CONSUMER",
                    "DRIVER",
                    "JAVASCRIPT"
                  ],
                  "location": "query"
                },
                "header.platform": {
                  "location": "query",
                  "enum": [
                    "PLATFORM_UNSPECIFIED",
                    "ANDROID",
                    "IOS",
                    "WEB"
                  ],
                  "type": "string",
                  "enumDescriptions": [
                    "The default value. This value is used if the platform is omitted.",
                    "The request is coming from Android.",
                    "The request is coming from iOS.",
                    "The request is coming from the web."
                  ],
                  "description": "Platform of the calling SDK."
                },
                "header.regionCode": {
                  "location": "query",
                  "type": "string",
                  "description": "Required. CLDR region code of the region where the request originates. Field value example: `US`."
                },
                "header.manufacturer": {
                  "location": "query",
                  "type": "string",
                  "description": "Manufacturer of the Android device from the calling SDK, only applicable for the Android SDKs. Field value example: `Samsung`."
                },
                "name": {
                  "type": "string",
                  "description": "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.",
                  "pattern": "^providers/[^/]+/vehicles/[^/]+$",
                  "required": true,
                  "location": "path"
                },
                "header.mapsSdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the MapSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `5.2.1`."
                },
                "header.deviceModel": {
                  "description": "Model of the device on which the calling SDK is running. Field value examples: `iPhone12,1`, `SM-G920F`.",
                  "location": "query",
                  "type": "string"
                }
              },
              "id": "fleetengine.providers.vehicles.update",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            },
            "create": {
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "Vehicle"
              },
              "description": "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`: * `vehicleState` * `supportedTripTypes` * `maximumCapacity` * `vehicleType` The following `Vehicle` fields are ignored when creating a `Vehicle`: * `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.",
              "path": "v1/{+parent}/vehicles",
              "request": {
                "$ref": "Vehicle"
              },
              "httpMethod": "POST",
              "id": "fleetengine.providers.vehicles.create",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/providers/{providersId}/vehicles",
              "parameters": {
                "header.androidApiLevel": {
                  "location": "query",
                  "type": "integer",
                  "format": "int32",
                  "description": "Android API level of the calling SDK, only applicable for the Android SDKs. Field value example: `23`."
                },
                "header.languageCode": {
                  "location": "query",
                  "type": "string",
                  "description": "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`."
                },
                "header.traceId": {
                  "location": "query",
                  "type": "string",
                  "description": "Optional ID that can be provided for logging purposes in order to identify the request."
                },
                "header.osVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the operating system on which the calling SDK is running. Field value examples: `4.4.1`, `12.1`."
                },
                "parent": {
                  "location": "path",
                  "type": "string",
                  "description": "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.",
                  "pattern": "^providers/[^/]+$",
                  "required": true
                },
                "header.sdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the calling SDK, if applicable. The version format is \"major.minor.patch\", example: `1.1.2`."
                },
                "header.navSdkVersion": {
                  "description": "Version of the NavSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `2.1.0`.",
                  "location": "query",
                  "type": "string"
                },
                "header.deviceModel": {
                  "location": "query",
                  "type": "string",
                  "description": "Model of the device on which the calling SDK is running. Field value examples: `iPhone12,1`, `SM-G920F`."
                },
                "header.mapsSdkVersion": {
                  "description": "Version of the MapSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `5.2.1`.",
                  "location": "query",
                  "type": "string"
                },
                "header.sdkType": {
                  "description": "The type of SDK sending the request.",
                  "type": "string",
                  "enumDescriptions": [
                    "The default value. This value is used if the `sdk_type` is omitted.",
                    "The calling SDK is Consumer.",
                    "The calling SDK is Driver.",
                    "The calling SDK is JavaScript."
                  ],
                  "enum": [
                    "SDK_TYPE_UNSPECIFIED",
                    "CONSUMER",
                    "DRIVER",
                    "JAVASCRIPT"
                  ],
                  "location": "query"
                },
                "header.platform": {
                  "enum": [
                    "PLATFORM_UNSPECIFIED",
                    "ANDROID",
                    "IOS",
                    "WEB"
                  ],
                  "location": "query",
                  "description": "Platform of the calling SDK.",
                  "type": "string",
                  "enumDescriptions": [
                    "The default value. This value is used if the platform is omitted.",
                    "The request is coming from Android.",
                    "The request is coming from iOS.",
                    "The request is coming from the web."
                  ]
                },
                "header.regionCode": {
                  "location": "query",
                  "type": "string",
                  "description": "Required. CLDR region code of the region where the request originates. Field value example: `US`."
                },
                "header.manufacturer": {
                  "description": "Manufacturer of the Android device from the calling SDK, only applicable for the Android SDKs. Field value example: `Samsung`.",
                  "location": "query",
                  "type": "string"
                },
                "vehicleId": {
                  "location": "query",
                  "type": "string",
                  "description": "Required. Unique Vehicle ID. Subject to the following restrictions: * Must be a valid Unicode string. * Limited to a maximum length of 64 characters. * Normalized according to [Unicode Normalization Form C] (http://www.unicode.org/reports/tr15/). * May not contain any of the following ASCII characters: '/', ':', '?', ',', or '#'."
                }
              }
            },
            "updateAttributes": {
              "path": "v1/{+name}:updateAttributes",
              "request": {
                "$ref": "UpdateVehicleAttributesRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "UpdateVehicleAttributesResponse"
              },
              "description": "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`, where the whole `attributes` field will be replaced by the one in `UpdateVehicleRequest`, attributes not in the request would be removed.",
              "id": "fleetengine.providers.vehicles.updateAttributes",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/providers/{providersId}/vehicles/{vehiclesId}:updateAttributes",
              "parameters": {
                "name": {
                  "type": "string",
                  "description": "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.",
                  "pattern": "^providers/[^/]+/vehicles/[^/]+$",
                  "required": true,
                  "location": "path"
                }
              }
            },
            "list": {
              "flatPath": "v1/providers/{providersId}/vehicles",
              "parameters": {
                "vehicleTypeCategories": {
                  "description": "Required. Restricts the response to vehicles with one of the specified type categories. `UNKNOWN` is not allowed.",
                  "type": "string",
                  "enumDescriptions": [
                    "Default, used for unspecified or unrecognized vehicle categories.",
                    "An automobile.",
                    "Any vehicle that acts as a taxi (typically licensed or regulated).",
                    "Generally, a vehicle with a large storage capacity.",
                    "A motorcycle, moped, or other two-wheeled vehicle",
                    "Human-powered transport.",
                    "A human transporter, typically walking or running, traveling along pedestrian pathways."
                  ],
                  "enum": [
                    "UNKNOWN",
                    "AUTO",
                    "TAXI",
                    "TRUCK",
                    "TWO_WHEELER",
                    "BICYCLE",
                    "PEDESTRIAN"
                  ],
                  "repeated": true,
                  "location": "query"
                },
                "requiredOneOfAttributeSets": {
                  "location": "query",
                  "type": "string",
                  "description": "`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_attribute_sets0 AND required_one_of_attribute_sets0 AND ...) OR (required_one_of_attribute_sets1 AND required_one_of_attribute_sets1 AND ...) ) ``` Restricts 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`. Each repeated string should be of the format \"key1:value1|key2:value2|key3:value3\".",
                  "repeated": true
                },
                "header.sdkVersion": {
                  "description": "Version of the calling SDK, if applicable. The version format is \"major.minor.patch\", example: `1.1.2`.",
                  "location": "query",
                  "type": "string"
                },
                "header.navSdkVersion": {
                  "description": "Version of the NavSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `2.1.0`.",
                  "location": "query",
                  "type": "string"
                },
                "header.osVersion": {
                  "description": "Version of the operating system on which the calling SDK is running. Field value examples: `4.4.1`, `12.1`.",
                  "location": "query",
                  "type": "string"
                },
                "viewport.high.longitude": {
                  "format": "double",
                  "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].",
                  "location": "query",
                  "type": "number"
                },
                "header.traceId": {
                  "description": "Optional ID that can be provided for logging purposes in order to identify the request.",
                  "location": "query",
                  "type": "string"
                },
                "header.languageCode": {
                  "description": "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`.",
                  "location": "query",
                  "type": "string"
                },
                "tripTypes": {
                  "description": "Restricts the response to vehicles that support at least one of the specified trip types.",
                  "enumDescriptions": [
                    "Default, used for unspecified or unrecognized trip types.",
                    "The trip may share a vehicle with other trips.",
                    "The trip is exclusive to a vehicle."
                  ],
                  "type": "string",
                  "repeated": true,
                  "enum": [
                    "UNKNOWN_TRIP_TYPE",
                    "SHARED",
                    "EXCLUSIVE"
                  ],
                  "location": "query"
                },
                "header.regionCode": {
                  "description": "Required. CLDR region code of the region where the request originates. Field value example: `US`.",
                  "location": "query",
                  "type": "string"
                },
                "header.sdkType": {
                  "location": "query",
                  "enum": [
                    "SDK_TYPE_UNSPECIFIED",
                    "CONSUMER",
                    "DRIVER",
                    "JAVASCRIPT"
                  ],
                  "type": "string",
                  "enumDescriptions": [
                    "The default value. This value is used if the `sdk_type` is omitted.",
                    "The calling SDK is Consumer.",
                    "The calling SDK is Driver.",
                    "The calling SDK is JavaScript."
                  ],
                  "description": "The type of SDK sending the request."
                },
                "header.mapsSdkVersion": {
                  "description": "Version of the MapSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `5.2.1`.",
                  "location": "query",
                  "type": "string"
                },
                "header.deviceModel": {
                  "location": "query",
                  "type": "string",
                  "description": "Model of the device on which the calling SDK is running. Field value examples: `iPhone12,1`, `SM-G920F`."
                },
                "viewport.low.latitude": {
                  "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].",
                  "format": "double",
                  "location": "query",
                  "type": "number"
                },
                "pageSize": {
                  "format": "int32",
                  "description": "The maximum number of vehicles to return. Default value: 100.",
                  "location": "query",
                  "type": "integer"
                },
                "minimumCapacity": {
                  "location": "query",
                  "type": "integer",
                  "description": "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.",
                  "format": "int32"
                },
                "parent": {
                  "type": "string",
                  "description": "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.",
                  "pattern": "^providers/[^/]+$",
                  "required": true,
                  "location": "path"
                },
                "vehicleState": {
                  "description": "Restricts the response to vehicles that have this vehicle state.",
                  "type": "string",
                  "enumDescriptions": [
                    "Default, used for unspecified or unrecognized vehicle states.",
                    "The vehicle is not accepting new trips. Note: the vehicle may continue to operate in this state while completing a trip assigned to it.",
                    "The vehicle is accepting new trips."
                  ],
                  "enum": [
                    "UNKNOWN_VEHICLE_STATE",
                    "OFFLINE",
                    "ONLINE"
                  ],
                  "location": "query"
                },
                "viewport.high.latitude": {
                  "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].",
                  "format": "double",
                  "location": "query",
                  "type": "number"
                },
                "header.androidApiLevel": {
                  "description": "Android API level of the calling SDK, only applicable for the Android SDKs. Field value example: `23`.",
                  "format": "int32",
                  "location": "query",
                  "type": "integer"
                },
                "onTripOnly": {
                  "location": "query",
                  "type": "boolean",
                  "description": "Only return the vehicles with current trip(s)."
                },
                "pageToken": {
                  "description": "The value of the `next_page_token` provided by a previous call to `ListVehicles` so that you can paginate through groups of vehicles. The value is undefined if the filter criteria of the request is not the same as the filter criteria for the previous call to `ListVehicles`.",
                  "location": "query",
                  "type": "string"
                },
                "viewport.low.longitude": {
                  "location": "query",
                  "type": "number",
                  "format": "double",
                  "description": "The longitude in degrees. It must be in the range [-180.0, +180.0]."
                },
                "header.manufacturer": {
                  "description": "Manufacturer of the Android device from the calling SDK, only applicable for the Android SDKs. Field value example: `Samsung`.",
                  "location": "query",
                  "type": "string"
                },
                "header.platform": {
                  "description": "Platform of the calling SDK.",
                  "enumDescriptions": [
                    "The default value. This value is used if the platform is omitted.",
                    "The request is coming from Android.",
                    "The request is coming from iOS.",
                    "The request is coming from the web."
                  ],
                  "type": "string",
                  "enum": [
                    "PLATFORM_UNSPECIFIED",
                    "ANDROID",
                    "IOS",
                    "WEB"
                  ],
                  "location": "query"
                },
                "maximumStaleness": {
                  "location": "query",
                  "type": "string",
                  "format": "google-duration",
                  "description": "Restricts the response to vehicles that have sent location updates to Fleet Engine within the specified duration. Stationary vehicles still transmitting their locations are not considered stale. If present, must be a valid positive duration."
                },
                "requiredAttributes": {
                  "location": "query",
                  "type": "string",
                  "description": "Callers can form complex logical operations using any combination of the `required_attributes`, `required_one_of_attributes`, and `required_one_of_attribute_sets` fields. `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_attributes[0] AND required_attributes[1] AND ...) AND (required_one_of_attributes0 OR required_one_of_attributes0 OR ...) AND (required_one_of_attributes1 OR required_one_of_attributes1 OR ...) ``` Restricts the response to vehicles with the specified attributes. This field is a conjunction/AND operation. A max of 50 required_attributes is allowed. This matches the maximum number of attributes allowed on a vehicle. Each repeated string should be of the format \"key:value\".",
                  "repeated": true
                },
                "filter": {
                  "description": "Optional. A filter query to apply when listing vehicles. See http://aip.dev/160 for examples of the filter syntax. This field is designed to replace the `required_attributes`, `required_one_of_attributes`, and `required_one_of_attributes_sets` fields. If a non-empty value is specified here, the following fields must be empty: `required_attributes`, `required_one_of_attributes`, and `required_one_of_attributes_sets`. This filter functions as an AND clause with other constraints, such as `vehicle_state` or `on_trip_only`. Note that the only queries supported are on vehicle attributes (for example, `attributes. = ` or `attributes. = AND attributes. = `). The maximum number of restrictions allowed in a filter query is 50. Also, all attributes are stored as strings, so the only supported comparisons against attributes are string comparisons. In order to compare against number or boolean values, the values must be explicitly quoted to be treated as strings (for example, `attributes. = \"10\"` or `attributes. = \"true\"`).",
                  "location": "query",
                  "type": "string"
                },
                "requiredOneOfAttributes": {
                  "description": "Restricts 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`. Each repeated string should be of the format \"key1:value1|key2:value2|key3:value3\".",
                  "repeated": true,
                  "location": "query",
                  "type": "string"
                }
              },
              "id": "fleetengine.providers.vehicles.list",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "ListVehiclesResponse"
              },
              "description": "Returns a paginated list of vehicles associated with a provider that match the request options.",
              "path": "v1/{+parent}/vehicles",
              "httpMethod": "GET"
            },
            "get": {
              "flatPath": "v1/providers/{providersId}/vehicles/{vehiclesId}",
              "parameters": {
                "header.sdkType": {
                  "description": "The type of SDK sending the request.",
                  "enumDescriptions": [
                    "The default value. This value is used if the `sdk_type` is omitted.",
                    "The calling SDK is Consumer.",
                    "The calling SDK is Driver.",
                    "The calling SDK is JavaScript."
                  ],
                  "type": "string",
                  "enum": [
                    "SDK_TYPE_UNSPECIFIED",
                    "CONSUMER",
                    "DRIVER",
                    "JAVASCRIPT"
                  ],
                  "location": "query"
                },
                "header.platform": {
                  "enum": [
                    "PLATFORM_UNSPECIFIED",
                    "ANDROID",
                    "IOS",
                    "WEB"
                  ],
                  "location": "query",
                  "description": "Platform of the calling SDK.",
                  "enumDescriptions": [
                    "The default value. This value is used if the platform is omitted.",
                    "The request is coming from Android.",
                    "The request is coming from iOS.",
                    "The request is coming from the web."
                  ],
                  "type": "string"
                },
                "header.regionCode": {
                  "description": "Required. CLDR region code of the region where the request originates. Field value example: `US`.",
                  "location": "query",
                  "type": "string"
                },
                "header.manufacturer": {
                  "location": "query",
                  "type": "string",
                  "description": "Manufacturer of the Android device from the calling SDK, only applicable for the Android SDKs. Field value example: `Samsung`."
                },
                "name": {
                  "description": "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.",
                  "pattern": "^providers/[^/]+/vehicles/[^/]+$",
                  "required": true,
                  "type": "string",
                  "location": "path"
                },
                "currentRouteSegmentVersion": {
                  "description": "Indicates the minimum timestamp (exclusive) for which `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.",
                  "format": "google-datetime",
                  "location": "query",
                  "type": "string"
                },
                "header.mapsSdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the MapSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `5.2.1`."
                },
                "header.deviceModel": {
                  "description": "Model of the device on which the calling SDK is running. Field value examples: `iPhone12,1`, `SM-G920F`.",
                  "location": "query",
                  "type": "string"
                },
                "header.sdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the calling SDK, if applicable. The version format is \"major.minor.patch\", example: `1.1.2`."
                },
                "header.navSdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the NavSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `2.1.0`."
                },
                "header.traceId": {
                  "description": "Optional ID that can be provided for logging purposes in order to identify the request.",
                  "location": "query",
                  "type": "string"
                },
                "header.osVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the operating system on which the calling SDK is running. Field value examples: `4.4.1`, `12.1`."
                },
                "header.languageCode": {
                  "location": "query",
                  "type": "string",
                  "description": "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`."
                },
                "header.androidApiLevel": {
                  "location": "query",
                  "type": "integer",
                  "description": "Android API level of the calling SDK, only applicable for the Android SDKs. Field value example: `23`.",
                  "format": "int32"
                },
                "waypointsVersion": {
                  "description": "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.",
                  "format": "google-datetime",
                  "location": "query",
                  "type": "string"
                }
              },
              "id": "fleetengine.providers.vehicles.get",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Vehicle"
              },
              "description": "Returns a vehicle from the Fleet Engine.",
              "path": "v1/{+name}",
              "httpMethod": "GET"
            },
            "delete": {
              "id": "fleetengine.providers.vehicles.delete",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/providers/{providersId}/vehicles/{vehiclesId}",
              "parameters": {
                "header.androidApiLevel": {
                  "location": "query",
                  "type": "integer",
                  "description": "Android API level of the calling SDK, only applicable for the Android SDKs. Field value example: `23`.",
                  "format": "int32"
                },
                "header.languageCode": {
                  "description": "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`.",
                  "location": "query",
                  "type": "string"
                },
                "header.traceId": {
                  "location": "query",
                  "type": "string",
                  "description": "Optional ID that can be provided for logging purposes in order to identify the request."
                },
                "header.osVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the operating system on which the calling SDK is running. Field value examples: `4.4.1`, `12.1`."
                },
                "header.sdkVersion": {
                  "description": "Version of the calling SDK, if applicable. The version format is \"major.minor.patch\", example: `1.1.2`.",
                  "location": "query",
                  "type": "string"
                },
                "header.navSdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the NavSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `2.1.0`."
                },
                "header.deviceModel": {
                  "description": "Model of the device on which the calling SDK is running. Field value examples: `iPhone12,1`, `SM-G920F`.",
                  "location": "query",
                  "type": "string"
                },
                "name": {
                  "location": "path",
                  "type": "string",
                  "description": "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.",
                  "pattern": "^providers/[^/]+/vehicles/[^/]+$",
                  "required": true
                },
                "header.mapsSdkVersion": {
                  "description": "Version of the MapSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `5.2.1`.",
                  "location": "query",
                  "type": "string"
                },
                "header.sdkType": {
                  "description": "The type of SDK sending the request.",
                  "type": "string",
                  "enumDescriptions": [
                    "The default value. This value is used if the `sdk_type` is omitted.",
                    "The calling SDK is Consumer.",
                    "The calling SDK is Driver.",
                    "The calling SDK is JavaScript."
                  ],
                  "enum": [
                    "SDK_TYPE_UNSPECIFIED",
                    "CONSUMER",
                    "DRIVER",
                    "JAVASCRIPT"
                  ],
                  "location": "query"
                },
                "header.platform": {
                  "description": "Platform of the calling SDK.",
                  "type": "string",
                  "enumDescriptions": [
                    "The default value. This value is used if the platform is omitted.",
                    "The request is coming from Android.",
                    "The request is coming from iOS.",
                    "The request is coming from the web."
                  ],
                  "enum": [
                    "PLATFORM_UNSPECIFIED",
                    "ANDROID",
                    "IOS",
                    "WEB"
                  ],
                  "location": "query"
                },
                "header.regionCode": {
                  "location": "query",
                  "type": "string",
                  "description": "Required. CLDR region code of the region where the request originates. Field value example: `US`."
                },
                "header.manufacturer": {
                  "description": "Manufacturer of the Android device from the calling SDK, only applicable for the Android SDKs. Field value example: `Samsung`.",
                  "location": "query",
                  "type": "string"
                }
              },
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Empty"
              },
              "description": "Deletes a Vehicle from the Fleet Engine. Returns FAILED_PRECONDITION if the Vehicle has active Trips. assigned to it.",
              "httpMethod": "DELETE",
              "path": "v1/{+name}"
            },
            "search": {
              "path": "v1/{+parent}/vehicles:search",
              "request": {
                "$ref": "SearchVehiclesRequest"
              },
              "httpMethod": "POST",
              "parameterOrder": [
                "parent"
              ],
              "response": {
                "$ref": "SearchVehiclesResponse"
              },
              "description": "Returns a list of vehicles that match the request options.",
              "flatPath": "v1/providers/{providersId}/vehicles:search",
              "parameters": {
                "parent": {
                  "description": "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.",
                  "pattern": "^providers/[^/]+$",
                  "required": true,
                  "type": "string",
                  "location": "path"
                }
              },
              "id": "fleetengine.providers.vehicles.search",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            }
          }
        },
        "taskTrackingInfo": {
          "methods": {
            "get": {
              "id": "fleetengine.providers.taskTrackingInfo.get",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ],
              "flatPath": "v1/providers/{providersId}/taskTrackingInfo/{taskTrackingInfoId}",
              "parameters": {
                "header.osVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the operating system on which the calling SDK is running. Field value examples: `4.4.1`, `12.1`."
                },
                "header.traceId": {
                  "description": "Optional ID that can be provided for logging purposes in order to identify the request.",
                  "location": "query",
                  "type": "string"
                },
                "header.sdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the calling SDK, if applicable. The version format is \"major.minor.patch\", example: `1.1.2`."
                },
                "header.navSdkVersion": {
                  "description": "Version of the NavSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `2.1.0`.",
                  "location": "query",
                  "type": "string"
                },
                "header.androidApiLevel": {
                  "format": "int32",
                  "description": "Android API level of the calling SDK, only applicable for the Android SDKs. Field value example: `23`.",
                  "location": "query",
                  "type": "integer"
                },
                "header.languageCode": {
                  "description": "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`.",
                  "location": "query",
                  "type": "string"
                },
                "header.regionCode": {
                  "description": "Required. CLDR region code of the region where the request originates. Field value example: `US`.",
                  "location": "query",
                  "type": "string"
                },
                "header.manufacturer": {
                  "location": "query",
                  "type": "string",
                  "description": "Manufacturer of the Android device from the calling SDK, only applicable for the Android SDKs. Field value example: `Samsung`."
                },
                "header.sdkType": {
                  "enum": [
                    "SDK_TYPE_UNSPECIFIED",
                    "CONSUMER",
                    "DRIVER",
                    "JAVASCRIPT"
                  ],
                  "location": "query",
                  "description": "The type of SDK sending the request.",
                  "enumDescriptions": [
                    "The default value. This value is used if the `sdk_type` is omitted.",
                    "The calling SDK is Consumer.",
                    "The calling SDK is Driver.",
                    "The calling SDK is JavaScript."
                  ],
                  "type": "string"
                },
                "header.platform": {
                  "description": "Platform of the calling SDK.",
                  "enumDescriptions": [
                    "The default value. This value is used if the platform is omitted.",
                    "The request is coming from Android.",
                    "The request is coming from iOS.",
                    "The request is coming from the web."
                  ],
                  "type": "string",
                  "enum": [
                    "PLATFORM_UNSPECIFIED",
                    "ANDROID",
                    "IOS",
                    "WEB"
                  ],
                  "location": "query"
                },
                "header.deviceModel": {
                  "location": "query",
                  "type": "string",
                  "description": "Model of the device on which the calling SDK is running. Field value examples: `iPhone12,1`, `SM-G920F`."
                },
                "header.mapsSdkVersion": {
                  "location": "query",
                  "type": "string",
                  "description": "Version of the MapSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `5.2.1`."
                },
                "name": {
                  "location": "path",
                  "description": "Required. Must be in the format `providers/{provider}/taskTrackingInfo/{tracking_id}`. The `provider` must be the Google Cloud Project ID, and the `tracking_id` must be the tracking ID associated with the task. An example name can be `providers/sample-cloud-project/taskTrackingInfo/sample-tracking-id`.",
                  "pattern": "^providers/[^/]+/taskTrackingInfo/[^/]+$",
                  "required": true,
                  "type": "string"
                }
              },
              "httpMethod": "GET",
              "path": "v1/{+name}",
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "TaskTrackingInfo"
              },
              "description": "Returns the specified `TaskTrackingInfo` instance."
            }
          }
        },
        "billableTrips": {
          "methods": {
            "report": {
              "parameterOrder": [
                "name"
              ],
              "response": {
                "$ref": "Empty"
              },
              "description": "Report billable trip usage.",
              "httpMethod": "POST",
              "path": "v1/{+name}:report",
              "request": {
                "$ref": "ReportBillableTripRequest"
              },
              "flatPath": "v1/providers/{providersId}/billableTrips/{billableTripsId}:report",
              "parameters": {
                "name": {
                  "location": "path",
                  "type": "string",
                  "description": "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 member.",
                  "pattern": "^providers/[^/]+/billableTrips/[^/]+$",
                  "required": true
                }
              },
              "id": "fleetengine.providers.billableTrips.report",
              "scopes": [
                "https://www.googleapis.com/auth/cloud-platform"
              ]
            }
          }
        }
      }
    }
  },
  "batchPath": "batch",
  "schemas": {
    "TaskTrackingInfo": {
      "id": "TaskTrackingInfo",
      "description": "The `TaskTrackingInfo` message. The message contains task tracking information which will be used for display. If a tracking ID is associated with multiple Tasks, Fleet Engine uses a heuristic to decide which Task's TaskTrackingInfo to select.",
      "properties": {
        "remainingStopCount": {
          "type": "integer",
          "format": "int32",
          "description": "Indicates the number of stops the vehicle remaining until the task stop is reached, including the task stop. For example, if the vehicle's next stop is the task stop, the value will be 1."
        },
        "trackingId": {
          "description": "Immutable. The tracking ID of a Task. * Must be a valid Unicode string. * Limited to a maximum length of 64 characters. * Normalized according to [Unicode Normalization Form C] (http://www.unicode.org/reports/tr15/). * May not contain any of the following ASCII characters: '/', ':', '?', ',', or '#'.",
          "type": "string"
        },
        "taskOutcome": {
          "enum": [
            "TASK_OUTCOME_UNSPECIFIED",
            "SUCCEEDED",
            "FAILED"
          ],
          "description": "The outcome of attempting to execute a Task.",
          "type": "string",
          "enumDescriptions": [
            "The Task outcome before its value is set.",
            "The Task completed successfully.",
            "Either the Task couldn't be completed, or it was cancelled."
          ]
        },
        "state": {
          "type": "string",
          "enumDescriptions": [
            "Default. Used for an unspecified or unrecognized Task state.",
            "Either the Task has not yet been assigned to a delivery vehicle, or the delivery vehicle has not yet passed the `Task`'s assigned vehicle stop.",
            "When the vehicle passes the vehicle stop for this Task."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "OPEN",
            "CLOSED"
          ],
          "description": "The current execution state of the Task."
        },
        "attributes": {
          "description": "The custom attributes set on the task.",
          "items": {
            "$ref": "TaskAttribute"
          },
          "type": "array"
        },
        "routePolylinePoints": {
          "description": "A list of points which when connected forms a polyline of the vehicle's expected route to the location of this task.",
          "items": {
            "$ref": "LatLng"
          },
          "type": "array"
        },
        "estimatedTaskCompletionTime": {
          "type": "string",
          "description": "The timestamp that indicates the estimated completion time of a Task.",
          "format": "google-datetime"
        },
        "plannedLocation": {
          "$ref": "LocationInfo",
          "description": "Immutable. The location where the Task will be completed."
        },
        "name": {
          "description": "Must be in the format `providers/{provider}/taskTrackingInfo/{tracking}`, where `tracking` represents the tracking ID.",
          "type": "string"
        },
        "vehicleLocation": {
          "$ref": "DeliveryVehicleLocation",
          "description": "The vehicle's last location."
        },
        "remainingDrivingDistanceMeters": {
          "description": "The total remaining distance in meters to the `VehicleStop` of interest.",
          "format": "int32",
          "type": "integer"
        },
        "taskOutcomeTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "The timestamp that indicates when the Task's outcome was set by the provider."
        },
        "targetTimeWindow": {
          "$ref": "TimeWindow",
          "description": "The time window during which the task should be completed."
        },
        "estimatedArrivalTime": {
          "type": "string",
          "description": "The timestamp that indicates the estimated arrival time to the stop location.",
          "format": "google-datetime"
        }
      },
      "type": "object"
    },
    "TaskInfo": {
      "id": "TaskInfo",
      "description": "Additional information about the Task performed at this stop.",
      "properties": {
        "taskDuration": {
          "description": "Output only. The time required to perform the Task.",
          "readOnly": true,
          "format": "google-duration",
          "type": "string"
        },
        "targetTimeWindow": {
          "readOnly": true,
          "$ref": "TimeWindow",
          "description": "Output only. The time window during which the task should be completed. This is only set in the response to `GetDeliveryVehicle`."
        },
        "taskId": {
          "description": "The Task ID. This field won't be populated in the response of a `GetTask` call. Task IDs are subject to the following restrictions: * Must be a valid Unicode string. * Limited to a maximum length of 64 characters. * Normalized according to [Unicode Normalization Form C] (http://www.unicode.org/reports/tr15/). * May not contain any of the following ASCII characters: '/', ':', '?', ',', or '#'.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "DeliveryVehicleAttribute": {
      "type": "object",
      "id": "DeliveryVehicleAttribute",
      "description": "Describes a vehicle attribute as a key-value pair. The \"key:value\" string length cannot exceed 256 characters.",
      "properties": {
        "key": {
          "type": "string",
          "description": "The attribute's key."
        },
        "numberValue": {
          "type": "number",
          "format": "double",
          "description": "Double typed attribute value."
        },
        "boolValue": {
          "description": "Boolean typed attribute value.",
          "type": "boolean"
        },
        "value": {
          "type": "string",
          "description": "The attribute's value."
        },
        "stringValue": {
          "description": "String typed attribute value. Note: This is identical to the `value` field which will eventually be deprecated. For create or update methods, either field can be used, but it's strongly recommended to use `string_value`. If both `string_value` and `value` are set, they must be identical or an error will be thrown. Both fields are populated in responses.",
          "type": "string"
        }
      }
    },
    "TerminalLocation": {
      "type": "object",
      "id": "TerminalLocation",
      "description": "Describes the location of a waypoint.",
      "properties": {
        "point": {
          "$ref": "LatLng",
          "description": "Denotes the exact `LatLng` of the waypoint. Either `point` or `place` must be specified as input. If both are specified, `point` will be used for routing and `place` will be used for metadata. If only `place` is specified as input, `point` will be calculated from the `place` and included in the output."
        },
        "place": {
          "description": "The resource name of the place that represents this location. The format is `places/{place_id}`. Either `point` or `place` must be specified as input. If both are specified, `point` will be used for routing and `place` will be used for metadata. `place` is only included in the output if it was included in the input, meaning that there is no `place` lookup from `LatLng` performed. This is an experimental feature.",
          "type": "string"
        },
        "tripId": {
          "deprecated": true,
          "type": "string",
          "description": "Deprecated."
        },
        "terminalLocationType": {
          "enumDescriptions": [
            "Unknown or unspecified waypoint type.",
            "Waypoints for picking up riders or items.",
            "Waypoints for dropping off riders or items.",
            "Waypoints for intermediate destinations in a multi-destination trip."
          ],
          "deprecated": true,
          "type": "string",
          "description": "Deprecated: `Vehicle.waypoint` will have this data.",
          "enum": [
            "UNKNOWN_WAYPOINT_TYPE",
            "PICKUP_WAYPOINT_TYPE",
            "DROP_OFF_WAYPOINT_TYPE",
            "INTERMEDIATE_DESTINATION_WAYPOINT_TYPE"
          ]
        },
        "pointLocationSource": {
          "readOnly": true,
          "description": "Output only. The source of the `point` field.",
          "type": "string",
          "enumDescriptions": [
            "Point source unspecified.",
            "The `LatLng` was explicitly provided by the developer.",
            "The `LatLng` was calculated from the provided place."
          ],
          "enum": [
            "POINT_SOURCE_UNSPECIFIED",
            "POINT_SOURCE_DEVELOPER_PROVIDED",
            "POINT_SOURCE_CALCULATED_FROM_PLACE"
          ]
        },
        "accessPointId": {
          "description": "Deprecated: Specify the `place` field instead.",
          "deprecated": true,
          "type": "string"
        },
        "terminalPointId": {
          "$ref": "TerminalPointId",
          "description": "Deprecated: Specify the `place` field instead.",
          "deprecated": true
        }
      }
    },
    "TaskTrackingViewConfig": {
      "id": "TaskTrackingViewConfig",
      "description": "The configuration message that defines when a data element of a Task should be visible to the end users.",
      "properties": {
        "estimatedTaskCompletionTimeVisibility": {
          "description": "The field that specifies when estimated task completion time can be visible. If this field is not specified, the project level default visibility configuration for this data will be used.",
          "$ref": "VisibilityOption"
        },
        "vehicleLocationVisibility": {
          "description": "The field that specifies when vehicle location can be visible. If this field is not specified, the project level default visibility configuration for this data will be used.",
          "$ref": "VisibilityOption"
        },
        "routePolylinePointsVisibility": {
          "description": "The field that specifies when route polyline points can be visible. If this field is not specified, the project level default visibility configuration for this data will be used.",
          "$ref": "VisibilityOption"
        },
        "remainingDrivingDistanceVisibility": {
          "$ref": "VisibilityOption",
          "description": "The field that specifies when remaining driving distance can be visible. If this field is not specified, the project level default visibility configuration for this data will be used."
        },
        "remainingStopCountVisibility": {
          "description": "The field that specifies when remaining stop count can be visible. If this field is not specified, the project level default visibility configuration for this data will be used.",
          "$ref": "VisibilityOption"
        },
        "estimatedArrivalTimeVisibility": {
          "description": "The field that specifies when estimated arrival time can be visible. If this field is not specified, the project level default visibility configuration for this data will be used.",
          "$ref": "VisibilityOption"
        }
      },
      "type": "object"
    },
    "VehicleAttributeList": {
      "type": "object",
      "id": "VehicleAttributeList",
      "description": "A list-of-lists datatype for vehicle attributes.",
      "properties": {
        "attributes": {
          "description": "A list of attributes in this collection.",
          "items": {
            "$ref": "VehicleAttribute"
          },
          "type": "array"
        }
      }
    },
    "BatchCreateTasksRequest": {
      "type": "object",
      "id": "BatchCreateTasksRequest",
      "description": "The `BatchCreateTask` request message.",
      "properties": {
        "header": {
          "$ref": "DeliveryRequestHeader",
          "description": "Optional. The standard Delivery API request header. Note: If you set this field, then the header field in the `CreateTaskRequest` messages must either be empty, or it must match this field."
        },
        "requests": {
          "description": "Required. The request message that specifies the resources to create. Note: You can create a maximum of 500 tasks in a batch.",
          "items": {
            "$ref": "CreateTaskRequest"
          },
          "type": "array"
        }
      }
    },
    "TerminalPointId": {
      "id": "TerminalPointId",
      "description": "Deprecated: TerminalPoints are no longer supported in Fleet Engine. Use `TerminalLocation.point` instead.",
      "properties": {
        "generatedId": {
          "deprecated": true,
          "type": "string",
          "description": "Deprecated."
        },
        "placeId": {
          "description": "Deprecated.",
          "deprecated": true,
          "type": "string"
        },
        "value": {
          "deprecated": true,
          "type": "string",
          "description": "Deprecated."
        }
      },
      "deprecated": true,
      "type": "object"
    },
    "SearchTripsResponse": {
      "id": "SearchTripsResponse",
      "description": "SearchTrips response message.",
      "properties": {
        "nextPageToken": {
          "type": "string",
          "description": "Pass this token in the SearchTripsRequest to page through list results. The API returns a trip list on each call, and when no more results remain the trip list is empty."
        },
        "trips": {
          "description": "The list of trips for the requested vehicle.",
          "type": "array",
          "items": {
            "$ref": "Trip"
          }
        }
      },
      "type": "object"
    },
    "TaskAttribute": {
      "id": "TaskAttribute",
      "description": "Describes a task attribute as a key-value pair. The \"key:value\" string length cannot exceed 256 characters.",
      "properties": {
        "key": {
          "description": "The attribute's key. Keys may not contain the colon character (:).",
          "type": "string"
        },
        "numberValue": {
          "type": "number",
          "description": "Double typed attribute value.",
          "format": "double"
        },
        "boolValue": {
          "type": "boolean",
          "description": "Boolean typed attribute value."
        },
        "stringValue": {
          "type": "string",
          "description": "String typed attribute value."
        }
      },
      "type": "object"
    },
    "Empty": {
      "type": "object",
      "id": "Empty",
      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
      "properties": {}
    },
    "TripAttribute": {
      "type": "object",
      "id": "TripAttribute",
      "description": "Describes a trip attribute as a key-value pair. The \"key:value\" string length cannot exceed 256 characters.",
      "properties": {
        "boolValue": {
          "type": "boolean",
          "description": "Boolean typed attribute value."
        },
        "stringValue": {
          "type": "string",
          "description": "String typed attribute value."
        },
        "key": {
          "description": "The attribute's key. Keys may not contain the colon character (:).",
          "type": "string"
        },
        "numberValue": {
          "type": "number",
          "description": "Double typed attribute value.",
          "format": "double"
        }
      }
    },
    "SearchTripsRequest": {
      "type": "object",
      "id": "SearchTripsRequest",
      "description": "SearchTrips request message.",
      "properties": {
        "activeTripsOnly": {
          "type": "boolean",
          "description": "If set to true, the response includes Trips that influence a driver's route."
        },
        "vehicleId": {
          "type": "string",
          "description": "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`"
        },
        "header": {
          "$ref": "RequestHeader",
          "description": "The standard Fleet Engine request header."
        },
        "pageSize": {
          "description": "If not set, the server decides the number of results to return.",
          "format": "int32",
          "type": "integer"
        },
        "pageToken": {
          "description": "Set this to a value previously returned in the `SearchTripsResponse` to continue from previous results.",
          "type": "string"
        },
        "minimumStaleness": {
          "type": "string",
          "format": "google-duration",
          "description": "If specified, returns the trips that have not been updated after the time `(current - minimum_staleness)`."
        }
      }
    },
    "ListDeliveryVehiclesResponse": {
      "id": "ListDeliveryVehiclesResponse",
      "description": "The `ListDeliveryVehicles` response message.",
      "properties": {
        "totalSize": {
          "format": "int64",
          "description": "The total number of delivery vehicles that match the request criteria, across all pages.",
          "type": "string"
        },
        "deliveryVehicles": {
          "items": {
            "$ref": "DeliveryVehicle"
          },
          "type": "array",
          "description": "The set of delivery vehicles that meet the requested filtering criteria. When no filter is specified, the request returns all delivery vehicles. A successful response can also be empty. An empty response indicates that no delivery vehicles were found meeting the requested filter criteria."
        },
        "nextPageToken": {
          "description": "You can pass this token in the `ListDeliveryVehiclesRequest` to continue to list results. When all of the results are returned, this field won't be in the response, or it will be an empty string.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "RequestHeader": {
      "type": "object",
      "id": "RequestHeader",
      "description": "A RequestHeader contains fields common to all Fleet Engine RPC requests.",
      "properties": {
        "sdkVersion": {
          "type": "string",
          "description": "Version of the calling SDK, if applicable. The version format is \"major.minor.patch\", example: `1.1.2`."
        },
        "sdkType": {
          "enum": [
            "SDK_TYPE_UNSPECIFIED",
            "CONSUMER",
            "DRIVER",
            "JAVASCRIPT"
          ],
          "description": "The type of SDK sending the request.",
          "type": "string",
          "enumDescriptions": [
            "The default value. This value is used if the `sdk_type` is omitted.",
            "The calling SDK is Consumer.",
            "The calling SDK is Driver.",
            "The calling SDK is JavaScript."
          ]
        },
        "manufacturer": {
          "type": "string",
          "description": "Manufacturer of the Android device from the calling SDK, only applicable for the Android SDKs. Field value example: `Samsung`."
        },
        "languageCode": {
          "description": "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`.",
          "type": "string"
        },
        "regionCode": {
          "type": "string",
          "description": "Required. CLDR region code of the region where the request originates. Field value example: `US`."
        },
        "androidApiLevel": {
          "type": "integer",
          "description": "Android API level of the calling SDK, only applicable for the Android SDKs. Field value example: `23`.",
          "format": "int32"
        },
        "osVersion": {
          "type": "string",
          "description": "Version of the operating system on which the calling SDK is running. Field value examples: `4.4.1`, `12.1`."
        },
        "traceId": {
          "description": "Optional ID that can be provided for logging purposes in order to identify the request.",
          "type": "string"
        },
        "deviceModel": {
          "type": "string",
          "description": "Model of the device on which the calling SDK is running. Field value examples: `iPhone12,1`, `SM-G920F`."
        },
        "platform": {
          "enumDescriptions": [
            "The default value. This value is used if the platform is omitted.",
            "The request is coming from Android.",
            "The request is coming from iOS.",
            "The request is coming from the web."
          ],
          "type": "string",
          "description": "Platform of the calling SDK.",
          "enum": [
            "PLATFORM_UNSPECIFIED",
            "ANDROID",
            "IOS",
            "WEB"
          ]
        },
        "navSdkVersion": {
          "description": "Version of the NavSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `2.1.0`.",
          "type": "string"
        },
        "mapsSdkVersion": {
          "type": "string",
          "description": "Version of the MapSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `5.2.1`."
        }
      }
    },
    "VehicleLocation": {
      "id": "VehicleLocation",
      "description": "The location, speed, and heading of a vehicle at a point in time.",
      "properties": {
        "speedKmph": {
          "format": "int32",
          "description": "Speed of the vehicle in kilometers per hour. Deprecated: Use `speed` instead.",
          "deprecated": true,
          "type": "integer"
        },
        "heading": {
          "format": "int32",
          "description": "Direction the vehicle is moving in degrees. 0 represents North. The valid range is [0,360).",
          "type": "integer"
        },
        "roadSnapped": {
          "deprecated": true,
          "type": "boolean",
          "description": "Deprecated: Use `is_road_snapped` instead."
        },
        "rawLocationAccuracy": {
          "description": "Accuracy of `raw_location` as a radius, in meters.",
          "format": "double",
          "type": "number"
        },
        "updateTime": {
          "type": "string",
          "description": "The time when `location` was reported by the sensor according to the sensor's clock.",
          "format": "google-datetime"
        },
        "location": {
          "description": "The location of the vehicle. 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, a supplemental location, or some other estimated location. The source is specified in `location_sensor`.",
          "$ref": "LatLng"
        },
        "verticalAccuracy": {
          "deprecated": true,
          "type": "number",
          "format": "double",
          "description": "Deprecated: Use `altitude_accuracy` instead."
        },
        "locationSensor": {
          "type": "string",
          "enumDescriptions": [
            "The sensor is unspecified or unknown.",
            "GPS or Assisted GPS.",
            "Assisted GPS, cell tower ID, or WiFi access point.",
            "Cell tower ID or WiFi access point.",
            "A location determined by the mobile device to be the most likely road position.",
            "A customer-supplied location from an independent source. Typically, this value is used for a location provided from sources other than the mobile device running Driver SDK. If the original source is described by one of the other enum values, use that value. Locations marked CUSTOMER_SUPPLIED_LOCATION are typically provided via a Vehicle's `last_location.supplemental_location_sensor`.",
            "A location calculated by Fleet Engine based on the signals available to it. Output only. This value will be rejected if it is received in a request.",
            "Android's Fused Location Provider.",
            "The location provider on Apple operating systems."
          ],
          "enum": [
            "UNKNOWN_SENSOR",
            "GPS",
            "NETWORK",
            "PASSIVE",
            "ROAD_SNAPPED_LOCATION_PROVIDER",
            "CUSTOMER_SUPPLIED_LOCATION",
            "FLEET_ENGINE_LOCATION",
            "FUSED_LOCATION_PROVIDER",
            "CORE_LOCATION"
          ],
          "description": "Provider of location data (for example, `GPS`)."
        },
        "altitude": {
          "description": "Altitude in meters above WGS84.",
          "format": "double",
          "type": "number"
        },
        "bearingAccuracy": {
          "deprecated": true,
          "type": "number",
          "description": "Deprecated: Use `heading_accuracy` instead.",
          "format": "double"
        },
        "flpHeadingDegrees": {
          "description": "Direction the vehicle is moving in degrees, as determined by the Fused Location Provider. 0 represents North. The valid range is [0,360).",
          "format": "int32",
          "type": "integer"
        },
        "flpUpdateTime": {
          "type": "string",
          "format": "google-datetime",
          "description": "Update timestamp of `flp_location`"
        },
        "rawLocation": {
          "description": "Raw vehicle location (unprocessed by road-snapper).",
          "$ref": "LatLng"
        },
        "isRoadSnapped": {
          "type": "boolean",
          "description": "Whether `location` is snapped to a road."
        },
        "supplementalLocation": {
          "$ref": "LatLng",
          "description": "Supplemental location provided by the integrating app."
        },
        "rawLocationSensor": {
          "enum": [
            "UNKNOWN_SENSOR",
            "GPS",
            "NETWORK",
            "PASSIVE",
            "ROAD_SNAPPED_LOCATION_PROVIDER",
            "CUSTOMER_SUPPLIED_LOCATION",
            "FLEET_ENGINE_LOCATION",
            "FUSED_LOCATION_PROVIDER",
            "CORE_LOCATION"
          ],
          "description": "Source of the raw location. Defaults to `GPS`.",
          "type": "string",
          "enumDescriptions": [
            "The sensor is unspecified or unknown.",
            "GPS or Assisted GPS.",
            "Assisted GPS, cell tower ID, or WiFi access point.",
            "Cell tower ID or WiFi access point.",
            "A location determined by the mobile device to be the most likely road position.",
            "A customer-supplied location from an independent source. Typically, this value is used for a location provided from sources other than the mobile device running Driver SDK. If the original source is described by one of the other enum values, use that value. Locations marked CUSTOMER_SUPPLIED_LOCATION are typically provided via a Vehicle's `last_location.supplemental_location_sensor`.",
            "A location calculated by Fleet Engine based on the signals available to it. Output only. This value will be rejected if it is received in a request.",
            "Android's Fused Location Provider.",
            "The location provider on Apple operating systems."
          ]
        },
        "headingAccuracy": {
          "type": "number",
          "description": "Accuracy of `heading` in degrees.",
          "format": "double"
        },
        "numStaleUpdates": {
          "deprecated": true,
          "type": "integer",
          "description": "Input only. Deprecated: Other signals are now used to determine if a location is stale.",
          "format": "int32"
        },
        "flpLatlngAccuracyMeters": {
          "description": "Accuracy of `flp_location` in meters as a radius.",
          "format": "double",
          "type": "number"
        },
        "speedAccuracy": {
          "type": "number",
          "format": "double",
          "description": "Accuracy of `speed` in meters/second."
        },
        "latlngAccuracy": {
          "description": "Accuracy of `location` in meters as a radius.",
          "format": "double",
          "type": "number"
        },
        "isGpsSensorEnabled": {
          "type": "boolean",
          "description": "Input only. Indicates whether the GPS sensor is enabled on the mobile device."
        },
        "supplementalLocationSensor": {
          "enum": [
            "UNKNOWN_SENSOR",
            "GPS",
            "NETWORK",
            "PASSIVE",
            "ROAD_SNAPPED_LOCATION_PROVIDER",
            "CUSTOMER_SUPPLIED_LOCATION",
            "FLEET_ENGINE_LOCATION",
            "FUSED_LOCATION_PROVIDER",
            "CORE_LOCATION"
          ],
          "description": "Source of the supplemental location. Defaults to `CUSTOMER_SUPPLIED_LOCATION`.",
          "type": "string",
          "enumDescriptions": [
            "The sensor is unspecified or unknown.",
            "GPS or Assisted GPS.",
            "Assisted GPS, cell tower ID, or WiFi access point.",
            "Cell tower ID or WiFi access point.",
            "A location determined by the mobile device to be the most likely road position.",
            "A customer-supplied location from an independent source. Typically, this value is used for a location provided from sources other than the mobile device running Driver SDK. If the original source is described by one of the other enum values, use that value. Locations marked CUSTOMER_SUPPLIED_LOCATION are typically provided via a Vehicle's `last_location.supplemental_location_sensor`.",
            "A location calculated by Fleet Engine based on the signals available to it. Output only. This value will be rejected if it is received in a request.",
            "Android's Fused Location Provider.",
            "The location provider on Apple operating systems."
          ]
        },
        "rawLocationTime": {
          "type": "string",
          "description": "Timestamp associated with the raw location.",
          "format": "google-datetime"
        },
        "supplementalLocationAccuracy": {
          "type": "number",
          "description": "Accuracy of `supplemental_location` as a radius, in meters.",
          "format": "double"
        },
        "altitudeAccuracy": {
          "description": "Accuracy of `altitude` in meters.",
          "format": "double",
          "type": "number"
        },
        "timeSinceUpdate": {
          "type": "integer",
          "format": "int32",
          "description": "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."
        },
        "flpLocation": {
          "description": "The location from Android's Fused Location Provider.",
          "$ref": "LatLng"
        },
        "horizontalAccuracy": {
          "deprecated": true,
          "type": "number",
          "description": "Deprecated: Use `latlng_accuracy` instead.",
          "format": "double"
        },
        "speed": {
          "type": "number",
          "description": "Speed of the vehicle in meters/second",
          "format": "double"
        },
        "supplementalLocationTime": {
          "description": "Timestamp associated with the supplemental location.",
          "format": "google-datetime",
          "type": "string"
        },
        "serverTime": {
          "type": "string",
          "description": "Output only. The time when the server received the location information.",
          "readOnly": true,
          "format": "google-datetime"
        }
      },
      "type": "object"
    },
    "ListVehiclesResponse": {
      "id": "ListVehiclesResponse",
      "description": "`ListVehicles` response message.",
      "properties": {
        "totalSize": {
          "type": "string",
          "format": "int64",
          "description": "Required. Total number of vehicles matching the request criteria across all pages."
        },
        "vehicles": {
          "items": {
            "$ref": "Vehicle"
          },
          "type": "array",
          "description": "Vehicles matching the criteria in the request. The maximum number of vehicles returned is determined by the `page_size` field in the request."
        },
        "nextPageToken": {
          "description": "Token to retrieve the next page of vehicles, or empty if there are no more vehicles that meet the request criteria.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "SearchVehiclesResponse": {
      "id": "SearchVehiclesResponse",
      "description": "`SearchVehicles` response message.",
      "properties": {
        "matches": {
          "items": {
            "$ref": "VehicleMatch"
          },
          "type": "array",
          "description": "List of vehicles that match the `SearchVehiclesRequest` criteria, ordered according to `SearchVehiclesRequest.order_by` field."
        }
      },
      "type": "object"
    },
    "TrafficPolylineData": {
      "id": "TrafficPolylineData",
      "description": "Traffic conditions along the expected vehicle route.",
      "properties": {
        "trafficRendering": {
          "description": "A polyline rendering of how fast traffic is for all regions along one stretch of a customer ride.",
          "$ref": "VisualTrafficReportPolylineRendering"
        }
      },
      "type": "object"
    },
    "LatLng": {
      "type": "object",
      "id": "LatLng",
      "description": "An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges.",
      "properties": {
        "longitude": {
          "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].",
          "format": "double",
          "type": "number"
        },
        "latitude": {
          "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].",
          "format": "double",
          "type": "number"
        }
      }
    },
    "StopLocation": {
      "type": "object",
      "id": "StopLocation",
      "description": "The actual location where a stop (pickup/dropoff) happened.",
      "properties": {
        "point": {
          "description": "Required. Denotes the actual location.",
          "$ref": "LatLng"
        },
        "timestamp": {
          "format": "google-datetime",
          "description": "Indicates when the stop happened.",
          "type": "string"
        },
        "stopTime": {
          "format": "google-datetime",
          "description": "Input only. Deprecated. Use the timestamp field.",
          "deprecated": true,
          "type": "string"
        }
      }
    },
    "TripWaypoint": {
      "type": "object",
      "id": "TripWaypoint",
      "description": "Describes a stopping point on a vehicle's route or an ending point on a vehicle's trip.",
      "properties": {
        "distanceMeters": {
          "description": "The path distance from the previous waypoint to the current waypoint. If this is the first waypoint, the path distance is from the vehicle's current location to the waypoint.",
          "format": "int32",
          "type": "integer"
        },
        "tripId": {
          "type": "string",
          "description": "The trip associated with this waypoint."
        },
        "trafficToWaypoint": {
          "$ref": "ConsumableTrafficPolyline",
          "description": "The traffic conditions along the path to this waypoint. Note that traffic is only available for Google Map Platform Rides and Deliveries Solution customers."
        },
        "eta": {
          "description": "The estimated time of arrival at this waypoint.",
          "format": "google-datetime",
          "type": "string"
        },
        "waypointType": {
          "description": "The role this waypoint plays in this trip, such as pickup or dropoff.",
          "enum": [
            "UNKNOWN_WAYPOINT_TYPE",
            "PICKUP_WAYPOINT_TYPE",
            "DROP_OFF_WAYPOINT_TYPE",
            "INTERMEDIATE_DESTINATION_WAYPOINT_TYPE"
          ],
          "enumDescriptions": [
            "Unknown or unspecified waypoint type.",
            "Waypoints for picking up riders or items.",
            "Waypoints for dropping off riders or items.",
            "Waypoints for intermediate destinations in a multi-destination trip."
          ],
          "type": "string"
        },
        "pathToWaypoint": {
          "items": {
            "$ref": "LatLng"
          },
          "type": "array",
          "description": "The path from the previous waypoint to the current waypoint. If this is the first waypoint, the path is from the vehicle's current location to the waypoint. This field is only populated when requested."
        },
        "duration": {
          "type": "string",
          "format": "google-duration",
          "description": "The travel time from previous waypoint to this waypoint. If this is the first waypoint, the travel time is from the vehicle's current location to the waypoint."
        },
        "location": {
          "$ref": "TerminalLocation",
          "description": "The location of this waypoint."
        },
        "encodedPathToWaypoint": {
          "type": "string",
          "description": "The encoded path from the previous waypoint to the current waypoint. Note: This field is intended only for use by the Driver SDK and Consumer SDK. Decoding is not yet supported."
        }
      }
    },
    "BatchCreateTasksResponse": {
      "type": "object",
      "id": "BatchCreateTasksResponse",
      "description": "The `BatchCreateTask` response message.",
      "properties": {
        "tasks": {
          "items": {
            "$ref": "Task"
          },
          "type": "array",
          "description": "The created Tasks."
        }
      }
    },
    "Vehicle": {
      "type": "object",
      "id": "Vehicle",
      "description": "Vehicle metadata.",
      "properties": {
        "currentRouteSegmentTraffic": {
          "$ref": "TrafficPolylineData",
          "description": "Input only. Fleet Engine uses this information to improve journey sharing. Note: This field is intended only for use by the Driver SDK."
        },
        "vehicleState": {
          "enum": [
            "UNKNOWN_VEHICLE_STATE",
            "OFFLINE",
            "ONLINE"
          ],
          "description": "The vehicle state.",
          "type": "string",
          "enumDescriptions": [
            "Default, used for unspecified or unrecognized vehicle states.",
            "The vehicle is not accepting new trips. Note: the vehicle may continue to operate in this state while completing a trip assigned to it.",
            "The vehicle is accepting new trips."
          ]
        },
        "currentTrips": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "description": "Output only. List of `trip_id`'s for trips currently assigned to this vehicle."
        },
        "maximumCapacity": {
          "format": "int32",
          "description": "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.",
          "type": "integer"
        },
        "etaToFirstWaypoint": {
          "type": "string",
          "description": "The ETA to the first entry in the `waypoints` field. The value is unspecified if the `waypoints` field is empty or the `Vehicle.current_route_segment` field is empty. When updating a vehicle, `remaining_time_seconds` takes precedence over `eta_to_first_waypoint` in the same request.",
          "format": "google-datetime"
        },
        "attributes": {
          "description": "List of vehicle attributes. A vehicle can have at most 100 attributes, and each attribute must have a unique key.",
          "type": "array",
          "items": {
            "$ref": "VehicleAttribute"
          }
        },
        "remainingDistanceMeters": {
          "type": "integer",
          "format": "int32",
          "description": "The remaining driving distance for the `current_route_segment`. This value 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."
        },
        "deviceSettings": {
          "description": "Input only. Information about settings in the mobile device being used by the driver.",
          "$ref": "DeviceSettings"
        },
        "waypointsVersion": {
          "type": "string",
          "readOnly": true,
          "format": "google-datetime",
          "description": "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."
        },
        "vehicleType": {
          "description": "Required. The type of this vehicle. Can be used to filter vehicles in `SearchVehicles` results. Also influences ETA and route calculations.",
          "$ref": "VehicleType"
        },
        "licensePlate": {
          "$ref": "LicensePlate",
          "description": "License plate information for the vehicle."
        },
        "pastLocations": {
          "type": "array",
          "items": {
            "$ref": "VehicleLocation"
          },
          "description": "Input only. Locations where this vehicle has been in the past that haven't yet been reported to Fleet Engine. This is used in `UpdateVehicleRequest` to record locations which were previously unable to be sent to the server. Typically this happens when the vehicle does not have internet connectivity."
        },
        "backToBackEnabled": {
          "type": "boolean",
          "description": "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`."
        },
        "currentRouteSegment": {
          "type": "string",
          "description": "The polyline specifying the route the driver app intends to take to the next waypoint. This list is also returned in `Trip.current_route_segment` for all active trips assigned to the vehicle. Note: This field is intended only for use by the Driver SDK. Decoding is not yet supported."
        },
        "supportedTripTypes": {
          "description": "Trip types supported by this vehicle.",
          "items": {
            "type": "string",
            "enumDescriptions": [
              "Default, used for unspecified or unrecognized trip types.",
              "The trip may share a vehicle with other trips.",
              "The trip is exclusive to a vehicle."
            ],
            "enum": [
              "UNKNOWN_TRIP_TYPE",
              "SHARED",
              "EXCLUSIVE"
            ]
          },
          "type": "array"
        },
        "route": {
          "deprecated": true,
          "type": "array",
          "items": {
            "$ref": "TerminalLocation"
          },
          "description": "Deprecated: Use `Vehicle.waypoints` instead."
        },
        "remainingTimeSeconds": {
          "format": "int32",
          "description": "Input only. The remaining driving time for the `current_route_segment`. The value is unspecified if the `waypoints` field is empty or the `Vehicle.current_route_segment` field is empty. This value should match `eta_to_first_waypoint` - `current_time` if all parties are using the same clock. When updating a vehicle, `remaining_time_seconds` takes precedence over `eta_to_first_waypoint` in the same request.",
          "type": "integer"
        },
        "name": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The unique name for this vehicle. The format is `providers/{provider}/vehicles/{vehicle}`."
        },
        "lastLocation": {
          "$ref": "VehicleLocation",
          "description": "Last reported location of the vehicle."
        },
        "currentRouteSegmentVersion": {
          "readOnly": true,
          "format": "google-datetime",
          "description": "Output only. Time when `current_route_segment` was set. It can be stored by the client and passed in future `GetVehicle` requests to prevent returning routes that haven't changed.",
          "type": "string"
        },
        "waypoints": {
          "type": "array",
          "items": {
            "$ref": "TripWaypoint"
          },
          "description": "The remaining waypoints assigned to this Vehicle."
        },
        "currentRouteSegmentEndPoint": {
          "description": "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.",
          "$ref": "TripWaypoint"
        },
        "navigationStatus": {
          "description": "The vehicle's navigation status.",
          "enum": [
            "UNKNOWN_NAVIGATION_STATUS",
            "NO_GUIDANCE",
            "ENROUTE_TO_DESTINATION",
            "OFF_ROUTE",
            "ARRIVED_AT_DESTINATION"
          ],
          "enumDescriptions": [
            "Unspecified navigation status.",
            "The Driver app's navigation is in `FREE_NAV` mode.",
            "Turn-by-turn navigation is available and the Driver app navigation has entered `GUIDED_NAV` mode.",
            "The vehicle has gone off the suggested route.",
            "The vehicle is within approximately 50m of the destination."
          ],
          "type": "string"
        }
      }
    },
    "RoadStretch": {
      "type": "object",
      "id": "RoadStretch",
      "description": "One road stretch that should be rendered.",
      "properties": {
        "style": {
          "type": "string",
          "enumDescriptions": [
            "No style selected.",
            "Traffic is slowing down.",
            "There is a traffic jam."
          ],
          "enum": [
            "STYLE_UNSPECIFIED",
            "SLOWER_TRAFFIC",
            "TRAFFIC_JAM"
          ],
          "description": "Required. The style to apply."
        },
        "offsetMeters": {
          "format": "int32",
          "description": "Required. The style should be applied between `[offset_meters, offset_meters + length_meters)`.",
          "type": "integer"
        },
        "lengthMeters": {
          "description": "Required. The length of the path where to apply the style.",
          "format": "int32",
          "type": "integer"
        }
      }
    },
    "UpdateVehicleAttributesRequest": {
      "type": "object",
      "id": "UpdateVehicleAttributesRequest",
      "description": "`UpdateVehicleAttributes` request message.",
      "properties": {
        "header": {
          "$ref": "RequestHeader",
          "description": "The standard Fleet Engine request header."
        },
        "attributes": {
          "description": "Required. The vehicle attributes to update. Unmentioned attributes are not altered or removed.",
          "items": {
            "$ref": "VehicleAttribute"
          },
          "type": "array"
        }
      }
    },
    "Waypoint": {
      "type": "object",
      "id": "Waypoint",
      "description": "Describes intermediate points along a route for a `VehicleMatch` in a `SearchVehiclesResponse`. This concept is represented as a `TripWaypoint` in all other endpoints.",
      "properties": {
        "latLng": {
          "description": "The location of this waypoint.",
          "$ref": "LatLng"
        },
        "eta": {
          "format": "google-datetime",
          "description": "The estimated time that the vehicle will arrive at this waypoint.",
          "type": "string"
        }
      }
    },
    "VisibilityOption": {
      "id": "VisibilityOption",
      "description": "The option message that defines when a data element should be visible to the end users.",
      "properties": {
        "always": {
          "type": "boolean",
          "description": "If set to true, this data element is always visible to the end users with no thresholds. This field cannot be set to false."
        },
        "remainingDrivingDistanceMetersThreshold": {
          "type": "integer",
          "format": "int32",
          "description": "This data element is visible to the end users if the remaining driving distance in meters \u003c= remaining_driving_distance_meters_threshold."
        },
        "never": {
          "description": "If set to true, this data element is always hidden from the end users with no thresholds. This field cannot be set to false.",
          "type": "boolean"
        },
        "durationUntilEstimatedArrivalTimeThreshold": {
          "type": "string",
          "description": "This data element is visible to the end users if the ETA to the stop \u003c= duration_until_estimated_arrival_time_threshold.",
          "format": "google-duration"
        },
        "remainingStopCountThreshold": {
          "type": "integer",
          "format": "int32",
          "description": "This data element is visible to the end users if the remaining stop count \u003c= remaining_stop_count_threshold."
        }
      },
      "type": "object"
    },
    "DeviceSettings": {
      "type": "object",
      "id": "DeviceSettings",
      "description": "Information about various settings on the mobile device.",
      "properties": {
        "isPowerSaveMode": {
          "type": "boolean",
          "description": "Whether the device is currently in power save mode."
        },
        "isInteractive": {
          "type": "boolean",
          "description": "Whether the device is in an interactive state."
        },
        "batteryInfo": {
          "description": "Information about the battery state.",
          "$ref": "BatteryInfo"
        },
        "locationPowerSaveMode": {
          "enumDescriptions": [
            "Undefined LocationPowerSaveMode",
            "Either the location providers shouldn't be affected by battery saver, or battery saver is off.",
            "The GPS based location provider should be disabled when battery saver is on and the device is non-interactive.",
            "All location providers should be disabled when battery saver is on and the device is non-interactive.",
            "All the location providers will be kept available, but location fixes should only be provided to foreground apps.",
            "Location will not be turned off, but LocationManager will throttle all requests to providers when the device is non-interactive."
          ],
          "type": "string",
          "description": "How location features are set to behave on the device when battery saver is on.",
          "enum": [
            "UNKNOWN_LOCATION_POWER_SAVE_MODE",
            "LOCATION_MODE_NO_CHANGE",
            "LOCATION_MODE_GPS_DISABLED_WHEN_SCREEN_OFF",
            "LOCATION_MODE_ALL_DISABLED_WHEN_SCREEN_OFF",
            "LOCATION_MODE_FOREGROUND_ONLY",
            "LOCATION_MODE_THROTTLE_REQUESTS_WHEN_SCREEN_OFF"
          ]
        }
      }
    },
    "Task": {
      "id": "Task",
      "description": "A Task in the Delivery API represents a single action to track. In general, there is a distinction between shipment-related Tasks and break Tasks. A shipment can have multiple Tasks associated with it. For example, there could be one Task for the pickup, and one for the drop-off or transfer. Also, different Tasks for a given shipment can be handled by different vehicles. For example, one vehicle could handle the pickup, driving the shipment to the hub, while another vehicle drives the same shipment from the hub to the drop-off location. Note: gRPC and REST APIs use different field naming conventions. For example, the `Task.journey_sharing_info` field in the gRPC API and the `Task.journeySharingInfo` field in the REST API refer to the same field.",
      "properties": {
        "taskTrackingViewConfig": {
          "description": "The configuration for task tracking that specifies which data elements are visible to the end users under what circumstances.",
          "$ref": "TaskTrackingViewConfig"
        },
        "journeySharingInfo": {
          "description": "Output only. Journey sharing-specific fields. Not populated when state is `CLOSED`.",
          "readOnly": true,
          "$ref": "JourneySharingInfo"
        },
        "taskOutcome": {
          "type": "string",
          "enumDescriptions": [
            "The Task outcome before its value is set.",
            "The Task completed successfully.",
            "Either the Task couldn't be completed, or it was cancelled."
          ],
          "enum": [
            "TASK_OUTCOME_UNSPECIFIED",
            "SUCCEEDED",
            "FAILED"
          ],
          "description": "The outcome of the Task."
        },
        "taskOutcomeLocationSource": {
          "type": "string",
          "enumDescriptions": [
            "The task outcome before it is set.",
            "The provider-specified the `task_outcome_location`.",
            "The provider didn't specify the `task_outcome_location`, so Fleet Engine used the last known vehicle location."
          ],
          "enum": [
            "TASK_OUTCOME_LOCATION_SOURCE_UNSPECIFIED",
            "PROVIDER",
            "LAST_VEHICLE_LOCATION"
          ],
          "description": "Indicates where the value of the `task_outcome_location` came from."
        },
        "trackingId": {
          "description": "Immutable. This field facilitates the storing of an ID so you can avoid using a complicated mapping. You cannot set `tracking_id` for Tasks of type `UNAVAILABLE` and `SCHEDULED_STOP`. These IDs are subject to the following restrictions: * Must be a valid Unicode string. * Limited to a maximum length of 64 characters. * Normalized according to [Unicode Normalization Form C] (http://www.unicode.org/reports/tr15/). * May not contain any of the following ASCII characters: '/', ':', '?', ',', or '#'.",
          "type": "string"
        },
        "state": {
          "enumDescriptions": [
            "Default. Used for an unspecified or unrecognized Task state.",
            "Either the Task has not yet been assigned to a delivery vehicle, or the delivery vehicle has not yet passed the `Task`'s assigned vehicle stop.",
            "When the vehicle passes the vehicle stop for this Task."
          ],
          "type": "string",
          "description": "Required. The current execution state of the Task.",
          "enum": [
            "STATE_UNSPECIFIED",
            "OPEN",
            "CLOSED"
          ]
        },
        "taskDuration": {
          "type": "string",
          "description": "Required. Immutable. The time needed to execute a Task at this location.",
          "format": "google-duration"
        },
        "attributes": {
          "items": {
            "$ref": "TaskAttribute"
          },
          "type": "array",
          "description": "A list of custom Task attributes. Each attribute must have a unique key."
        },
        "taskOutcomeLocation": {
          "description": "The location where the `Task`'s outcome was set. This value is updated as part of `UpdateTask`. If this value isn't explicitly updated by the provider, then Fleet Engine populates it by default with the last known vehicle location (the *raw* location).",
          "$ref": "LocationInfo"
        },
        "type": {
          "enumDescriptions": [
            "Default, the Task type is unknown.",
            "A pickup Task is the action taken for picking up a shipment from a customer. Depot or feeder vehicle pickups should use the `SCHEDULED_STOP` type.",
            "A delivery Task is the action taken for delivering a shipment to an end customer. Depot or feeder vehicle dropoffs should use the `SCHEDULED_STOP` type.",
            "A scheduled stop Task is used for planning purposes. For example, it could represent picking up or dropping off shipments from feeder vehicles or depots. It shouldn't be used for any shipments that are picked up or dropped off from an end customer.",
            "A Task that means the Vehicle is not available for service. For example, this can happen when the driver takes a break, or when the vehicle is being refueled."
          ],
          "type": "string",
          "description": "Required. Immutable. Defines the type of the Task. For example, a break or shipment.",
          "enum": [
            "TYPE_UNSPECIFIED",
            "PICKUP",
            "DELIVERY",
            "SCHEDULED_STOP",
            "UNAVAILABLE"
          ]
        },
        "plannedLocation": {
          "description": "Immutable. The location where the Task will be completed. Optional for `UNAVAILABLE` Tasks, but required for all other Tasks.",
          "$ref": "LocationInfo"
        },
        "taskOutcomeTime": {
          "type": "string",
          "description": "The timestamp that indicates when the `Task`'s outcome was set by the provider.",
          "format": "google-datetime"
        },
        "deliveryVehicleId": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. The ID of the vehicle that is executing this Task. Delivery Vehicle IDs are subject to the following restrictions: * Must be a valid Unicode string. * Limited to a maximum length of 64 characters. * Normalized according to [Unicode Normalization Form C] (http://www.unicode.org/reports/tr15/). * May not contain any of the following ASCII characters: '/', ':', '?', ',', or '#'."
        },
        "name": {
          "description": "Must be in the format `providers/{provider}/tasks/{task}`.",
          "type": "string"
        },
        "targetTimeWindow": {
          "$ref": "TimeWindow",
          "description": "The time window during which the task should be completed."
        }
      },
      "type": "object"
    },
    "LicensePlate": {
      "type": "object",
      "id": "LicensePlate",
      "description": "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.",
      "properties": {
        "countryCode": {
          "description": "Required. CLDR Country/Region Code. For example, `US` for United States, or `IN` for India.",
          "type": "string"
        },
        "lastCharacter": {
          "type": "string",
          "description": "The last digit of the license plate or \"-1\" to denote no numeric value is present in the license plate. * \"ABC 1234\" -\u003e \"4\" * \"AB 123 CD\" -\u003e \"3\" * \"ABCDEF\" -\u003e \"-1\""
        }
      }
    },
    "VisualTrafficReportPolylineRendering": {
      "type": "object",
      "id": "VisualTrafficReportPolylineRendering",
      "description": "Describes how clients should color one portion of the polyline along the route.",
      "properties": {
        "roadStretch": {
          "type": "array",
          "items": {
            "$ref": "RoadStretch"
          },
          "description": "Optional. Road stretches that should be rendered along the polyline. Stretches are guaranteed to not overlap, and 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."
        }
      }
    },
    "JourneySharingInfo": {
      "id": "JourneySharingInfo",
      "description": "Journey sharing specific fields.",
      "properties": {
        "lastLocationSnappable": {
          "type": "boolean",
          "description": "Indicates whether the vehicle's lastLocation can be snapped to the `current_route_segment`. This value is False if either `last_location` or `current_route_segment` don't exist. This value is computed by Fleet Engine. Updates from clients are ignored."
        },
        "remainingVehicleJourneySegments": {
          "type": "array",
          "items": {
            "$ref": "VehicleJourneySegment"
          },
          "description": "Tracking information for the stops that the assigned vehicle will make before it completes this Task. Note that this list can contain stops from other tasks. The first segment, `Task.journey_sharing_info.remaining_vehicle_journey_segments[0]` (gRPC) or `Task.journeySharingInfo.remainingVehicleJourneySegments[0]` (REST), contains route information from the driver's last known location to the upcoming `VehicleStop`. Current route information usually comes from the driver app, except for some cases noted in the documentation for DeliveryVehicle.current_route_segment. The other segments in `Task.journey_sharing_info.remaining_vehicle_journey_segments` (gRPC) or `Task.journeySharingInfo.remainingVehicleJourneySegments` (REST) are populated by Fleet Engine. They provide route information between the remaining `VehicleStops`."
        },
        "lastLocation": {
          "$ref": "DeliveryVehicleLocation",
          "description": "Indicates the vehicle's last reported location of the assigned vehicle."
        }
      },
      "type": "object"
    },
    "ListTasksResponse": {
      "id": "ListTasksResponse",
      "description": "The `ListTasks` response that contains the set of Tasks that meet the filter criteria in the `ListTasksRequest`.",
      "properties": {
        "tasks": {
          "description": "The set of Tasks that meet the requested filtering criteria. When no filter is specified, the request returns all tasks. A successful response can also be empty. An empty response indicates that no Tasks were found meeting the requested filter criteria.",
          "items": {
            "$ref": "Task"
          },
          "type": "array"
        },
        "nextPageToken": {
          "type": "string",
          "description": "Pass this token in the `ListTasksRequest` to continue to list results. If all results have been returned, then this field is either an empty string, or it doesn't appear in the response."
        },
        "totalSize": {
          "type": "string",
          "description": "The total number of Tasks that match the request criteria, across all pages.",
          "format": "int64"
        }
      },
      "type": "object"
    },
    "DeliveryVehicleLocation": {
      "type": "object",
      "id": "DeliveryVehicleLocation",
      "description": "The location, speed, and heading of a vehicle at a point in time.",
      "properties": {
        "horizontalAccuracy": {
          "deprecated": true,
          "type": "number",
          "description": "Deprecated: Use `latlng_accuracy` instead.",
          "format": "double"
        },
        "speed": {
          "type": "number",
          "format": "double",
          "description": "Speed of the vehicle in meters/second"
        },
        "flpLocation": {
          "$ref": "LatLng",
          "description": "The location from Android's Fused Location Provider."
        },
        "supplementalLocationAccuracy": {
          "type": "number",
          "format": "double",
          "description": "Accuracy of `supplemental_location` as a radius, in meters."
        },
        "altitudeAccuracy": {
          "type": "number",
          "format": "double",
          "description": "Accuracy of `altitude` in meters."
        },
        "timeSinceUpdate": {
          "format": "int32",
          "description": "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.",
          "type": "integer"
        },
        "rawLocationTime": {
          "format": "google-datetime",
          "description": "Timestamp associated with the raw location.",
          "type": "string"
        },
        "serverTime": {
          "type": "string",
          "readOnly": true,
          "format": "google-datetime",
          "description": "Output only. The time when the server received the location information."
        },
        "supplementalLocationTime": {
          "type": "string",
          "description": "Timestamp associated with the supplemental location.",
          "format": "google-datetime"
        },
        "speedAccuracy": {
          "type": "number",
          "description": "Accuracy of `speed` in meters/second.",
          "format": "double"
        },
        "latlngAccuracy": {
          "type": "number",
          "format": "double",
          "description": "Accuracy of `location` in meters as a radius."
        },
        "flpLatlngAccuracyMeters": {
          "type": "number",
          "format": "double",
          "description": "Accuracy of `flp_location` in meters as a radius."
        },
        "headingAccuracy": {
          "type": "number",
          "description": "Accuracy of `heading` in degrees.",
          "format": "double"
        },
        "numStaleUpdates": {
          "deprecated": true,
          "type": "integer",
          "description": "Input only. Deprecated: Other signals are now used to determine if a location is stale.",
          "format": "int32"
        },
        "rawLocationSensor": {
          "enum": [
            "UNKNOWN_SENSOR",
            "GPS",
            "NETWORK",
            "PASSIVE",
            "ROAD_SNAPPED_LOCATION_PROVIDER",
            "CUSTOMER_SUPPLIED_LOCATION",
            "FLEET_ENGINE_LOCATION",
            "FUSED_LOCATION_PROVIDER",
            "CORE_LOCATION"
          ],
          "description": "Source of the raw location. Defaults to `GPS`.",
          "type": "string",
          "enumDescriptions": [
            "The sensor is unspecified or unknown.",
            "GPS or Assisted GPS.",
            "Assisted GPS, cell tower ID, or WiFi access point.",
            "Cell tower ID or WiFi access point.",
            "A location determined by the mobile device to be the most likely road position.",
            "A customer-supplied location from an independent source. Typically, this value is used for a location provided from sources other than the mobile device running Driver SDK. If the original source is described by one of the other enum values, use that value. Locations marked CUSTOMER_SUPPLIED_LOCATION are typically provided via a DeliveryVehicle's `last_location.supplemental_location_sensor`.",
            "A location calculated by Fleet Engine based on the signals available to it. Output only. This value will be rejected if it is received in a request.",
            "Android's Fused Location Provider.",
            "The location provider on Apple operating systems."
          ]
        },
        "supplementalLocationSensor": {
          "enum": [
            "UNKNOWN_SENSOR",
            "GPS",
            "NETWORK",
            "PASSIVE",
            "ROAD_SNAPPED_LOCATION_PROVIDER",
            "CUSTOMER_SUPPLIED_LOCATION",
            "FLEET_ENGINE_LOCATION",
            "FUSED_LOCATION_PROVIDER",
            "CORE_LOCATION"
          ],
          "description": "Source of the supplemental location. Defaults to `CUSTOMER_SUPPLIED_LOCATION`.",
          "type": "string",
          "enumDescriptions": [
            "The sensor is unspecified or unknown.",
            "GPS or Assisted GPS.",
            "Assisted GPS, cell tower ID, or WiFi access point.",
            "Cell tower ID or WiFi access point.",
            "A location determined by the mobile device to be the most likely road position.",
            "A customer-supplied location from an independent source. Typically, this value is used for a location provided from sources other than the mobile device running Driver SDK. If the original source is described by one of the other enum values, use that value. Locations marked CUSTOMER_SUPPLIED_LOCATION are typically provided via a DeliveryVehicle's `last_location.supplemental_location_sensor`.",
            "A location calculated by Fleet Engine based on the signals available to it. Output only. This value will be rejected if it is received in a request.",
            "Android's Fused Location Provider.",
            "The location provider on Apple operating systems."
          ]
        },
        "isGpsSensorEnabled": {
          "description": "Input only. Indicates whether the GPS sensor is enabled on the mobile device.",
          "type": "boolean"
        },
        "bearingAccuracy": {
          "deprecated": true,
          "type": "number",
          "description": "Deprecated: Use `heading_accuracy` instead.",
          "format": "double"
        },
        "flpHeadingDegrees": {
          "type": "integer",
          "format": "int32",
          "description": "Direction the vehicle is moving in degrees, as determined by the Fused Location Provider. 0 represents North. The valid range is [0,360)."
        },
        "altitude": {
          "description": "Altitude in meters above WGS84.",
          "format": "double",
          "type": "number"
        },
        "location": {
          "description": "The location of the vehicle. 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, a supplemental location, or some other estimated location. The source is specified in `location_sensor`.",
          "$ref": "LatLng"
        },
        "verticalAccuracy": {
          "deprecated": true,
          "type": "number",
          "format": "double",
          "description": "Deprecated: Use `altitude_accuracy` instead."
        },
        "locationSensor": {
          "type": "string",
          "enumDescriptions": [
            "The sensor is unspecified or unknown.",
            "GPS or Assisted GPS.",
            "Assisted GPS, cell tower ID, or WiFi access point.",
            "Cell tower ID or WiFi access point.",
            "A location determined by the mobile device to be the most likely road position.",
            "A customer-supplied location from an independent source. Typically, this value is used for a location provided from sources other than the mobile device running Driver SDK. If the original source is described by one of the other enum values, use that value. Locations marked CUSTOMER_SUPPLIED_LOCATION are typically provided via a DeliveryVehicle's `last_location.supplemental_location_sensor`.",
            "A location calculated by Fleet Engine based on the signals available to it. Output only. This value will be rejected if it is received in a request.",
            "Android's Fused Location Provider.",
            "The location provider on Apple operating systems."
          ],
          "enum": [
            "UNKNOWN_SENSOR",
            "GPS",
            "NETWORK",
            "PASSIVE",
            "ROAD_SNAPPED_LOCATION_PROVIDER",
            "CUSTOMER_SUPPLIED_LOCATION",
            "FLEET_ENGINE_LOCATION",
            "FUSED_LOCATION_PROVIDER",
            "CORE_LOCATION"
          ],
          "description": "Provider of location data (for example, `GPS`)."
        },
        "isRoadSnapped": {
          "description": "Whether `location` is snapped to a road.",
          "type": "boolean"
        },
        "supplementalLocation": {
          "$ref": "LatLng",
          "description": "Supplemental location provided by the integrating app."
        },
        "rawLocation": {
          "description": "Raw vehicle location (unprocessed by road-snapper).",
          "$ref": "LatLng"
        },
        "flpUpdateTime": {
          "type": "string",
          "description": "Update timestamp of `flp_location`",
          "format": "google-datetime"
        },
        "speedKmph": {
          "deprecated": true,
          "type": "integer",
          "description": "Speed of the vehicle in kilometers per hour. Deprecated: Use `speed` instead.",
          "format": "int32"
        },
        "rawLocationAccuracy": {
          "format": "double",
          "description": "Accuracy of `raw_location` as a radius, in meters.",
          "type": "number"
        },
        "updateTime": {
          "description": "The time when `location` was reported by the sensor according to the sensor's clock.",
          "format": "google-datetime",
          "type": "string"
        },
        "heading": {
          "type": "integer",
          "description": "Direction the vehicle is moving in degrees. 0 represents North. The valid range is [0,360).",
          "format": "int32"
        },
        "roadSnapped": {
          "description": "Deprecated: Use `is_road_snapped` instead.",
          "deprecated": true,
          "type": "boolean"
        }
      }
    },
    "SpeedReadingInterval": {
      "type": "object",
      "id": "SpeedReadingInterval",
      "description": "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.",
      "properties": {
        "speed": {
          "enumDescriptions": [
            "Default value. This value is unused.",
            "Normal speed, no traffic delays.",
            "Slowdown detected, medium amount of traffic.",
            "Traffic delays."
          ],
          "type": "string",
          "description": "Traffic speed in this interval.",
          "enum": [
            "SPEED_UNSPECIFIED",
            "NORMAL",
            "SLOW",
            "TRAFFIC_JAM"
          ]
        },
        "startPolylinePointIndex": {
          "type": "integer",
          "description": "The starting index of this interval in the path. In JSON, when the index is 0, the field will appear to be unpopulated.",
          "format": "int32"
        },
        "endPolylinePointIndex": {
          "type": "integer",
          "format": "int32",
          "description": "The ending index of this interval in the path. In JSON, when the index is 0, the field will appear to be unpopulated."
        }
      }
    },
    "VehicleStop": {
      "type": "object",
      "id": "VehicleStop",
      "description": "Describes a point where a Vehicle stops to perform one or more `Task`s.",
      "properties": {
        "tasks": {
          "type": "array",
          "items": {
            "$ref": "TaskInfo"
          },
          "description": "The list of `Task`s to be performed at this stop. This field won't be populated in the response of a `GetTask` call."
        },
        "plannedLocation": {
          "description": "Required. The location of the stop. Note that the locations in the `Task`s might not exactly match this location, but will be within a short distance of it. This field won't be populated in the response of a `GetTask` call.",
          "$ref": "LocationInfo"
        },
        "state": {
          "type": "string",
          "enumDescriptions": [
            "Unknown.",
            "Created, but not actively routing.",
            "Assigned and actively routing.",
            "Arrived at stop. Assumes that when the Vehicle is routing to the next stop, that all previous stops have been completed."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "NEW",
            "ENROUTE",
            "ARRIVED"
          ],
          "description": "The state of the `VehicleStop`. This field won't be populated in the response of a `GetTask` call."
        }
      }
    },
    "LocationInfo": {
      "id": "LocationInfo",
      "description": "A location with any additional identifiers.",
      "properties": {
        "point": {
          "description": "The location's coordinates. Either `point` or `place` must be specified as input. If both are specified, `point` will be used for routing and `place` will be used for metadata. If only `place` is specified as input, `point` will be calculated from the `place` and included in the output.",
          "$ref": "LatLng"
        },
        "place": {
          "type": "string",
          "description": "The resource name of the place that represents this location. The format is `places/{place_id}`. Either `point` or `place` must be specified as input. If both are specified, `point` will be used for routing and `place` will be used for metadata. `place` is only included in the output if it was included in the input, meaning that there is no `place` lookup from `LatLng` performed. This is an experimental feature."
        },
        "pointLocationSource": {
          "enum": [
            "POINT_SOURCE_UNSPECIFIED",
            "POINT_SOURCE_DEVELOPER_PROVIDED",
            "POINT_SOURCE_CALCULATED_FROM_PLACE"
          ],
          "readOnly": true,
          "description": "Output only. The source of the latlng `point` field. This is part of an experimental feature.",
          "type": "string",
          "enumDescriptions": [
            "Point source unspecified.",
            "The `LatLng` was explicitly provided by the developer.",
            "The `LatLng` was calculated from the provided place."
          ]
        }
      },
      "type": "object"
    },
    "UpdateVehicleAttributesResponse": {
      "id": "UpdateVehicleAttributesResponse",
      "description": "`UpdateVehicleAttributes` response message.",
      "properties": {
        "attributes": {
          "description": "Required. The updated full list of vehicle attributes, including new, altered, and untouched attributes.",
          "type": "array",
          "items": {
            "$ref": "VehicleAttribute"
          }
        }
      },
      "type": "object"
    },
    "BatteryInfo": {
      "type": "object",
      "id": "BatteryInfo",
      "description": "Information about the device's battery.",
      "properties": {
        "batteryStatus": {
          "enum": [
            "UNKNOWN_BATTERY_STATUS",
            "BATTERY_STATUS_CHARGING",
            "BATTERY_STATUS_DISCHARGING",
            "BATTERY_STATUS_FULL",
            "BATTERY_STATUS_NOT_CHARGING",
            "BATTERY_STATUS_POWER_LOW"
          ],
          "description": "Status of the battery, whether full or charging etc.",
          "type": "string",
          "enumDescriptions": [
            "Battery status unknown.",
            "Battery is being charged.",
            "Battery is discharging.",
            "Battery is full.",
            "Battery is not charging.",
            "Battery is low on power."
          ]
        },
        "batteryPercentage": {
          "format": "float",
          "description": "Current battery percentage [0-100].",
          "type": "number"
        },
        "powerSource": {
          "enumDescriptions": [
            "Power source unknown.",
            "Power source is an AC charger.",
            "Power source is a USB port.",
            "Power source is wireless.",
            "Battery is unplugged."
          ],
          "type": "string",
          "description": "Status of battery power source.",
          "enum": [
            "UNKNOWN_POWER_SOURCE",
            "POWER_SOURCE_AC",
            "POWER_SOURCE_USB",
            "POWER_SOURCE_WIRELESS",
            "POWER_SOURCE_UNPLUGGED"
          ]
        }
      }
    },
    "ReportBillableTripRequest": {
      "id": "ReportBillableTripRequest",
      "description": "ReportBillableTrip request message.",
      "properties": {
        "relatedIds": {
          "description": "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 limited to 50.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "countryCode": {
          "description": "Required. Two letter country code of the country where the trip takes place. Price is defined according to country code.",
          "type": "string"
        },
        "platform": {
          "enum": [
            "BILLING_PLATFORM_IDENTIFIER_UNSPECIFIED",
            "SERVER",
            "WEB",
            "ANDROID",
            "IOS",
            "OTHERS"
          ],
          "description": "The platform upon which the request was issued.",
          "type": "string",
          "enumDescriptions": [
            "Default. Used for unspecified platforms.",
            "The platform is a client server.",
            "The platform is a web browser.",
            "The platform is an Android mobile device.",
            "The platform is an IOS mobile device.",
            "Other platforms that are not listed in this enumeration."
          ]
        },
        "solutionType": {
          "description": "The type of GMP product solution (for example, `ON_DEMAND_RIDESHARING_AND_DELIVERIES`) used for the reported trip.",
          "enum": [
            "SOLUTION_TYPE_UNSPECIFIED",
            "ON_DEMAND_RIDESHARING_AND_DELIVERIES"
          ],
          "enumDescriptions": [
            "The default value. For backwards-compatibility, the API will use `ON_DEMAND_RIDESHARING_AND_DELIVERIES` by default which is the first supported solution type.",
            "The solution is an on-demand ridesharing and deliveries trip."
          ],
          "type": "string"
        }
      },
      "type": "object"
    },
    "VehicleMatch": {
      "type": "object",
      "id": "VehicleMatch",
      "description": "Contains the vehicle and related estimates for a vehicle that match the points of active trips for the vehicle `SearchVehiclesRequest`.",
      "properties": {
        "vehicleDropoffEta": {
          "type": "string",
          "description": "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.",
          "format": "google-datetime"
        },
        "vehicleTripsWaypoints": {
          "description": "The ordered list of waypoints used to calculate the ETA. The list includes vehicle location, the pickup points of active trips for the vehicle, and the pickup points provided in the request. An empty list indicates a failure in calculating ETA for the vehicle.",
          "items": {
            "$ref": "Waypoint"
          },
          "type": "array"
        },
        "vehiclePickupToDropoffDistanceMeters": {
          "type": "integer",
          "format": "int32",
          "description": "The vehicle's driving distance (in meters) from the pickup point to the drop off point specified in the request. The distance is only 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 a failure in calculating the distance from the pickup to drop off point specified in the request."
        },
        "requestedOrderedBy": {
          "enum": [
            "UNKNOWN_VEHICLE_MATCH_ORDER",
            "PICKUP_POINT_ETA",
            "PICKUP_POINT_DISTANCE",
            "DROPOFF_POINT_ETA",
            "PICKUP_POINT_STRAIGHT_DISTANCE",
            "COST"
          ],
          "description": "The order requested for sorting vehicle matches. Equivalent to `ordered_by`.",
          "type": "string",
          "enumDescriptions": [
            "Default, used for unspecified or unrecognized vehicle matches order.",
            "Ascending order by vehicle driving time to the pickup point.",
            "Ascending order by vehicle driving distance to the pickup point.",
            "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.",
            "Ascending order by straight-line distance from the vehicle's last reported location to the pickup point.",
            "Ascending order by the configured match cost. Match cost is defined as a weighted calculation between straight-line distance and ETA. Weights are set with default values and can be modified per customer. Please contact Google support if these weights need to be modified for your project."
          ]
        },
        "vehicleMatchType": {
          "enum": [
            "UNKNOWN",
            "EXCLUSIVE",
            "BACK_TO_BACK",
            "CARPOOL",
            "CARPOOL_BACK_TO_BACK"
          ],
          "description": "Type of the vehicle match.",
          "type": "string",
          "enumDescriptions": [
            "Unknown vehicle match type",
            "The vehicle currently has no trip assigned to it and can proceed to the pickup point.",
            "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.",
            "The vehicle has sufficient capacity for a shared ride.",
            "The vehicle will finish its current, active trip before proceeding to the pickup point. ETA and distance calculations take the existing trip into account."
          ]
        },
        "vehicle": {
          "$ref": "Vehicle",
          "description": "Required. A vehicle that matches the request."
        },
        "vehiclePickupEta": {
          "format": "google-datetime",
          "description": "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. 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.",
          "type": "string"
        },
        "tripType": {
          "description": "Required. The trip type of the request that was used to calculate the ETA to the pickup point.",
          "enum": [
            "UNKNOWN_TRIP_TYPE",
            "SHARED",
            "EXCLUSIVE"
          ],
          "enumDescriptions": [
            "Default, used for unspecified or unrecognized trip types.",
            "The trip may share a vehicle with other trips.",
            "The trip is exclusive to a vehicle."
          ],
          "type": "string"
        },
        "vehiclePickupStraightLineDistanceMeters": {
          "description": "Required. The straight-line distance between the vehicle and the pickup point specified in the request.",
          "format": "int32",
          "type": "integer"
        },
        "orderedBy": {
          "enum": [
            "UNKNOWN_VEHICLE_MATCH_ORDER",
            "PICKUP_POINT_ETA",
            "PICKUP_POINT_DISTANCE",
            "DROPOFF_POINT_ETA",
            "PICKUP_POINT_STRAIGHT_DISTANCE",
            "COST"
          ],
          "description": "The order requested for sorting vehicle matches. Equivalent to `requested_ordered_by`.",
          "type": "string",
          "enumDescriptions": [
            "Default, used for unspecified or unrecognized vehicle matches order.",
            "Ascending order by vehicle driving time to the pickup point.",
            "Ascending order by vehicle driving distance to the pickup point.",
            "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.",
            "Ascending order by straight-line distance from the vehicle's last reported location to the pickup point.",
            "Ascending order by the configured match cost. Match cost is defined as a weighted calculation between straight-line distance and ETA. Weights are set with default values and can be modified per customer. Please contact Google support if these weights need to be modified for your project."
          ]
        },
        "vehiclePickupDistanceMeters": {
          "type": "integer",
          "description": "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.",
          "format": "int32"
        }
      }
    },
    "DeliveryVehicle": {
      "id": "DeliveryVehicle",
      "description": "The `DeliveryVehicle` message. A delivery vehicle transports shipments from a depot to a delivery location, and from a pickup location to the depot. In some cases, delivery vehicles also transport shipments directly from the pickup location to the delivery location. Note: gRPC and REST APIs use different field naming conventions. For example, the `DeliveryVehicle.current_route_segment` field in the gRPC API and the `DeliveryVehicle.currentRouteSegment` field in the REST API refer to the same field.",
      "properties": {
        "name": {
          "type": "string",
          "description": "The unique name of this Delivery Vehicle. The format is `providers/{provider}/deliveryVehicles/{vehicle}`."
        },
        "lastLocation": {
          "description": "The last reported location of the Delivery Vehicle.",
          "$ref": "DeliveryVehicleLocation"
        },
        "remainingDistanceMeters": {
          "format": "int32",
          "description": "The remaining driving distance for the `current_route_segment`. The Driver app typically provides this field, but there are some circumstances in which Fleet Engine will override the value sent by the app. For more information, see DeliveryVehicle.current_route_segment. This field is returned in `Task.remaining_vehicle_journey_segments[0].driving_distance_meters` (gRPC) or `Task.remainingVehicleJourneySegments[0].drivingDistanceMeters` (REST) for all active `Task`s assigned to the Delivery Vehicle. Fleet Engine ignores this field in `UpdateDeliveryVehicleRequest` if the `current_route_segment` field is empty.",
          "type": "integer"
        },
        "remainingVehicleJourneySegments": {
          "type": "array",
          "items": {
            "$ref": "VehicleJourneySegment"
          },
          "description": "The journey segments assigned to this Delivery Vehicle, starting from the Vehicle's most recently reported location. This field won't be populated in the response of `ListDeliveryVehicles`."
        },
        "currentRouteSegmentEndPoint": {
          "description": "The location where the `current_route_segment` ends. This is not currently populated by the driver app, but you can supply it on `UpdateDeliveryVehicle` calls. It is either the `LatLng` from the upcoming vehicle stop, or the last `LatLng` of the `current_route_segment`. Fleet Engine will then do its best to interpolate to an actual `VehicleStop`. This field is ignored in `UpdateDeliveryVehicle` calls if the `current_route_segment` field is empty.",
          "$ref": "LatLng"
        },
        "navigationStatus": {
          "description": "The Delivery Vehicle's navigation status.",
          "enum": [
            "UNKNOWN_NAVIGATION_STATUS",
            "NO_GUIDANCE",
            "ENROUTE_TO_DESTINATION",
            "OFF_ROUTE",
            "ARRIVED_AT_DESTINATION"
          ],
          "enumDescriptions": [
            "Unspecified navigation status.",
            "The Driver app's navigation is in `FREE_NAV` mode.",
            "Turn-by-turn navigation is available and the Driver app navigation has entered `GUIDED_NAV` mode.",
            "The vehicle has gone off the suggested route.",
            "The vehicle is within approximately 50m of the destination."
          ],
          "type": "string"
        },
        "attributes": {
          "description": "A list of custom Delivery Vehicle attributes. A Delivery Vehicle can have at most 100 attributes, and each attribute must have a unique key.",
          "type": "array",
          "items": {
            "$ref": "DeliveryVehicleAttribute"
          }
        },
        "currentRouteSegment": {
          "description": "The encoded polyline specifying the route that the navigation recommends taking to the next waypoint. Your driver app updates this when a stop is reached or passed, and when the navigation reroutes. These `LatLng`s are returned in `Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path` (gRPC) or `Task.journeySharingInfo.remainingVehicleJourneySegments[0].path` (REST) for all active Tasks assigned to the Vehicle. There are a few cases where this field might not be used to populate `Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path` (gRPC) or `Task.journeySharingInfo.remainingVehicleJourneySegments[0].path` (REST): * The endpoint of the `current_route_segment` does not match `DeliveryVehicle.remaining_vehicle_journey_segments[0].stop` (gRPC) or `DeliveryVehicle.remainingVehicleJourneySegments[0].stop` (REST). * The driver app has not updated its location recently, so the last updated value for this field might be stale. * The driver app has recently updated its location, but the `current_route_segment` is stale, and points to a previous vehicle stop. In these cases, Fleet Engine populates this field with a route from the most recently passed VehicleStop to the upcoming VehicleStop to ensure that the consumer of this field has the best available information on the current path of the Delivery Vehicle.",
          "format": "byte",
          "type": "string"
        },
        "remainingDuration": {
          "type": "string",
          "description": "The remaining driving time for the `current_route_segment`. The Driver app typically provides this field, but there are some circumstances in which Fleet Engine will override the value sent by the app. For more information, see DeliveryVehicle.current_route_segment. This field is returned in `Task.remaining_vehicle_journey_segments[0].driving_duration` (gRPC) or `Task.remainingVehicleJourneySegments[0].drivingDuration` (REST) for all active tasks assigned to the Delivery Vehicle. Fleet Engine ignores this field in `UpdateDeliveryVehicleRequest` if the `current_route_segment` field is empty.",
          "format": "google-duration"
        },
        "pastLocations": {
          "items": {
            "$ref": "DeliveryVehicleLocation"
          },
          "type": "array",
          "description": "Input only. Locations where this Delivery Vehicle has been in the past that haven't yet been reported to Fleet Engine. This is used in `UpdateDeliveryVehicleRequest` to record locations which were previously unable to be sent to the server. Typically this happens when the Delivery Vehicle does not have internet connectivity."
        },
        "type": {
          "type": "string",
          "enumDescriptions": [
            "The value is unused.",
            "An automobile.",
            "A motorcycle, moped, or other two-wheeled vehicle",
            "Human-powered transport.",
            "A human transporter, typically walking or running, traveling along pedestrian pathways."
          ],
          "enum": [
            "DELIVERY_VEHICLE_TYPE_UNSPECIFIED",
            "AUTO",
            "TWO_WHEELER",
            "BICYCLE",
            "PEDESTRIAN"
          ],
          "description": "The type of this delivery vehicle. If unset, this will default to `AUTO`."
        }
      },
      "type": "object"
    },
    "TimeWindow": {
      "id": "TimeWindow",
      "description": "A time range.",
      "properties": {
        "endTime": {
          "format": "google-datetime",
          "description": "Required. The end time of the time window (inclusive).",
          "type": "string"
        },
        "startTime": {
          "format": "google-datetime",
          "description": "Required. The start time of the time window (inclusive).",
          "type": "string"
        }
      },
      "type": "object"
    },
    "VehicleJourneySegment": {
      "id": "VehicleJourneySegment",
      "description": "Represents a Vehicle’s travel segment - from its previous stop to the current stop. If it is the first active stop, then it is from the Vehicle’s current location to this stop.",
      "properties": {
        "stop": {
          "$ref": "VehicleStop",
          "description": "Specifies the stop location, along with the `Task`s associated with the stop. Some fields of the VehicleStop might not be present if this journey segment is part of `JourneySharingInfo`."
        },
        "path": {
          "description": "Output only. The path from the previous stop to this stop. If the current stop is the first stop in the list of journey segments, then this is the path from the vehicle's current location to this stop at the time that the stop was added to the list. This field might not be present if this journey segment is part of `JourneySharingInfo`. If this field is defined in the path `Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path` (gRPC) or `Task.journeySharingInfo.remainingVehicleJourneySegments[0].path` (REST), then it may be populated with the `LatLng`s decoded from `DeliveryVehicle.current_route_segment` (gRPC) or `DeliveryVehicle.currentRouteSegment` (REST). This provides the driving path from the driver app's latest known location rather than the path from the previous stop.",
          "readOnly": true,
          "items": {
            "$ref": "LatLng"
          },
          "type": "array"
        },
        "drivingDistanceMeters": {
          "description": "Output only. The travel distance from the previous stop to this stop. If the current stop is the first stop in the list of journey segments, then the starting point is the vehicle's location recorded at the time that this stop was added to the list. This field might not be present if this journey segment is part of `JourneySharingInfo`.",
          "readOnly": true,
          "format": "int32",
          "type": "integer"
        },
        "drivingDuration": {
          "description": "Output only. The travel time from the previous stop to this stop. If the current stop is the first stop in the list of journey segments, then the starting point is the Vehicle's location recorded at the time that this stop was added to the list. If this field is defined in the path `Task.remaining_vehicle_journey_segments[0].driving_duration` (gRPC) or `Task.remainingVehicleJourneySegments[0].drivingDuration` (REST), then it may be populated with the value from `DeliveryVehicle.remaining_duration` (gRPC) or `DeliveryVehicle.remainingDuration` (REST). This provides the remaining driving duration from the driver app's latest known location rather than the driving time from the previous stop.",
          "readOnly": true,
          "format": "google-duration",
          "type": "string"
        }
      },
      "type": "object"
    },
    "VehicleAttribute": {
      "type": "object",
      "id": "VehicleAttribute",
      "description": "Describes a vehicle attribute as a key-value pair. The \"key:value\" string length cannot exceed 256 characters.",
      "properties": {
        "stringValue": {
          "description": "String typed attribute value. Note: This is identical to the `value` field which will eventually be deprecated. For create or update methods, either field can be used, but it's strongly recommended to use `string_value`. If both `string_value` and `value` are set, they must be identical or an error will be thrown. Both fields are populated in responses.",
          "type": "string"
        },
        "value": {
          "type": "string",
          "description": "The attribute's value."
        },
        "boolValue": {
          "type": "boolean",
          "description": "Boolean typed attribute value."
        },
        "key": {
          "description": "The attribute's key. Keys may not contain the colon character (:).",
          "type": "string"
        },
        "numberValue": {
          "description": "Double typed attribute value.",
          "format": "double",
          "type": "number"
        }
      }
    },
    "Trip": {
      "type": "object",
      "id": "Trip",
      "description": "Trip metadata.",
      "properties": {
        "remainingWaypoints": {
          "type": "array",
          "items": {
            "$ref": "TripWaypoint"
          },
          "readOnly": true,
          "description": "Output only. The full path from the current location to the dropoff point, inclusive. This path could include waypoints from other trips."
        },
        "currentRouteSegment": {
          "type": "string",
          "readOnly": true,
          "description": "Output only. An encoded path to the next waypoint. Note: This field is intended only for use by the Driver SDK and Consumer SDK. Decoding is not yet supported."
        },
        "tripType": {
          "enum": [
            "UNKNOWN_TRIP_TYPE",
            "SHARED",
            "EXCLUSIVE"
          ],
          "description": "The type of the trip.",
          "type": "string",
          "enumDescriptions": [
            "Default, used for unspecified or unrecognized trip types.",
            "The trip may share a vehicle with other trips.",
            "The trip is exclusive to a vehicle."
          ]
        },
        "vehicleId": {
          "type": "string",
          "description": "ID of the vehicle making this trip."
        },
        "currentRouteSegmentVersion": {
          "description": "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.",
          "readOnly": true,
          "format": "google-datetime",
          "type": "string"
        },
        "lastLocationSnappable": {
          "type": "boolean",
          "readOnly": true,
          "description": "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."
        },
        "name": {
          "type": "string",
          "description": "Output only. In the format \"providers/{provider}/trips/{trip}\"",
          "readOnly": true
        },
        "route": {
          "readOnly": true,
          "description": "Output only. Anticipated route for this trip to the first entry in remaining_waypoints. Note that the first waypoint may belong to a different trip.",
          "type": "array",
          "items": {
            "$ref": "LatLng"
          }
        },
        "numberOfPassengers": {
          "format": "int32",
          "description": "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 a `SearchVehicles` response.",
          "type": "integer"
        },
        "intermediateDestinationsVersion": {
          "description": "Indicates the last time the `intermediate_destinations` was modified. Your server should cache this value and pass it in `UpdateTripRequest` when update `intermediate_destination_index` to ensure the `intermediate_destinations` is not changed.",
          "format": "google-datetime",
          "type": "string"
        },
        "remainingWaypointsVersion": {
          "readOnly": true,
          "format": "google-datetime",
          "description": "Output only. Indicates the last time that `remaining_waypoints` was changed (a waypoint was added, removed, or changed).",
          "type": "string"
        },
        "view": {
          "type": "string",
          "enumDescriptions": [
            "The default value. For backwards-compatibility, the API will default to an SDK view. To ensure stability and support, customers are advised to select a `TripView` other than `SDK`.",
            "Includes fields that may not be interpretable or supportable using publicly available libraries.",
            "Trip fields are populated for the Journey Sharing use case. This view is intended for server-to-server communications."
          ],
          "enum": [
            "TRIP_VIEW_UNSPECIFIED",
            "SDK",
            "JOURNEY_SHARING_V1S"
          ],
          "description": "The subset of Trip fields that are populated and how they should be interpreted."
        },
        "vehicleWaypoints": {
          "items": {
            "$ref": "TripWaypoint"
          },
          "type": "array",
          "description": "This field supports manual ordering of the waypoints for the trip. It contains all of the remaining waypoints for the assigned vehicle, as well as the pickup and drop-off waypoints for this trip. If the trip hasn't been assigned to a vehicle, then Fleet Engine ignores this field. For privacy reasons, this field is only populated by the server on `UpdateTrip` and `CreateTrip` calls, NOT on `GetTrip` calls."
        },
        "currentRouteSegmentTraffic": {
          "readOnly": true,
          "$ref": "ConsumableTrafficPolyline",
          "description": "Output only. Indicates the traffic conditions along the `current_route_segment` when they're available. Note: This field is intended only for use by the Driver SDK and Consumer SDK."
        },
        "actualIntermediateDestinationArrivalPoints": {
          "description": "Input only. The actual time and location of the driver's arrival at an intermediate destination. This field is for provider to provide feedback on actual arrival information at intermediate destinations.",
          "items": {
            "$ref": "StopLocation"
          },
          "type": "array"
        },
        "pickupPoint": {
          "description": "Location where customer indicates they will be picked up.",
          "$ref": "TerminalLocation"
        },
        "dropoffTime": {
          "type": "string",
          "description": "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.",
          "readOnly": true,
          "format": "google-datetime"
        },
        "attributes": {
          "description": "A list of custom Trip attributes. Each attribute must have a unique key.",
          "items": {
            "$ref": "TripAttribute"
          },
          "type": "array"
        },
        "remainingWaypointsRouteVersion": {
          "type": "string",
          "readOnly": true,
          "format": "google-datetime",
          "description": "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."
        },
        "intermediateDestinationIndex": {
          "type": "integer",
          "format": "int32",
          "description": "When `TripStatus` is `ENROUTE_TO_INTERMEDIATE_DESTINATION`, a number between [0..N-1] indicating which intermediate destination the vehicle will cross next. When `TripStatus` is `ARRIVED_AT_INTERMEDIATE_DESTINATION`, a number between [0..N-1] indicating which intermediate destination the vehicle is at. The provider sets this value. If there are no `intermediate_destinations`, this field is ignored."
        },
        "tripStatus": {
          "type": "string",
          "enumDescriptions": [
            "Default, used for unspecified or unrecognized trip status.",
            "Newly created trip.",
            "The driver is on their way to the pickup point.",
            "The driver has arrived at the pickup point.",
            "The driver has arrived at an intermediate destination and is waiting for the rider.",
            "The driver is on their way to an intermediate destination (not the dropoff point).",
            "The driver has picked up the rider and is on their way to the next destination.",
            "The rider has been dropped off and the trip is complete.",
            "The trip was canceled prior to pickup by the driver, rider, or rideshare provider."
          ],
          "enum": [
            "UNKNOWN_TRIP_STATUS",
            "NEW",
            "ENROUTE_TO_PICKUP",
            "ARRIVED_AT_PICKUP",
            "ARRIVED_AT_INTERMEDIATE_DESTINATION",
            "ENROUTE_TO_INTERMEDIATE_DESTINATION",
            "ENROUTE_TO_DROPOFF",
            "COMPLETE",
            "CANCELED"
          ],
          "description": "Current status of the trip."
        },
        "currentRouteSegmentTrafficVersion": {
          "type": "string",
          "description": "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.",
          "readOnly": true,
          "format": "google-datetime"
        },
        "actualDropoffPoint": {
          "$ref": "StopLocation",
          "description": "Input only. The actual time and location when and where customer was dropped off. This field is for provider to provide feedback on actual dropoff information."
        },
        "actualIntermediateDestinations": {
          "items": {
            "$ref": "StopLocation"
          },
          "type": "array",
          "description": "Input only. The actual time and location when and where the customer was picked up from an intermediate destination. This field is for provider to provide feedback on actual pickup information at intermediate destinations."
        },
        "currentRouteSegmentEndPoint": {
          "readOnly": true,
          "$ref": "TripWaypoint",
          "description": "Output only. The waypoint where `current_route_segment` ends."
        },
        "dropoffPoint": {
          "$ref": "TerminalLocation",
          "description": "Location where customer indicates they will be dropped off."
        },
        "lastLocation": {
          "readOnly": true,
          "$ref": "VehicleLocation",
          "description": "Output only. Indicates the last reported location of the vehicle along the route."
        },
        "actualPickupPoint": {
          "description": "Input only. The actual location when and where customer was picked up. This field is for provider to provide feedback on actual pickup information.",
          "$ref": "StopLocation"
        },
        "intermediateDestinations": {
          "description": "Intermediate stops in order that the trip requests (in addition to pickup and dropoff). Initially this will not be supported for shared trips.",
          "items": {
            "$ref": "TerminalLocation"
          },
          "type": "array"
        },
        "actualPickupArrivalPoint": {
          "description": "Input only. The actual time and location of the driver arrival at the pickup point. This field is for provider to provide feedback on actual arrival information at the pickup point.",
          "$ref": "StopLocation"
        },
        "remainingTimeToFirstWaypoint": {
          "type": "string",
          "readOnly": true,
          "format": "google-duration",
          "description": "Output only. The duration from when the Trip data is returned to the time in `Trip.eta_to_first_waypoint`. The value is unspecified if the trip is not assigned to a vehicle, or the trip is inactive (completed or cancelled)."
        },
        "remainingDistanceMeters": {
          "readOnly": true,
          "format": "int32",
          "description": "Output only. The remaining driving distance in the `current_route_segment` field. The value is unspecified if the trip is not assigned to a vehicle, or the trip is completed or cancelled.",
          "type": "integer"
        },
        "etaToFirstWaypoint": {
          "type": "string",
          "description": "Output only. The ETA to the next waypoint (the first entry in the `remaining_waypoints` field). The value is unspecified if the trip is not assigned to a vehicle, or the trip is inactive (completed or cancelled).",
          "readOnly": true,
          "format": "google-datetime"
        },
        "pickupTime": {
          "type": "string",
          "description": "Output only. Either the estimated future time when the rider(s) will be picked up, or the actual time when they were picked up.",
          "readOnly": true,
          "format": "google-datetime"
        }
      }
    },
    "DeliveryRequestHeader": {
      "id": "DeliveryRequestHeader",
      "description": "A RequestHeader contains fields common to all Delivery RPC requests.",
      "properties": {
        "osVersion": {
          "description": "Version of the operating system on which the calling SDK is running. Field value examples: `4.4.1`, `12.1`.",
          "type": "string"
        },
        "traceId": {
          "type": "string",
          "description": "Optional ID that can be provided for logging purposes in order to identify the request."
        },
        "deviceModel": {
          "type": "string",
          "description": "Model of the device on which the calling SDK is running. Field value examples: `iPhone12,1`, `SM-G920F`."
        },
        "platform": {
          "type": "string",
          "enumDescriptions": [
            "The default value. This value is used if the platform is omitted.",
            "The request is coming from Android.",
            "The request is coming from iOS.",
            "The request is coming from the web."
          ],
          "enum": [
            "PLATFORM_UNSPECIFIED",
            "ANDROID",
            "IOS",
            "WEB"
          ],
          "description": "Platform of the calling SDK."
        },
        "navSdkVersion": {
          "description": "Version of the NavSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `2.1.0`.",
          "type": "string"
        },
        "mapsSdkVersion": {
          "type": "string",
          "description": "Version of the MapSDK which the calling SDK depends on, if applicable. The version format is \"major.minor.patch\", example: `5.2.1`."
        },
        "sdkVersion": {
          "description": "Version of the calling SDK, if applicable. The version format is \"major.minor.patch\", example: `1.1.2`.",
          "type": "string"
        },
        "sdkType": {
          "enumDescriptions": [
            "The default value. This value is used if the `sdk_type` is omitted.",
            "The calling SDK is Consumer.",
            "The calling SDK is Driver.",
            "The calling SDK is JavaScript."
          ],
          "type": "string",
          "description": "The type of SDK sending the request.",
          "enum": [
            "SDK_TYPE_UNSPECIFIED",
            "CONSUMER",
            "DRIVER",
            "JAVASCRIPT"
          ]
        },
        "manufacturer": {
          "description": "Manufacturer of the Android device from the calling SDK, only applicable for the Android SDKs. Field value example: `Samsung`.",
          "type": "string"
        },
        "languageCode": {
          "type": "string",
          "description": "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`."
        },
        "regionCode": {
          "description": "Required. CLDR region code of the region where the request originates. Field value example: `US`.",
          "type": "string"
        },
        "androidApiLevel": {
          "description": "Android API level of the calling SDK, only applicable for the Android SDKs. Field value example: `23`.",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "CreateTaskRequest": {
      "id": "CreateTaskRequest",
      "description": "The `CreateTask` request message.",
      "properties": {
        "header": {
          "$ref": "DeliveryRequestHeader",
          "description": "Optional. The standard Delivery API request header."
        },
        "parent": {
          "description": "Required. Must be in the format `providers/{provider}`. The `provider` must be the Google Cloud Project ID. For example, `sample-cloud-project`.",
          "type": "string"
        },
        "taskId": {
          "type": "string",
          "description": "Required. The Task ID must be unique, but it should be not a shipment tracking ID. To store a shipment tracking ID, use the `tracking_id` field. Note that multiple tasks can have the same `tracking_id`. Task IDs are subject to the following restrictions: * Must be a valid Unicode string. * Limited to a maximum length of 64 characters. * Normalized according to [Unicode Normalization Form C] (http://www.unicode.org/reports/tr15/). * May not contain any of the following ASCII characters: '/', ':', '?', ',', or '#'."
        },
        "task": {
          "$ref": "Task",
          "description": "Required. The Task entity to create. When creating a Task, the following fields are required: * `type` * `state` (must be set to `OPEN`) * `tracking_id` (must not be set for `UNAVAILABLE` or `SCHEDULED_STOP` tasks, but required for all other task types) * `planned_location` (optional for `UNAVAILABLE` tasks) * `task_duration` The following fields can be optionally set: * `target_time_window` * `task_tracking_view_config` * `attributes` Note: The Task's `name` field is ignored. All other Task fields must not be set; otherwise, an error is returned."
        }
      },
      "type": "object"
    },
    "VehicleType": {
      "id": "VehicleType",
      "description": "The type of vehicle.",
      "properties": {
        "category": {
          "enumDescriptions": [
            "Default, used for unspecified or unrecognized vehicle categories.",
            "An automobile.",
            "Any vehicle that acts as a taxi (typically licensed or regulated).",
            "Generally, a vehicle with a large storage capacity.",
            "A motorcycle, moped, or other two-wheeled vehicle",
            "Human-powered transport.",
            "A human transporter, typically walking or running, traveling along pedestrian pathways."
          ],
          "type": "string",
          "description": "Vehicle type category",
          "enum": [
            "UNKNOWN",
            "AUTO",
            "TAXI",
            "TRUCK",
            "TWO_WHEELER",
            "BICYCLE",
            "PEDESTRIAN"
          ]
        }
      },
      "type": "object"
    },
    "ConsumableTrafficPolyline": {
      "type": "object",
      "id": "ConsumableTrafficPolyline",
      "description": "Traffic density along a Vehicle's path.",
      "properties": {
        "speedReadingInterval": {
          "type": "array",
          "items": {
            "$ref": "SpeedReadingInterval"
          },
          "description": "Traffic speed along the path from the previous waypoint to the current waypoint."
        },
        "encodedPathToWaypoint": {
          "type": "string",
          "description": "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."
        }
      }
    },
    "SearchVehiclesRequest": {
      "type": "object",
      "id": "SearchVehiclesRequest",
      "description": "`SearchVehicles` request message.",
      "properties": {
        "minimumCapacity": {
          "format": "int32",
          "description": "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.",
          "type": "integer"
        },
        "requiredOneOfAttributeSets": {
          "description": "`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_attribute_sets0 AND required_one_of_attribute_sets0 AND ...) OR (required_one_of_attribute_sets1 AND required_one_of_attribute_sets1 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`.",
          "items": {
            "$ref": "VehicleAttributeList"
          },
          "type": "array"
        },
        "header": {
          "description": "The standard Fleet Engine request header.",
          "$ref": "RequestHeader"
        },
        "orderBy": {
          "enumDescriptions": [
            "Default, used for unspecified or unrecognized vehicle matches order.",
            "Ascending order by vehicle driving time to the pickup point.",
            "Ascending order by vehicle driving distance to the pickup point.",
            "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.",
            "Ascending order by straight-line distance from the vehicle's last reported location to the pickup point.",
            "Ascending order by the configured match cost. Match cost is defined as a weighted calculation between straight-line distance and ETA. Weights are set with default values and can be modified per customer. Please contact Google support if these weights need to be modified for your project."
          ],
          "type": "string",
          "description": "Required. Specifies the desired ordering criterion for results.",
          "enum": [
            "UNKNOWN_VEHICLE_MATCH_ORDER",
            "PICKUP_POINT_ETA",
            "PICKUP_POINT_DISTANCE",
            "DROPOFF_POINT_ETA",
            "PICKUP_POINT_STRAIGHT_DISTANCE",
            "COST"
          ]
        },
        "pickupPoint": {
          "description": "Required. The pickup point to search near.",
          "$ref": "TerminalLocation"
        },
        "tripTypes": {
          "type": "array",
          "items": {
            "enumDescriptions": [
              "Default, used for unspecified or unrecognized trip types.",
              "The trip may share a vehicle with other trips.",
              "The trip is exclusive to a vehicle."
            ],
            "type": "string",
            "enum": [
              "UNKNOWN_TRIP_TYPE",
              "SHARED",
              "EXCLUSIVE"
            ]
          },
          "description": "Required. Represents the type of proposed trip. Must include exactly one type. `UNKNOWN_TRIP_TYPE` is not allowed. Restricts the search to only those vehicles that can support that trip type."
        },
        "count": {
          "format": "int32",
          "description": "Required. Specifies the maximum number of vehicles to return. The value must be between 1 and 50 (inclusive).",
          "type": "integer"
        },
        "vehicleTypes": {
          "description": "Required. Restricts the search to vehicles with one of the specified types. At least one vehicle type must be specified. VehicleTypes with a category of `UNKNOWN` are not allowed.",
          "type": "array",
          "items": {
            "$ref": "VehicleType"
          }
        },
        "includeBackToBack": {
          "type": "boolean",
          "description": "This indicates if vehicles with a single active trip are eligible for this search. This field is only used when `current_trips_present` is unspecified. When `current_trips_present` is unspecified and this field is `false`, vehicles with assigned trips are excluded from the search results. When `current_trips_present` is unspecified and this field is `true`, search results can include vehicles with one active trip that has a status of `ENROUTE_TO_DROPOFF`. When `current_trips_present` is specified, this field cannot be set to true. The default value is `false`."
        },
        "dropoffPoint": {
          "description": "The customer's intended dropoff location. The field is required if `trip_types` contains `TripType.SHARED`.",
          "$ref": "TerminalLocation"
        },
        "currentTripsPresent": {
          "enumDescriptions": [
            "The availability of vehicles with trips present is governed by the `include_back_to_back` field.",
            "Vehicles without trips can appear in search results. When this value is used, `include_back_to_back` cannot be `true`.",
            "Vehicles with at most 5 current trips and 10 waypoints are included in the search results. When this value is used, `include_back_to_back` cannot be `true`."
          ],
          "type": "string",
          "description": "This indicates if vehicles with active trips are eligible for this search. This must be set to something other than `CURRENT_TRIPS_PRESENT_UNSPECIFIED` if `trip_type` includes `SHARED`.",
          "enum": [
            "CURRENT_TRIPS_PRESENT_UNSPECIFIED",
            "NONE",
            "ANY"
          ]
        },
        "pickupRadiusMeters": {
          "type": "integer",
          "format": "int32",
          "description": "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 (inclusive)."
        },
        "maximumStaleness": {
          "description": "Restricts the search to only those vehicles that have sent location updates to Fleet Engine within the specified duration. Stationary vehicles still transmitting their locations are not considered stale. If this field is not set, the server uses five minutes as the default value.",
          "format": "google-duration",
          "type": "string"
        },
        "requiredAttributes": {
          "description": "Callers can form complex logical operations using any combination of the `required_attributes`, `required_one_of_attributes`, and `required_one_of_attribute_sets` fields. `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_attributes[0] AND required_attributes[1] AND ...) AND (required_one_of_attributes0 OR required_one_of_attributes0 OR ...) AND (required_one_of_attributes1 OR required_one_of_attributes1 OR ...) ``` Restricts the search to only those vehicles with the specified attributes. This field is a conjunction/AND operation. A max of 50 required_attributes is allowed. This matches the maximum number of attributes allowed on a vehicle.",
          "items": {
            "$ref": "VehicleAttribute"
          },
          "type": "array"
        },
        "filter": {
          "description": "Optional. A filter query to apply when searching vehicles. See http://aip.dev/160 for examples of the filter syntax. This field is designed to replace the `required_attributes`, `required_one_of_attributes`, and `required_one_of_attributes_sets` fields. If a non-empty value is specified here, the following fields must be empty: `required_attributes`, `required_one_of_attributes`, and `required_one_of_attributes_sets`. This filter functions as an AND clause with other constraints, such as `minimum_capacity` or `vehicle_types`. Note that the only queries supported are on vehicle attributes (for example, `attributes. = ` or `attributes. = AND attributes. = `). The maximum number of restrictions allowed in a filter query is 50. Also, all attributes are stored as strings, so the only supported comparisons against attributes are string comparisons. In order to compare against number or boolean values, the values must be explicitly quoted to be treated as strings (for example, `attributes. = \"10\"` or `attributes. = \"true\"`).",
          "type": "string"
        },
        "requiredOneOfAttributes": {
          "description": "Restricts the search to only those 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`.",
          "type": "array",
          "items": {
            "$ref": "VehicleAttributeList"
          }
        },
        "tripId": {
          "description": "Indicates the trip associated with this `SearchVehicleRequest`.",
          "type": "string"
        }
      }
    }
  },
  "ownerName": "Google",
  "version_module": true,
  "version": "v1",
  "servicePath": "",
  "parameters": {
    "alt": {
      "location": "query",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "type": "string",
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "default": "json",
      "description": "Data format for response."
    },
    "fields": {
      "type": "string",
      "location": "query",
      "description": "Selector specifying which fields to include in a partial response."
    },
    "uploadType": {
      "type": "string",
      "location": "query",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\")."
    },
    "key": {
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "type": "string",
      "location": "query"
    },
    "prettyPrint": {
      "description": "Returns response with indentations and line breaks.",
      "default": "true",
      "type": "boolean",
      "location": "query"
    },
    "access_token": {
      "description": "OAuth access token.",
      "type": "string",
      "location": "query"
    },
    "callback": {
      "type": "string",
      "location": "query",
      "description": "JSONP"
    },
    "$.xgafv": {
      "description": "V1 error format.",
      "type": "string",
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "enum": [
        "1",
        "2"
      ],
      "location": "query"
    },
    "upload_protocol": {
      "type": "string",
      "location": "query",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")."
    },
    "quotaUser": {
      "type": "string",
      "location": "query",
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters."
    },
    "oauth_token": {
      "description": "OAuth 2.0 token for the current user.",
      "type": "string",
      "location": "query"
    }
  },
  "protocol": "rest",
  "basePath": "",
  "fullyEncodeReservedExpansion": true,
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
        }
      }
    }
  },
  "title": "Local Rides and Deliveries API",
  "revision": "20260811",
  "name": "fleetengine",
  "id": "fleetengine:v1",
  "baseUrl": "https://fleetengine.googleapis.com/",
  "kind": "discovery#restDescription",
  "icons": {
    "x16": "http://www.google.com/images/icons/product/search-16.gif",
    "x32": "http://www.google.com/images/icons/product/search-32.gif"
  },
  "discoveryVersion": "v1",
  "mtlsRootUrl": "https://fleetengine.mtls.googleapis.com/",
  "canonicalName": "FleetEngine",
  "description": "Enables Fleet Engine for access to the On Demand Rides and Deliveries and Last Mile Fleet Solution APIs. Customer's use of Google Maps Content in the Cloud Logging Services is subject to the Google Maps Platform Terms of Service located at https://cloud.google.com/maps-platform/terms."
}
