Excluir veículo de entrega

Este documento descreve como excluir um veículo de entrega. Pressupo que você tenha configurado o Fleet Engine. Consulte Configurar o Fleet Engine.

Noções básicas sobre a exclusão de veículos de entrega

Seu sistema pode usar o Fleet Engine para excluir um veículo de entrega nas seguintes situações:

  • Para executar operações de limpeza ao testar APIs do Fleet Engine.
  • Para excluir imediatamente um veículo de entrega que não é mais necessário.

Para excluir um veículo de entrega, envie uma solicitação usando o gRPC ou o REST.

  • Método DeleteDeliveryVehicle(): gRPC ou REST
  • Mensagem DeleteDeliveryVehicleRequest: gRPC

Use as credenciais adequadas para a conta de serviço do seu projeto, conforme descrito em Fleet Engine: papéis da conta de serviço.

Exemplo: excluir veículo de entrega

Java

O exemplo a seguir mostra como usar a biblioteca Java gRPC para excluir um veículo de entrega.

  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

O exemplo a seguir mostra como excluir um veículo de entrega do Fleet Engine usando REST, fazendo uma chamada para 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}"

Se a operação de exclusão for bem-sucedida, a API vai retornar uma resposta vazia.

Solucionar erros

Ao excluir um veículo de entrega, você pode encontrar um erro FAILED_PRECONDITION, no qual há tarefas que fazem referência ao veículo de entrega. Para prosseguir com a exclusão:

  1. Chame ListTasks para encontrar tarefas que fazem referência ao veículo de entrega.
  2. Chame DeleteTask para excluir cada uma das tarefas encontradas.

A seguir