Problem description
The API does not specify what happens when a consumer invokes DELETE /qos-bookings/{bookingId} while devices are still assigned to the booking. In practice, operator implementations diverge:
- Some operators reject the DELETE and return
409 INCOMPATIBLE_STATE, requiring the consumer to release all devices first via POST /qos-bookings/{bookingId}/devices/release.
- Other operators automatically release all assigned devices as part of the DELETE and return success.
Because the API specification is silent on this behavior, consumers have no portable guidance. A consumer that issues DELETE without releasing devices first may receive a 409 from one operator and a 204 from another, making portable consumer code impossible without trial-and-error.
Expected action
The API specification should:
- Explicitly document both provider behaviors as valid implementation choices.
- Require API providers to document their specific behavior.
- Recommend that consumers release all assigned devices before invoking DELETE for portable, provider-agnostic behavior.
- Confirm that
409 INCOMPATIBLE_STATE is a valid response code for deleteBooking when devices remain assigned.
Additional context
- Affected operation:
deleteBooking (DELETE /qos-bookings/{bookingId})
- Affected response code:
409 INCOMPATIBLE_STATE (needs to be documented as a valid response)
- Related operation:
releaseDevices (POST /qos-bookings/{bookingId}/devices/release) — the consumer-safe pre-step
- CAMARA Design Guide reference: §5.7.2 Operations — "Functionality methods MUST have a description"; §5.7.6 — all response objects MUST have a description; undefined provider behavior violates the principle that the spec is the authoritative contract
Problem description
The API does not specify what happens when a consumer invokes
DELETE /qos-bookings/{bookingId}while devices are still assigned to the booking. In practice, operator implementations diverge:409 INCOMPATIBLE_STATE, requiring the consumer to release all devices first viaPOST /qos-bookings/{bookingId}/devices/release.Because the API specification is silent on this behavior, consumers have no portable guidance. A consumer that issues DELETE without releasing devices first may receive a
409from one operator and a204from another, making portable consumer code impossible without trial-and-error.Expected action
The API specification should:
409 INCOMPATIBLE_STATEis a valid response code fordeleteBookingwhen devices remain assigned.Additional context
deleteBooking(DELETE /qos-bookings/{bookingId})409 INCOMPATIBLE_STATE(needs to be documented as a valid response)releaseDevices(POST /qos-bookings/{bookingId}/devices/release) — the consumer-safe pre-step