changedOutput schema / oneOf
Previous value: -[
- {
- "additionalProperties": false,
- "properties": {
- "status": {
- "const": "invalid_request",
- "type": "string"
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bookingUrl": {
- "format": "uri",
- "type": "string"
- },
- "status": {
- "const": "unavailable",
- "type": "string"
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "retryAfterSeconds": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "status": {
- "const": "pending",
- "type": "string"
- }
- },
- "required": [
- "status",
- "retryAfterSeconds"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "retryAfterSeconds": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "status": {
- "const": "rate_limited",
- "type": "string"
- }
- },
- "required": [
- "status",
- "retryAfterSeconds"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "status": {
- "enum": [
- "conflict",
- "ambiguous",
- "not_found"
- ],
- "type": "string"
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
- },
- {
- "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"
- },
- "customerPortalUrl": {
- "format": "uri",
- "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",
- "customerPortalUrl"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bookingUrl": {
- "format": "uri",
- "type": "string"
- },
- "message": {
- "type": "string"
- },
- "review": {
- "additionalProperties": false,
- "properties": {
- "availabilityConfirmed": {
- "const": false,
- "type": "boolean"
- },
- "code": {
- "enum": [
- "additional_requirements_review",
- "model_guarantee_review",
- "address_review",
- "service_scope_review",
- "booking_window_review",
- "route_review"
- ],
- "type": "string"
- },
- "customerContactRequired": {
- "const": false,
- "type": "boolean"
- },
- "nextAction": {
- "const": "review_requirements",
- "type": "string"
- }
- },
- "required": [
- "code",
- "customerContactRequired",
- "availabilityConfirmed",
- "nextAction"
- ],
- "type": "object"
- },
- "status": {
- "const": "review_required",
- "type": "string"
- }
- },
- "required": [
- "status",
- "bookingUrl",
- "message",
- "review"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "status": {
- "const": "expired",
- "type": "string"
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bookingConfirmed": {
- "const": false,
- "type": "boolean"
- },
- "checkoutUrl": {
- "format": "uri",
- "type": "string"
- },
- "customerPortalUrl": {
- "format": "uri",
- "type": "string"
- },
- "nextAction": {
- "type": "string"
- },
- "offer": {
- "additionalProperties": false,
- "properties": {
- "completeTermsBound": {
- "const": true,
- "type": "boolean"
- },
- "currency": {
- "const": "EUR",
- "type": "string"
- },
- "customerConfirmationRequired": {
- "const": true,
- "type": "boolean"
- },
- "expiresAt": {
- "type": "string"
- },
- "grossTotalCents": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "currency",
- "grossTotalCents",
- "expiresAt",
- "customerConfirmationRequired",
- "completeTermsBound"
- ],
- "type": "object"
- },
- "status": {
- "const": "prepared",
- "type": "string"
- },
- "termsUrl": {
- "format": "uri",
- "type": "string"
- }
- },
- "required": [
- "status",
- "bookingConfirmed",
- "checkoutUrl",
- "termsUrl",
- "offer",
- "nextAction"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "additionalProperties": false,
+ "properties": {
+ "status": {
+ "const": "invalid_request",
+ "description": "Input does not match this operation's contract; correct the facts before retrying.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "status"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "bookingUrl": {
+ "description": "Published customer booking page for this provider and locale; the URL does not grant private booking access or confirm availability.",
+ "format": "uri",
+ "type": "string"
+ },
+ "status": {
+ "const": "unavailable",
+ "description": "The requested information could not be supplied safely; this is not vehicle-unavailability evidence.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "status"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "retryAfterSeconds": {
+ "description": "Wait at least this many seconds, then use the same original submissionId/resumeToken pair for status or unchanged retry.",
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ "status": {
+ "const": "pending",
+ "description": "The original offer-intent execution is still pending; no completed offer result is available.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "status",
+ "retryAfterSeconds"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "retryAfterSeconds": {
+ "description": "Wait at least this many seconds before retrying the unchanged submissionId/resumeToken and facts.",
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ "status": {
+ "const": "rate_limited",
+ "description": "Offer preparation admission was rate-limited; retry only the unchanged explicit offer intent.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "status",
+ "retryAfterSeconds"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "status": {
+ "description": "conflict means stored intent/offer facts disagree; ambiguous means execution or bound evidence cannot safely be resolved; not_found denies access to the original submission proof. Inspect status rather than blindly creating another offer.",
+ "enum": [
+ "conflict",
+ "ambiguous",
+ "not_found"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "status"
+ ],
+ "type": "object"
+ },
+ {
+ "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"
+ },
+ "customerPortalUrl": {
+ "description": "Private customer-login entry for the original submission proof. This available branch also returns this booking's ID/reference; no history or write authority is granted.",
+ "format": "uri",
+ "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",
+ "customerPortalUrl"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "bookingUrl": {
+ "description": "Published customer booking page for this provider and locale; the URL does not grant private booking access or confirm availability.",
+ "format": "uri",
+ "type": "string"
+ },
+ "message": {
+ "description": "Customer-language explanation of the required review.",
+ "type": "string"
+ },
+ "review": {
+ "additionalProperties": false,
+ "description": "Structured reason and safe next step for requirements review.",
+ "properties": {
+ "availabilityConfirmed": {
+ "const": false,
+ "description": "This review result does not confirm availability.",
+ "type": "boolean"
+ },
+ "code": {
+ "description": "Reason for further requirements, model, address, service-scope, booking-window or route review; not vehicle-unavailability evidence.",
+ "enum": [
+ "additional_requirements_review",
+ "model_guarantee_review",
+ "address_review",
+ "service_scope_review",
+ "booking_window_review",
+ "route_review"
+ ],
+ "type": "string"
+ },
+ "customerContactRequired": {
+ "const": false,
+ "description": "No customer contact is required for this price/requirements review.",
+ "type": "boolean"
+ },
+ "nextAction": {
+ "const": "review_requirements",
+ "description": "Review the stated requirements before proceeding; do not infer acceptance or confirmed availability.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "code",
+ "customerContactRequired",
+ "availabilityConfirmed",
+ "nextAction"
+ ],
+ "type": "object"
+ },
+ "status": {
+ "const": "review_required",
+ "description": "Offer preparation requires review of the ride facts/requirements; availability is not confirmed.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "status",
+ "bookingUrl",
+ "message",
+ "review"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "status": {
+ "const": "expired",
+ "description": "The existing bound offer has expired; this does not extend or describe the separate resume-proof lifetime.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "status"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "bookingConfirmed": {
+ "const": false,
+ "description": "Offer preparation does not confirm a booking or charge the customer.",
+ "type": "boolean"
+ },
+ "checkoutUrl": {
+ "description": "Private bound offer-review page to review complete terms and explicitly confirm using the existing flow. Treat this offer link as private.",
+ "format": "uri",
+ "type": "string"
+ },
+ "customerPortalUrl": {
+ "description": "Existing private customer-login entry with the original submissionId/resumeToken in its fragment. Keep it private; current session/proof authority is still required.",
+ "format": "uri",
+ "type": "string"
+ },
+ "nextAction": {
+ "description": "Guidance to open checkoutUrl, review the bound terms and explicitly confirm; no confirmation occurred in this call.",
+ "type": "string"
+ },
+ "offer": {
+ "additionalProperties": false,
+ "description": "Existing offer amount, expiry and confirmation/terms requirements.",
+ "properties": {
+ "completeTermsBound": {
+ "const": true,
+ "description": "Complete service/legal terms were verified as bound to this offer.",
+ "type": "boolean"
+ },
+ "currency": {
+ "const": "EUR",
+ "description": "Currency of the bound offer: EUR.",
+ "type": "string"
+ },
+ "customerConfirmationRequired": {
+ "const": true,
+ "description": "The customer must explicitly review and confirm the offer on its page.",
+ "type": "boolean"
+ },
+ "expiresAt": {
+ "description": "Stored offer expiry timestamp from offer_expires_at. Separate from the 24-hour submission resume-proof lifetime; re-review an expired or revised offer.",
+ "type": "string"
+ },
+ "grossTotalCents": {
+ "description": "Bound offer gross total in EUR cents, including applicable tax.",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "currency",
+ "grossTotalCents",
+ "expiresAt",
+ "customerConfirmationRequired",
+ "completeTermsBound"
+ ],
+ "type": "object"
+ },
+ "status": {
+ "const": "prepared",
+ "description": "The existing unpaid draft and its bound offer links are ready for customer review; this branch does not return bookingKey/bookingReference.",
+ "type": "string"
+ },
+ "termsUrl": {
+ "description": "The same offer page with complete bound service/legal terms.",
+ "format": "uri",
+ "type": "string"
+ }
+ },
+ "required": [
+ "status",
+ "bookingConfirmed",
+ "checkoutUrl",
+ "termsUrl",
+ "offer",
+ "nextAction"
+ ],
+ "type": "object"
+ }
+]