generated: '2026-09-06' method: derived source: openapi/accruent-maintenance-connection-openapi.yml note: Entity-relationship graph derived from the $ref links between the 60 definitions in the Maintenance Connection Swagger document. The model is built around a small set of core records - Asset, WorkOrder, Part, PurchaseOrder, Labor, Company, Classification - joined through generic EntityRefViewModel[T] stubs rather than embedded objects, which is why most relationships resolve to an EntityRefViewModel type carrying an ID and a description rather than to the full record. Accruent publishes no object reference documenting ID prefixes or key domains, so none are recorded. entity_count: 60 relationship_count: 170 root_entities: - AssetViewModel - WorkOrderViewModel - PartViewModel - PurchaseOrderViewModel - LaborViewModel - CompanyViewModel - ClassificationViewModel - SpecificationViewModel - LookupTableViewModel envelope: schema: ApiResponse wraps: IApiResult note: Every operation returns the ApiResponse envelope rather than a bare entity. entities: - name: AssetViewModel fields: 151 type: object - name: WorkOrderViewModel fields: 93 type: object - name: CompanyViewModel fields: 76 type: object - name: PurchaseOrderViewModel fields: 66 type: object - name: PartViewModel fields: 65 type: object - name: LaborViewModel fields: 51 type: object - name: PartTransactionViewModel fields: 47 type: object - name: WorkOrderPartActualViewModel fields: 43 type: object - name: WorkOrderPartEstimateViewModel fields: 42 type: object - name: PurchaseOrderLineItemViewModel fields: 36 type: object - name: PartLocationViewModel fields: 32 type: object - name: WorkOrderTaskViewModel fields: 32 type: object - name: ClassificationViewModel fields: 30 type: object - name: WorkOrderLaborCostActualViewModel fields: 30 type: object - name: AssetSpecificationViewModel fields: 21 type: object - name: WorkOrderMiscCostActualViewModel fields: 21 type: object - name: WorkOrderLaborCostEstimateViewModel fields: 20 type: object - name: PartVendorViewModel fields: 19 type: object - name: InvoiceViewModel fields: 18 type: object - name: WorkOrderMiscCostEstimateViewModel fields: 16 type: object - name: PurchaseOrderNoteViewModel fields: 15 type: object - name: WorkOrderAssignmentViewModel fields: 15 type: object - name: ReceiptViewModel fields: 12 type: object - name: AssetMeterHistoryViewModel fields: 10 type: object - name: LookupTableViewModel fields: 10 type: object - name: ReceiptLineItemViewModel fields: 10 type: object - name: LookupTableValueViewModel fields: 7 type: object - name: ShippingInfoViewModel fields: 6 type: object - name: AuthorizationStatusViewModel fields: 5 type: object - name: CompanyDetailsViewModel fields: 5 type: object - name: EntityRefViewModel[Asset] fields: 4 type: object - name: EntityRefViewModel[Classification] fields: 4 type: object - name: EntityRefViewModel[Labor] fields: 4 type: object - name: EntityRefViewModel[Department] fields: 4 type: object - name: EntityRefViewModel[Customer] fields: 4 type: object - name: EntityRefViewModel[Account] fields: 4 type: object - name: EntityRefViewModel[RepairCenter] fields: 4 type: object - name: EntityRefViewModel[Shop] fields: 4 type: object - name: EntityRefViewModel[Company] fields: 4 type: object - name: EntityRefViewModel[Zone] fields: 4 type: object - name: EntityRefViewModel[Category] fields: 4 type: object - name: EntityRefViewModel[AccessGroup] fields: 4 type: object - name: EntityRefViewModel[Shift] fields: 4 type: object - name: LogItemViewModel fields: 4 type: object - name: EntityRefViewModel[Location] fields: 4 type: object - name: EntityRefViewModel[Part] fields: 4 type: object - name: EntityRefViewModel[WorkOrder] fields: 4 type: object - name: EntityRefViewModel[Procedure] fields: 4 type: object - name: EntityRefViewModel[Project] fields: 4 type: object - name: EntityRefViewModel[Failure] fields: 4 type: object - name: EntityRefViewModel[Preventive] fields: 4 type: object - name: EntityRefViewModel[ExternalInterface] fields: 4 type: object - name: ExternalInterface fields: 3 type: object - name: ExternalInterfaceViewModel fields: 3 type: object - name: BillingInfoViewModel fields: 3 type: object - name: ApiResponse fields: 2 type: object - name: ValueDescriptionPairViewModel fields: 2 type: object - name: SchemaViewModel fields: 2 type: object - name: PropertyInfoViewModel fields: 2 type: object - name: IApiResult fields: 0 type: object relationships: - from: ApiResponse to: IApiResult kind: has_many via: Results - from: AssetViewModel to: EntityRefViewModel[Asset] kind: has_one via: ParentRef - from: AssetViewModel to: EntityRefViewModel[Classification] kind: has_one via: ClassificationRef - from: AssetViewModel to: EntityRefViewModel[Labor] kind: has_one via: OperatorRef - from: AssetViewModel to: EntityRefViewModel[Department] kind: has_one via: DepartmentRef - from: AssetViewModel to: EntityRefViewModel[Customer] kind: has_one via: CustomerRef - from: AssetViewModel to: EntityRefViewModel[Account] kind: has_one via: AccountRef - from: AssetViewModel to: EntityRefViewModel[RepairCenter] kind: has_one via: RepairCenterRef - from: AssetViewModel to: EntityRefViewModel[Shop] kind: has_one via: ShopRef - from: AssetViewModel to: EntityRefViewModel[Company] kind: has_one via: VendorRef - from: AssetViewModel to: EntityRefViewModel[Company] kind: has_one via: ManufacturerRef - from: AssetViewModel to: EntityRefViewModel[Company] kind: has_one via: ResponsibilitySafetyRef - from: AssetViewModel to: EntityRefViewModel[Company] kind: has_one via: ResponsibilityRepairRef - from: AssetViewModel to: EntityRefViewModel[Company] kind: has_one via: ResponsibilityPMRef - from: AssetViewModel to: EntityRefViewModel[Company] kind: has_one via: ServiceRepairRef - from: AssetViewModel to: EntityRefViewModel[Company] kind: has_one via: ServicePMRef - from: AssetViewModel to: EntityRefViewModel[Labor] kind: has_one via: ContactRef - from: AssetViewModel to: EntityRefViewModel[Zone] kind: has_one via: ZoneRef - from: AssetViewModel to: ValueDescriptionPairViewModel kind: has_one via: StatusDetails - from: AssetViewModel to: ValueDescriptionPairViewModel kind: has_one via: TypeDetails - from: AssetViewModel to: ValueDescriptionPairViewModel kind: has_one via: SystemDetails - from: AssetViewModel to: ValueDescriptionPairViewModel kind: has_one via: PriorityDetails - from: AssetViewModel to: ValueDescriptionPairViewModel kind: has_one via: TechnologyDetails - from: AssetViewModel to: ValueDescriptionPairViewModel kind: has_one via: Meter1UnitsDetails - from: AssetViewModel to: ValueDescriptionPairViewModel kind: has_one via: Meter2UnitsDetails - from: AssetViewModel to: ValueDescriptionPairViewModel kind: has_one via: PurchaseTypeDetails - from: AssetViewModel to: ValueDescriptionPairViewModel kind: has_one via: ClassIndustryDetails - from: AssetViewModel to: ValueDescriptionPairViewModel kind: has_one via: RiskAssessmentGroupDetails - from: AssetViewModel to: ValueDescriptionPairViewModel kind: has_one via: ConstructionCodeDetails - from: AssetViewModel to: ValueDescriptionPairViewModel kind: has_one via: ISOProtectionDetails - from: AssetViewModel to: ValueDescriptionPairViewModel kind: has_one via: AutoSprinklerDetails - from: AssetViewModel to: ValueDescriptionPairViewModel kind: has_one via: SmokeAlarmDetails - from: AssetViewModel to: ValueDescriptionPairViewModel kind: has_one via: HeatAlarmDetails - from: AssetViewModel to: ValueDescriptionPairViewModel kind: has_one via: PMCycleStartByDetails - from: AssetViewModel to: ValueDescriptionPairViewModel kind: has_one via: ModelLineDetails - from: AssetViewModel to: ValueDescriptionPairViewModel kind: has_one via: ModelSeriesDetails - from: AssetViewModel to: ValueDescriptionPairViewModel kind: has_one via: SystemPlatformDetails - from: ClassificationViewModel to: ValueDescriptionPairViewModel kind: has_one via: TypeDetails - from: ClassificationViewModel to: ValueDescriptionPairViewModel kind: has_one via: PriorityDetails - from: ClassificationViewModel to: ValueDescriptionPairViewModel kind: has_one via: Meter1UnitsDetails - from: ClassificationViewModel to: ValueDescriptionPairViewModel kind: has_one via: Meter2UnitsDetails - from: ClassificationViewModel to: ValueDescriptionPairViewModel kind: has_one via: ModelLineDetails - from: ClassificationViewModel to: ValueDescriptionPairViewModel kind: has_one via: ModelSeriesDetails - from: ClassificationViewModel to: ValueDescriptionPairViewModel kind: has_one via: SystemPlatformDetails - from: ClassificationViewModel to: EntityRefViewModel[Company] kind: has_one via: ManufacturerRef - from: CompanyViewModel to: ValueDescriptionPairViewModel kind: has_one via: TypeDetails - from: CompanyViewModel to: ValueDescriptionPairViewModel kind: has_one via: TaxExemptDetails - from: CompanyViewModel to: ValueDescriptionPairViewModel kind: has_one via: ShipViaDetails - from: CompanyViewModel to: ValueDescriptionPairViewModel kind: has_one via: FreightTermsDetails - from: CompanyViewModel to: ValueDescriptionPairViewModel kind: has_one via: PaymentTermsDetails - from: CompanyViewModel to: EntityRefViewModel[Account] kind: has_one via: AccountRef - from: CompanyViewModel to: EntityRefViewModel[Category] kind: has_one via: CategoryRef - from: LaborViewModel to: ValueDescriptionPairViewModel kind: has_one via: LaborTypeDetails - from: LaborViewModel to: EntityRefViewModel[Labor] kind: has_one via: CraftRef - from: LaborViewModel to: ValueDescriptionPairViewModel kind: has_one via: CrewDetails - from: LaborViewModel to: EntityRefViewModel[AccessGroup] kind: has_one via: AccessGroupRef - from: LaborViewModel to: EntityRefViewModel[Company] kind: has_one via: CompanyRef - from: LaborViewModel to: EntityRefViewModel[RepairCenter] kind: has_one via: RepairCenterRef - from: LaborViewModel to: EntityRefViewModel[Shop] kind: has_one via: ShopRef - from: LaborViewModel to: EntityRefViewModel[Shift] kind: has_one via: ShiftRef - from: LaborViewModel to: EntityRefViewModel[Labor] kind: has_one via: SupervisorRef - from: LaborViewModel to: EntityRefViewModel[Account] kind: has_one via: AccountRef - from: LaborViewModel to: EntityRefViewModel[Category] kind: has_one via: CategoryRef - from: LaborViewModel to: ValueDescriptionPairViewModel kind: has_one via: EmpStatusDetails - from: LaborViewModel to: EntityRefViewModel[Department] kind: has_one via: DepartmentRef - from: LogItemViewModel to: AuthorizationStatusViewModel kind: has_one via: AuthorizationStatus - from: AuthorizationStatusViewModel to: ValueDescriptionPairViewModel kind: has_one via: AuthStatusDetails - from: PartLocationViewModel to: EntityRefViewModel[Location] kind: has_one via: LocationRef - from: PartLocationViewModel to: ValueDescriptionPairViewModel kind: has_one via: OrderUnitsDetails - from: PartLocationViewModel to: ValueDescriptionPairViewModel kind: has_one via: IssueUnitsDetails - from: PartLocationViewModel to: EntityRefViewModel[Account] kind: has_one via: AccountRef - from: PartLocationViewModel to: ValueDescriptionPairViewModel kind: has_one via: ABCCodeDetails - from: PartLocationViewModel to: ValueDescriptionPairViewModel kind: has_one via: CycleCountDetails - from: PartLocationViewModel to: ValueDescriptionPairViewModel kind: has_one via: CostRuleDetails - from: PartViewModel to: EntityRefViewModel[Category] kind: has_one via: CategoryRef - from: PartViewModel to: EntityRefViewModel[Classification] kind: has_one via: ClassificationRef - from: PartViewModel to: EntityRefViewModel[Company] kind: has_one via: ManufacturerRef - from: PartViewModel to: ValueDescriptionPairViewModel kind: has_one via: IssueUnitsDetails - from: PartViewModel to: ValueDescriptionPairViewModel kind: has_one via: CostRuleDetails - from: PartViewModel to: ValueDescriptionPairViewModel kind: has_one via: OrderUnitsDetails - from: PartViewModel to: ValueDescriptionPairViewModel kind: has_one via: WarrantyFromDetails - from: PartTransactionViewModel to: ValueDescriptionPairViewModel kind: has_one via: TypeDetails - from: PartTransactionViewModel to: ValueDescriptionPairViewModel kind: has_one via: MasterTypeDetails - from: PartTransactionViewModel to: ValueDescriptionPairViewModel kind: has_one via: OrderUnitsDetails - from: PartVendorViewModel to: EntityRefViewModel[Company] kind: has_one via: CompanyRef - from: PartVendorViewModel to: ValueDescriptionPairViewModel kind: has_one via: OrderUnitsDetails - from: PartVendorViewModel to: ValueDescriptionPairViewModel kind: has_one via: TaxCodeDetails - from: PartVendorViewModel to: EntityRefViewModel[Location] kind: has_one via: LocationRef - from: PurchaseOrderLineItemViewModel to: EntityRefViewModel[Part] kind: has_one via: PartRef - from: PurchaseOrderLineItemViewModel to: EntityRefViewModel[Location] kind: has_one via: LocationRef - from: PurchaseOrderLineItemViewModel to: EntityRefViewModel[WorkOrder] kind: has_one via: WorkOrderRef - from: PurchaseOrderLineItemViewModel to: EntityRefViewModel[Account] kind: has_one via: AccountRef - from: PurchaseOrderLineItemViewModel to: EntityRefViewModel[Asset] kind: has_one via: AssetRef - from: PurchaseOrderLineItemViewModel to: EntityRefViewModel[Labor] kind: has_one via: LaborRef - from: PurchaseOrderLineItemViewModel to: ValueDescriptionPairViewModel kind: has_one via: IssueUnitsDetails - from: PurchaseOrderLineItemViewModel to: ValueDescriptionPairViewModel kind: has_one via: OrderUnitsDetails - from: PurchaseOrderNoteViewModel to: AuthorizationStatusViewModel kind: has_one via: AuthorizationStatus - from: PurchaseOrderViewModel to: ValueDescriptionPairViewModel kind: has_one via: StatusDetails - from: PurchaseOrderViewModel to: ValueDescriptionPairViewModel kind: has_one via: AuthStatusDetails - from: PurchaseOrderViewModel to: ValueDescriptionPairViewModel kind: has_one via: SubStatusDetails - from: PurchaseOrderViewModel to: AuthorizationStatusViewModel kind: has_one via: AuthorizationStatus - from: PurchaseOrderViewModel to: EntityRefViewModel[Company] kind: has_one via: VendorRef - from: PurchaseOrderViewModel to: EntityRefViewModel[Labor] kind: has_one via: RequesterRef - from: PurchaseOrderViewModel to: EntityRefViewModel[Company] kind: has_one via: BuyerCompanyRef - from: PurchaseOrderViewModel to: EntityRefViewModel[Labor] kind: has_one via: BuyerRef - from: PurchaseOrderViewModel to: EntityRefViewModel[RepairCenter] kind: has_one via: RepairCenterRef - from: PurchaseOrderViewModel to: EntityRefViewModel[Department] kind: has_one via: DepartmentRef - from: PurchaseOrderViewModel to: EntityRefViewModel[Customer] kind: has_one via: CustomerRef - from: PurchaseOrderViewModel to: ValueDescriptionPairViewModel kind: has_one via: PriorityDetails - from: PurchaseOrderViewModel to: ShippingInfoViewModel kind: has_one via: ShippingInfo - from: PurchaseOrderViewModel to: BillingInfoViewModel kind: has_one via: BillingInfo - from: PurchaseOrderViewModel to: EntityRefViewModel[Account] kind: has_one via: AccountRef - from: ShippingInfoViewModel to: CompanyDetailsViewModel kind: has_one via: ShipToCompany - from: BillingInfoViewModel to: CompanyDetailsViewModel kind: has_one via: BillToCompany - from: CompanyDetailsViewModel to: EntityRefViewModel[Company] kind: has_one via: CompanyRef - from: ReceiptViewModel to: EntityRefViewModel[Labor] kind: has_one via: ReceivedByRef - from: SchemaViewModel to: PropertyInfoViewModel kind: has_many via: Properties - from: WorkOrderAssignmentViewModel to: EntityRefViewModel[Labor] kind: has_one via: LaborRef - from: WorkOrderLaborCostActualViewModel to: ValueDescriptionPairViewModel kind: has_one via: LaborTypeDetails - from: WorkOrderLaborCostActualViewModel to: EntityRefViewModel[Labor] kind: has_one via: LaborRef - from: WorkOrderLaborCostActualViewModel to: EntityRefViewModel[Account] kind: has_one via: AccountRef - from: WorkOrderLaborCostActualViewModel to: EntityRefViewModel[Category] kind: has_one via: CategoryRef - from: WorkOrderLaborCostEstimateViewModel to: ValueDescriptionPairViewModel kind: has_one via: LaborTypeDetails - from: WorkOrderLaborCostEstimateViewModel to: EntityRefViewModel[Labor] kind: has_one via: LaborRef - from: WorkOrderLaborCostEstimateViewModel to: EntityRefViewModel[Account] kind: has_one via: AccountRef - from: WorkOrderLaborCostEstimateViewModel to: EntityRefViewModel[Category] kind: has_one via: CategoryRef - from: WorkOrderMiscCostActualViewModel to: EntityRefViewModel[Labor] kind: has_one via: LaborRef - from: WorkOrderMiscCostActualViewModel to: EntityRefViewModel[Account] kind: has_one via: AccountRef - from: WorkOrderMiscCostActualViewModel to: EntityRefViewModel[Category] kind: has_one via: CategoryRef - from: WorkOrderMiscCostActualViewModel to: EntityRefViewModel[Company] kind: has_one via: CompanyRef - from: WorkOrderMiscCostEstimateViewModel to: EntityRefViewModel[Labor] kind: has_one via: LaborRef - from: WorkOrderMiscCostEstimateViewModel to: EntityRefViewModel[Account] kind: has_one via: AccountRef - from: WorkOrderMiscCostEstimateViewModel to: EntityRefViewModel[Category] kind: has_one via: CategoryRef - from: WorkOrderMiscCostEstimateViewModel to: EntityRefViewModel[Company] kind: has_one via: CompanyRef - from: WorkOrderPartActualViewModel to: EntityRefViewModel[Part] kind: has_one via: PartRef - from: WorkOrderPartActualViewModel to: EntityRefViewModel[Location] kind: has_one via: LocationRef - from: WorkOrderPartActualViewModel to: EntityRefViewModel[Account] kind: has_one via: AccountRef - from: WorkOrderPartActualViewModel to: EntityRefViewModel[Category] kind: has_one via: CategoryRef - from: WorkOrderPartEstimateViewModel to: EntityRefViewModel[Part] kind: has_one via: PartRef - from: WorkOrderPartEstimateViewModel to: EntityRefViewModel[Location] kind: has_one via: LocationRef - from: WorkOrderPartEstimateViewModel to: EntityRefViewModel[Account] kind: has_one via: AccountRef - from: WorkOrderPartEstimateViewModel to: EntityRefViewModel[Category] kind: has_one via: CategoryRef - from: WorkOrderViewModel to: ValueDescriptionPairViewModel kind: has_one via: AuthStatusDetails - from: WorkOrderViewModel to: AuthorizationStatusViewModel kind: has_one via: AuthorizationStatus - from: WorkOrderViewModel to: ValueDescriptionPairViewModel kind: has_one via: TypeDetails - from: WorkOrderViewModel to: ValueDescriptionPairViewModel kind: has_one via: StatusDetails - from: WorkOrderViewModel to: ValueDescriptionPairViewModel kind: has_one via: SubStatusDetails - from: WorkOrderViewModel to: ValueDescriptionPairViewModel kind: has_one via: PriorityDetails - from: WorkOrderViewModel to: ValueDescriptionPairViewModel kind: has_one via: ReferenceDetails - from: WorkOrderViewModel to: EntityRefViewModel[RepairCenter] kind: has_one via: RepairCenterRef - from: WorkOrderViewModel to: EntityRefViewModel[Asset] kind: has_one via: AssetRef - from: WorkOrderViewModel to: EntityRefViewModel[Account] kind: has_one via: AccountRef - from: WorkOrderViewModel to: EntityRefViewModel[Procedure] kind: has_one via: ProcedureRef - from: WorkOrderViewModel to: EntityRefViewModel[Labor] kind: has_one via: RequesterRef - from: WorkOrderViewModel to: EntityRefViewModel[Location] kind: has_one via: StockRoomRef - from: WorkOrderViewModel to: EntityRefViewModel[Location] kind: has_one via: ToolRoomRef - from: WorkOrderViewModel to: EntityRefViewModel[Labor] kind: has_one via: SupervisorRef - from: WorkOrderViewModel to: EntityRefViewModel[Project] kind: has_one via: ProjectRef - from: WorkOrderViewModel to: EntityRefViewModel[Shop] kind: has_one via: ShopRef - from: WorkOrderViewModel to: EntityRefViewModel[Shift] kind: has_one via: ShiftRef - from: WorkOrderViewModel to: EntityRefViewModel[Department] kind: has_one via: DepartmentRef - from: WorkOrderViewModel to: EntityRefViewModel[Customer] kind: has_one via: CustomerRef - from: WorkOrderViewModel to: EntityRefViewModel[Failure] kind: has_one via: ProblemRef - from: WorkOrderViewModel to: EntityRefViewModel[Failure] kind: has_one via: FailureRef - from: WorkOrderViewModel to: EntityRefViewModel[Failure] kind: has_one via: SolutionRef - from: WorkOrderViewModel to: EntityRefViewModel[Preventive] kind: has_one via: PMRef - from: WorkOrderViewModel to: EntityRefViewModel[Category] kind: has_one via: CategoryRef - from: WorkOrderViewModel to: EntityRefViewModel[Labor] kind: has_one via: TakenByRef - from: WorkOrderViewModel to: EntityRefViewModel[Zone] kind: has_one via: ZoneRef - from: WorkOrderViewModel to: EntityRefViewModel[ExternalInterface] kind: has_one via: ExternalInterfaceRef