Skip to content

[QoS Booking And Enhancement] releaseDevices returns assignmentStatus: SUCCESSFUL on successful release — ambiguous with assignment completion #137

Description

@gmuratk

Problem description

The releaseDevices operation (POST /qos-bookings/{bookingId}/devices/release) currently returns assignmentStatus: SUCCESSFUL when devices are successfully released. This is identical to the status returned by assignDevices when devices are successfully assigned.

A consumer that processes both assignment and release callbacks (or polling responses) cannot determine from assignmentStatus alone whether the operation that completed was an assignment or a release. They must inspect the optional statusInfo field for values like ASSIGNMENT_COMPLETED vs DEVICE_RELEASED — relying on undocumented inference from secondary data, which CAMARA Design Guide §3.1.2 explicitly prohibits.

Possible evolution

A distinct RELEASED value should be added to AssignmentStatus and AssignmentStatusChanged to unambiguously represent the completion of a release operation. Consumers can then branch on assignmentStatus alone:

  • ASSIGNED → all requested devices are now assigned to the booking (changing SUCCESSFUL TO ASSIGNED)
  • PARTIAL_SUCCESS → assignment or release completed partially
  • RELEASED → release operation completed; devices are no longer assigned (changing SUCCESSFUL to ASSIGNED)
  • FAILURE → the operation failed

Alternative solution

Additional context

  • Affected schemas: AssignmentStatus, AssignmentStatusChanged
  • Affected operations: releaseDevices (POST /qos-bookings/{bookingId}/devices/release) for synchronous responses; EventAssignmentStatusChanged for async callbacks
  • Affected example: ASSIGNMENT_RELEASED — previously showed assignmentStatus: SUCCESSFUL, statusInfo: ASSIGNMENT_COMPLETED; should show assignmentStatus: RELEASED, statusInfo: DEVICE_RELEASED
  • AssignmentStatusInfo also requires a new DEVICE_RELEASED value to complement RELEASED
  • CAMARA Design Guide reference: §3.1.2 Core Principles — "APIs MUST NOT rely on undocumented inference from missing data"; §3.1.3 Recommended Modeling Pattern — "a domain-specific primary outcome field representing the business result" should be self-describing without secondary field inspection

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

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions