{"openapi":"3.1.0","info":{"title":"Carbon Arc API Documentation","description":"\n# Introduction\n\nCarbon Arc's [Insights Exchange](https://platform.carbonarc.co/) provides a comprehensive consumption-based platform for accessing decision-making data. Our platform offers extensive collections of insights and analyses that enable organizations to build data-driven frameworks and products while only paying for what they consume.\n\n### Key features\n- **Consumption-based pricing**: Pay only for the data you access and use\n- **Entity discovery**: Find and analyze brands, companies, locations, and people entities\n- **Framework building**: Create custom data products and analytical frameworks\n- **Real-time insights**: Access up-to-date insights and analyses\n- **Flexible integration**: RESTful APIs designed for seamless application integration\n\n### Resources\n- **[Python SDK](https://pypi.org/project/carbonarc/)** - Official Python SDK for Carbon Arc APIs\n- **[Tutorials](https://github.com/Carbon-Arc/carbonarc-tutorials)** - Code examples and integration guides\n- **[Documentation](https://docs.carbonarc.ai/)** - Complete documentation reference\n","version":"v2","x-logo":{"url":"/static/logo_light.png"}},"paths":{"/v2/ontology/entities/{entity_id}":{"get":{"tags":["Ontology"],"summary":"Get entity by id","operationId":"get_entity_by_id_v2_ontology_entities__entity_id__get","parameters":[{"name":"entity_id","in":"path","required":true,"schema":{"type":"integer","description":"Entity ID","title":"Entity Id"},"description":"Entity ID"},{"name":"entity_representation","in":"query","required":true,"schema":{"type":"string","description":"Entity representation","title":"Entity Representation"},"description":"Entity representation"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityDetailsResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/ontology/entity/{entity_id}/insights":{"get":{"tags":["Ontology"],"summary":"Insights For Entity","operationId":"insights_for_entity_v2_ontology_entity__entity_id__insights_get","parameters":[{"name":"entity_id","in":"path","required":true,"schema":{"type":"integer","title":"Entity Id"}},{"name":"entity_representation","in":"query","required":true,"schema":{"type":"string","description":"Entity representation","title":"Entity Representation"},"description":"Entity representation"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search term","title":"Search"},"description":"Search term"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Limit the number of results","default":100,"title":"Limit"},"description":"Limit the number of results"},{"name":"min_score","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Minimum score for search results","default":0.0,"title":"Min Score"},"description":"Minimum score for search results"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsightListResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/ontology/insight/{insight_id}/entities":{"get":{"tags":["Ontology"],"summary":"Entities For Insight","operationId":"entities_for_insight_v2_ontology_insight__insight_id__entities_get","parameters":[{"name":"insight_id","in":"path","required":true,"schema":{"type":"integer","title":"Insight Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","description":"Page size","default":25,"title":"Size"},"description":"Page size"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityInsightsResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/ontology/entity-map":{"get":{"tags":["Ontology"],"summary":"Get Entity Map","operationId":"get_entity_map_v2_ontology_entity_map_get","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityMapResponse"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/ontology/categories":{"get":{"tags":["Ontology"],"summary":"Get Categories","operationId":"get_categories_v2_ontology_categories_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","title":"Page","description":"Page number.","default":1},"description":"Page number."},{"name":"size","in":"query","required":false,"schema":{"type":"integer","title":"Size","description":"Page size.","default":25},"description":"Page size."}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategoryResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/ontology/categories/{category_label}":{"get":{"tags":["Ontology"],"summary":"Get Category","operationId":"get_category_v2_ontology_categories__category_label__get","parameters":[{"name":"category_label","in":"path","required":true,"schema":{"type":"string","title":"Category Label"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","title":"Page","description":"Page number.","default":1},"description":"Page number."},{"name":"size","in":"query","required":false,"schema":{"type":"integer","title":"Size","description":"Page size.","default":25},"description":"Page size."}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityCategoryResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/ontology/categories/{entity_id}/{entity_representation}":{"get":{"tags":["Ontology"],"summary":"Get Categories From Entity","operationId":"get_categories_from_entity_v2_ontology_categories__entity_id___entity_representation__get","parameters":[{"name":"entity_id","in":"path","required":true,"schema":{"type":"integer","title":"Entity Id"}},{"name":"entity_representation","in":"path","required":true,"schema":{"type":"string","title":"Entity Representation"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","title":"Page","description":"Page number.","default":1},"description":"Page number."},{"name":"size","in":"query","required":false,"schema":{"type":"integer","title":"Size","description":"Page size.","default":25},"description":"Page size."}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategoryResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/ontology/subjects":{"get":{"tags":["Ontology"],"summary":"Get Subjects","operationId":"get_subjects_v2_ontology_subjects_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}],"description":"Max number of subjects to return","title":"Limit"},"description":"Max number of subjects to return"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubjectResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/ontology/subject/{subject_id}/insights":{"get":{"tags":["Ontology"],"summary":"Subject Insights","operationId":"subject_insights_v2_ontology_subject__subject_id__insights_get","parameters":[{"name":"subject_id","in":"path","required":true,"schema":{"type":"integer","title":"Subject Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubjectInsightsResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/ontology/topic/{topic_id}/insights":{"get":{"tags":["Ontology"],"summary":"Topic Insights","operationId":"topic_insights_v2_ontology_topic__topic_id__insights_get","parameters":[{"name":"topic_id","in":"path","required":true,"schema":{"type":"integer","title":"Topic Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopicInsightsResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/ontology/insight-map":{"get":{"tags":["Ontology"],"summary":"Get Insight Map","operationId":"get_insight_map_v2_ontology_insight_map_get","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsightMapResponse"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/ontology/insights":{"get":{"tags":["Ontology"],"summary":"Get Insights List","description":"Fetch insights, with pagination.\nOptimized for new builder workflow - only entity_id is required for filtering.\nWhen event_id is provided, only insights linked to that event are returned.\nWhen search + event_id are both provided, ES insight search is used treating\nevent_id as entity_id and event_representation as entity_representation.","operationId":"get_insights_list_v2_ontology_insights_get","parameters":[{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Entity ID","title":"Entity Id"},"description":"Entity ID"},{"name":"entity_representation","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Entity Representation","title":"Entity Representation"},"description":"Entity Representation"},{"name":"entity","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Entity Filter","title":"Entity"},"description":"Entity Filter"},{"name":"subject_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"Subject IDs","title":"Subject Ids"},"description":"Subject IDs"},{"name":"topic_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"Topic IDs","title":"Topic Ids"},"description":"Topic IDs"},{"name":"insight_types","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Insight types","title":"Insight Types"},"description":"Insight types"},{"name":"dataset_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Dataset IDs","title":"Dataset Ids"},"description":"Dataset IDs"},{"name":"event_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter insights to those linked to this event (carc_id of an event EntityRepresentation). ANDed with entity_id/entity_representation when both are provided.","title":"Event Id"},"description":"Filter insights to those linked to this event (carc_id of an event EntityRepresentation). ANDed with entity_id/entity_representation when both are provided."},{"name":"event_representation","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Representation type of the event node (e.g. 'corpeventc'). Used alongside event_id to uniquely scope the event. When search is also provided, passed as entity_representation to ES.","title":"Event Representation"},"description":"Representation type of the event node (e.g. 'corpeventc'). Used alongside event_id to uniquely scope the event. When search is also provided, passed as entity_representation to ES."},{"name":"event_category_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter insights to those linked to events of this category (carc_id of an EventCategory node).","title":"Event Category Id"},"description":"Filter insights to those linked to events of this category (carc_id of an EventCategory node)."},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search term","title":"Search"},"description":"Search term"},{"name":"include_metadata","in":"query","required":false,"schema":{"type":"boolean","description":"Include full metadata (descriptions, timestamps, delay status)","default":true,"title":"Include Metadata"},"description":"Include full metadata (descriptions, timestamps, delay status)"},{"name":"min_score","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"description":"Minimum search score, between 0 and 1","default":0.0,"title":"Min Score"},"description":"Minimum search score, between 0 and 1"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number for insights list","default":1,"title":"Page"},"description":"Page number for insights list"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of insights per page","default":25,"title":"Size"},"description":"Number of insights per page"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(insight_label|subject_label|topic_label|insight_type_label|overview|coverage|insight_label_featured)$"},{"type":"null"}],"description":"Field to sort insights by (currently only 'label' is supported)","default":"insight_label","title":"Sort By"},"description":"Field to sort insights by (currently only 'label' is supported)"},{"name":"order","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(asc|desc)$"},{"type":"null"}],"description":"Sort direction (asc/desc)","default":"asc","title":"Order"},"description":"Sort direction (asc/desc)"},{"name":"rand_seed","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Random seed for featured items","title":"Rand Seed"},"description":"Random seed for featured items"},{"name":"featured_insight_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"Featured insight IDs","title":"Featured Insight Ids"},"description":"Featured insight IDs"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsightResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/ontology/all-insights":{"get":{"tags":["Ontology"],"summary":"All Insights","description":"The whole insight corpus in one shot.\n\nServed from the in-process store so the builder fetches once and filters\nclient-side. Unpaginated on purpose: the previous ``size=1000`` bulk reads\nsilently truncated a corpus that has since passed 1,200. ``version`` is\nalso the ETag, so a client holding it revalidates into a 304.\n\nNot literally every insight: provider-blocked rows are dropped per caller,\nand the projection omits ``description``, ``subject_description`` and\n``delay_status``. ``/insights`` remains the paginated, searchable listing\nwith full metadata — it is the public SDK's contract.\n\nServed from the published store; when nothing is published for the current\nontology version the corpus is built live for this one response.","operationId":"all_insights_v2_ontology_all_insights_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsightStoreResponse"}}}},"404":{"description":"Not Found","detail":"Not found"}}}},"/v2/ontology/insights/linked":{"get":{"tags":["Ontology"],"summary":"Linked Insight Ids","description":"Insight ids linked to the requested entity / event scope.\n\nThe browser already holds the whole store from ``/all-insights``,\nso scoping a browse only needs graph adjacency: it intersects these ids\nwith the corpus it has instead of refetching a listing. Adjacency is not\nuser-specific — provider access is already applied to the store the ids\nare intersected with.\n\nScopes AND together, the same way the paginated listing stacks its entity\nand event pre-filters. Adjacency does not vary with subject/topic/dataset\nfilters, so those are not accepted here — the caller narrows the\nintersection it already holds.","operationId":"linked_insight_ids_v2_ontology_insights_linked_get","parameters":[{"name":"entity_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"Entity carc_ids (paired with entity_representation)","title":"Entity Id"},"description":"Entity carc_ids (paired with entity_representation)"},{"name":"entity_representation","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Representations paired 1:1 with entity_id","title":"Entity Representation"},"description":"Representations paired 1:1 with entity_id"},{"name":"event_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"carc_id of an event EntityRepresentation (paired with event_representation).","title":"Event Id"},"description":"carc_id of an event EntityRepresentation (paired with event_representation)."},{"name":"event_representation","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Representation type of the event node (e.g. 'corpeventc').","title":"Event Representation"},"description":"Representation type of the event node (e.g. 'corpeventc')."},{"name":"event_category_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"carc_id of an EventCategory — insights linked to any event under it.","title":"Event Category Id"},"description":"carc_id of an EventCategory — insights linked to any event under it."}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsightLinkedResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/ontology/insights/{insight_id}":{"get":{"tags":["Ontology"],"summary":"Insight Details","operationId":"insight_details_v2_ontology_insights__insight_id__get","parameters":[{"name":"insight_id","in":"path","required":true,"schema":{"type":"integer","title":"Insight Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsightDetailsResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/ontology/ontology-versions":{"get":{"tags":["Ontology"],"summary":"Get all ontology versions","operationId":"get_ontology_versions_v2_ontology_ontology_versions_get","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OntologyVersionResponse"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/clients/payments/balance-summary":{"get":{"tags":["Clients"],"summary":"Get Client Balance","description":"Get the balance of a client","operationId":"get_client_balance_v2_clients_payments_balance_summary_get","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientBalanceResponse"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/clients/me/orders":{"get":{"tags":["Clients"],"summary":"Get User Orders","operationId":"get_user_orders_v2_clients_me_orders_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":25,"title":"Size"}},{"name":"order_by","in":"query","required":false,"schema":{"type":"string","default":"created_at","title":"Order By"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","pattern":"^(asc|desc)$","default":"desc","title":"Order"}},{"name":"user_email","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"title":"User Email"}},{"name":"date_from","in":"query","required":false,"schema":{"type":"string","format":"date-time","title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"type":"string","format":"date-time","title":"Date To"}},{"name":"search","in":"query","required":false,"schema":{"type":"string","description":"Search by display_name","title":"Search"},"description":"Search by display_name"},{"name":"order_type","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"description":"Filter by order type (e.g., new_purchase, renewal, upgrade)","title":"Order Type"},"description":"Filter by order type (e.g., new_purchase, renewal, upgrade)"},{"name":"type","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"description":"Filter by category (e.g., exchange, framework, cohortbuilder, tribes, transcript). 'tribes' and 'framework' are both type='framework' rows split by Order.source (PRO-1450). 'transcript' rows are account-scoped: visible to every user on the same client, not just the original purchaser (PRO-1859).","title":"Type"},"description":"Filter by category (e.g., exchange, framework, cohortbuilder, tribes, transcript). 'tribes' and 'framework' are both type='framework' rows split by Order.source (PRO-1450). 'transcript' rows are account-scoped: visible to every user on the same client, not just the original purchaser (PRO-1859)."}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderPaginatedResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/clients/me/orders/{order_id}":{"get":{"tags":["Clients"],"summary":"Get User Order","description":"Endpoint for fetching specific user order's details","operationId":"get_user_order_v2_clients_me_orders__order_id__get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Order Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/FrameworkOrderRead"},{"$ref":"#/components/schemas/OrderInformationResponse"}],"title":"Response Get User Order V2 Clients Me Orders  Order Id  Get"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Clients"],"summary":"Update User Order Display Name","description":"Endpoint for updating a user's order display name","operationId":"update_user_order_display_name_v2_clients_me_orders__order_id__patch","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Order Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_update_user_order_display_name_v2_clients_me_orders__order_id__patch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderUpdateResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/library/data":{"get":{"tags":["Data Library"],"summary":"Get all external data identifiers","operationId":"get_data_identifiers_v2_library_data_get","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataSourcesResponse"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/library/data/{dataset_id}":{"get":{"tags":["Data Library"],"summary":"Get TearSheet information for a dataset identifier","operationId":"get_data_identifier_information_v2_library_data__dataset_id__get","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Data Identifier","description":"Data Identifier."},"description":"Data Identifier."}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataSource"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/library/data/{dataset_id}/data-dictionary":{"get":{"tags":["Data Library"],"summary":"Get Data Dictionaries for a dataset identifier","operationId":"get_data_dictionary_by_dataset_id_v2_library_data__dataset_id__data_dictionary_get","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Data Identifier","description":"Data Identifier."},"description":"Data Identifier."},{"name":"entity_topic_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Entity Topic ID","description":"Entity Topic ID."},"description":"Entity Topic ID."}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DataDictionary"},"title":"Response Get Data Dictionary By Dataset Id V2 Library Data  Dataset Id  Data Dictionary Get"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/library/data/{dataset_id}/tearsheet-pdf":{"get":{"tags":["Data Library"],"summary":"Get TearSheet PDF for a dataset identifier","operationId":"get_tearsheet_pdf_by_dataset_id_v2_library_data__dataset_id__tearsheet_pdf_get","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Data Identifier","description":"Data Identifier."},"description":"Data Identifier."}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response"},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/library/data/{dataset_id}/insights":{"get":{"tags":["Data Library"],"summary":"Get Insights for a dataset identifier","operationId":"get_insights_by_dataset_v2_library_data__dataset_id__insights_get","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Data Identifier","description":"Dataset identifier."},"description":"Dataset identifier."},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Number of insights per page","default":25,"title":"Size"},"description":"Number of insights per page"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(insight_label|subject_label|topic_label|insight_type_label|overview|coverage|insight_label_featured)$"},{"type":"null"}],"description":"Field to sort insights by","default":"insight_label","title":"Sort By"},"description":"Field to sort insights by"},{"name":"order","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(asc|desc)$"},{"type":"null"}],"description":"Sort direction","default":"asc","title":"Order"},"description":"Sort direction"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsightResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/library/graph":{"get":{"tags":["Data Library"],"summary":"Get all external Graph identifiers","operationId":"get_graph_identifiers_v2_library_graph_get","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphSourcesResponse"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/library/graph/{graph_id}":{"get":{"tags":["Data Library"],"summary":"Get Data Graph Information","operationId":"get_graph_information_v2_library_graph__graph_id__get","parameters":[{"name":"graph_id","in":"path","required":true,"schema":{"type":"string","title":"Graph Identifier","description":"Data Identifier."},"description":"Data Identifier."}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphSourcesResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/library/schedule/export":{"get":{"tags":["Data Library"],"summary":"Export Cake Task Schedule","description":"Download entire cake task schedule table as CSV.","operationId":"export_cake_task_schedule_v2_library_schedule_export_get","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response"},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/library/schedule/{dataset_id}":{"get":{"tags":["Data Library"],"summary":"Get Cake Task Schedule","description":"Get cake task schedule information for a specific Dataset ID from the tracking.cake_task_schedule_enhanced table.","operationId":"get_cake_task_schedule_v2_library_schedule__dataset_id__get","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","title":"Dataset ID","description":"Name of the Dataset ID to query"},"description":"Name of the Dataset ID to query"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CakeTaskScheduleResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/block/datasets":{"get":{"tags":["Block"],"summary":"One row per Block dataset_id with per-cut pricing, lag list, and per-client request status","operationId":"list_block_datasets_v2_block_datasets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockDatasetsResponse"}}}},"404":{"description":"Not Found","detail":"Not found"}}}},"/v2/block/datasets/{dataset_id}/cuts":{"get":{"tags":["Block"],"summary":"Available cuts for a dataset_id, each with the list of vended lags","operationId":"list_dataset_cuts_v2_block_datasets__dataset_id__cuts_get","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","pattern":"^CA\\d+[A-Z]*$","title":"Dataset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlockDatasetCutsResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/framework/filters":{"post":{"tags":["Framework"],"summary":"Framework Filters","operationId":"framework_filters_v2_framework_filters_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_framework_filters_v2_framework_filters_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FrameworkFiltersResponse"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/framework/filters/{filter_key}/options":{"post":{"tags":["Framework"],"summary":"Framework Filter Options","operationId":"framework_filter_options_v2_framework_filters__filter_key__options_post","parameters":[{"name":"filter_key","in":"path","required":true,"schema":{"type":"string","title":"Filter Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_framework_filter_options_v2_framework_filters__filter_key__options_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/framework/metadata":{"post":{"tags":["Framework"],"summary":"Collection Framework Metadata","operationId":"collection_framework_metadata_v2_framework_metadata_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_collection_framework_metadata_v2_framework_metadata_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FrameworkCollectionResponse"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/framework/buy":{"post":{"tags":["Framework"],"summary":"Create Framework Order","operationId":"create_framework_order_v2_framework_buy_post","parameters":[{"name":"repurchase_reason","in":"query","required":false,"schema":{"anyOf":[{"enum":["refresh","reinstate"],"type":"string"},{"type":"null"}],"title":"Repurchase Reason"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_create_framework_order_v2_framework_buy_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/framework/{framework_id}/metadata":{"get":{"tags":["Framework"],"summary":"Get Framework Metadata By Id","operationId":"get_framework_metadata_by_id_v2_framework__framework_id__metadata_get","parameters":[{"name":"framework_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Framework Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FrameworkMetadataResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/framework/{framework_id}/data":{"get":{"tags":["Framework"],"summary":"Get Framework Data","operationId":"get_framework_data_v2_framework__framework_id__data_get","parameters":[{"name":"framework_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Framework Id"}},{"name":"data_type","in":"query","required":false,"schema":{"type":"string","pattern":"^(dataframe|timeseries)$","description":"Data type","default":"dataframe","title":"Data Type"},"description":"Data type"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size"}},{"name":"fetch_all","in":"query","required":false,"schema":{"type":"boolean","description":"Fetch all data","default":true,"title":"Fetch All"},"description":"Fetch all data"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TimeSeriesResponse"},{"$ref":"#/components/schemas/DataFrameResponse"}],"title":"Response Get Framework Data V2 Framework  Framework Id  Data Get"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/framework/{framework_id}/export":{"get":{"tags":["Framework"],"summary":"Export Framework Data","operationId":"export_framework_data_v2_framework__framework_id__export_get","parameters":[{"name":"framework_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Framework Id"}},{"name":"data_type","in":"query","required":false,"schema":{"type":"string","pattern":"^(dataframe|timeseries)$","description":"Data type","default":"dataframe","title":"Data Type"},"description":"Data type"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/framework/code/preview":{"post":{"tags":["Framework"],"summary":"Preview Framework Code","description":"Preview the API code for a framework configuration before purchase.","operationId":"preview_framework_code_v2_framework_code_preview_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_preview_framework_code_v2_framework_code_preview_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeResponse"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/framework/{framework_id}/code":{"get":{"tags":["Framework"],"summary":"Get Framework Code","operationId":"get_framework_code_v2_framework__framework_id__code_get","parameters":[{"name":"framework_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Framework Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/framework/{framework_id}/panel-debias":{"get":{"tags":["Framework"],"summary":"Get Panel Debias Framework Data","operationId":"get_panel_debias_framework_data_v2_framework__framework_id__panel_debias_get","parameters":[{"name":"framework_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Framework Id"}},{"name":"data_type","in":"query","required":false,"schema":{"type":"string","pattern":"^(dataframe|timeseries)$","description":"Data type","default":"dataframe","title":"Data Type"},"description":"Data type"},{"name":"insight_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Insight ID","title":"Insight Id"},"description":"Insight ID"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size"}},{"name":"fetch_all","in":"query","required":false,"schema":{"type":"boolean","description":"Fetch all data","default":true,"title":"Fetch All"},"description":"Fetch all data"},{"name":"sma","in":"query","required":false,"schema":{"type":"boolean","description":"Use Simple Moving Average","default":false,"title":"Sma"},"description":"Use Simple Moving Average"},{"name":"window","in":"query","required":false,"schema":{"type":"integer","description":"Simple Moving Average Window","default":7,"title":"Window"},"description":"Simple Moving Average Window"},{"name":"method","in":"query","required":false,"schema":{"enum":["reference_bias_correction","ratio_bias_correction","reference_mle","ratio_mle","ratio","simple_ratio"],"type":"string","description":"Method for Panel Debiasing","default":"reference_bias_correction","title":"Method"},"description":"Method for Panel Debiasing"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TimeSeriesResponse"},{"$ref":"#/components/schemas/DataFrameResponse"}],"title":"Response Get Panel Debias Framework Data V2 Framework  Framework Id  Panel Debias Get"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/framework/{framework_id}/panel-debias-info":{"get":{"tags":["Framework"],"summary":"Get Panel Debias Info","operationId":"get_panel_debias_info_v2_framework__framework_id__panel_debias_info_get","parameters":[{"name":"framework_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Framework Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PanelDebiasingInfo"},"title":"Response Get Panel Debias Info V2 Framework  Framework Id  Panel Debias Info Get"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/framework/framework-status":{"get":{"tags":["Framework"],"summary":"Get Framework Data Status","operationId":"get_framework_data_status_v2_framework_framework_status_get","parameters":[{"name":"framework_id","in":"query","required":true,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"array","items":{"type":"string","format":"uuid"}}],"description":"Single framework ID or list of framework IDs","title":"Framework Id"},"description":"Single framework ID or list of framework IDs"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FrameworkDataStatus"},"title":"Response Get Framework Data Status V2 Framework Framework Status Get"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/framework/groups":{"get":{"tags":["Framework"],"summary":"Get Framework Groups","description":"Get all framework groups for the authenticated user.\n\nReturns:\n    List of WorkbookGroup objects with full details","operationId":"get_framework_groups_v2_framework_groups_get","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkbookGroup"},"type":"array","title":"Response Get Framework Groups V2 Framework Groups Get"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Framework"],"summary":"Create Framework Group","description":"Create a new framework group.\n\nA framework group is a collection of frameworks that can be used for\norganized visualization and analysis.\n\nArgs:\n    name: Group name\n    description: Optional group description\n    framework_ids: List of framework UUIDs to include in group\n\nReturns:\n    Created WorkbookGroup object with id, timestamps, etc.","operationId":"create_framework_group_v2_framework_groups_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_create_framework_group_v2_framework_groups_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkbookGroup"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/framework/groups/{group_id}":{"get":{"tags":["Framework"],"summary":"Get Framework Group","description":"Get a specific framework group by ID.\n\nArgs:\n    group_id: UUID of the group to retrieve\n\nReturns:\n    WorkbookGroup object","operationId":"get_framework_group_v2_framework_groups__group_id__get","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkbookGroup"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Framework"],"summary":"Update Framework Group","description":"Update an existing framework group.\n\nAll fields are optional - only provided fields will be updated.\n\nArgs:\n    group_id: UUID of the group to update\n    name: New group name (optional)\n    description: New description (optional)\n    framework_ids: New list of framework UUIDs (optional)\n\nReturns:\n    Updated WorkbookGroup object","operationId":"update_framework_group_v2_framework_groups__group_id__put","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_update_framework_group_v2_framework_groups__group_id__put"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkbookGroup"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Framework"],"summary":"Delete Framework Group","description":"Delete a framework group.\n\nArgs:\n    group_id: UUID of the group to delete\n\nReturns:\n    Success status","operationId":"delete_framework_group_v2_framework_groups__group_id__delete","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/framework/groups/{group_id}/sync-s3":{"post":{"tags":["Framework"],"summary":"Sync Group Frameworks To S3","description":"Save all framework data in a group to S3.\n\nIterates over every framework in the group, fetches its data, and\nwrites it to S3 as parquet.  Frameworks that are out of date (409)\nare logged and returned in the ``out_of_date`` list but do not\nblock the remaining frameworks from being saved.","operationId":"sync_group_frameworks_to_s3_v2_framework_groups__group_id__sync_s3_post","parameters":[{"name":"group_id","in":"path","required":true,"schema":{"type":"string","title":"Group Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/framework/{framework_id}/name":{"patch":{"tags":["Framework"],"summary":"Update Framework Name","description":"Update the name of a framework.","operationId":"update_framework_name_v2_framework__framework_id__name_patch","parameters":[{"name":"framework_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Framework Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_update_framework_name_v2_framework__framework_id__name_patch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FrameworkMetadataResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/catalog/access":{"get":{"tags":["Catalog"],"summary":"Check catalog access","description":"Returns whether the current user has the CATALOG_BUILD feature flag.","operationId":"check_catalog_access_v2_catalog_access_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","title":"Response Check Catalog Access V2 Catalog Access Get"}}}},"404":{"description":"Not Found","detail":"Not found"}}}},"/v2/catalog/subscriptions":{"get":{"tags":["Catalog"],"summary":"Get catalog subscriptions","description":"Returns published catalog assets for the IDO source, gated by the CATALOG_FEED feature flag.","operationId":"get_subscriptions_v2_catalog_subscriptions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListAssetsResponse"}}}},"404":{"description":"Not Found","detail":"Not found"}}}},"/v2/catalog/assets":{"get":{"tags":["Catalog"],"summary":"List catalog assets","description":"List approved IDO assets. Results are gated by the caller's plan_type.","operationId":"list_assets_v2_catalog_assets_get","parameters":[{"name":"tier","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":3,"minimum":1},{"type":"null"}],"description":"Filter by asset tier (1, 2, or 3)","title":"Tier"},"description":"Filter by asset tier (1, 2, or 3)"},{"name":"provider_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter by provider UUID","title":"Provider Id"},"description":"Filter by provider UUID"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by data category","title":"Category"},"description":"Filter by data category"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":200},{"type":"null"}],"description":"Search by title (case-insensitive)","title":"Search"},"description":"Search by title (case-insensitive)"},{"name":"data_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by data type","title":"Data Type"},"description":"Filter by data type"},{"name":"geography","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by geography (exact match within array)","title":"Geography"},"description":"Filter by geography (exact match within array)"},{"name":"frequency","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by data frequency","title":"Frequency"},"description":"Filter by data frequency"},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(popularity|newest)$"},{"type":"null"}],"description":"Sort order: 'popularity' or 'newest'","title":"Sort"},"description":"Sort order: 'popularity' or 'newest'"},{"name":"liked_only","in":"query","required":false,"schema":{"type":"boolean","description":"Return only assets liked by the current user","default":false,"title":"Liked Only"},"description":"Return only assets liked by the current user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListAssetsResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/catalog/assets/admin":{"get":{"tags":["Catalog"],"summary":"List all catalog assets (admin)","description":"Super Admin or Client Admin only. Returns ALL assets regardless of status.","operationId":"admin_list_assets_v2_catalog_assets_admin_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":200},{"type":"null"}],"title":"Search"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminListAssetsResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"401":{"description":"Missing or invalid authentication credentials."},"403":{"description":"Admin access required."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/catalog/assets/admin/{asset_id}":{"get":{"tags":["Catalog"],"summary":"Get catalog asset (admin)","description":"Super Admin or Client Admin only. Returns a single asset regardless of status.","operationId":"admin_get_asset_v2_catalog_assets_admin__asset_id__get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminAssetResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"401":{"description":"Missing or invalid authentication credentials."},"403":{"description":"Admin access required."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/catalog/assets/{asset_id}":{"patch":{"tags":["Catalog"],"summary":"Update catalog asset (admin)","description":"Super Admin or Client Admin only. Mutates publishing and curation fields (status, visibility, tier, flags, published_at). Not gated on catalog_build.","operationId":"admin_update_asset_v2_catalog_assets__asset_id__patch","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogAssetAdminUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminAssetResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"401":{"description":"Missing or invalid authentication credentials."},"403":{"description":"Admin access required."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Catalog"],"summary":"Get catalog asset detail","description":"Full metadata, samples, and data dictionary for a single asset.","operationId":"get_asset_v2_catalog_assets__asset_id__get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetDetailResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/catalog/assets/{asset_id}/vote":{"post":{"tags":["Catalog"],"summary":"Toggle vote on a catalog asset","description":"Adds an upvote if the user hasn't voted; removes it if they have (YouTube-style toggle).","operationId":"toggle_vote_v2_catalog_assets__asset_id__vote_post","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoteResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Catalog"],"summary":"Get vote status for a catalog asset","description":"Returns whether the current user has voted and the total vote count.","operationId":"get_vote_status_v2_catalog_assets__asset_id__vote_get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VoteResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/catalog/assets/{asset_id}/request-access":{"post":{"tags":["Catalog"],"summary":"Request access to a catalog asset","description":"Logs an access request for a gated/locked asset. Multiple submissions per user and asset are allowed (e.g. follow-ups). Routing is currently stubbed to CarbonArc.","operationId":"request_access_v2_catalog_assets__asset_id__request_access_post","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessRequestCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessRequestResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/catalog/clients":{"get":{"tags":["Catalog"],"summary":"List catalog clients (admin)","description":"Super Admin or Client Admin only. Lists all catalog clients.","operationId":"list_clients_v2_catalog_clients_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CatalogClientResponse"},"type":"array","title":"Response List Clients V2 Catalog Clients Get"}}}},"404":{"description":"Not Found","detail":"Not found"},"401":{"description":"Missing or invalid authentication credentials."},"403":{"description":"Admin access required."}}},"post":{"tags":["Catalog"],"summary":"Create catalog client (admin)","description":"Super Admin or Client Admin only. Creates a new catalog client.","operationId":"create_client_v2_catalog_clients_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogClientCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogClientResponse"}}}},"404":{"description":"Not Found","detail":"Not found"},"401":{"description":"Missing or invalid authentication credentials."},"403":{"description":"Admin access required."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/catalog/clients/{client_id}":{"get":{"tags":["Catalog"],"summary":"Get catalog client (admin)","description":"Super Admin or Client Admin only.","operationId":"get_client_v2_catalog_clients__client_id__get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogClientResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"401":{"description":"Missing or invalid authentication credentials."},"403":{"description":"Admin access required."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Catalog"],"summary":"Update catalog client (admin)","description":"Super Admin or Client Admin only. Partial update of name or plan_type.","operationId":"update_client_v2_catalog_clients__client_id__patch","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogClientUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogClientResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"401":{"description":"Missing or invalid authentication credentials."},"403":{"description":"Admin access required."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Catalog"],"summary":"Delete catalog client (admin)","description":"Super Admin or Client Admin only.","operationId":"delete_client_v2_catalog_clients__client_id__delete","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"detail":"Not found","description":"Not Found"},"401":{"description":"Missing or invalid authentication credentials."},"403":{"description":"Admin access required."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/catalog/clients/{client_id}/audit-log":{"get":{"tags":["Catalog"],"summary":"Get audit log for a catalog client (admin)","description":"Super Admin or Client Admin only. Returns all field changes for the client, newest first.","operationId":"get_client_audit_log_v2_catalog_clients__client_id__audit_log_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Max number of entries to return (newest first)","default":50,"title":"Limit"},"description":"Max number of entries to return (newest first)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CatalogClientAuditLogResponse"},"title":"Response Get Client Audit Log V2 Catalog Clients  Client Id  Audit Log Get"}}}},"404":{"detail":"Not found","description":"Not Found"},"401":{"description":"Missing or invalid authentication credentials."},"403":{"description":"Admin access required."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/polaris/datasets/{dataset_id}/example-table":{"get":{"tags":["Polaris"],"summary":"Get Example Table","description":"Resolve the animal-name namespace and a representative table for a dataset.\n\nPre-filled context (cut/lag provided): uses the entitled SKU.\nDropdown context (cut/lag omitted): returns any table from the graph.\n\n``catalog`` selects which polaris catalog to source the example from. The\nSQL editor's \"Connect your query engine\" entry passes ``sample`` so the\nexample reflects the lagged tables actually populated in the sample\nwarehouse the user just queried; everything else defaults to ``bulk``.\n\nAuth + per-client entitlement are enforced by the parent ``router`` in\n``api.py`` (bearer token via ``get_authenticated_user`` plus\n``_require_example_table_access``, which 404s datasets denied to the caller\nor globally disabled); no redundant per-endpoint dep needed here.","operationId":"get_example_table_v2_polaris_datasets__dataset_id__example_table_get","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","pattern":"^CA\\d+[A-Z]*$","title":"Dataset Id"}},{"name":"cut","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut"}},{"name":"lag","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lag"}},{"name":"catalog","in":"query","required":false,"schema":{"type":"string","pattern":"^(bulk|sample)$","default":"bulk","title":"Catalog"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExampleTableResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/transcripts":{"get":{"tags":["Transcripts"],"summary":"List available transcripts","operationId":"list_transcripts_v2_transcripts_get","parameters":[{"name":"ticker","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by ticker symbol (entity label)","title":"Ticker"},"description":"Filter by ticker symbol (entity label)"},{"name":"entity","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Filter by entity id (repeatable)","title":"Entity"},"description":"Filter by entity id (repeatable)"},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Filter by region id (repeatable, exact match)","title":"Region"},"description":"Filter by region id (repeatable, exact match)"},{"name":"transcript_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by transcript type","title":"Transcript Type"},"description":"Filter by transcript type"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search in title and description","title":"Search"},"description":"Search in title and description"},{"name":"interview_date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Interview date lower bound (inclusive)","title":"Interview Date From"},"description":"Interview date lower bound (inclusive)"},{"name":"interview_date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Interview date upper bound (inclusive)","title":"Interview Date To"},"description":"Interview date upper bound (inclusive)"},{"name":"is_purchased","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter by purchase status","title":"Is Purchased"},"description":"Filter by purchase status"},{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","pattern":"^(title|interview_date|published_at)$","default":"published_at","title":"Sort By"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","pattern":"^(asc|desc)$","default":"desc","title":"Order"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptListResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/transcripts/entities":{"get":{"tags":["Transcripts"],"summary":"List all entity facets for published transcripts","operationId":"list_transcript_entities_v2_transcripts_entities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TranscriptEntityCount"},"type":"array","title":"Response List Transcript Entities V2 Transcripts Entities Get"}}}},"404":{"description":"Not Found","detail":"Not found"}}}},"/v2/transcripts/regions":{"get":{"tags":["Transcripts"],"summary":"List all region facets for published transcripts","operationId":"list_transcript_regions_v2_transcripts_regions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TranscriptRegionCount"},"type":"array","title":"Response List Transcript Regions V2 Transcripts Regions Get"}}}},"404":{"description":"Not Found","detail":"Not found"}}}},"/v2/transcripts/{transcript_id}":{"get":{"tags":["Transcripts"],"summary":"Get a transcript","operationId":"get_transcript_v2_transcripts__transcript_id__get","parameters":[{"name":"transcript_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Transcript Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptDetailItem"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/transcripts/{transcript_id}/purchase":{"post":{"tags":["Transcripts"],"summary":"Purchase a transcript","operationId":"purchase_transcript_v2_transcripts__transcript_id__purchase_post","parameters":[{"name":"transcript_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Transcript Id"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptPurchaseResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/transcripts/{transcript_id}/download":{"get":{"tags":["Transcripts"],"summary":"Download a purchased transcript","description":"Streams a watermarked TXT or PDF built from the canonical text. The response is file bytes, never a presigned URL to the unmarked original.","operationId":"download_transcript_v2_transcripts__transcript_id__download_get","parameters":[{"name":"transcript_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Transcript Id"}},{"name":"fmt","in":"query","required":false,"schema":{"type":"string","pattern":"^(txt|pdf)$","description":"File format: txt or pdf","default":"txt","title":"Fmt"},"description":"File format: txt or pdf"}],"responses":{"200":{"description":"Successful Response"},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/explore-use-cases/match":{"post":{"tags":["Explore Use Cases"],"summary":"Match Datasets","description":"Match data assets to a user's persona using AI.\n\nThis public endpoint allows potential customers to describe their business\nneeds and receive AI-powered recommendations for relevant CarbonArc data assets.\n\nUses AWS Bedrock with Claude 3.5 Sonnet for inference.\n\n**Rate Limited**: 5 requests per minute per IP address.","operationId":"match_datasets_v2_explore_use_cases_match_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonaInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatchResult"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/research/case-studies":{"get":{"tags":["Research"],"summary":"Get Case Studies","operationId":"get_case_studies_v2_research_case_studies_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not Found","detail":"Not found"}}}},"/v2/public-library/data-library":{"get":{"tags":["Public"],"summary":"Get public data identifiers (landing page)","operationId":"get_public_datalibrary_identifiers_v2_public_library_data_library_get","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataLibrarySourcesResponse"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/public-library/explore-data":{"get":{"tags":["Public"],"summary":"Get public explore data assets (landing page)","operationId":"get_public_explore_data_v2_public_library_explore_data_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListAssetsResponse"}}}},"404":{"description":"Not Found","detail":"Not found"}}}},"/v2/tracking/events":{"post":{"tags":["Tracking"],"summary":"Track Capi Event","description":"Accept a browser tracking event and forward it to Meta CAPI.\n\nIntentionally public: mounted on `public_router` with no auth dependency.\nEvery caller (`app/power-ui/src/utils/metaPixel.ts`, reached from Cookiebot\nconsent, the marketing pages, and signup) fires before the user has a\ntoken, so requiring a Bearer would silently break conversion tracking.\n\nAbuse controls, in place of auth:\n- `event_name` is checked against `ALLOWED_EVENT_NAMES`\n- `@limiter.limit(\"30/minute\")` per client IP\n- `TrackingEventRequest` caps every field's length and `custom_data` size\n- `email` / `phone` are SHA-256 hashed before leaving this process\n- nothing is persisted in power-api; the response echoes no input\n- the only outbound sink is `https://graph.facebook.com/v19.0/{pixel_id}/events`,\n  built from settings — `event_source_url` reaches the JSON body only\n\nCMP consent is enforced by the caller, not here: `hasMarketingConsent()` in\n`app/power-ui/src/utils/marketingConsent.ts` gates `sendCapiEvent`, so a\nvisitor who declined marketing never reaches this endpoint. A server-side\ncheck is not possible — the Cookiebot decision lives in the browser and any\nflag on this unauthenticated request would be client-asserted anyway (PRO-3255).\n\nRef: PLA-5052 (Shannon audit hash 05faedc8aeb9), reviewed 2026-07. The\npublic posture is by design; do not \"fix\" it by adding an auth dependency.","operationId":"track_capi_event_v2_tracking_events_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackingEventRequest"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","title":"Response Track Capi Event V2 Tracking Events Post"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/public-prisms":{"get":{"tags":["Public"],"summary":"Get Prisms Page","description":"The public /prisms page payload. No auth, no per-user data, relative\nvalues only. Proxied from CAMS's serving cache (CAMS owns prism state);\nserves the last-good copy if CAMS is briefly unreachable.\n\nConditional. The page polls this so a recompute reaches a browser that is\nalready open, and the payload is megabytes of series — so it carries an\nETag over its own content and answers an unchanged poll with a 304.\n``no-cache`` rather than a max-age: every request revalidates (nothing is\never served stale), but an unchanged one costs a round trip and no body.","operationId":"get_prisms_page_v2_public_prisms_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicPrismsResponse"}}}},"404":{"description":"Not Found","detail":"Not found"}}}},"/v2/polaris/onboard":{"post":{"tags":["Polaris"],"summary":"Onboard Client","operationId":"onboard_client_v2_polaris_onboard_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardResponse"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/polaris/principals/{principal_name}":{"delete":{"tags":["Polaris"],"summary":"Offboard Client","description":"Delete a Polaris principal and their per-client principal role (offboarding).","operationId":"offboard_client_v2_polaris_principals__principal_name__delete","parameters":[{"name":"principal_name","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9_-]+$","title":"Principal Name"}}],"responses":{"204":{"description":"Successful Response"},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/polaris/reset-credentials":{"post":{"tags":["Polaris"],"summary":"Reset Credentials","description":"Reset a principal's credentials.\n\nWARNING: new credentials are returned in the response body. Callers must\nstore them in a secrets manager immediately and not log the response.\nTODO: migrate to writing directly to Vault/Secrets Manager and returning\nonly a reference ID to eliminate credential exposure over HTTP.","operationId":"reset_credentials_v2_polaris_reset_credentials_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetCredentialsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetCredentialsResponse"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/polaris/datasets/{dataset_id}/grant":{"post":{"tags":["Polaris"],"summary":"Grant Dataset Access","description":"Grant a principal read access to every table under a dataset SKU.\n\nIdempotent. The catalog is taken from the request — it scopes table\nresolution and the catalog-role name.","operationId":"grant_dataset_access_v2_polaris_datasets__dataset_id__grant_post","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","pattern":"^CA\\d+[A-Z]*$","title":"Dataset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantDatasetRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantDatasetResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/polaris/datasets/{dataset_id}/revoke":{"post":{"tags":["Polaris"],"summary":"Revoke Dataset Access","description":"Detach a dataset's catalog role from a principal's per-client role.\n\nThe SKU — including its ``catalog`` — comes entirely from the request; the\ngraph is never consulted. Idempotent: detaching a role that isn't attached\nreturns ``revoked=False``. The catalog role itself is preserved (other\nprincipals may share it); orphaned roles are the reconciler's job.","operationId":"revoke_dataset_access_v2_polaris_datasets__dataset_id__revoke_post","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","pattern":"^CA\\d+[A-Z]*$","title":"Dataset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeDatasetRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeDatasetResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/polaris/datasets/{dataset_id}/verify":{"post":{"tags":["Polaris"],"summary":"Verify Dataset Access","description":"Read which principals CURRENTLY hold a dataset's catalog role.\n\nThe read-back counterpart to grant/revoke. Polaris is one of the two ways a\nclient actually reads data (the customer's own query engine talks to it\ndirectly with vended credentials), so a status view that only verifies S3\ndescribes half the access surface.\n\nThe SKU comes entirely from the request and the catalog role name is derived\nhere via the same ``_dataset_catalog_role`` the grant path uses, so callers\nnever need to know the naming convention, and can't drift from it.\n\nUnlike the S3 bucket policy, where one read covers every client, Polaris\nexposes attachment per principal role, so this is one call per principal.\nThey run SEQUENTIALLY on purpose: PolarisClient lazily caches its OAuth token\nin mutable instance state with a check-then-set, so fanning out concurrently\nwould race on token refresh. Correctness matters more than latency in a\nfeature whose whole job is to be trustworthy; the cap on principal_names\nbounds the cost.\n\n``read_ok=False`` is a 200 with empty lists, not an error, for the same\nreason as the bucket-access verify: the caller must render it as \"unknown\"\nrather than falling back to what it intended.","operationId":"verify_dataset_access_v2_polaris_datasets__dataset_id__verify_post","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","pattern":"^CA\\d+[A-Z]*$","title":"Dataset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyDatasetAccessRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyDatasetAccessResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/polaris/principals/{principal_name}/bulk-browse":{"post":{"tags":["Polaris"],"summary":"Assign Bulk Browse","description":"Assign the catalog browse/list roles (``sample_ro_list_role`` and\n``bulk_ro_list_role``) to the principal.\n\nCalled by CAMS at block-enable. Tolerant per role: if a role isn't seeded in\nthis environment, logs a warning and reports ``assigned=False`` for it\n(HTTP 200). These are list-only roles — they grant catalog browsing, never\ndata read (which stays per-SKU default-deny).","operationId":"assign_bulk_browse_v2_polaris_principals__principal_name__bulk_browse_post","parameters":[{"name":"principal_name","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9_-]+$","title":"Principal Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkBrowseResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/bucket-access/datasets/{dataset_id}/grant":{"post":{"tags":["Bucket Access"],"summary":"Grant Bucket Access","description":"Grant a principal access to a dataset's S3 bucket by SKU.\n\nResolves (dataset_id, lag, cut) → dataset_name via\nadmin_config.bulk_bucket_details and delegates to\nBucketPolicyManager.add_principal_for_sku, which is idempotent.\n\nS3-only: ``log_access=False`` keeps PyCAKE off admin_config, so this endpoint\nnever writes there and read-only PSQL_ADMIN is correct for it (PLA-6141).\nCAMS owns the access/audit write, keyed on the ``dataset_name`` returned here.\n\nCompliance gate (runs before any S3 write): the client_name (=clients.key)\nmust resolve to a clients.id (422 unknown_client otherwise), and the SKU\nmust not be blocked for that client by the live served-lag restriction\nmodel (403 compliance_blocked otherwise).","operationId":"grant_bucket_access_v2_bucket_access_datasets__dataset_id__grant_post","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","pattern":"^CA\\d+[A-Z]*$","title":"Dataset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantBucketAccessRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantBucketAccessResponse"}}}},"404":{"description":"sku_not_found / bucket_not_registered: the SKU has no bucket in admin_config.bulk_bucket_details. Terminal — retrying cannot help."},"400":{"description":"Malformed principal ARN, or missing required identifier."},"403":{"description":"compliance_blocked: the SKU is restricted for this client."},"409":{"description":"policy_apply_failed / policy_write_race: the bucket-policy write did not land. Transient — the caller should retry."},"413":{"description":"policy_size_exceeded: the bucket policy hit AWS's 20KB limit."},"422":{"description":"unknown_client: client_name is not in admin_config.clients."}}}},"/v2/bucket-access/datasets/{dataset_id}/revoke":{"post":{"tags":["Bucket Access"],"summary":"Revoke Bucket Access","description":"Revoke a principal's S3 bucket access by SKU.\n\nEither principal_arn (revoke a specific ARN) or client_name (revoke all\nARNs registered for that client+dataset) must be provided. Idempotent —\nrevoking a principal that isn't currently granted returns revoked=True\nwith no policy change (mirrors the CLI behavior).\n\nS3-only, like the grant path: ``log_access=False``, and CAMS removes the\nadmin_config access row and writes the ACCESS_REVOKED audit row (PLA-6141).","operationId":"revoke_bucket_access_v2_bucket_access_datasets__dataset_id__revoke_post","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","pattern":"^CA\\d+[A-Z]*$","title":"Dataset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeBucketAccessRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeBucketAccessResponse"}}}},"404":{"description":"sku_not_found / bucket_not_registered: the SKU has no bucket in admin_config.bulk_bucket_details. Terminal — retrying cannot help."},"400":{"description":"Malformed principal ARN, or missing required identifier."},"403":{"description":"compliance_blocked: the SKU is restricted for this client."},"409":{"description":"policy_apply_failed / policy_write_race: the bucket-policy write did not land. Transient — the caller should retry."},"413":{"description":"policy_size_exceeded: the bucket policy hit AWS's 20KB limit."},"422":{"description":"unknown_client: client_name is not in admin_config.clients."}}}},"/v2/bucket-access/datasets/{dataset_id}/verify":{"post":{"tags":["Bucket Access"],"summary":"Verify Bucket Access","description":"Read which principals are CURRENTLY on a SKU's bucket policy.\n\nRead-only: never mutates the policy. One SKU maps to one bucket, so a single\ncall verifies every client on that SKU.\n\nCallers use this to answer \"does this client actually have access right now\",\nwhich no CAMS-side record can answer — the grant ledger and the sample\nsettings rows record what we *intended*, and a lost concurrent write makes\nthe two disagree.\n\nTwo outcomes are deliberately 200s with flags rather than HTTP errors,\nbecause the caller must render them as \"unknown\" and a 4xx/5xx invites a\nsilent fallback to intent instead:\n\n- ``bucket_found=false`` — the SKU or its bucket is not registered.\n- ``read_ok=false``      — the live read failed (throttle, access-denied).\n  ``principal_count`` is null and ``present``/``missing`` are empty; do NOT\n  read this as \"nobody has access\".\n\nDefined as sync ``def`` on purpose: BucketPolicyManager is fully blocking\n(boto3 + a sync Postgres handle), so FastAPI runs this in its threadpool\nrather than stalling the event loop.","operationId":"verify_bucket_access_v2_bucket_access_datasets__dataset_id__verify_post","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","pattern":"^CA\\d+[A-Z]*$","title":"Dataset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyBucketAccessRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyBucketAccessResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/catalog/clients/batch-plan-types":{"post":{"tags":["Catalog Internal"],"summary":"Batch fetch plan_types (internal)","description":"Returns a map of client_id → plan_type for the given IDs. Used by CAMS for list enrichment.","operationId":"batch_plan_types_v2_catalog_clients_batch_plan_types_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchPlanTypesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchPlanTypesResponse"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/exchange/internal/creators/archive-signals":{"post":{"tags":["Exchange Internal"],"summary":"Archive Creator Signals","description":"Archive all active signals belonging to the given creator user/client IDs.\n\nCalled by CAMS when a creator account or client is deleted/deactivated.","operationId":"archive_creator_signals_v2_exchange_internal_creators_archive_signals_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/exchange/internal/creators/unarchive-signals":{"post":{"tags":["Exchange Internal"],"summary":"Unarchive Creator Signals","description":"Unarchive signals belonging to the given creator user/client IDs.\n\nTransitions 'archived_creator_inactive' signals to 'archived'.\nCalled by CAMS when a creator account or client is reactivated.","operationId":"unarchive_creator_signals_v2_exchange_internal_creators_unarchive_signals_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/transcripts/internal":{"post":{"tags":["Transcripts Internal"],"summary":"Upload a transcript (internal)","description":"Internal upload of an anonymized transcript (JSON, base64).","operationId":"upload_transcript_v2_transcripts_internal_post","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Transcripts Internal"],"summary":"List all transcripts (admin)","operationId":"list_transcripts_admin_v2_transcripts_internal_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"submitted_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Submitted By"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TranscriptResponse"},"title":"Response List Transcripts Admin V2 Transcripts Internal Get"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/transcripts/internal/sources":{"get":{"tags":["Transcripts Internal"],"summary":"List active catalog sources","description":"Return active catalog sources for portal user source_type assignment.","operationId":"list_catalog_sources_v2_transcripts_internal_sources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"type":"object"},"type":"array","title":"Response List Catalog Sources V2 Transcripts Internal Sources Get"}}}},"404":{"description":"Not Found","detail":"Not found"}}}},"/v2/transcripts/internal/{transcript_id}":{"get":{"tags":["Transcripts Internal"],"summary":"Get a transcript by ID (admin)","operationId":"get_transcript_admin_v2_transcripts_internal__transcript_id__get","parameters":[{"name":"transcript_id","in":"path","required":true,"schema":{"type":"string","title":"Transcript Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/transcripts/internal/{transcript_id}/purchases":{"get":{"tags":["Transcripts Internal"],"summary":"List purchase history for a transcript (admin)","operationId":"list_transcript_purchases_v2_transcripts_internal__transcript_id__purchases_get","parameters":[{"name":"transcript_id","in":"path","required":true,"schema":{"type":"string","title":"Transcript Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptPurchaseAdminListResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/transcripts/internal/{transcript_id}/downloads":{"get":{"tags":["Transcripts Internal"],"summary":"List download history for a transcript (admin)","operationId":"list_transcript_downloads_v2_transcripts_internal__transcript_id__downloads_get","parameters":[{"name":"transcript_id","in":"path","required":true,"schema":{"type":"string","title":"Transcript Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptDownloadAdminListResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/transcripts/internal/{transcript_id}/content":{"get":{"tags":["Transcripts Internal"],"summary":"Get a transcript's raw text content (admin)","operationId":"get_transcript_content_v2_transcripts_internal__transcript_id__content_get","parameters":[{"name":"transcript_id","in":"path","required":true,"schema":{"type":"string","title":"Transcript Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptContentResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/transcripts/internal/{transcript_id}/download-url":{"get":{"tags":["Transcripts Internal"],"summary":"Get a presigned download URL for a transcript file (admin)","operationId":"get_transcript_download_url_v2_transcripts_internal__transcript_id__download_url_get","parameters":[{"name":"transcript_id","in":"path","required":true,"schema":{"type":"string","title":"Transcript Id"}},{"name":"fmt","in":"query","required":false,"schema":{"type":"string","pattern":"^(txt|pdf)$","default":"txt","title":"Fmt"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptDownloadResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/transcripts/internal/{transcript_id}/status":{"patch":{"tags":["Transcripts Internal"],"summary":"Update transcript status (admin)","description":"Set status to published, hidden, or removed. Draft is not settable via this endpoint.","operationId":"patch_transcript_status_v2_transcripts_internal__transcript_id__status_patch","parameters":[{"name":"transcript_id","in":"path","required":true,"schema":{"type":"string","title":"Transcript Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptStatusUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/transcripts/internal/{transcript_id}/metadata":{"patch":{"tags":["Transcripts Internal"],"summary":"Correct transcript title/description/entities/region (admin/portal)","description":"Partial update of ops/portal-editable descriptive fields on a published transcript, without re-upload. Does not touch status.","operationId":"patch_transcript_metadata_v2_transcripts_internal__transcript_id__metadata_patch","parameters":[{"name":"transcript_id","in":"path","required":true,"schema":{"type":"string","title":"Transcript Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/transcripts/internal/pricing/default":{"get":{"tags":["Transcripts Internal"],"summary":"Get the global default transcript price (admin)","operationId":"get_default_price_v2_transcripts_internal_pricing_default_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefaultPriceRead"}}}},"404":{"description":"Not Found","detail":"Not found"}}},"patch":{"tags":["Transcripts Internal"],"summary":"Update the global default transcript price (admin)","operationId":"update_default_price_v2_transcripts_internal_pricing_default_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefaultPriceUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefaultPriceRead"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/transcripts/internal/pricing/default/history":{"get":{"tags":["Transcripts Internal"],"summary":"Get change history for the global default price (admin)","operationId":"get_default_price_history_v2_transcripts_internal_pricing_default_history_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceChangeHistoryResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/transcripts/internal/pricing/clients":{"get":{"tags":["Transcripts Internal"],"summary":"List every client-wide transcript price override (admin)","description":"Returns one row per client that currently has a client-wide override set. Clients with no row here are using the global default price.","operationId":"list_all_client_wide_price_overrides_v2_transcripts_internal_pricing_clients_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ClientPriceOverrideRead"},"type":"array","title":"Response List All Client Wide Price Overrides V2 Transcripts Internal Pricing Clients Get"}}}},"404":{"description":"Not Found","detail":"Not found"}}}},"/v2/transcripts/internal/pricing/clients/{client_id}":{"get":{"tags":["Transcripts Internal"],"summary":"List a client's transcript price overrides (admin)","description":"Returns the client-wide override (if any) plus any specific-transcript overrides.","operationId":"list_client_price_overrides_v2_transcripts_internal_pricing_clients__client_id__get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ClientPriceOverrideRead"},"title":"Response List Client Price Overrides V2 Transcripts Internal Pricing Clients  Client Id  Get"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Transcripts Internal"],"summary":"Set a client-wide transcript price override (admin)","operationId":"set_client_wide_price_override_v2_transcripts_internal_pricing_clients__client_id__put","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientPriceOverrideUpsert"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientPriceOverrideRead"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Transcripts Internal"],"summary":"Clear a client-wide transcript price override (admin)","description":"Falls back to the global default. A no-op (returns null) if there was nothing to clear.","operationId":"clear_client_wide_price_override_v2_transcripts_internal_pricing_clients__client_id__delete","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientPriceOverrideClear"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ClientPriceOverrideRead"},{"type":"null"}],"title":"Response Clear Client Wide Price Override V2 Transcripts Internal Pricing Clients  Client Id  Delete"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/transcripts/internal/pricing/clients/{client_id}/history":{"get":{"tags":["Transcripts Internal"],"summary":"Get change history for a client-wide price override (admin)","operationId":"get_client_wide_price_history_v2_transcripts_internal_pricing_clients__client_id__history_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceChangeHistoryResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/transcripts/internal/{transcript_id}/pricing/clients":{"get":{"tags":["Transcripts Internal"],"summary":"List every client's specific-transcript price override for this transcript (admin)","description":"Returns one row per client that currently has a specific override set for this transcript. Clients with no row here fall back to their client-wide override or the global default.","operationId":"list_transcript_client_price_overrides_v2_transcripts_internal__transcript_id__pricing_clients_get","parameters":[{"name":"transcript_id","in":"path","required":true,"schema":{"type":"string","title":"Transcript Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ClientPriceOverrideRead"},"title":"Response List Transcript Client Price Overrides V2 Transcripts Internal  Transcript Id  Pricing Clients Get"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/transcripts/internal/{transcript_id}/pricing/clients/{client_id}":{"put":{"tags":["Transcripts Internal"],"summary":"Set a specific-transcript price override for a client (admin)","operationId":"set_transcript_client_price_override_v2_transcripts_internal__transcript_id__pricing_clients__client_id__put","parameters":[{"name":"transcript_id","in":"path","required":true,"schema":{"type":"string","title":"Transcript Id"}},{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientPriceOverrideUpsert"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientPriceOverrideRead"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Transcripts Internal"],"summary":"Clear a specific-transcript price override for a client (admin)","description":"Falls back to the client-wide override or global default. A no-op (returns null) if there was nothing to clear.","operationId":"clear_transcript_client_price_override_v2_transcripts_internal__transcript_id__pricing_clients__client_id__delete","parameters":[{"name":"transcript_id","in":"path","required":true,"schema":{"type":"string","title":"Transcript Id"}},{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientPriceOverrideClear"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ClientPriceOverrideRead"},{"type":"null"}],"title":"Response Clear Transcript Client Price Override V2 Transcripts Internal  Transcript Id  Pricing Clients  Client Id  Delete"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/transcripts/internal/{transcript_id}/pricing/clients/{client_id}/history":{"get":{"tags":["Transcripts Internal"],"summary":"Get change history for a specific-transcript price override (admin)","operationId":"get_transcript_client_price_history_v2_transcripts_internal__transcript_id__pricing_clients__client_id__history_get","parameters":[{"name":"transcript_id","in":"path","required":true,"schema":{"type":"string","title":"Transcript Id"}},{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceChangeHistoryResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/portal/entities":{"get":{"tags":["Portal Internal"],"summary":"Search ontology entities for the portal entity combobox","description":"Return ``[{\"id\": ..., \"label\": ...}]`` for the portal transcript upload combobox.\n\nNo user-specific filtering (source_blacklist) is applied — portal users see\nthe full entity set.","operationId":"portal_entity_search_v2_portal_entities_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search term","title":"Search"},"description":"Search term"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"},"title":"Response Portal Entity Search V2 Portal Entities Get"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/prisms/ontology/all-insights":{"get":{"tags":["Prisms Internal"],"summary":"All Insights","description":"The whole prism-eligible insight corpus in one shot.\n\nServed from the in-process store, so the CAMS picker fetches once and\nfilters client-side instead of round-tripping per keystroke. ``version``\nis also the ETag: a client holding the current version gets a 304 with no\nbody. Provider restriction is applied here rather than in the cached\nstore, since the blacklist belongs to the account, not the graph.\n\nServed from the published store; when nothing is published for the current\nontology version the corpus is built live for this one response.","operationId":"all_insights_v2_prisms_ontology_all_insights_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrismInsightStoreResponse"}}}},"404":{"description":"Not Found","detail":"Not found"}}}},"/v2/prisms/ontology/insights/linked":{"get":{"tags":["Prisms Internal"],"summary":"Linked Insight Ids","description":"IDs linked to every selected entity representation.\n\nThe browser already holds the prism-eligible, provider-filtered store.\nThis route returns only graph adjacency; the browser intersects these ids\nlocally, so typing and combining selected entities never query the server.","operationId":"linked_insight_ids_v2_prisms_ontology_insights_linked_get","parameters":[{"name":"entity_id","in":"query","required":true,"schema":{"type":"array","items":{"type":"integer"},"description":"Selected entity carc_ids (paired with entity_representation)","title":"Entity Id"},"description":"Selected entity carc_ids (paired with entity_representation)"},{"name":"entity_representation","in":"query","required":true,"schema":{"type":"array","items":{"type":"string"},"description":"Representations paired 1:1 with entity_id","title":"Entity Representation"},"description":"Representations paired 1:1 with entity_id"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrismInsightLinkedResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/prisms/ontology/entities":{"get":{"tags":["Prisms Internal"],"summary":"Search Entities For Insight","description":"Entity typeahead for the CAMS prism form.\n\n``insight_id`` is optional so operators can pick entities first; when set,\nresults are scoped to entities that support that insight (carc_ids are\nrepresentation-scoped). All-digit ``search`` values look up ``carc_id``\nin Neo4j first, then append label matches that contain the same digits.","operationId":"search_entities_for_insight_v2_prisms_ontology_entities_get","parameters":[{"name":"insight_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"When set, only entities that support this insight","title":"Insight Id"},"description":"When set, only entities that support this insight"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name/alias search; all-digit queries also match carc_id first","title":"Search"},"description":"Name/alias search; all-digit queries also match carc_id first"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Size"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/prisms/location-resolutions":{"post":{"tags":["Prisms Internal"],"summary":"Prism Location Resolutions","description":"Available location grains for an insight + entity set, as the Prism\nservice account would see them (same access rules as refresh).\n\nThe grains returned are exactly those ``get_framework_filters`` reports for\ndaily grain — no fabricated fallback. An insight can advertise ``day``\nsupport in the ontology yet have no daily table for a given entity/location\nslice, so surfacing a grain that doesn't exist only dead-ends later at\npurchase with \"no tables found\". When nothing is available, ``options`` is\nempty and ``default`` is null; CAMS blocks the save rather than offering a\ngrain that can't be computed.","operationId":"prism_location_resolutions_v2_prisms_location_resolutions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_prism_location_resolutions_v2_prisms_location_resolutions_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrismLocationResolutionsResponse"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/prisms/framework-filters":{"post":{"tags":["Prisms Internal"],"summary":"Prism Framework Filters","description":"The framework's advertised filter set for a prism slice — the same\npayload the builder renders, resolved as the Prism service account.\n\nPinned to what a prism can actually purchase (day grain, ``sum``), so the\nadvertised set never offers a configuration the refresh would then fail on.\n``available=False`` mirrors the empty ``/location-resolutions`` case: the\ninsight + entity slice has no valid daily framework at all.\n\nThe caller's current selections come in on ``filters`` because the set is a\nfunction of them — the location dimension offered depends on the selected\n``location_resolution``, exactly as in the builder.","operationId":"prism_framework_filters_v2_prisms_framework_filters_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_prism_framework_filters_v2_prisms_framework_filters_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrismFrameworkFiltersResponse"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/prisms/framework-filters/{filter_key}/options":{"post":{"tags":["Prisms Internal"],"summary":"Prism Framework Filter Options","description":"Option values for one filter key, as the Prism service account.\n\nOnly ``depends_on`` filters need this — ``/framework-filters`` already\ninlines options for the rest. The selections on ``filters`` become the\ndependency scoping, so a child filter lists the values valid for its\nchosen parent.\n\nAn empty set is a normal state for a dependent filter (the parent has no\nchildren in this slice), so it returns no options rather than a 404.","operationId":"prism_framework_filter_options_v2_prisms_framework_filters__filter_key__options_post","parameters":[{"name":"filter_key","in":"path","required":true,"schema":{"type":"string","title":"Filter Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_prism_framework_filter_options_v2_prisms_framework_filters__filter_key__options_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrismFilterOptionsResponse"}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/prisms/refresh-readiness":{"post":{"tags":["Prisms Internal"],"summary":"Prism Refresh Readiness","description":"Freshness gate for the 15-minute recompute tick: which prisms have new\ndata worth paying for? Batch — one call covers every live prism.\n\nPer prism: resolve the granted tables at compute-time (the ontology edge\nis the authority; the set is a function of the whole slice and shifts on\nontology rebuilds), read each table's ``table_max_date`` data edge, and\ncompare it against that table's *own* last-consumed edge. Strict ALL:\nready only when every granted table advanced — a series must never gain a\nday computed from a subset of its sources while history used all of them.\nNeo4j + PG only — no warehouse touch. Fail-open per table on any missing\nsignal (new table, no edge row), and per prism when nothing resolves.","operationId":"prism_refresh_readiness_v2_prisms_refresh_readiness_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_prism_refresh_readiness_v2_prisms_refresh_readiness_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrismReadinessResponse"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/prisms/source-dependencies":{"post":{"tags":["Prisms Internal"],"summary":"Prism Source Dependencies","description":"core_source dependency sets for prism slices, derived live from the\nontology (never stored). CAMS uses this to preview which live prisms a\npending provider restriction on the Prism account would unpublish, and to\ngate a restricted prism from going live.","operationId":"prism_source_dependencies_v2_prisms_source_dependencies_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_prism_source_dependencies_v2_prisms_source_dependencies_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrismSourceDependenciesResponse"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/prisms/refresh":{"post":{"tags":["Prisms Internal"],"summary":"Refresh Prism","description":"Recompute one prism: purchase its framework as the Prism service\naccount (data restrictions and order-history observability apply), derive\nthe relative series, and return the snapshot entry. Stateless — CAMS\npersists the result to its audit trail and serving cache.","operationId":"refresh_prism_v2_prisms_refresh_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_refresh_prism_v2_prisms_refresh_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrismRefreshResponse"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/prisms/preview":{"post":{"tags":["Prisms Internal"],"summary":"Preview Prism","description":"Compute a prism the exact way a refresh does, without publishing — so\nCAMS can render the platform view of a draft before it goes live.\n\nStateless: always purchases and derives (the framework purchase dedups on\nconfig, so a repeat preview prices to $0). CAMS holds the read-through\npreview cache; ``cached`` is always False here and set by CAMS on its hits.","operationId":"preview_prism_v2_prisms_preview_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_preview_prism_v2_prisms_preview_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrismPreviewResponse"}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/precompute/status":{"get":{"tags":["Precompute Internal"],"summary":"Precompute Status","description":"Published, staged, and resident state for every artifact.","operationId":"precompute_status_v2_precompute_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not Found","detail":"Not found"}}}},"/v2/precompute/shape/{name}":{"get":{"tags":["Precompute Internal"],"summary":"Precompute Shape","description":"The structure of one artifact's published payload.\n\nNo build context: this reads Redis and nothing else, so it neither opens a\nPostgres connection nor asks the graph what version it is on.","operationId":"precompute_shape_v2_precompute_shape__name__get","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/precompute/diff/{name}":{"get":{"tags":["Precompute Internal"],"summary":"Precompute Diff","description":"What the published payload added against the version archived before it.\n\nReads Postgres and Redis, never the graph. Decoding two payloads is seconds\nof CPU for the entity store, which is why this is one artifact per call and\ninvoked when an operator opens a row.","operationId":"precompute_diff_v2_precompute_diff__name__get","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/precompute/archive/{name}":{"get":{"tags":["Precompute Internal"],"summary":"Precompute Archive","description":"Which versions of one artifact are still recoverable from the archive.","operationId":"precompute_archive_v2_precompute_archive__name__get","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/precompute/build":{"post":{"tags":["Precompute Internal"],"summary":"Start Precompute Build","description":"Start a build, which publishes what it writes when it finishes.\n\nReturns the queued job; poll ``/build/{id}`` for progress.","operationId":"start_precompute_build_v2_precompute_build_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/precompute/build/{job_id}":{"get":{"tags":["Precompute Internal"],"summary":"Get Precompute Build","operationId":"get_precompute_build_v2_precompute_build__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/precompute/build/{job_id}/stop":{"post":{"tags":["Precompute Internal"],"summary":"Stop Precompute Build","description":"Stop a running build, wherever it is running.\n\nThe break glass for a build that is alive but wedged: the lease it renews\nkeeps it from expiring on its own, so an operator has to be able to say so.\nReleases the build lock, marks the job stopped, and broadcasts a cancel to\nevery pod.\n\nNothing being served changes. A build only alters what is published in its\nfinal phase, so one stopped before that has published nothing, and whatever\nit staged stays in Redis for ``POST /activate`` to take live if that turns\nout to be wanted.\n\nThere is no restart endpoint: restarting is this call followed by\n``POST /build``, which is a new job with its own record either way.\n\nReturns the stopped job in the same shape ``GET /build/{job_id}`` serves,\nwith what the stop itself did alongside it.","operationId":"stop_precompute_build_v2_precompute_build__job_id__stop_post","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/StopRequest"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"detail":"Not found","description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/precompute/activate":{"post":{"tags":["Precompute Internal"],"summary":"Activate Precompute","description":"Publish the named versions and broadcast a reload to every pod.\n\nBuilds do this themselves. What is left for this endpoint is rolling back\nto a payload an earlier build wrote.","operationId":"activate_precompute_v2_precompute_activate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v2/cache/clear":{"post":{"tags":["Cache Internal"],"summary":"Clear Cache","description":"Drop the selected power-api cache(s). Safe at any time: callers\nre-populate the cache on their next read.","operationId":"clear_cache_v2_cache_clear_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClearCacheRequest","default":{"caches":["all"]}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not Found","detail":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AccessRequestCreate":{"properties":{"request_type":{"type":"string","enum":["access","diligence","compliance"],"title":"Request Type","default":"access"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"additionalProperties":false,"type":"object","title":"AccessRequestCreate"},"AccessRequestResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"asset_id":{"type":"string","format":"uuid","title":"Asset Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"user_id":{"type":"string","format":"uuid","title":"User Id"},"request_type":{"type":"string","title":"Request Type"},"status":{"type":"string","title":"Status"},"routed_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Routed To"}},"type":"object","required":["id","asset_id","client_id","user_id","request_type","status"],"title":"AccessRequestResponse"},"ActivateRequest":{"properties":{"job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Id","description":"Republish everything this build wrote."},"versions":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Versions","description":"Explicit artifact -> version map. The rollback path."}},"type":"object","title":"ActivateRequest"},"AdminAssetResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"source_id":{"type":"string","format":"uuid","title":"Source Id"},"provider_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Provider Id"},"title":{"type":"string","title":"Title"},"status":{"type":"string","title":"Status"},"tier":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tier"},"is_new":{"type":"boolean","title":"Is New"},"is_premium":{"type":"boolean","title":"Is Premium","default":false},"publish_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Publish Date"},"last_validated_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Validated Date"},"metadata":{"anyOf":[{"$ref":"#/components/schemas/AssetMetadataResponse"},{"type":"null"}]},"provider_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Name"},"gated":{"type":"boolean","title":"Gated","default":false},"cta":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cta"},"external_id":{"type":"string","title":"External Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"vote_count":{"type":"integer","title":"Vote Count","default":0}},"type":"object","required":["id","source_id","title","status","is_new","external_id","created_at","updated_at"],"title":"AdminAssetResponse","description":"Asset response with additional admin fields (external_id, timestamps, vote_count)."},"AdminListAssetsResponse":{"properties":{"assets":{"items":{"$ref":"#/components/schemas/AdminAssetResponse"},"type":"array","title":"Assets"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["assets","total"],"title":"AdminListAssetsResponse"},"AssetDetailResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"source_id":{"type":"string","format":"uuid","title":"Source Id"},"provider_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Provider Id"},"title":{"type":"string","title":"Title"},"status":{"type":"string","title":"Status"},"tier":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tier"},"is_new":{"type":"boolean","title":"Is New"},"is_premium":{"type":"boolean","title":"Is Premium","default":false},"publish_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Publish Date"},"last_validated_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Validated Date"},"metadata":{"anyOf":[{"$ref":"#/components/schemas/AssetMetadataResponse"},{"type":"null"}]},"provider_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Name"},"gated":{"type":"boolean","title":"Gated","default":false},"cta":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cta"},"samples":{"items":{"type":"object"},"type":"array","title":"Samples","default":[]},"dictionary":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Dictionary"}},"type":"object","required":["id","source_id","title","status","is_new"],"title":"AssetDetailResponse","description":"Full asset detail — extends AssetResponse with samples and data dictionary."},"AssetMetadataResponse":{"properties":{"overview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Overview"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"data_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Category"},"data_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Type"},"frequency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Frequency"},"geography":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Geography"},"coverage":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Coverage"},"panel_size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Panel Size"},"history":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"History"},"lag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lag"},"bias":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bias"},"granularity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Granularity"},"key_metrics":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Key Metrics"},"example_use_cases":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Example Use Cases"},"other_highlights":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Other Highlights"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"linkedin_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linkedin Url"},"x_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X Url"}},"type":"object","title":"AssetMetadataResponse"},"AssetResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"source_id":{"type":"string","format":"uuid","title":"Source Id"},"provider_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Provider Id"},"title":{"type":"string","title":"Title"},"status":{"type":"string","title":"Status"},"tier":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tier"},"is_new":{"type":"boolean","title":"Is New"},"is_premium":{"type":"boolean","title":"Is Premium","default":false},"publish_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Publish Date"},"last_validated_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Validated Date"},"metadata":{"anyOf":[{"$ref":"#/components/schemas/AssetMetadataResponse"},{"type":"null"}]},"provider_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Name"},"gated":{"type":"boolean","title":"Gated","default":false},"cta":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cta"}},"type":"object","required":["id","source_id","title","status","is_new"],"title":"AssetResponse","description":"Core asset fields plus optional metadata. Built from ORM instances via model_validate."},"BatchPlanTypesRequest":{"properties":{"client_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Client Ids"}},"type":"object","required":["client_ids"],"title":"BatchPlanTypesRequest"},"BatchPlanTypesResponse":{"properties":{"plan_types":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":"object","title":"Plan Types"}},"type":"object","required":["plan_types"],"title":"BatchPlanTypesResponse"},"BlockAccessType":{"type":"string","enum":["Forward Feed","Historic"],"title":"BlockAccessType"},"BlockDatasetCut":{"properties":{"cut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut"},"lags":{"items":{"type":"string"},"type":"array","title":"Lags","default":[]},"annual_price":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Annual Price"},"bulk_row_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bulk Row Status"},"request_statuses":{"additionalProperties":{"$ref":"#/components/schemas/BlockRequestStatus"},"type":"object","title":"Request Statuses","default":{}}},"type":"object","required":["cut"],"title":"BlockDatasetCut"},"BlockDatasetCutsEntry":{"properties":{"cut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut"},"lags":{"items":{"type":"string"},"type":"array","title":"Lags","default":[]}},"type":"object","required":["cut"],"title":"BlockDatasetCutsEntry","description":"Lag chips shown in the CAMS pricing card under the cut selector\nand in the power-ui request modal's lag dropdown."},"BlockDatasetCutsResponse":{"properties":{"dataset_id":{"type":"string","title":"Dataset Id"},"cuts":{"items":{"$ref":"#/components/schemas/BlockDatasetCutsEntry"},"type":"array","title":"Cuts"}},"type":"object","required":["dataset_id","cuts"],"title":"BlockDatasetCutsResponse"},"BlockDatasetEntry":{"properties":{"dataset_id":{"type":"string","title":"Dataset Id"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"vendor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor"},"offered_access_type":{"anyOf":[{"$ref":"#/components/schemas/BlockAccessType"},{"type":"null"}]},"cuts":{"items":{"$ref":"#/components/schemas/BlockDatasetCut"},"type":"array","title":"Cuts","default":[]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"frequency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Frequency"},"history":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"History"},"lag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lag"},"use_cases":{"items":{"type":"string"},"type":"array","title":"Use Cases","default":[]},"ecosystem":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ecosystem"},"status":{"type":"string","title":"Status","default":"ready"},"terms_of_use_html":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Of Use Html"},"terms_of_use_version_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Terms Of Use Version Id"}},"type":"object","required":["dataset_id"],"title":"BlockDatasetEntry"},"BlockDatasetsResponse":{"properties":{"datasets":{"items":{"$ref":"#/components/schemas/BlockDatasetEntry"},"type":"array","title":"Datasets"}},"type":"object","required":["datasets"],"title":"BlockDatasetsResponse"},"BlockRequestStatus":{"type":"string","enum":["NONE","PENDING","APPROVED","TRIAL_ACTIVE","CONTRACTED","DENIED"],"title":"BlockRequestStatus"},"Body_collection_framework_metadata_v2_framework_metadata_post":{"properties":{"frameworks":{"items":{"$ref":"#/components/schemas/FrameworkRequest"},"type":"array","title":"Frameworks"},"config":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}},"type":"object","required":["frameworks"],"title":"Body_collection_framework_metadata_v2_framework_metadata_post"},"Body_create_framework_group_v2_framework_groups_post":{"properties":{"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"framework_ids":{"items":{"type":"string"},"type":"array","title":"Framework Ids","default":[]},"config":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}},"type":"object","required":["name"],"title":"Body_create_framework_group_v2_framework_groups_post"},"Body_create_framework_order_v2_framework_buy_post":{"properties":{"order":{"anyOf":[{"$ref":"#/components/schemas/FrameworkOrderCreate"},{"type":"null"}]},"framework_id":{"anyOf":[{"type":"string","format":"uuid"},{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Framework Id"},"source":{"anyOf":[{"type":"string","enum":["tribes","riastrad","prisms"]},{"type":"null"}],"title":"Source"},"config":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}},"type":"object","title":"Body_create_framework_order_v2_framework_buy_post"},"Body_framework_filter_options_v2_framework_filters__filter_key__options_post":{"properties":{"framework":{"$ref":"#/components/schemas/FrameworkRequest"},"config":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}},"type":"object","required":["framework"],"title":"Body_framework_filter_options_v2_framework_filters__filter_key__options_post"},"Body_framework_filters_v2_framework_filters_post":{"properties":{"framework":{"$ref":"#/components/schemas/FrameworkRequest"},"config":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}},"type":"object","required":["framework"],"title":"Body_framework_filters_v2_framework_filters_post"},"Body_preview_framework_code_v2_framework_code_preview_post":{"properties":{"framework":{"$ref":"#/components/schemas/FrameworkRequest"},"config":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}},"type":"object","required":["framework"],"title":"Body_preview_framework_code_v2_framework_code_preview_post"},"Body_preview_prism_v2_prisms_preview_post":{"properties":{"payload":{"$ref":"#/components/schemas/PrismPreviewRequest"},"config":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}},"type":"object","required":["payload"],"title":"Body_preview_prism_v2_prisms_preview_post"},"Body_prism_framework_filter_options_v2_prisms_framework_filters__filter_key__options_post":{"properties":{"payload":{"$ref":"#/components/schemas/PrismFrameworkFiltersRequest"},"config":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}},"type":"object","required":["payload"],"title":"Body_prism_framework_filter_options_v2_prisms_framework_filters__filter_key__options_post"},"Body_prism_framework_filters_v2_prisms_framework_filters_post":{"properties":{"payload":{"$ref":"#/components/schemas/PrismFrameworkFiltersRequest"},"config":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}},"type":"object","required":["payload"],"title":"Body_prism_framework_filters_v2_prisms_framework_filters_post"},"Body_prism_location_resolutions_v2_prisms_location_resolutions_post":{"properties":{"payload":{"$ref":"#/components/schemas/PrismLocationResolutionsRequest"},"config":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}},"type":"object","required":["payload"],"title":"Body_prism_location_resolutions_v2_prisms_location_resolutions_post"},"Body_prism_refresh_readiness_v2_prisms_refresh_readiness_post":{"properties":{"payload":{"$ref":"#/components/schemas/PrismReadinessRequest"},"config":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}},"type":"object","required":["payload"],"title":"Body_prism_refresh_readiness_v2_prisms_refresh_readiness_post"},"Body_prism_source_dependencies_v2_prisms_source_dependencies_post":{"properties":{"payload":{"$ref":"#/components/schemas/PrismSourceDependenciesRequest"},"config":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}},"type":"object","required":["payload"],"title":"Body_prism_source_dependencies_v2_prisms_source_dependencies_post"},"Body_refresh_prism_v2_prisms_refresh_post":{"properties":{"payload":{"$ref":"#/components/schemas/PrismRefreshRequest"},"config":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}},"type":"object","required":["payload"],"title":"Body_refresh_prism_v2_prisms_refresh_post"},"Body_update_framework_group_v2_framework_groups__group_id__put":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"framework_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Framework Ids"},"config":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}},"type":"object","title":"Body_update_framework_group_v2_framework_groups__group_id__put"},"Body_update_framework_name_v2_framework__framework_id__name_patch":{"properties":{"name":{"type":"string","title":"Name"},"config":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}},"type":"object","required":["name"],"title":"Body_update_framework_name_v2_framework__framework_id__name_patch"},"Body_update_user_order_display_name_v2_clients_me_orders__order_id__patch":{"properties":{"display_name":{"type":"string","title":"Display Name"},"config":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Config"}},"type":"object","required":["display_name"],"title":"Body_update_user_order_display_name_v2_clients_me_orders__order_id__patch"},"BrowseRoleResult":{"properties":{"role":{"type":"string","title":"Role"},"assigned":{"type":"boolean","title":"Assigned"}},"type":"object","required":["role","assigned"],"title":"BrowseRoleResult"},"BuildRequest":{"properties":{"artifacts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Artifacts","description":"Artifact names to build; all of them when omitted."},"force":{"type":"boolean","title":"Force","description":"Rebuild even when the published payload already matches.","default":false},"dry_run":{"type":"boolean","title":"Dry Run","description":"Scan and report sizes without staging anything.","default":false},"resume":{"type":"boolean","title":"Resume","description":"Publish payloads an earlier build already staged at this version instead of scanning for them again. Separate from force, which governs what is published rather than what is merely staged.","default":false},"triggered_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Triggered By","description":"Operator identity, recorded on the job."}},"type":"object","title":"BuildRequest"},"BulkBrowseResponse":{"properties":{"principal_name":{"type":"string","title":"Principal Name"},"roles":{"items":{"$ref":"#/components/schemas/BrowseRoleResult"},"type":"array","title":"Roles"}},"type":"object","required":["principal_name","roles"],"title":"BulkBrowseResponse"},"CakeTaskScheduleItem":{"properties":{"next_run_start":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Run Start"},"next_run_end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Run End"},"last_update":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Update"}},"type":"object","title":"CakeTaskScheduleItem"},"CakeTaskScheduleResponse":{"properties":{"schedules":{"items":{"$ref":"#/components/schemas/CakeTaskScheduleItem"},"type":"array","title":"Schedules"}},"type":"object","required":["schedules"],"title":"CakeTaskScheduleResponse"},"CatalogAssetAdminUpdate":{"properties":{"status":{"anyOf":[{"type":"string","enum":["draft","published","compliance_requested","archived","sync_archived"]},{"type":"null"}],"title":"Status"},"tier":{"anyOf":[{"type":"integer","maximum":3.0,"minimum":1.0},{"type":"null"}],"title":"Tier"},"is_new":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is New"},"is_premium":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Premium"},"publish_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Publish Date"}},"additionalProperties":false,"type":"object","title":"CatalogAssetAdminUpdate","description":"Partial update for admin-controlled catalog asset fields."},"CatalogClientAuditLogResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"changed_by_email":{"type":"string","title":"Changed By Email"},"changed_at":{"type":"string","format":"date-time","title":"Changed At"},"field_changed":{"type":"string","title":"Field Changed"},"old_value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Old Value"},"new_value":{"type":"string","title":"New Value"}},"type":"object","required":["id","client_id","changed_by_email","changed_at","field_changed","old_value","new_value"],"title":"CatalogClientAuditLogResponse"},"CatalogClientCreate":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"name":{"type":"string","title":"Name"},"plan_type":{"type":"string","enum":["standard","library_only","enterprise","ido_premium"],"title":"Plan Type","default":"standard"}},"additionalProperties":false,"type":"object","required":["name"],"title":"CatalogClientCreate"},"CatalogClientResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"plan_type":{"type":"string","title":"Plan Type"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","plan_type","created_at","updated_at"],"title":"CatalogClientResponse"},"CatalogClientUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"plan_type":{"anyOf":[{"type":"string","enum":["standard","library_only","enterprise","ido_premium"]},{"type":"null"}],"title":"Plan Type"}},"additionalProperties":false,"type":"object","title":"CatalogClientUpdate"},"Category":{"properties":{"category_id":{"type":"integer","title":"Category Id"},"category_label":{"type":"string","title":"Category Label"},"category_count":{"type":"integer","title":"Category Count"}},"type":"object","required":["category_id","category_label","category_count"],"title":"Category"},"CategoryResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/Category"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"CategoryResponse"},"ClearCacheRequest":{"properties":{"caches":{"items":{"type":"string","enum":["all","ontology_entities","insights_search","framework_filters","data_library","query_result_cache","auth_sessions","flight_result","flight_facade"]},"type":"array","minItems":1,"title":"Caches","default":["all"]}},"type":"object","title":"ClearCacheRequest","description":"Which power-api cache(s) to flush. Defaults to [\"all\"] so a bare\n``POST /clear`` with no body behaves exactly as it did before this\nendpoint accepted a body. \"all\" always means \"clear everything\" and\nshort-circuits any other names present in the same request -- it isn't\nadditive with specific buckets."},"ClientBalanceResponse":{"properties":{"total_balance":{"type":"number","title":"Total Balance"},"promotional_balance":{"type":"number","title":"Promotional Balance"},"purchased_balance":{"type":"number","title":"Purchased Balance"},"expiry_schedule":{"items":{"$ref":"#/components/schemas/ExpiryScheduleItem"},"type":"array","title":"Expiry Schedule"}},"type":"object","required":["total_balance","promotional_balance","purchased_balance","expiry_schedule"],"title":"ClientBalanceResponse"},"ClientPriceOverrideClear":{"properties":{"actor":{"type":"string","minLength":1,"title":"Actor"},"rationale":{"type":"string","maxLength":2000,"minLength":1,"title":"Rationale"}},"type":"object","required":["actor","rationale"],"title":"ClientPriceOverrideClear"},"ClientPriceOverrideRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"transcript_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Transcript Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"custom_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Custom Price"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","client_id","updated_at"],"title":"ClientPriceOverrideRead","description":"A single override row. ``transcript_id`` is None for a client-wide override."},"ClientPriceOverrideUpsert":{"properties":{"price":{"type":"number","minimum":0.0,"title":"Price"},"actor":{"type":"string","minLength":1,"title":"Actor"},"rationale":{"type":"string","maxLength":2000,"minLength":1,"title":"Rationale"}},"type":"object","required":["price","actor","rationale"],"title":"ClientPriceOverrideUpsert"},"CodeResponse":{"properties":{"code":{"type":"string","title":"Code"}},"type":"object","required":["code"],"title":"CodeResponse"},"DataDictionary":{"properties":{"entity_topic_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Entity Topic Id"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"columns":{"anyOf":[{"type":"object"},{"items":{},"type":"array"},{"type":"null"}],"title":"Columns","default":{}}},"type":"object","title":"DataDictionary"},"DataFrameResponse":{"properties":{"type":{"type":"string","const":"dataframe","title":"Type"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"size":{"type":"integer","title":"Size"},"pages":{"type":"integer","title":"Pages"},"insight_column":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insight Column"},"data":{"items":{"type":"object"},"type":"array","title":"Data"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"metadata_info":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Metadata Info"}},"type":"object","required":["type","total","page","size","pages","data"],"title":"DataFrameResponse"},"DataLibrarySource":{"properties":{"carc_id":{"type":"integer","title":"Carc Id"},"category":{"type":"string","title":"Category"},"subcategory":{"type":"string","title":"Subcategory"},"ecosystem_type":{"type":"string","title":"Ecosystem Type"},"provider_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Name"},"dataset_name":{"type":"string","title":"Dataset Name"},"dataset_id":{"items":{"type":"string"},"type":"array","title":"Dataset Id"},"description":{"type":"string","title":"Description"},"data":{"type":"object","title":"Data"},"topic_data_dictionary":{"anyOf":[{"items":{"type":"object"},"type":"array"},{"type":"null"}],"title":"Topic Data Dictionary"},"blocked":{"type":"boolean","title":"Blocked"},"public":{"type":"boolean","title":"Public"},"last_updated_timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Updated Timestamp"},"is_current":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Current"},"ontime_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ontime Status"},"subject_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject Id"},"subject_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject Label"},"has_confidence_report":{"type":"boolean","title":"Has Confidence Report"}},"type":"object","required":["carc_id","category","subcategory","ecosystem_type","dataset_name","dataset_id","description","data","blocked","public","has_confidence_report"],"title":"DataLibrarySource"},"DataLibrarySourcesResponse":{"properties":{"page":{"type":"integer","title":"Page"},"size":{"type":"integer","title":"Size"},"total":{"type":"integer","title":"Total"},"total_pages":{"type":"integer","title":"Total Pages"},"datasources":{"items":{"$ref":"#/components/schemas/DataLibrarySource"},"type":"array","title":"Datasources"}},"type":"object","required":["page","size","total","total_pages","datasources"],"title":"DataLibrarySourcesResponse"},"DataSource":{"properties":{"provider_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Name"},"dataset_name":{"type":"string","title":"Dataset Name"},"dataset_id":{"items":{"type":"string"},"type":"array","title":"Dataset Id"},"description":{"type":"string","title":"Description"},"blocked":{"type":"boolean","title":"Blocked"},"last_updated_timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Updated Timestamp"},"data":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Data"},"is_current":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Current"},"label":{"type":"string","title":"Label","description":"Mirror of ``dataset_name`` so the data-library response uses the\nsame ``label`` key Block surfaces. Derived at serialize time —\nnothing to populate on the source dict.","readOnly":true}},"type":"object","required":["dataset_name","dataset_id","description","blocked","label"],"title":"DataSource"},"DataSourcesResponse":{"properties":{"page":{"type":"integer","title":"Page"},"size":{"type":"integer","title":"Size"},"total":{"type":"integer","title":"Total"},"total_pages":{"type":"integer","title":"Total Pages"},"datasources":{"items":{"$ref":"#/components/schemas/DataSource"},"type":"array","title":"Datasources"}},"type":"object","required":["page","size","total","total_pages","datasources"],"title":"DataSourcesResponse"},"DatasetMatch":{"properties":{"dataset_id":{"items":{"type":"string"},"type":"array","title":"Dataset Id","description":"Dataset ID(s)"},"dataset_name":{"type":"string","title":"Dataset Name","description":"Name of the data asset"},"description":{"type":"string","title":"Description","description":"Data asset description"},"category":{"type":"string","title":"Category","description":"Data asset category (demand/supply/reference)"},"provider_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Name","description":"Data provider name"},"match_score":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Match Score","description":"Relevance score 0-100"},"use_cases":{"items":{"type":"string"},"type":"array","title":"Use Cases","description":"Example use cases for this data asset","default":[]}},"type":"object","required":["dataset_id","dataset_name","description","category","match_score"],"title":"DatasetMatch","description":"A matched data asset with relevance score."},"DefaultPriceRead":{"properties":{"default_price":{"type":"number","title":"Default Price"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"updated_by":{"type":"string","title":"Updated By"}},"type":"object","required":["default_price","updated_at","updated_by"],"title":"DefaultPriceRead"},"DefaultPriceUpdate":{"properties":{"price":{"type":"number","exclusiveMinimum":0.0,"title":"Price"},"actor":{"type":"string","minLength":1,"title":"Actor"},"rationale":{"type":"string","maxLength":2000,"minLength":1,"title":"Rationale"}},"type":"object","required":["price","actor","rationale"],"title":"DefaultPriceUpdate"},"EntityCategoryDetail":{"properties":{"entity_id":{"type":"integer","title":"Entity Id"},"label":{"type":"string","title":"Label"},"entity":{"type":"string","title":"Entity"},"entity_domain":{"type":"string","title":"Entity Domain"},"entity_representation_name":{"type":"string","title":"Entity Representation Name"},"entity_representation_label":{"type":"string","title":"Entity Representation Label"}},"type":"object","required":["entity_id","label","entity","entity_domain","entity_representation_name","entity_representation_label"],"title":"EntityCategoryDetail"},"EntityCategoryResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EntityCategoryResponseItem"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"EntityCategoryResponse"},"EntityCategoryResponseItem":{"properties":{"category_label":{"type":"string","title":"Category Label"},"representations":{"items":{"$ref":"#/components/schemas/EntityCategoryDetail"},"type":"array","title":"Representations"}},"type":"object","required":["category_label","representations"],"title":"EntityCategoryResponseItem"},"EntityDetailsResponse":{"properties":{"carc_id":{"type":"integer","title":"Carc Id"},"carc_name":{"type":"string","title":"Carc Name"},"entity_label":{"type":"string","title":"Entity Label"},"entity_representation_name":{"type":"string","title":"Entity Representation Name"},"entity_representation_label":{"type":"string","title":"Entity Representation Label"},"entity_domain":{"type":"string","title":"Entity Domain"},"entity":{"type":"string","title":"Entity"}},"type":"object","required":["carc_id","carc_name","entity_label","entity_representation_name","entity_representation_label","entity_domain","entity"],"title":"EntityDetailsResponse"},"EntityInsightsResponse":{"properties":{"entities":{"items":{"type":"object"},"type":"array","title":"Entities"}},"type":"object","required":["entities"],"title":"EntityInsightsResponse"},"EntityMapResponse":{"items":{"$ref":"#/components/schemas/EntityMapResponseItem"},"type":"array","title":"EntityMapResponse"},"EntityMapResponseItem":{"properties":{"entity":{"type":"string","title":"Entity"},"domain":{"type":"string","title":"Domain"},"representation":{"type":"string","title":"Representation"}},"type":"object","required":["entity","domain","representation"],"title":"EntityMapResponseItem"},"EntityResponse":{"properties":{"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"size":{"type":"integer","title":"Size"},"pages":{"type":"integer","title":"Pages"},"entities":{"anyOf":[{"items":{"$ref":"#/components/schemas/EntityResponseItem"},"type":"array"},{"type":"null"}],"title":"Entities"}},"type":"object","required":["total","page","size","pages"],"title":"EntityResponse"},"EntityResponseItem":{"properties":{"entity":{"type":"string","title":"Entity"},"entity_domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Domain","default":""},"entity_domain_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Domain Label","default":""},"entity_representation":{"type":"string","title":"Entity Representation"},"entity_representation_label":{"type":"string","title":"Entity Representation Label"},"label":{"type":"string","title":"Label"},"entity_id":{"type":"integer","title":"Entity Id"},"entity_id_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Id Key"},"figi_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Figi Code"},"metadata":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Metadata"},"relevance_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Relevance Score"},"carc_id":{"type":"integer","title":"Carc Id","description":"Alias for entity_id for backward compatibility.","readOnly":true},"representation":{"type":"string","title":"Representation","description":"Alias for entity_representation for backward compatibility.","readOnly":true}},"type":"object","required":["entity","entity_representation","entity_representation_label","label","entity_id","carc_id","representation"],"title":"EntityResponseItem"},"ExampleTableResponse":{"properties":{"namespace":{"type":"string","title":"Namespace"},"table":{"type":"string","title":"Table"}},"type":"object","required":["namespace","table"],"title":"ExampleTableResponse"},"ExpiryScheduleItem":{"properties":{"amount":{"type":"number","title":"Amount"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"token_type":{"type":"string","title":"Token Type"}},"type":"object","required":["amount","expires_at","token_type"],"title":"ExpiryScheduleItem"},"FilterOptionValue":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"}},"type":"object","required":["key","label"],"title":"FilterOptionValue"},"FrameworkCollectionResponse":{"properties":{"total_price":{"type":"number","title":"Total Price"},"number_of_frameworks":{"type":"integer","title":"Number Of Frameworks"},"frameworks":{"items":{"$ref":"#/components/schemas/FrameworkMetadataResponse"},"type":"array","title":"Frameworks"}},"type":"object","required":["total_price","number_of_frameworks","frameworks"],"title":"FrameworkCollectionResponse"},"FrameworkDataStatus":{"properties":{"framework_id":{"type":"string","format":"uuid","title":"Framework Id"},"refresh_available":{"type":"boolean","title":"Refresh Available"},"reinstatement_available":{"type":"boolean","title":"Reinstatement Available"},"framework_refresh_timestamp":{"type":"string","format":"date-time","title":"Framework Refresh Timestamp"},"framework_reinstatement_timestamp":{"type":"string","format":"date-time","title":"Framework Reinstatement Timestamp"},"insight_refresh_timestamp":{"type":"string","format":"date-time","title":"Insight Refresh Timestamp"},"insight_reinstatement_timestamp":{"type":"string","format":"date-time","title":"Insight Reinstatement Timestamp"},"last_reinstatement_reason":{"anyOf":[{"type":"string","enum":["Ontology Change","Full Refresh","Vendor Reinstatement","Vendor Backfill","Logic Enhancement"]},{"type":"null"}],"title":"Last Reinstatement Reason"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["framework_id","refresh_available","reinstatement_available","framework_refresh_timestamp","framework_reinstatement_timestamp","insight_refresh_timestamp","insight_reinstatement_timestamp"],"title":"FrameworkDataStatus"},"FrameworkEntityRequest":{"properties":{"carc_id":{"type":"integer","title":"Carc Id"},"representation":{"type":"string","title":"Representation"},"entity_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Name"}},"type":"object","required":["carc_id","representation"],"title":"FrameworkEntityRequest"},"FrameworkEventRequest":{"properties":{"event_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Id"},"representation":{"type":"string","title":"Representation"},"event_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Name"},"event_category_id":{"anyOf":[{"type":"integer"},{"type":"string"},{"type":"null"}],"title":"Event Category Id"}},"type":"object","required":["representation"],"title":"FrameworkEventRequest","description":"Minimal event primitive for framework compositions.\n\nWire-layer validator: rejects bad combinations before the request ever\nreaches the framework service, so failures surface as a clean 422 instead\nof bubbling up as a ``PipelineError`` from inside gateau. The canonical\nrule sources live in :mod:`gateau.framework.constants`:\n\n- ``EVENT_REPRESENTATION_TYPES`` — the full set of allowed event reps.\n- ``PARENT_EVENT_REPRESENTATION_TYPES`` — the subset valid when an\n  ``event_id`` is supplied (since ``event_id`` is the parent event id,\n  mapped to fact-table ``parent_event_id``)."},"FrameworkFilter":{"properties":{"key":{"type":"string","title":"Key","description":"location"},"label":{"type":"string","title":"Label","description":"State Name"},"depends_on":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Depends On","description":"location_resolution"},"select_type":{"type":"string","title":"Select Type","description":"multi-selection"},"filter_group":{"type":"string","title":"Filter Group","description":"categorical"},"db_column":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Column"},"default_value":{"anyOf":[{"type":"string"},{"items":{},"type":"array"},{"type":"object"},{"type":"null"}],"title":"Default Value"},"option_values":{"anyOf":[{"items":{"$ref":"#/components/schemas/FilterOptionValue"},"type":"array"},{"type":"null"}],"title":"Option Values"},"table_earliest_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Table Earliest Date"},"table_latest_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Table Latest Date"}},"type":"object","required":["key","label","select_type","filter_group"],"title":"FrameworkFilter"},"FrameworkFiltersResponse":{"properties":{"filters":{"items":{"$ref":"#/components/schemas/FrameworkFilter"},"type":"array","title":"Filters"},"aggregate_options":{"anyOf":[{"items":{"type":"string","enum":["sum","mean","count_distinct"]},"type":"array"},{"type":"null"}],"title":"Aggregate Options"}},"type":"object","required":["filters","aggregate_options"],"title":"FrameworkFiltersResponse"},"FrameworkInsightRequest":{"properties":{"insight_id":{"type":"integer","title":"Insight Id"},"insight_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insight Name"}},"type":"object","required":["insight_id"],"title":"FrameworkInsightRequest"},"FrameworkMetadataResponse":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"payload":{"$ref":"#/components/schemas/FrameworkRequest"},"refreshed_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refreshed Date"},"reinstated_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reinstated Date"},"reinstatement_reason":{"type":"string","enum":["Ontology Change","Full Refresh","Vendor Reinstatement","Vendor Backfill","Logic Enhancement"],"title":"Reinstatement Reason"},"ontology_version":{"type":"string","title":"Ontology Version"},"price":{"type":"number","title":"Price"},"table_max_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Table Max Date"},"columns":{"anyOf":[{"items":{"$ref":"#/components/schemas/SchemaColumn"},"type":"array"},{"type":"null"}],"title":"Columns"},"data_type":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Data Type"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"latest_framework_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Latest Framework Id"},"is_superseded":{"type":"boolean","title":"Is Superseded","default":false}},"type":"object","required":["payload","refreshed_date","reinstated_date","reinstatement_reason","ontology_version","price","table_max_date"],"title":"FrameworkMetadataResponse"},"FrameworkOrderCreate":{"properties":{"frameworks":{"items":{"$ref":"#/components/schemas/FrameworkRequest"},"type":"array","title":"Frameworks"}},"additionalProperties":false,"type":"object","required":["frameworks"],"title":"FrameworkOrderCreate"},"FrameworkOrderRead":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"order_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order Id","default":""},"name":{"type":"string","title":"Name"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"type":{"type":"string","title":"Type"},"user_email":{"type":"string","title":"User Email"},"total_records_count":{"type":"integer","title":"Total Records Count"},"total_price":{"type":"number","title":"Total Price"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"order_type":{"type":"string","enum":["new_purchase","refresh_purchase","reinstatement_purchase","repurchase"],"title":"Order Type"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"transcript_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Transcript Id"},"framework_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Framework Ids"},"framework_details":{"items":{"type":"object"},"type":"array","title":"Framework Details"},"framework_id_remap":{"additionalProperties":{"type":"string","format":"uuid"},"propertyNames":{"format":"uuid"},"type":"object","title":"Framework Id Remap"}},"type":"object","required":["id","name","type","user_email","total_records_count","total_price","created_at","updated_at","order_type","framework_ids","framework_details"],"title":"FrameworkOrderRead"},"FrameworkRequest":{"properties":{"entities":{"anyOf":[{"items":{"$ref":"#/components/schemas/FrameworkEntityRequest"},"type":"array"},{"$ref":"#/components/schemas/WildCardEntityRequest"}],"title":"Entities"},"insight":{"$ref":"#/components/schemas/FrameworkInsightRequest"},"filters":{"type":"object","title":"Filters"},"aggregate":{"anyOf":[{"type":"string","enum":["sum","mean","count_distinct"]},{"type":"null"}],"title":"Aggregate"},"events":{"anyOf":[{"items":{"$ref":"#/components/schemas/FrameworkEventRequest"},"type":"array"},{"type":"null"}],"title":"Events"}},"type":"object","required":["entities","insight","filters"],"title":"FrameworkRequest"},"GrantBucketAccessRequest":{"properties":{"principal_arn":{"type":"string","maxLength":2048,"minLength":1,"pattern":"^(arn:aws:iam::\\d{12}:[\\w+=,.@\\-/]+|\\d{12})$","title":"Principal Arn","description":"IAM principal ARN to grant access to (e.g. 'arn:aws:iam::123456789012:user/alice'), or a 12-digit AWS account id which is converted to '<id>:root'."},"client_name":{"type":"string","maxLength":128,"minLength":1,"pattern":"^[a-zA-Z0-9_-]+$","title":"Client Name","description":"Client name; must exist in admin_config.clients."},"lag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lag","description":"Lag of the dataset SKU to grant access to. Omit (or null) for the no-lag variant — bulk_bucket_details stores no-lag rows with lag=null."},"cut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut","description":"Cut of the dataset SKU to grant access to. Omit (or null) for the no-cut variant — bulk_bucket_details stores no-cut rows with cut=null."}},"type":"object","required":["principal_arn","client_name"],"title":"GrantBucketAccessRequest"},"GrantBucketAccessResponse":{"properties":{"dataset_id":{"type":"string","title":"Dataset Id"},"dataset_name":{"type":"string","title":"Dataset Name"},"lag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lag"},"cut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut"},"principal_arn":{"type":"string","title":"Principal Arn"},"client_name":{"type":"string","title":"Client Name"},"granted":{"type":"boolean","title":"Granted"}},"type":"object","required":["dataset_id","dataset_name","lag","cut","principal_arn","client_name","granted"],"title":"GrantBucketAccessResponse"},"GrantDatasetRequest":{"properties":{"principal_name":{"type":"string","maxLength":128,"minLength":1,"pattern":"^[a-zA-Z0-9_-]+$","title":"Principal Name"},"catalog":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[a-z0-9_]+$","title":"Catalog","description":"Catalog the SKU belongs to (e.g. 'sample', 'bulk'). Scopes table resolution and the catalog-role name; no longer inferred from rows."},"lag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lag","description":"Lag of the dataset to grant access to. Omit (or null) for the no-lag variant — graph stores no-lag rows with lag=null."},"cut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut","description":"Cut of the dataset to grant access to. Omit (or null) for the no-cut variant — graph stores no-cut rows with cut=null."}},"type":"object","required":["principal_name","catalog"],"title":"GrantDatasetRequest"},"GrantDatasetResponse":{"properties":{"dataset_id":{"type":"string","title":"Dataset Id"},"principal_name":{"type":"string","title":"Principal Name"},"principal_role":{"type":"string","title":"Principal Role"},"catalog_role":{"type":"string","title":"Catalog Role"},"catalog":{"type":"string","title":"Catalog"},"tables_granted":{"type":"integer","title":"Tables Granted"},"tables_skipped":{"type":"integer","title":"Tables Skipped"},"skipped_catalogs":{"items":{"type":"string"},"type":"array","title":"Skipped Catalogs"}},"type":"object","required":["dataset_id","principal_name","principal_role","catalog_role","catalog","tables_granted","tables_skipped","skipped_catalogs"],"title":"GrantDatasetResponse"},"GraphSource":{"properties":{"provider_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Name"},"graph_name":{"type":"string","title":"Graph Name"},"graph_id":{"type":"integer","title":"Graph Id"},"dataset_id":{"items":{"type":"string"},"type":"array","title":"Dataset Id"},"dataset_name":{"type":"string","title":"Dataset Name"},"description":{"type":"string","title":"Description"},"blocked":{"type":"boolean","title":"Blocked"},"last_updated_timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Updated Timestamp"},"is_current":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Current"},"exportformat":{"type":"string","title":"Exportformat"},"carc_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Carc Id"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"subcategory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subcategory"},"ecosystem_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ecosystem Type"},"data":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Data"},"subject_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject Id"},"subject_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject Label"},"has_confidence_report":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Confidence Report"},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path"},"price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price"}},"type":"object","required":["graph_name","graph_id","dataset_id","dataset_name","description","blocked","exportformat"],"title":"GraphSource"},"GraphSourcesResponse":{"properties":{"page":{"type":"integer","title":"Page"},"size":{"type":"integer","title":"Size"},"total_pages":{"type":"integer","title":"Total Pages"},"datasources":{"items":{"$ref":"#/components/schemas/GraphSource"},"type":"array","title":"Datasources"}},"type":"object","required":["page","size","total_pages","datasources"],"title":"GraphSourcesResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"Insight":{"properties":{"insight_id":{"type":"integer","title":"Insight Id"},"insight_name":{"type":"string","title":"Insight Name"},"topic_id":{"type":"integer","title":"Topic Id"},"topic_name":{"type":"string","title":"Topic Name"},"is_event":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Event"}},"type":"object","required":["insight_id","insight_name","topic_id","topic_name"],"title":"Insight"},"InsightDetailsResponse":{"properties":{"ontology_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ontology Version"}},"type":"object","title":"InsightDetailsResponse"},"InsightLinkedResponse":{"properties":{"insight_ids":{"items":{"type":"integer"},"type":"array","title":"Insight Ids"}},"type":"object","required":["insight_ids"],"title":"InsightLinkedResponse","description":"Insight ids linked to the requested entity / event scope.\n\nAdjacency only — the client already holds the store and intersects\nlocally, so scoping a browse costs an id list, not a listing."},"InsightListResponse":{"properties":{"insights":{"items":{"$ref":"#/components/schemas/Insight"},"type":"array","title":"Insights"},"source_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Source Count"},"subject_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Count"}},"type":"object","required":["insights"],"title":"InsightListResponse"},"InsightMapResponse":{"items":{"$ref":"#/components/schemas/InsightMapResponseItem"},"type":"array","title":"InsightMapResponse"},"InsightMapResponseItem":{"properties":{"subject_id":{"type":"integer","title":"Subject Id"},"subject":{"type":"string","title":"Subject"},"topic_id":{"type":"integer","title":"Topic Id"},"topic":{"type":"string","title":"Topic"}},"type":"object","required":["subject_id","subject","topic_id","topic"],"title":"InsightMapResponseItem"},"InsightResponse":{"properties":{"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"size":{"type":"integer","title":"Size"},"pages":{"type":"integer","title":"Pages"},"items":{"items":{"$ref":"#/components/schemas/InsightResponseItem"},"type":"array","title":"Items"}},"type":"object","required":["total","page","size","pages","items"],"title":"InsightResponse"},"InsightResponseItem":{"properties":{"insight_id":{"type":"integer","title":"Insight Id"},"label":{"type":"string","title":"Label"},"sources":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Sources"},"topic_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Topic Label"},"topic_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Topic Key"},"topic_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Topic Id"},"subject_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject Label"},"subject_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject Key"},"subject_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"},"dataset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dataset Id"},"insight_type_label":{"type":"string","title":"Insight Type Label"},"insight_type":{"type":"string","title":"Insight Type"},"is_event":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Event"},"historic":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Historic"},"has_entity":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Entity"},"insight_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insight Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"subject_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject Description"},"topic_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Topic Description"},"delay_status":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Delay Status"},"last_updated_timestamp":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Updated Timestamp"},"blocked":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Blocked"},"insight_overview":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Insight Overview"},"last_reinstated_timestamp":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Reinstated Timestamp"},"reinstatement_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reinstatement Reason"},"table_max_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Table Max Date"},"relevance_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Relevance Score"},"ontology_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ontology Version"}},"type":"object","required":["insight_id","label","insight_type_label","insight_type"],"title":"InsightResponseItem"},"InsightStoreItem":{"properties":{"insight_id":{"type":"integer","title":"Insight Id"},"label":{"type":"string","title":"Label"},"insight_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insight Name"},"sources":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Sources"},"topic_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Topic Id"},"topic_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Topic Key"},"topic_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Topic Label"},"topic_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Topic Description"},"subject_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"},"subject_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject Key"},"subject_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject Label"},"dataset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dataset Id"},"insight_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insight Type"},"insight_type_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insight Type Label"},"is_event":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Event"},"historic":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Historic"},"has_entity":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Entity"},"blocked":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Blocked"},"insight_overview":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Insight Overview"},"last_updated_timestamp":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Updated Timestamp"}},"type":"object","required":["insight_id","label"],"title":"InsightStoreItem","description":"Slim insight row for the whole-corpus store.\n\nOnly what the prism and builder pickers render. The per-insight\n``description``, ``subject_description``, and the ``delay_status`` dict are\nomitted deliberately — they are the bulk of the payload and neither picker\nreads them. ``topic_description`` and ``last_updated_timestamp`` are kept\nbecause the browse panel renders the topic summary line and each dataset's\n\"last updated\" stamp."},"InsightStoreResponse":{"properties":{"version":{"type":"string","title":"Version"},"total":{"type":"integer","title":"Total"},"items":{"items":{"$ref":"#/components/schemas/InsightStoreItem"},"type":"array","title":"Items"}},"type":"object","required":["version","total","items"],"title":"InsightStoreResponse","description":"Whole insight corpus, served in one shot for client-side search.\n\nUnpaginated by design — the corpus is ~1.2k rows and the builder filters\nit in memory. ``version`` is the graph version stamp and doubles as the\nETag, so a client holding it revalidates into a 304."},"ListAssetsResponse":{"properties":{"assets":{"items":{"$ref":"#/components/schemas/AssetResponse"},"type":"array","title":"Assets"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["assets","total"],"title":"ListAssetsResponse"},"MatchResult":{"properties":{"persona":{"$ref":"#/components/schemas/PersonaInput","description":"The input persona"},"matches":{"items":{"$ref":"#/components/schemas/DatasetMatch"},"type":"array","title":"Matches","description":"Ranked list of matching data assets"},"total_datasets_evaluated":{"type":"integer","title":"Total Datasets Evaluated","description":"Total number of data assets considered"}},"type":"object","required":["persona","matches","total_datasets_evaluated"],"title":"MatchResult","description":"Result of the AI-powered data asset matching."},"OnboardRequest":{"properties":{"client_name":{"type":"string","maxLength":128,"minLength":1,"pattern":"^[a-zA-Z0-9_-]+$","title":"Client Name"},"properties":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Properties","description":"Optional principal properties (string->string), forwarded to Polaris."}},"type":"object","required":["client_name"],"title":"OnboardRequest"},"OnboardResponse":{"properties":{"principal_name":{"type":"string","title":"Principal Name"},"polaris_client_id":{"type":"string","title":"Polaris Client Id"},"polaris_client_secret":{"type":"string","title":"Polaris Client Secret"}},"type":"object","required":["principal_name","polaris_client_id","polaris_client_secret"],"title":"OnboardResponse"},"OntologyVersionResponse":{"properties":{"versions":{"items":{"type":"string"},"type":"array","title":"Versions"}},"type":"object","required":["versions"],"title":"OntologyVersionResponse"},"OrderInformationResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"type":{"type":"string","title":"Type"},"user_email":{"type":"string","title":"User Email"},"total_price":{"type":"number","title":"Total Price"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"framework_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Framework Ids"},"framework_details":{"items":{"type":"object"},"type":"array","title":"Framework Details"},"order_type":{"type":"string","enum":["new_purchase","refresh_purchase","reinstatement_purchase","repurchase"],"title":"Order Type"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"framework_id_remap":{"additionalProperties":{"type":"string","format":"uuid"},"propertyNames":{"format":"uuid"},"type":"object","title":"Framework Id Remap"}},"type":"object","required":["id","name","type","user_email","total_price","created_at","updated_at","framework_ids","framework_details","order_type"],"title":"OrderInformationResponse"},"OrderPaginatedResponse":{"properties":{"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"size":{"type":"integer","title":"Size"},"pages":{"type":"integer","title":"Pages"},"items":{"items":{"$ref":"#/components/schemas/FrameworkOrderRead"},"type":"array","title":"Items"}},"type":"object","required":["total","page","size","pages","items"],"title":"OrderPaginatedResponse"},"OrderUpdateResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"type":{"type":"string","title":"Type"},"user_email":{"type":"string","title":"User Email"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"order_type":{"type":"string","enum":["new_purchase","refresh_purchase","reinstatement_purchase","repurchase"],"title":"Order Type"}},"type":"object","required":["id","name","type","user_email","created_at","updated_at","order_type"],"title":"OrderUpdateResponse"},"PanelDebiasingInfo":{"properties":{"insight_id":{"type":"integer","title":"Insight Id"},"insight_label":{"type":"string","title":"Insight Label"},"insight_type":{"type":"string","title":"Insight Type"}},"type":"object","required":["insight_id","insight_label","insight_type"],"title":"PanelDebiasingInfo"},"PersonaInput":{"properties":{"industry":{"type":"string","title":"Industry","description":"User's industry (e.g., 'Financial Services')"},"company_type":{"type":"string","title":"Company Type","description":"Type of company (e.g., 'Hedge Fund', 'Retailer')"},"use_cases":{"items":{"type":"string"},"type":"array","title":"Use Cases","description":"Selected use cases of interest","default":[]},"description":{"type":"string","title":"Description","description":"Free-text description of data needs"}},"additionalProperties":false,"type":"object","required":["industry","company_type","description"],"title":"PersonaInput","description":"Input describing the user's persona and data needs."},"PriceChangeHistoryResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PriceChangeLogEntry"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"PriceChangeHistoryResponse"},"PriceChangeLogEntry":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"transcript_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Transcript Id"},"client_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Client Id"},"old_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Old Price"},"new_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"New Price"},"rationale":{"type":"string","title":"Rationale"},"changed_by":{"type":"string","title":"Changed By"},"changed_at":{"type":"string","format":"date-time","title":"Changed At"}},"type":"object","required":["id","rationale","changed_by","changed_at"],"title":"PriceChangeLogEntry"},"PrismEntityRef":{"properties":{"entity_id":{"type":"integer","title":"Entity Id","description":"Carc entity id (representation-scoped)"},"entity_representation":{"type":"string","minLength":1,"title":"Entity Representation"},"entity_name":{"type":"string","minLength":1,"title":"Entity Name"}},"type":"object","required":["entity_id","entity_representation","entity_name"],"title":"PrismEntityRef"},"PrismFilterOptionsResponse":{"properties":{"filters":{"items":{"type":"object"},"type":"array","title":"Filters"}},"type":"object","title":"PrismFilterOptionsResponse","description":"Option values for one filter key, keyed as the builder's\n``/framework/filters/{key}/options`` response is."},"PrismFrameworkFiltersRequest":{"properties":{"insight_id":{"type":"integer","title":"Insight Id"},"insight_label":{"type":"string","minLength":1,"title":"Insight Label"},"entities":{"items":{"$ref":"#/components/schemas/PrismEntityRef"},"type":"array","minItems":1,"title":"Entities"},"location_resolution":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Location Resolution"},"filters":{"type":"object","title":"Filters"}},"additionalProperties":false,"type":"object","required":["insight_id","insight_label","entities"],"title":"PrismFrameworkFiltersRequest","description":"Insight + entities (+ the filters chosen so far) used to discover the\nframework's advertised filter set for a prism.\n\n``filters`` carries the admin's current selections because the advertised\nset is a function of them — the location dimension offered depends on the\nselected ``location_resolution``, exactly as in the builder."},"PrismFrameworkFiltersResponse":{"properties":{"filters":{"items":{"$ref":"#/components/schemas/FrameworkFilter"},"type":"array","title":"Filters"},"aggregate_options":{"anyOf":[{"items":{"type":"string","enum":["sum","mean","count_distinct"]},"type":"array"},{"type":"null"}],"title":"Aggregate Options"},"available":{"type":"boolean","title":"Available","default":true}},"type":"object","required":["filters","aggregate_options"],"title":"PrismFrameworkFiltersResponse","description":"The builder's filter payload, restricted to what a prism can actually\npurchase. ``available`` is False when the insight + entity slice has no\nvalid daily framework at all — the same condition that empties\n``/prisms/location-resolutions``."},"PrismInsightExcluded":{"properties":{"provider_restricted":{"type":"integer","title":"Provider Restricted","default":0},"not_daily_grain":{"type":"integer","title":"Not Daily Grain","default":0},"not_sum_timeseries":{"type":"integer","title":"Not Sum Timeseries","default":0},"cadence_too_slow":{"type":"integer","title":"Cadence Too Slow","default":0}},"type":"object","title":"PrismInsightExcluded","description":"Why graph insights were hidden from the prism picker."},"PrismInsightLinkedResponse":{"properties":{"insight_ids":{"items":{"type":"integer"},"type":"array","title":"Insight Ids"}},"type":"object","required":["insight_ids"],"title":"PrismInsightLinkedResponse","description":"Eligible store ids linked to every selected entity representation."},"PrismInsightStoreResponse":{"properties":{"version":{"type":"string","title":"Version"},"total":{"type":"integer","title":"Total"},"items":{"items":{"$ref":"#/components/schemas/InsightStoreItem"},"type":"array","title":"Items"},"excluded":{"$ref":"#/components/schemas/PrismInsightExcluded"}},"type":"object","required":["version","total","items","excluded"],"title":"PrismInsightStoreResponse","description":"Whole prism-eligible corpus, served in one shot for client-side search.\n\nUnpaginated by design — the corpus is ~1.2k rows and the picker filters it\nin memory. ``version`` is the graph version stamp and doubles as the ETag,\nso a client holding it revalidates into a 304."},"PrismLocationOption":{"properties":{"value":{"type":"string","minLength":1,"title":"Value"},"label":{"type":"string","title":"Label"}},"type":"object","required":["value","label"],"title":"PrismLocationOption"},"PrismLocationResolutionsRequest":{"properties":{"insight_id":{"type":"integer","title":"Insight Id"},"insight_label":{"type":"string","minLength":1,"title":"Insight Label"},"entities":{"items":{"$ref":"#/components/schemas/PrismEntityRef"},"type":"array","minItems":1,"title":"Entities"}},"additionalProperties":false,"type":"object","required":["insight_id","insight_label","entities"],"title":"PrismLocationResolutionsRequest","description":"Insight + entities used to discover available location grains."},"PrismLocationResolutionsResponse":{"properties":{"options":{"items":{"$ref":"#/components/schemas/PrismLocationOption"},"type":"array","title":"Options"},"default":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Default"}},"type":"object","required":["options"],"title":"PrismLocationResolutionsResponse"},"PrismPreviewRequest":{"properties":{"prism_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prism Id"},"title":{"type":"string","minLength":1,"title":"Title"},"category":{"type":"string","minLength":1,"title":"Category"},"question":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Question"},"question_share":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Question Share"},"insight_id":{"type":"integer","title":"Insight Id"},"insight_label":{"type":"string","minLength":1,"title":"Insight Label"},"entities":{"items":{"$ref":"#/components/schemas/PrismEntityRef"},"type":"array","minItems":1,"title":"Entities"},"location_resolution":{"type":"string","minLength":1,"title":"Location Resolution","default":"us"},"filters":{"type":"object","title":"Filters","description":"Dimension filters from the framework's advertised set. Blank selections must be omitted, not sent as empty lists."}},"additionalProperties":false,"type":"object","required":["title","category","insight_id","insight_label","entities"],"title":"PrismPreviewRequest","description":"A prism definition to compute *without* publishing. ``prism_id`` is\noptional so an unsaved CAMS form can be previewed before it is saved.\nThe read-through preview cache lives in CAMS, not here."},"PrismPreviewResponse":{"properties":{"cached":{"type":"boolean","title":"Cached"},"prism":{"type":"object","title":"Prism"}},"type":"object","required":["cached","prism"],"title":"PrismPreviewResponse","description":"The exact snapshot entry the public page would render for this prism.\n``cached`` is always False from power-api (stateless compute); CAMS sets\nit True when serving a repeat preview from its own cache."},"PrismReadinessItem":{"properties":{"prism_id":{"type":"string","minLength":1,"title":"Prism Id"},"insight_id":{"type":"integer","title":"Insight Id"},"entities":{"items":{"$ref":"#/components/schemas/PrismEntityRef"},"type":"array","minItems":1,"title":"Entities"},"location_resolution":{"type":"string","minLength":1,"title":"Location Resolution","default":"us"},"last_source_edges":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string","format":"date-time"},{"type":"string","format":"date"}]},"type":"object"},{"type":"null"}],"title":"Last Source Edges"}},"additionalProperties":false,"type":"object","required":["prism_id","insight_id","entities"],"title":"PrismReadinessItem","description":"One prism's slice + per-table watermarks for the freshness gate."},"PrismReadinessRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PrismReadinessItem"},"type":"array","minItems":1,"title":"Items"}},"additionalProperties":false,"type":"object","required":["items"],"title":"PrismReadinessRequest"},"PrismReadinessResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/PrismReadinessResult"},"type":"array","title":"Results"}},"type":"object","required":["results"],"title":"PrismReadinessResponse"},"PrismReadinessResult":{"properties":{"prism_id":{"type":"string","title":"Prism Id"},"ready":{"type":"boolean","title":"Ready"},"data_edge":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Data Edge"},"sources":{"items":{"$ref":"#/components/schemas/PrismSourceEdge"},"type":"array","title":"Sources","default":[]}},"type":"object","required":["prism_id","ready"],"title":"PrismReadinessResult"},"PrismRefreshRequest":{"properties":{"prism_id":{"type":"string","minLength":1,"title":"Prism Id","description":"CAMS prisms.id"},"title":{"type":"string","minLength":1,"title":"Title"},"category":{"type":"string","minLength":1,"title":"Category"},"question":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Question"},"question_share":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Question Share"},"insight_id":{"type":"integer","title":"Insight Id"},"insight_label":{"type":"string","minLength":1,"title":"Insight Label"},"entities":{"items":{"$ref":"#/components/schemas/PrismEntityRef"},"type":"array","minItems":1,"title":"Entities"},"location_resolution":{"type":"string","minLength":1,"title":"Location Resolution","default":"us"},"filters":{"type":"object","title":"Filters","description":"Dimension filters from the framework's advertised set. Blank selections must be omitted, not sent as empty lists."},"as_of":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"As Of"},"skip_query_cache":{"type":"boolean","title":"Skip Query Cache","default":false}},"additionalProperties":false,"type":"object","required":["prism_id","title","category","insight_id","insight_label","entities"],"title":"PrismRefreshRequest","description":"One prism definition, pushed by CAMS (the source of truth) for\nrecompute. The date window is derived here, never supplied — except\n``as_of``, which may pin the window end to today (ET). Past-day repairs\nare not allowed."},"PrismRefreshResponse":{"properties":{"prism_id":{"type":"string","title":"Prism Id"},"order_id":{"type":"string","title":"Order Id"},"framework_id":{"type":"string","title":"Framework Id"},"total_price":{"type":"number","title":"Total Price"},"refreshed_at":{"type":"string","format":"date-time","title":"Refreshed At"},"data_through":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Data Through"},"window_start":{"type":"string","format":"date","title":"Window Start"},"window_end":{"type":"string","format":"date","title":"Window End"},"compute_date":{"type":"string","format":"date","title":"Compute Date"},"snapshot":{"type":"object","title":"Snapshot"}},"type":"object","required":["prism_id","order_id","framework_id","total_price","refreshed_at","window_start","window_end","compute_date","snapshot"],"title":"PrismRefreshResponse"},"PrismSourceDependenciesItem":{"properties":{"prism_id":{"type":"string","minLength":1,"title":"Prism Id"},"insight_id":{"type":"integer","title":"Insight Id"},"entities":{"items":{"$ref":"#/components/schemas/PrismEntityRef"},"type":"array","minItems":1,"title":"Entities"},"location_resolution":{"type":"string","minLength":1,"title":"Location Resolution","default":"us"}},"additionalProperties":false,"type":"object","required":["prism_id","insight_id","entities"],"title":"PrismSourceDependenciesItem","description":"One prism slice to resolve to its core_source dependency set."},"PrismSourceDependenciesRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PrismSourceDependenciesItem"},"type":"array","minItems":1,"title":"Items"}},"additionalProperties":false,"type":"object","required":["items"],"title":"PrismSourceDependenciesRequest"},"PrismSourceDependenciesResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/PrismSourceDependenciesResult"},"type":"array","title":"Results"}},"type":"object","required":["results"],"title":"PrismSourceDependenciesResponse"},"PrismSourceDependenciesResult":{"properties":{"prism_id":{"type":"string","title":"Prism Id"},"sources":{"items":{"type":"string"},"type":"array","title":"Sources"}},"type":"object","required":["prism_id","sources"],"title":"PrismSourceDependenciesResult"},"PrismSourceEdge":{"properties":{"table":{"type":"string","title":"Table"},"sources":{"items":{"type":"string"},"type":"array","title":"Sources"},"table_max_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Table Max Date"},"platform_updated_timestamp":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Platform Updated Timestamp"},"advanced":{"type":"boolean","title":"Advanced"}},"type":"object","required":["table","sources","advanced"],"title":"PrismSourceEdge","description":"One granted table's freshness verdict this evaluation."},"PublicPrismsResponse":{"properties":{"tou":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Tou"},"prisms":{"items":{"type":"object"},"type":"array","title":"Prisms"}},"type":"object","required":["prisms"],"title":"PublicPrismsResponse","description":"The precomputed snapshot the public marketing page renders. Only\nrelative values (YoY index levels, share-of-group percentages) — never\nabsolute dollars/visits/downloads."},"ResetCredentialsRequest":{"properties":{"principal_name":{"type":"string","maxLength":128,"minLength":1,"pattern":"^[a-zA-Z0-9_-]+$","title":"Principal Name"},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id","description":"Optional; if set, client_secret must also be set (Polaris reset body)."},"client_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Secret","description":"Optional; if set, client_id must also be set (Polaris reset body)."}},"type":"object","required":["principal_name"],"title":"ResetCredentialsRequest"},"ResetCredentialsResponse":{"properties":{"principal_name":{"type":"string","title":"Principal Name"},"client_id":{"type":"string","title":"Client Id"},"client_secret":{"type":"string","title":"Client Secret"}},"type":"object","required":["principal_name","client_id","client_secret"],"title":"ResetCredentialsResponse"},"RevokeBucketAccessRequest":{"properties":{"principal_arn":{"anyOf":[{"type":"string","maxLength":2048,"pattern":"^(arn:aws:iam::\\d{12}:[\\w+=,.@\\-/]+|\\d{12})$"},{"type":"null"}],"title":"Principal Arn","description":"IAM principal ARN to revoke. Either principal_arn or client_name must be provided."},"client_name":{"anyOf":[{"type":"string","maxLength":128,"minLength":1,"pattern":"^[a-zA-Z0-9_-]+$"},{"type":"null"}],"title":"Client Name","description":"Client name to revoke all ARNs for. Either principal_arn or client_name must be provided."},"lag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lag","description":"Lag of the dataset SKU. Null for the no-lag variant."},"cut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut","description":"Cut of the dataset SKU. Null for the no-cut variant."}},"type":"object","title":"RevokeBucketAccessRequest"},"RevokeBucketAccessResponse":{"properties":{"dataset_id":{"type":"string","title":"Dataset Id"},"dataset_name":{"type":"string","title":"Dataset Name"},"lag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lag"},"cut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut"},"principal_arn":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Principal Arn"},"client_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Name"},"revoked":{"type":"boolean","title":"Revoked"}},"type":"object","required":["dataset_id","dataset_name","lag","cut","principal_arn","client_name","revoked"],"title":"RevokeBucketAccessResponse"},"RevokeDatasetRequest":{"properties":{"principal_name":{"type":"string","maxLength":128,"minLength":1,"pattern":"^[a-zA-Z0-9_-]+$","title":"Principal Name"},"catalog":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[a-z0-9_]+$","title":"Catalog","description":"Catalog of the SKU to revoke (e.g. 'sample', 'bulk'). Required — the exact SKU comes from the caller; power-api never infers it."},"lag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lag"},"cut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut"}},"type":"object","required":["principal_name","catalog"],"title":"RevokeDatasetRequest"},"RevokeDatasetResponse":{"properties":{"dataset_id":{"type":"string","title":"Dataset Id"},"principal_name":{"type":"string","title":"Principal Name"},"principal_role":{"type":"string","title":"Principal Role"},"catalog_role":{"type":"string","title":"Catalog Role"},"catalog":{"type":"string","title":"Catalog"},"revoked":{"type":"boolean","title":"Revoked"}},"type":"object","required":["dataset_id","principal_name","principal_role","catalog_role","catalog","revoked"],"title":"RevokeDatasetResponse"},"SchemaColumn":{"properties":{"col_name":{"type":"string","title":"Col Name"},"data_type":{"type":"string","title":"Data Type"}},"type":"object","required":["col_name","data_type"],"title":"SchemaColumn"},"StopRequest":{"properties":{"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"Why the build was stopped. Recorded on the job and its history rows; defaults to a plain operator stop."}},"type":"object","title":"StopRequest"},"Subject":{"properties":{"label":{"type":"string","title":"Label"},"key":{"type":"string","title":"Key"},"subject_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"},"description":{"type":"string","title":"Description"},"category":{"type":"string","title":"Category"},"sources":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"items":{"items":{"type":"string"},"type":"array"},"type":"array"}],"title":"Sources"},"topics":{"items":{"type":"string"},"type":"array","title":"Topics"},"last_updated_timestamp":{"type":"string","format":"date-time","title":"Last Updated Timestamp"}},"type":"object","required":["label","key","description","category","sources","topics","last_updated_timestamp"],"title":"Subject"},"SubjectInsightsResponse":{"properties":{"insights":{"items":{"type":"object"},"type":"array","title":"Insights"}},"type":"object","required":["insights"],"title":"SubjectInsightsResponse"},"SubjectResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/Subject"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"SubjectResponse"},"TimeSeriesEntry":{"properties":{"entity_representation":{"type":"string","title":"Entity Representation"},"entity_id":{"type":"integer","title":"Entity Id"},"entity_name":{"type":"string","title":"Entity Name"},"filters":{"type":"object","title":"Filters"},"insight":{"type":"string","title":"Insight"},"series_name":{"type":"string","title":"Series Name"},"series":{"items":{"$ref":"#/components/schemas/TimeSeriesPoint"},"type":"array","title":"Series"}},"type":"object","required":["entity_representation","entity_id","entity_name","filters","insight","series_name","series"],"title":"TimeSeriesEntry"},"TimeSeriesPoint":{"properties":{"date":{"type":"string","title":"Date"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"}},"type":"object","required":["date","value"],"title":"TimeSeriesPoint"},"TimeSeriesResponse":{"properties":{"type":{"type":"string","const":"timeseries","title":"Type"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"size":{"type":"integer","title":"Size"},"pages":{"type":"integer","title":"Pages"},"insight_column":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insight Column"},"data":{"items":{"$ref":"#/components/schemas/TimeSeriesEntry"},"type":"array","title":"Data"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"metadata_info":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Metadata Info"}},"type":"object","required":["type","total","page","size","pages","data"],"title":"TimeSeriesResponse"},"TopicInsightsResponse":{"properties":{"insights":{"items":{"type":"object"},"type":"array","title":"Insights"}},"type":"object","required":["insights"],"title":"TopicInsightsResponse"},"TrackingEventRequest":{"properties":{"event_name":{"type":"string","maxLength":64,"title":"Event Name"},"event_source_url":{"type":"string","maxLength":2048,"title":"Event Source Url"},"fbc":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Fbc"},"fbp":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Fbp"},"email":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Phone"},"custom_data":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Custom Data"}},"type":"object","required":["event_name","event_source_url"],"title":"TrackingEventRequest"},"TranscriptContentResponse":{"properties":{"content":{"type":"string","title":"Content"}},"type":"object","required":["content"],"title":"TranscriptContentResponse","description":"Raw text content of a transcript, for admin inline preview."},"TranscriptDetailItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"title":{"type":"string","title":"Title"},"interview_date":{"type":"string","format":"date","title":"Interview Date"},"duration_minutes":{"type":"integer","title":"Duration Minutes"},"transcript_type":{"type":"string","title":"Transcript Type"},"language":{"type":"string","title":"Language"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"entities":{"items":{"$ref":"#/components/schemas/TranscriptEntity"},"type":"array","title":"Entities"},"has_pdf":{"type":"boolean","title":"Has Pdf"},"is_purchased":{"type":"boolean","title":"Is Purchased"},"price":{"type":"number","title":"Price"},"expert_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expert Id"}},"type":"object","required":["id","title","interview_date","duration_minutes","transcript_type","language","has_pdf","is_purchased","price"],"title":"TranscriptDetailItem"},"TranscriptDownloadAdminItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"user_id":{"type":"string","format":"uuid","title":"User Id"},"user_email":{"type":"string","title":"User Email"},"format":{"type":"string","title":"Format"},"ip_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ip Address"},"downloaded_at":{"type":"string","format":"date-time","title":"Downloaded At"}},"type":"object","required":["id","client_id","user_id","user_email","format","downloaded_at"],"title":"TranscriptDownloadAdminItem","description":"Admin view of a download audit row."},"TranscriptDownloadAdminListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TranscriptDownloadAdminItem"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"size":{"type":"integer","title":"Size"}},"type":"object","required":["items","total","page","size"],"title":"TranscriptDownloadAdminListResponse"},"TranscriptDownloadResponse":{"properties":{"url":{"type":"string","title":"Url"},"expires_in":{"type":"integer","title":"Expires In"},"format":{"type":"string","title":"Format"}},"type":"object","required":["url","expires_in","format"],"title":"TranscriptDownloadResponse"},"TranscriptEntity":{"properties":{"id":{"type":"string","title":"Id"},"label":{"type":"string","title":"Label"}},"type":"object","required":["id","label"],"title":"TranscriptEntity","description":"Ontology entity tag from the upload UI — identifier + display label."},"TranscriptEntityCount":{"properties":{"id":{"type":"string","title":"Id"},"label":{"type":"string","title":"Label"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["id","label","count"],"title":"TranscriptEntityCount"},"TranscriptListItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"title":{"type":"string","title":"Title"},"interview_date":{"type":"string","format":"date","title":"Interview Date"},"duration_minutes":{"type":"integer","title":"Duration Minutes"},"transcript_type":{"type":"string","title":"Transcript Type"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"entities":{"items":{"$ref":"#/components/schemas/TranscriptEntity"},"type":"array","title":"Entities"},"is_purchased":{"type":"boolean","title":"Is Purchased"},"price":{"type":"number","title":"Price"},"expert_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expert Id"}},"type":"object","required":["id","title","interview_date","duration_minutes","transcript_type","is_purchased","price"],"title":"TranscriptListItem"},"TranscriptListResponse":{"properties":{"transcripts":{"items":{"$ref":"#/components/schemas/TranscriptListItem"},"type":"array","title":"Transcripts"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"size":{"type":"integer","title":"Size"}},"type":"object","required":["transcripts","total","page","size"],"title":"TranscriptListResponse"},"TranscriptPurchaseAdminItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"user_id":{"type":"string","format":"uuid","title":"User Id"},"user_email":{"type":"string","title":"User Email"},"price":{"type":"number","title":"Price"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","client_id","user_id","user_email","price","status","created_at"],"title":"TranscriptPurchaseAdminItem","description":"Admin view of a purchase row — includes identity fields the client-facing\n``TranscriptPurchaseResponse`` omits."},"TranscriptPurchaseAdminListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TranscriptPurchaseAdminItem"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"size":{"type":"integer","title":"Size"}},"type":"object","required":["items","total","page","size"],"title":"TranscriptPurchaseAdminListResponse"},"TranscriptPurchaseResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"transcript_id":{"type":"string","format":"uuid","title":"Transcript Id"},"price":{"type":"number","title":"Price"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","transcript_id","price","status","created_at"],"title":"TranscriptPurchaseResponse"},"TranscriptRegionCount":{"properties":{"region":{"type":"string","title":"Region"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["region","count"],"title":"TranscriptRegionCount"},"TranscriptResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"external_id":{"type":"string","title":"External Id"},"catalog_source_id":{"type":"string","format":"uuid","title":"Catalog Source Id"},"title":{"type":"string","title":"Title"},"status":{"type":"string","title":"Status"},"language":{"type":"string","title":"Language"},"transcript_type":{"type":"string","title":"Transcript Type"},"interview_date":{"type":"string","format":"date","title":"Interview Date"},"duration_minutes":{"type":"integer","title":"Duration Minutes"},"expert_anonymized":{"type":"boolean","title":"Expert Anonymized"},"raw_text_s3_uri":{"type":"string","title":"Raw Text S3 Uri"},"pdf_s3_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pdf S3 Uri"},"meta_data":{"type":"object","title":"Meta Data"},"entities":{"items":{"$ref":"#/components/schemas/TranscriptEntity"},"type":"array","title":"Entities"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"expert_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expert Id"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"status_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Reason"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","external_id","catalog_source_id","title","status","language","transcript_type","interview_date","duration_minutes","expert_anonymized","raw_text_s3_uri","meta_data","created_at","updated_at"],"title":"TranscriptResponse","description":"Built from a Transcript ORM instance via model_validate."},"TranscriptStatusUpdate":{"properties":{"status":{"type":"string","title":"Status"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"type":"object","required":["status"],"title":"TranscriptStatusUpdate","description":"Admin status update — only published/hidden/removed allowed (never draft).\n\nConstraints are enforced explicitly in the route handler via HTTPException\nso they fire in both local and CI test environments (Pydantic's automatic\nRequestValidationError is not reliably serialisable in all test setups)."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VerifyBucketAccessRequest":{"properties":{"lag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lag","description":"Lag of the dataset SKU. Null for the no-lag variant."},"cut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut","description":"Cut of the dataset SKU. Null for the no-cut variant."},"principal_arns":{"items":{"type":"string"},"type":"array","maxItems":500,"title":"Principal Arns","description":"ARNs to check for. Each is reported in `present` or `missing`. Pass an empty list to get only `principal_count`."}},"type":"object","title":"VerifyBucketAccessRequest"},"VerifyBucketAccessResponse":{"properties":{"dataset_id":{"type":"string","title":"Dataset Id"},"lag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lag"},"cut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut"},"bucket_found":{"type":"boolean","title":"Bucket Found"},"read_ok":{"type":"boolean","title":"Read Ok"},"principal_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Principal Count","description":"Total client-access principals on the live policy. Null when the read failed — NOT zero, which would read as 'nobody has access'."},"present":{"items":{"type":"string"},"type":"array","title":"Present"},"missing":{"items":{"type":"string"},"type":"array","title":"Missing"},"read_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Read Error","description":"Why the read failed, when read_ok is false: invalid_credentials | no_credentials | access_denied | throttled | bucket_missing | unknown. A fixed vocabulary, never raw AWS text, since the caller renders it and AWS messages can carry bucket names and ARNs."},"checked_at":{"type":"string","format":"date-time","title":"Checked At"}},"type":"object","required":["dataset_id","lag","cut","bucket_found","read_ok","present","missing","checked_at"],"title":"VerifyBucketAccessResponse"},"VerifyDatasetAccessRequest":{"properties":{"catalog":{"type":"string","maxLength":128,"minLength":1,"title":"Catalog"},"lag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lag"},"cut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut"},"principal_names":{"items":{"type":"string"},"type":"array","maxItems":200,"title":"Principal Names","description":"Principal names to check. Each is reported in present or missing."}},"type":"object","required":["catalog"],"title":"VerifyDatasetAccessRequest"},"VerifyDatasetAccessResponse":{"properties":{"dataset_id":{"type":"string","title":"Dataset Id"},"catalog":{"type":"string","title":"Catalog"},"lag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lag"},"cut":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cut"},"catalog_role":{"type":"string","title":"Catalog Role"},"read_ok":{"type":"boolean","title":"Read Ok","description":"False when the Polaris read itself failed. present/missing are then empty, so do NOT read that as 'nobody has access'."},"present":{"items":{"type":"string"},"type":"array","title":"Present"},"missing":{"items":{"type":"string"},"type":"array","title":"Missing"},"checked_at":{"type":"string","format":"date-time","title":"Checked At"}},"type":"object","required":["dataset_id","catalog","lag","cut","catalog_role","read_ok","present","missing","checked_at"],"title":"VerifyDatasetAccessResponse"},"VoteResponse":{"properties":{"asset_id":{"type":"string","format":"uuid","title":"Asset Id"},"voted":{"type":"boolean","title":"Voted"},"vote_count":{"type":"integer","title":"Vote Count"}},"type":"object","required":["asset_id","voted","vote_count"],"title":"VoteResponse"},"WildCardEntityRequest":{"properties":{"carc_name":{"type":"string","title":"Carc Name","default":"*"},"representation":{"type":"string","title":"Representation"}},"type":"object","required":["representation"],"title":"WildCardEntityRequest"},"WorkbookGroup":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"framework_ids":{"items":{"type":"string"},"type":"array","title":"Framework Ids","default":[]},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"},"owner_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Email"},"framework_count":{"type":"integer","title":"Framework Count","description":"Computed field: count of frameworks in the group","readOnly":true}},"type":"object","required":["id","name","created_at","updated_at","framework_count"],"title":"WorkbookGroup","description":"Workbook group model - represents a collection of frameworks.\n\nGroups are stored in dashboard state (apps.json) and allow users to\norganize their framework library into focused, project-specific collections."}}}}