Skip to content

[QoS Booking And Assignment] deleteBooking behavior when assigned devices remain is implementation-defined and undocumented #136

Description

@gmuratk

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:

  1. 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.
  2. 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:

  1. Explicitly document both provider behaviors as valid implementation choices.
  2. Require API providers to document their specific behavior.
  3. Recommend that consumers release all assigned devices before invoking DELETE for portable, provider-agnostic behavior.
  4. 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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions