generated: '2026-10-02' method: derived generator: derive-data-model.py source: - openapi/bookit-n-go-openapi.yaml notation: has_one = property $ref; has_many = array of $ref; belongs_to = _id field summary: entities: 59 entities_in_spec: 59 relationships: 51 entities: - name: ActionReceiptResponse fields: 1 - name: ActionResponse fields: 1 - name: AgentAction fields: 12 - name: AgentActionResponse fields: 1 - name: AgentExecuteInput fields: 1 - name: AirlineConstraintInput fields: 5 - name: Booking fields: 7 - name: BookingResponse fields: 1 - name: BudgetConstraintInput fields: 5 - name: CancellationInput fields: 3 - name: CancellationPreview fields: 9 - name: CancellationPreviewResponse fields: 1 - name: Consent fields: 9 - name: ConsentGrantInput fields: 5 - name: ConsentListResponse fields: 1 - name: ConsentResponse fields: 1 - name: Constraint fields: 8 - name: ConstraintListResponse fields: 1 - name: Contact fields: 4 - name: ErrorResponse fields: 1 - name: FlightBookingInput fields: 4 - name: FlightBookingPrepareActionInput fields: 4 - name: FlightBookingPrepareIntent fields: 4 - name: FlightOfferList fields: 2 - name: FlightSearch fields: 10 - name: HotelBookingInput fields: 5 - name: HotelBookingPrepareActionInput fields: 4 - name: HotelBookingPrepareIntent fields: 3 - name: HotelCancelActionInput fields: 4 - name: HotelCancelIntent fields: 4 - name: HotelSearch fields: 9 - name: LocationConstraintInput fields: 5 - name: MaxCabinConstraintInput fields: 5 - name: Money fields: 2 - name: Preference fields: 14 - name: PreferenceInput fields: 9 - name: PreferenceListResponse fields: 1 - name: Provenance fields: 4 - name: RecommendationEvidence fields: 9 - name: RecommendationReceiptResponse fields: 1 - name: RecommendationRequest fields: 3 - name: RecommendationResponse fields: 1 - name: ServicingAction fields: 13 - name: TravelContext fields: 4 - name: TravelerContact fields: 4 - name: TravelerProfile fields: 9 - name: TravelerProfileInput fields: 3 - name: TravelerProfilePatch fields: 3 - name: TravelerProfileResponse fields: 1 - name: Trip fields: 5 - name: TripInput fields: 1 - name: TripItem fields: 6 - name: TripItemInput fields: 2 - name: TripItemResponse fields: 1 - name: TripItemServicing fields: 1 - name: TripListResponse fields: 1 - name: TripResponse fields: 1 - name: WebhookEvent fields: 7 description: Signed canonical JSON. Receivers should reject timestamps older than five minutes and deduplicate by id. Transient failures retry at most five times. - name: WebhookInput fields: 2 relationships: - from: RecommendationRequest to: TravelContext type: has_one via: context - from: RecommendationEvidence to: Preference type: belongs_to via: preferenceId - from: RecommendationEvidence to: TravelContext type: has_one via: context - from: TravelerProfileInput to: TravelerContact type: has_one via: contact - from: TravelerProfile to: TravelerContact type: has_one via: contact - from: TravelerProfile to: Provenance type: has_one via: provenance - from: TravelerProfile to: Preference type: has_many via: preferences - from: TravelerProfile to: Constraint type: has_many via: constraints - from: TravelerProfilePatch to: TravelerContact type: has_one via: contact - from: PreferenceInput to: TravelContext type: has_one via: context - from: PreferenceInput to: Provenance type: has_one via: provenance - from: Preference to: TravelContext type: has_one via: context - from: Preference to: Provenance type: has_one via: provenance - from: MaxCabinConstraintInput to: Provenance type: has_one via: provenance - from: BudgetConstraintInput to: Provenance type: has_one via: provenance - from: AirlineConstraintInput to: Provenance type: has_one via: provenance - from: LocationConstraintInput to: Provenance type: has_one via: provenance - from: Constraint to: Provenance type: has_one via: provenance - from: ConsentGrantInput to: Provenance type: has_one via: provenance - from: Consent to: Provenance type: has_one via: provenance - from: TravelerProfileResponse to: TravelerProfile type: has_one via: data - from: PreferenceListResponse to: Preference type: has_many via: data - from: ConstraintListResponse to: Constraint type: has_many via: data - from: ConsentListResponse to: Consent type: has_many via: data - from: ConsentResponse to: Consent type: has_one via: data - from: HotelCancelActionInput to: HotelCancelIntent type: has_one via: intent - from: FlightBookingPrepareActionInput to: FlightBookingPrepareIntent type: has_one via: intent - from: HotelBookingPrepareActionInput to: HotelBookingPrepareIntent type: has_one via: intent - from: AgentActionResponse to: AgentAction type: has_one via: data - from: HotelCancelIntent to: Trip type: belongs_to via: tripId - from: Trip to: TripItem type: has_many via: items - from: TripItemInput to: Booking type: belongs_to via: bookingId - from: TripItem to: Booking type: belongs_to via: bookingId - from: TripItem to: TripItemServicing type: has_one via: servicing - from: TripListResponse to: Trip type: has_many via: data - from: TripResponse to: Trip type: has_one via: data - from: TripItemResponse to: TripItem type: has_one via: data - from: CancellationPreview to: Trip type: belongs_to via: tripId - from: CancellationPreview to: Money type: has_one via: refundEstimate - from: CancellationPreview to: Money type: has_one via: penaltyEstimate - from: CancellationPreviewResponse to: CancellationPreview type: has_one via: data - from: ServicingAction to: Trip type: belongs_to via: tripId - from: ServicingAction to: Money type: has_one via: refundEstimate - from: ServicingAction to: Money type: has_one via: penaltyEstimate - from: ActionResponse to: ServicingAction type: has_one via: data - from: FlightBookingInput to: Money type: has_one via: acceptedTotal - from: FlightBookingInput to: Contact type: has_one via: contact - from: HotelBookingInput to: Money type: has_one via: acceptedTotal - from: HotelBookingInput to: Contact type: has_one via: contact - from: Booking to: Money type: has_one via: total - from: BookingResponse to: Booking type: has_one via: data