このドキュメントでは、配達車両を削除する方法について説明します。Fleet Engine が設定されていることを前提としています。Fleet Engine を設定するをご覧ください。
配達車両の削除の基本
システムは、次のような状況で Fleet Engine を使用して配送車両を削除することがあります。
- Fleet Engine API のテスト中にクリーンアップ オペレーションを実行します。
- 不要になった配達車両をすぐに削除します。
配達車両を削除するには、gRPC または REST を使用してリクエストを送信します。
Fleet Engine: サービス アカウントのロールの説明に沿って、プロジェクトのサービス アカウントの適切な認証情報を使用します。
例: 配達車両を削除する
Java
次の例は、Java gRPC ライブラリを使用して配達車両を削除する方法を示しています。
  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
次の例は、DeleteDeliveryVehicle を呼び出して REST を使用して Fleet Engine から配達車両を削除する方法を示しています。
  # 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}"
削除オペレーションが成功すると、API は空のレスポンスを返します。
エラーを処理する
配送車両を削除すると、FAILED_PRECONDITION エラーが発生することがあります。この場合、配送車両を参照するタスクが存在します。削除の手続きを行うには:
- ListTasksを呼び出して、配達車両を参照するタスクを検索します。
- DeleteTaskを呼び出して、見つかったタスクをそれぞれ削除します。