Delete delivery vehicle

This document describes how to delete a delivery vehicle. It assumes you have set up Fleet Engine. See Set up Fleet Engine.

Delivery vehicle deletion basics

Your system may use Fleet Engine to delete a delivery vehicle in the following situations:

  • To perform cleanup operations while testing Fleet Engine APIs.
  • To immediately delete a Delivery Vehicle that is no longer required.

To delete a delivery vehicle, send a request using either gRPC or REST.

  • DeleteDeliveryVehicle() method: gRPC or REST
  • DeleteDeliveryVehicleRequest message: gRPC only

Use the appropriate credentials for the service account of your project as described in Fleet Engine: Service account roles.

Example: delete delivery vehicle

Java

The following example shows how to use the Java gRPC library to delete a delivery vehicle.

  static final String PROJECT_ID = "my-rideshare-co-gcp-project";
  static final String VEHICLE_ID = "vehicle-8241890";

  String deliveryVehicleName = "providers/" + PROJECT_ID + "/deliveryVehicles/" + VEHICLE_ID;

  DeliveryServiceBlockingStub deliveryService = DeliveryServiceGrpc.newBlockingStub(channel);

  // Delete Vehicle request
  DeleteDeliveryVehicleRequest deleteDeliveryVehicleRequest =
      DeleteDeliveryVehicleRequest.newBuilder().setName(deliveryVehicleName).build();

  try {
    deliveryService.deleteDeliveryVehicle(deleteDeliveryVehicleRequest);
  } catch (StatusRuntimeException e) {
    Status s = e.getStatus();
    switch (s.getCode()) {
       case NOT_FOUND:            // The delivery vehicle doesn't exist.
         break;
       case FAILED_PRECONDITION:  // There are tasks(s) that reference delivery vehicle.
         break;
       case PERMISSION_DENIED:
         break;
    }
    return;
  }

REST

The following example shows how to delete a delivery vehicle from Fleet Engine using REST by making a call to DeleteDeliveryVehicle.

  # DELETE https://fleetengine.googleapis.com/v1/providers/<project_id>/deliveryVehicles/<vehicleId>
  # Set JWT, PROJECT_ID, and VEHICLE_ID in the local environment
  curl -X DELETE -H "Authorization: Bearer ${JWT}" \
    "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/deliveryvehicles/${VEHICLE_ID}"

If the delete operation is successful, the API returns an empty response.

Handle errors

When deleting a delivery vehicle, you might encounter a FAILED_PRECONDITION error, in which case there are task(s) that reference the delivery vehicle. To proceed with the deletion:

  1. Call ListTasks to find task(s) that reference the Delivery Vehicle.
  2. Call DeleteTask to delete each of the found task.

What's next