車両を削除

このドキュメントでは、車両を削除する方法について説明します。Fleet Engine が設定されていることを前提としています。Fleet Engine を設定するをご覧ください。

車両の削除の基本

システムは、次のような状況で Fleet Engine を使用して車両を削除することがあります。

  • Fleet Engine API のテスト中にクリーンアップ オペレーションを実行します。
  • 不要になった車両をすぐに削除します。

車両を削除するには、gRPC または REST を使用してリクエストを送信します。

  • DeleteVehicle() メソッド: gRPC または REST
  • DeleteVehicleRequest メッセージ: gRPC のみ

Fleet Engine: サービス アカウントのロールの説明に沿って、プロジェクトのサービス アカウントの適切な認証情報を使用します。

例: 車両情報を削除する

Java

次の例は、Java gRPC ライブラリを使用して車両を削除する方法を示しています。

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

  String vehicleName = "providers/" + PROJECT_ID + "/vehicles/" + VEHICLE_ID;

  VehicleServiceBlockingStub vehicleService = VehicleService.newBlockingStub(channel);

  // Delete Vehicle request
  DeleteVehicleRequest deleteVehicleRequest = DeleteVehicleRequest.newBuilder()
      .setName(vehicleName)
      .build();

  try {
    vehicleService.deleteVehicle(deleteVehicleRequest);
  } catch (StatusRuntimeException e) {
    Status s = e.getStatus();
    switch (s.getCode()) {
       case NOT_FOUND:            // The vehicle doesn't exist.
         break;
       case FAILED_PRECONDITION:  // There are trip(s) that reference vehicle.
         break;
       case PERMISSION_DENIED:
         break;
    }
    return;
  }

REST

次の例は、DeleteVehicle を呼び出して REST を使用して Fleet Engine から車両を削除する方法を示しています。

  # DELETE https://fleetengine.googleapis.com/v1/providers/<project_id>/vehicles/<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}/vehicles/${VEHICLE_ID}"

削除オペレーションが成功すると、API は空のレスポンスを返します。

エラーを処理する

車両を削除する際に FAILED_PRECONDITION エラーが発生することがあります。この場合、車両を参照するルートが存在します。削除の手続きを行うには:

  1. SearchTrips を呼び出して、車両を参照する乗車を検索します。
  2. DeleteTrip を呼び出して、見つかったルートをそれぞれ削除します。

次のステップ