# Derived data model generated: '2026-07-21' method: derived source: openapi/wherobots-cloud-openapi-original.json note: Entity-relationship graph derived from OpenAPI component schema $refs and id-reference fields (206 schemas). entity_count: 156 key_entities: - ApiKey - Catalog - Namespace - Organization - Customer - Coupon - RunView - AuditLogEventPublic relationships: - from: AwsGlueForeignCatalogCreate to: ForeignCatalogAccessType kind: has_one via: accessType - from: AwsGlueForeignCatalogRead to: ForeignCatalogAccessType kind: has_one via: accessType - from: AwsGlueForeignCatalogRead to: CloudConnectionRead kind: has_one via: cloudConnection - from: AwsMarketplaceSubscription to: SubscriptionState kind: has_one via: state - from: BindingAccessResult to: BindingAccessStatus kind: has_one via: status - from: BindingAccessResult to: BindingAccessChecks kind: has_one via: checks - from: Body_createSolutionNotebook to: RuntimeId kind: has_one via: recommendedRuntime - from: Body_replaceSolutionNotebook to: RuntimeId kind: has_one via: recommendedRuntime - from: Body_updateFeatureOverride to: WherobotsCloudFeature kind: has_one via: feature - from: Catalog to: CatalogType kind: has_one via: type - from: CloudConnectionRead to: CloudProvider kind: has_one via: cloudProvider - from: CloudConnectionVerifyResponse to: RoleAssumptionResult kind: has_one via: roleAssumption - from: ComputeRegion to: Provider kind: has_one via: cloud - from: Coupon to: Plan kind: has_many via: plans - from: Coupon to: WherobotsCloudFeature kind: has_many via: features - from: CreateRunPayload-Input to: RunEnvironment-Input kind: has_one via: environment - from: CreateRunPayload-Output to: RunEnvironment-Output kind: has_one via: environment - from: CursorPage__T_Customized_AuditLogEventPublic_ to: AuditLogEventPublic kind: has_many via: items - from: CursorPage__T_Customized_RunView_ to: RunView kind: has_many via: items - from: Customer to: Role-Output kind: has_many via: roles - from: Customer to: Policy kind: has_many via: policies - from: DependantLibrary to: SourceType kind: has_one via: sourceType - from: Directory to: FileEntry kind: has_many via: files - from: DirectoryListingResult to: FileEntry kind: has_many via: items - from: EnvironmentPreset to: DependantLibrary kind: has_many via: dependencies - from: EnvironmentPresetInput to: DependantLibrary kind: has_many via: dependencies - from: ErrorBody to: ErrorInfo kind: has_many via: errors - from: ErrorInfo to: ErrorClass kind: has_one via: code - from: ExplorerUICatalog to: ExplorerUIDatabase kind: has_many via: databases - from: ExplorerUIDatabase to: ExplorerUITable kind: has_many via: tables - from: FileDependency-Input to: DependencySourceType kind: has_one via: sourceType - from: FileDependency-Output to: DependencySourceType kind: has_one via: sourceType - from: FileDependency-Output to: DependencyFileType kind: has_one via: fileType - from: FileEntry to: FileEntryType kind: has_one via: type - from: GetCatalogHierarchyResponse to: ExplorerUICatalog kind: has_many via: catalogs - from: HumanPrincipal to: Role-Output kind: has_many via: roles - from: HumanPrincipal to: Policy kind: has_many via: policies - from: InstantMetric to: DataValue kind: has_one via: data - from: InstantMetric to: DataFormat kind: has_one via: format - from: InternalDevelopmentSubscription to: SubscriptionState kind: has_one via: state - from: JupyterConfigHint to: IntHint kind: has_one via: diskSizeGB - from: JupyterConfigHint to: VersionHint kind: has_one via: versions - from: JupyterConfigHint to: RegionsHint kind: has_one via: regions - from: JupyterConfigHint to: RuntimesHint kind: has_one via: runtimes - from: JupyterConfigHint to: RuntimeTagsHint kind: has_one via: runtimeTags - from: JupyterConfigHint to: IntHint kind: has_one via: idleTimeoutMinutes - from: JupyterKubeApp to: AppType kind: has_one via: appType - from: JupyterKubeApp to: AppStatus kind: has_one via: status - from: JupyterKubeApp to: KubeAppEvent kind: has_many via: events - from: JupyterListModel to: AppStatus kind: has_one via: status - from: JupyterListModel to: JupyterListModelEvent kind: has_many via: events - from: ListCatalogsResponse to: Catalog kind: has_many via: catalogs - from: ListNamespacesResponse to: Namespace kind: has_many via: namespaces - from: ListTablesResponse to: TableListItem kind: has_many via: tables - from: LogsResponse to: LogItem kind: has_many via: items - from: MetricDetails_InstantMetric_ to: InstantMetric kind: has_one via: metric - from: MetricDetails_SeriesMetric_ to: SeriesMetric kind: has_one via: metric - from: NotebookMetadata to: RuntimeId kind: has_one via: recommendedRuntime - from: OperationTaskPayload to: OperationTaskName kind: has_one via: taskName - from: OrgListingEntry to: OrganizationState kind: has_one via: state