Message catalog: reservations/cancel_reservation
API
| 項目 | 値 |
|---|---|
| domain | reservations |
| api | cancel_reservation |
| routes | POST /reservations/{reservationId}/cancel (cancelReservation) |
| router | src/app/apis/reservations/cancel_reservation/router.py |
| messages | 5 |
| logger wrapper calls | 5 |
| levels | WARNING:4, ERROR:1 |
生成・検証方針
- WARNING以上のMessage catalogは
router.py、functions.pyまたはresponse_builders.pyのops_logger.warning/error(...)kwargsを一次情報にする。 api_error_response(...)のstatus/detailとlogger呼び出しのstatus/detailを照合する。- 実装中の
app.core.loggingラッパー呼び出しを検出し、WARN以上はAPI operation内のemitとcatalog定義の一致を検証する。 logging.getLogger(...)、logger.info(...)などの直接呼び出しは許可しない。- WARNING以上は運用上の意味を持つ前提で、必要な確認手順・runbook・contextを検証対象にする。
メッセージ一覧
| id | message_id | ログ概要 |
|---|---|---|
M001 |
cancelReservation.caller_cannot_cancel_reservation |
呼び出し元が予約者本人でも管理者でもないため、予約取消を拒否した。 |
M002 |
cancelReservation.stale_reservation_version |
予約の版が現在値と一致しないため、予約取消を拒否した。 |
M003 |
cancelReservation.reservation_already_cancelled |
予約が取消済みのため、予約取消を拒否した。 |
M004 |
cancelReservation.reservation_already_started |
予約の開始時刻を過ぎているため、予約取消を拒否した。 |
M005 |
cancelReservation.router_api_function_error |
Routerで捕捉したApiFunctionErrorにより予約取消が失敗した。 |
ログ詳細
M001 cancelReservation.caller_cannot_cancel_reservation
| 項目 | 内容 |
|---|---|
| id | M001 |
| message_id | cancelReservation.caller_cannot_cancel_reservation |
| level | WARNING |
| status | 403 |
| wrapper calls | 1 |
| ログ概要 | 呼び出し元が予約者本人でも管理者でもないため、予約取消を拒否した。 |
| 説明 | 呼び出し元が予約者本人でも管理者でもない場合。 |
| 対応すべきこと | actorPrincipalIdとreservationIdの所有者を確認する。 |
| runbook | RUNBOOK-authorization-forbidden |
| 実装参照 | src/app/apis/reservations/cancel_reservation/functions.py wrapper: src/app/apis/reservations/cancel_reservation/functions.py (ops_logger.warning) |
出力項目
| 出力項目 | 型 | 説明 |
|---|---|---|
traceId |
string | null |
リクエストとログを横断して追跡する相関IDです。 |
actorPrincipalId |
string | null |
APIを呼び出した認証主体IDです。 |
api.statusCode |
integer | null |
API responseとして返したHTTP status codeです。 |
resource |
ErrorResource |
ログに出力するAPI固有のErrorResourceです。 |
resource.reservationId |
string | null |
取消対象予約の存在確認、再取得、問い合わせに使用する予約IDです。 |
error.code |
string | null |
エラー分類を表す機械処理向けコードです。 |
error.message |
string | null |
エラー内容を運用者が理解するための説明です。 |
M002 cancelReservation.stale_reservation_version
| 項目 | 内容 |
|---|---|
| id | M002 |
| message_id | cancelReservation.stale_reservation_version |
| level | WARNING |
| status | 409 |
| wrapper calls | 1 |
| ログ概要 | 予約の版が現在値と一致しないため、予約取消を拒否した。 |
| 説明 | 取消要求のversionが予約の現在の版と一致しない場合。 |
| 対応すべきこと | 利用者へ予約を再取得して取消し直すよう案内する。 |
| runbook | RUNBOOK-optimistic-lock-conflict |
| 実装参照 | src/app/apis/reservations/cancel_reservation/functions.py wrapper: src/app/apis/reservations/cancel_reservation/functions.py (ops_logger.warning) |
出力項目
| 出力項目 | 型 | 説明 |
|---|---|---|
traceId |
string | null |
リクエストとログを横断して追跡する相関IDです。 |
actorPrincipalId |
string | null |
APIを呼び出した認証主体IDです。 |
api.statusCode |
integer | null |
API responseとして返したHTTP status codeです。 |
resource |
ErrorResource |
ログに出力するAPI固有のErrorResourceです。 |
resource.reservationId |
string | null |
取消対象予約の存在確認、再取得、問い合わせに使用する予約IDです。 |
error.code |
string | null |
エラー分類を表す機械処理向けコードです。 |
error.message |
string | null |
エラー内容を運用者が理解するための説明です。 |
M003 cancelReservation.reservation_already_cancelled
| 項目 | 内容 |
|---|---|
| id | M003 |
| message_id | cancelReservation.reservation_already_cancelled |
| level | WARNING |
| status | 409 |
| wrapper calls | 1 |
| ログ概要 | 予約が取消済みのため、予約取消を拒否した。 |
| 説明 | 予約の状態がcancelledの場合。 |
| 対応すべきこと | 予約詳細の履歴で取消済みであることを確認する。 |
| runbook | RUNBOOK-reservation-conflict |
| 実装参照 | src/app/apis/reservations/cancel_reservation/functions.py wrapper: src/app/apis/reservations/cancel_reservation/functions.py (ops_logger.warning) |
出力項目
| 出力項目 | 型 | 説明 |
|---|---|---|
traceId |
string | null |
リクエストとログを横断して追跡する相関IDです。 |
actorPrincipalId |
string | null |
APIを呼び出した認証主体IDです。 |
api.statusCode |
integer | null |
API responseとして返したHTTP status codeです。 |
resource |
ErrorResource |
ログに出力するAPI固有のErrorResourceです。 |
resource.reservationId |
string | null |
取消対象予約の存在確認、再取得、問い合わせに使用する予約IDです。 |
error.code |
string | null |
エラー分類を表す機械処理向けコードです。 |
error.message |
string | null |
エラー内容を運用者が理解するための説明です。 |
M004 cancelReservation.reservation_already_started
| 項目 | 内容 |
|---|---|
| id | M004 |
| message_id | cancelReservation.reservation_already_started |
| level | WARNING |
| status | 409 |
| wrapper calls | 1 |
| ログ概要 | 予約の開始時刻を過ぎているため、予約取消を拒否した。 |
| 説明 | 予約の開始時刻が現在時刻以前の場合。 |
| 対応すべきこと | 開始済み予約は取消できないことを利用者へ案内する。 |
| runbook | RUNBOOK-reservation-conflict |
| 実装参照 | src/app/apis/reservations/cancel_reservation/functions.py wrapper: src/app/apis/reservations/cancel_reservation/functions.py (ops_logger.warning) |
出力項目
| 出力項目 | 型 | 説明 |
|---|---|---|
traceId |
string | null |
リクエストとログを横断して追跡する相関IDです。 |
actorPrincipalId |
string | null |
APIを呼び出した認証主体IDです。 |
api.statusCode |
integer | null |
API responseとして返したHTTP status codeです。 |
resource |
ErrorResource |
ログに出力するAPI固有のErrorResourceです。 |
resource.reservationId |
string | null |
取消対象予約の存在確認、再取得、問い合わせに使用する予約IDです。 |
error.code |
string | null |
エラー分類を表す機械処理向けコードです。 |
error.message |
string | null |
エラー内容を運用者が理解するための説明です。 |
M005 cancelReservation.router_api_function_error
| 項目 | 内容 |
|---|---|
| id | M005 |
| message_id | cancelReservation.router_api_function_error |
| level | ERROR |
| status | |
| wrapper calls | 1 |
| ログ概要 | Routerで捕捉したApiFunctionErrorにより予約取消が失敗した。 |
| 説明 | ROUTER_HANDLED_EXCEPTIONSを捕捉した場合。 |
| 対応すべきこと | 同一routeの5xx率、直近deploy、DB状態を確認する。 |
| runbook | RUNBOOK-unexpected-api-failure |
| 実装参照 | src/app/apis/reservations/cancel_reservation/functions.py wrapper: src/app/apis/reservations/cancel_reservation/functions.py (ops_logger.error) |
出力項目
| 出力項目 | 型 | 説明 |
|---|---|---|
traceId |
string | null |
リクエストとログを横断して追跡する相関IDです。 |
actorPrincipalId |
string | null |
APIを呼び出した認証主体IDです。 |
api.statusCode |
integer | null |
API responseとして返したHTTP status codeです。 |
resource |
ErrorResource |
ログに出力するAPI固有のErrorResourceです。 |
resource.reservationId |
string | null |
取消対象予約の存在確認、再取得、問い合わせに使用する予約IDです。 |
resource.version |
integer | null |
取消要求で指定した予約の版です。 |
error.code |
string | null |
エラー分類を表す機械処理向けコードです。 |
error.message |
string | null |
エラー内容を運用者が理解するための説明です。 |
error.exceptionType |
string | null |
捕捉された例外の型名です。 |
strict検証で要求する項目
| Level | 必須項目 |
|---|---|
WARNING |
why_production |
ERROR |
check_procedure, context_model, runbook |
CRITICAL |
remediation_procedure, context_model, runbook, escalation |