generated: '2026-10-07' method: derived generator: derive-data-model.py source: - openapi/carbon-arc-openapi.json notation: has_one = property $ref; has_many = array of $ref; belongs_to = _id field summary: entities: 133 entities_in_spec: 133 relationships: 63 entities: - name: AccessRequestCreate fields: 2 - name: AccessRequestResponse fields: 7 - name: AdminAssetResponse fields: 18 description: Asset response with additional admin fields (external_id, timestamps, vote_count). - name: AdminListAssetsResponse fields: 2 - name: AssetDetailResponse fields: 16 description: Full asset detail — extends AssetResponse with samples and data dictionary. - name: AssetMetadataResponse fields: 18 - name: AssetResponse fields: 14 description: Core asset fields plus optional metadata. Built from ORM instances via model_validate. - name: BlockDatasetCut fields: 5 - name: BlockDatasetCutsEntry fields: 2 description: Lag chips shown in the CAMS pricing card under the cut selector - name: BlockDatasetCutsResponse fields: 2 - name: BlockDatasetEntry fields: 15 - name: BlockDatasetsResponse fields: 1 - name: Body_collection_framework_metadata_v2_framework_metadata_post fields: 2 - name: Body_create_framework_order_v2_framework_buy_post fields: 4 - name: Body_framework_filter_options_v2_framework_filters__filter_key__options_post fields: 2 - name: Body_framework_filters_batch_v2_framework_filters_batch_post fields: 3 - name: Body_framework_filters_v2_framework_filters_post fields: 2 - name: Body_get_insights_list_batch_v2_ontology_insights_batch_post fields: 2 - name: Body_preview_framework_code_v2_framework_code_preview_post fields: 2 - name: Body_update_framework_name_v2_framework__framework_id__name_patch fields: 2 - name: Body_update_user_order_display_name_v2_clients_me_orders__order_id__patch fields: 2 - name: BrowseRoleResult fields: 2 - name: BuilderResponse fields: 1 - name: BuilderSection fields: 3 description: One section of the builder's first paint. - name: BulkBrowseResponse fields: 2 - name: CakeTaskScheduleItem fields: 3 - name: CakeTaskScheduleResponse fields: 1 - name: CatalogAssetAdminUpdate fields: 5 description: Partial update for admin-controlled catalog asset fields. - name: CatalogClientAuditLogResponse fields: 7 - name: CatalogClientCreate fields: 3 - name: CatalogClientResponse fields: 5 - name: CatalogClientUpdate fields: 2 - name: Category fields: 3 - name: CategoryResponse fields: 1 - name: ClientBalanceResponse fields: 4 - name: CodeResponse fields: 1 - name: DataDictionary fields: 4 - name: DataFrameResponse fields: 9 - name: DataLibrarySource fields: 21 - name: DataLibrarySourcesResponse fields: 5 - name: DataSource fields: 9 - name: DataSourcesResponse fields: 5 - name: DatasetMatch fields: 7 description: A matched data asset with relevance score. - name: EntityCategoryDetail fields: 6 - name: EntityCategoryResponse fields: 1 - name: EntityCategoryResponseItem fields: 2 - name: EntityDetailsResponse fields: 7 - name: EntityInsightsResponse fields: 1 - name: EntityMapResponseItem fields: 3 - name: EntityResponse fields: 5 - name: EntityResponseItem fields: 13 - name: ExampleTableResponse fields: 2 - name: ExpiryScheduleItem fields: 3 - name: FilterOptionValue fields: 2 - name: FrameworkCollectionResponse fields: 3 - name: FrameworkDataStatus fields: 9 - name: FrameworkEntityRequest fields: 3 - name: FrameworkEventRequest fields: 4 description: Minimal event primitive for framework compositions. - name: FrameworkFilter fields: 10 - name: FrameworkFiltersBatchItem fields: 4 description: One framework's outcome, positional so the caller can rejoin its input. - name: FrameworkFiltersBatchResponse fields: 1 - name: FrameworkFiltersResponse fields: 2 - name: FrameworkInsightRequest fields: 2 - name: FrameworkMetadataResponse fields: 14 - name: FrameworkOrderCreate fields: 1 - name: FrameworkOrderRead fields: 16 - name: FrameworkRequest fields: 5 - name: GrantBucketAccessRequest fields: 4 - name: GrantBucketAccessResponse fields: 7 - name: GrantDatasetRequest fields: 4 - name: GrantDatasetResponse fields: 8 - name: GraphSource fields: 20 - name: GraphSourcesResponse fields: 4 - name: HTTPValidationError fields: 1 - name: Insight fields: 5 - name: InsightDetailsResponse fields: 1 - name: InsightLinkedResponse fields: 2 description: Insight ids linked to the requested entity / event scope. - name: InsightListResponse fields: 3 - name: InsightMapResponseItem fields: 4 - name: InsightResponse fields: 5 - name: InsightResponseItem fields: 28 - name: InsightSearchIdsResponse fields: 3 description: Semantically-matched insight ids, **in relevance order**. - name: InsightStoreItem fields: 20 description: Slim insight row for the whole-corpus store. - name: InsightStoreResponse fields: 3 description: Whole insight corpus, served in one shot for client-side search. - name: InsightsBatchEntity fields: 2 description: One (entity, representation) the caller wants a listing for. - name: InsightsBatchItem fields: 4 description: One entity's listing, keyed so the caller does not rely on order. - name: InsightsBatchRequest fields: 18 description: Shared listing parameters plus the entities to fan out over. - name: InsightsBatchResponse fields: 1 - name: ListAssetsResponse fields: 2 - name: MatchResult fields: 3 description: Result of the AI-powered data asset matching. - name: MaterializedPrism fields: 12 description: 'One prism as a customer reads it: display copy plus the series from its' - name: MaterializedPrismsResponse fields: 1 description: Prisms matching a filter, each at its current published snapshot. - name: OnboardRequest fields: 2 - name: OnboardResponse fields: 3 - name: OntologyVersionResponse fields: 1 - name: OrderInformationResponse fields: 13 - name: OrderPaginatedResponse fields: 5 - name: OrderUpdateResponse fields: 8 - name: PanelDebiasingInfo fields: 3 - name: PersonaInput fields: 4 description: Input describing the user's persona and data needs. - name: PublicPrismsResponse fields: 4 description: The precomputed snapshot the public marketing page renders. Only - name: QueryJobColumn fields: 2 - name: QueryJobResponse fields: 12 - name: QueryJobResult fields: 3 description: A finished job's rows, in the same column/row *structure* as - name: ResetCredentialsRequest fields: 3 - name: ResetCredentialsResponse fields: 3 - name: RevokeBucketAccessRequest fields: 4 - name: RevokeBucketAccessResponse fields: 7 - name: RevokeDatasetRequest fields: 4 - name: RevokeDatasetResponse fields: 6 - name: SchemaColumn fields: 2 - name: Subject fields: 8 - name: SubjectInsightsResponse fields: 1 - name: SubjectResponse fields: 1 - name: TimeSeriesEntry fields: 7 - name: TimeSeriesPoint fields: 2 - name: TimeSeriesResponse fields: 9 - name: TopicInsightsResponse fields: 1 - name: TrackingEventRequest fields: 7 - name: TranscriptDetailItem fields: 13 - name: TranscriptEntity fields: 4 description: Ontology entity tag from the upload UI — identifier + display label. - name: TranscriptEntityCount fields: 3 - name: TranscriptListItem fields: 12 - name: TranscriptListResponse fields: 4 - name: TranscriptPurchaseResponse fields: 5 - name: TranscriptRegionCount fields: 2 - name: ValidationError fields: 5 - name: VerifyBucketAccessRequest fields: 3 - name: VerifyBucketAccessResponse fields: 10 - name: VerifyDatasetAccessRequest fields: 4 - name: VerifyDatasetAccessResponse fields: 9 - name: VoteResponse fields: 3 - name: WildCardEntityRequest fields: 2 relationships: - from: AdminAssetResponse to: AssetMetadataResponse type: has_one via: metadata - from: AdminListAssetsResponse to: AdminAssetResponse type: has_many via: assets - from: AssetDetailResponse to: AssetMetadataResponse type: has_one via: metadata - from: AssetResponse to: AssetMetadataResponse type: has_one via: metadata - from: BlockDatasetCutsResponse to: BlockDatasetCutsEntry type: has_many via: cuts - from: BlockDatasetEntry to: BlockDatasetCut type: has_many via: cuts - from: BlockDatasetsResponse to: BlockDatasetEntry type: has_many via: datasets - from: Body_collection_framework_metadata_v2_framework_metadata_post to: FrameworkRequest type: has_many via: frameworks - from: Body_create_framework_order_v2_framework_buy_post to: FrameworkOrderCreate type: has_one via: order - from: Body_framework_filter_options_v2_framework_filters__filter_key__options_post to: FrameworkRequest type: has_one via: framework - from: Body_framework_filters_batch_v2_framework_filters_batch_post to: FrameworkRequest type: has_many via: frameworks - from: Body_framework_filters_v2_framework_filters_post to: FrameworkRequest type: has_one via: framework - from: Body_get_insights_list_batch_v2_ontology_insights_batch_post to: InsightsBatchRequest type: has_one via: payload - from: Body_preview_framework_code_v2_framework_code_preview_post to: FrameworkRequest type: has_one via: framework - from: BulkBrowseResponse to: BrowseRoleResult type: has_many via: roles - from: CakeTaskScheduleResponse to: CakeTaskScheduleItem type: has_many via: schedules - from: CategoryResponse to: Category type: has_many via: items - from: ClientBalanceResponse to: ExpiryScheduleItem type: has_many via: expiry_schedule - from: DataLibrarySource to: Subject type: belongs_to via: subject_id - from: DataLibrarySourcesResponse to: DataLibrarySource type: has_many via: datasources - from: DataSourcesResponse to: DataSource type: has_many via: datasources - from: EntityCategoryResponse to: EntityCategoryResponseItem type: has_many via: items - from: EntityCategoryResponseItem to: EntityCategoryDetail type: has_many via: representations - from: FrameworkCollectionResponse to: FrameworkMetadataResponse type: has_many via: frameworks - from: FrameworkFiltersBatchResponse to: FrameworkFiltersBatchItem type: has_many via: results - from: FrameworkFiltersResponse to: FrameworkFilter type: has_many via: filters - from: FrameworkInsightRequest to: Insight type: belongs_to via: insight_id - from: FrameworkMetadataResponse to: FrameworkRequest type: has_one via: payload - from: FrameworkOrderCreate to: FrameworkRequest type: has_many via: frameworks - from: FrameworkRequest to: WildCardEntityRequest type: has_one via: entities - from: FrameworkRequest to: FrameworkInsightRequest type: has_one via: insight - from: GraphSource to: Subject type: belongs_to via: subject_id - from: GraphSourcesResponse to: GraphSource type: has_many via: datasources - from: HTTPValidationError to: ValidationError type: has_many via: detail - from: InsightLinkedResponse to: Insight type: belongs_to via: insight_ids - from: InsightListResponse to: Insight type: has_many via: insights - from: InsightMapResponseItem to: Subject type: belongs_to via: subject_id - from: InsightResponse to: InsightResponseItem type: has_many via: items - from: InsightResponseItem to: Insight type: belongs_to via: insight_id - from: InsightResponseItem to: Subject type: belongs_to via: subject_id - from: InsightSearchIdsResponse to: Insight type: belongs_to via: insight_ids - from: InsightStoreItem to: Insight type: belongs_to via: insight_id - from: InsightStoreItem to: Subject type: belongs_to via: subject_id - from: InsightStoreResponse to: InsightStoreItem type: has_many via: items - from: InsightsBatchItem to: InsightResponse type: has_one via: result - from: InsightsBatchRequest to: InsightsBatchEntity type: has_many via: entities - from: InsightsBatchRequest to: Subject type: belongs_to via: subject_ids - from: InsightsBatchResponse to: InsightsBatchItem type: has_many via: items - from: ListAssetsResponse to: AssetResponse type: has_many via: assets - from: MatchResult to: PersonaInput type: has_one via: persona - from: MatchResult to: DatasetMatch type: has_many via: matches - from: MaterializedPrism to: Insight type: belongs_to via: insight_id - from: MaterializedPrismsResponse to: MaterializedPrism type: has_many via: prisms - from: OrderPaginatedResponse to: FrameworkOrderRead type: has_many via: items - from: PanelDebiasingInfo to: Insight type: belongs_to via: insight_id - from: QueryJobResponse to: QueryJobResult type: has_one via: result - from: QueryJobResult to: QueryJobColumn type: has_many via: columns - from: SubjectResponse to: Subject type: has_many via: items - from: TimeSeriesEntry to: TimeSeriesPoint type: has_many via: series - from: TimeSeriesResponse to: TimeSeriesEntry type: has_many via: data - from: TranscriptDetailItem to: TranscriptEntity type: has_many via: entities - from: TranscriptListItem to: TranscriptEntity type: has_many via: entities - from: TranscriptListResponse to: TranscriptListItem type: has_many via: transcripts