changedOutput schema / oneOf
Previous value: -[
- {
- "additionalProperties": false,
- "properties": {
- "booking": {
- "additionalProperties": false,
- "properties": {
- "recordedStatus": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "recordedStatus"
- ],
- "type": "object"
- },
- "bookingKey": {
- "maxLength": 128,
- "minLength": 1,
- "type": "string"
- },
- "bookingReference": {
- "minLength": 1,
- "type": "string"
- },
- "fulfillment": {
- "additionalProperties": false,
- "properties": {
- "chauffeurAssignmentRecorded": {
- "type": "boolean"
- },
- "completionRecorded": {
- "type": "boolean"
- },
- "vehicleAssignmentRecorded": {
- "type": "boolean"
- }
- },
- "required": [
- "chauffeurAssignmentRecorded",
- "vehicleAssignmentRecorded",
- "completionRecorded"
- ],
- "type": "object"
- },
- "payment": {
- "additionalProperties": false,
- "properties": {
- "recordedStatus": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "recordedStatus"
- ],
- "type": "object"
- },
- "status": {
- "const": "available",
- "type": "string"
- }
- },
- "required": [
- "status",
- "bookingKey",
- "bookingReference",
- "booking",
- "payment",
- "fulfillment"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "status": {
- "const": "invalid_request",
- "type": "string"
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "status": {
- "const": "login_required",
- "type": "string"
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "status": {
- "const": "not_found",
- "type": "string"
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "status": {
- "const": "unavailable",
- "type": "string"
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "additionalProperties": false,
+ "properties": {
+ "booking": {
+ "additionalProperties": false,
+ "description": "Booking state read from the stored reservation; it may lag provider events.",
+ "properties": {
+ "recordedStatus": {
+ "description": "Stored reservation status string. It is not a new provider confirmation.",
+ "maxLength": 64,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "recordedStatus"
+ ],
+ "type": "object"
+ },
+ "bookingKey": {
+ "description": "Internal reservation ID for this selected booking. Returned in the available branch of get_offer_status/prepare_offer or an authorized booking read, not in prepared. It grants no access by itself.",
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "bookingReference": {
+ "description": "Stored customer-visible reservation reference, falling back to bookingKey when absent. Customer OAuth accepts it only for its already-selected booking; it is not the supplier offerKey.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "fulfillment": {
+ "additionalProperties": false,
+ "description": "Flags derived from stored assignments and status, not live fulfillment confirmation.",
+ "properties": {
+ "chauffeurAssignmentRecorded": {
+ "description": "True when a chauffeur ID is stored on the reservation; it does not confirm dispatch or acceptance.",
+ "type": "boolean"
+ },
+ "completionRecorded": {
+ "description": "True only when the stored reservation status is completed; no fresh service-completion check is made.",
+ "type": "boolean"
+ },
+ "vehicleAssignmentRecorded": {
+ "description": "True when a vehicle ID is stored on the reservation; it does not confirm availability or execution.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "chauffeurAssignmentRecorded",
+ "vehicleAssignmentRecorded",
+ "completionRecorded"
+ ],
+ "type": "object"
+ },
+ "payment": {
+ "additionalProperties": false,
+ "description": "Recorded payment state from this booking, without a payment-provider refresh.",
+ "properties": {
+ "recordedStatus": {
+ "description": "Stored reservation payment-status string; no payment or refund is initiated or newly confirmed.",
+ "maxLength": 64,
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "recordedStatus"
+ ],
+ "type": "object"
+ },
+ "status": {
+ "const": "available",
+ "description": "The selected booking was accessible and its stored fields passed validation; no provider refresh occurred.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "status",
+ "bookingKey",
+ "bookingReference",
+ "booking",
+ "payment",
+ "fulfillment"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "status": {
+ "const": "invalid_request",
+ "description": "Input does not match the booking-read contract.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "status"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "status": {
+ "const": "login_required",
+ "description": "The original signed-in session must be established or renewed before reading.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "status"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "status": {
+ "const": "not_found",
+ "description": "The selected booking is not accessible under current authority; this does not prove it is absent.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "status"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "status": {
+ "const": "unavailable",
+ "description": "The stored booking could not be read or validated safely; this is not vehicle-availability evidence.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "status"
+ ],
+ "type": "object"
+ }
+]