generated: '2026-08-17' method: derived source: openapi/kardinal-aro-openapi-original.yml enriched_from: https://developers.kardinal.ai/reference/data-model summary: schema_count: 195 relationship_count: 400 core_entities: - Plan - Resource - Order - Stop - Solution - Tour - PlanStatus - SimplePlan - Position - TimeWindow - Capacities root_aggregate: Plan note: 'A Plan is the aggregate root: it carries its Resources (vehicles) and Orders (stops) inline and is addressed as /agencies/{agencyId}/plans/{planId}. The Solution is the computed projection of a Plan, returning Tours of WayPoints per Resource.' identifiers: style: client-supplied string ids scoped_to: the enclosing plan path_params: - agencyId - planId - resourceId - orderId - stopId note: Ids are supplied by the integrator, not generated by Kardinal, which is what makes PUT an upsert. Duplicate ids inside one collection raise ID_NOT_UNIQUE; dangling ids raise INVALID_ID_REFERENCE. geocoding: provided: false note: Kardinal does not geocode addresses — stop positions must be supplied as lon/lat by the integrator (per the sandbox-to-production guide). most_connected: - schema: RegexIdValidation degree: 47 - schema: DateTime degree: 32 - schema: Plan degree: 32 - schema: Duration degree: 31 - schema: Resource degree: 30 - schema: Tour degree: 23 - schema: User degree: 17 - schema: AgencyId degree: 17 - schema: PlanVersion degree: 17 - schema: PlanId degree: 15 - schema: Capacities degree: 14 - schema: WayPointStop degree: 14 - schema: Solution degree: 12 - schema: SimplePlan degree: 12 - schema: SingleStop degree: 10 - schema: AdditionalConstraintAtLeastOneConstraint degree: 9 - schema: Cost degree: 9 - schema: Position degree: 9 - schema: SimpleResource degree: 9 - schema: Password degree: 8 entities: - name: Plan property_count: 33 required: - id - agencyId - resources - name: Resource property_count: 23 required: - id - vehicleProfile - workingTimeWindow - name: User property_count: 19 required: - username - name: VehicleProfileTruck property_count: 18 required: - type - name: Tour property_count: 18 required: [] - name: SimplePlan property_count: 16 required: - id - agencyId - resources - name: WayPointStop property_count: 14 required: - type - position - name: Solution property_count: 13 required: [] - name: VehicleProfileCar property_count: 12 required: - type - name: SingleStop property_count: 10 required: - id - position - name: VehicleProfileMotorbike property_count: 9 required: - type - name: Order property_count: 8 required: - id - stops - name: VehicleProfileScooter property_count: 8 required: - type - name: SimpleResource property_count: 8 required: - id - workingTimeWindow - name: Cost property_count: 7 required: [] - name: MFAConfig property_count: 7 required: [] - name: PlanLight property_count: 6 required: [] - name: VehicleProfileBicycle property_count: 6 required: - type - name: AssignmentStop property_count: 6 required: - stopId - name: WayPointBegin property_count: 6 required: - type - position - name: WayPointBreak property_count: 6 required: - type - name: WayPointEnd property_count: 6 required: - type - position - name: Paging property_count: 6 required: [] - name: SimpleStop property_count: 6 required: - id - position - name: PlanStatus property_count: 5 required: [] - name: VehicleProfilePedestrian property_count: 5 required: - type - name: CostFloorsAndCoeffs property_count: 5 required: [] - name: GlobalViolationMaxCumulatedCost property_count: 5 required: [] - name: AdditionalConstraintRemovalStrategy property_count: 5 required: - type - name: LoginOTPOutput property_count: 5 required: [] - name: EnvelopedLoginAccessOutput property_count: 4 required: [] - name: EnvelopedPlan property_count: 4 required: [] - name: EnvelopedPlanStatus property_count: 4 required: [] - name: EnvelopedPlanMode property_count: 4 required: [] - name: EnvelopedBoolResponse property_count: 4 required: [] - name: EnvelopedResource property_count: 4 required: [] - name: EnvelopedOrder property_count: 4 required: [] - name: GlobalConstraintMaxCumulatedCost property_count: 4 required: - type - costsByResourceTag - name: CustomObjective property_count: 4 required: - type - name - direction - costsByResourceTag - name: EnvelopedState property_count: 4 required: [] - name: AssignmentBreak property_count: 4 required: - type - arrivalTime - departureTime - name: EnvelopedSolution property_count: 4 required: [] - name: SolutionObjective property_count: 4 required: [] - name: EnvelopedSolutionObjectives property_count: 4 required: [] - name: AuthorizedTimeWindowViolation property_count: 4 required: - type - forbiddenWindow - actualTime - name: CapacityViolation property_count: 4 required: - type - capacity - overCapacity - name: AtLeastOneValidCapacityViolation property_count: 4 required: - type - name - overCapacities - name: OrderViolation property_count: 4 required: - type - expectedOrderedStopIds - name: MaxInterStopDistanceInKmViolation property_count: 4 required: - type - maxInterStopDistanceInKm - exceededDistanceInKm - name: MaxInterStopDurationViolation property_count: 4 required: - type - maxInterStopDuration - exceededDuration - name: StopIncompatibilityViolation property_count: 4 required: - type - incompatibilities - tags - name: AdditionalConstraintIncompatibleStopTags property_count: 4 required: - type - stopTags - name: AdditionalConstraintForbiddenAssignment property_count: 4 required: - type - resourceTag - stopTag - name: AdditionalConstraintAtLeastOneValidCapacity property_count: 4 required: - type - capacities - name: AdditionalConstraintCapacities property_count: 4 required: - type - capacities - resourceTag - name: AdditionalConstraintMaxStopTagGroups property_count: 4 required: - type - maxGroupsByStopTag - name: EnvelopedSimplePlan property_count: 4 required: [] - name: AdditionalOperationDuration property_count: 3 required: - resourceTag - stopTag - additionalOperationDuration - name: AuthenticationMethod property_count: 3 required: - provider - authUrl - name: EnvelopedPlansLight property_count: 3 required: [] relationships: - from: AdditionalOperationDuration to: RegexIdValidation via: resourceTag kind: has_one - from: AdditionalOperationDuration to: RegexIdValidation via: stopTag kind: has_one - from: AdditionalOperationDuration to: Duration via: additionalOperationDuration kind: has_one - from: ForbiddenAssignment to: RegexIdValidation via: resourceTag kind: has_one - from: ForbiddenAssignment to: RegexIdValidation via: stopTag kind: has_one - from: Login to: Username via: username kind: has_one - from: Login to: Password via: password kind: has_one - from: EnvelopedLoginGDPROutput to: GDPRToken via: item kind: has_one - from: EnvelopedLoginGDPROutput to: GDPRToken via: access_token kind: has_one - from: EnvelopedLoginMFAOutput to: MFAToken via: item kind: has_one - from: EnvelopedLoginMFAOutput to: MFAToken via: access_token kind: has_one - from: EnvelopedLoginAccessOutput to: AccessToken via: item kind: has_one - from: EnvelopedLoginAccessOutput to: User via: item kind: has_one - from: EnvelopedLoginAccessOutput to: RefreshToken via: item kind: has_one - from: EnvelopedLoginAccessOutput to: AccessToken via: access_token kind: has_one - from: EnvelopedLoginAccessOutput to: RefreshToken via: refresh_token kind: has_one - from: EnvelopedLoginAccessOutput to: User via: user kind: has_one - from: UsernameRequest to: Username via: username kind: has_one - from: PasswordRequest to: Password via: password kind: has_one - from: PasswordRequest to: Password via: confirmPassword kind: has_one - from: TokenRequest to: PasswordToken via: token kind: has_one - from: EnvelopedLoginRefreshOutput to: AccessToken via: item kind: has_one - from: EnvelopedLoginRefreshOutput to: AccessToken via: access_token kind: has_one - from: EnvelopedAuthenticationMethods to: AuthenticationMethods via: items kind: has_many - from: User to: Username via: username kind: has_one - from: User to: UserType via: type kind: has_one - from: User to: Password via: password kind: has_one - from: User to: Role via: role kind: has_one - from: User to: Level via: level kind: has_one - from: User to: CountryIds via: countries kind: has_one - from: User to: RegionIds via: regions kind: has_one - from: User to: AgencyIds via: agencies kind: has_one - from: User to: UserStatus via: status kind: has_one - from: User to: DateTime via: lastLoginAt kind: has_one - from: User to: DateTime via: createdAt kind: has_one - from: User to: DateTime via: updatedAt kind: has_one - from: User to: ClientId via: clientId kind: has_one - from: User to: DateTime via: gdprInfo kind: has_one - from: User to: ClientId via: managedClientsIds kind: has_many - from: PlanLight to: PlanId via: id kind: has_one - from: PlanLight to: AgencyId via: agencyId kind: has_one - from: PlanLight to: PlanVersion via: version kind: has_one - from: PlanLight to: PlanStatus via: status kind: has_one - from: PlanLight to: Properties via: properties kind: has_one - from: EnvelopedPlansLight to: PlanLight via: items kind: has_many - from: EnvelopedPlansLight to: AgencyId via: agencyId kind: has_one - from: EnvelopedPlansLight to: Paging via: paging kind: has_one - from: Plan to: PlanId via: id kind: has_one - from: Plan to: AgencyId via: agencyId kind: has_one - from: Plan to: PlanVersion via: version kind: has_one - from: Plan to: PlanStatus via: status kind: has_one - from: Plan to: PlanState via: state kind: has_one - from: Plan to: Properties via: properties kind: has_one - from: Plan to: Resource via: resources kind: has_many - from: Plan to: Order via: orders kind: has_many - from: Plan to: AdditionalOperationDuration via: additionalOperationDurations kind: has_many - from: Plan to: OperationDurationPolicy via: operationDurationPoliciesByResourceTag kind: has_one - from: Plan to: ForbiddenAssignment via: forbiddenAssignments kind: has_many - from: Plan to: IncompatibleStopTags via: incompatibleStopTags kind: has_one - from: Plan to: AdditionalConstraintMaxStopTagGroups via: additionalConstraints kind: has_many - from: Plan to: AdditionalConstraintAtLeastOneValidCapacity via: additionalConstraints kind: has_many - from: Plan to: AdditionalConstraintCapacities via: additionalConstraints kind: has_many - from: Plan to: AdditionalConstraintAtLeastOneConstraint via: additionalConstraints kind: has_many - from: Plan to: AdditionalConstraintForbiddenAssignment via: additionalConstraints kind: has_many - from: Plan to: AdditionalConstraintRemovalStrategy via: additionalConstraints kind: has_many - from: Plan to: AdditionalConstraintIncompatibleStopTags via: additionalConstraints kind: has_many - from: Plan to: GlobalConstraintMaxCumulatedCost via: globalConstraints kind: has_many - from: Plan to: Duration via: accessDurationsByStopTag kind: has_one - from: Plan to: SetupDuration via: setupDurations kind: has_many - from: Plan to: PlanObjectives via: objectives kind: has_one - from: Plan to: Duration via: maxOptimizationDuration kind: has_one - from: Plan to: TimeZone via: tz kind: has_one - from: Plan to: DateTime via: createdAt kind: has_one - from: Plan to: DateTime via: updatedAt kind: has_one - from: Plan to: DateTime via: archivedAt kind: has_one - from: Plan to: Capacities via: emptyThresholdByCapacityByResourceTag kind: has_one - from: Plan to: AvoidEarlyLoading via: avoidEarlyLoadingsByResourceTag kind: has_one - from: Plan to: Cost via: CO2EmissionCalculationByResourceTag kind: has_one - from: EnvelopedPlan to: Plan via: item kind: has_one - from: EnvelopedPlan to: AgencyId via: agencyId kind: has_one - from: EnvelopedPlan to: PlanId via: planId kind: has_one - from: EnvelopedPlan to: PlanVersion via: planVersion kind: has_one - from: TimedPlanState to: DateTime via: timestamp kind: has_one - from: TimedPlanState to: PlanState via: state kind: has_one - from: EnvelopedTimedPlanState to: TimedPlanState via: item kind: has_one - from: EnvelopedTimedPlanState to: AgencyId via: agencyId kind: has_one - from: EnvelopedTimedPlanState to: PlanId via: planId kind: has_one - from: EnvelopedTimedPlanStates to: TimedPlanState via: items kind: has_many - from: EnvelopedTimedPlanStates to: AgencyId via: agencyId kind: has_one - from: EnvelopedTimedPlanStates to: PlanId via: planId kind: has_one - from: PlanStatus to: PlanVersion via: planVersionInSolution kind: has_one - from: PlanStatus to: PlanStatusVersion via: waitingRoom kind: has_one - from: PlanStatus to: PlanStatusVersion via: waitingTraffic kind: has_one - from: PlanStatus to: PlanStatusVersion via: creation kind: has_one - from: PlanStatus to: PlanStatusVersion via: optimization kind: has_one - from: EnvelopedPlanStatus to: PlanStatus via: item kind: has_one - from: EnvelopedPlanStatus to: AgencyId via: agencyId kind: has_one - from: EnvelopedPlanStatus to: PlanId via: planId kind: has_one - from: EnvelopedPlanStatus to: PlanVersion via: planVersion kind: has_one - from: EnvelopedPlanMode to: PlanMode via: item kind: has_one - from: EnvelopedPlanMode to: AgencyId via: agencyId kind: has_one - from: EnvelopedPlanMode to: PlanId via: planId kind: has_one - from: EnvelopedPlanMode to: PlanVersion via: planVersion kind: has_one - from: EnvelopedBoolResponse to: AgencyId via: agencyId kind: has_one - from: EnvelopedBoolResponse to: PlanId via: planId kind: has_one - from: EnvelopedBoolResponse to: PlanVersion via: planVersion kind: has_one - from: PlanStatusVersion to: PlanVersion via: waitingVersion kind: has_one - from: PlanStatusVersion to: PlanVersion via: runningVersion kind: has_one - from: MaxInterStopDurationBounds to: Duration via: firstTravel kind: has_one - from: MaxInterStopDurationBounds to: Duration via: interStop kind: has_one - from: MaxInterStopDurationBounds to: Duration via: lastTravel kind: has_one - from: Resource to: RegexIdValidation via: id kind: has_one - from: Resource to: Properties via: properties kind: has_one - from: Resource to: State via: state kind: has_one - from: Resource to: Cost via: cost kind: has_one - from: Resource to: Cost via: CO2EmissionCalculation kind: has_one - from: Resource to: RegexIdValidation via: skills kind: has_many - from: Resource to: RegexIdValidation via: preferredStopTags kind: has_many - from: Resource to: RegexIdValidation via: tags kind: has_many - from: Resource to: VehicleProfileScooter via: vehicleProfile kind: has_one - from: Resource to: VehicleProfileMotorbike via: vehicleProfile kind: has_one - from: Resource to: VehicleProfileFly via: vehicleProfile kind: has_one - from: Resource to: VehicleProfileBicycle via: vehicleProfile kind: has_one - from: Resource to: VehicleProfilePedestrian via: vehicleProfile kind: has_one - from: Resource to: VehicleProfileTruck via: vehicleProfile kind: has_one - from: Resource to: VehicleProfileCar via: vehicleProfile kind: has_one - from: Resource to: Capacities via: capacities kind: has_one - from: Resource to: Position via: departure kind: has_one - from: Resource to: Position via: arrival kind: has_one - from: Resource to: AtFirstPositionArrival via: arrival kind: has_one - from: Resource to: TimeWindow via: workingTimeWindow kind: has_one - from: Resource to: Duration via: maxWorkingDuration kind: has_one - from: Resource to: MaxInterStopDistanceInKmBounds via: maxInterStopDistanceInKm kind: has_one - from: Resource to: MaxInterStopDurationBounds via: maxInterStopDuration kind: has_one - from: Resource to: Duration via: maxInterStopDuration kind: has_one - from: Resource to: Break via: breaks kind: has_many - from: Resource to: OperationDurationPolicy via: operationDurationPolicies kind: has_many - from: Resource to: Capacities via: emptyThresholdByCapacity kind: has_one - from: Resource to: AvoidEarlyLoading via: avoidEarlyLoadings kind: has_many - from: EnvelopedResource to: Resource via: item kind: has_one - from: EnvelopedResource to: AgencyId via: agencyId kind: has_one - from: EnvelopedResource to: PlanId via: planId kind: has_one - from: EnvelopedResource to: PlanVersion via: planVersion kind: has_one - from: SingleStop to: RegexIdValidation via: id kind: has_one - from: SingleStop to: Properties via: properties kind: has_one - from: SingleStop to: RegexIdValidation via: tags kind: has_many - from: SingleStop to: Position via: position kind: has_one - from: SingleStop to: StopKind via: kind kind: has_one - from: SingleStop to: Duration via: operationDuration kind: has_one - from: SingleStop to: Capacities via: capacities kind: has_one - from: SingleStop to: TaggedTimeWindow via: authorizedTimeWindows kind: has_many - from: SingleStop to: TaggedTimeWindow via: preferredTimeWindows kind: has_many - from: AlternativesStop to: RegexIdValidation via: id kind: has_one - from: AlternativesStop to: SingleStop via: alternatives kind: has_many - from: Order to: RegexIdValidation via: id kind: has_one - from: Order to: Properties via: properties kind: has_one - from: Order to: RegexIdValidation via: requiredSkills kind: has_many - from: Order to: Stop via: stops kind: has_many - from: Order to: Duration via: maxStopSpan kind: has_one - from: EnvelopedOrder to: Order via: item kind: has_one - from: EnvelopedOrder to: AgencyId via: agencyId kind: has_one - from: EnvelopedOrder to: PlanId via: planId kind: has_one - from: EnvelopedOrder to: PlanVersion via: planVersion kind: has_one - from: SetupDuration to: RegexIdValidation via: fromStopTag kind: has_one - from: SetupDuration to: RegexIdValidation via: toStopTag kind: has_one - from: SetupDuration to: Duration via: setupDuration kind: has_one - from: GlobalConstraintMaxCumulatedCost to: CostsByResourceTag via: costsByResourceTag kind: has_one - from: StopTagPrecedencePair to: RegexIdValidation via: previous kind: has_one - from: StopTagPrecedencePair to: RegexIdValidation via: next kind: has_one - from: MaximizePrecedencesObjective to: StopTagPrecedencePair via: precedences kind: has_many - from: CustomObjective to: OptimizationDirection via: direction kind: has_one - from: CustomObjective to: CostsByResourceTag via: costsByResourceTag kind: has_one - from: FromPrevious to: Duration via: travelDuration kind: has_one - from: TaggedTimeWindow to: DateTime via: begin kind: has_one - from: TaggedTimeWindow to: DateTime via: end kind: has_one - from: TaggedTimeWindow to: RegexIdValidation via: resourceTags kind: has_many - from: TimeWindow to: DateTime via: begin kind: has_one - from: TimeWindow to: DateTime via: end kind: has_one - from: TimeWindowBreak to: Duration via: duration kind: has_one - from: TimeWindowBreak to: TimeWindow via: timeWindow kind: has_one - from: TravelDurationSlidingBreak to: Duration via: minBreakDuration kind: has_one - from: TravelDurationSlidingBreak to: Duration via: maxInterBreakDuration kind: has_one - from: WorkingDurationSlidingBreak to: Duration via: minBreakDuration kind: has_one - from: WorkingDurationSlidingBreak to: Duration via: maxInterBreakDuration kind: has_one - from: AvoidEarlyLoading to: RegexIdValidation via: stopTag kind: has_one - from: OperationDurationPolicy to: RegexIdValidation via: stopTags kind: has_many - from: VehicleProfilePedestrian to: CountryCodes via: excludedCountries kind: has_one - from: VehicleProfileBicycle to: CountryCodes via: excludedCountries kind: has_one - from: VehicleProfileScooter to: CountryCodes via: excludedCountries kind: has_one - from: VehicleProfileMotorbike to: CountryCodes via: excludedCountries kind: has_one - from: VehicleProfileCar to: CountryCodes via: excludedCountries kind: has_one - from: VehicleProfileTruck to: ShippedHazardousGood via: shippedHazardousGoods kind: has_many - from: VehicleProfileTruck to: CountryCodes via: excludedCountries kind: has_one - from: VehicleProfileTruck to: TunnelCategory via: tunnelCategory kind: has_one - from: TaggedCostFloorsAndCoeffs to: RegexIdValidation via: stopTags kind: has_many - from: Cost to: CostFloorsAndCoeffs via: workedHours kind: has_one - from: Cost to: CostFloorsAndCoeffs via: km kind: has_one - from: Cost to: CostFloorsAndCoeffs via: costsByStopTag kind: has_one - from: Cost to: TaggedCostFloorsAndCoeffs via: costsByCapacity kind: has_one - from: Cost to: CostFloorsAndCoeffs via: costPerCapacityPerTravelledKm kind: has_one - from: Cost to: CostFloorsAndCoeffs via: costPerCapacityPerTravelledHour kind: has_one - from: State to: ResourceMode via: mode kind: has_one - from: State to: AssignmentEnd via: assignments kind: has_many - from: State to: AssignmentStop via: assignments kind: has_many - from: State to: AssignmentBegin via: assignments kind: has_many - from: State to: AssignmentBreak via: assignments kind: has_many - from: EnvelopedState to: State via: item kind: has_one - from: EnvelopedState to: AgencyId via: agencyId kind: has_one - from: EnvelopedState to: PlanId via: planId kind: has_one - from: EnvelopedState to: PlanVersion via: planVersion kind: has_one - from: AssignmentStop to: AssignmentStatus via: status kind: has_one - from: AssignmentStop to: RegexIdValidation via: stopId kind: has_one - from: AssignmentStop to: DateTime via: arrivalTime kind: has_one - from: AssignmentStop to: DateTime via: beginTime kind: has_one - from: AssignmentStop to: DateTime via: departureTime kind: has_one - from: AssignmentBegin to: AssignmentStatus via: status kind: has_one - from: AssignmentBegin to: DateTime via: departureTime kind: has_one - from: AssignmentBreak to: AssignmentStatus via: status kind: has_one - from: AssignmentBreak to: DateTime via: arrivalTime kind: has_one - from: AssignmentBreak to: DateTime via: departureTime kind: has_one - from: AssignmentEnd to: AssignmentStatus via: status kind: has_one - from: AssignmentEnd to: DateTime via: arrivalTime kind: has_one - from: Error to: ErrorProperties via: properties kind: has_one - from: EnvelopedErrors to: Error via: errors kind: has_many - from: Solution to: AgencyId via: agencyId kind: has_one - from: Solution to: PlanId via: planId kind: has_one - from: Solution to: PlanVersion via: planVersion kind: has_one - from: Solution to: DateTime via: timestamp kind: has_one - from: Solution to: RegexIdValidation via: unaffectedStopIds kind: has_many - from: Solution to: RegexIdValidation via: unaffectedAlternativeIds kind: has_many - from: Solution to: RegexIdValidation via: unusedResourceIds kind: has_many - from: Solution to: SolutionObjective via: objectives kind: has_many - from: Solution to: Tour via: tours kind: has_many - from: Solution to: Duration via: totalDelay kind: has_one - from: Solution to: GlobalViolationMaxCumulatedCost via: globalViolations kind: has_many - from: EnvelopedSolution to: Solution via: item kind: has_one - from: EnvelopedSolution to: AgencyId via: agencyId kind: has_one - from: EnvelopedSolution to: PlanId via: planId kind: has_one - from: EnvelopedSolution to: PlanVersion via: planVersion kind: has_one - from: SolutionObjective to: RegexIdValidation via: name kind: has_one - from: SolutionObjective to: OptimizationDirection via: direction kind: has_one - from: EnvelopedSolutionObjectives to: SolutionObjective via: items kind: has_many - from: EnvelopedSolutionObjectives to: AgencyId via: agencyId kind: has_one - from: EnvelopedSolutionObjectives to: PlanId via: planId kind: has_one - from: EnvelopedSolutionObjectives to: PlanVersion via: planVersion kind: has_one - from: Tour to: RegexIdValidation via: resourceId kind: has_one - from: Tour to: ResourceMode via: mode kind: has_one - from: Tour to: Duration via: totalDelay kind: has_one - from: Tour to: Duration via: travelDuration kind: has_one - from: Tour to: Duration via: workingDuration kind: has_one - from: Tour to: Duration via: waitingDuration kind: has_one - from: Tour to: Capacities via: resourceCapacities kind: has_one - from: Tour to: Capacities via: maxFilledCapacities kind: has_one - from: Tour to: Capacities via: filledCapacitiesAtBegin kind: has_one - from: Tour to: Capacities via: filledCapacitiesAtEnd kind: has_one - from: Tour to: TourViolation via: violations kind: has_many - from: Tour to: WayPointBreak via: wayPoints kind: has_many - from: Tour to: WayPointEnd via: wayPoints kind: has_many - from: Tour to: WayPointStop via: wayPoints kind: has_many - from: Tour to: WayPointBegin via: wayPoints kind: has_many - from: Tour to: VehicleProfileScooter via: vehicleProfile kind: has_one - from: Tour to: VehicleProfileMotorbike via: vehicleProfile kind: has_one - from: Tour to: VehicleProfileFly via: vehicleProfile kind: has_one - from: Tour to: VehicleProfileBicycle via: vehicleProfile kind: has_one - from: Tour to: VehicleProfilePedestrian via: vehicleProfile kind: has_one - from: Tour to: VehicleProfileTruck via: vehicleProfile kind: has_one - from: Tour to: VehicleProfileCar via: vehicleProfile kind: has_one - from: GlobalViolationMaxCumulatedCost to: RegexIdValidation via: resourceIds kind: has_many - from: SkillsViolation to: RegexIdValidation via: lackingSkills kind: has_many - from: ForbiddenAssignmentViolation to: ForbiddenAssignment via: forbiddenAssignments kind: has_many - from: AuthorizedTimeWindowViolation to: TimeWindow via: forbiddenWindow kind: has_one - from: AuthorizedTimeWindowViolation to: DateTime via: actualTime kind: has_one - from: AtLeastOneValidCapacityViolation to: Capacities via: overCapacities kind: has_one - from: SuccessiveStopsViolation to: RegexIdValidation via: expectedSuccessiveStopIds kind: has_many - from: SuccessiveStopsViolation to: RegexIdValidation via: interleavedStopIds kind: has_many - from: OrderViolation to: RegexIdValidation via: expectedOrderedStopIds kind: has_many - from: OrderViolation to: RegexIdValidation via: missedStopIds kind: has_many - from: OrderViolation to: RegexIdValidation via: badlyOrderedStopIds kind: has_many - from: MaxStopSpanViolation to: RegexIdValidation via: orderId kind: has_one - from: MaxStopSpanViolation to: Duration via: delay kind: has_one - from: WorkingTimeWindowViolation to: Duration via: delay kind: has_one - from: MaxWorkingDurationViolation to: Duration via: maxWorkingDuration kind: has_one - from: MaxWorkingDurationViolation to: Duration via: exceededDuration kind: has_one - from: MaxInterStopDurationViolation to: Duration via: maxInterStopDuration kind: has_one - from: MaxInterStopDurationViolation to: Duration via: exceededDuration kind: has_one - from: StopIncompatibilityViolation to: RegexIdValidation via: incompatibilities kind: has_many - from: StopIncompatibilityViolation to: StopTagPair via: tags kind: has_one - from: AtLeastOneConstraintViolation to: TourViolation via: violatedConstraints kind: has_many - from: MaxStopTagGroupsViolation to: ExceededNbGroups via: exceededNbGroupsByStopTag kind: has_one - from: RemovalStrategyViolation to: RemovalStrategyType via: removalStrategyType kind: has_one - from: WayPointBegin to: Position via: position kind: has_one - from: WayPointBegin to: WayPointStatus via: status kind: has_one - from: WayPointBegin to: DateTime via: departureTime kind: has_one - from: WayPointBegin to: WaypointViolation via: violations kind: has_many - from: WayPointBegin to: FromPrevious via: fromPrevious kind: has_one - from: WayPointStop to: RegexIdValidation via: stopId kind: has_one - from: WayPointStop to: Position via: position kind: has_one - from: WayPointStop to: WayPointStatus via: status kind: has_one - from: WayPointStop to: Properties via: stopProperties kind: has_one - from: WayPointStop to: Properties via: orderProperties kind: has_one - from: WayPointStop to: Capacities via: filledCapacitiesAfterStop kind: has_one - from: WayPointStop to: Duration via: delay kind: has_one - from: WayPointStop to: DateTime via: arrivalTime kind: has_one - from: WayPointStop to: DateTime via: beginTime kind: has_one - from: WayPointStop to: DateTime via: departureTime kind: has_one - from: WayPointStop to: WaypointViolation via: violations kind: has_many - from: WayPointStop to: FromPrevious via: fromPrevious kind: has_one - from: WayPointStop to: StopKind via: stopKind kind: has_one - from: WayPointBreak to: WayPointStatus via: status kind: has_one - from: WayPointBreak to: DateTime via: arrivalTime kind: has_one - from: WayPointBreak to: DateTime via: departureTime kind: has_one - from: WayPointBreak to: WaypointViolation via: violations kind: has_many - from: WayPointBreak to: FromPrevious via: fromPrevious kind: has_one - from: WayPointEnd to: Position via: position kind: has_one - from: WayPointEnd to: WayPointStatus via: status kind: has_one - from: WayPointEnd to: DateTime via: arrivalTime kind: has_one - from: WayPointEnd to: WaypointViolation via: violations kind: has_many - from: WayPointEnd to: FromPrevious via: fromPrevious kind: has_one - from: AdditionalConstraintIncompatibleStopTags to: StopTagPair via: stopTags kind: has_one - from: AdditionalConstraintIncompatibleStopTags to: RegexIdValidation via: resourceTags kind: has_many - from: AdditionalConstraintForbiddenAssignment to: RegexIdValidation via: resourceTag kind: has_one - from: AdditionalConstraintForbiddenAssignment to: RegexIdValidation via: stopTag kind: has_one - from: AdditionalConstraintAtLeastOneValidCapacity to: Capacities via: capacities kind: has_one - from: AdditionalConstraintAtLeastOneValidCapacity to: RegexIdValidation via: resourceTags kind: has_many - from: AdditionalConstraintAtLeastOneConstraint to: AdditionalConstraintMaxStopTagGroups via: constraints kind: has_many - from: AdditionalConstraintAtLeastOneConstraint to: AdditionalConstraintAtLeastOneValidCapacity via: constraints kind: has_many - from: AdditionalConstraintAtLeastOneConstraint to: AdditionalConstraintCapacities via: constraints kind: has_many - from: AdditionalConstraintAtLeastOneConstraint to: AdditionalConstraintAtLeastOneConstraint via: constraints kind: has_many - from: AdditionalConstraintAtLeastOneConstraint to: AdditionalConstraintForbiddenAssignment via: constraints kind: has_many - from: AdditionalConstraintAtLeastOneConstraint to: AdditionalConstraintRemovalStrategy via: constraints kind: has_many - from: AdditionalConstraintAtLeastOneConstraint to: AdditionalConstraintIncompatibleStopTags via: constraints kind: has_many - from: AdditionalConstraintCapacities to: Capacities via: capacities kind: has_one - from: AdditionalConstraintCapacities to: RegexIdValidation via: resourceTag kind: has_one - from: AdditionalConstraintMaxStopTagGroups to: RegexIdValidation via: resourceTags kind: has_many - from: AdditionalConstraintMaxStopTagGroups to: MaxGroupsByStopTag via: maxGroupsByStopTag kind: has_one - from: AdditionalConstraintRemovalStrategy to: RegexIdValidation via: resourceTags kind: has_many - from: AdditionalConstraintRemovalStrategy to: RegexIdValidation via: capacities kind: has_many - from: AdditionalConstraintRemovalStrategy to: RemovalStrategyType via: removalStrategy kind: has_one - from: EnvelopedOTPType to: OTPType via: item kind: has_one - from: EnvelopedBackupCodes to: BackupCodes via: items kind: has_one - from: MFAConfig to: DateTime via: updatedAt kind: has_one - from: MFAConfig to: OTPType via: preferredType kind: has_one - from: MFAConfig to: OTPType via: availableTypes kind: has_many - from: MFAConfig to: ObfuscatedEmail via: email kind: has_one - from: MFAConfig to: ObfuscatedPhoneNumber via: phoneNumber kind: has_one - from: MFAConfig to: TOTPConfig via: totpConfig kind: has_one - from: MFAConfig to: BackupCodes via: backupCodes kind: has_one - from: EnvelopedMFAConfig to: MFAConfig via: item kind: has_one - from: MFAConfigRegenerateBackupCodes to: Password via: password kind: has_one - from: MFAConfigRequestEmail to: Email via: email kind: has_one - from: MFAConfigRequestEmail to: Password via: password kind: has_one - from: MFAConfigRequestSMS to: PhoneNumber via: phoneNumber kind: has_one - from: MFAConfigRequestSMS to: Password via: password kind: has_one - from: MFAConfigRequestTOTP to: Password via: password kind: has_one - from: MFAConfigResendEmail to: Email via: email kind: has_one - from: MFAConfigResendSMS to: PhoneNumber via: phoneNumber kind: has_one - from: MFAConfigValidationEmail to: Email via: email kind: has_one - from: MFAConfigValidationEmail to: OTPValue via: otp kind: has_one - from: MFAConfigValidationSMS to: PhoneNumber via: phoneNumber kind: has_one - from: MFAConfigValidationSMS to: OTPValue via: otp kind: has_one - from: MFAConfigValidationTOTP to: OTPValue via: otp kind: has_one - from: EnvelopedMFARequestOTPOutput to: OTPToken via: item kind: has_one - from: EnvelopedMFARequestTOTPOutput to: TOTPConfig via: item kind: has_one - from: EnvelopedMFARequestTOTPOutput to: OTPToken via: item kind: has_one - from: LoginBackupCodeInput to: BackupCode via: backupCode kind: has_one - from: LoginOTPInput to: OTPValue via: otp kind: has_one - from: LoginOTPOutput to: OTPType via: preferredType kind: has_one - from: LoginOTPOutput to: OTPType via: availableTypes kind: has_many - from: LoginOTPOutput to: ObfuscatedEmail via: email kind: has_one - from: LoginOTPOutput to: ObfuscatedPhoneNumber via: phoneNumber kind: has_one - from: EnvelopedLoginOTPOutput to: LoginOTPOutput via: item kind: has_one - from: SimpleResource to: RegexIdValidation via: id kind: has_one - from: SimpleResource to: Capacities via: capacities kind: has_one - from: SimpleResource to: Position via: departure kind: has_one - from: SimpleResource to: Position via: arrival kind: has_one - from: SimpleResource to: AtFirstPositionArrival via: arrival kind: has_one - from: SimpleResource to: TimeWindow via: workingTimeWindow kind: has_one - from: SimpleResource to: Duration via: maxWorkingDuration kind: has_one - from: SimpleResource to: Break via: breaks kind: has_many - from: SimpleStop to: RegexIdValidation via: id kind: has_one - from: SimpleStop to: Position via: position kind: has_one - from: SimpleStop to: StopKind via: kind kind: has_one - from: SimpleStop to: Duration via: operationDuration kind: has_one - from: SimpleStop to: Capacities via: capacities kind: has_one - from: SimpleStop to: TimeWindow via: timeWindow kind: has_one - from: SimplePlan to: UUID via: id kind: has_one - from: SimplePlan to: AgencyId via: agencyId kind: has_one - from: SimplePlan to: PlanVersion via: version kind: has_one - from: SimplePlan to: PlanState via: state kind: has_one - from: SimplePlan to: SimpleResource via: resources kind: has_many - from: SimplePlan to: SimpleStop via: stops kind: has_many - from: SimplePlan to: SimpleObjective via: objective kind: has_one - from: SimplePlan to: TimeZone via: tz kind: has_one - from: SimplePlan to: DateTime via: createdAt kind: has_one - from: SimplePlan to: DateTime via: updatedAt kind: has_one - from: SimplePlan to: DateTime via: archivedAt kind: has_one - from: EnvelopedSimplePlan to: SimplePlan via: item kind: has_one - from: EnvelopedSimplePlan to: AgencyId via: agencyId kind: has_one - from: EnvelopedSimplePlan to: PlanId via: planId kind: has_one - from: EnvelopedSimplePlan to: PlanVersion via: planVersion kind: has_one