{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/entur/main/json-schema/entur-seating-offer-debug-response-schema.json", "title": "SeatingOfferDebugResponse", "x-generated": "2026-10-09", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/entur-seating-manager-openapi.yml#/components/schemas/SeatingOfferDebugResponse", "required": [ "capactiyOnly", "createdAt", "createdBy", "datedServiceJourneyId", "datedServiceJourneyVersion", "departureDateTime", "elements", "inactive", "lineId", "manualMaterial", "organisationId", "seatingOfferStatus", "serviceJourneyId", "stopPlaces", "transportType", "updatedBy" ], "type": "object", "properties": { "datedServiceJourneyId": { "type": "string", "description": "The netex id of the `datedServiceJourney`" }, "datedServiceJourneyVersion": { "type": "integer", "description": "The version of the `datedServiceJourney`", "format": "int32" }, "organisationId": { "type": "integer", "description": "The organisation id this seating offer is operated by.", "format": "int64" }, "replacesNetexId": { "type": [ "string", "null" ], "description": "Netex id for the previous material used for this seating offer. If `null` the material on this dated service journey has never been changed." }, "seatingOfferStatus": { "type": "string", "description": "Describes the seating offer status", "enum": [ "ACTIVE", "CANCELLED", "TO_BE_REPLACED", "REPLACED_MATERIAL", "REPLACED_DSJ", "SEAT_USAGES_DELETED", "REMOVED", "DEPRECATED", "REPLACED" ] }, "serviceJourneyId": { "type": "string", "description": "The netex id of the `serviceJourney`" }, "departureDateTime": { "type": "string", "description": "The time of departure from the first station.", "format": "date-time" }, "lineId": { "type": "string", "description": "The netex id of the `line`" }, "createdAt": { "type": "string", "description": "When this seating offer was initially created", "format": "date-time" }, "createdBy": { "type": "integer", "description": "The organisation id this seating offer was created by.", "format": "int64" }, "updatedAt": { "type": [ "string", "null" ], "description": "The last time this seating offer was updated. If `null` the seating offer has not been updated", "format": "date-time" }, "updatedBy": { "type": [ "integer", "null" ], "description": "The organisation id that last updated this seating offer.", "format": "int64" }, "inactive": { "type": "boolean", "description": "Whether this seating offer is closed for sale or not" }, "manualMaterial": { "type": "boolean", "description": "Whether the material for this seating offer was set manually." }, "capactiyOnly": { "type": "boolean", "description": "Whether the seating offer has real RollingStock material or is meant for capacity only." }, "transportType": { "type": "string", "description": "The type of transport this seating offer is for.", "enum": [ "BUS", "REPLACEMENT_BUS", "TRAIN", "FERRY", "OTHER" ] }, "elements": { "type": "array", "items": { "$ref": "#/$defs/ElementDebugResponse" } }, "stopPlaces": { "type": "array", "items": { "$ref": "#/$defs/StopPlaceWithTimesResponseV1" } } }, "$defs": { "ElementDebugResponse": { "required": [ "carriageIdentifier", "elementParts", "netexId", "seats", "series", "seriesVersion" ], "type": "object", "properties": { "series": { "type": "string", "description": "Rolling stock series of the corresponding element." }, "seriesVersion": { "type": "integer", "description": "Rolling stock version of the corresponding element.", "format": "int32" }, "carriageIdentifier": { "type": "string", "description": "Carriage identifier for the element in the train." }, "netexId": { "type": "string", "description": "Netex id of the element." }, "seatmapKey": { "type": [ "string", "null" ], "description": "Seatmap key of the basic element. This can be used as a lookup in the seatmap service." }, "elementParts": { "type": "array", "items": { "$ref": "#/$defs/ElementPartResponseV1" } }, "seats": { "type": "array", "items": { "$ref": "#/$defs/SeatDebugResponse" } } } }, "ElementPartResponseV1": { "required": [ "destinationStopPlace", "direction", "materialCompositionNetexId", "originStopPlace", "sequenceNumber" ], "type": "object", "properties": { "originStopPlace": { "$ref": "#/$defs/StopPlaceWithTimesResponseV1" }, "destinationStopPlace": { "$ref": "#/$defs/StopPlaceWithTimesResponseV1" }, "materialCompositionNetexId": { "type": "string", "description": "Netex id for corresponding material composition." }, "sequenceNumber": { "type": "integer", "description": "Sequence number of the element in this material composition.", "format": "int32" }, "direction": { "type": "string", "description": "Direction of the element in this material composition.", "enum": [ "FORWARDS", "BACKWARDS", "UNKNOWN" ] } }, "description": "Information about one element in one material composition." }, "SeatDebugResponse": { "required": [ "column", "elementCarriageIdentifier", "properties", "row", "seatGroups", "seatNumber", "seatUsages" ], "type": "object", "properties": { "seatNumber": { "type": "string", "description": "The seat number of the seat." }, "elementCarriageIdentifier": { "type": "string", "description": "The carriage identifier of the carriage containing the seat." }, "row": { "type": [ "integer", "null" ], "description": "The row in the carriage containing the seat.", "format": "int32" }, "column": { "type": [ "integer", "null" ], "description": "The column in the carriage containing the seat.", "format": "int32" }, "properties": { "$ref": "#/$defs/SeatingPropertiesResponseV1" }, "seatGroups": { "type": "array", "items": { "$ref": "#/$defs/SeatGroupDebugResponse" } }, "seatUsages": { "type": "array", "items": { "$ref": "#/$defs/SeatUsageDebugResponse" } } } }, "SeatGroupDebugResponse": { "required": [ "name", "seatGroupType" ], "type": "object", "properties": { "name": { "type": "string", "description": "The name of the seat group." }, "seatGroupType": { "type": "string", "description": "The type of the seat group.", "enum": [ "OTHER", "TABLE_GROUP", "COMPARTMENT", "COMPANION" ] }, "label": { "type": [ "string", "null" ], "description": "The label of the seat group." } } }, "SeatUsageDebugResponse": { "required": [ "createdAt", "elementClosureReferences", "fromSequenceNumber", "seatNumberClosureReferences", "toSequenceNumber" ], "type": "object", "properties": { "fromSequenceNumber": { "type": "integer", "description": "The sequence nr of the stop place that this seat usage is from.", "format": "int32" }, "toSequenceNumber": { "type": "integer", "description": "The sequence nr of the stop place that this seat usage is to.", "format": "int32" }, "reservationLineReference": { "type": [ "string", "null" ], "description": "The reference of the reservation line that has reserved this seat usage. Null if unreserved.", "format": "uuid" }, "elementClosureReferences": { "type": "array", "description": "The references of element closures affecting this seat usage.", "items": { "type": "string", "description": "The references of element closures affecting this seat usage." } }, "seatNumberClosureReferences": { "type": "array", "description": "The references of seat closures affecting this seat usage.", "items": { "type": "string", "description": "The references of seat closures affecting this seat usage." } }, "createdAt": { "type": "string", "description": "When this seat usage was initially created.", "format": "date-time" }, "updatedAt": { "type": [ "string", "null" ], "description": "When this seat usage was las updated. Null if never updated after creation.", "format": "date-time" }, "updatedBy": { "type": [ "integer", "null" ], "description": "The organisation id that last updated this seat usage.", "format": "int64" } } }, "SeatingPropertiesResponseV1": { "type": "object", "properties": { "fareClass": { "type": [ "string", "null" ], "description": "Fare class of the seat. Netex enumeration.", "enum": [ "UNKNOWN", "FIRST_CLASS", "SECOND_CLASS", "THIRD_CLASS", "PREFERENTE", "PREMIUM_CLASS", "BUSINESS_CLASS", "STANDARD_CLASS", "TURISTA", "ECONOMY_CLASS", "ANY" ] }, "groupBooking": { "type": [ "string", "null" ], "description": "Group booking permission of the seat. Netex enumeration.", "enum": [ "GROUPS_ALLOWED", "GROUPS_NOT_ALLOWED", "GROUPS_ALLOWED_WITH_RESERVATION", "GROUP_BOOKINGS_RESTRICTED", "UNKNOWN" ] }, "accommodationFacility": { "type": [ "string", "null" ], "description": "Accommodation property of the seat. Netex enumeration.", "enum": [ "UNKNOWN", "SEATING", "FOLDING_SEAT", "SLEEPER", "SINGLE_SLEEPER", "DOUBLE_SLEEPER", "SPECIAL_SLEEPER", "COUCHETTE", "SINGLE_COUCHETTE", "DOUBLE_COUCHETTE", "SPECIAL_SEATING", "RECLINING_SEATS", "BABY_COMPARTMENT", "FAMILY_CARRIAGE", "RECREATION_AREA", "PANORAMA_COACH", "PULLMAN_COACH", "PUSHCHAIR", "WHEELCHAIR", "STANDING" ] }, "seatAttachment": { "type": [ "string", "null" ], "description": "Attachment of the seat. Netex enumeration.", "enum": [ "REVERSIBLE", "FIXED", "FOLDING", "REMOVABLE", "OTHER" ] }, "seatPosition": { "type": [ "string", "null" ], "description": "Position of the seat. Netex enumeration.", "enum": [ "WINDOW", "AISLE", "MIDDLE", "UPPER_BERTH", "MIDDLE_BERTH", "LOWER_BERTH", "OTHER" ] }, "relativeDirection": { "type": [ "string", "null" ], "description": "Relative direction of the seat. Netex enumeration.", "enum": [ "BOTH", "FORWARDS", "BACKWARDS" ] }, "nuisanceFacilities": { "uniqueItems": true, "type": "array", "description": "Set of possible nuisance factors of the seat. Netex enumerations.", "items": { "type": "string", "description": "Set of possible nuisance factors of the seat. Netex enumerations.", "enum": [ "UNKNOWN", "SMOKING", "NO_SMOKING", "FAMILY_AREA", "CHILDFREE_AREA", "ANIMALS_ALLOWED", "NO_ANIMALS", "BREASTFEEDING_FRIENDLY", "MOBILE_PHONE_USE_ZONE", "MOBILE_PHONE_FREE_ZONE" ] } }, "passengerCommsFacilities": { "uniqueItems": true, "type": "array", "description": "Set of possible communication facilities available for passenger in the seat. Netex enumerations.", "items": { "type": "string", "description": "Set of possible communication facilities available for passenger in the seat. Netex enumerations.", "enum": [ "UNKNOWN", "FREE_WIFI", "PUBLIC_WIFI", "POWER_SUPPLY_SOCKETS", "TELEPHONE", "AUDIO_ENTERTAINMENT", "VIDEO_ENTERTAINMENT", "BUSINESS_SERVICES", "INTERNET", "POST_OFFICE", "POST_BOX" ] } }, "sanitaryFacilities": { "uniqueItems": true, "type": "array", "description": "Set of possible sanitary facilities available for passenger in the seat. Netex enumerations.", "items": { "type": "string", "description": "Set of possible sanitary facilities available for passenger in the seat. Netex enumerations.", "enum": [ "NONE", "TOILET", "WHEELCHAIR_ACCESS_TOILET", "SHOWER", "WASHING_AND_CHANGE_FACILITIES", "BABY_CHANGE", "WHEELCHAIR_BABY_CHANGE", "SHOE_SHINER", "OTHER" ] } }, "mobilityFacilities": { "uniqueItems": true, "type": "array", "description": "Set of possible mobility facilities available for passenger in the seat. Netex enumerations.", "items": { "type": "string", "description": "Set of possible mobility facilities available for passenger in the seat. Netex enumerations.", "enum": [ "UNKNOWN", "LOW_FLOOR", "STEP_FREE_ACCESS", "SUITABLE_FOR_PUSHCHAIRS", "SUITABLE_FOR_WHEELCHAIRS", "SUITABLE_FOR_HEAVILIY_DISABLED", "BOARDING_ASSISTANCE", "ONBOARD_ASSISTANCE", "UNACCOMPANIED_MINOR_ASSISTANCE", "TACTILE_PLATFORM_EDGES", "TACTILE_GUIDING_STRIPS" ] } }, "baggageType": { "uniqueItems": true, "type": "array", "description": "Set of possible baggage types possible for passenger in the seat. Netex enumerations.", "items": { "type": "string", "description": "Set of possible baggage types possible for passenger in the seat. Netex enumerations.", "enum": [ "HANDBAG", "HAND_LUGGAGE", "SMALL_SUITCASE", "SUITCASE", "TRUNK", "OVERSIZE_ITEM", "BICYCLE", "MOTORCYCLE", "SPORTING_EQUIPMENT", "SKIS", "MUSICAL_INSTRUMENT", "PUSH_CHAIR", "WHEELCHAIR", "MOTORIZED_WHEELCHAIR", "LARGE_MOTORIZED_WHEELCHAIR", "SMALL_ANIMAL", "ANIMAL", "GAME", "OTHER" ] } } }, "description": "Properties of a seat. They describe both physical and logical properties of a seat.Physical properties are for example position of the seat.Logical properties describe properties that the operator use when selling the seat. For example fare class." }, "StopPlaceWithTimesResponseV1": { "required": [ "arrivalDateTime", "departureDateTime", "nsrCode", "sequenceNr" ], "type": "object", "properties": { "nsrCode": { "type": "string", "description": "Stop Place id defined by National StopPlace registry." }, "departureDateTime": { "type": "string", "description": "Time of departure from this stop. Set to time of arrival on last stop.", "format": "date-time" }, "arrivalDateTime": { "type": "string", "description": "Time of arrival on this stop. Set to time of departure on first stop.", "format": "date-time" }, "sequenceNr": { "type": "integer", "description": "The ordering of the station in the journey.", "format": "int32" } }, "description": "Destination stop place for this element in this material composition." } } }