Problem description:
In Device roaming status subscriptions (e.g. v0.8), SubscriptionEnded is defined with allOf that merges BasicDeviceEventData with a second object that lists countryCode under required:
SubscriptionEnded:
description: Event detail structure for org.camaraproject.device-roaming-status-subscriptions.v0.subscription-ended event
allOf:
- $ref: "#/components/schemas/BasicDeviceEventData"
- type: object
required:
- countryCode
required:
- terminationReason
properties:
terminationReason:
$ref: "#/components/schemas/TerminationReason"
terminationDescription:
type: string
For a subscription-ended notification, requiring countryCode is problematic:
Termination can occur for reasons unrelated to roaming or location (e.g. max events, expiry, delete, token expiry).
At termination time, country/roaming context may be unknown, not applicable, or stale.
So consumers should not be required to supply or expect countryCode on this event.
Expected action:
Confirm whether countryCode was intentionally required on SubscriptionEnded for roaming subscriptions v0.8.
If it was not intentional (likely copy-paste from another schema such as RoamingChangeCountry), remove countryCode from the required list in the allOf fragment and align the description with the actual payload.
Update the spec / changelog so implementers and generated clients do not enforce an invalid constraint.
Problem description:
In Device roaming status subscriptions (e.g. v0.8), SubscriptionEnded is defined with allOf that merges BasicDeviceEventData with a second object that lists countryCode under required:
SubscriptionEnded:
description: Event detail structure for org.camaraproject.device-roaming-status-subscriptions.v0.subscription-ended event
allOf:
- $ref: "#/components/schemas/BasicDeviceEventData"
- type: object
required:
- countryCode
required:
- terminationReason
properties:
terminationReason:
$ref: "#/components/schemas/TerminationReason"
terminationDescription:
type: string
For a subscription-ended notification, requiring countryCode is problematic:
Termination can occur for reasons unrelated to roaming or location (e.g. max events, expiry, delete, token expiry).
At termination time, country/roaming context may be unknown, not applicable, or stale.
So consumers should not be required to supply or expect countryCode on this event.
Expected action:
Confirm whether countryCode was intentionally required on SubscriptionEnded for roaming subscriptions v0.8.
If it was not intentional (likely copy-paste from another schema such as RoamingChangeCountry), remove countryCode from the required list in the allOf fragment and align the description with the actual payload.
Update the spec / changelog so implementers and generated clients do not enforce an invalid constraint.