{"components":{"schemas":{"AccountBalanceOutputBody":{"additionalProperties":false,"properties":{"account_id":{"type":"string"},"as_of_month":{"type":"string"},"balance":{"format":"int64","type":"integer"},"credits":{"format":"int64","type":"integer"},"debits":{"format":"int64","type":"integer"},"lease_id":{"type":"string"},"legal_entity_id":{"type":"string"},"property_id":{"type":"string"},"unit_id":{"type":"string"}},"required":["account_id","legal_entity_id","debits","credits","balance"],"type":"object"},"AccountListOutputBody":{"additionalProperties":false,"properties":{"items":{"items":{"$ref":"#/components/schemas/AccountingAccount"},"type":["array","null"]},"next_cursor":{"type":"string"}},"required":["items"],"type":"object"},"AccountTreeOutputBody":{"additionalProperties":false,"properties":{"roots":{"items":{"$ref":"#/components/schemas/AccountingAccountNode"},"type":["array","null"]}},"required":["roots"],"type":"object"},"AccountingAccount":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"chart_code":{"type":"string"},"classification":{"type":"string"},"code":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"is_postable":{"type":"boolean"},"name":{"type":"string"},"parent_code":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"used_for":{"enum":["cash_for_payments"],"type":"string"}},"required":["id","chart_code","code","name","classification","is_postable","active","created_at","updated_at"],"type":"object"},"AccountingAccountNode":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"chart_code":{"type":"string"},"children":{"items":{"$ref":"#/components/schemas/AccountingAccountNode"},"type":["array","null"]},"classification":{"type":"string"},"code":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"is_postable":{"type":"boolean"},"name":{"type":"string"},"parent_code":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"used_for":{"enum":["cash_for_payments"],"type":"string"}},"required":["id","chart_code","code","name","classification","is_postable","active","created_at","updated_at"],"type":"object"},"AccountingAccountUse":{"additionalProperties":false,"properties":{"account_code":{"type":"string"},"account_id":{"type":"string"},"account_name":{"type":"string"},"chart_code":{"type":"string"},"legal_entity_code":{"type":"string"},"used_for":{"enum":["cash_for_payments"],"type":"string"}},"required":["used_for","legal_entity_code","chart_code","account_id","account_code","account_name"],"type":"object"},"AccountingAssignPropertyLegalEntityBody":{"additionalProperties":false,"properties":{"legal_entity_code":{"maxLength":64,"minLength":1,"type":"string"},"property_id":{"description":"Property location id from the locations service","type":"string"}},"required":["property_id","legal_entity_code"],"type":"object"},"AccountingBalanceSheet":{"additionalProperties":false,"properties":{"accounts":{"items":{"$ref":"#/components/schemas/AccountingBalanceSheetAccount"},"type":"array"},"currency":{"type":"string"},"current_year_earnings":{"format":"int64","type":"integer"},"out_of_balance":{"description":"Total assets plus total liabilities plus total equity. Zero on a sheet that balances; anything else is activity whose other side is outside the report, because an entry's lines do not all carry the same property.","format":"int64","type":"integer"},"prior_years_earnings":{"format":"int64","type":"integer"},"total_assets":{"format":"int64","type":"integer"},"total_equity":{"format":"int64","type":"integer"},"total_liabilities":{"format":"int64","type":"integer"}},"required":["currency","total_assets","total_liabilities","total_equity","out_of_balance","current_year_earnings","prior_years_earnings","accounts"],"type":"object"},"AccountingBalanceSheetAccount":{"additionalProperties":false,"properties":{"account_code":{"type":"string"},"account_id":{"type":"string"},"account_name":{"type":"string"},"balance":{"format":"int64","type":"integer"},"classification":{"type":"string"},"credits":{"format":"int64","type":"integer"},"debits":{"format":"int64","type":"integer"},"depth":{"format":"int32","type":"integer"}},"required":["account_id","account_code","account_name","classification","depth","debits","credits","balance"],"type":"object"},"AccountingClosePeriodBody":{"additionalProperties":false,"properties":{"legal_entity_id":{"type":"string"},"month":{"format":"int32","maximum":12,"minimum":1,"type":"integer"},"year":{"format":"int32","maximum":9999,"minimum":1,"type":"integer"}},"required":["legal_entity_id","year","month"],"type":"object"},"AccountingClosedPeriod":{"additionalProperties":false,"properties":{"closed_at":{"format":"date-time","type":"string"},"closed_by":{"type":"string"},"legal_entity_id":{"type":"string"},"month":{"format":"int32","type":"integer"},"reopened_through":{"type":"string"},"year":{"format":"int32","type":"integer"}},"required":["legal_entity_id","year","month","closed_at","closed_by"],"type":"object"},"AccountingCommandRequestAssignPropertyLegalEntityBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingAssignPropertyLegalEntityBody"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"AccountingCommandRequestClosePeriodBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingClosePeriodBody"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"AccountingCommandRequestConfigurePeriodCalendarBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingConfigurePeriodCalendarBody"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"AccountingCommandRequestCorrectTransferJournalDateBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingCorrectTransferJournalDateBody"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"AccountingCommandRequestCreateAccountBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingCreateAccountBody"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"AccountingCommandRequestCreateJournalEntryBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingCreateJournalEntryBody"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"AccountingCommandRequestCreateLegalEntityBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingCreateLegalEntityBody"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"AccountingCommandRequestDeleteJournalEntryBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingDeleteJournalEntryBody"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"AccountingCommandRequestEditJournalEntryDraftBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingEditJournalEntryDraftBody"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"AccountingCommandRequestReopenPeriodBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingReopenPeriodBody"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"AccountingCommandRequestReverseJournalEntryBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingReverseJournalEntryBody"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"AccountingCommandRequestSetAccountUseBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingSetAccountUseBody"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"AccountingCommandRequestSetLegalEntityActiveBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingSetLegalEntityActiveBody"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"AccountingCommandRequestUpdateLegalEntityBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingUpdateLegalEntityBody"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"AccountingCommandRequestUpdatePeriodCalendarTimezoneBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingUpdatePeriodCalendarTimezoneBody"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"AccountingConfigurePeriodCalendarBody":{"additionalProperties":false,"properties":{"books_start_month":{"format":"date","type":"string"},"timezone":{"maxLength":100,"minLength":1,"type":"string"}},"required":["timezone","books_start_month"],"type":"object"},"AccountingConsolidatedAccountBalance":{"additionalProperties":false,"properties":{"account_id":{"type":"string"},"balance":{"format":"int64","type":"integer"},"credits":{"format":"int64","type":"integer"},"debits":{"format":"int64","type":"integer"}},"required":["account_id","debits","credits","balance"],"type":"object"},"AccountingCorrectTransferJournalDateBody":{"additionalProperties":false,"properties":{"reason":{"maxLength":500,"minLength":1,"type":"string"},"transaction_date":{"format":"date","type":"string"},"transfer_id":{"type":"string"}},"required":["transfer_id","transaction_date","reason"],"type":"object"},"AccountingCreateAccountBody":{"additionalProperties":false,"properties":{"chart_code":{"maxLength":16,"minLength":1,"type":"string"},"classification":{"enum":["asset","liability","equity","revenue","expense"],"type":"string"},"code":{"maxLength":32,"minLength":1,"type":"string"},"is_postable":{"type":"boolean"},"name":{"maxLength":200,"minLength":1,"type":"string"},"parent_code":{"maxLength":32,"type":"string"}},"required":["chart_code","code","name","classification","is_postable"],"type":"object"},"AccountingCreateJournalEntryBody":{"additionalProperties":false,"properties":{"description":{"minLength":1,"type":"string"},"entry_date":{"type":"string"},"intercompany_entity_code":{"maxLength":64,"type":"string"},"legal_entity_code":{"maxLength":64,"minLength":1,"type":"string"},"lines":{"items":{"$ref":"#/components/schemas/AccountingJournalLineInput"},"type":["array","null"]},"occurred_on":{"format":"date","type":"string"},"payment_id":{"type":"string"}},"required":["legal_entity_code","description","entry_date","lines"],"type":"object"},"AccountingCreateLegalEntityBody":{"additionalProperties":false,"properties":{"address":{"$ref":"#/components/schemas/AccountingLegalEntityAddress"},"chart_code":{"description":"Region: the chart of accounts the entity posts to","maxLength":32,"minLength":1,"type":"string"},"code":{"description":"Stable identifier, lowercase letters, digits, and hyphens","pattern":"^[a-z0-9][a-z0-9-]{0,63}$","type":"string"},"country":{"description":"ISO 3166-1 alpha-2 country code","pattern":"^[A-Z]{2}$","type":"string"},"currency":{"description":"Base currency","enum":["USD","SAR"],"type":"string"},"name":{"description":"Legal name","maxLength":200,"minLength":1,"type":"string"}},"required":["code","name","chart_code","currency","country"],"type":"object"},"AccountingDataAccount":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingAccount"}},"required":["data"],"type":"object"},"AccountingDataAccountUse":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingAccountUse"}},"required":["data"],"type":"object"},"AccountingDataBalanceSheet":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingBalanceSheet"}},"required":["data"],"type":"object"},"AccountingDataClosedPeriod":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingClosedPeriod"}},"required":["data"],"type":"object"},"AccountingDataJournalEntry":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingJournalEntry"}},"required":["data"],"type":"object"},"AccountingDataJournalEntryDeletion":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingJournalEntryDeletion"}},"required":["data"],"type":"object"},"AccountingDataJournalEntryDeletionCheck":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingJournalEntryDeletionCheck"}},"required":["data"],"type":"object"},"AccountingDataLegalEntity":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingLegalEntity"}},"required":["data"],"type":"object"},"AccountingDataListClosedPeriod":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/AccountingClosedPeriod"},"type":["array","null"]}},"required":["data"],"type":"object"},"AccountingDataPeriodCalendar":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingPeriodCalendar"}},"required":["data"],"type":"object"},"AccountingDataPropertyLegalEntity":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingPropertyLegalEntity"}},"required":["data"],"type":"object"},"AccountingDataTrialBalance":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingTrialBalance"}},"required":["data"],"type":"object"},"AccountingDataTrialBalanceByProperty":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingTrialBalanceByProperty"}},"required":["data"],"type":"object"},"AccountingDeleteJournalEntryBody":{"additionalProperties":false,"properties":{"reason":{"maxLength":500,"minLength":1,"type":"string"},"related_entry_ids":{"description":"Entries for the same payment and legal entity to remove atomically with this entry.","items":{"type":"string"},"type":["array","null"]}},"required":["reason"],"type":"object"},"AccountingDraftLineInput":{"additionalProperties":false,"properties":{"account_id":{"type":"string"},"amount":{"format":"int64","minimum":1,"type":"integer"},"billing_account_id":{"type":"string"},"description":{"type":"string"},"lease_id":{"type":"string"},"property_id":{"type":"string"},"side":{"$ref":"#/components/schemas/AccountingJournalLineInputSide"},"unit_id":{"type":"string"}},"required":["account_id","amount","side"],"type":"object"},"AccountingEditJournalEntryDraftBody":{"additionalProperties":false,"properties":{"description":{"minLength":1,"type":"string"},"entry_date":{"format":"date","type":"string"},"lines":{"items":{"$ref":"#/components/schemas/AccountingDraftLineInput"},"minItems":1,"type":"array"},"occurred_on":{"description":"Transaction date; defaults to entry_date","format":"date","type":"string"}},"required":["description","entry_date","lines"],"type":"object"},"AccountingEnvelopeDataAccount":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/AccountingDataAccount"}},"required":["header","payload"],"type":"object"},"AccountingEnvelopeDataAccountUse":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/AccountingDataAccountUse"}},"required":["header","payload"],"type":"object"},"AccountingEnvelopeDataBalanceSheet":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/AccountingDataBalanceSheet"}},"required":["header","payload"],"type":"object"},"AccountingEnvelopeDataClosedPeriod":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/AccountingDataClosedPeriod"}},"required":["header","payload"],"type":"object"},"AccountingEnvelopeDataJournalEntry":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/AccountingDataJournalEntry"}},"required":["header","payload"],"type":"object"},"AccountingEnvelopeDataJournalEntryDeletion":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/AccountingDataJournalEntryDeletion"}},"required":["header","payload"],"type":"object"},"AccountingEnvelopeDataJournalEntryDeletionCheck":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/AccountingDataJournalEntryDeletionCheck"}},"required":["header","payload"],"type":"object"},"AccountingEnvelopeDataLegalEntity":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/AccountingDataLegalEntity"}},"required":["header","payload"],"type":"object"},"AccountingEnvelopeDataListClosedPeriod":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/AccountingDataListClosedPeriod"}},"required":["header","payload"],"type":"object"},"AccountingEnvelopeDataPeriodCalendar":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/AccountingDataPeriodCalendar"}},"required":["header","payload"],"type":"object"},"AccountingEnvelopeDataPropertyLegalEntity":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/AccountingDataPropertyLegalEntity"}},"required":["header","payload"],"type":"object"},"AccountingEnvelopeDataTrialBalance":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/AccountingDataTrialBalance"}},"required":["header","payload"],"type":"object"},"AccountingEnvelopeDataTrialBalanceByProperty":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/AccountingDataTrialBalanceByProperty"}},"required":["header","payload"],"type":"object"},"AccountingEnvelopePagePeriodHistoryEntry":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/AccountingPagePeriodHistoryEntry"}},"required":["header","payload"],"type":"object"},"AccountingEnvelopePagePropertyLegalEntity":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/AccountingPagePropertyLegalEntity"}},"required":["header","payload"],"type":"object"},"AccountingJournalEntry":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"description":{"type":"string"},"entry_date":{"type":"string"},"id":{"type":"string"},"intercompany_entity_id":{"type":"string"},"legal_entity_id":{"type":"string"},"lines":{"items":{"$ref":"#/components/schemas/AccountingJournalLine"},"type":["array","null"]},"occurred_on":{"format":"date","type":"string"},"payment_id":{"type":"string"},"post_month":{"format":"date","type":"string"},"posted_at":{"format":"date-time","type":"string"},"reversal_of":{"type":"string"},"source":{"description":"manual: made by a person; generated: made by a service such as billing or payments","enum":["manual","generated"],"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","legal_entity_id","description","entry_date","occurred_on","source","lines","created_at","updated_at"],"type":"object"},"AccountingJournalEntryDeletion":{"additionalProperties":false,"properties":{"deleted_at":{"format":"date-time","type":"string"},"journal_entry_ids":{"items":{"type":"string"},"type":["array","null"]},"reason":{"type":"string"}},"required":["journal_entry_ids","reason","deleted_at"],"type":"object"},"AccountingJournalEntryDeletionCheck":{"additionalProperties":false,"properties":{"allowed":{"type":"boolean"}},"required":["allowed"],"type":"object"},"AccountingJournalEntryHeader":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"description":{"type":"string"},"entry_date":{"type":"string"},"id":{"type":"string"},"intercompany_entity_id":{"type":"string"},"legal_entity_id":{"type":"string"},"occurred_on":{"format":"date","type":"string"},"post_month":{"format":"date","type":"string"},"posted_at":{"format":"date-time","type":"string"},"reversal_of":{"type":"string"},"source":{"description":"manual: made by a person; generated: made by a service such as billing or payments","enum":["manual","generated"],"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["occurred_on","id","legal_entity_id","description","entry_date","source","created_at","updated_at"],"type":"object"},"AccountingJournalLine":{"additionalProperties":false,"properties":{"account_id":{"type":"string"},"amount":{"format":"int64","type":"integer"},"billing_account_id":{"type":"string"},"charge_id":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string"},"id":{"type":"string"},"invoice_id":{"type":"string"},"lease_id":{"type":"string"},"property_id":{"type":"string"},"side":{"type":"string"},"unit_id":{"type":"string"}},"required":["id","account_id","amount","side","created_at"],"type":"object"},"AccountingJournalLineInput":{"additionalProperties":false,"properties":{"account_id":{"type":"string"},"amount":{"format":"int64","minimum":1,"type":"integer"},"billing_account_id":{"type":"string"},"charge_id":{"type":"string"},"description":{"type":"string"},"invoice_id":{"type":"string"},"lease_id":{"type":"string"},"property_id":{"type":"string"},"side":{"$ref":"#/components/schemas/AccountingJournalLineInputSide"},"unit_id":{"type":"string"}},"required":["account_id","amount","side"],"type":"object"},"AccountingJournalLineInputSide":{"enum":["debit","credit"],"type":"string"},"AccountingLegalEntity":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"address":{"$ref":"#/components/schemas/AccountingLegalEntityAddress","description":"Absent when no address has been recorded"},"chart_code":{"type":"string"},"code":{"type":"string"},"country":{"description":"ISO 3166-1 alpha-2 country code","type":"string"},"created_at":{"format":"date-time","type":"string"},"currency":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","code","name","chart_code","currency","country","active","created_at","updated_at"],"type":"object"},"AccountingLegalEntityAddress":{"additionalProperties":false,"properties":{"city":{"maxLength":100,"minLength":1,"type":"string"},"line1":{"maxLength":200,"minLength":1,"type":"string"},"line2":{"maxLength":200,"type":"string"},"postal_code":{"maxLength":20,"type":"string"},"subdivision":{"description":"State, province, or region","maxLength":100,"type":"string"}},"required":["line1","city"],"type":"object"},"AccountingPagePeriodHistoryEntry":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/AccountingPeriodHistoryEntry"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"AccountingPagePropertyLegalEntity":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/AccountingPropertyLegalEntity"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"AccountingPeriodCalendar":{"additionalProperties":false,"properties":{"books_start_month":{"format":"date","type":"string"},"legal_entity_id":{"type":"string"},"local_date":{"format":"date","type":"string"},"open_month":{"format":"date","type":"string"},"timezone":{"type":"string"}},"required":["legal_entity_id","timezone","local_date","open_month","books_start_month"],"type":"object"},"AccountingPeriodHistoryEntry":{"additionalProperties":false,"properties":{"actor_fid":{"type":"string"},"event_type":{"enum":["period.closed","period.reopened"],"type":"string"},"month":{"format":"int32","type":"integer"},"occurred_at":{"format":"date-time","type":"string"},"reason":{"type":"string"},"year":{"format":"int32","type":"integer"}},"required":["event_type","year","month","occurred_at","actor_fid","reason"],"type":"object"},"AccountingPropertyLegalEntity":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"legal_entity_code":{"type":"string"},"legal_entity_id":{"type":"string"},"property_id":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["property_id","legal_entity_id","legal_entity_code","created_at","updated_at"],"type":"object"},"AccountingReopenPeriodBody":{"additionalProperties":false,"properties":{"legal_entity_id":{"type":"string"},"month":{"format":"int32","maximum":12,"minimum":1,"type":"integer"},"year":{"format":"int32","maximum":9999,"minimum":1,"type":"integer"}},"required":["legal_entity_id","year","month"],"type":"object"},"AccountingReverseJournalEntryBody":{"additionalProperties":false,"properties":{"description":{"type":"string"},"entry_date":{"type":"string"},"entry_id":{"type":"string"}},"type":"object"},"AccountingSetAccountUseBody":{"additionalProperties":false,"properties":{"account_id":{"description":"When sent, must equal the account id in the path. The path id is the account that is marked.","type":"string"},"used_for":{"description":"The use to set on this account. The account that held it before loses it.","enum":["cash_for_payments"],"type":"string"}},"required":["used_for"],"type":"object"},"AccountingSetLegalEntityActiveBody":{"additionalProperties":false,"type":"object"},"AccountingTrialBalance":{"additionalProperties":false,"properties":{"accounts":{"items":{"$ref":"#/components/schemas/AccountingTrialBalanceAccount"},"type":"array"},"currency":{"type":"string"},"legal_entity_id":{"type":"string"},"total_credits":{"format":"int64","type":"integer"},"total_debits":{"format":"int64","type":"integer"}},"required":["legal_entity_id","currency","total_debits","total_credits","accounts"],"type":"object"},"AccountingTrialBalanceAccount":{"additionalProperties":false,"properties":{"account_code":{"type":"string"},"account_id":{"type":"string"},"account_name":{"type":"string"},"balance":{"format":"int64","type":"integer"},"classification":{"type":"string"},"credits":{"format":"int64","type":"integer"},"debits":{"format":"int64","type":"integer"}},"required":["account_id","account_code","account_name","classification","debits","credits","balance"],"type":"object"},"AccountingTrialBalanceByProperty":{"additionalProperties":false,"properties":{"currency":{"type":"string"},"properties":{"items":{"$ref":"#/components/schemas/AccountingTrialBalancePropertyTotals"},"type":"array"},"rows":{"items":{"$ref":"#/components/schemas/AccountingTrialBalanceByPropertyRow"},"type":"array"}},"required":["currency","properties","rows"],"type":"object"},"AccountingTrialBalanceByPropertyMonth":{"additionalProperties":false,"properties":{"closing":{"format":"int64","type":"integer"},"credits":{"format":"int64","type":"integer"},"debits":{"format":"int64","type":"integer"},"month":{"description":"The post month, YYYY-MM.","type":"string"},"opening":{"format":"int64","type":"integer"}},"required":["month","opening","debits","credits","closing"],"type":"object"},"AccountingTrialBalanceByPropertyRow":{"additionalProperties":false,"properties":{"account_code":{"type":"string"},"account_id":{"type":"string"},"account_name":{"type":"string"},"classification":{"type":"string"},"closing":{"format":"int64","type":"integer"},"credits":{"format":"int64","type":"integer"},"debits":{"format":"int64","type":"integer"},"depth":{"format":"int32","type":"integer"},"is_postable":{"type":"boolean"},"kind":{"description":"prior_years_earnings is calculated and has no account behind it.","enum":["account","prior_years_earnings"],"type":"string"},"months":{"description":"One entry per month in the range, in order, including months with no activity. Empty when nothing was posted to the account in the range, and on a header account or the prior years' earnings row, neither of which expands.","items":{"$ref":"#/components/schemas/AccountingTrialBalanceByPropertyMonth"},"type":"array"},"opening":{"format":"int64","type":"integer"},"property_id":{"type":"string"}},"required":["kind","property_id","account_code","account_name","classification","depth","is_postable","opening","debits","credits","closing","months"],"type":"object"},"AccountingTrialBalancePropertyTotals":{"additionalProperties":false,"properties":{"out_of_balance":{"description":"Total debits minus total credits. Zero when the property's rows balance; anything else is an entry whose lines do not all carry the same property, so one side is in this report and the other is not.","format":"int64","type":"integer"},"property_id":{"type":"string"},"total_credits":{"format":"int64","type":"integer"},"total_debits":{"format":"int64","type":"integer"},"total_opening":{"description":"The opening balances added up. Zero when the prior years' earnings row has closed the gap the fiscal year reset opens.","format":"int64","type":"integer"}},"required":["property_id","total_opening","total_debits","total_credits","out_of_balance"],"type":"object"},"AccountingUpdateLegalEntityBody":{"additionalProperties":false,"properties":{"address":{"$ref":"#/components/schemas/AccountingLegalEntityAddress"},"name":{"maxLength":200,"minLength":1,"type":"string"}},"type":"object"},"AccountingUpdatePeriodCalendarBooksStartBody":{"additionalProperties":false,"properties":{"books_start_month":{"format":"date","type":"string"}},"required":["books_start_month"],"type":"object"},"AccountingUpdatePeriodCalendarBooksStartRequest":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountingUpdatePeriodCalendarBooksStartBody"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data","why"],"type":"object"},"AccountingUpdatePeriodCalendarTimezoneBody":{"additionalProperties":false,"properties":{"timezone":{"maxLength":100,"minLength":1,"type":"string"}},"required":["timezone"],"type":"object"},"AreaMembershipsInputBody":{"additionalProperties":false,"properties":{"insight_ids":{"items":{"type":"string"},"maxItems":500,"minItems":1,"type":["array","null"]}},"required":["insight_ids"],"type":"object"},"CommandRequestStruct {}":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/CommandRequestStruct {}DataStruct"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"CommandRequestStruct {}DataStruct":{"additionalProperties":false,"type":"object"},"ConsolidatedBalanceOutputBody":{"additionalProperties":false,"properties":{"accounts":{"items":{"$ref":"#/components/schemas/AccountingConsolidatedAccountBalance"},"type":["array","null"]},"as_of_month":{"type":"string"},"lease_id":{"type":"string"},"property_id":{"type":"string"},"root_entity_id":{"type":"string"},"unit_id":{"type":"string"}},"required":["root_entity_id","accounts"],"type":"object"},"CountInsightsForEvidenceInputBody":{"additionalProperties":false,"properties":{"ids":{"description":"Evidence record ids. At most 500. An id with no claims comes back as zero.","items":{"type":"string"},"maxItems":500,"minItems":1,"type":["array","null"]}},"required":["ids"],"type":"object"},"CursorMeta":{"additionalProperties":false,"properties":{"cursor":{"$ref":"#/components/schemas/CursorPagination"}},"required":["cursor"],"type":"object"},"CursorPagination":{"additionalProperties":false,"properties":{"hasMore":{"type":"boolean"},"limit":{"format":"int64","type":"integer"},"next":{"type":"string"}},"required":["limit","hasMore"],"type":"object"},"DataStruct":{"additionalProperties":false,"properties":{"basis":{"description":"What sort of claim this is. It decides whether the entry can stop a hypothesis from ever being tested, so there is no default: 'lineage' and 'expectation' are context only, 'formula' suppresses once verified, 'tested' and 'established' suppress an equivalent question.","enum":["lineage","expectation","formula","tested","established"],"type":"string"},"cause":{"maxLength":400,"type":"string"},"cause_domain":{"maxLength":64,"type":"string"},"directed":{"description":"True only for a claim that names a direction. A formula cannot be directed.","type":"boolean"},"effect":{"maxLength":400,"type":"string"},"effect_domain":{"maxLength":64,"type":"string"},"note":{"maxLength":2000,"type":"string"},"origin":{"enum":["dbt_model","dashboard","sop","adjudication","manual"],"type":"string"},"origin_ref":{"description":"Where to look: a dbt model path, a dashboard id, a document reference, a finding id.","maxLength":500,"type":"string"},"scope":{"$ref":"#/components/schemas/IntelligenceRelationshipScope","description":"What the claim is about. Omitting it does not widen the entry: an unscoped tested or established claim suppresses only a candidate that also names no population, grain, segment or lag."},"summary":{"description":"What the relationship says, in a sentence. This is what a reviewer reads when a candidate is rejected.","maxLength":1000,"type":"string"}},"required":["basis","cause","effect","summary","origin"],"type":"object"},"DataStruct1":{"additionalProperties":false,"properties":{"action":{"maxLength":2000,"type":"string"},"domain":{"description":"The business unit the reviewer answers for. A cross-business finding one side signs off is a finding one side understood.","maxLength":64,"type":"string"},"experiment":{"maxLength":2000,"type":"string"},"minutes_spent":{"format":"int32","maximum":600,"minimum":0,"type":"integer"},"reason":{"description":"Required. An 'already knew' verdict becomes a registry entry that suppresses this question in future, and an entry nobody can argue with is a blind spot.","maxLength":4000,"type":"string"},"verdict":{"enum":["confirmed_novel","already_knew","plausible_unactionable","artifact","wrong"],"type":"string"}},"required":["verdict","reason"],"type":"object"},"DataStruct2":{"additionalProperties":false,"properties":{"content_hash":{"description":"Hash of the text this was labelled against, from the same function the runner uses.","maxLength":128,"type":"string"},"labeller":{"maxLength":200,"type":"string"},"labels":{"description":"Every item present, across all kinds. An empty list is not missing data: it asserts the correct output is nothing, and those examples are what make the abstention numbers mean anything.","items":{"$ref":"#/components/schemas/IntelligenceEvalLabel"},"type":["array","null"]},"note":{"maxLength":2000,"type":"string"},"source_id":{"maxLength":120,"type":"string"},"source_kind":{"maxLength":60,"type":"string"},"source_service":{"maxLength":60,"type":"string"},"split":{"enum":["dev","test"],"type":"string"}},"required":["source_kind","source_id","content_hash","labels","labeller"],"type":"object"},"DecideSpineIdentityReviewInputBody":{"additionalProperties":false,"properties":{"note":{"description":"Why. Worth writing: these decisions are the evaluation set for the matcher.","maxLength":2000,"type":"string"}},"type":"object"},"DocumentsCommandRequestCreateDocumentData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/DocumentsCreateDocumentData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"DocumentsCommandRequestExpandArchiveData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/DocumentsExpandArchiveData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"DocumentsCommandRequestUpdateDocumentData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/DocumentsUpdateDocumentData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"DocumentsCreateDocumentData":{"additionalProperties":false,"properties":{"blob_name":{"description":"From POST /v1/documents/sas","maxLength":512,"minLength":1,"type":"string"},"container":{"description":"The container from POST /v1/documents/sas. Optional only where the account has a single container.","maxLength":63,"type":"string"},"content_hash":{"description":"Lowercase hex SHA-256 of the uploaded bytes. Stored as the uploader's claim: it enables dedupe and lets a reader verify what it downloaded, and is not checked against the blob.","pattern":"^[0-9a-f]{64}$","type":"string"},"content_type":{"maxLength":255,"type":"string"},"filename":{"maxLength":255,"minLength":1,"type":"string"},"metadata":{"items":{"$ref":"#/components/schemas/DocumentsDocumentMetadata"},"type":["array","null"]},"references":{"items":{"$ref":"#/components/schemas/DocumentsDocumentReference"},"type":["array","null"]},"storage_account":{"maxLength":64,"minLength":1,"type":"string"},"visibility":{"enum":["public","private"],"type":"string"}},"required":["filename","visibility","storage_account","blob_name"],"type":"object"},"DocumentsDataDocumentReadRecord":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/DocumentsDocumentReadRecord"}},"required":["data"],"type":"object"},"DocumentsDataDocumentRecord":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/DocumentsDocumentRecord"}},"required":["data"],"type":"object"},"DocumentsDataExpansionRecord":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/DocumentsExpansionRecord"}},"required":["data"],"type":"object"},"DocumentsDataUploadSASRecord":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/DocumentsUploadSASRecord"}},"required":["data"],"type":"object"},"DocumentsDataUploadedCount":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/DocumentsUploadedCount"}},"required":["data"],"type":"object"},"DocumentsDocumentMetadata":{"additionalProperties":false,"properties":{"meta_name":{"maxLength":128,"minLength":1,"type":"string"},"meta_value":{"maxLength":4096,"type":"string"}},"required":["meta_name","meta_value"],"type":"object"},"DocumentsDocumentReadRecord":{"additionalProperties":false,"properties":{"blob_name":{"type":"string"},"byte_size":{"description":"Size the storage account reported at registration.","format":"int64","type":"integer"},"container":{"type":"string"},"content_hash":{"description":"Lowercase hex SHA-256 the uploader supplied. Absent on documents created before content addressing.","type":"string"},"content_type":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"filename":{"type":"string"},"id":{"format":"uuid","type":"string"},"metadata":{"items":{"$ref":"#/components/schemas/DocumentsDocumentMetadata"},"type":["array","null"]},"references":{"items":{"$ref":"#/components/schemas/DocumentsDocumentReference"},"type":["array","null"]},"sas_expires_at":{"format":"date-time","type":"string"},"sas_url":{"type":"string"},"storage_account":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"updated_by":{"type":"string"},"visibility":{"enum":["public","private"],"type":"string"}},"required":["sas_url","sas_expires_at","id","visibility","storage_account","container","blob_name","filename","references","metadata","created_at","updated_at","created_by","updated_by"],"type":"object"},"DocumentsDocumentRecord":{"additionalProperties":false,"properties":{"blob_name":{"type":"string"},"byte_size":{"description":"Size the storage account reported at registration.","format":"int64","type":"integer"},"container":{"type":"string"},"content_hash":{"description":"Lowercase hex SHA-256 the uploader supplied. Absent on documents created before content addressing.","type":"string"},"content_type":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"filename":{"type":"string"},"id":{"format":"uuid","type":"string"},"metadata":{"items":{"$ref":"#/components/schemas/DocumentsDocumentMetadata"},"type":["array","null"]},"references":{"items":{"$ref":"#/components/schemas/DocumentsDocumentReference"},"type":["array","null"]},"storage_account":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"updated_by":{"type":"string"},"visibility":{"enum":["public","private"],"type":"string"}},"required":["id","visibility","storage_account","container","blob_name","filename","references","metadata","created_at","updated_at","created_by","updated_by"],"type":"object"},"DocumentsDocumentReference":{"additionalProperties":false,"properties":{"is_external":{"description":"True when ref_id belongs to a system outside the platform","type":"boolean"},"ref_category":{"description":"Label for the kind of link","maxLength":64,"minLength":1,"type":"string"},"ref_id":{"description":"Id within that domain","maxLength":128,"minLength":1,"type":"string"},"ref_type":{"description":"Owning domain, e.g. lease","maxLength":64,"minLength":1,"type":"string"}},"required":["ref_type","ref_id","ref_category","is_external"],"type":"object"},"DocumentsEnvelopeDataDocumentReadRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/DocumentsDataDocumentReadRecord"}},"required":["header","payload"],"type":"object"},"DocumentsEnvelopeDataDocumentRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/DocumentsDataDocumentRecord"}},"required":["header","payload"],"type":"object"},"DocumentsEnvelopeDataExpansionRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/DocumentsDataExpansionRecord"}},"required":["header","payload"],"type":"object"},"DocumentsEnvelopeDataUploadSASRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/DocumentsDataUploadSASRecord"}},"required":["header","payload"],"type":"object"},"DocumentsEnvelopeDataUploadedCount":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/DocumentsDataUploadedCount"}},"required":["header","payload"],"type":"object"},"DocumentsEnvelopePageDocumentRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/DocumentsPageDocumentRecord"}},"required":["header","payload"],"type":"object"},"DocumentsExpandArchiveData":{"additionalProperties":false,"properties":{"inherit_metadata":{"description":"Copy the archive's metadata onto each entry. Default true, which is what carries a flag like contributes_to_knowledge through to the files.","type":"boolean"},"inherit_references":{"description":"Copy the archive's references onto each entry. Default true, which is what files an archive's contents into the same project the archive was filed into.","type":"boolean"},"metadata":{"description":"Added to every entry, overriding an inherited name of the same name","items":{"$ref":"#/components/schemas/DocumentsDocumentMetadata"},"type":["array","null"]},"references":{"description":"Added to every entry, on top of the archive's own references","items":{"$ref":"#/components/schemas/DocumentsDocumentReference"},"type":["array","null"]}},"type":"object"},"DocumentsExpansionRecord":{"additionalProperties":false,"properties":{"archive_document_id":{"format":"uuid","type":"string"},"created_count":{"format":"int64","type":"integer"},"documents":{"description":"One document per file in the archive, in archive order","items":{"$ref":"#/components/schemas/DocumentsDocumentRecord"},"type":["array","null"]},"entry_count":{"format":"int64","type":"integer"}},"required":["archive_document_id","entry_count","created_count","documents"],"type":"object"},"DocumentsPageDocumentRecord":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/DocumentsDocumentRecord"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"DocumentsUpdateDocumentData":{"additionalProperties":false,"properties":{"filename":{"maxLength":255,"minLength":1,"type":"string"},"metadata":{"items":{"$ref":"#/components/schemas/DocumentsDocumentMetadata"},"type":["array","null"]},"references":{"items":{"$ref":"#/components/schemas/DocumentsDocumentReference"},"type":["array","null"]}},"required":["references","metadata"],"type":"object"},"DocumentsUploadSASData":{"additionalProperties":false,"properties":{"blob_name":{"description":"A blob name from an earlier call to this endpoint, to sign a fresh URL for the same blob instead of a new one. For a long upload whose URL expires before the bytes finish. The name must be one this service minted and must not already belong to a recorded document; anything else is 422.","maxLength":512,"type":"string"},"container":{"description":"Container on that account to upload into. Must be one the account is configured with. Optional only where the account has a single container.","maxLength":63,"type":"string"},"filename":{"description":"Original file name, extension required","maxLength":255,"minLength":1,"type":"string"},"storage_account":{"maxLength":64,"minLength":1,"type":"string"},"ttl_seconds":{"description":"How long the write URL stays valid, in seconds. Zero or absent uses the storage account default. Longer than 24 hours is shortened to 24 hours.","format":"int64","maximum":86400,"minimum":0,"type":"integer"},"visibility":{"enum":["public","private"],"type":"string"}},"required":["filename","visibility","storage_account"],"type":"object"},"DocumentsUploadSASRecord":{"additionalProperties":false,"properties":{"blob_name":{"type":"string"},"container":{"type":"string"},"filename":{"type":"string"},"sas_expires_at":{"format":"date-time","type":"string"},"sas_url":{"type":"string"},"storage_account":{"type":"string"},"visibility":{"enum":["public","private"],"type":"string"}},"required":["sas_url","sas_expires_at","storage_account","visibility","container","blob_name","filename"],"type":"object"},"DocumentsUploadedCount":{"additionalProperties":false,"properties":{"total":{"description":"Distinct documents with an uploaded project or unfiled reference. A file filed under two projects counts once.","format":"int64","type":"integer"}},"required":["total"],"type":"object"},"Envelope":{"additionalProperties":false,"properties":{"data":{},"entity_id":{"type":"string"},"headers":{},"id":{"format":"int64","type":"integer"},"occurred_at":{"format":"date-time","type":"string"},"source":{"type":"string"},"type":{"type":"string"},"why":{"$ref":"#/components/schemas/Why"}},"required":["id","type","source","entity_id","occurred_at","headers","data"],"type":"object"},"Error":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/ErrorPayload"}},"required":["header","payload"],"type":"object"},"ErrorDetail":{"additionalProperties":false,"properties":{"location":{"description":"Where the problem is, e.g. body.name or header.Idempotency-Key.","type":"string"},"message":{"description":"What is wrong with this location.","type":"string"},"stackTrace":{"description":"Diagnostic stack trace; present only when EXPOSE_STACK_TRACES is enabled.","type":"string"},"value":{"description":"The value that was rejected."}},"required":["message"],"type":"object"},"ErrorPayload":{"additionalProperties":false,"properties":{"code":{"description":"Stable machine-readable reason, e.g. not_yet_open. Absent unless a client needs to branch on it.","type":"string"},"errors":{"description":"Individual problems, one per offending field.","items":{"$ref":"#/components/schemas/ErrorDetail"},"type":"array"},"message":{"description":"Human-readable summary of the failure.","type":"string"}},"required":["message"],"type":"object"},"EventFeedOutputBody":{"additionalProperties":false,"properties":{"items":{"items":{"$ref":"#/components/schemas/Envelope"},"type":["array","null"]}},"required":["items"],"type":"object"},"Header":{"additionalProperties":false,"properties":{"request_id":{"description":"Correlation id for this request. Echoed from X-Request-Id when the caller supplies one.","type":"string"},"status":{"description":"HTTP status code, duplicated from the status line.","format":"int64","type":"integer"},"timestamp":{"description":"When the response was produced, UTC.","format":"date-time","type":"string"}},"required":["timestamp","status"],"type":"object"},"IdentityAddServiceAudienceData":{"additionalProperties":false,"properties":{"owner_fid":{"description":"The principal responsible for the service.","maxLength":255,"minLength":1,"type":"string"},"service":{"description":"The service's name: a-z, 0-9 and '-', starting with a letter.","maxLength":63,"minLength":1,"type":"string"},"uri":{"description":"https:// and a lowercase host, with nothing after it. Neither the platform audience nor identity's own.","maxLength":255,"minLength":1,"type":"string"}},"required":["uri","service","owner_fid"],"type":"object"},"IdentityAddServiceAudienceRequest":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityAddServiceAudienceData"}},"required":["data"],"type":"object"},"IdentityAdminAuditRecord":{"additionalProperties":false,"properties":{"action":{"type":"string"},"actor_fid":{"type":"string"},"id":{"type":"string"},"occurred_at":{"format":"date-time","type":"string"},"outcome":{"enum":["attempted","succeeded","failed","denied"],"type":"string"},"recorded_at":{"description":"When the service stored the record.","format":"date-time","type":"string"},"request_id":{"type":["string","null"]},"subject":{"type":["string","null"]},"target_fid":{"type":["string","null"]}},"required":["id","actor_fid","action","target_fid","subject","outcome","request_id","occurred_at","recorded_at"],"type":"object"},"IdentityAuthzMe":{"additionalProperties":false,"properties":{"can":{"description":"Every scope at which the caller's grants allow at least one action, ordered by scope_type and scope_id. Empty when the caller has none, and when its principal does not exist or is not active.","items":{"$ref":"#/components/schemas/IdentityAuthzScope"},"type":"array"},"fid":{"description":"The caller: the token's sub.","type":"string"},"kind":{"description":"person for a person's token, system for a machine client's own token.","enum":["person","system"],"type":"string"}},"required":["fid","kind","can"],"type":"object"},"IdentityAuthzScope":{"additionalProperties":false,"properties":{"actions":{"description":"The actions, service::Command, sorted, none twice. Never empty: a scope with no actions is left out.","items":{"type":"string"},"type":"array"},"scope_id":{"description":"\"*\" for global; otherwise the building or unit id, a lowercase UUID.","type":"string"},"scope_type":{"enum":["global","building","unit"],"type":"string"}},"required":["scope_type","scope_id","actions"],"type":"object"},"IdentityCatalogPolicy":{"additionalProperties":false,"properties":{"doc":{"description":"The policy's @doc.","type":"string"},"id":{"description":"The policy's @id.","type":"string"}},"required":["id","doc"],"type":"object"},"IdentityChangedServiceAccount":{"additionalProperties":false,"properties":{"audiences":{"description":"The audiences its tokens may name: the platform audience alone, or registered service audiences.","items":{"type":"string"},"type":["array","null"]},"changed":{"description":"False when the account was already in that state, in which case nothing was written and Hydra was not called.","type":"boolean"},"client_id":{"description":"The Hydra client_id, svc- and a name. Also the FID of the account's system principal.","type":"string"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string"},"owner_fid":{"description":"The person who owns the account.","type":"string"},"secret_rotated_at":{"description":"When the current secret was set, at registration or by the last rotation.","format":"date-time","type":"string"},"status":{"enum":["active","disabled","deleted"],"type":"string"}},"required":["changed","client_id","description","owner_fid","audiences","status","created_at","secret_rotated_at"],"type":"object"},"IdentityClientListing":{"additionalProperties":false,"properties":{"clients":{"items":{"$ref":"#/components/schemas/IdentityListedClient"},"type":["array","null"]},"truncated":{"description":"True when Hydra had more clients than the list reads, 2000.","type":"boolean"}},"required":["clients","truncated"],"type":"object"},"IdentityCommandRequestEnsurePrincipalData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityEnsurePrincipalData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"IdentityCreatePersonData":{"additionalProperties":false,"properties":{"email":{"description":"The person's email, a single address such as name@example.com with no display name. Surrounding space is removed and it is lowercased.","maxLength":320,"minLength":1,"type":"string"},"first_name":{"description":"Optional. Surrounding space is removed; at most 100 characters may remain, on one line.","maxLength":400,"type":"string"},"last_name":{"description":"Optional. Surrounding space is removed; at most 100 characters may remain, on one line.","maxLength":400,"type":"string"}},"required":["email"],"type":"object"},"IdentityCreatePersonRequest":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityCreatePersonData"}},"required":["data"],"type":"object"},"IdentityCreateRoleTypeData":{"additionalProperties":false,"properties":{"principal_kind":{"description":"Who may hold the role: person, the default, or system, for service accounts and other machine clients.","enum":["person","system"],"type":"string"},"role":{"description":"The new role: 1 to 63 characters of a-z, 0-9 and '-', starting with a letter. system, service, controller, service-account-admin and any name starting with platform- or principal- are reserved.","maxLength":63,"minLength":1,"type":"string"}},"required":["role"],"type":"object"},"IdentityCreateRoleTypeRequest":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityCreateRoleTypeData"}},"required":["data"],"type":"object"},"IdentityCreatedPerson":{"additionalProperties":false,"properties":{"adopted":{"description":"True when a Kratos identity with this email already existed, with no principal and no way to sign in, and was adopted instead of created.","type":"boolean"},"email":{"description":"The email, as identity stored it in Kratos.","type":"string"},"fid":{"description":"The person's FID: their Kratos identity id, and their principal's FID.","type":"string"},"setup_link":{"description":"The one-time setup link to send to the person: the sign-in app's setup page, with the Kratos recovery link percent-encoded in the fragment, so a link preview cannot use it up. Opening it and continuing signs them in once and shows the settings screen, where they choose a password or Google. It is in this response only: identity does not store it, and a replay of the same Idempotency-Key leaves it out. Null when setup_link_error or setup_link_replayed is true; person/setup-link issues a new one.","type":["string","null"]},"setup_link_error":{"description":"True when the person was added but Kratos did not create the link. The person is kept; issue a link with person/setup-link.","type":"boolean"},"setup_link_expires_at":{"description":"When the setup link expires, four hours after it was issued. Null when there is no link.","format":"date-time","type":["string","null"]},"setup_link_replayed":{"description":"True for a replay of the same Idempotency-Key, which never carries the link.","type":"boolean"}},"required":["fid","email","adopted","setup_link","setup_link_expires_at","setup_link_error","setup_link_replayed"],"type":"object"},"IdentityCreatedRoleType":{"additionalProperties":false,"properties":{"endpoint_access_allowed":{"description":"Always true: a role created through the API may be given actions, whichever its kind.","type":"boolean"},"principal_kind":{"description":"The kind the request named, person when it named none.","enum":["person","system"],"type":"string"},"role":{"type":"string"}},"required":["role","principal_kind","endpoint_access_allowed"],"type":"object"},"IdentityDataAdminAuditRecord":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityAdminAuditRecord"}},"required":["data"],"type":"object"},"IdentityDataAuthzMe":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityAuthzMe"}},"required":["data"],"type":"object"},"IdentityDataChangedServiceAccount":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityChangedServiceAccount"}},"required":["data"],"type":"object"},"IdentityDataClientListing":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityClientListing"}},"required":["data"],"type":"object"},"IdentityDataCreatedPerson":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityCreatedPerson"}},"required":["data"],"type":"object"},"IdentityDataCreatedRoleType":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityCreatedRoleType"}},"required":["data"],"type":"object"},"IdentityDataDeletedRoleType":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityDeletedRoleType"}},"required":["data"],"type":"object"},"IdentityDataDisabledPrincipal":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityDisabledPrincipal"}},"required":["data"],"type":"object"},"IdentityDataEnsuredPrincipal":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityEnsuredPrincipal"}},"required":["data"],"type":"object"},"IdentityDataGrantedEndpointAccess":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityGrantedEndpointAccess"}},"required":["data"],"type":"object"},"IdentityDataGrantedRole":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityGrantedRole"}},"required":["data"],"type":"object"},"IdentityDataIssuedServiceAccount":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityIssuedServiceAccount"}},"required":["data"],"type":"object"},"IdentityDataIssuedSetupLink":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityIssuedSetupLink"}},"required":["data"],"type":"object"},"IdentityDataPersonSetup":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityPersonSetup"}},"required":["data"],"type":"object"},"IdentityDataPrincipalSnapshot":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityPrincipalSnapshot"}},"required":["data"],"type":"object"},"IdentityDataPrincipalStatus":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityPrincipalStatus"}},"required":["data"],"type":"object"},"IdentityDataRecoveryAllowed":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityRecoveryAllowed"}},"required":["data"],"type":"object"},"IdentityDataRenamedRoleType":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityRenamedRoleType"}},"required":["data"],"type":"object"},"IdentityDataRevokedEndpointAccess":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityRevokedEndpointAccess"}},"required":["data"],"type":"object"},"IdentityDataRevokedRole":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityRevokedRole"}},"required":["data"],"type":"object"},"IdentityDataRoleActions":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityRoleActions"}},"required":["data"],"type":"object"},"IdentityDataRoleActionsChange":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityRoleActionsChange"}},"required":["data"],"type":"object"},"IdentityDataRoleHolderCounts":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityRoleHolderCounts"}},"required":["data"],"type":"object"},"IdentityDataServiceAccount":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityServiceAccount"}},"required":["data"],"type":"object"},"IdentityDataServiceAudience":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityServiceAudience"}},"required":["data"],"type":"object"},"IdentityDeleteRoleTypeData":{"additionalProperties":false,"properties":{"confirm_role":{"description":"The role again, exactly. Any difference is a 422 with code confirmation_mismatch, and nothing is written.","maxLength":63,"type":"string"},"role":{"description":"The role to delete. It must have been created by a person through the user admin app.","maxLength":63,"minLength":1,"type":"string"}},"required":["role","confirm_role"],"type":"object"},"IdentityDeleteRoleTypeRequest":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityDeleteRoleTypeData"}},"required":["data"],"type":"object"},"IdentityDeletedRoleType":{"additionalProperties":false,"properties":{"actions_removed":{"description":"How many actions the role could call.","format":"int64","type":"integer"},"grants_revoked":{"description":"How many unexpired grants were revoked. Expired grants were removed too.","format":"int64","type":"integer"},"principals":{"description":"How many distinct principals held an unexpired grant of the role.","format":"int64","type":"integer"},"role":{"type":"string"}},"required":["role","principals","grants_revoked","actions_removed"],"type":"object"},"IdentityDisablePrincipalData":{"additionalProperties":false,"properties":{"fid":{"description":"The person principal's FID, the Kratos identity id as a lowercase UUID.","maxLength":255,"minLength":1,"type":"string"}},"required":["fid"],"type":"object"},"IdentityDisablePrincipalRequest":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityDisablePrincipalData"}},"required":["data"],"type":"object"},"IdentityDisabledPrincipal":{"additionalProperties":false,"properties":{"changed":{"description":"False when the principal was already disabled, in which case nothing was written.","type":"boolean"},"fid":{"type":"string"},"kind":{"enum":["person","system"],"type":"string"},"status":{"description":"Always disabled after a successful call.","enum":["active","disabled"],"type":"string"}},"required":["fid","kind","status","changed"],"type":"object"},"IdentityEndpointAccessRowData":{"additionalProperties":false,"properties":{"action":{"description":"An action, service::Command, for example sample::Assign or identity::ListRoleTypes.","maxLength":127,"minLength":1,"type":"string"},"role":{"description":"A registered role.","maxLength":63,"minLength":1,"type":"string"}},"required":["action","role"],"type":"object"},"IdentityEndpointAccessRowRequest":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityEndpointAccessRowData"}},"required":["data"],"type":"object"},"IdentityEnsurePrincipalData":{"additionalProperties":false,"properties":{"fid":{"description":"For a person, the Kratos identity id as a lowercase UUID. For a system principal, the Hydra client_id: lowercase a-z, 0-9, '.', '_' and '-', starting with a letter or digit, and not \"system\".","maxLength":255,"minLength":1,"type":"string"},"kind":{"enum":["person","system"],"type":"string"}},"required":["fid","kind"],"type":"object"},"IdentityEnsuredPrincipal":{"additionalProperties":false,"properties":{"created":{"description":"True only for the call that created the principal.","type":"boolean"},"fid":{"description":"The principal's FID, as sent.","type":"string"},"kind":{"enum":["person","system"],"type":"string"},"status":{"description":"The current status. Ensure never changes it.","enum":["active","disabled"],"type":"string"}},"required":["fid","kind","status","created"],"type":"object"},"IdentityEnvelopeDataAdminAuditRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataAdminAuditRecord"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataAuthzMe":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataAuthzMe"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataChangedServiceAccount":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataChangedServiceAccount"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataClientListing":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataClientListing"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataCreatedPerson":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataCreatedPerson"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataCreatedRoleType":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataCreatedRoleType"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataDeletedRoleType":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataDeletedRoleType"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataDisabledPrincipal":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataDisabledPrincipal"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataEnsuredPrincipal":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataEnsuredPrincipal"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataGrantedEndpointAccess":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataGrantedEndpointAccess"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataGrantedRole":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataGrantedRole"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataIssuedServiceAccount":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataIssuedServiceAccount"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataIssuedSetupLink":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataIssuedSetupLink"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataPersonSetup":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataPersonSetup"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataPrincipalSnapshot":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataPrincipalSnapshot"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataPrincipalStatus":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataPrincipalStatus"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataRecoveryAllowed":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataRecoveryAllowed"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataRenamedRoleType":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataRenamedRoleType"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataRevokedEndpointAccess":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataRevokedEndpointAccess"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataRevokedRole":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataRevokedRole"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataRoleActions":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataRoleActions"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataRoleActionsChange":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataRoleActionsChange"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataRoleHolderCounts":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataRoleHolderCounts"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataServiceAccount":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataServiceAccount"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopeDataServiceAudience":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityDataServiceAudience"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopePageAdminAuditRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityPageAdminAuditRecord"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopePageListedGrant":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityPageListedGrant"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopePageListedRoleType":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityPageListedRoleType"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopePageServiceAccount":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityPageServiceAccount"}},"required":["header","payload"],"type":"object"},"IdentityEnvelopePageServiceAudience":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IdentityPageServiceAudience"}},"required":["header","payload"],"type":"object"},"IdentityGrantKeyData":{"additionalProperties":false,"properties":{"fid":{"description":"The principal's FID.","maxLength":255,"minLength":1,"type":"string"},"role":{"description":"A role registered in the service's role registry, for example staff.","maxLength":63,"minLength":1,"type":"string"},"scope_id":{"description":"\"*\" for a global grant; otherwise the building or unit id, a lowercase UUID.","maxLength":36,"minLength":1,"type":"string"},"scope_type":{"enum":["global","building","unit"],"type":"string"}},"required":["fid","role","scope_type","scope_id"],"type":"object"},"IdentityGrantRoleData":{"additionalProperties":false,"properties":{"expires_at":{"description":"When the grant stops applying. Leave it out for a grant that lasts until it is revoked; on an existing grant, leaving it out removes the expiry. A global platform-admin grant cannot expire.","format":"date-time","type":"string"},"fid":{"description":"The principal's FID.","maxLength":255,"minLength":1,"type":"string"},"role":{"description":"A role registered in the service's role registry, for example staff.","maxLength":63,"minLength":1,"type":"string"},"scope_id":{"description":"\"*\" for a global grant; otherwise the building or unit id, a lowercase UUID.","maxLength":36,"minLength":1,"type":"string"},"scope_type":{"enum":["global","building","unit"],"type":"string"}},"required":["fid","role","scope_type","scope_id"],"type":"object"},"IdentityGrantRoleRequest":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityGrantRoleData"}},"required":["data"],"type":"object"},"IdentityGrantedEndpointAccess":{"additionalProperties":false,"properties":{"action":{"type":"string"},"created":{"description":"False when the role could already call the action, in which case nothing was written.","type":"boolean"},"role":{"type":"string"}},"required":["action","role","created"],"type":"object"},"IdentityGrantedRole":{"additionalProperties":false,"properties":{"changed":{"description":"False when the grant already existed exactly as requested, in which case nothing was written.","type":"boolean"},"expires_at":{"description":"Null when the grant lasts until it is revoked.","format":"date-time","type":["string","null"]},"fid":{"type":"string"},"granted_at":{"format":"date-time","type":"string"},"role":{"type":"string"},"scope_id":{"type":"string"},"scope_type":{"enum":["global","building","unit"],"type":"string"},"source":{"description":"Always manual for a grant made through this operation.","type":"string"}},"required":["fid","role","scope_type","scope_id","source","expires_at","granted_at","changed"],"type":"object"},"IdentityHookMessage":{"additionalProperties":false,"properties":{"id":{"description":"Kratos's generic validation error id, 4000001.","format":"int64","type":"integer"},"text":{"description":"The message the recovery screen shows.","type":"string"},"type":{"description":"Always error.","type":"string"}},"required":["id","text","type"],"type":"object"},"IdentityHookMessageGroup":{"additionalProperties":false,"properties":{"instance_ptr":{"description":"Always #/, the whole form.","type":"string"},"messages":{"items":{"$ref":"#/components/schemas/IdentityHookMessage"},"type":["array","null"]}},"required":["instance_ptr","messages"],"type":"object"},"IdentityHookMessages":{"additionalProperties":false,"properties":{"messages":{"description":"One group, for the whole form.","items":{"$ref":"#/components/schemas/IdentityHookMessageGroup"},"type":["array","null"]}},"required":["messages"],"type":"object"},"IdentityIssuedServiceAccount":{"additionalProperties":false,"properties":{"audiences":{"description":"The audiences its tokens may name: the platform audience alone, or registered service audiences.","items":{"type":"string"},"type":["array","null"]},"client_id":{"description":"The Hydra client_id, svc- and a name. Also the FID of the account's system principal.","type":"string"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string"},"owner_fid":{"description":"The person who owns the account.","type":"string"},"secret":{"description":"The client secret. It is in this response only, the first time: identity does not store it, and a replay of the same Idempotency-Key leaves it out. A lost secret means rotating.","type":"string"},"secret_rotated_at":{"description":"When the current secret was set, at registration or by the last rotation.","format":"date-time","type":"string"},"secret_shown":{"description":"True when this response carries the secret. False for a replay, which never does.","type":"boolean"},"status":{"enum":["active","disabled","deleted"],"type":"string"}},"required":["secret_shown","client_id","description","owner_fid","audiences","status","created_at","secret_rotated_at"],"type":"object"},"IdentityIssuedSetupLink":{"additionalProperties":false,"properties":{"fid":{"type":"string"},"setup_link":{"description":"The one-time setup link: the sign-in app's setup page, with the Kratos recovery link percent-encoded in the fragment. It is in this response only: identity does not store it, and a replay of the same Idempotency-Key leaves it out.","type":["string","null"]},"setup_link_expires_at":{"description":"When the setup link expires, four hours after it was issued. Null for a replay.","format":"date-time","type":["string","null"]},"setup_link_replayed":{"description":"True for a replay of the same Idempotency-Key, which never carries the link.","type":"boolean"}},"required":["fid","setup_link","setup_link_expires_at","setup_link_replayed"],"type":"object"},"IdentityKratosPersonBody":{"additionalProperties":false,"properties":{"identity_id":{"description":"The Kratos identity id, a lowercase UUID. It becomes the person principal's FID.","type":"string"}},"required":["identity_id"],"type":"object"},"IdentityListedClient":{"additionalProperties":false,"properties":{"audiences":{"description":"The audiences the client may ask for.","items":{"type":"string"},"type":["array","null"]},"auth_method":{"description":"How the client authenticates at the token endpoint.","type":"string"},"client_id":{"description":"The Hydra client_id.","type":"string"},"grant_types":{"description":"The OAuth2 grants the client may use.","items":{"type":"string"},"type":["array","null"]},"interactive":{"description":"True when a person can sign in through the client: it may use the authorization_code grant, or it skips consent. first_party alone does not count: on a machine client it has no effect.","type":"boolean"},"managed_by":{"description":"Who manages the client: repo for a client from the repository's client files, identity for a service account, none when its metadata names no one, other for anything else.","enum":["repo","identity","none","other"],"type":"string"},"name":{"description":"The client's name in Hydra, or empty.","type":"string"},"updated_at":{"description":"When Hydra last changed the client, or null when Hydra sent no time.","format":"date-time","type":["string","null"]}},"required":["client_id","name","grant_types","audiences","auth_method","managed_by","interactive","updated_at"],"type":"object"},"IdentityListedGrant":{"additionalProperties":false,"properties":{"expired":{"description":"True when expires_at has passed. An expired grant is ignored by authorization and removed later by a cleanup job.","type":"boolean"},"expires_at":{"description":"Null when the grant lasts until it is revoked.","format":"date-time","type":["string","null"]},"fid":{"type":"string"},"granted_at":{"format":"date-time","type":"string"},"role":{"type":"string"},"scope_id":{"type":"string"},"scope_type":{"enum":["global","building","unit"],"type":"string"},"source":{"description":"manual, or the automation that created the grant, for example lease:<id>.","type":"string"}},"required":["fid","role","scope_type","scope_id","source","expires_at","granted_at","expired"],"type":"object"},"IdentityListedRoleType":{"additionalProperties":false,"properties":{"action_count":{"description":"How many actions the role may call.","format":"int64","type":"integer"},"created_by":{"description":"Who created the role: system for a role a migration seeded or the local grant key created, or the FID of the person who created it through the user admin app. Roles created before identity checked admin requests itself may say users-app.","type":"string"},"endpoint_access_allowed":{"description":"Whether the role may be given actions. False for a system role such as principal-reader.","type":"boolean"},"principal_kind":{"description":"The kind of principal that may hold the role.","enum":["person","system"],"type":"string"},"protected":{"description":"True when the role can never be renamed or deleted: a role a migration seeded or the local grant key created, a reserved name, or a role a Cedar policy names directly. A role a person created through the user admin app is false.","type":"boolean"},"role":{"description":"A registered role, for example staff.","type":"string"}},"required":["role","principal_kind","endpoint_access_allowed","created_by","action_count","protected"],"type":"object"},"IdentityPageAdminAuditRecord":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IdentityAdminAuditRecord"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"IdentityPageListedGrant":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IdentityListedGrant"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"IdentityPageListedRoleType":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IdentityListedRoleType"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"IdentityPageServiceAccount":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IdentityServiceAccount"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"IdentityPageServiceAudience":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IdentityServiceAudience"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"IdentityPersonFIDData":{"additionalProperties":false,"properties":{"fid":{"description":"The person principal's FID, the Kratos identity id as a lowercase UUID.","maxLength":255,"minLength":1,"type":"string"}},"required":["fid"],"type":"object"},"IdentityPersonFIDRequest":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityPersonFIDData"}},"required":["data"],"type":"object"},"IdentityPersonSetup":{"additionalProperties":false,"properties":{"fid":{"type":"string"},"setup_pending":{"description":"True when the person has no way to sign in yet: no password with a hash, no linked Google account and no other credential. Only then can a setup link be issued.","type":"boolean"}},"required":["fid","setup_pending"],"type":"object"},"IdentityPrincipalSnapshot":{"additionalProperties":false,"properties":{"as_of":{"description":"The database's time for the read. Every principal, grant and endpoint_access row is as it was at this moment.","format":"date-time","type":"string"},"endpoint_access":{"description":"Every endpoint_access row: which roles may call which action. Ordered by action and role. Always present; an empty list means no role may call any action.","items":{"$ref":"#/components/schemas/IdentitySnapshotEndpointAccess"},"type":"array"},"grants":{"description":"Every grant with no expiry or one after the read, from every source, ordered by fid, role, scope_type, scope_id and source.","items":{"$ref":"#/components/schemas/IdentitySnapshotGrant"},"type":"array"},"principals":{"description":"Every principal, disabled ones included, ordered by fid.","items":{"$ref":"#/components/schemas/IdentitySnapshotPrincipal"},"type":"array"}},"required":["as_of","principals","grants","endpoint_access"],"type":"object"},"IdentityPrincipalStatus":{"additionalProperties":false,"properties":{"fid":{"type":"string"},"kind":{"enum":["person","system"],"type":"string"},"status":{"description":"A caller refuses a principal that is not active.","enum":["active","disabled"],"type":"string"}},"required":["fid","kind","status"],"type":"object"},"IdentityRecordAdminAuditData":{"additionalProperties":false,"properties":{"action":{"description":"A dotted code, 3 to 64 characters of a-z, 0-9, '_' and '.', starting with a letter, for example admin.access_denied.","maxLength":64,"minLength":3,"type":"string"},"actor_fid":{"description":"Who acted: the FID of the person whose access token the call carries. Any other FID is a 422. Only a call made with the local grant key may name another actor.","maxLength":255,"minLength":1,"type":"string"},"occurred_at":{"description":"When the caller says the step happened.","format":"date-time","type":"string"},"outcome":{"description":"attempted for a record written before the action runs, which does not claim the action happened.","enum":["attempted","succeeded","failed","denied"],"type":"string"},"request_id":{"description":"The caller's correlation id: A-Z, a-z, 0-9, '.', '_', ':' and '-'.","maxLength":128,"minLength":1,"type":"string"},"subject":{"description":"What the action was about when it is not a person, as a code, for example role:staff. 1 to 128 characters of a-z, 0-9, '_', '.', ':' and '-', starting with a letter.","maxLength":128,"minLength":1,"type":"string"},"target_fid":{"description":"The person or system the action was about, if any. It need not have a principal.","maxLength":255,"minLength":1,"type":"string"}},"required":["actor_fid","action","outcome","occurred_at"],"type":"object"},"IdentityRecordAdminAuditRequest":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityRecordAdminAuditData"}},"required":["data"],"type":"object"},"IdentityRecoveryAllowed":{"additionalProperties":false,"properties":{"allowed":{"description":"Always true. Every refusal is a 403, and a check that could not run is a 503.","type":"boolean"},"fid":{"type":"string"}},"required":["fid","allowed"],"type":"object"},"IdentityRegisterServiceAccountData":{"additionalProperties":false,"properties":{"audiences":{"description":"The platform audience alone, or 1 to 20 audiences from the service audience registry.","items":{"type":"string"},"maxItems":20,"minItems":1,"type":["array","null"]},"client_id":{"description":"svc- and a name: a lowercase letter, then 1 to 58 of a-z, 0-9 and '-'. Never reused, even after the account is deleted.","maxLength":63,"minLength":6,"pattern":"^svc-[a-z][a-z0-9-]{1,58}$","type":"string"},"description":{"description":"What the account is for, as plain text on one line.","maxLength":280,"minLength":1,"type":"string"},"owner_fid":{"description":"The owner, an active person principal's FID.","maxLength":36,"minLength":1,"type":"string"}},"required":["client_id","description","owner_fid","audiences"],"type":"object"},"IdentityRegisterServiceAccountRequest":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityRegisterServiceAccountData"}},"required":["data"],"type":"object"},"IdentityRenameRoleTypeData":{"additionalProperties":false,"properties":{"new_role":{"description":"The new name: 1 to 63 characters of a-z, 0-9 and '-', starting with a letter. The reserved names, any name starting with platform- or principal-, and a name a Cedar policy names directly are refused with code role_reserved.","maxLength":63,"minLength":1,"type":"string"},"role":{"description":"The role to rename. It must have been created by a person through the user admin app.","maxLength":63,"minLength":1,"type":"string"}},"required":["role","new_role"],"type":"object"},"IdentityRenameRoleTypeRequest":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityRenameRoleTypeData"}},"required":["data"],"type":"object"},"IdentityRenamedRoleType":{"additionalProperties":false,"properties":{"actions_moved":{"description":"How many actions moved to the new name.","format":"int64","type":"integer"},"grants_moved":{"description":"How many unexpired grants moved to the new name. Expired grants moved too.","format":"int64","type":"integer"},"new_role":{"type":"string"},"principals":{"description":"How many distinct principals hold those grants.","format":"int64","type":"integer"},"role":{"description":"The old name, which no longer exists.","type":"string"}},"required":["role","new_role","grants_moved","principals","actions_moved"],"type":"object"},"IdentityRevokeRoleRequest":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityGrantKeyData"}},"required":["data"],"type":"object"},"IdentityRevokedEndpointAccess":{"additionalProperties":false,"properties":{"action":{"type":"string"},"removed":{"description":"False when the role could not call the action, in which case nothing was written.","type":"boolean"},"role":{"type":"string"}},"required":["action","role","removed"],"type":"object"},"IdentityRevokedRole":{"additionalProperties":false,"properties":{"fid":{"type":"string"},"revoked":{"description":"False when there was no such manual grant, in which case nothing was written.","type":"boolean"},"role":{"type":"string"},"scope_id":{"type":"string"},"scope_type":{"enum":["global","building","unit"],"type":"string"},"source":{"description":"Always manual. This operation never removes a grant an automation created.","type":"string"}},"required":["fid","role","scope_type","scope_id","source","revoked"],"type":"object"},"IdentityRoleAction":{"additionalProperties":false,"properties":{"action":{"type":"string"},"assigned":{"description":"Whether the role may call the action.","type":"boolean"},"description":{"description":"The action's short description, from its service's descriptions.json. Empty for an action the role may call that is not in the catalog.","type":"string"},"in_catalog":{"description":"False for an action the role may call that is in no policy of the catalog identity was built with. Such an action can be removed from the role but not added.","type":"boolean"},"kind":{"description":"\"read\" when the action only reads data, or \"change\" when it creates, changes, or deletes something, from its service's descriptions.json. Empty for an action the role may call that is not in the catalog.","type":"string"},"needs_platform_admin":{"description":"True when only a person holding platform-admin at global scope may add or remove this action from a role, identity's rule for its own identity:: actions. Informational: the server enforces the rule regardless of this field.","type":"boolean"},"policies":{"description":"The policies that grant the action through endpoint_access. Empty when the action is not in the catalog.","items":{"$ref":"#/components/schemas/IdentityCatalogPolicy"},"type":"array"},"scope_types":{"description":"The scope types a grant can reach the action at, sorted. Empty for an action the role may call that is not in the catalog.","items":{"type":"string"},"type":"array"},"service":{"description":"The service that owns the action, its prefix.","type":"string"}},"required":["action","service","description","kind","scope_types","policies","assigned","in_catalog","needs_platform_admin"],"type":"object"},"IdentityRoleActions":{"additionalProperties":false,"properties":{"actions":{"description":"Every catalog action, then every action the role may call that is not in the catalog, each group ordered by action.","items":{"$ref":"#/components/schemas/IdentityRoleAction"},"type":"array"},"endpoint_access_allowed":{"description":"Whether the role may be given actions.","type":"boolean"},"role":{"type":"string"}},"required":["role","endpoint_access_allowed","actions"],"type":"object"},"IdentityRoleActionsChange":{"additionalProperties":false,"properties":{"actions":{"description":"Every action the role may call after the change, in byte order.","items":{"type":"string"},"type":"array"},"added":{"description":"Actions the role may now call, in byte order.","items":{"type":"string"},"type":"array"},"removed":{"description":"Actions the role may no longer call, in byte order.","items":{"type":"string"},"type":"array"},"role":{"type":"string"}},"required":["role","added","removed","actions"],"type":"object"},"IdentityRoleGrantCounts":{"additionalProperties":false,"properties":{"building":{"description":"Grants at one building.","format":"int64","type":"integer"},"global":{"description":"Grants that apply everywhere.","format":"int64","type":"integer"},"unit":{"description":"Grants at one unit.","format":"int64","type":"integer"}},"required":["global","building","unit"],"type":"object"},"IdentityRoleHolderCounts":{"additionalProperties":false,"properties":{"grants":{"$ref":"#/components/schemas/IdentityRoleGrantCounts","description":"How many unexpired grants of the role there are, per scope type."},"principals":{"description":"How many distinct principals hold the role now.","format":"int64","type":"integer"},"role":{"type":"string"}},"required":["role","principals","grants"],"type":"object"},"IdentityServiceAccount":{"additionalProperties":false,"properties":{"audiences":{"description":"The audiences its tokens may name: the platform audience alone, or registered service audiences.","items":{"type":"string"},"type":["array","null"]},"client_id":{"description":"The Hydra client_id, svc- and a name. Also the FID of the account's system principal.","type":"string"},"created_at":{"format":"date-time","type":"string"},"description":{"type":"string"},"owner_fid":{"description":"The person who owns the account.","type":"string"},"secret_rotated_at":{"description":"When the current secret was set, at registration or by the last rotation.","format":"date-time","type":"string"},"status":{"enum":["active","disabled","deleted"],"type":"string"}},"required":["client_id","description","owner_fid","audiences","status","created_at","secret_rotated_at"],"type":"object"},"IdentityServiceAccountIDData":{"additionalProperties":false,"properties":{"client_id":{"description":"The service account's client_id.","maxLength":63,"minLength":1,"type":"string"}},"required":["client_id"],"type":"object"},"IdentityServiceAccountIDRequest":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentityServiceAccountIDData"}},"required":["data"],"type":"object"},"IdentityServiceAudience":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"created_by":{"description":"The FID of the person who registered it through the user admin app, or system for the local grant key. Audiences registered before identity checked admin requests itself may say users-app.","type":"string"},"owner_fid":{"description":"The principal responsible for the service.","type":"string"},"service":{"description":"The service the audience belongs to.","type":"string"},"uri":{"description":"https:// and the service's lowercase host.","type":"string"}},"required":["uri","service","owner_fid","created_at","created_by"],"type":"object"},"IdentitySetRoleActionsData":{"additionalProperties":false,"properties":{"actions":{"description":"Every action the role ends with, at most 500, none twice. An action being added must be in the action catalog. More than 500 is a 422 with code too_many_actions.","items":{"type":"string"},"type":"array"},"expected_actions":{"description":"The actions the caller last read for the role. When the role's current actions differ, ignoring order, the command is a 409 with code stale and writes nothing.","items":{"type":"string"},"type":"array"},"role":{"description":"A registered role whose endpoint_access_allowed is true.","maxLength":63,"minLength":1,"type":"string"}},"required":["role","actions","expected_actions"],"type":"object"},"IdentitySetRoleActionsRequest":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IdentitySetRoleActionsData"}},"required":["data"],"type":"object"},"IdentitySnapshotEndpointAccess":{"additionalProperties":false,"properties":{"action":{"description":"An action, service::Command, for example sample::Assign.","type":"string"},"role":{"description":"A role that may call the action wherever it is granted.","type":"string"}},"required":["action","role"],"type":"object"},"IdentitySnapshotGrant":{"additionalProperties":false,"properties":{"expires_at":{"description":"Null when the grant lasts until it is revoked.","format":"date-time","type":["string","null"]},"fid":{"type":"string"},"role":{"type":"string"},"scope_id":{"description":"\"*\" for a global grant; otherwise the building or unit id, a lowercase UUID.","type":"string"},"scope_type":{"enum":["global","building","unit"],"type":"string"},"source":{"description":"manual, or the automation that created the grant, for example lease:<id>.","type":"string"}},"required":["fid","role","scope_type","scope_id","source","expires_at"],"type":"object"},"IdentitySnapshotPrincipal":{"additionalProperties":false,"properties":{"fid":{"type":"string"},"kind":{"enum":["person","system"],"type":"string"},"status":{"description":"A consumer refuses a principal that is not active.","enum":["active","disabled"],"type":"string"}},"required":["fid","kind","status"],"type":"object"},"IntelligenceArea":{"additionalProperties":false,"properties":{"computed_at":{"format":"date-time","type":"string"},"decision_count":{"format":"int64","type":"integer"},"description":{"type":"string"},"fact_count":{"format":"int64","type":"integer"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"origin":{"enum":["induced","manual"],"type":"string"},"size":{"format":"int64","type":"integer"},"slug":{"type":"string"},"status":{"enum":["pending","ready"],"type":"string"}},"required":["id","slug","name","description","size","decision_count","fact_count","computed_at","origin","status"],"type":"object"},"IntelligenceAreaDecider":{"additionalProperties":false,"properties":{"decision_count":{"format":"int64","type":"integer"},"first_observed_at":{"format":"date-time","type":"string"},"last_observed_at":{"format":"date-time","type":"string"},"mention_count":{"format":"int64","type":"integer"},"person":{"type":"string"},"person_id":{"format":"uuid","type":"string"},"score":{"format":"double","type":"number"},"share":{"format":"double","type":"number"}},"required":["person_id","person","decision_count","mention_count","share","score","first_observed_at","last_observed_at"],"type":"object"},"IntelligenceAreaDeciders":{"additionalProperties":false,"properties":{"area_id":{"format":"uuid","type":"string"},"deciders":{"items":{"$ref":"#/components/schemas/IntelligenceAreaDecider"},"type":["array","null"]},"decision_count":{"format":"int64","type":"integer"},"involved":{"items":{"$ref":"#/components/schemas/IntelligenceAreaDecider"},"type":["array","null"]},"name":{"type":"string"},"size":{"format":"int64","type":"integer"}},"required":["area_id","name","size","decision_count","deciders","involved"],"type":"object"},"IntelligenceAreaMember":{"additionalProperties":false,"properties":{"distance":{"format":"double","type":"number"},"insight_id":{"format":"uuid","type":"string"},"kind":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"}},"required":["insight_id","title","kind","status","distance"],"type":"object"},"IntelligenceAreaMembers":{"additionalProperties":false,"properties":{"area_id":{"format":"uuid","type":"string"},"members":{"items":{"$ref":"#/components/schemas/IntelligenceAreaMember"},"type":["array","null"]}},"required":["area_id","members"],"type":"object"},"IntelligenceAreaMembership":{"additionalProperties":false,"properties":{"area_ids":{"items":{"type":"string"},"type":["array","null"]},"insight_id":{"format":"uuid","type":"string"}},"required":["insight_id","area_ids"],"type":"object"},"IntelligenceAttentionBriefDetail":{"additionalProperties":false,"properties":{"coverage":{},"delivery_note":{"type":"string"},"delivery_state":{"type":"string"},"excluded":{"items":{"$ref":"#/components/schemas/IntelligenceAttentionEntry"},"type":["array","null"]},"generation":{},"included":{"items":{"$ref":"#/components/schemas/IntelligenceAttentionEntry"},"type":["array","null"]},"profile_version":{"format":"int32","type":"integer"},"watching":{"items":{"$ref":"#/components/schemas/IntelligenceAttentionEntry"},"type":["array","null"]},"withheld":{"description":"Items omitted because the caller cannot read a cited source.","format":"int64","type":"integer"}},"required":["profile_version","coverage","generation","included","watching","excluded","withheld"],"type":"object"},"IntelligenceAttentionBriefSummary":{"additionalProperties":false,"properties":{"cutoff":{"format":"date-time","type":"string"},"id":{"type":"string"},"period_end":{"format":"date-time","type":"string"},"period_start":{"format":"date-time","type":"string"},"profile_id":{"type":"string"},"reading":{"type":"string"},"recipient":{"type":"string"},"role_label":{"type":"string"},"status":{"type":"string"}},"required":["id","profile_id","recipient","period_start","period_end","status","reading","cutoff"],"type":"object"},"IntelligenceAttentionDelegation":{"additionalProperties":false,"properties":{"category":{"type":"string"},"owner":{"type":"string"}},"required":["category","owner"],"type":"object"},"IntelligenceAttentionDeliveryResult":{"additionalProperties":false,"properties":{"note":{"type":"string"},"receipt_ref":{"type":"string"},"state":{"type":"string"}},"required":["state"],"type":"object"},"IntelligenceAttentionEntry":{"additionalProperties":false,"properties":{"band":{"type":"string"},"body":{"type":"string"},"confirmed_owner":{"type":"string"},"exclusion_reason":{"type":"string"},"included":{"type":"boolean"},"item_id":{"type":"string"},"item_status":{"type":"string"},"position":{"format":"int32","type":"integer"},"sources":{"items":{"$ref":"#/components/schemas/IntelligenceAttentionSource"},"type":["array","null"]},"subject":{"type":"string"},"suggested_action":{"type":"string"},"suggested_owner":{"type":"string"},"uncertainty":{"type":"string"},"version_id":{"type":"string"},"watching":{"type":"boolean"},"what_changed":{"type":"string"},"what_matters":{"type":"string"},"why_care":{"type":"string"}},"required":["item_id","version_id","included","watching","position","band","subject","what_matters","why_care","suggested_action","item_status","sources"],"type":"object"},"IntelligenceAttentionID":{"additionalProperties":false,"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"},"IntelligenceAttentionNamed":{"additionalProperties":false,"properties":{"detail":{"type":"string"},"title":{"type":"string"}},"required":["title"],"type":"object"},"IntelligenceAttentionProfile":{"additionalProperties":false,"properties":{"channel":{"type":"string"},"confirmed_at":{"format":"date-time","type":"string"},"confirmed_by":{"type":"string"},"decisions":{"items":{"$ref":"#/components/schemas/IntelligenceAttentionNamed"},"type":["array","null"]},"delegation":{"items":{"$ref":"#/components/schemas/IntelligenceAttentionDelegation"},"type":["array","null"]},"delivery_time":{"type":"string"},"escalation":{"type":"string"},"id":{"type":"string"},"materiality":{"type":"string"},"priorities":{"items":{"$ref":"#/components/schemas/IntelligenceAttentionNamed"},"type":["array","null"]},"recipient":{"type":"string"},"role_label":{"type":"string"},"status":{"type":"string"},"timezone":{"type":"string"},"version":{"format":"int32","type":"integer"},"watchlist":{"items":{"$ref":"#/components/schemas/IntelligenceAttentionWatch"},"type":["array","null"]}},"required":["id","recipient","status","version","priorities","decisions","watchlist","delivery_time","timezone","channel","delegation"],"type":"object"},"IntelligenceAttentionProfileInput":{"additionalProperties":false,"properties":{"decisions":{"items":{"$ref":"#/components/schemas/IntelligenceAttentionNamed"},"maxItems":5,"type":["array","null"]},"delegation":{"items":{"$ref":"#/components/schemas/IntelligenceAttentionDelegation"},"maxItems":10,"type":["array","null"]},"delivery_time":{"description":"HH:MM in the profile timezone. The pilot schedule is separate.","type":"string"},"escalation":{"maxLength":4000,"type":"string"},"materiality":{"maxLength":4000,"type":"string"},"priorities":{"items":{"$ref":"#/components/schemas/IntelligenceAttentionNamed"},"maxItems":5,"minItems":1,"type":["array","null"]},"recipient":{"format":"email","maxLength":320,"type":"string"},"role_label":{"description":"A label such as CEO. It does not grant access.","maxLength":80,"type":"string"},"timezone":{"type":"string"},"watchlist":{"items":{"$ref":"#/components/schemas/IntelligenceAttentionWatch"},"maxItems":20,"type":["array","null"]}},"required":["recipient","priorities"],"type":"object"},"IntelligenceAttentionSource":{"additionalProperties":false,"properties":{"accessible":{"type":"boolean"},"excerpt":{"type":"string"},"id":{"type":"string"},"kind":{"type":"string"},"version":{"type":"string"}},"required":["kind","id","accessible"],"type":"object"},"IntelligenceAttentionWatch":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"label":{"type":"string"},"ref":{"type":"string"}},"required":["label"],"type":"object"},"IntelligenceAuthority":{"additionalProperties":false,"properties":{"activity":{"description":"How much the person works in the practice: what they authored, decided, attended, worked on, and were mentioned in, weighted and decayed with age. Zero until the next practice tagging run.","format":"double","type":"number"},"authority_type":{"type":"string"},"breakdown":{"additionalProperties":{"format":"double","type":"number"},"type":"object"},"confidence":{"format":"double","type":"number"},"effective_sources":{"format":"double","type":"number"},"epistemic_state":{"type":"string"},"evidence_mass":{"format":"double","type":"number"},"influence":{"description":"The person's share of influence in the practice, from 0 to 1.","format":"double","type":"number"},"last_observed_at":{"format":"date-time","type":"string"},"person":{"type":"string"},"person_id":{"format":"uuid","type":"string"},"practice_activity_share":{"description":"The person's share of all activity in the practice, from 0 to 1. The shares of everyone active in one practice add up to 1.","format":"double","type":"number"},"practice_name":{"type":"string"},"practice_slug":{"type":"string"},"signal_count":{"format":"int64","type":"integer"}},"required":["person_id","person","practice_slug","practice_name","authority_type","confidence","epistemic_state","signal_count","influence","activity","practice_activity_share","evidence_mass","effective_sources","breakdown","last_observed_at"],"type":"object"},"IntelligenceBlockedArea":{"additionalProperties":false,"properties":{"blocked_at":{"format":"date-time","type":"string"},"blocked_by":{"type":"string"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","slug","name","blocked_at","blocked_by"],"type":"object"},"IntelligenceBottleneck":{"additionalProperties":false,"properties":{"computed_at":{"format":"date-time","type":"string"},"entity":{"$ref":"#/components/schemas/IntelligenceEntity"},"median_age_days":{"format":"float","type":"number"},"open_inbound_count":{"format":"int32","type":"integer"},"resolution_rate":{"description":"Answered over asked. A high count with a high rate is a busy expert, not a bottleneck.","format":"float","type":"number"}},"required":["entity","open_inbound_count","resolution_rate","median_age_days","computed_at"],"type":"object"},"IntelligenceBriefReview":{"additionalProperties":false,"properties":{"action":{"enum":["approve","reject"],"type":"string"},"note":{"maxLength":2000,"type":"string"}},"required":["action"],"type":"object"},"IntelligenceCandidate":{"additionalProperties":false,"properties":{"body":{"type":"string"},"cited_observation_ids":{"items":{"type":"string"},"type":["array","null"]},"created_at":{"format":"date-time","type":"string"},"expires_at":{"description":"Unreviewed candidates expire rather than accumulating. A backlog nobody will ever read is worse than no queue.","format":"date-time","type":"string"},"grounding_score":{"format":"double","type":"number"},"id":{"format":"uuid","type":"string"},"kind":{"type":"string"},"novelty_score":{"format":"double","type":"number"},"practice":{"$ref":"#/components/schemas/IntelligencePractice"},"state":{"enum":["open","accepted","rejected","expired"],"type":"string"},"tactic":{"description":"Which derivation produced this: extraction, clustering, contradiction, or prospecting.","type":"string"},"title":{"type":"string"}},"required":["id","tactic","kind","practice","title","body","cited_observation_ids","state","expires_at","created_at"],"type":"object"},"IntelligenceChallengeData":{"additionalProperties":false,"properties":{"against_insight_id":{"description":"The claim you believe this conflicts with, when there is one.","format":"uuid","type":"string"},"reason":{"maxLength":2000,"minLength":1,"type":"string"}},"required":["reason"],"type":"object"},"IntelligenceCitation":{"additionalProperties":false,"properties":{"actor_kind":{"enum":["human","agent","system"],"type":"string"},"author_principal":{"type":"string"},"entailment_score":{"description":"Null until the verifier has judged this citation.","format":"float","type":"number"},"id":{"format":"uuid","type":"string"},"locator":{"description":"Where in workspace the quote came from, as conversation:{id}#turn:{seq}.","type":"string"},"observation_id":{"format":"uuid","type":"string"},"occurred_at":{"description":"When the source was said or written. Not when it was ingested, and not when the insight was created. Absent when the quote was omitted.","format":"date-time","type":"string"},"origin_project_id":{"format":"uuid","type":"string"},"quote":{"type":"string"},"quote_omitted":{"enum":["restricted","unavailable"],"type":"string"},"relation":{"enum":["supports","contradicts","context"],"type":"string"},"source_id":{"description":"The workspace record id. A conversation, a note, a meeting, or a thread.","type":"string"},"source_kind":{"description":"What in workspace the quote came from.","enum":["conversation_turn","evidence_note","evidence_utterance","file","project","project_decision","project_item","project_output","service_event"],"type":"string"},"source_seq":{"description":"Turn or utterance sequence, when the quote is a line inside the record.","format":"int64","type":"integer"}},"required":["id","observation_id","locator","quote","author_principal","actor_kind","relation"],"type":"object"},"IntelligenceCitationCheck":{"additionalProperties":false,"properties":{"passage_id":{"description":"The id from a passage, or a bare evidence record uuid.","type":"string"},"quote":{"minLength":1,"type":"string"}},"required":["passage_id","quote"],"type":"object"},"IntelligenceCitationInput":{"additionalProperties":false,"properties":{"observation_id":{"format":"uuid","type":"string"},"quote":{"maxLength":2000,"minLength":1,"type":"string"},"relation":{"enum":["supports","contradicts","context"],"type":"string"}},"required":["observation_id","quote"],"type":"object"},"IntelligenceCitationVerdict":{"additionalProperties":false,"properties":{"located":{"type":"boolean"},"note":{"type":"string"},"passage_id":{"type":"string"},"quote":{"type":"string"}},"required":["passage_id","quote","located"],"type":"object"},"IntelligenceClearDerived":{"additionalProperties":false,"properties":{"cleared":{"format":"int64","type":"integer"},"examined":{"format":"int64","type":"integer"},"mode":{"type":"string"},"more":{"description":"True when the batch limit was reached and there is more to clear.","type":"boolean"},"skipped":{"additionalProperties":{"format":"int64","type":"integer"},"type":"object"}},"required":["mode","examined","cleared","skipped","more"],"type":"object"},"IntelligenceClearDerivedData":{"additionalProperties":false,"properties":{"before":{"description":"Only clear insights created before this instant. Set it to when the new extractor was deployed. Defaults to now, which clears everything derived so far.","format":"date-time","type":"string"},"limit":{"description":"How many insights to examine in this call. Defaults to 500. Run it again while more is true.","format":"int64","maximum":500,"minimum":1,"type":"integer"},"mode":{"description":"discard deletes the rows so re-derivation can write them again; dispute keeps them and marks them disputed, which drops them out of context packs and down the search ranking without removing anything. Defaults to discard.","enum":["discard","dispute"],"type":"string"}},"type":"object"},"IntelligenceCommandRequestAttentionProfileInput":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceAttentionProfileInput"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"IntelligenceCommandRequestBriefReview":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceBriefReview"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"IntelligenceCommandRequestChallengeData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceChallengeData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"IntelligenceCommandRequestClearDerivedData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceClearDerivedData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"IntelligenceCommandRequestContradictionData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceContradictionData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"IntelligenceCommandRequestCreateAreaData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceCreateAreaData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"IntelligenceCommandRequestCreateInsightData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceCreateInsightData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"IntelligenceCommandRequestCreatePracticeData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceCreatePracticeData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"IntelligenceCommandRequestFeedbackInput":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceFeedbackInput"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"IntelligenceCommandRequestObjectionFeedbackData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceObjectionFeedbackData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"IntelligenceCommandRequestPacketInsightData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligencePacketInsightData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"IntelligenceCommandRequestQuestionActionData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceQuestionActionData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"IntelligenceCommandRequestReconcileInput":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceReconcileInput"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"IntelligenceCommandRequestReevaluateData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceReevaluateData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"IntelligenceCommandRequestRelatedActionData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceRelatedActionData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"IntelligenceCommandRequestResolveDisputeData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceResolveDisputeData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"IntelligenceCommandRequestReviewPacketData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceReviewPacketData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"IntelligenceCommandRequestRunFlowData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceRunFlowData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"IntelligenceCommandRequestRunJobData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceRunJobData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"IntelligenceCommandRequestSupersedeData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceSupersedeData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"IntelligenceCommandRequestUpdatePracticeData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceUpdatePracticeData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"IntelligenceConsideredPair":{"additionalProperties":false,"properties":{"consulted":{"items":{"type":"string"},"type":["array","null"]},"context":{"items":{"type":"string"},"type":["array","null"]},"continuation":{"format":"int64","type":"integer"},"detail":{"type":"string"},"earlier":{"type":"string"},"inquiry":{"$ref":"#/components/schemas/IntelligenceInquiry"},"later":{"type":"string"},"outcome":{"type":"string"},"packet_id":{"type":"string"},"research":{"items":{"$ref":"#/components/schemas/IntelligenceResearchStep"},"type":["array","null"]},"revision":{"type":"string"},"searches":{"items":{"type":"string"},"type":["array","null"]},"shared":{"items":{"type":"string"},"type":["array","null"]}},"required":["earlier","later","shared","outcome","detail","searches","context"],"type":"object"},"IntelligenceContradictionBody":{"additionalProperties":false,"properties":{"created":{"type":"boolean"},"packet_id":{"type":"string"},"status":{"type":"string"}},"required":["packet_id","status","created"],"type":"object"},"IntelligenceContradictionClaim":{"additionalProperties":false,"properties":{"observation_id":{"format":"uuid","type":"string"},"quote":{"maxLength":2000,"minLength":1,"type":"string"}},"required":["observation_id","quote"],"type":"object"},"IntelligenceContradictionData":{"additionalProperties":false,"properties":{"left":{"$ref":"#/components/schemas/IntelligenceContradictionClaim"},"right":{"$ref":"#/components/schemas/IntelligenceContradictionClaim"},"settled_by":{"maxLength":2000,"minLength":1,"type":"string"},"title":{"maxLength":300,"minLength":1,"type":"string"},"who_can_answer":{"maxLength":500,"type":"string"}},"required":["title","settled_by","left","right"],"type":"object"},"IntelligenceCoverageBody":{"additionalProperties":false,"properties":{"gaps":{"items":{"$ref":"#/components/schemas/IntelligenceCoverageGap"},"type":["array","null"]},"reading":{"type":"string"}},"required":["gaps","reading"],"type":"object"},"IntelligenceCoverageGap":{"additionalProperties":false,"properties":{"investigations_blocked":{"format":"int64","type":"integer"},"reason":{"type":"string"}},"required":["reason","investigations_blocked"],"type":"object"},"IntelligenceCreateAreaData":{"additionalProperties":false,"properties":{"description":{"maxLength":500,"type":"string"},"name":{"maxLength":200,"minLength":1,"type":"string"}},"required":["name"],"type":"object"},"IntelligenceCreateInsightData":{"additionalProperties":false,"properties":{"body":{"maxLength":20000,"minLength":1,"type":"string"},"citations":{"description":"At least one. A claim with no evidence is refused.","items":{"$ref":"#/components/schemas/IntelligenceCitationInput"},"minItems":1,"type":["array","null"]},"kind":{"enum":["fact","decision","open_question","hypothesis","problem","handoff","unblock","commitment"],"type":"string"},"practice":{"description":"Practice slug. Falls back to unclassified when unknown.","type":"string"},"title":{"maxLength":500,"minLength":1,"type":"string"}},"required":["kind","practice","title","body","citations"],"type":"object"},"IntelligenceCreatePracticeData":{"additionalProperties":false,"properties":{"description":{"description":"What belongs in the practice and what does not. The classifying model reads it.","maxLength":1000,"type":"string"},"name":{"maxLength":200,"minLength":1,"type":"string"},"parent_practice_id":{"description":"Nest this under an existing practice.","format":"uuid","type":"string"},"slug":{"maxLength":64,"minLength":1,"pattern":"^[a-z0-9][a-z0-9-]*$","type":"string"}},"required":["slug","name"],"type":"object"},"IntelligenceDataArea":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceArea"}},"required":["data"],"type":"object"},"IntelligenceDataAreaDeciders":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceAreaDeciders"}},"required":["data"],"type":"object"},"IntelligenceDataAreaMembers":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceAreaMembers"}},"required":["data"],"type":"object"},"IntelligenceDataAttentionBriefDetail":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceAttentionBriefDetail"}},"required":["data"],"type":"object"},"IntelligenceDataAttentionDeliveryResult":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceAttentionDeliveryResult"}},"required":["data"],"type":"object"},"IntelligenceDataAttentionID":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceAttentionID"}},"required":["data"],"type":"object"},"IntelligenceDataAttentionProfile":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceAttentionProfile"}},"required":["data"],"type":"object"},"IntelligenceDataCandidate":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceCandidate"}},"required":["data"],"type":"object"},"IntelligenceDataClearDerived":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceClearDerived"}},"required":["data"],"type":"object"},"IntelligenceDataContradictionBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceContradictionBody"}},"required":["data"],"type":"object"},"IntelligenceDataCoverageBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceCoverageBody"}},"required":["data"],"type":"object"},"IntelligenceDataDeadJobAction":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceDeadJobAction"}},"required":["data"],"type":"object"},"IntelligenceDataDeadJobList":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceDeadJobList"}},"required":["data"],"type":"object"},"IntelligenceDataDeadJobsRequeue":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceDeadJobsRequeue"}},"required":["data"],"type":"object"},"IntelligenceDataDeciderDecisions":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceDeciderDecisions"}},"required":["data"],"type":"object"},"IntelligenceDataDeletedArea":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceDeletedArea"}},"required":["data"],"type":"object"},"IntelligenceDataDepartResult":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceDepartResult"}},"required":["data"],"type":"object"},"IntelligenceDataDiscoveryCycleDetail":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceDiscoveryCycleDetail"}},"required":["data"],"type":"object"},"IntelligenceDataDiscoveryFindingDetail":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceDiscoveryFindingDetail"}},"required":["data"],"type":"object"},"IntelligenceDataDiscoveryReviewResult":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceDiscoveryReviewResult"}},"required":["data"],"type":"object"},"IntelligenceDataEntity":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceEntity"}},"required":["data"],"type":"object"},"IntelligenceDataEvalDiff":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceEvalDiff"}},"required":["data"],"type":"object"},"IntelligenceDataEvalExample":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceEvalExample"}},"required":["data"],"type":"object"},"IntelligenceDataEvalRun":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceEvalRun"}},"required":["data"],"type":"object"},"IntelligenceDataEvalShape":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceEvalShape"}},"required":["data"],"type":"object"},"IntelligenceDataEvidenceClaimIndex":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceEvidenceClaimIndex"}},"required":["data"],"type":"object"},"IntelligenceDataEvidencePathBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceEvidencePathBody"}},"required":["data"],"type":"object"},"IntelligenceDataEvidenceResults":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceEvidenceResults"}},"required":["data"],"type":"object"},"IntelligenceDataFlowRun":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceFlowRun"}},"required":["data"],"type":"object"},"IntelligenceDataForcedExtraction":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceForcedExtraction"}},"required":["data"],"type":"object"},"IntelligenceDataInsight":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceInsight"}},"required":["data"],"type":"object"},"IntelligenceDataInsightDetail":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceInsightDetail"}},"required":["data"],"type":"object"},"IntelligenceDataJobRun":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceJobRun"}},"required":["data"],"type":"object"},"IntelligenceDataKnowledgeSearchResults":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceKnowledgeSearchResults"}},"required":["data"],"type":"object"},"IntelligenceDataKnowledgeSections":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceKnowledgeSections"}},"required":["data"],"type":"object"},"IntelligenceDataKnownRelationship":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceKnownRelationship"}},"required":["data"],"type":"object"},"IntelligenceDataKnownRelationshipCheck":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceKnownRelationshipCheck"}},"required":["data"],"type":"object"},"IntelligenceDataKnownRelationshipCoverage":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceKnownRelationshipCoverage"}},"required":["data"],"type":"object"},"IntelligenceDataKnownRelationshipDetail":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceKnownRelationshipDetail"}},"required":["data"],"type":"object"},"IntelligenceDataListArea":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceArea"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListAreaMembership":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceAreaMembership"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListAttentionProfile":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceAttentionProfile"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListAuthority":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceAuthority"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListBlockedArea":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceBlockedArea"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListBottleneck":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceBottleneck"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListDiscoveryBlocked":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceDiscoveryBlocked"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListDiscoveryCycle":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceDiscoveryCycle"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListEdge":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceEdge"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListEvidenceInsightCount":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceEvidenceInsightCount"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListFollowThrough":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceFollowThrough"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListInsight":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceInsight"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListInsightLabel":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceInsightLabel"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListKnower":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceKnower"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListLink":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceLink"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListMappedDecision":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceMappedDecision"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListOffice":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceOffice"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListPersonQuestions":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligencePersonQuestions"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListPractice":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligencePractice"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListQueueDepthRow":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceQueueDepthRow"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListQueueKindHealth":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceQueueKindHealth"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListSlackPerson":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceSlackPerson"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListSpineDomain":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceSpineDomain"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListSpineDomainMember":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceSpineDomainMember"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListSpineIdentityReview":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceSpineIdentityReview"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListSpineSpace":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceSpineSpace"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataListSpineUnit":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceSpineUnit"},"type":["array","null"]}},"required":["data"],"type":"object"},"IntelligenceDataMyClaims":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceMyClaims"}},"required":["data"],"type":"object"},"IntelligenceDataObjectionFeedback":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceObjectionFeedback"}},"required":["data"],"type":"object"},"IntelligenceDataObjections":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceObjections"}},"required":["data"],"type":"object"},"IntelligenceDataPacketDetail":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligencePacketDetail"}},"required":["data"],"type":"object"},"IntelligenceDataPacketInsightBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligencePacketInsightBody"}},"required":["data"],"type":"object"},"IntelligenceDataPacketListBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligencePacketListBody"}},"required":["data"],"type":"object"},"IntelligenceDataPersonDetail":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligencePersonDetail"}},"required":["data"],"type":"object"},"IntelligenceDataPersonPractices":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligencePersonPractices"}},"required":["data"],"type":"object"},"IntelligenceDataPractice":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligencePractice"}},"required":["data"],"type":"object"},"IntelligenceDataPracticePeople":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligencePracticePeople"}},"required":["data"],"type":"object"},"IntelligenceDataPulse":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligencePulse"}},"required":["data"],"type":"object"},"IntelligenceDataQuestionDetail":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceQuestionDetail"}},"required":["data"],"type":"object"},"IntelligenceDataQuestionListBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceQuestionListBody"}},"required":["data"],"type":"object"},"IntelligenceDataReevaluate":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceReevaluate"}},"required":["data"],"type":"object"},"IntelligenceDataRefileQueued":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceRefileQueued"}},"required":["data"],"type":"object"},"IntelligenceDataRelated":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceRelated"}},"required":["data"],"type":"object"},"IntelligenceDataRelatedAction":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceRelatedAction"}},"required":["data"],"type":"object"},"IntelligenceDataReviewedBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceReviewedBody"}},"required":["data"],"type":"object"},"IntelligenceDataRoster":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceRoster"}},"required":["data"],"type":"object"},"IntelligenceDataSlackQuestionsBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceSlackQuestionsBody"}},"required":["data"],"type":"object"},"IntelligenceDataSpineCalendarCoverage":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceSpineCalendarCoverage"}},"required":["data"],"type":"object"},"IntelligenceDataSpineIdentity":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceSpineIdentity"}},"required":["data"],"type":"object"},"IntelligenceDataSpineIdentityReview":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceSpineIdentityReview"}},"required":["data"],"type":"object"},"IntelligenceDataSpineProperty":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceSpineProperty"}},"required":["data"],"type":"object"},"IntelligenceDataStationOutputsBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceStationOutputsBody"}},"required":["data"],"type":"object"},"IntelligenceDataSubgraph":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceSubgraph"}},"required":["data"],"type":"object"},"IntelligenceDataUnblockedArea":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceUnblockedArea"}},"required":["data"],"type":"object"},"IntelligenceDataVerifyCitationsResults":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceVerifyCitationsResults"}},"required":["data"],"type":"object"},"IntelligenceDataWhoDecides":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/IntelligenceWhoDecides"}},"required":["data"],"type":"object"},"IntelligenceDeadJob":{"additionalProperties":false,"properties":{"args":{"description":"The job arguments as JSON.","type":"string"},"attempts":{"format":"int32","type":"integer"},"created_at":{"description":"When the work was first asked for.","format":"date-time","type":"string"},"died_at":{"description":"When the last attempt failed.","format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"kind":{"type":"string"},"last_error":{"type":"string"},"max_attempts":{"format":"int32","type":"integer"},"target_id":{"type":"string"},"target_kind":{"type":"string"}},"required":["id","kind","target_kind","target_id","attempts","max_attempts","created_at","died_at"],"type":"object"},"IntelligenceDeadJobAction":{"additionalProperties":false,"properties":{"id":{"format":"uuid","type":"string"},"kind":{"type":"string"},"run_after":{"format":"date-time","type":"string"},"state":{"type":"string"}},"required":["id","kind","state"],"type":"object"},"IntelligenceDeadJobList":{"additionalProperties":false,"properties":{"jobs":{"items":{"$ref":"#/components/schemas/IntelligenceDeadJob"},"type":["array","null"]},"total":{"description":"Dead jobs matching the filter, ignoring limit and offset.","format":"int64","type":"integer"}},"required":["jobs","total"],"type":"object"},"IntelligenceDeadJobsRequeue":{"additionalProperties":false,"properties":{"requeued":{"format":"int64","type":"integer"},"skipped":{"description":"Matching dead jobs left in place because an equivalent job is already pending, or because another matching dead job with the same key was requeued.","format":"int64","type":"integer"},"total":{"description":"Dead jobs matching the filter before this ran.","format":"int64","type":"integer"}},"required":["requeued","skipped","total"],"type":"object"},"IntelligenceDecider":{"additionalProperties":false,"properties":{"authority_type":{"type":"string"},"breakdown":{"additionalProperties":{"format":"double","type":"number"},"description":"The evidence by signal kind (decision_signoff, slack_approval, defers_to, consults, participant, question_assignee, cited, decision_right, mention, ...).","type":"object"},"confidence":{"format":"double","type":"number"},"effective_sources":{"description":"How many independent people the evidence comes from, counting a person who sent most of it as close to one.","format":"double","type":"number"},"epistemic_state":{"type":"string"},"evidence":{"items":{"type":"string"},"type":["array","null"]},"evidence_mass":{"description":"How much decayed evidence points at the person. Confidence grows with it.","format":"double","type":"number"},"first_observed_at":{"format":"date-time","type":"string"},"influence":{"description":"The person's share of influence in the practice, from 0 to 1. The shares of everyone in the practice add up to at most 1.","format":"double","type":"number"},"last_observed_at":{"format":"date-time","type":"string"},"person":{"type":"string"},"person_id":{"format":"uuid","type":"string"},"signal_count":{"format":"int64","type":"integer"}},"required":["person_id","person","authority_type","confidence","epistemic_state","signal_count","influence","evidence_mass","effective_sources","breakdown","first_observed_at","last_observed_at","evidence"],"type":"object"},"IntelligenceDeciderDecisions":{"additionalProperties":false,"properties":{"decisions":{"items":{"$ref":"#/components/schemas/IntelligenceDecision"},"type":["array","null"]},"person":{"type":"string"},"person_id":{"format":"uuid","type":"string"},"practice":{"type":"string"}},"required":["person_id","person","practice","decisions"],"type":"object"},"IntelligenceDecision":{"additionalProperties":false,"properties":{"from":{"description":"That person's name. Empty when there is none.","type":"string"},"from_person_id":{"description":"The person whose behaviour the signal records, when there is one: who deferred, who took part, whose words were cited.","format":"uuid","type":"string"},"insight_id":{"format":"uuid","type":"string"},"kind":{"description":"The insight's kind, when the source is an insight.","type":"string"},"observation_mode":{"description":"For a decision right: witnessed, reported, or inferred. Empty otherwise.","type":"string"},"observed_at":{"format":"date-time","type":"string"},"quote":{"type":"string"},"signal_kind":{"description":"decision_signoff, slack_approval, defers_to, escalates_to, consults, participant, cited, question_assignee, decision_right, or mention.","type":"string"},"source_id":{"description":"The insight, company question, or belief id.","format":"uuid","type":"string"},"source_kind":{"description":"What the signal was read from.","enum":["insight","question","belief"],"type":"string"},"status":{"description":"The insight's status, when the source is an insight.","type":"string"},"title":{"type":"string"},"weight":{"format":"double","type":"number"}},"required":["source_kind","source_id","insight_id","title","kind","status","signal_kind","from","weight","observation_mode","quote","observed_at"],"type":"object"},"IntelligenceDeletedArea":{"additionalProperties":false,"properties":{"area_id":{"format":"uuid","type":"string"},"blocked":{"type":"boolean"},"slug":{"type":"string"}},"required":["area_id","slug","blocked"],"type":"object"},"IntelligenceDepartResult":{"additionalProperties":false,"properties":{"person_id":{"format":"uuid","type":"string"},"status":{"type":"string"}},"required":["person_id","status"],"type":"object"},"IntelligenceDiscoveryBlocked":{"additionalProperties":false,"properties":{"cause":{"type":"string"},"cause_domain":{"type":"string"},"detail":{"type":"string"},"effect":{"type":"string"},"effect_domain":{"type":"string"},"id":{"format":"uuid","type":"string"},"reason":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"}},"required":["id","slug","title","cause","effect","reason","detail"],"type":"object"},"IntelligenceDiscoveryCheck":{"additionalProperties":false,"properties":{"detail":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"passed":{"description":"Absent when the check produces a number to read rather than a verdict. Forcing one would invent a threshold.","type":"boolean"},"statistic":{"format":"double","type":"number"}},"required":["kind","name"],"type":"object"},"IntelligenceDiscoveryCycle":{"additionalProperties":false,"properties":{"as_of":{"format":"date-time","type":"string"},"candidates":{"format":"int32","type":"integer"},"correction":{"description":"The multiplicity correction declared before any confirmation result was read.","type":"string"},"findings":{"format":"int32","type":"integer"},"finished_at":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"note":{"type":"string"},"registered":{"format":"int32","type":"integer"},"started_at":{"format":"date-time","type":"string"},"status":{"type":"string"}},"required":["id","as_of","started_at","status","correction","candidates","registered","findings"],"type":"object"},"IntelligenceDiscoveryCycleDetail":{"additionalProperties":false,"properties":{"as_of":{"format":"date-time","type":"string"},"candidates":{"format":"int32","type":"integer"},"correction":{"description":"The multiplicity correction declared before any confirmation result was read.","type":"string"},"exits":{"items":{"$ref":"#/components/schemas/IntelligenceDiscoveryExit"},"type":["array","null"]},"family_note":{"type":"string"},"findings":{"format":"int32","type":"integer"},"finished_at":{"format":"date-time","type":"string"},"gate_failures":{"items":{"$ref":"#/components/schemas/IntelligenceDiscoveryGateFailure"},"type":["array","null"]},"id":{"format":"uuid","type":"string"},"note":{"type":"string"},"reading":{"type":"string"},"registered":{"format":"int32","type":"integer"},"started_at":{"format":"date-time","type":"string"},"status":{"type":"string"}},"required":["family_note","exits","gate_failures","reading","id","as_of","started_at","status","correction","candidates","registered","findings"],"type":"object"},"IntelligenceDiscoveryExit":{"additionalProperties":false,"properties":{"count":{"format":"int64","type":"integer"},"reason":{"type":"string"}},"required":["reason","count"],"type":"object"},"IntelligenceDiscoveryFinding":{"additionalProperties":false,"properties":{"cause_domain":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"effect_domain":{"type":"string"},"evidence_class":{"description":"'attributed_hypothesis' is somebody's view, recorded as theirs. 'replicated_association' holds in the data, adjusted for what was declared. 'causal_effect' needs a design that supports a causal reading under assumptions written down before the result existed.","type":"string"},"id":{"format":"uuid","type":"string"},"slug":{"type":"string"},"statement":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"}},"required":["id","slug","title","evidence_class","statement","status","created_at"],"type":"object"},"IntelligenceDiscoveryFindingDetail":{"additionalProperties":false,"properties":{"assumptions":{"type":"string"},"cause_domain":{"type":"string"},"checks":{"items":{"$ref":"#/components/schemas/IntelligenceDiscoveryCheck"},"type":["array","null"]},"competing_explanation":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"effect_domain":{"type":"string"},"estimand":{"type":"string"},"evidence_class":{"description":"'attributed_hypothesis' is somebody's view, recorded as theirs. 'replicated_association' holds in the data, adjusted for what was declared. 'causal_effect' needs a design that supports a causal reading under assumptions written down before the result existed.","type":"string"},"holdout_kind":{"type":"string"},"id":{"format":"uuid","type":"string"},"lag_response":{"items":{"$ref":"#/components/schemas/IntelligenceDiscoveryLagEstimate"},"type":["array","null"]},"limitations":{"type":"string"},"materiality":{"type":"string"},"method":{"type":"string"},"primary_test":{"type":"string"},"reviews":{"items":{"$ref":"#/components/schemas/IntelligenceDiscoveryReview"},"type":["array","null"]},"runs":{"items":{"$ref":"#/components/schemas/IntelligenceDiscoveryRunLink"},"type":["array","null"]},"slug":{"type":"string"},"snapshot_hash":{"description":"The content hash of the pinned inputs. A replay that reproduces this hash has reproduced the inputs, not merely a similar query.","type":"string"},"snapshot_id":{"format":"uuid","type":"string"},"statement":{"type":"string"},"status":{"type":"string"},"threats":{"type":"string"},"title":{"type":"string"},"what_would_change_it":{"type":"string"}},"required":["estimand","method","assumptions","primary_test","holdout_kind","snapshot_id","snapshot_hash","runs","lag_response","checks","reviews","id","slug","title","evidence_class","statement","status","created_at"],"type":"object"},"IntelligenceDiscoveryGateFailure":{"additionalProperties":false,"properties":{"count":{"format":"int64","type":"integer"},"gate":{"type":"string"},"rule_version":{"type":"string"}},"required":["gate","rule_version","count"],"type":"object"},"IntelligenceDiscoveryLagEstimate":{"additionalProperties":false,"properties":{"ci_high":{"format":"double","type":"number"},"ci_low":{"format":"double","type":"number"},"estimate":{"format":"double","type":"number"},"lag_periods":{"format":"int32","type":"integer"},"p_value":{"format":"double","type":"number"},"rows_used":{"format":"int32","type":"integer"}},"required":["lag_periods","estimate","ci_low","ci_high","rows_used"],"type":"object"},"IntelligenceDiscoveryReview":{"additionalProperties":false,"properties":{"action":{"type":"string"},"domain":{"type":"string"},"experiment":{"type":"string"},"minutes_spent":{"format":"int32","type":"integer"},"reason":{"type":"string"},"reviewed_at":{"format":"date-time","type":"string"},"reviewer":{"type":"string"},"verdict":{"type":"string"}},"required":["reviewer","verdict","reviewed_at","minutes_spent"],"type":"object"},"IntelligenceDiscoveryReviewResult":{"additionalProperties":false,"properties":{"evidence_class":{"type":"string"},"note":{"type":"string"},"recorded":{"type":"boolean"},"registered_relationship_id":{"type":"string"}},"required":["recorded","evidence_class","note"],"type":"object"},"IntelligenceDiscoveryRunLink":{"additionalProperties":false,"properties":{"ci_high":{"format":"double","type":"number"},"ci_low":{"format":"double","type":"number"},"clusters_used":{"format":"int32","type":"integer"},"estimate":{"format":"double","type":"number"},"independent":{"type":"boolean"},"note":{"type":"string"},"p_adjusted":{"format":"double","type":"number"},"p_value":{"format":"double","type":"number"},"refusal_reason":{"type":"string"},"role":{"type":"string"},"run_id":{"format":"uuid","type":"string"},"split":{"type":"string"},"standard_error":{"format":"double","type":"number"}},"required":["run_id","role","independent","split","clusters_used"],"type":"object"},"IntelligenceEdge":{"additionalProperties":false,"properties":{"confidence":{"format":"double","type":"number"},"first_observed_at":{"format":"date-time","type":"string"},"from_id":{"format":"uuid","type":"string"},"from_kind":{"enum":["entity","insight","observation","project","evidence"],"type":"string"},"kind":{"type":"string"},"last_observed_at":{"format":"date-time","type":"string"},"to_id":{"format":"uuid","type":"string"},"to_kind":{"enum":["entity","insight","observation","project","evidence"],"type":"string"},"weight":{"description":"Accumulates with repeated observation and decays with time, so a relationship that stops being exercised fades rather than persisting forever.","format":"double","type":"number"}},"required":["from_kind","from_id","kind","to_kind","to_id","weight","confidence","first_observed_at","last_observed_at"],"type":"object"},"IntelligenceEntity":{"additionalProperties":false,"properties":{"display_name":{"type":"string"},"external_ref":{"description":"How another system names this: a principal for a person, a repo for a system.","type":"string"},"id":{"format":"uuid","type":"string"},"kind":{"enum":["person","team","system","practice","vendor","customer","company","concept"],"type":"string"},"merged_into":{"format":"uuid","type":"string"},"slug":{"type":"string"},"status":{"description":"departed is a person who has left. They stay in the graph and their claims still count, but they are not ranked as an authority or tagged with practices.","enum":["active","inactive","merged","departed"],"type":"string"}},"required":["id","kind","slug","display_name","status"],"type":"object"},"IntelligenceEnvelopeDataArea":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataArea"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataAreaDeciders":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataAreaDeciders"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataAreaMembers":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataAreaMembers"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataAttentionBriefDetail":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataAttentionBriefDetail"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataAttentionDeliveryResult":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataAttentionDeliveryResult"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataAttentionID":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataAttentionID"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataAttentionProfile":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataAttentionProfile"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataCandidate":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataCandidate"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataClearDerived":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataClearDerived"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataContradictionBody":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataContradictionBody"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataCoverageBody":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataCoverageBody"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataDeadJobAction":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataDeadJobAction"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataDeadJobList":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataDeadJobList"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataDeadJobsRequeue":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataDeadJobsRequeue"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataDeciderDecisions":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataDeciderDecisions"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataDeletedArea":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataDeletedArea"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataDepartResult":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataDepartResult"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataDiscoveryCycleDetail":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataDiscoveryCycleDetail"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataDiscoveryFindingDetail":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataDiscoveryFindingDetail"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataDiscoveryReviewResult":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataDiscoveryReviewResult"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataEntity":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataEntity"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataEvalDiff":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataEvalDiff"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataEvalExample":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataEvalExample"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataEvalRun":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataEvalRun"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataEvalShape":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataEvalShape"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataEvidenceClaimIndex":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataEvidenceClaimIndex"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataEvidencePathBody":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataEvidencePathBody"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataEvidenceResults":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataEvidenceResults"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataFlowRun":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataFlowRun"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataForcedExtraction":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataForcedExtraction"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataInsight":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataInsight"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataInsightDetail":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataInsightDetail"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataJobRun":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataJobRun"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataKnowledgeSearchResults":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataKnowledgeSearchResults"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataKnowledgeSections":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataKnowledgeSections"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataKnownRelationship":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataKnownRelationship"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataKnownRelationshipCheck":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataKnownRelationshipCheck"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataKnownRelationshipCoverage":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataKnownRelationshipCoverage"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataKnownRelationshipDetail":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataKnownRelationshipDetail"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListArea":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListArea"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListAreaMembership":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListAreaMembership"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListAttentionProfile":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListAttentionProfile"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListAuthority":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListAuthority"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListBlockedArea":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListBlockedArea"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListBottleneck":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListBottleneck"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListDiscoveryBlocked":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListDiscoveryBlocked"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListDiscoveryCycle":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListDiscoveryCycle"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListEdge":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListEdge"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListEvidenceInsightCount":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListEvidenceInsightCount"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListFollowThrough":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListFollowThrough"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListInsight":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListInsight"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListInsightLabel":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListInsightLabel"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListKnower":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListKnower"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListLink":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListLink"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListMappedDecision":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListMappedDecision"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListOffice":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListOffice"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListPersonQuestions":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListPersonQuestions"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListPractice":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListPractice"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListQueueDepthRow":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListQueueDepthRow"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListQueueKindHealth":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListQueueKindHealth"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListSlackPerson":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListSlackPerson"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListSpineDomain":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListSpineDomain"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListSpineDomainMember":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListSpineDomainMember"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListSpineIdentityReview":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListSpineIdentityReview"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListSpineSpace":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListSpineSpace"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataListSpineUnit":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataListSpineUnit"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataMyClaims":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataMyClaims"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataObjectionFeedback":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataObjectionFeedback"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataObjections":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataObjections"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataPacketDetail":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataPacketDetail"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataPacketInsightBody":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataPacketInsightBody"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataPacketListBody":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataPacketListBody"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataPersonDetail":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataPersonDetail"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataPersonPractices":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataPersonPractices"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataPractice":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataPractice"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataPracticePeople":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataPracticePeople"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataPulse":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataPulse"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataQuestionDetail":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataQuestionDetail"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataQuestionListBody":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataQuestionListBody"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataReevaluate":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataReevaluate"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataRefileQueued":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataRefileQueued"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataRelated":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataRelated"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataRelatedAction":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataRelatedAction"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataReviewedBody":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataReviewedBody"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataRoster":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataRoster"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataSlackQuestionsBody":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataSlackQuestionsBody"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataSpineCalendarCoverage":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataSpineCalendarCoverage"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataSpineIdentity":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataSpineIdentity"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataSpineIdentityReview":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataSpineIdentityReview"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataSpineProperty":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataSpineProperty"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataStationOutputsBody":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataStationOutputsBody"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataSubgraph":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataSubgraph"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataUnblockedArea":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataUnblockedArea"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataVerifyCitationsResults":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataVerifyCitationsResults"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopeDataWhoDecides":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligenceDataWhoDecides"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopePageAttentionBriefSummary":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligencePageAttentionBriefSummary"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopePageCandidate":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligencePageCandidate"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopePageDiscoveryFinding":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligencePageDiscoveryFinding"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopePageEntity":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligencePageEntity"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopePageEvalExample":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligencePageEvalExample"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopePageEvalRun":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligencePageEvalRun"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopePageEvidenceInsight":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligencePageEvidenceInsight"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopePageInsight":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligencePageInsight"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopePageInvestigationRun":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligencePageInvestigationRun"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopePageKnownRelationship":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligencePageKnownRelationship"}},"required":["header","payload"],"type":"object"},"IntelligenceEnvelopePageSpineProperty":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/IntelligencePageSpineProperty"}},"required":["header","payload"],"type":"object"},"IntelligenceEvalDiff":{"additionalProperties":false,"properties":{"after_run_id":{"format":"uuid","type":"string"},"before_run_id":{"format":"uuid","type":"string"},"fixed":{"description":"Shown beside the regressions on purpose. A change that fixes five and breaks one is a good change, and a regression list alone makes it look like a bad one.","items":{"$ref":"#/components/schemas/IntelligenceEvalMovement"},"type":["array","null"]},"regressed":{"items":{"$ref":"#/components/schemas/IntelligenceEvalMovement"},"type":["array","null"]}},"required":["before_run_id","after_run_id","regressed","fixed"],"type":"object"},"IntelligenceEvalExample":{"additionalProperties":false,"properties":{"content_hash":{"description":"The text as it read when it was labelled. A run skips rather than scoring against text that has changed.","type":"string"},"id":{"format":"uuid","type":"string"},"labeller":{"type":"string"},"labels":{"items":{"$ref":"#/components/schemas/IntelligenceEvalLabel"},"type":["array","null"]},"note":{"type":"string"},"source_id":{"type":"string"},"source_kind":{"type":"string"},"source_service":{"type":"string"},"split":{"type":"string"}},"required":["id","source_service","source_kind","source_id","content_hash","split","labels","labeller"],"type":"object"},"IntelligenceEvalFieldAccuracy":{"additionalProperties":false,"properties":{"accuracy":{"format":"double","type":"number"},"correct":{"format":"int64","type":"integer"},"field":{"type":"string"},"missing":{"description":"Matched items where the extractor produced no value. Counted apart from being wrong: declining to guess is better behaviour than guessing.","format":"int64","type":"integer"},"total":{"format":"int64","type":"integer"}},"required":["field","correct","total","missing","accuracy"],"type":"object"},"IntelligenceEvalKindScore":{"additionalProperties":false,"properties":{"abstained":{"format":"int64","type":"integer"},"abstention_opportunities":{"format":"int64","type":"integer"},"abstention_rate":{"format":"double","type":"number"},"examples_scored":{"format":"int64","type":"integer"},"f1":{"format":"double","type":"number"},"false_negatives":{"format":"int64","type":"integer"},"false_positives":{"format":"int64","type":"integer"},"fields":{"items":{"$ref":"#/components/schemas/IntelligenceEvalFieldAccuracy"},"type":["array","null"]},"kind":{"type":"string"},"precision":{"format":"double","type":"number"},"reading":{"description":"The sentence, naming the thing most likely to be wrong rather than the largest number.","type":"string"},"recall":{"format":"double","type":"number"},"true_positives":{"format":"int64","type":"integer"}},"required":["kind","reading","true_positives","false_positives","false_negatives","precision","recall","f1","abstention_opportunities","abstained","abstention_rate","fields","examples_scored"],"type":"object"},"IntelligenceEvalLabel":{"additionalProperties":false,"properties":{"end":{"format":"int64","type":"integer"},"fields":{"additionalProperties":{"type":"string"},"description":"Kind-specific attributes: a decision's decider and observation_mode, a commitment's owner and due date.","type":"object"},"kind":{"enum":["decision","commitment","ownership","policy","causal_claim"],"type":"string"},"optional":{"description":"A label a reasonable extractor might skip. Use sparingly: every optional label is recall the set has stopped measuring.","type":"boolean"},"quote":{"description":"Verbatim. This is what matching keys on.","type":"string"},"start":{"description":"Character offset, optional. With offsets on both sides a sentence repeated in two turns cannot match the wrong occurrence.","format":"int64","type":"integer"}},"required":["kind","quote"],"type":"object"},"IntelligenceEvalMovement":{"additionalProperties":false,"properties":{"example_id":{"format":"uuid","type":"string"},"kind":{"type":"string"},"source_id":{"type":"string"},"source_kind":{"type":"string"}},"required":["kind","example_id","source_kind","source_id"],"type":"object"},"IntelligenceEvalRun":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"examples_scored":{"format":"int64","type":"integer"},"examples_skipped":{"description":"A skipped example is not a passing one. Usually the source text changed since it was labelled.","format":"int64","type":"integer"},"git_ref":{"type":"string"},"id":{"format":"uuid","type":"string"},"kinds":{"items":{"type":"string"},"type":["array","null"]},"label":{"type":"string"},"model":{"type":"string"},"note":{"type":"string"},"prompt_hash":{"type":"string"},"split":{"type":"string"},"summary":{"items":{"$ref":"#/components/schemas/IntelligenceEvalKindScore"},"type":["array","null"]}},"required":["id","label","split","kinds","examples_scored","examples_skipped","summary","created_at","created_by"],"type":"object"},"IntelligenceEvalShape":{"additionalProperties":false,"properties":{"reading":{"type":"string"},"splits":{"items":{"$ref":"#/components/schemas/IntelligenceEvalSplitShape"},"type":["array","null"]}},"required":["splits","reading"],"type":"object"},"IntelligenceEvalSplitShape":{"additionalProperties":false,"properties":{"silent":{"description":"Examples where the correct output is nothing. These are what make the abstention numbers mean anything.","format":"int64","type":"integer"},"split":{"type":"string"},"total":{"format":"int64","type":"integer"}},"required":["split","total","silent"],"type":"object"},"IntelligenceEvidenceClaimIndex":{"additionalProperties":false,"properties":{"ids":{"description":"Workspace evidence record ids that have at least one claim.","items":{"type":"string"},"type":["array","null"]}},"required":["ids"],"type":"object"},"IntelligenceEvidenceInsight":{"additionalProperties":false,"properties":{"body":{"type":"string"},"citations":{"description":"Quotes from this source only. A claim may cite others you have no access to; those are counted in independent_source_count but not shown.","items":{"$ref":"#/components/schemas/IntelligenceCitation"},"type":["array","null"]},"confidence":{"format":"double","type":"number"},"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"epistemic_state":{"enum":["asserted","corroborated","human_confirmed","authoritative","disputed","stale"],"type":"string"},"id":{"format":"uuid","type":"string"},"independent_source_count":{"format":"int64","type":"integer"},"kind":{"enum":["fact","decision","open_question","hypothesis","problem","handoff","unblock","commitment","session_journal"],"type":"string"},"labels":{"items":{"type":"string"},"type":["array","null"]},"last_observed_at":{"format":"date-time","type":"string"},"practice":{"$ref":"#/components/schemas/IntelligencePractice"},"promoted_at":{"format":"date-time","type":"string"},"promoted_by":{"type":"string"},"status":{"enum":["candidate","published","rejected","expired","superseded"],"type":"string"},"superseded_by_insight_id":{"format":"uuid","type":"string"},"supersedes_insight_id":{"format":"uuid","type":"string"},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"valid_from":{"format":"date-time","type":"string"},"valid_until":{"format":"date-time","type":"string"}},"required":["citations","id","kind","practice","title","body","status","epistemic_state","confidence","independent_source_count","created_at","updated_at","created_by"],"type":"object"},"IntelligenceEvidenceInsightCount":{"additionalProperties":false,"properties":{"decision":{"format":"int64","type":"integer"},"evidence_id":{"format":"uuid","type":"string"},"fact":{"format":"int64","type":"integer"},"hypothesis":{"format":"int64","type":"integer"},"insights":{"description":"Claims of every status.","format":"int64","type":"integer"},"open_question":{"format":"int64","type":"integer"},"problem":{"format":"int64","type":"integer"},"published":{"format":"int64","type":"integer"},"session_journal":{"format":"int64","type":"integer"}},"required":["evidence_id","insights","published","fact","decision","open_question","hypothesis","problem","session_journal"],"type":"object"},"IntelligenceEvidencePassage":{"additionalProperties":false,"properties":{"id":{"description":"Cite this in verify-citations.","type":"string"},"occurred_at":{"type":"string"},"record_id":{"type":"string"},"source_kind":{"type":"string"},"text":{"type":"string"},"title":{"type":"string"}},"required":["id","record_id","text"],"type":"object"},"IntelligenceEvidencePathBody":{"additionalProperties":false,"properties":{"evidence_id":{"format":"uuid","type":"string"},"insight_ids":{"description":"Claims citing the record, in any status.","items":{"type":"string"},"type":"array"},"stations":{"items":{"$ref":"#/components/schemas/IntelligencePathStation"},"type":"array"}},"required":["evidence_id","stations","insight_ids"],"type":"object"},"IntelligenceEvidenceRecord":{"additionalProperties":false,"properties":{"attribute":{"type":"string"},"key":{"type":"string"},"source":{"type":"string"},"subject":{"type":"string"},"value":{"type":"string"}},"required":["key","subject","attribute","value","source"],"type":"object"},"IntelligenceEvidenceResults":{"additionalProperties":false,"properties":{"duplicates":{"format":"int64","type":"integer"},"excluded_by_source":{"format":"int64","type":"integer"},"passages":{"items":{"$ref":"#/components/schemas/IntelligenceEvidencePassage"},"type":["array","null"]},"records":{"items":{"$ref":"#/components/schemas/IntelligenceEvidenceRecord"},"type":["array","null"]},"searched":{"items":{"type":"string"},"type":["array","null"]},"unavailable":{"items":{"type":"string"},"type":["array","null"]}},"required":["passages","records","excluded_by_source","duplicates"],"type":"object"},"IntelligenceFeedbackInput":{"additionalProperties":false,"properties":{"action":{"enum":["tell_me_more","already_handled","keep_watching","not_relevant","matters_more","assign_follow_up"],"type":"string"},"brief_id":{"format":"uuid","type":"string"},"note":{"maxLength":2000,"type":"string"},"owner":{"maxLength":320,"type":"string"},"project_id":{"description":"Required for assign_follow_up. The task is created on this project.","format":"uuid","type":"string"},"resolution_ref":{"maxLength":500,"type":"string"}},"required":["action"],"type":"object"},"IntelligenceFindObjectionsRequest":{"additionalProperties":false,"properties":{"audience":{"description":"private when only the caller can read the conversation. shared leaves quotes out, because the agent's reply is saved where others can read it.","enum":["private","shared"],"type":"string"},"conversation_id":{"description":"The conversation the plan was proposed in. Recorded, not read.","format":"uuid","type":"string"},"exclude_insight_ids":{"description":"Claims already raised in this conversation.","items":{"type":"string"},"maxItems":200,"type":["array","null"]},"limit":{"description":"Defaults to 5.","format":"int64","maximum":10,"minimum":1,"type":"integer"},"plan":{"description":"The agent's one-sentence summary of the plan. Not stored.","maxLength":1000,"minLength":3,"type":"string"},"turn_seq":{"description":"The turn that proposed the plan.","format":"int64","minimum":1,"type":"integer"}},"required":["conversation_id","turn_seq","plan","audience"],"type":"object"},"IntelligenceFindRelatedRequest":{"additionalProperties":false,"properties":{"conversation_id":{"description":"Where the message was sent. Recorded, and used to leave out claims already shown there.","format":"uuid","type":"string"},"limit":{"description":"Defaults to 3.","format":"int64","maximum":5,"minimum":1,"type":"integer"},"text":{"description":"The message. Not stored. Only the first 2000 characters are searched.","maxLength":100000,"minLength":1,"type":"string"},"turn_seq":{"description":"The person's turn.","format":"int64","minimum":1,"type":"integer"}},"required":["conversation_id","turn_seq","text"],"type":"object"},"IntelligenceFlowRun":{"additionalProperties":false,"properties":{"flow":{"type":"string"},"jobs":{"items":{"$ref":"#/components/schemas/IntelligenceJobRun"},"type":["array","null"]}},"required":["flow","jobs"],"type":"object"},"IntelligenceFollowThrough":{"additionalProperties":false,"properties":{"computed_at":{"format":"date-time","type":"string"},"decisions_without_activity":{"description":"Decisions taken with nothing happening since.","format":"int32","type":"integer"},"oldest_open_age_days":{"format":"float","type":"number"},"open_item_count":{"format":"int32","type":"integer"},"project_id":{"format":"uuid","type":"string"}},"required":["project_id","open_item_count","oldest_open_age_days","decisions_without_activity","computed_at"],"type":"object"},"IntelligenceForcedExtraction":{"additionalProperties":false,"properties":{"evidence_id":{"format":"uuid","type":"string"},"job_id":{"description":"The extract job. Claims appear when the worker finishes it.","format":"uuid","type":"string"}},"required":["evidence_id","job_id"],"type":"object"},"IntelligenceHybridCoverage":{"additionalProperties":false,"properties":{"evidence_candidates":{"format":"int64","type":"integer"},"evidence_pairs_tried":{"format":"int64","type":"integer"},"insight_candidates":{"format":"int64","type":"integer"},"insight_pairs_tried":{"format":"int64","type":"integer"},"insights_eligible":{"format":"int64","type":"integer"},"insights_scanned":{"format":"int64","type":"integer"},"limited":{"type":"boolean"},"missing_sources":{"format":"int64","type":"integer"},"relationship_pairs":{"format":"int64","type":"integer"},"relationship_threads":{"format":"int64","type":"integer"}},"required":["insights_scanned","insights_eligible","insight_candidates","evidence_candidates","insight_pairs_tried","evidence_pairs_tried","relationship_threads","relationship_pairs","missing_sources","limited"],"type":"object"},"IntelligenceInboundQuestion":{"additionalProperties":false,"properties":{"age_days":{"format":"double","type":"number"},"body":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"title":{"type":"string"}},"required":["id","title","created_at","age_days"],"type":"object"},"IntelligenceInquiry":{"additionalProperties":false,"properties":{"Bridge":{"type":"string"},"Conversational":{"type":"boolean"},"Defeat":{"type":"string"},"Lens":{"type":"string"},"Needs":{"items":{"type":"string"},"type":["array","null"]},"Origin":{"type":"string"},"Slug":{"type":"string"},"Statement":{"type":"string"},"Terms":{"items":{"type":"string"},"type":["array","null"]},"Title":{"type":"string"}},"required":["Slug","Title","Lens","Statement","Origin","Terms","Defeat","Bridge","Conversational","Needs"],"type":"object"},"IntelligenceInsight":{"additionalProperties":false,"properties":{"body":{"type":"string"},"confidence":{"format":"double","type":"number"},"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"epistemic_state":{"enum":["asserted","corroborated","human_confirmed","authoritative","disputed","stale"],"type":"string"},"id":{"format":"uuid","type":"string"},"independent_source_count":{"format":"int64","type":"integer"},"kind":{"enum":["fact","decision","open_question","hypothesis","problem","handoff","unblock","commitment","session_journal"],"type":"string"},"labels":{"items":{"type":"string"},"type":["array","null"]},"last_observed_at":{"format":"date-time","type":"string"},"practice":{"$ref":"#/components/schemas/IntelligencePractice"},"promoted_at":{"format":"date-time","type":"string"},"promoted_by":{"type":"string"},"status":{"enum":["candidate","published","rejected","expired","superseded"],"type":"string"},"superseded_by_insight_id":{"format":"uuid","type":"string"},"supersedes_insight_id":{"format":"uuid","type":"string"},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"valid_from":{"format":"date-time","type":"string"},"valid_until":{"format":"date-time","type":"string"}},"required":["id","kind","practice","title","body","status","epistemic_state","confidence","independent_source_count","created_at","updated_at","created_by"],"type":"object"},"IntelligenceInsightDetail":{"additionalProperties":false,"properties":{"body":{"type":"string"},"citations":{"items":{"$ref":"#/components/schemas/IntelligenceCitation"},"type":["array","null"]},"confidence":{"format":"double","type":"number"},"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"epistemic_state":{"enum":["asserted","corroborated","human_confirmed","authoritative","disputed","stale"],"type":"string"},"id":{"format":"uuid","type":"string"},"independent_source_count":{"format":"int64","type":"integer"},"kind":{"enum":["fact","decision","open_question","hypothesis","problem","handoff","unblock","commitment","session_journal"],"type":"string"},"labels":{"items":{"type":"string"},"type":["array","null"]},"last_observed_at":{"format":"date-time","type":"string"},"links":{"items":{"$ref":"#/components/schemas/IntelligenceLink"},"type":["array","null"]},"practice":{"$ref":"#/components/schemas/IntelligencePractice"},"promoted_at":{"format":"date-time","type":"string"},"promoted_by":{"type":"string"},"status":{"enum":["candidate","published","rejected","expired","superseded"],"type":"string"},"superseded_by_insight_id":{"format":"uuid","type":"string"},"supersedes_insight_id":{"format":"uuid","type":"string"},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"valid_from":{"format":"date-time","type":"string"},"valid_until":{"format":"date-time","type":"string"}},"required":["citations","links","id","kind","practice","title","body","status","epistemic_state","confidence","independent_source_count","created_at","updated_at","created_by"],"type":"object"},"IntelligenceInsightLabel":{"additionalProperties":false,"properties":{"insights":{"format":"int64","type":"integer"},"label":{"type":"string"}},"required":["label","insights"],"type":"object"},"IntelligenceInvestigationRun":{"additionalProperties":false,"properties":{"from":{"format":"date-time","type":"string"},"id":{"type":"string"},"model":{"type":"string"},"report":{"$ref":"#/components/schemas/IntelligenceRunReport"},"started":{"format":"date-time","type":"string"},"status":{"type":"string"},"to":{"format":"date-time","type":"string"},"updated":{"format":"date-time","type":"string"},"version":{"type":"string"}},"required":["id","model","version","status","from","to","started","updated","report"],"type":"object"},"IntelligenceJobRun":{"additionalProperties":false,"properties":{"job_id":{"format":"uuid","type":"string"},"kind":{"type":"string"},"queued":{"format":"int64","type":"integer"},"reclaimed":{"format":"int64","type":"integer"},"run_after":{"format":"date-time","type":"string"},"stale":{"format":"int64","type":"integer"}},"required":["kind"],"type":"object"},"IntelligenceKnower":{"additionalProperties":false,"properties":{"cited_count":{"format":"int64","type":"integer"},"insight_count":{"format":"int64","type":"integer"},"last_cited_at":{"format":"date-time","type":"string"},"principal":{"type":"string"},"score":{"description":"Recency-weighted. Comparable within one response, not across them.","format":"double","type":"number"}},"required":["principal","insight_count","cited_count","score"],"type":"object"},"IntelligenceKnowledgeHit":{"additionalProperties":false,"properties":{"author":{"type":"string"},"body":{"type":"string"},"body_truncated":{"type":"boolean"},"citation_omitted":{"enum":["restricted","unavailable","none"],"type":"string"},"confidence":{"format":"double","type":"number"},"conversation_id":{"format":"uuid","type":"string"},"effective_from":{"format":"date-time","type":"string"},"effective_until":{"format":"date-time","type":"string"},"epistemic_state":{"type":"string"},"id":{"format":"uuid","type":"string"},"independent_source_count":{"format":"int64","type":"integer"},"ingested_at":{"format":"date-time","type":"string"},"kind":{"type":"string"},"last_observed_at":{"format":"date-time","type":"string"},"occurred_at":{"format":"date-time","type":"string"},"practice":{"$ref":"#/components/schemas/IntelligencePractice"},"project_id":{"format":"uuid","type":"string"},"project_ids":{"items":{"type":"string"},"type":["array","null"]},"rank":{"format":"int64","type":"integer"},"record_id":{"format":"uuid","type":"string"},"result_type":{"enum":["insight","evidence","output"],"type":"string"},"seq":{"format":"int64","type":"integer"},"snippet":{"type":"string"},"source_kind":{"enum":["turn","artifact","record","utterance"],"type":"string"},"status":{"type":"string"},"supporting_citation":{"$ref":"#/components/schemas/IntelligenceSupportingCitation"},"title":{"type":"string"}},"required":["result_type","id","title","snippet","rank"],"type":"object"},"IntelligenceKnowledgeSearchResults":{"additionalProperties":false,"properties":{"evidence_available":{"type":"boolean"},"excluded_by_filter":{"format":"int64","type":"integer"},"excluded_by_source":{"format":"int64","type":"integer"},"hits":{"items":{"$ref":"#/components/schemas/IntelligenceKnowledgeHit"},"type":["array","null"]}},"required":["hits","evidence_available","excluded_by_source","excluded_by_filter"],"type":"object"},"IntelligenceKnowledgeSections":{"additionalProperties":false,"properties":{"companyFacts":{"items":{"$ref":"#/components/schemas/IntelligencePackInsight"},"type":["array","null"]},"computedAt":{"format":"date-time","type":"string"},"insights":{"items":{"$ref":"#/components/schemas/IntelligencePackInsight"},"type":["array","null"]},"openQuestions":{"items":{"$ref":"#/components/schemas/IntelligencePackInsight"},"type":["array","null"]},"relatedWork":{"items":{"$ref":"#/components/schemas/IntelligencePackRelated"},"type":["array","null"]},"stale":{"type":"boolean"},"whoKnows":{"items":{"$ref":"#/components/schemas/IntelligencePackExpert"},"type":["array","null"]}},"required":["insights","openQuestions","relatedWork","whoKnows","companyFacts","computedAt","stale"],"type":"object"},"IntelligenceKnownRelationship":{"additionalProperties":false,"properties":{"basis":{"description":"What sort of claim this is, and whether it can suppress a hypothesis. 'lineage' (two columns share a model) and 'expectation' (somebody asserts it, nobody tested it) are context only. 'formula' suppresses once verified. 'tested' and 'established' suppress a question at an equivalent scope.","type":"string"},"cause":{"type":"string"},"cause_domain":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"directed":{"description":"An undirected relationship is matched against candidates pointing either way, because it does not tell the two apart.","type":"boolean"},"effect":{"type":"string"},"effect_domain":{"type":"string"},"formula_verified":{"description":"Whether a person has checked that the two definitions really are arithmetically related. An unverified formula claim is treated as a belief.","type":"boolean"},"id":{"format":"uuid","type":"string"},"kind":{"description":"Derived from basis: 'identity' for a formula, 'known' otherwise.","type":"string"},"retired_reason":{"type":"string"},"scope":{"$ref":"#/components/schemas/IntelligenceRelationshipScope"},"source_count":{"format":"int64","type":"integer"},"status":{"type":"string"},"summary":{"type":"string"},"suppresses":{"description":"Whether this entry is capable of stopping a hypothesis being tested. False for lineage, expectations, and unverified formulas.","type":"boolean"}},"required":["id","basis","kind","suppresses","cause","effect","directed","summary","scope","status","source_count","created_at"],"type":"object"},"IntelligenceKnownRelationshipBasis":{"additionalProperties":false,"properties":{"count":{"format":"int64","type":"integer"},"scoped":{"format":"int64","type":"integer"},"verified":{"format":"int64","type":"integer"}},"required":["count","verified","scoped"],"type":"object"},"IntelligenceKnownRelationshipCheck":{"additionalProperties":false,"properties":{"blocked":{"type":"boolean"},"context":{"items":{"$ref":"#/components/schemas/IntelligenceKnownRelationship"},"type":["array","null"]},"context_reading":{"type":"string"},"reason":{"type":"string"},"suppressing":{"items":{"$ref":"#/components/schemas/IntelligenceKnownRelationship"},"type":["array","null"]}},"required":["blocked","suppressing","context"],"type":"object"},"IntelligenceKnownRelationshipCoverage":{"additionalProperties":false,"properties":{"by_basis":{"additionalProperties":{"$ref":"#/components/schemas/IntelligenceKnownRelationshipBasis"},"type":"object"},"by_origin":{"additionalProperties":{"format":"int64","type":"integer"},"type":"object"},"reading":{"type":"string"},"suppression_reading":{"type":"string"}},"required":["by_origin","reading","by_basis","suppression_reading"],"type":"object"},"IntelligenceKnownRelationshipDetail":{"additionalProperties":false,"properties":{"basis":{"description":"What sort of claim this is, and whether it can suppress a hypothesis. 'lineage' (two columns share a model) and 'expectation' (somebody asserts it, nobody tested it) are context only. 'formula' suppresses once verified. 'tested' and 'established' suppress a question at an equivalent scope.","type":"string"},"cause":{"type":"string"},"cause_domain":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"directed":{"description":"An undirected relationship is matched against candidates pointing either way, because it does not tell the two apart.","type":"boolean"},"effect":{"type":"string"},"effect_domain":{"type":"string"},"formula_verified":{"description":"Whether a person has checked that the two definitions really are arithmetically related. An unverified formula claim is treated as a belief.","type":"boolean"},"id":{"format":"uuid","type":"string"},"kind":{"description":"Derived from basis: 'identity' for a formula, 'known' otherwise.","type":"string"},"retired_reason":{"type":"string"},"scope":{"$ref":"#/components/schemas/IntelligenceRelationshipScope"},"source_count":{"format":"int64","type":"integer"},"sources":{"items":{"$ref":"#/components/schemas/IntelligenceKnownRelationshipSource"},"type":["array","null"]},"status":{"type":"string"},"summary":{"type":"string"},"suppresses":{"description":"Whether this entry is capable of stopping a hypothesis being tested. False for lineage, expectations, and unverified formulas.","type":"boolean"}},"required":["sources","id","basis","kind","suppresses","cause","effect","directed","summary","scope","status","source_count","created_at"],"type":"object"},"IntelligenceKnownRelationshipSource":{"additionalProperties":false,"properties":{"created_by":{"type":"string"},"note":{"type":"string"},"observed_at":{"format":"date-time","type":"string"},"origin":{"type":"string"},"origin_ref":{"type":"string"}},"required":["origin","observed_at","created_by"],"type":"object"},"IntelligenceLink":{"additionalProperties":false,"properties":{"detected_at":{"format":"date-time","type":"string"},"disjoint_membership":{"type":"boolean"},"insight_a":{"format":"uuid","type":"string"},"insight_b":{"format":"uuid","type":"string"},"kind":{"enum":["related","duplicate_effort","contradicts","supersedes","depends_on"],"type":"string"},"weight":{"format":"double","type":"number"}},"required":["insight_a","insight_b","kind","weight","disjoint_membership","detected_at"],"type":"object"},"IntelligenceMappedDecider":{"additionalProperties":false,"properties":{"person":{"type":"string"},"person_id":{"format":"uuid","type":"string"},"quote":{"type":"string"}},"required":["person_id","person","quote"],"type":"object"},"IntelligenceMappedDecision":{"additionalProperties":false,"properties":{"deciders":{"items":{"$ref":"#/components/schemas/IntelligenceMappedDecider"},"type":["array","null"]},"insight_id":{"format":"uuid","type":"string"},"observed_at":{"format":"date-time","type":"string"},"practice_name":{"type":"string"},"practice_slug":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"}},"required":["insight_id","title","status","practice_slug","practice_name","observed_at","deciders"],"type":"object"},"IntelligenceModelCall":{"additionalProperties":false,"properties":{"error":{"type":"string"},"failed":{"type":"boolean"},"input_tokens":{"format":"int64","type":"integer"},"milliseconds":{"format":"int64","type":"integer"},"model":{"type":"string"},"output_tokens":{"format":"int64","type":"integer"},"stage":{"type":"string"}},"required":["stage","model","input_tokens","output_tokens","milliseconds","failed"],"type":"object"},"IntelligenceMyClaim":{"additionalProperties":false,"properties":{"body":{"type":"string"},"citations":{"items":{"$ref":"#/components/schemas/IntelligenceMyClaimCitation"},"type":["array","null"]},"epistemic_state":{"type":"string"},"insight_id":{"format":"uuid","type":"string"},"kind":{"type":"string"},"last_observed_at":{"format":"date-time","type":"string"},"practice":{"$ref":"#/components/schemas/IntelligencePractice"},"title":{"type":"string"}},"required":["insight_id","kind","title","body","epistemic_state","citations"],"type":"object"},"IntelligenceMyClaimCitation":{"additionalProperties":false,"properties":{"actor_kind":{"type":"string"},"author_principal":{"type":"string"},"char_end":{"format":"int32","type":"integer"},"char_start":{"description":"Where the quote starts within that line.","format":"int32","type":"integer"},"occurred_at":{"format":"date-time","type":"string"},"relation":{"enum":["supports","contradicts","context"],"type":"string"},"source_id":{"description":"The workspace record: a meeting, note, conversation or project row.","type":"string"},"source_kind":{"description":"evidence_utterance, evidence_note, conversation_turn, project_item, and so on.","type":"string"},"source_seq":{"description":"The line or turn within the record.","format":"int64","type":"integer"}},"required":["source_kind","source_id","author_principal","actor_kind","relation"],"type":"object"},"IntelligenceMyClaims":{"additionalProperties":false,"properties":{"claims":{"items":{"$ref":"#/components/schemas/IntelligenceMyClaim"},"type":["array","null"]},"person_id":{"format":"uuid","type":"string"}},"required":["claims"],"type":"object"},"IntelligenceNode":{"additionalProperties":false,"properties":{"degree":{"format":"int64","type":"integer"},"displayName":{"type":"string"},"entityKind":{"type":"string"},"id":{"type":"string"},"inArea":{"type":"boolean"},"kind":{"type":"string"}},"required":["kind","id"],"type":"object"},"IntelligenceObjectionCandidate":{"additionalProperties":false,"properties":{"body":{"type":"string"},"body_truncated":{"type":"boolean"},"citation_omitted":{"enum":["restricted","unavailable","none","shared_conversation"],"type":"string"},"contradicts_insight_id":{"format":"uuid","type":"string"},"epistemic_state":{"type":"string"},"insight_id":{"format":"uuid","type":"string"},"kind":{"type":"string"},"last_observed_at":{"format":"date-time","type":"string"},"practice":{"$ref":"#/components/schemas/IntelligencePractice"},"replaced_by_insight_id":{"format":"uuid","type":"string"},"status":{"type":"string"},"supporting_citation":{"$ref":"#/components/schemas/IntelligenceSupportingCitation"},"title":{"type":"string"},"type":{"enum":["contradicting_claim","replaced_decision","unanswered_question","reported_problem"],"type":"string"}},"required":["insight_id","type","title","body","kind","status","epistemic_state"],"type":"object"},"IntelligenceObjectionFeedback":{"additionalProperties":false,"properties":{"conversation_id":{"format":"uuid","type":"string"},"insight_id":{"format":"uuid","type":"string"},"person":{"type":"string"},"turn_seq":{"format":"int64","type":"integer"},"updated_at":{"format":"date-time","type":"string"},"verdict":{"enum":["useful","already_knew","wrong"],"type":"string"}},"required":["conversation_id","turn_seq","insight_id","person","verdict","updated_at"],"type":"object"},"IntelligenceObjectionFeedbackData":{"additionalProperties":false,"properties":{"conversation_id":{"format":"uuid","type":"string"},"insight_id":{"format":"uuid","type":"string"},"turn_seq":{"description":"The agent's turn that raised the objection.","format":"int64","minimum":1,"type":"integer"},"verdict":{"enum":["useful","already_knew","wrong"],"type":"string"}},"required":["conversation_id","turn_seq","insight_id","verdict"],"type":"object"},"IntelligenceObjectionPerson":{"additionalProperties":false,"properties":{"insight_count":{"description":"How many of the nearby claims cite them.","format":"int64","type":"integer"},"principal":{"type":"string"}},"required":["principal","insight_count"],"type":"object"},"IntelligenceObjections":{"additionalProperties":false,"properties":{"candidates":{"items":{"$ref":"#/components/schemas/IntelligenceObjectionCandidate"},"type":["array","null"]},"people_to_ask":{"items":{"$ref":"#/components/schemas/IntelligenceObjectionPerson"},"type":["array","null"]},"searched":{"type":"string"},"semantic_available":{"type":"boolean"}},"required":["candidates","people_to_ask","searched","semantic_available"],"type":"object"},"IntelligenceOffice":{"additionalProperties":false,"properties":{"company":{"type":"string"},"company_id":{"description":"Absent when the document named no single company.","format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"observed_at":{"format":"date-time","type":"string"},"office":{"description":"The title as the document writes it: Treasurer, Secretary, President.","type":"string"},"person":{"type":"string"},"person_id":{"format":"uuid","type":"string"},"quote":{"description":"The verbatim line naming the person and office.","type":"string"},"source_insight_id":{"description":"The fact the appointment was read into.","format":"uuid","type":"string"}},"required":["id","person_id","person","office","source_insight_id","quote","observed_at"],"type":"object"},"IntelligencePackExpert":{"additionalProperties":false,"properties":{"principal":{"type":"string"},"score":{"format":"double","type":"number"}},"required":["principal","score"],"type":"object"},"IntelligencePackInsight":{"additionalProperties":false,"properties":{"body":{"type":"string"},"epistemicState":{"type":"string"},"id":{"type":"string"},"independentSourceCount":{"format":"int64","type":"integer"},"kind":{"type":"string"},"lastObservedAt":{"format":"date-time","type":"string"},"source":{"type":"string"},"title":{"type":"string"}},"required":["id","kind","title","body","epistemicState","independentSourceCount","lastObservedAt","source"],"type":"object"},"IntelligencePackRelated":{"additionalProperties":false,"properties":{"projectId":{"type":"string"},"reason":{"type":"string"},"weight":{"format":"double","type":"number"}},"required":["projectId","reason","weight"],"type":"object"},"IntelligencePacketDetail":{"additionalProperties":false,"properties":{"card":{"description":"The whole investigation rendered for reading.","type":"string"},"challenge_defeat":{"description":"What would establish the reading is wrong. Different from the challenge search, which is bounded by what retrieval happened to reach: this is what would settle the matter whether or not these sources contain it.","type":"string"},"challenge_search":{"type":"string"},"connection":{"type":"string"},"consequence":{"description":"The short story of what is happening and why it matters. This is the line under the headline.","type":"string"},"created_at":{"description":"When this investigation was stored. Passage occurred_at is when someone spoke.","format":"date-time","type":"string"},"evidence_class":{"description":"'operational_finding' is a documented constraint with a business consequence. 'attributed_hypothesis' is an inferred reading of what people said. The two quantitative classes are unreachable without a completed measurement.","type":"string"},"exit_reason":{"description":"Why it stopped, when it did. A packet held behind the review budget was not read, which is not the same as being wrong.","type":"string"},"generator":{"description":"Which candidate source proposed this. 'tension' is a later conclusion against an earlier documented constraint.","type":"string"},"id":{"type":"string"},"independent_origins":{"description":"Distinct sources, not passages. Several messages in one thread are one origin.","format":"int64","type":"integer"},"input_revision":{"description":"Identifies the inputs this investigation was written from. The packet id stays stable. Changed inputs produce a new packet.","type":"string"},"inquiry":{"description":"The line of enquiry that went looking for this, when one did. A finding from a supplied question is an answer to something we asked, not something the corpus volunteered, and the two must not be counted as the same evidence.","type":"string"},"inquiry_origin":{"description":"supplied, extension, or generated. generated is a system proposal a person approved. Empty means the pair was not opened from a question.","type":"string"},"inquiry_title":{"description":"The catalogue question, when one went looking for this.","type":"string"},"lens":{"description":"Which lens asked the question. Empty when the pair came from shared identifiers rather than the catalogue.","type":"string"},"lens_label":{"description":"The name shown on the card for where this result came from.","type":"string"},"measurement":{"$ref":"#/components/schemas/IntelligencePacketMeasurement"},"opposing":{"items":{"$ref":"#/components/schemas/IntelligencePacketPassage"},"type":["array","null"]},"proposed_test":{"type":"string"},"rank_score":{"format":"double","type":"number"},"record_ids":{"description":"Source records the card quotes. Reopen these. The card is not a second witness.","items":{"type":"string"},"type":["array","null"]},"review_verdict":{"description":"The latest reviewer mark: useful, already_knew, not_useful, wrong, or needs_work. Empty when nobody has marked the card.","type":"string"},"rubric":{"description":"The five judgements, with the unassessed ones named as unassessed rather than scored zero.","type":"string"},"rubric_dimensions_assessed":{"description":"How many of the five rubric dimensions carry a judgement. Consequence is never scored automatically: it asks whether a real decision changes, and the process that wrote the card cannot judge that.","format":"int64","type":"integer"},"scope":{"type":"string"},"sources":{"description":"Who the story came from, as speaker and channel. The quotations stay on the detail.","items":{"type":"string"},"type":["array","null"]},"standing":{"description":"How far this has been carried, which is a different question from what kind of claim it is. 'observation' means nothing has been compared, measured or tried — a lead. 'supported_mechanism' means something in the sources argued against the reading and it survived, which is as far as conversation alone can take a finding.","type":"string"},"status":{"type":"string"},"supporting":{"items":{"$ref":"#/components/schemas/IntelligencePacketPassage"},"type":["array","null"]},"title":{"type":"string"},"updated_at":{"description":"When this investigation's status last changed. Passage text is not edited in place. A revised conclusion is a new packet.","format":"date-time","type":"string"}},"required":["connection","scope","supporting","opposing","challenge_search","challenge_defeat","independent_origins","rubric","card","id","generator","status","title","consequence","evidence_class","standing","lens_label","rubric_dimensions_assessed","created_at","updated_at"],"type":"object"},"IntelligencePacketInsightBody":{"additionalProperties":false,"properties":{"insight_id":{"type":"string"},"published":{"type":"boolean"},"status":{"type":"string"}},"required":["insight_id","status","published"],"type":"object"},"IntelligencePacketInsightData":{"additionalProperties":false,"properties":{"body":{"maxLength":20000,"minLength":1,"type":"string"},"kind":{"enum":["fact","decision","open_question","hypothesis","problem"],"type":"string"},"title":{"maxLength":500,"minLength":1,"type":"string"}},"required":["title","body"],"type":"object"},"IntelligencePacketListBody":{"additionalProperties":false,"properties":{"cycle_findings":{"description":"Numerical discovery-cycle findings across all statuses.","format":"int64","type":"integer"},"filtered_total":{"description":"Readable investigations matching the requested filters, before the list limit.","format":"int64","type":"integer"},"packets":{"items":{"$ref":"#/components/schemas/IntelligencePacketSummary"},"type":["array","null"]},"reading":{"description":"What the list means, for a reader who will not open every card.","type":"string"},"total":{"description":"Readable evidence-led investigations across all statuses, before the list limit.","format":"int64","type":"integer"},"total_is_lower_bound":{"description":"The packet scan reached its safety limit, so total may be higher.","type":"boolean"}},"required":["packets","total","filtered_total","cycle_findings","reading"],"type":"object"},"IntelligencePacketMeasurement":{"additionalProperties":false,"properties":{"blocked_reason":{"type":"string"},"question":{"type":"string"},"status":{"type":"string"}},"required":["question","status"],"type":"object"},"IntelligencePacketPassage":{"additionalProperties":false,"properties":{"argument":{"description":"What an opposing passage says against the reading.","type":"string"},"channel":{"type":"string"},"occurred_at":{"format":"date-time","type":"string"},"record_id":{"description":"The source record, so the original is always reachable.","type":"string"},"speaker":{"type":"string"},"text":{"type":"string"},"utterance_seq":{"description":"Sequence in the source record. Together with record_id this locates the line. occurred_at is when the line was spoken.","format":"int64","type":"integer"}},"required":["speaker","occurred_at","text"],"type":"object"},"IntelligencePacketSummary":{"additionalProperties":false,"properties":{"consequence":{"description":"The short story of what is happening and why it matters. This is the line under the headline.","type":"string"},"created_at":{"description":"When this investigation was stored. Passage occurred_at is when someone spoke.","format":"date-time","type":"string"},"evidence_class":{"description":"'operational_finding' is a documented constraint with a business consequence. 'attributed_hypothesis' is an inferred reading of what people said. The two quantitative classes are unreachable without a completed measurement.","type":"string"},"exit_reason":{"description":"Why it stopped, when it did. A packet held behind the review budget was not read, which is not the same as being wrong.","type":"string"},"generator":{"description":"Which candidate source proposed this. 'tension' is a later conclusion against an earlier documented constraint.","type":"string"},"id":{"type":"string"},"input_revision":{"description":"Identifies the inputs this investigation was written from. The packet id stays stable. Changed inputs produce a new packet.","type":"string"},"inquiry":{"description":"The line of enquiry that went looking for this, when one did. A finding from a supplied question is an answer to something we asked, not something the corpus volunteered, and the two must not be counted as the same evidence.","type":"string"},"inquiry_origin":{"description":"supplied, extension, or generated. generated is a system proposal a person approved. Empty means the pair was not opened from a question.","type":"string"},"inquiry_title":{"description":"The catalogue question, when one went looking for this.","type":"string"},"lens":{"description":"Which lens asked the question. Empty when the pair came from shared identifiers rather than the catalogue.","type":"string"},"lens_label":{"description":"The name shown on the card for where this result came from.","type":"string"},"rank_score":{"format":"double","type":"number"},"record_ids":{"description":"Source records the card quotes. Reopen these. The card is not a second witness.","items":{"type":"string"},"type":["array","null"]},"review_verdict":{"description":"The latest reviewer mark: useful, already_knew, not_useful, wrong, or needs_work. Empty when nobody has marked the card.","type":"string"},"rubric_dimensions_assessed":{"description":"How many of the five rubric dimensions carry a judgement. Consequence is never scored automatically: it asks whether a real decision changes, and the process that wrote the card cannot judge that.","format":"int64","type":"integer"},"sources":{"description":"Who the story came from, as speaker and channel. The quotations stay on the detail.","items":{"type":"string"},"type":["array","null"]},"standing":{"description":"How far this has been carried, which is a different question from what kind of claim it is. 'observation' means nothing has been compared, measured or tried — a lead. 'supported_mechanism' means something in the sources argued against the reading and it survived, which is as far as conversation alone can take a finding.","type":"string"},"status":{"type":"string"},"title":{"type":"string"},"updated_at":{"description":"When this investigation's status last changed. Passage text is not edited in place. A revised conclusion is a new packet.","format":"date-time","type":"string"}},"required":["id","generator","status","title","consequence","evidence_class","standing","lens_label","rubric_dimensions_assessed","created_at","updated_at"],"type":"object"},"IntelligencePageAttentionBriefSummary":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceAttentionBriefSummary"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"IntelligencePageCandidate":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceCandidate"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"IntelligencePageDiscoveryFinding":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceDiscoveryFinding"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"IntelligencePageEntity":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceEntity"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"IntelligencePageEvalExample":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceEvalExample"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"IntelligencePageEvalRun":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceEvalRun"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"IntelligencePageEvidenceInsight":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceEvidenceInsight"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"IntelligencePageInsight":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceInsight"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"IntelligencePageInvestigationRun":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceInvestigationRun"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"IntelligencePageKnownRelationship":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceKnownRelationship"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"IntelligencePageSpineProperty":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/IntelligenceSpineProperty"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"IntelligencePathStation":{"additionalProperties":false,"properties":{"id":{"enum":["insights","graph","discovery","attention"],"type":"string"},"reached":{"type":"boolean"}},"required":["id","reached"],"type":"object"},"IntelligencePerson":{"additionalProperties":false,"properties":{"ambiguous":{"description":"True when the lookup could not tell which person is meant. No title, manager, or reports are asserted.","type":"boolean"},"effective_from":{"description":"When the current title took effect.","format":"date-time","type":["string","null"]},"email":{"type":"string"},"links":{"items":{"$ref":"#/components/schemas/IntelligencePersonLink"},"type":["array","null"]},"manager":{"$ref":"#/components/schemas/IntelligencePersonRef","description":"Null when the person has no manager on record, or the match is ambiguous."},"name":{"type":"string"},"person_id":{"format":"uuid","type":"string"},"practices":{"description":"The practices the person works in, inferred or confirmed by a reviewer. Empty when the match is ambiguous.","items":{"$ref":"#/components/schemas/IntelligencePersonPractice"},"type":["array","null"]},"title":{"description":"Empty when none is recorded, or when the match is ambiguous.","type":"string"},"title_source":{"description":"directory, user, or inferred. Empty when there is no title.","type":"string"}},"required":["person_id","name","email","title","title_source","effective_from","manager","links","ambiguous","practices"],"type":"object"},"IntelligencePersonDetail":{"additionalProperties":false,"properties":{"ambiguous":{"description":"True when the lookup could not tell which person is meant. No title, manager, or reports are asserted.","type":"boolean"},"effective_from":{"description":"When the current title took effect.","format":"date-time","type":["string","null"]},"email":{"type":"string"},"links":{"items":{"$ref":"#/components/schemas/IntelligencePersonLink"},"type":["array","null"]},"manager":{"$ref":"#/components/schemas/IntelligencePersonRef","description":"Null when the person has no manager on record, or the match is ambiguous."},"name":{"type":"string"},"person_id":{"format":"uuid","type":"string"},"practices":{"description":"The practices the person works in, inferred or confirmed by a reviewer. Empty when the match is ambiguous.","items":{"$ref":"#/components/schemas/IntelligencePersonPractice"},"type":["array","null"]},"reports":{"items":{"$ref":"#/components/schemas/IntelligencePersonRef"},"type":["array","null"]},"title":{"description":"Empty when none is recorded, or when the match is ambiguous.","type":"string"},"title_source":{"description":"directory, user, or inferred. Empty when there is no title.","type":"string"}},"required":["reports","person_id","name","email","title","title_source","effective_from","manager","links","ambiguous","practices"],"type":"object"},"IntelligencePersonLink":{"additionalProperties":false,"properties":{"external_id":{"type":"string"},"status":{"description":"Only accepted links attribute activity. A review link is a match nobody has confirmed.","enum":["accepted","review"],"type":"string"},"system":{"enum":["slack","github","azure_devops","zoom","hr","login"],"type":"string"}},"required":["system","external_id","status"],"type":"object"},"IntelligencePersonPractice":{"additionalProperties":false,"properties":{"activity_share":{"description":"The share of the person's activity in this practice.","format":"double","type":"number"},"confidence":{"description":"How much activity backs the tag, from 0 to 1. Zero for a tag a reviewer added with no activity behind it.","format":"double","type":"number"},"last_observed_at":{"format":"date-time","type":["string","null"]},"lift":{"description":"That share divided by the practice's share of the company's activity. Above 1 means the person leans into the practice more than the company does.","format":"double","type":"number"},"practice_name":{"type":"string"},"practice_slug":{"type":"string"},"source":{"description":"inferred when activity produced the tag, user when a reviewer added it.","enum":["inferred","user"],"type":"string"},"state":{"description":"confirmed once a reviewer has agreed with or added the tag.","enum":["inferred","confirmed"],"type":"string"}},"required":["practice_slug","practice_name","source","state","confidence","activity_share","lift","last_observed_at"],"type":"object"},"IntelligencePersonPractices":{"additionalProperties":false,"properties":{"person_id":{"format":"uuid","type":"string"},"practices":{"items":{"$ref":"#/components/schemas/IntelligencePersonPractice"},"type":["array","null"]}},"required":["person_id","practices"],"type":"object"},"IntelligencePersonQuestions":{"additionalProperties":false,"properties":{"entity":{"$ref":"#/components/schemas/IntelligenceEntity"},"outline":{"description":"One line per open question. This is the list to print. A count is not a substitute.","type":"string"},"questions":{"items":{"$ref":"#/components/schemas/IntelligenceInboundQuestion"},"type":["array","null"]}},"required":["entity","questions","outline"],"type":"object"},"IntelligencePersonRef":{"additionalProperties":false,"properties":{"email":{"type":"string"},"name":{"type":"string"},"person_id":{"format":"uuid","type":"string"},"title":{"type":"string"}},"required":["person_id","name","email","title"],"type":"object"},"IntelligencePractice":{"additionalProperties":false,"properties":{"description":{"description":"What belongs in the practice and what does not. Set on the practice list and practice edits, not on a claim's practice.","type":"string"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","slug","name"],"type":"object"},"IntelligencePracticePeople":{"additionalProperties":false,"properties":{"people":{"items":{"$ref":"#/components/schemas/IntelligencePracticePerson"},"type":["array","null"]},"practice":{"type":"string"}},"required":["practice","people"],"type":"object"},"IntelligencePracticePerson":{"additionalProperties":false,"properties":{"activity":{"description":"How much the person works in the practice: what they authored, decided, attended, worked on, and were mentioned in, weighted and decayed with age.","format":"double","type":"number"},"activity_share":{"description":"The share of the person's activity in this practice.","format":"double","type":"number"},"confidence":{"description":"How much activity backs the tag, from 0 to 1. Zero for a tag a reviewer added with no activity behind it.","format":"double","type":"number"},"influence":{"description":"The person's share of influence in the practice, from 0 to 1. Zero when they have no authority claim in it.","format":"double","type":"number"},"last_observed_at":{"format":"date-time","type":["string","null"]},"lift":{"description":"That share divided by the practice's share of the company's activity. Above 1 means the person leans into the practice more than the company does.","format":"double","type":"number"},"person":{"type":"string"},"person_id":{"format":"uuid","type":"string"},"practice_activity_share":{"description":"The person's share of all activity in the practice, from 0 to 1.","format":"double","type":"number"},"practice_name":{"type":"string"},"practice_slug":{"type":"string"},"source":{"description":"inferred when activity produced the tag, user when a reviewer added it.","enum":["inferred","user"],"type":"string"},"state":{"description":"confirmed once a reviewer has agreed with or added the tag.","enum":["inferred","confirmed"],"type":"string"}},"required":["person_id","person","activity","practice_activity_share","influence","practice_slug","practice_name","source","state","confidence","activity_share","lift","last_observed_at"],"type":"object"},"IntelligencePulse":{"additionalProperties":false,"properties":{"buckets":{"items":{"$ref":"#/components/schemas/IntelligencePulseBucket"},"type":["array","null"]},"recent":{"items":{"$ref":"#/components/schemas/IntelligenceInsight"},"type":["array","null"]},"since":{"format":"date-time","type":"string"}},"required":["since","buckets","recent"],"type":"object"},"IntelligencePulseBucket":{"additionalProperties":false,"properties":{"count":{"format":"int64","type":"integer"},"epistemic_state":{"type":"string"},"kind":{"type":"string"},"practice":{"$ref":"#/components/schemas/IntelligencePractice"}},"required":["practice","kind","epistemic_state","count"],"type":"object"},"IntelligenceQuestionActionData":{"additionalProperties":false,"properties":{"action":{"enum":["investigate","refine","already_answered","not_useful","revisit","assign"],"type":"string"},"alternative":{"type":"string"},"answer_ref":{"maxLength":2000,"type":"string"},"assignee":{"description":"Email of the person who will answer the question. Required for assign.","maxLength":320,"type":"string"},"assignee_name":{"description":"Display name of that person. Required for assign.","maxLength":200,"type":"string"},"consequence":{"type":"string"},"conversational":{"type":"boolean"},"defeat":{"type":"string"},"missing_evidence":{"type":"string"},"needs":{"items":{"type":"string"},"type":["array","null"]},"next_step":{"type":"string"},"note":{"maxLength":4000,"type":"string"},"reason":{"description":"duplicate, already_answered, wrong_premise, low_value, or needs_data.","maxLength":40,"type":"string"},"revisit_at":{"description":"RFC3339. Required for revisit.","type":"string"},"statement":{"maxLength":2000,"type":"string"},"terms":{"items":{"type":"string"},"type":["array","null"]},"title":{"maxLength":300,"type":"string"},"why_now":{"type":"string"}},"required":["action"],"type":"object"},"IntelligenceQuestionClue":{"additionalProperties":false,"properties":{"passage":{"type":"string"},"source_id":{"type":"string"},"source_kind":{"type":"string"},"source_version":{"type":"string"}},"required":["source_kind","source_id","source_version","passage"],"type":"object"},"IntelligenceQuestionDetail":{"additionalProperties":false,"properties":{"alternative":{"type":"string"},"answer":{"description":"Up to two sentences of the reply, as plain text.","type":"string"},"answer_ref":{"type":"string"},"answered_at":{"description":"When the question was last marked answered. Absent for a question nobody has answered.","format":"date-time","type":"string"},"area":{"type":"string"},"assignee":{"description":"Email of the person who owns the answer.","type":"string"},"assignee_name":{"type":"string"},"clues":{"items":{"$ref":"#/components/schemas/IntelligenceQuestionClue"},"type":["array","null"]},"consequence":{"description":"Why an answer would matter. Not a financial estimate.","type":"string"},"conversational":{"description":"False means discussions alone cannot answer it.","type":"boolean"},"created_at":{"format":"date-time","type":"string"},"defeat":{"type":"string"},"frozen_at":{"format":"date-time","type":"string"},"generated_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"investigation_packet_id":{"type":"string"},"judgments":{"$ref":"#/components/schemas/IntelligenceQuestionJudgments"},"missing_evidence":{"type":"string"},"model":{"type":"string"},"needs":{"items":{"type":"string"},"type":["array","null"]},"next_step":{"type":"string"},"origin":{"type":"string"},"prompt_version":{"type":"string"},"reviews":{"items":{"$ref":"#/components/schemas/IntelligenceQuestionReviewEvent"},"type":["array","null"]},"revisit_at":{"format":"date-time","type":"string"},"statement":{"type":"string"},"status":{"type":"string"},"terms":{"items":{"type":"string"},"type":["array","null"]},"title":{"type":"string"},"version":{"format":"int32","type":"integer"},"why_now":{"type":"string"}},"required":["defeat","next_step","terms","needs","judgments","clues","reviews","prompt_version","generated_at","origin","id","area","status","title","statement","why_now","consequence","conversational","version","created_at"],"type":"object"},"IntelligenceQuestionJudgments":{"additionalProperties":false,"properties":{"answerability":{"type":"string"},"consequence":{"type":"string"},"cost":{"type":"string"},"evidence":{"type":"string"},"novelty":{"type":"string"},"timing":{"type":"string"}},"required":["consequence","novelty","evidence","answerability","timing","cost"],"type":"object"},"IntelligenceQuestionListBody":{"additionalProperties":false,"properties":{"questions":{"items":{"$ref":"#/components/schemas/IntelligenceQuestionSummary"},"type":["array","null"]},"reading":{"type":"string"},"total":{"format":"int64","type":"integer"}},"required":["questions","total","reading"],"type":"object"},"IntelligenceQuestionReviewEvent":{"additionalProperties":false,"properties":{"action":{"type":"string"},"actor":{"type":"string"},"answer_ref":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"note":{"type":"string"},"reason":{"type":"string"},"revisit_at":{"format":"date-time","type":"string"}},"required":["action","actor","created_at"],"type":"object"},"IntelligenceQuestionSummary":{"additionalProperties":false,"properties":{"alternative":{"type":"string"},"answer":{"description":"Up to two sentences of the reply, as plain text.","type":"string"},"answer_ref":{"type":"string"},"answered_at":{"description":"When the question was last marked answered. Absent for a question nobody has answered.","format":"date-time","type":"string"},"area":{"type":"string"},"assignee":{"description":"Email of the person who owns the answer.","type":"string"},"assignee_name":{"type":"string"},"consequence":{"description":"Why an answer would matter. Not a financial estimate.","type":"string"},"conversational":{"description":"False means discussions alone cannot answer it.","type":"boolean"},"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"investigation_packet_id":{"type":"string"},"missing_evidence":{"type":"string"},"revisit_at":{"format":"date-time","type":"string"},"statement":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"},"version":{"format":"int32","type":"integer"},"why_now":{"type":"string"}},"required":["id","area","status","title","statement","why_now","consequence","conversational","version","created_at"],"type":"object"},"IntelligenceQueueDepthRow":{"additionalProperties":false,"properties":{"count":{"format":"int64","type":"integer"},"kind":{"type":"string"},"state":{"type":"string"}},"required":["kind","state","count"],"type":"object"},"IntelligenceQueueKindHealth":{"additionalProperties":false,"properties":{"claimed":{"format":"int64","type":"integer"},"dead":{"format":"int64","type":"integer"},"done":{"format":"int64","type":"integer"},"kind":{"type":"string"},"last_error":{"type":"string"},"last_error_at":{"format":"date-time","type":"string"},"longest_claimed_seconds":{"description":"Seconds the longest current claim has been running.","format":"double","type":"number"},"oldest_pending_age_seconds":{"description":"Seconds the oldest pending job has been due. Negative means it is not due yet.","format":"double","type":"number"},"pending":{"format":"int64","type":"integer"},"reading":{"description":"One sentence: waiting on a worker, throughput, a slow run, or a hard failure.","type":"string"},"recent_avg_seconds":{"description":"Mean duration of successful runs in the last day.","format":"double","type":"number"},"recent_p95_seconds":{"description":"95th percentile duration of successful runs in the last day.","format":"double","type":"number"},"recent_sample":{"description":"Successful runs in the last day that had a start time recorded.","format":"int64","type":"integer"}},"required":["kind","pending","claimed","done","dead","recent_sample"],"type":"object"},"IntelligenceQueuedPair":{"additionalProperties":false,"properties":{"context":{"items":{"type":"string"},"type":["array","null"]},"earlier":{"type":"string"},"inquiry_slug":{"type":"string"},"later":{"type":"string"},"reason":{"type":"string"},"shared":{"items":{"type":"string"},"type":["array","null"]}},"required":["earlier","later"],"type":"object"},"IntelligenceReconcileInput":{"additionalProperties":false,"properties":{"note":{"maxLength":1000,"type":"string"},"outcome":{"enum":["sent","not_sent"],"type":"string"},"receipt_ref":{"maxLength":200,"type":"string"}},"required":["outcome"],"type":"object"},"IntelligenceReevaluate":{"additionalProperties":false,"properties":{"queued":{"description":"Extract jobs put on the queue. The worker must run these.","format":"int64","type":"integer"},"reset":{"description":"Observation rows marked unread. Zero if this source was never read.","format":"int64","type":"integer"},"source_id":{"type":"string"},"source_type":{"type":"string"}},"required":["source_type","source_id","reset","queued"],"type":"object"},"IntelligenceReevaluateData":{"additionalProperties":false,"properties":{"source_id":{"description":"The project id or the record id.","type":"string"},"source_type":{"description":"A whole project, or one workspace record.","enum":["project","project_item","project_decision","saved_output","evidence","conversation"],"type":"string"}},"required":["source_type","source_id"],"type":"object"},"IntelligenceRefileQueued":{"additionalProperties":false,"properties":{"job_id":{"format":"uuid","type":"string"}},"required":["job_id"],"type":"object"},"IntelligenceRelated":{"additionalProperties":false,"properties":{"claims":{"items":{"$ref":"#/components/schemas/IntelligenceRelatedClaim"},"type":["array","null"]},"people":{"items":{"$ref":"#/components/schemas/IntelligenceRelatedPerson"},"type":["array","null"]},"semantic_available":{"type":"boolean"}},"required":["claims","people","semantic_available"],"type":"object"},"IntelligenceRelatedAction":{"additionalProperties":false,"properties":{"action":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"insight_id":{"format":"uuid","type":"string"},"person_id":{"format":"uuid","type":"string"}},"required":["id","action","created_at"],"type":"object"},"IntelligenceRelatedActionData":{"additionalProperties":false,"properties":{"action":{"enum":["opened","not_relevant","asked"],"type":"string"},"conversation_id":{"format":"uuid","type":"string"},"insight_id":{"description":"For opened and not_relevant.","format":"uuid","type":"string"},"person_id":{"description":"For asked.","format":"uuid","type":"string"},"turn_seq":{"description":"The turn the panel was showing results for.","format":"int64","minimum":1,"type":"integer"}},"required":["conversation_id","turn_seq","action"],"type":"object"},"IntelligenceRelatedClaim":{"additionalProperties":false,"properties":{"body":{"type":"string"},"body_truncated":{"type":"boolean"},"citation_omitted":{"enum":["restricted","unavailable","none"],"type":"string"},"epistemic_state":{"type":"string"},"insight_id":{"format":"uuid","type":"string"},"kind":{"type":"string"},"last_observed_at":{"format":"date-time","type":"string"},"practice":{"$ref":"#/components/schemas/IntelligencePractice"},"supporting_citation":{"$ref":"#/components/schemas/IntelligenceSupportingCitation"},"title":{"type":"string"}},"required":["insight_id","title","body","kind","epistemic_state"],"type":"object"},"IntelligenceRelatedPerson":{"additionalProperties":false,"properties":{"claim_count":{"format":"int64","type":"integer"},"email":{"type":"string"},"name":{"type":"string"},"person_id":{"format":"uuid","type":"string"},"practices":{"description":"Practice names, most active first. At most two.","items":{"type":"string"},"type":["array","null"]},"title":{"type":"string"}},"required":["person_id","name","email","practices","claim_count"],"type":"object"},"IntelligenceRelationshipScope":{"additionalProperties":false,"properties":{"grain":{"type":"string"},"lag_high":{"format":"int64","type":"integer"},"lag_low":{"format":"int64","type":"integer"},"population":{"type":"string"},"segment":{"type":"string"}},"type":"object"},"IntelligenceResearchStep":{"additionalProperties":false,"properties":{"decision":{"type":"string"},"mechanism":{"type":"string"},"missing":{"type":"string"},"queries":{"items":{"type":"string"},"type":["array","null"]},"stop":{"type":"string"}},"required":["decision","mechanism","missing","queries"],"type":"object"},"IntelligenceResolveDisputeData":{"additionalProperties":false,"properties":{"reason":{"maxLength":2000,"minLength":1,"type":"string"},"upheld":{"type":"boolean"}},"required":["upheld","reason"],"type":"object"},"IntelligenceReviewPacketData":{"additionalProperties":false,"properties":{"action_taken":{"description":"What changed because of this. The point of the exercise, and the one field nothing else can infer.","type":"string"},"note":{"maxLength":4000,"type":"string"},"verdict":{"enum":["useful","already_knew","not_useful","wrong","needs_work"],"type":"string"}},"required":["verdict"],"type":"object"},"IntelligenceReviewedBody":{"additionalProperties":false,"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"},"IntelligenceRoster":{"additionalProperties":false,"properties":{"people":{"items":{"$ref":"#/components/schemas/IntelligencePerson"},"type":["array","null"]}},"required":["people"],"type":"object"},"IntelligenceRunFlowData":{"additionalProperties":false,"properties":{"flow":{"description":"The committed Kestra flow to replay, step for step.","enum":["nightly","maintenance","digest","prospect","reindex"],"type":"string"}},"required":["flow"],"type":"object"},"IntelligenceRunJobData":{"additionalProperties":false,"properties":{"area":{"description":"For question_generate. Optional. A practice slug or phrase limits this run to that subject. Omit it and the run reads the practice list, which is what the nightly job and the Admin button do.","maxLength":80,"type":"string"},"evidence_id":{"format":"uuid","type":"string"},"kind":{"description":"The job Kestra would POST, plus the repairs that have no schedule. rebuild_packs fans out compile_pack over stale projects; reclaim runs inline because a dead worker queue cannot repair itself. compile_company_facts rebuilds the one company_facts section every project's pack reads and takes no project_id. backfill_authorship and backfill_deciders are one-time catch-ups; infer_authority rebuilds the authority claims and infer_person_practices the practice tags on people; both run on their own after extraction and nightly; backfill_artifacts derives from one project's existing evidence, items, decisions, and saved outputs; link_projects writes the project edges the graph needs for insights extracted before it did so; clear_all_derived sweeps every project the way the per-project clear does one. relink_authorship rewrites speakers on one meeting after a human assignment when given evidence_id; without one it queues a relink for every record workspace says a model wrote, so claims extracted before that label existed stop counting as a person's. promote_commitments turns the next steps of one meeting's summary into commitment insights when given evidence_id; without one it queues that for every Zoom, phone, and Plaud meeting with a ready summary, which catches up the summaries written before intelligence read them. It is safe to run again. spine_backfill fills the property market and the unit floor from the reviewed attributes file; it is idempotent and fills only what is empty. promote_candidates publishes candidates that Route used to hold for a reviewer, and takes a mode: entailed publishes only what verify_grounding has checked and found supported, all publishes the unverified backlog too, and undo returns everything a run published. It has no schedule and nothing enqueues it — the routing change ships with the deploy, this catch-up does not. dedupe_insights merges published insights that state the same claim in different words, and takes a mode: dry_run logs each pair and the survivor it would keep and writes nothing, apply merges them. It has no schedule. The four discovery kinds run the loop out of band: readiness asks whether anything is worth running, cycle is the numerical pass, investigate is the evidence-led one, and invalidate finds results resting on a definition that moved.","enum":["cluster_links","prospect","rollup_concentration","rollup_bottleneck","rollup_followthrough","decay_relationships","expire_candidates","reassess_epistemics","reviewer_digest","directory_snapshot","reindex","backfill_authorship","infer_authority","infer_person_practices","backfill_deciders","backfill_offices","reclassify_practices","link_projects","rebuild_packs","reclaim","compile_pack","compile_company_facts","backfill_artifacts","clear_all_derived","relink_authorship","spine_backfill","discovery_readiness","discovery_cycle","discovery_invalidate","discovery_investigate","question_generate","attention_brief","promote_candidates","dedupe_insights","promote_commitments"],"type":"string"},"lens":{"description":"For discovery_investigate. profit, overlap, or culture searches only that category and skips identifier pairing. Omit it to run every category.","enum":["profit","overlap","culture"],"type":"string"},"mode":{"description":"For clear_all_derived (discard, dispute; defaults to discard), promote_candidates (entailed, all, undo; defaults to entailed) and dedupe_insights (dry_run, apply; defaults to dry_run). Ignored by every other kind.","enum":["discard","dispute","entailed","all","undo","dry_run","apply"],"type":"string"},"project_id":{"format":"uuid","type":"string"}},"required":["kind"],"type":"object"},"IntelligenceRunReport":{"additionalProperties":false,"properties":{"blocked":{"items":{"type":"string"},"type":["array","null"]},"calls":{"items":{"$ref":"#/components/schemas/IntelligenceModelCall"},"type":["array","null"]},"candidates":{"format":"int64","type":"integer"},"considered":{"items":{"$ref":"#/components/schemas/IntelligenceConsideredPair"},"type":["array","null"]},"coverage":{"$ref":"#/components/schemas/IntelligenceSourceCoverage"},"duplicate":{"format":"int64","type":"integer"},"eligible":{"format":"int64","type":"integer"},"evidence_sources":{"additionalProperties":{"format":"int64","type":"integer"},"type":"object"},"held":{"format":"int64","type":"integer"},"hybrid":{"$ref":"#/components/schemas/IntelligenceHybridCoverage"},"inquiry_empty":{"items":{"type":"string"},"type":["array","null"]},"inquiry_pairs":{"format":"int64","type":"integer"},"inquiry_searches":{"format":"int64","type":"integer"},"lens":{"type":"string"},"limited":{"type":"boolean"},"no_finding":{"format":"int64","type":"integer"},"pairs_tried":{"format":"int64","type":"integer"},"refused":{"format":"int64","type":"integer"},"remaining":{"items":{"$ref":"#/components/schemas/IntelligenceQueuedPair"},"type":["array","null"]},"research_version":{"type":"string"},"saved":{"format":"int64","type":"integer"},"seeds_searched":{"format":"int64","type":"integer"},"sources":{"additionalProperties":{"format":"int64","type":"integer"},"type":"object"},"threads_read":{"format":"int64","type":"integer"},"warnings":{"items":{"type":"string"},"type":["array","null"]}},"required":["research_version","inquiry_pairs","inquiry_searches","inquiry_empty","blocked","hybrid","evidence_sources","threads_read","eligible","sources","coverage","seeds_searched","candidates","pairs_tried","no_finding","refused","saved","duplicate","held","limited","warnings","calls","considered","remaining"],"type":"object"},"IntelligenceSlackPerson":{"additionalProperties":false,"properties":{"name":{"description":"The name stored when the question was assigned. Empty when a reply arrived for someone this window did not send to.","type":"string"},"principal":{"type":"string"},"replies":{"description":"Slack answers that arrived in the window. Includes an answer to a question posted earlier.","format":"int64","type":"integer"},"sent":{"description":"Questions posted to this person in the window.","format":"int64","type":"integer"},"waiting":{"description":"Questions posted in the window that are still open.","format":"int64","type":"integer"}},"required":["principal","name","sent","replies","waiting"],"type":"object"},"IntelligenceSlackQuestionItem":{"additionalProperties":false,"properties":{"answer":{"type":"string"},"id":{"type":"string"},"posted_at":{"format":"date-time","type":"string"},"reply_at":{"format":"date-time","type":"string"},"sent":{"type":"boolean"},"statement":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"},"waiting":{"type":"boolean"}},"required":["id","title","statement","status","posted_at","sent","waiting"],"type":"object"},"IntelligenceSlackQuestionsBody":{"additionalProperties":false,"properties":{"questions":{"items":{"$ref":"#/components/schemas/IntelligenceSlackQuestionItem"},"type":["array","null"]},"reading":{"type":"string"}},"required":["questions"],"type":"object"},"IntelligenceSourceCoverage":{"additionalProperties":false,"properties":{"ByteLimitReached":{"type":"boolean"},"Denied":{"format":"int64","type":"integer"},"Empty":{"format":"int64","type":"integer"},"Enumerated":{"format":"int64","type":"integer"},"Excluded":{"format":"int64","type":"integer"},"Failed":{"format":"int64","type":"integer"},"Fetched":{"format":"int64","type":"integer"},"Invalid":{"format":"int64","type":"integer"},"PartialRecords":{"format":"int64","type":"integer"},"RecordLimit":{"format":"int64","type":"integer"},"RecordLimitReached":{"type":"boolean"},"Searches":{"format":"int64","type":"integer"},"UnsupportedHits":{"format":"int64","type":"integer"}},"required":["RecordLimit","Enumerated","Fetched","Denied","Excluded","Empty","Invalid","Failed","Searches","UnsupportedHits","RecordLimitReached","ByteLimitReached","PartialRecords"],"type":"object"},"IntelligenceSpineAlternative":{"additionalProperties":false,"properties":{"confidence":{"format":"double","type":"number"},"subject_id":{"format":"uuid","type":"string"},"why":{"type":"string"}},"required":["subject_id","confidence"],"type":"object"},"IntelligenceSpineCalendarCoverage":{"additionalProperties":false,"properties":{"day_count":{"format":"int64","type":"integer"},"first_day":{"type":"string"},"last_day":{"type":"string"},"reading":{"description":"What the numbers mean, so an empty calendar and a short one are not both read as 'the anchor is wrong'.","type":"string"}},"required":["day_count","reading"],"type":"object"},"IntelligenceSpineDomain":{"additionalProperties":false,"properties":{"clock":{"description":"How fast the domain moves. Sets the floor on a credible lag to or from it.","type":"string"},"display_name":{"type":"string"},"hard_dates":{"items":{"type":"string"},"type":["array","null"]},"notes":{"type":"string"},"owner_role":{"type":"string"},"season":{"description":"How strongly its metrics move with the calendar.","type":"string"},"slug":{"type":"string"},"status":{"type":"string"}},"required":["slug","display_name","clock","season","hard_dates","status"],"type":"object"},"IntelligenceSpineDomainMember":{"additionalProperties":false,"properties":{"contested":{"type":"boolean"},"domain":{"type":"string"},"kind":{"type":"string"},"ref":{"type":"string"},"secondary_domain":{"type":"string"}},"required":["kind","ref","domain","contested"],"type":"object"},"IntelligenceSpineIdentity":{"additionalProperties":false,"properties":{"confidence":{"format":"double","type":"number"},"external_id":{"type":"string"},"method":{"type":"string"},"subject_id":{"format":"uuid","type":"string"},"subject_kind":{"type":"string"},"system":{"type":"string"}},"required":["subject_kind","subject_id","system","external_id","method","confidence"],"type":"object"},"IntelligenceSpineIdentityReview":{"additionalProperties":false,"properties":{"alternatives":{"items":{"$ref":"#/components/schemas/IntelligenceSpineAlternative"},"type":["array","null"]},"confidence":{"format":"double","type":"number"},"created_at":{"format":"date-time","type":"string"},"decided_at":{"format":"date-time","type":"string"},"decided_by":{"type":"string"},"decision":{"type":"string"},"decision_note":{"type":"string"},"evidence":{"additionalProperties":{},"type":"object"},"external_id":{"type":"string"},"id":{"format":"uuid","type":"string"},"method":{"type":"string"},"subject_id":{"format":"uuid","type":"string"},"subject_kind":{"type":"string"},"system":{"type":"string"}},"required":["id","subject_kind","subject_id","system","external_id","method","confidence","evidence","alternatives","decision","created_at"],"type":"object"},"IntelligenceSpineProperty":{"additionalProperties":false,"properties":{"acquisition_date":{"format":"date-time","type":"string"},"asset_class":{"type":"string"},"display_name":{"type":"string"},"disposition_date":{"format":"date-time","type":"string"},"external_ref":{"type":"string"},"id":{"format":"uuid","type":"string"},"market":{"type":"string"},"ownership_entity":{"type":"string"},"refreshed_at":{"description":"When the snapshot last confirmed this row. A row the source stopped returning goes stale rather than disappearing.","format":"date-time","type":"string"},"source_system":{"type":"string"},"status":{"type":"string"},"unit_count":{"format":"int64","type":"integer"},"vintage_year":{"format":"int64","type":"integer"}},"required":["id","external_ref","source_system","display_name","status","refreshed_at"],"type":"object"},"IntelligenceSpineSpace":{"additionalProperties":false,"properties":{"external_ref":{"type":"string"},"floor":{"format":"int64","type":"integer"},"id":{"format":"uuid","type":"string"},"label":{"type":"string"},"property_id":{"format":"uuid","type":"string"},"source_system":{"type":"string"},"space_kind":{"type":"string"},"status":{"type":"string"}},"required":["id","property_id","external_ref","source_system","label","space_kind","status"],"type":"object"},"IntelligenceSpineUnit":{"additionalProperties":false,"properties":{"exposure":{"type":"string"},"external_ref":{"type":"string"},"floor":{"format":"int64","type":"integer"},"floorplan":{"type":"string"},"id":{"format":"uuid","type":"string"},"label":{"type":"string"},"property_id":{"format":"uuid","type":"string"},"source_system":{"type":"string"},"sqft":{"format":"int64","type":"integer"},"status":{"type":"string"}},"required":["id","property_id","external_ref","source_system","label","status"],"type":"object"},"IntelligenceStationOutput":{"additionalProperties":false,"properties":{"count":{"format":"int64","type":"integer"},"id":{"enum":["insights","graph","discovery","attention"],"type":"string"}},"required":["id","count"],"type":"object"},"IntelligenceStationOutputsBody":{"additionalProperties":false,"properties":{"since":{"format":"date-time","type":"string"},"stations":{"items":{"$ref":"#/components/schemas/IntelligenceStationOutput"},"type":"array"}},"required":["since","stations"],"type":"object"},"IntelligenceSubgraph":{"additionalProperties":false,"properties":{"edges":{"items":{"$ref":"#/components/schemas/IntelligenceEdge"},"type":["array","null"]},"nodes":{"items":{"$ref":"#/components/schemas/IntelligenceNode"},"type":["array","null"]},"truncated":{"type":"boolean"}},"required":["nodes","edges","truncated"],"type":"object"},"IntelligenceSupersedeData":{"additionalProperties":false,"properties":{"replacement_insight_id":{"format":"uuid","type":"string"}},"required":["replacement_insight_id"],"type":"object"},"IntelligenceSupportingCitation":{"additionalProperties":false,"properties":{"author":{"type":"string"},"entailment_score":{"format":"float","type":"number"},"locator":{"type":"string"},"occurred_at":{"description":"When the source was said or written. Not ingestion time and not when the insight was created.","format":"date-time","type":"string"},"quote":{"type":"string"},"quote_truncated":{"type":"boolean"},"relation":{"enum":["supports","contradicts","context"],"type":"string"},"source_id":{"type":"string"},"source_kind":{"type":"string"},"source_seq":{"format":"int64","type":"integer"},"support":{"enum":["verified","unverified"],"type":"string"}},"required":["quote","author","locator","relation","support"],"type":"object"},"IntelligenceUnblockedArea":{"additionalProperties":false,"properties":{"id":{"format":"uuid","type":"string"}},"required":["id"],"type":"object"},"IntelligenceUpdatePracticeData":{"additionalProperties":false,"properties":{"description":{"description":"What belongs in the practice and what does not. The classifying model reads it. Empty clears it.","maxLength":1000,"type":"string"},"name":{"maxLength":200,"minLength":1,"type":"string"}},"required":["name","description"],"type":"object"},"IntelligenceVerifyCitationsBody":{"additionalProperties":false,"properties":{"citations":{"items":{"$ref":"#/components/schemas/IntelligenceCitationCheck"},"maxItems":100,"minItems":1,"type":["array","null"]}},"required":["citations"],"type":"object"},"IntelligenceVerifyCitationsResults":{"additionalProperties":false,"properties":{"located":{"format":"int64","type":"integer"},"missing":{"format":"int64","type":"integer"},"verdicts":{"items":{"$ref":"#/components/schemas/IntelligenceCitationVerdict"},"type":["array","null"]}},"required":["verdicts","located","missing"],"type":"object"},"IntelligenceWhoDecides":{"additionalProperties":false,"properties":{"deciders":{"items":{"$ref":"#/components/schemas/IntelligenceDecider"},"type":["array","null"]},"practice":{"type":"string"}},"required":["practice","deciders"],"type":"object"},"JournalEntryListOutputBody":{"additionalProperties":false,"properties":{"items":{"items":{"$ref":"#/components/schemas/AccountingJournalEntryHeader"},"type":["array","null"]},"next_cursor":{"type":"string"}},"required":["items"],"type":"object"},"LegalEntityListOutputBody":{"additionalProperties":false,"properties":{"items":{"items":{"$ref":"#/components/schemas/AccountingLegalEntity"},"type":["array","null"]}},"required":["items"],"type":"object"},"LocationsDataLocationRecord":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/LocationsLocationRecord"}},"required":["data"],"type":"object"},"LocationsEnvelopeDataLocationRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/LocationsDataLocationRecord"}},"required":["header","payload"],"type":"object"},"LocationsEnvelopePageLocationRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/LocationsPageLocationRecord"}},"required":["header","payload"],"type":"object"},"LocationsLocationRecord":{"additionalProperties":false,"properties":{"bedroom_count":{"format":"int32","type":"integer"},"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"floor_sort_key":{"format":"int32","type":"integer"},"id":{"format":"uuid","type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"parent_id":{"format":"uuid","type":"string"},"path":{"type":"string"},"region":{"type":"string"},"source_id":{"type":"string"},"source_system":{"type":"string"},"timezone":{"description":"IANA timezone on a property, such as America/New_York. Omitted when unknown and on other location kinds.","maxLength":100,"type":"string"},"updated_at":{"format":"date-time","type":"string"},"updated_by":{"type":"string"}},"required":["id","kind","name","path","source_system","created_at","updated_at","created_by","updated_by"],"type":"object"},"LocationsPageLocationRecord":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/LocationsLocationRecord"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"MaintenanceItemsAddItemData":{"additionalProperties":false,"properties":{"item_id":{"format":"uuid","type":"string"}},"required":["item_id"],"type":"object"},"MaintenanceItemsCategoryRecord":{"additionalProperties":false,"properties":{"definition":{"type":"string"},"display_order":{"format":"int32","type":"integer"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","slug","name","display_order"],"type":"object"},"MaintenanceItemsCommandRequestAddItemData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/MaintenanceItemsAddItemData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"MaintenanceItemsCommandRequestCreateCategoryData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/MaintenanceItemsCreateCategoryData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"MaintenanceItemsCommandRequestCreateItemData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/MaintenanceItemsCreateItemData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"MaintenanceItemsCommandRequestUpdateCategoryData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/MaintenanceItemsUpdateCategoryData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"MaintenanceItemsCommandRequestUpdateItemData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/MaintenanceItemsUpdateItemData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"MaintenanceItemsCreateCategoryData":{"additionalProperties":false,"properties":{"definition":{"type":"string"},"display_order":{"format":"int32","type":"integer"},"name":{"maxLength":200,"minLength":1,"type":"string"},"slug":{"maxLength":100,"minLength":1,"pattern":"^[a-z0-9-]+$","type":"string"}},"required":["slug","name"],"type":"object"},"MaintenanceItemsCreateItemData":{"additionalProperties":false,"properties":{"category":{"description":"Category slug.","minLength":1,"type":"string"},"code":{"maxLength":200,"minLength":1,"type":"string"},"default_priority":{"enum":["normal","high"],"type":"string"},"kind":{"enum":["physical","service"],"type":"string"},"names":{"additionalProperties":{"type":"string"},"description":"Localized display names, e.g. {\"en\":\"Dishwasher\"}. en is required.","type":"object"}},"required":["code","category","names"],"type":"object"},"MaintenanceItemsDataCategoryRecord":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/MaintenanceItemsCategoryRecord"}},"required":["data"],"type":"object"},"MaintenanceItemsDataItemRecord":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/MaintenanceItemsItemRecord"}},"required":["data"],"type":"object"},"MaintenanceItemsDataListCategoryRecord":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/MaintenanceItemsCategoryRecord"},"type":["array","null"]}},"required":["data"],"type":"object"},"MaintenanceItemsDataListItemRecord":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/MaintenanceItemsItemRecord"},"type":["array","null"]}},"required":["data"],"type":"object"},"MaintenanceItemsDataLocationItemList":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/MaintenanceItemsLocationItemList"}},"required":["data"],"type":"object"},"MaintenanceItemsDataRemovedItem":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/MaintenanceItemsRemovedItem"}},"required":["data"],"type":"object"},"MaintenanceItemsDataTemplateMembership":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/MaintenanceItemsTemplateMembership"}},"required":["data"],"type":"object"},"MaintenanceItemsEnvelopeDataCategoryRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/MaintenanceItemsDataCategoryRecord"}},"required":["header","payload"],"type":"object"},"MaintenanceItemsEnvelopeDataItemRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/MaintenanceItemsDataItemRecord"}},"required":["header","payload"],"type":"object"},"MaintenanceItemsEnvelopeDataListCategoryRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/MaintenanceItemsDataListCategoryRecord"}},"required":["header","payload"],"type":"object"},"MaintenanceItemsEnvelopeDataListItemRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/MaintenanceItemsDataListItemRecord"}},"required":["header","payload"],"type":"object"},"MaintenanceItemsEnvelopeDataLocationItemList":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/MaintenanceItemsDataLocationItemList"}},"required":["header","payload"],"type":"object"},"MaintenanceItemsEnvelopeDataRemovedItem":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/MaintenanceItemsDataRemovedItem"}},"required":["header","payload"],"type":"object"},"MaintenanceItemsEnvelopeDataTemplateMembership":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/MaintenanceItemsDataTemplateMembership"}},"required":["header","payload"],"type":"object"},"MaintenanceItemsItemRecord":{"additionalProperties":false,"properties":{"category_name":{"type":"string"},"category_slug":{"type":"string"},"code":{"type":"string"},"default_priority":{"type":"string"},"id":{"format":"uuid","type":"string"},"kind":{"type":"string"},"names":{"additionalProperties":{"type":"string"},"type":"object"},"origin":{"type":"string"}},"required":["id","code","category_slug","category_name","names"],"type":"object"},"MaintenanceItemsLocationItemList":{"additionalProperties":false,"properties":{"items":{"items":{"$ref":"#/components/schemas/MaintenanceItemsItemRecord"},"type":["array","null"]},"location_id":{"format":"uuid","type":"string"},"source":{"type":"string"},"space_type":{"type":"string"}},"required":["location_id","source","items"],"type":"object"},"MaintenanceItemsRemovedItem":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"item_id":{"format":"uuid","type":"string"},"location_id":{"format":"uuid","type":"string"}},"required":["location_id","item_id","active"],"type":"object"},"MaintenanceItemsTemplateMembership":{"additionalProperties":false,"properties":{"item_id":{"format":"uuid","type":"string"},"space_type":{"type":"string"}},"required":["space_type","item_id"],"type":"object"},"MaintenanceItemsUpdateCategoryData":{"additionalProperties":false,"properties":{"definition":{"type":"string"},"display_order":{"format":"int32","type":"integer"},"name":{"maxLength":200,"minLength":1,"type":"string"},"status":{"enum":["active","retired"],"type":"string"}},"type":"object"},"MaintenanceItemsUpdateItemData":{"additionalProperties":false,"properties":{"category":{"description":"Category slug.","type":"string"},"default_priority":{"enum":["normal","high"],"type":"string"},"kind":{"enum":["physical","service"],"type":"string"},"names":{"additionalProperties":{"type":"string"},"description":"If given, replaces all localized names.","type":"object"},"status":{"enum":["active","retired"],"type":"string"}},"type":"object"},"PageMeta":{"additionalProperties":false,"properties":{"pagination":{"$ref":"#/components/schemas/PagePagination"}},"required":["pagination"],"type":"object"},"PagePagination":{"additionalProperties":false,"properties":{"page":{"format":"int64","type":"integer"},"pageCount":{"format":"int64","type":"integer"},"pageSize":{"format":"int64","type":"integer"},"total":{"format":"int64","type":"integer"}},"required":["page","pageSize","pageCount","total"],"type":"object"},"ProfileDataProfile":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/ProfileProfile"}},"required":["data"],"type":"object"},"ProfileEnvelopeDataProfile":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/ProfileDataProfile"}},"required":["header","payload"],"type":"object"},"ProfileProfile":{"additionalProperties":false,"properties":{"email":{"description":"The email the person signs in with, or an empty string when it is not set.","type":"string"},"email_verified":{"description":"Whether the person has verified that email.","type":"boolean"},"fid":{"description":"The caller: the token's sub, a lowercase UUID.","type":"string"},"name":{"$ref":"#/components/schemas/ProfileProfileName"}},"required":["fid","email","email_verified","name"],"type":"object"},"ProfileProfileName":{"additionalProperties":false,"properties":{"first":{"description":"The first name, or an empty string when it is not set.","type":"string"},"last":{"description":"The last name, or an empty string when it is not set.","type":"string"}},"required":["first","last"],"type":"object"},"ReadInsightsInputBody":{"additionalProperties":false,"properties":{"ids":{"description":"Insight ids. At most 200. An id that does not exist is omitted.","items":{"type":"string"},"maxItems":200,"minItems":1,"type":["array","null"]}},"required":["ids"],"type":"object"},"RegisterKnownRelationshipInputBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/DataStruct"}},"required":["data"],"type":"object"},"RequestFlowToolsResyncInputBody":{"additionalProperties":false,"properties":{"regenerate":{"description":"Write generated pull request descriptions and product requirements notes again even where they already exist. Costs one model call per pull request with a short description and one per repository.","type":"boolean"},"repo":{"description":"One repository name, such as flow-tools-api, or owner/name. Empty re-syncs every repository.","maxLength":200,"type":"string"}},"type":"object"},"ResidentLogisticsCommandRequestCreateDeliveryData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/ResidentLogisticsCreateDeliveryData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"ResidentLogisticsCommandRequestNoteData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/ResidentLogisticsNoteData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"ResidentLogisticsCommandRequestResolveData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/ResidentLogisticsResolveData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"ResidentLogisticsCreateDeliveryData":{"additionalProperties":false,"properties":{"arrivalBatchRef":{"type":"string"},"carrier":{"maxLength":60,"type":"string"},"kind":{"default":"food","enum":["food","parcel"],"type":"string"},"leaseRef":{"maxLength":200,"minLength":1,"type":"string"},"leaseSource":{"default":"deepsky","enum":["deepsky","yardi","building"],"type":"string"},"propertyRef":{"maxLength":200,"minLength":1,"type":"string"},"recipientPrinted":{"maxLength":200,"minLength":1,"type":"string"},"recipients":{"items":{"$ref":"#/components/schemas/ResidentLogisticsRecipientData"},"type":["array","null"]},"storageLocation":{"maxLength":200,"type":"string"},"tenantAccountRef":{"maxLength":200,"minLength":1,"type":"string"},"trackingCode":{"maxLength":120,"type":"string"},"unitLabel":{"maxLength":60,"minLength":1,"type":"string"},"unitRef":{"maxLength":200,"minLength":1,"type":"string"}},"required":["propertyRef","tenantAccountRef","leaseRef","unitRef","unitLabel","recipientPrinted"],"type":"object"},"ResidentLogisticsCursorDeliveryRecord":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/ResidentLogisticsDeliveryRecord"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/CursorMeta"}},"required":["data","meta"],"type":"object"},"ResidentLogisticsDataDeliveryDetail":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/ResidentLogisticsDeliveryDetail"}},"required":["data"],"type":"object"},"ResidentLogisticsDataDeliveryRecord":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/ResidentLogisticsDeliveryRecord"}},"required":["data"],"type":"object"},"ResidentLogisticsDataNoteRecord":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/ResidentLogisticsNoteRecord"}},"required":["data"],"type":"object"},"ResidentLogisticsDataReleaseCandidatesBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/ResidentLogisticsReleaseCandidatesBody"}},"required":["data"],"type":"object"},"ResidentLogisticsDataSummaryRecord":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/ResidentLogisticsSummaryRecord"}},"required":["data"],"type":"object"},"ResidentLogisticsDeliveryDetail":{"additionalProperties":false,"properties":{"carrier":{"type":"string"},"holdExpiresAt":{"format":"date-time","type":"string"},"id":{"type":"string"},"kind":{"type":"string"},"leaseRef":{"type":"string"},"leaseSource":{"type":"string"},"notes":{"items":{"$ref":"#/components/schemas/ResidentLogisticsNoteRecord"},"type":["array","null"]},"notifications":{"items":{"$ref":"#/components/schemas/ResidentLogisticsNotificationRecord"},"type":["array","null"]},"propertyRef":{"type":"string"},"receivedAt":{"format":"date-time","type":"string"},"recipientPrinted":{"type":"string"},"recipients":{"items":{"$ref":"#/components/schemas/ResidentLogisticsRecipientRecord"},"type":["array","null"]},"releasedTo":{"type":"string"},"releasedToKind":{"type":"string"},"releasedToRef":{"type":"string"},"resolutionReason":{"type":"string"},"resolvedAt":{"format":"date-time","type":"string"},"status":{"type":"string"},"storageLocation":{"type":"string"},"tenantAccountRef":{"type":"string"},"trackingCode":{"type":"string"},"unitLabel":{"type":"string"},"unitRef":{"type":"string"}},"required":["recipients","notes","notifications","id","kind","propertyRef","unitRef","unitLabel","tenantAccountRef","leaseSource","leaseRef","recipientPrinted","status","receivedAt"],"type":"object"},"ResidentLogisticsDeliveryRecord":{"additionalProperties":false,"properties":{"carrier":{"type":"string"},"holdExpiresAt":{"format":"date-time","type":"string"},"id":{"type":"string"},"kind":{"type":"string"},"leaseRef":{"type":"string"},"leaseSource":{"type":"string"},"propertyRef":{"type":"string"},"receivedAt":{"format":"date-time","type":"string"},"recipientPrinted":{"type":"string"},"releasedTo":{"type":"string"},"releasedToKind":{"type":"string"},"releasedToRef":{"type":"string"},"resolutionReason":{"type":"string"},"resolvedAt":{"format":"date-time","type":"string"},"status":{"type":"string"},"storageLocation":{"type":"string"},"tenantAccountRef":{"type":"string"},"trackingCode":{"type":"string"},"unitLabel":{"type":"string"},"unitRef":{"type":"string"}},"required":["id","kind","propertyRef","unitRef","unitLabel","tenantAccountRef","leaseSource","leaseRef","recipientPrinted","status","receivedAt"],"type":"object"},"ResidentLogisticsEnvelopeCursorDeliveryRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/ResidentLogisticsCursorDeliveryRecord"}},"required":["header","payload"],"type":"object"},"ResidentLogisticsEnvelopeDataDeliveryDetail":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/ResidentLogisticsDataDeliveryDetail"}},"required":["header","payload"],"type":"object"},"ResidentLogisticsEnvelopeDataDeliveryRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/ResidentLogisticsDataDeliveryRecord"}},"required":["header","payload"],"type":"object"},"ResidentLogisticsEnvelopeDataNoteRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/ResidentLogisticsDataNoteRecord"}},"required":["header","payload"],"type":"object"},"ResidentLogisticsEnvelopeDataReleaseCandidatesBody":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/ResidentLogisticsDataReleaseCandidatesBody"}},"required":["header","payload"],"type":"object"},"ResidentLogisticsEnvelopeDataSummaryRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/ResidentLogisticsDataSummaryRecord"}},"required":["header","payload"],"type":"object"},"ResidentLogisticsNoteData":{"additionalProperties":false,"properties":{"body":{"maxLength":2000,"minLength":1,"type":"string"}},"required":["body"],"type":"object"},"ResidentLogisticsNoteRecord":{"additionalProperties":false,"properties":{"body":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"createdBy":{"type":"string"},"id":{"type":"string"}},"required":["id","body","createdAt","createdBy"],"type":"object"},"ResidentLogisticsNotificationRecord":{"additionalProperties":false,"properties":{"attempts":{"format":"int32","type":"integer"},"blockedReason":{"type":"string"},"id":{"type":"string"},"kind":{"type":"string"},"lastError":{"type":"string"},"method":{"type":"string"},"recipientId":{"type":"string"},"sentAt":{"format":"date-time","type":"string"},"state":{"type":"string"}},"required":["id","kind","state","method","attempts"],"type":"object"},"ResidentLogisticsRecipientData":{"additionalProperties":false,"properties":{"displayName":{"maxLength":200,"minLength":1,"type":"string"},"externalRef":{"maxLength":200,"type":"string"},"matchScore":{"format":"double","maximum":1,"minimum":0,"type":"number"},"origin":{"default":"operator","enum":["matched","ambiguous","operator","lease_fallback"],"type":"string"},"source":{"default":"building","enum":["building","deepsky","identity"],"type":"string"}},"required":["displayName"],"type":"object"},"ResidentLogisticsRecipientRecord":{"additionalProperties":false,"properties":{"displayName":{"type":"string"},"externalRef":{"type":"string"},"id":{"type":"string"},"matchScore":{"type":"string"},"origin":{"type":"string"},"source":{"type":"string"}},"required":["id","displayName","origin"],"type":"object"},"ResidentLogisticsReleaseCandidate":{"additionalProperties":false,"properties":{"detail":{"type":"string"},"kind":{"type":"string"},"label":{"type":"string"},"ref":{"type":"string"}},"required":["kind","ref","label"],"type":"object"},"ResidentLogisticsReleaseCandidatesBody":{"additionalProperties":false,"properties":{"complete":{"type":"boolean"},"missing":{"items":{"type":"string"},"type":["array","null"]},"transitions":{"items":{"$ref":"#/components/schemas/ResidentLogisticsTransitionCandidates"},"type":["array","null"]}},"required":["transitions","complete"],"type":"object"},"ResidentLogisticsResolveData":{"additionalProperties":false,"properties":{"reason":{"maxLength":500,"type":"string"},"releasedTo":{"maxLength":200,"type":"string"},"releasedToKind":{"enum":["resident","carrier"],"type":"string"},"releasedToRef":{"maxLength":200,"type":"string"}},"type":"object"},"ResidentLogisticsSummaryRecord":{"additionalProperties":false,"properties":{"dueWithin24h":{"format":"int64","type":"integer"},"held":{"format":"int64","type":"integer"},"overdue":{"format":"int64","type":"integer"}},"required":["held","overdue","dueWithin24h"],"type":"object"},"ResidentLogisticsTransitionCandidates":{"additionalProperties":false,"properties":{"candidates":{"items":{"$ref":"#/components/schemas/ResidentLogisticsReleaseCandidate"},"type":["array","null"]},"freeTextAllowed":{"type":"boolean"},"kinds":{"items":{"type":"string"},"type":["array","null"]},"transition":{"type":"string"}},"required":["transition","kinds","candidates","freeTextAllowed"],"type":"object"},"RetireEvalExampleInputBody":{"additionalProperties":false,"properties":{"reason":{"maxLength":1000,"type":"string"}},"required":["reason"],"type":"object"},"RetireKnownRelationshipInputBody":{"additionalProperties":false,"properties":{"reason":{"description":"Why it is no longer believed. Required: a row withdrawn without one is indistinguishable from a mistake.","maxLength":1000,"type":"string"}},"required":["reason"],"type":"object"},"ReviewDiscoveryFindingInputBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/DataStruct1"}},"required":["data"],"type":"object"},"SaveEvalExampleInputBody":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/DataStruct2"}},"required":["data"],"type":"object"},"Why":{"additionalProperties":false,"properties":{"code":{"maxLength":128,"pattern":"^[a-z][a-z0-9_]*(\\.[a-z0-9_]+)+$","type":"string"},"detail":{"maxLength":1000,"type":"string"}},"required":["code"],"type":"object"},"WorkspaceActivity":{"additionalProperties":false,"properties":{"activity_type":{"type":"string"},"actor_principal":{"type":"string"},"conversation_id":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"occurred_at":{"format":"date-time","type":"string"},"payload":{}},"required":["id","activity_type","actor_principal","payload","occurred_at"],"type":"object"},"WorkspaceAddDataSourceData":{"additionalProperties":false,"properties":{"kind":{"enum":["broker-binding","mcp-server"],"type":"string"},"label":{"maxLength":200,"type":"string"},"ref":{"maxLength":500,"minLength":1,"type":"string"}},"required":["kind","ref"],"type":"object"},"WorkspaceAddMemberData":{"additionalProperties":false,"properties":{"role":{"enum":["viewer","editor","owner"],"type":"string"}},"required":["role"],"type":"object"},"WorkspaceAgentTurnCount":{"additionalProperties":false,"properties":{"author":{"description":"The author principal, agent:<slug> for a Foundry agent.","type":"string"},"count":{"format":"int64","type":"integer"}},"required":["author","count"],"type":"object"},"WorkspaceAnswerData":{"additionalProperties":false,"properties":{"answer":{"maxLength":20000,"minLength":1,"type":"string"},"decision_id":{"format":"uuid","type":"string"},"expected_revision":{"format":"int32","minimum":1,"type":"integer"}},"required":["expected_revision","answer"],"type":"object"},"WorkspaceAppendTurnData":{"additionalProperties":false,"properties":{"actor_kind":{"enum":["human","agent","service"],"type":"string"},"author_principal":{"description":"The caller, or an agent: identity on an assistant turn. Another human is refused.","type":"string"},"client_turn_id":{"description":"Your own id for this turn. Sending it twice returns the first turn rather than appending a second.","maxLength":500,"minLength":1,"type":"string"},"content":{"maxLength":1000000,"type":"string"},"extra":{"additionalProperties":{},"description":"Client-specific fields. Preserved as written and not indexed.","type":"object"},"in_reply_to_seq":{"description":"Logical parent. History stays append-only; the UI uses this to reconstruct order.","format":"int64","minimum":1,"type":"integer"},"occurred_at":{"description":"When the turn happened, if that differs from when it was sent.","format":"date-time","type":"string"},"on_behalf_of":{"description":"The human who invoked an agent turn.","type":"string"},"role":{"enum":["user","assistant","system","command"],"type":"string"},"session_id":{"format":"uuid","type":"string"},"turn_kind":{"description":"Defaults to utterance. Lookup stubs are provenance, not speech.","enum":["utterance","lookup","output","system"],"type":"string"}},"required":["client_turn_id","role","actor_kind","content"],"type":"object"},"WorkspaceAppendUtteranceData":{"additionalProperties":false,"properties":{"actor_kind":{"description":"Defaults to human.","enum":["human","agent","service"],"type":"string"},"client_line_id":{"description":"The source's id for this line. Sending it twice returns the first line rather than appending a second.","maxLength":500,"minLength":1,"type":"string"},"content":{"maxLength":1000000,"type":"string"},"extra":{"additionalProperties":{},"description":"Source-specific fields. Preserved as written and not indexed.","type":"object"},"occurred_at":{"description":"When the line was said. Defaults to now, which is wrong for an import and right for a live thread.","format":"date-time","type":"string"},"speaker_display":{"maxLength":200,"minLength":1,"type":"string"},"speaker_external_id":{"description":"The source's id for the speaker — a Slack user id, a Zoom participant id.","maxLength":200,"type":"string"},"speaker_principal":{"description":"Set when the speaker is a Flow person. Absent means they are not, which is how the knowledge layer tiers the source.","maxLength":500,"type":"string"}},"required":["client_line_id","speaker_display","content"],"type":"object"},"WorkspaceAppendedTurn":{"additionalProperties":false,"properties":{"actor_kind":{"enum":["human","agent","service"],"type":"string"},"author_principal":{"type":"string"},"client_turn_id":{"type":"string"},"id":{"format":"uuid","type":"string"},"in_reply_to_seq":{"format":"int64","type":"integer"},"lookups":{"format":"int64","type":"integer"},"occurred_at":{"format":"date-time","type":"string"},"on_behalf_of":{"type":"string"},"payload":{},"redacted":{"description":"The content was destroyed by a governed redaction. The turn's position in the record remains.","type":"boolean"},"role":{"enum":["user","assistant","system","command"],"type":"string"},"seq":{"format":"int64","type":"integer"},"session_id":{"format":"uuid","type":"string"},"turn_kind":{"enum":["utterance","lookup","output","system"],"type":"string"},"utterances":{"$ref":"#/components/schemas/WorkspaceUtteranceCounts"},"warning":{"type":["string","null"]}},"required":["utterances","lookups","warning","id","seq","client_turn_id","role","actor_kind","author_principal","turn_kind","payload","redacted","occurred_at"],"type":"object"},"WorkspaceArtifactHit":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"id":{"format":"uuid","type":"string"},"kind":{"enum":["item","decision","output","case"],"type":"string"},"project_id":{"format":"uuid","type":"string"},"rank":{"format":"float","type":"number"},"snippet":{"type":"string"},"title":{"type":"string"}},"required":["id","project_id","kind","title","snippet","rank","created_at","created_by"],"type":"object"},"WorkspaceAssignSpeakerData":{"additionalProperties":false,"properties":{"display":{"description":"Shown name. Empty keeps the source label.","maxLength":200,"type":"string"},"entity_id":{"description":"The person entity, when the assignment came from a picker rather than a typed email.","format":"uuid","type":"string"},"principal":{"description":"The Flow person. Prefer their email so identity keys the same way as Slack.","maxLength":500,"minLength":1,"type":"string"},"speaker_external_id":{"description":"The source's id for this speaker — a Zoom participant id or a Plaud Speaker N. Every line with that id in this meeting is assigned.","maxLength":200,"minLength":1,"type":"string"}},"required":["speaker_external_id","principal"],"type":"object"},"WorkspaceAudience":{"additionalProperties":false,"properties":{"already_covered":{"items":{"type":"string"},"type":["array","null"]},"examples":{"items":{"type":"string"},"type":["array","null"]},"focus":{"items":{"type":"string"},"type":["array","null"]},"meeting_minutes":{"format":"int64","type":"integer"},"name":{"type":"string"},"objective":{"type":"string"},"region":{"type":"string"},"role":{"type":"string"},"scope":{"type":"string"}},"required":["name","objective"],"type":"object"},"WorkspaceAudioSlice":{"additionalProperties":false,"properties":{"error":{"description":"Why a failed slice failed. Send it again.","type":"string"},"index":{"format":"int32","type":"integer"},"line_count":{"description":"Lines this slice added to the record. Zero on a resend, because the lines were already there.","format":"int32","type":"integer"},"status":{"description":"transcribed means there are words; no_speech means the minute was read and held none, which is a finished slice and not a failure.","enum":["transcribed","no_speech","failed"],"type":"string"}},"required":["index","status","line_count"],"type":"object"},"WorkspaceAuditRecord":{"additionalProperties":false,"properties":{"actor":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"entity_id":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"occurred_at":{"format":"date-time","type":"string"},"payload":{},"source_domain":{"type":"string"},"source_event_id":{"format":"int64","type":"integer"},"source_event_type":{"type":"string"},"summary":{"type":"string"},"why_code":{"type":"string"},"why_detail":{"type":"string"}},"required":["id","source_domain","source_event_id","source_event_type","entity_id","actor","occurred_at","summary","payload","created_at"],"type":"object"},"WorkspaceBindPlaudDeviceData":{"additionalProperties":false,"properties":{"serial":{"description":"The device's serial number.","maxLength":64,"minLength":1,"type":"string"},"type":{"description":"Device type. Derived from the serial's prefix when absent.","maxLength":32,"type":"string"}},"required":["serial"],"type":"object"},"WorkspaceBreakGlassData":{"additionalProperties":false,"properties":{"reason":{"description":"Why you need in. Required, and published on the event.","maxLength":2000,"minLength":1,"type":"string"}},"required":["reason"],"type":"object"},"WorkspaceBuildPresentationData":{"additionalProperties":false,"properties":{"outline":{"description":"Replaces the drafted outline before rendering. Omit to approve it as stored.","items":{"$ref":"#/components/schemas/WorkspaceOutlineSlide"},"type":["array","null"]}},"type":"object"},"WorkspaceCancelData":{"additionalProperties":false,"properties":{"expected_revision":{"format":"int32","minimum":1,"type":"integer"},"reason":{"maxLength":2000,"minLength":1,"type":"string"}},"required":["expected_revision","reason"],"type":"object"},"WorkspaceCaptureOutcome":{"additionalProperties":false,"properties":{"occurrences":{"format":"int64","type":"integer"},"outcome":{"enum":["transcribed","no_speech","opted_out","not_available","failed"],"type":"string"},"participants":{"description":"People across those meetings, summed rather than distinct — it is how much attention went into them, not how many individuals.","format":"int64","type":"integer"}},"required":["outcome","occurrences","participants"],"type":"object"},"WorkspaceCase":{"additionalProperties":false,"properties":{"agent_cost_minor":{"format":"int64","type":"integer"},"amounts":{"description":"Identified, approved, posted, and collected. Absent stages are absent here. Do not add the rows together.","items":{"$ref":"#/components/schemas/WorkspaceCaseAmount"},"type":["array","null"]},"category":{"enum":["recurring_charge_missing","concession_overrun","service_not_posted","other"],"type":"string"},"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"decision_id":{"format":"uuid","type":"string"},"dismissal_reason":{"type":"string"},"expected_amount_minor":{"description":"A projection. Not an observed result, and not added to collected.","format":"int64","type":"integer"},"expected_currency":{"type":"string"},"expected_recurrence":{"description":"Recurring is a projection. It is never a collection.","enum":["one_time","recurring"],"type":"string"},"id":{"format":"uuid","type":"string"},"issue":{"type":"string"},"links":{"items":{"$ref":"#/components/schemas/WorkspaceCaseLink"},"type":["array","null"]},"next_action":{"type":"string"},"operator_minutes":{"format":"int32","type":"integer"},"owner":{"description":"The one person accountable for validating and correcting this case.","type":"string"},"proposed_correction":{"type":"string"},"status":{"enum":["needs_validation","accepted","in_progress","verified","dismissed"],"type":"string"},"still_needs_checking":{"type":"string"},"subject_key":{"description":"Cases that share a subject are counted once in the value report.","type":"string"},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"verification_due":{"description":"Calendar date, YYYY-MM-DD.","type":"string"},"verification_method":{"type":"string"},"verified_at":{"format":"date-time","type":"string"},"verified_by":{"type":"string"}},"required":["id","category","title","issue","proposed_correction","still_needs_checking","next_action","owner","status","verification_method","expected_currency","expected_recurrence","subject_key","links","amounts","created_at","updated_at","created_by"],"type":"object"},"WorkspaceCaseAmount":{"additionalProperties":false,"properties":{"amount_minor":{"description":"Minor units of currency. 125050 USD is $1,250.50.","format":"int64","type":"integer"},"attributable":{"description":"Collected only. True when the payment can be tied to this correction.","type":"boolean"},"currency":{"type":"string"},"note":{"type":"string"},"recorded_at":{"format":"date-time","type":"string"},"recorded_by":{"type":"string"},"stage":{"enum":["identified","approved","posted","collected"],"type":"string"}},"required":["stage","amount_minor","currency","recorded_at","recorded_by"],"type":"object"},"WorkspaceCaseLink":{"additionalProperties":false,"properties":{"kind":{"enum":["evidence","record"],"type":"string"},"label":{"type":"string"},"ref":{"type":"string"}},"required":["kind","ref"],"type":"object"},"WorkspaceCaseLinkData":{"additionalProperties":false,"properties":{"kind":{"enum":["evidence","record"],"type":"string"},"label":{"maxLength":200,"type":"string"},"ref":{"maxLength":500,"minLength":1,"type":"string"}},"required":["kind","ref"],"type":"object"},"WorkspaceCaseValue":{"additionalProperties":false,"properties":{"accepted_completed":{"description":"Verified. Accepted work that reached a check.","format":"int64","type":"integer"},"agent_costs":{"items":{"$ref":"#/components/schemas/WorkspaceMoneyTotal"},"type":["array","null"]},"case_count":{"format":"int64","type":"integer"},"collected_attributable_cases":{"format":"int64","type":"integer"},"collection_pending":{"description":"Posted, and no collection observed yet. Not a failure and not cash.","format":"int64","type":"integer"},"currencies":{"description":"One row per currency. The stage fields are not a total.","items":{"$ref":"#/components/schemas/WorkspaceCurrencyTotals"},"type":["array","null"]},"dismissal_reasons":{"items":{"$ref":"#/components/schemas/WorkspaceReasonCount"},"type":["array","null"]},"dismissed":{"format":"int64","type":"integer"},"mean_hours_to_resolution":{"format":"double","type":"number"},"operator_minutes":{"format":"int64","type":"integer"},"operator_minutes_cases":{"description":"How many cases recorded operator time. The average uses only verified cases that did.","format":"int64","type":"integer"},"operator_minutes_per_resolved":{"format":"double","type":"number"},"outstanding":{"description":"Still needs a decision, the work, or the check.","format":"int64","type":"integer"},"overlaps":{"description":"Subjects counted once. The excluded cases are left out of the money.","items":{"$ref":"#/components/schemas/WorkspaceSubjectOverlap"},"type":["array","null"]},"posted_cases":{"format":"int64","type":"integer"},"resolved_count":{"format":"int64","type":"integer"},"resolved_with_time":{"format":"int64","type":"integer"},"validated":{"description":"Accepted, in progress, or verified. A dismissed case is not validated.","format":"int64","type":"integer"},"verification_complete":{"format":"int64","type":"integer"}},"required":["case_count","validated","accepted_completed","dismissed","outstanding","verification_complete","collection_pending","posted_cases","collected_attributable_cases","dismissal_reasons","currencies","resolved_count","mean_hours_to_resolution","operator_minutes","operator_minutes_cases","resolved_with_time","operator_minutes_per_resolved","agent_costs","overlaps"],"type":"object"},"WorkspaceChangesData":{"additionalProperties":false,"properties":{"criterion_id":{"format":"uuid","type":"string"},"expected_revision":{"format":"int32","minimum":1,"type":"integer"},"note":{"maxLength":2000,"minLength":1,"type":"string"}},"required":["expected_revision","note"],"type":"object"},"WorkspaceClaim":{"additionalProperties":false,"properties":{"source_id":{"type":"string"},"text":{"type":"string"}},"required":["text","source_id"],"type":"object"},"WorkspaceCommandRequestAddDataSourceData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceAddDataSourceData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestAddMemberData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceAddMemberData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestAnswerData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceAnswerData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestAppendTurnData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceAppendTurnData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestAppendUtteranceData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceAppendUtteranceData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestAssignSpeakerData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceAssignSpeakerData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestBindPlaudDeviceData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceBindPlaudDeviceData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestBreakGlassData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceBreakGlassData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestBuildPresentationData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceBuildPresentationData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestCancelData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceCancelData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestChangesData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceChangesData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestCreateCaseData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceCreateCaseData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestCreateConversationData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceCreateConversationData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestCreateFactData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceCreateFactData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestCreateFileData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceCreateFileData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestCreateGoalCheckinData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceCreateGoalCheckinData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestCreateGoalData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceCreateGoalData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestCreateHandoffData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceCreateHandoffData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestCreateItemData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceCreateItemData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestCreateMeetingData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceCreateMeetingData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestCreateNoteData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceCreateNoteData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestCreateOutputUploadData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceCreateOutputUploadData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestCreateProjectData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceCreateProjectData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestCreateTemplateData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceCreateTemplateData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestCreateUnblockData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceCreateUnblockData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestCreateUnfiledFileData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceCreateUnfiledFileData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestCreateViewData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceCreateViewData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestDecideJoinData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceDecideJoinData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestDraftPresentationData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceDraftPresentationData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestFinalizeOutputData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceFinalizeOutputData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestLegalHoldData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceLegalHoldData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestLinkEvidenceData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceLinkEvidenceData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestMeetingSummaryContent":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceMeetingSummaryContent"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestMoveConversationData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceMoveConversationData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestMoveItemData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceMoveItemData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestPersonProfileData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspacePersonProfileData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestProposeDecisionData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceProposeDecisionData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestRateObjectionData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceRateObjectionData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestReassignData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceReassignData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestRecordAmountData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceRecordAmountData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestRecordOccurrenceData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceRecordOccurrenceData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestRecordSeenData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceRecordSeenData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestRedirectData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceRedirectData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestRelatedActionData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceRelatedActionData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestReorderViewsData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceReorderViewsData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestRequestJoinData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceRequestJoinData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestRequestRedactionData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceRequestRedactionData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestRequestUtteranceRedactionData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceRequestUtteranceRedactionData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestResolveSuggestionData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceResolveSuggestionData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestRestoreItemData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceRestoreItemData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestReturnData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceReturnData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestRevisePresentationData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceRevisePresentationData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestRevisionData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceRevisionData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestSaveConversationOutputData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceSaveConversationOutputData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestSaveOutputData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceSaveOutputData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestSetKnowledgeData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceSetKnowledgeData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestSetPrefData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceSetPrefData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestSetProjectStatusData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceSetProjectStatusData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestShareMeetingSummaryData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceShareMeetingSummaryData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestSnoozeData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceSnoozeData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestStartSessionData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceStartSessionData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestSupersedeData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceSupersedeData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestSupersedeFactData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceSupersedeFactData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestTransferOwnershipData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceTransferOwnershipData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestTransitionCaseData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceTransitionCaseData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestUpdateCaseData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceUpdateCaseData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestUpdateConversationData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceUpdateConversationData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestUpdateFactData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceUpdateFactData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestUpdateGoalData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceUpdateGoalData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestUpdateHandoffData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceUpdateHandoffData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestUpdateItemData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceUpdateItemData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestUpdateNoteData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceUpdateNoteData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestUpdateProjectData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceUpdateProjectData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestUpdateViewData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceUpdateViewData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestUpsertParticipantsData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceUpsertParticipantsData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommandRequestWithdrawData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceWithdrawData"},"why":{"$ref":"#/components/schemas/Why"}},"required":["data"],"type":"object"},"WorkspaceCommitment":{"additionalProperties":false,"properties":{"due":{"format":"date-time","type":["string","null"]},"due_source_id":{"type":"string"},"id":{"format":"uuid","type":"string"},"source_ids":{"items":{"type":"string"},"type":["array","null"]},"status":{"enum":["open","done","dropped"],"type":"string"},"text":{"type":"string"}},"required":["id","text","status","due","due_source_id","source_ids"],"type":"object"},"WorkspaceComparisonRow":{"additionalProperties":false,"properties":{"cells":{"items":{"type":"string"},"type":["array","null"]},"label":{"type":"string"}},"required":["label","cells"],"type":"object"},"WorkspaceConversation":{"additionalProperties":false,"properties":{"agent_id":{"type":"string"},"contributes_to_knowledge":{"description":"Whether the knowledge layer may read this conversation. A project it is filed onto can still refuse.","type":"boolean"},"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"forked_from_conversation_id":{"format":"uuid","type":"string"},"forked_from_seq":{"format":"int64","type":"integer"},"id":{"format":"uuid","type":"string"},"next_seq":{"description":"The sequence number the next appended turn will receive.","format":"int64","type":"integer"},"project_id":{"format":"uuid","type":"string"},"status":{"enum":["active","archived"],"type":"string"},"title":{"type":"string"},"transcript":{"$ref":"#/components/schemas/WorkspaceTranscriptSummary"},"updated_at":{"format":"date-time","type":"string"},"utterance_count":{"description":"Spoken turns only. Lookup stubs are excluded.","format":"int64","type":"integer"}},"required":["id","title","agent_id","status","next_seq","contributes_to_knowledge","utterance_count","created_at","updated_at","created_by"],"type":"object"},"WorkspaceConversationObjections":{"additionalProperties":false,"properties":{"already_raised":{"format":"int64","type":"integer"},"audience":{"description":"private: only the caller can read this conversation, so quotes were included. shared: others can, so they were not.","enum":["private","shared"],"type":"string"},"candidates":{"items":{"$ref":"#/components/schemas/WorkspaceObjectionCandidate"},"type":["array","null"]},"degraded":{"type":"boolean"},"people_to_ask":{"items":{"$ref":"#/components/schemas/WorkspaceObjectionPerson"},"type":["array","null"]},"searched":{"description":"One sentence on what was looked for.","type":"string"},"semantic_available":{"type":"boolean"}},"required":["candidates","people_to_ask","searched","semantic_available","audience","already_raised","degraded"],"type":"object"},"WorkspaceConversationRelated":{"additionalProperties":false,"properties":{"claims":{"items":{"$ref":"#/components/schemas/WorkspaceRelatedClaim"},"type":["array","null"]},"degraded":{"type":"boolean"},"people":{"items":{"$ref":"#/components/schemas/WorkspaceRelatedPerson"},"type":["array","null"]},"semantic_available":{"type":"boolean"},"skipped":{"enum":["too_short","redacted"],"type":"string"}},"required":["claims","people","semantic_available","degraded"],"type":"object"},"WorkspaceCoordRef":{"additionalProperties":false,"properties":{"kind":{"enum":["document","evidence","output","decision"],"type":"string"},"label":{"type":"string"},"ref":{"type":"string"}},"required":["kind","ref"],"type":"object"},"WorkspaceCoordRefData":{"additionalProperties":false,"properties":{"kind":{"enum":["document","evidence","output","decision"],"type":"string"},"label":{"maxLength":200,"type":"string"},"ref":{"maxLength":500,"minLength":1,"type":"string"}},"required":["kind","ref"],"type":"object"},"WorkspaceCoverage":{"additionalProperties":false,"properties":{"content_through":{"format":"date-time","type":"string"},"gaps":{"items":{"type":"string"},"type":["array","null"]},"refreshed_at":{"format":"date-time","type":"string"},"sources_checked":{"items":{"type":"string"},"type":["array","null"]},"sparse":{"description":"True when no conversation or meeting activity was found. That is a gap in what was read, not evidence the person has no work.","type":"boolean"},"watermark_at":{"format":"date-time","type":"string"},"window_from":{"format":"date-time","type":"string"},"window_to":{"format":"date-time","type":"string"}},"required":["sources_checked","gaps","window_from","window_to","sparse"],"type":"object"},"WorkspaceCreateCaseData":{"additionalProperties":false,"properties":{"agent_cost_minor":{"format":"int64","minimum":0,"type":"integer"},"category":{"enum":["recurring_charge_missing","concession_overrun","service_not_posted","other"],"type":"string"},"decision_id":{"format":"uuid","type":"string"},"expected_amount_minor":{"format":"int64","minimum":0,"type":"integer"},"expected_currency":{"pattern":"^[A-Za-z]{3}$","type":"string"},"expected_recurrence":{"enum":["one_time","recurring"],"type":"string"},"identified_amount_minor":{"description":"The apparent gap. Optional at creation, and still only an identification.","format":"int64","minimum":0,"type":"integer"},"issue":{"maxLength":20000,"minLength":1,"type":"string"},"links":{"items":{"$ref":"#/components/schemas/WorkspaceCaseLinkData"},"type":["array","null"]},"next_action":{"maxLength":2000,"type":"string"},"operator_minutes":{"format":"int32","minimum":0,"type":"integer"},"owner":{"maxLength":500,"minLength":1,"type":"string"},"proposed_correction":{"maxLength":20000,"type":"string"},"still_needs_checking":{"maxLength":20000,"type":"string"},"subject_key":{"maxLength":200,"type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"},"verification_due":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"verification_method":{"maxLength":2000,"type":"string"}},"required":["category","title","issue","owner"],"type":"object"},"WorkspaceCreateConversationData":{"additionalProperties":false,"properties":{"agent_id":{"maxLength":200,"minLength":1,"type":"string"},"contributes_to_knowledge":{"description":"Set false to keep this conversation out of the knowledge layer. Defaults to true.","type":"boolean"},"forked_from_conversation_id":{"format":"uuid","type":"string"},"forked_from_seq":{"format":"int64","minimum":1,"type":"integer"},"project_id":{"description":"Omit if the conversation does not belong to a project yet. It is then yours alone until you file it.","format":"uuid","type":"string"},"title":{"maxLength":500,"type":"string"}},"required":["agent_id"],"type":"object"},"WorkspaceCreateFactData":{"additionalProperties":false,"properties":{"blob_name":{"description":"From the upload-url call. The file's markdown becomes the body.","maxLength":512,"type":"string"},"body":{"description":"Markdown. Required unless blob_name is given, in which case markdown is extracted from the uploaded file.","maxLength":400000,"type":"string"},"content_hash":{"description":"SHA-256 of the bytes. Optional, and used for deduplication rather than verification.","pattern":"^[0-9a-f]{64}$","type":"string"},"content_type":{"description":"Required with blob_name: it decides which extractor reads the file.","maxLength":255,"type":"string"},"filename":{"description":"Required with blob_name.","maxLength":255,"type":"string"},"title":{"maxLength":300,"minLength":1,"type":"string"}},"required":["title"],"type":"object"},"WorkspaceCreateFileData":{"additionalProperties":false,"properties":{"blob_name":{"description":"From the upload-url call.","maxLength":512,"minLength":1,"type":"string"},"content_hash":{"description":"SHA-256 of the bytes. Optional, and used for deduplication rather than verification.","pattern":"^[0-9a-f]{64}$","type":"string"},"content_type":{"maxLength":255,"type":"string"},"conversation_id":{"description":"Required for a chat attachment, so the file follows the conversation if it moves.","format":"uuid","type":"string"},"filename":{"maxLength":255,"minLength":1,"type":"string"},"kind":{"description":"Defaults to uploaded.","enum":["uploaded","chat-attachment","saved-output"],"type":"string"}},"required":["blob_name","filename"],"type":"object"},"WorkspaceCreateFileUploadURLData":{"additionalProperties":false,"properties":{"filename":{"description":"Original file name. An extension is required.","maxLength":255,"minLength":1,"type":"string"},"purpose":{"description":"live_recording keeps the write URL valid for six hours, long enough to upload a meeting while it is still being recorded. Absent uses the storage account default.","enum":["live_recording"],"type":"string"}},"required":["filename"],"type":"object"},"WorkspaceCreateGoalCheckinData":{"additionalProperties":false,"properties":{"note":{"description":"One line.","maxLength":500,"minLength":1,"type":"string"},"status":{"description":"How the goal is going. The goal takes this status.","enum":["on_track","at_risk","off_track"],"type":"string"}},"required":["status","note"],"type":"object"},"WorkspaceCreateGoalData":{"additionalProperties":false,"properties":{"how_we_know":{"maxLength":2000,"type":"string"},"lead":{"maxLength":320,"minLength":1,"type":"string"},"outcome":{"maxLength":300,"minLength":1,"type":"string"},"status":{"description":"Defaults to on_track.","enum":["on_track","at_risk","off_track"],"type":"string"},"target_date":{"description":"YYYY-MM-DD. Leave out for an ongoing goal.","type":"string"}},"required":["outcome","lead"],"type":"object"},"WorkspaceCreateHandoffData":{"additionalProperties":false,"properties":{"case_id":{"format":"uuid","type":"string"},"criteria":{"items":{"$ref":"#/components/schemas/WorkspaceCriterionData"},"maxItems":20,"minItems":1,"type":["array","null"]},"evidence":{"items":{"$ref":"#/components/schemas/WorkspaceCoordRefData"},"type":["array","null"]},"item_id":{"format":"uuid","type":"string"},"next_action":{"maxLength":2000,"minLength":1,"type":"string"},"receiver":{"maxLength":500,"minLength":1,"type":"string"},"response_due":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"},"urgency_reason":{"maxLength":2000,"type":"string"}},"required":["receiver","title","next_action","criteria"],"type":"object"},"WorkspaceCreateItemData":{"additionalProperties":false,"properties":{"assignee":{"maxLength":320,"type":"string"},"body":{"maxLength":20000,"type":"string"},"fields":{"additionalProperties":{"type":"string"},"description":"Values for the type's fields, by key.","type":"object"},"goal_id":{"format":"uuid","type":"string"},"kind":{"description":"What older clients send. One of type or kind is required; type wins.","enum":["question","task","note"],"type":"string"},"links":{"items":{"$ref":"#/components/schemas/WorkspaceItemLink"},"maxItems":20,"type":["array","null"]},"origin":{"description":"human, the default, or agent when an assistant wrote it.","type":"string"},"resolution":{"maxLength":20000,"type":"string"},"status_id":{"description":"Defaults to Triage on a product development project, Todo on a general one.","format":"uuid","type":"string"},"target_date":{"description":"YYYY-MM-DD.","type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"},"type":{"description":"A type slug from GET /v1/item-types.","maxLength":32,"type":"string"}},"required":["title"],"type":"object"},"WorkspaceCreateMeetingData":{"additionalProperties":false,"properties":{"contributes_to_knowledge":{"type":"boolean"},"device_serial":{"description":"The serial number of the recorder this was captured on. Stored upper case. Omit for a meeting that was not captured on a device.","maxLength":64,"type":"string"},"document_id":{"description":"A recording or transcript already uploaded to the documents service.","format":"uuid","type":"string"},"ended_at":{"format":"date-time","type":"string"},"external_ref":{"description":"The source's identifier — a Slack channel and thread timestamp, a Zoom meeting id. Repeating one returns the existing record.","maxLength":500,"type":"string"},"kind":{"enum":["meeting","thread"],"type":"string"},"live":{"description":"The recording is starting now and will send its audio a slice at a time through the audio-slices endpoint. Sets transcription_status to live, which is the only state that accepts slices.","type":"boolean"},"live_slices":{"description":"How many slices were sent, supplied with document_id when closing a live recording. Every slice accounted for means the live transcript is final and the file is stored without being read again. Anything missing means the whole file is transcribed and replaces it. Omit to have the file transcribed in the ordinary way.","format":"int32","minimum":1,"type":"integer"},"occurred_at":{"description":"When it started. Defaults to now.","format":"date-time","type":"string"},"participants":{"description":"Who was there, if the source says so up front. Speakers are added automatically as lines arrive.","items":{"$ref":"#/components/schemas/WorkspaceCreateParticipantData"},"type":["array","null"]},"project_ids":{"items":{"format":"uuid","type":"string"},"type":["array","null"]},"series_ref":{"description":"The source's key for the recurring series this occurrence belongs to — a Zoom meeting number, which every occurrence of one recurring meeting shares. Not identity: external_ref is. Omit for an ad-hoc call.","maxLength":200,"type":"string"},"source":{"enum":["manual","slack","zoom","import","document","github","azuredevops","plaud","phone","coding_plan","flow_tools","email"],"type":"string"},"title":{"maxLength":300,"minLength":1,"type":"string"}},"required":["kind","source","title"],"type":"object"},"WorkspaceCreateNoteData":{"additionalProperties":false,"properties":{"body":{"description":"Markdown.","maxLength":400000,"minLength":1,"type":"string"},"contributes_to_knowledge":{"description":"Defaults to true.","type":"boolean"},"occurred_at":{"description":"When the thing you are writing about happened, if that is not now.","format":"date-time","type":"string"},"project_ids":{"description":"File it as you write it. You need editor on each. Omit to leave it unfiled.","items":{"format":"uuid","type":"string"},"type":["array","null"]},"title":{"maxLength":300,"minLength":1,"type":"string"}},"required":["title","body"],"type":"object"},"WorkspaceCreateOutputUploadData":{"additionalProperties":false,"properties":{"bytes":{"format":"int64","type":"integer"},"filename":{"maxLength":255,"minLength":1,"type":"string"},"media_type":{"type":"string"},"sha256":{"type":"string"}},"required":["filename"],"type":"object"},"WorkspaceCreateParticipantData":{"additionalProperties":false,"properties":{"display_name":{"maxLength":200,"minLength":1,"type":"string"},"external_id":{"maxLength":200,"type":"string"},"principal_id":{"maxLength":500,"type":"string"},"role":{"enum":["organizer","participant","observer"],"type":"string"}},"required":["display_name"],"type":"object"},"WorkspaceCreateProjectData":{"additionalProperties":false,"properties":{"contributes_to_knowledge":{"type":"boolean"},"default_practice_slug":{"maxLength":100,"type":"string"},"description":{"maxLength":4000,"type":"string"},"goals":{"maxLength":8000,"type":"string"},"instructions":{"maxLength":20000,"type":"string"},"name":{"maxLength":200,"minLength":1,"type":"string"},"template_id":{"description":"Start from a project template. The template's workflow wins over workflow.","format":"uuid","type":"string"},"visibility":{"enum":["listed","unlisted"],"type":"string"},"workflow":{"description":"The statuses and task types the project offers. Defaults to product_development.","enum":["product_development","general"],"type":"string"}},"required":["name"],"type":"object"},"WorkspaceCreateTemplateData":{"additionalProperties":false,"properties":{"data_source_refs":{},"description":{"maxLength":4000,"type":"string"},"goals_template":{"maxLength":8000,"type":"string"},"instructions_template":{"maxLength":20000,"type":"string"},"is_shared":{"type":"boolean"},"name":{"maxLength":200,"minLength":1,"type":"string"},"starter_items":{},"workflow":{"description":"Defaults to product_development.","enum":["product_development","general"],"type":"string"}},"required":["name"],"type":"object"},"WorkspaceCreateUnblockData":{"additionalProperties":false,"properties":{"answer_type":{"enum":["choice","value","document","decision","explain"],"type":"string"},"ask":{"maxLength":2000,"minLength":1,"type":"string"},"criterion_id":{"format":"uuid","type":"string"},"delay_consequence":{"maxLength":2000,"type":"string"},"dependencies":{"items":{"$ref":"#/components/schemas/WorkspaceDependencyData"},"type":["array","null"]},"links":{"items":{"$ref":"#/components/schemas/WorkspaceCoordRefData"},"type":["array","null"]},"options":{"items":{"type":"string"},"type":["array","null"]},"responder":{"maxLength":500,"minLength":1,"type":"string"},"response_due":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"suggested_answer":{"maxLength":2000,"type":"string"},"suggested_rationale":{"maxLength":2000,"type":"string"},"target_id":{"format":"uuid","type":"string"},"target_type":{"enum":["item","case","handoff"],"type":"string"}},"required":["target_type","target_id","responder","ask","answer_type"],"type":"object"},"WorkspaceCreateUnfiledFileData":{"additionalProperties":false,"properties":{"blob_name":{"description":"From the upload-url call.","maxLength":512,"minLength":1,"type":"string"},"content_hash":{"description":"SHA-256 of the bytes. Optional, and used for deduplication rather than verification.","pattern":"^[0-9a-f]{64}$","type":"string"},"content_type":{"maxLength":255,"type":"string"},"conversation_id":{"description":"Attach this blob to an unfiled conversation. Required for kind chat-attachment. A filed conversation uses POST /v1/projects/{id}/files instead.","format":"uuid","type":"string"},"filename":{"maxLength":255,"minLength":1,"type":"string"},"kind":{"description":"Defaults to uploaded, or chat-attachment when conversation_id is set.","enum":["uploaded","chat-attachment"],"type":"string"}},"required":["blob_name","filename"],"type":"object"},"WorkspaceCreateViewData":{"additionalProperties":false,"properties":{"filters":{"$ref":"#/components/schemas/WorkspaceViewFilters"},"group_by":{"description":"Defaults to status.","enum":["status","goal","assignee","type","none"],"type":"string"},"layout":{"enum":["list","board"],"type":"string"},"name":{"maxLength":60,"minLength":1,"type":"string"},"sort":{"description":"Defaults to position.","enum":["position","target_date","updated","created","time_in_status"],"type":"string"},"sort_desc":{"type":"boolean"}},"required":["name","layout"],"type":"object"},"WorkspaceCriterionData":{"additionalProperties":false,"properties":{"body":{"maxLength":2000,"minLength":1,"type":"string"},"id":{"format":"uuid","type":"string"}},"required":["body"],"type":"object"},"WorkspaceCurrencyTotals":{"additionalProperties":false,"properties":{"approved_minor":{"format":"int64","type":"integer"},"collected_attributable_minor":{"format":"int64","type":"integer"},"collected_unattributed_minor":{"format":"int64","type":"integer"},"currency":{"type":"string"},"expected_one_time_minor":{"format":"int64","type":"integer"},"expected_recurring_minor":{"description":"A projection. Not collected cash.","format":"int64","type":"integer"},"identified_minor":{"format":"int64","type":"integer"},"posted_minor":{"format":"int64","type":"integer"}},"required":["currency","identified_minor","approved_minor","posted_minor","collected_attributable_minor","collected_unattributed_minor","expected_one_time_minor","expected_recurring_minor"],"type":"object"},"WorkspaceCursorActivity":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceActivity"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/CursorMeta"}},"required":["data","meta"],"type":"object"},"WorkspaceCursorTurn":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceTurn"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/CursorMeta"}},"required":["data","meta"],"type":"object"},"WorkspaceCursorUtterance":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceUtterance"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/CursorMeta"}},"required":["data","meta"],"type":"object"},"WorkspaceDataAppendedTurn":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceAppendedTurn"}},"required":["data"],"type":"object"},"WorkspaceDataAudioSlice":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceAudioSlice"}},"required":["data"],"type":"object"},"WorkspaceDataAuditRecord":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceAuditRecord"}},"required":["data"],"type":"object"},"WorkspaceDataCase":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceCase"}},"required":["data"],"type":"object"},"WorkspaceDataCaseValue":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceCaseValue"}},"required":["data"],"type":"object"},"WorkspaceDataConversation":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceConversation"}},"required":["data"],"type":"object"},"WorkspaceDataConversationObjections":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceConversationObjections"}},"required":["data"],"type":"object"},"WorkspaceDataConversationRelated":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceConversationRelated"}},"required":["data"],"type":"object"},"WorkspaceDataDataSource":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceDataSource"}},"required":["data"],"type":"object"},"WorkspaceDataDecision":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceDecision"}},"required":["data"],"type":"object"},"WorkspaceDataDigest":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceDigest"}},"required":["data"],"type":"object"},"WorkspaceDataEvidenceRecord":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceEvidenceRecord"}},"required":["data"],"type":"object"},"WorkspaceDataEvidenceRedaction":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceEvidenceRedaction"}},"required":["data"],"type":"object"},"WorkspaceDataEvidenceResults":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceEvidenceResults"}},"required":["data"],"type":"object"},"WorkspaceDataEvidenceTranscript":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceEvidenceTranscript"}},"required":["data"],"type":"object"},"WorkspaceDataExport":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceExport"}},"required":["data"],"type":"object"},"WorkspaceDataFact":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceFact"}},"required":["data"],"type":"object"},"WorkspaceDataFile":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceFile"}},"required":["data"],"type":"object"},"WorkspaceDataFileRead":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceFileRead"}},"required":["data"],"type":"object"},"WorkspaceDataFlowToolsResync":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceFlowToolsResync"}},"required":["data"],"type":"object"},"WorkspaceDataForcedExtraction":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceForcedExtraction"}},"required":["data"],"type":"object"},"WorkspaceDataGoal":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceGoal"}},"required":["data"],"type":"object"},"WorkspaceDataGoalCheckin":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceGoalCheckin"}},"required":["data"],"type":"object"},"WorkspaceDataHandoff":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceHandoff"}},"required":["data"],"type":"object"},"WorkspaceDataItem":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceItem"}},"required":["data"],"type":"object"},"WorkspaceDataItemHistory":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceItemHistory"}},"required":["data"],"type":"object"},"WorkspaceDataJoinRequestRecord":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceJoinRequestRecord"}},"required":["data"],"type":"object"},"WorkspaceDataListCaptureOutcome":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceCaptureOutcome"},"type":["array","null"]}},"required":["data"],"type":"object"},"WorkspaceDataListDataSource":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceDataSource"},"type":["array","null"]}},"required":["data"],"type":"object"},"WorkspaceDataListEvidenceRedaction":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceEvidenceRedaction"},"type":["array","null"]}},"required":["data"],"type":"object"},"WorkspaceDataListFlowToolsResync":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceFlowToolsResync"},"type":["array","null"]}},"required":["data"],"type":"object"},"WorkspaceDataListGoal":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceGoal"},"type":["array","null"]}},"required":["data"],"type":"object"},"WorkspaceDataListHostAdoption":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceHostAdoption"},"type":["array","null"]}},"required":["data"],"type":"object"},"WorkspaceDataListItemStatusDefinition":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceItemStatusDefinition"},"type":["array","null"]}},"required":["data"],"type":"object"},"WorkspaceDataListItemType":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceItemType"},"type":["array","null"]}},"required":["data"],"type":"object"},"WorkspaceDataListJoinRequestRecord":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceJoinRequestRecord"},"type":["array","null"]}},"required":["data"],"type":"object"},"WorkspaceDataListLineSpeaker":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceLineSpeaker"},"type":["array","null"]}},"required":["data"],"type":"object"},"WorkspaceDataListMember":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceMember"},"type":["array","null"]}},"required":["data"],"type":"object"},"WorkspaceDataListNotificationPref":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceNotificationPref"},"type":["array","null"]}},"required":["data"],"type":"object"},"WorkspaceDataListPlaudPerson":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspacePlaudPerson"},"type":["array","null"]}},"required":["data"],"type":"object"},"WorkspaceDataListProjectItemChange":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceProjectItemChange"},"type":["array","null"]}},"required":["data"],"type":"object"},"WorkspaceDataListRedaction":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceRedaction"},"type":["array","null"]}},"required":["data"],"type":"object"},"WorkspaceDataListSeriesCapture":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceSeriesCapture"},"type":["array","null"]}},"required":["data"],"type":"object"},"WorkspaceDataListSpeakerSentiment":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceSpeakerSentiment"},"type":["array","null"]}},"required":["data"],"type":"object"},"WorkspaceDataListSuggestion":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceSuggestion"},"type":["array","null"]}},"required":["data"],"type":"object"},"WorkspaceDataListView":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceView"},"type":["array","null"]}},"required":["data"],"type":"object"},"WorkspaceDataMe":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceMe"}},"required":["data"],"type":"object"},"WorkspaceDataMeKnown":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceMeKnown"}},"required":["data"],"type":"object"},"WorkspaceDataMeetingOccurrence":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceMeetingOccurrence"}},"required":["data"],"type":"object"},"WorkspaceDataMeetingSeen":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceMeetingSeen"}},"required":["data"],"type":"object"},"WorkspaceDataMeetingSummary":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceMeetingSummary"}},"required":["data"],"type":"object"},"WorkspaceDataMeetingSummaryShare":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceMeetingSummaryShare"}},"required":["data"],"type":"object"},"WorkspaceDataMember":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceMember"}},"required":["data"],"type":"object"},"WorkspaceDataMyMeetings":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceMyMeetings"}},"required":["data"],"type":"object"},"WorkspaceDataNotification":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceNotification"}},"required":["data"],"type":"object"},"WorkspaceDataNotificationPref":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceNotificationPref"}},"required":["data"],"type":"object"},"WorkspaceDataObjectionFeedback":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceObjectionFeedback"}},"required":["data"],"type":"object"},"WorkspaceDataOutputUploadTicket":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceOutputUploadTicket"}},"required":["data"],"type":"object"},"WorkspaceDataPack":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspacePack"}},"required":["data"],"type":"object"},"WorkspaceDataPersonContextData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspacePersonContextData"}},"required":["data"],"type":"object"},"WorkspaceDataPersonProfileResult":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspacePersonProfileResult"}},"required":["data"],"type":"object"},"WorkspaceDataPlaudDeviceData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspacePlaudDeviceData"}},"required":["data"],"type":"object"},"WorkspaceDataPlaudUserTokenData":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspacePlaudUserTokenData"}},"required":["data"],"type":"object"},"WorkspaceDataPresentation":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspacePresentation"}},"required":["data"],"type":"object"},"WorkspaceDataPresentationFile":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspacePresentationFile"}},"required":["data"],"type":"object"},"WorkspaceDataProject":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceProject"}},"required":["data"],"type":"object"},"WorkspaceDataProjectChangeSet":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceProjectChangeSet"}},"required":["data"],"type":"object"},"WorkspaceDataReadAllResult":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceReadAllResult"}},"required":["data"],"type":"object"},"WorkspaceDataRecordAgentTurns":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceRecordAgentTurns"}},"required":["data"],"type":"object"},"WorkspaceDataRecordSourceCounts":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceRecordSourceCounts"}},"required":["data"],"type":"object"},"WorkspaceDataRecordStats":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceRecordStats"}},"required":["data"],"type":"object"},"WorkspaceDataRecordedWindow":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceRecordedWindow"}},"required":["data"],"type":"object"},"WorkspaceDataRedaction":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceRedaction"}},"required":["data"],"type":"object"},"WorkspaceDataRefreshResult":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceRefreshResult"}},"required":["data"],"type":"object"},"WorkspaceDataRelatedAction":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceRelatedAction"}},"required":["data"],"type":"object"},"WorkspaceDataSavedOutput":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceSavedOutput"}},"required":["data"],"type":"object"},"WorkspaceDataSavedOutputReceipt":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceSavedOutputReceipt"}},"required":["data"],"type":"object"},"WorkspaceDataSession":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceSession"}},"required":["data"],"type":"object"},"WorkspaceDataSource":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"id":{"format":"uuid","type":"string"},"kind":{"description":"broker-binding or mcp-server.","type":"string"},"label":{"type":"string"},"ref":{"type":"string"}},"required":["id","kind","ref","label","created_at","created_by"],"type":"object"},"WorkspaceDataSpeakerAssignment":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceSpeakerAssignment"}},"required":["data"],"type":"object"},"WorkspaceDataStewardGrant":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceStewardGrant"}},"required":["data"],"type":"object"},"WorkspaceDataSuggestion":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceSuggestion"}},"required":["data"],"type":"object"},"WorkspaceDataTemplate":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceTemplate"}},"required":["data"],"type":"object"},"WorkspaceDataUnblockRequest":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceUnblockRequest"}},"required":["data"],"type":"object"},"WorkspaceDataUploadTicket":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceUploadTicket"}},"required":["data"],"type":"object"},"WorkspaceDataUtterance":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceUtterance"}},"required":["data"],"type":"object"},"WorkspaceDataView":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceView"}},"required":["data"],"type":"object"},"WorkspaceDataVisit":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WorkspaceVisit"}},"required":["data"],"type":"object"},"WorkspaceDecideJoinData":{"additionalProperties":false,"properties":{"approve":{"type":"boolean"}},"required":["approve"],"type":"object"},"WorkspaceDecision":{"additionalProperties":false,"properties":{"approved_by":{"type":"string"},"citation_redacted":{"description":"True when a cited turn was redacted; the rationale stands, the quote is gone.","type":"boolean"},"citations":{},"created_at":{"format":"date-time","type":"string"},"decision_key":{"description":"Stable key. Approving a second decision under the same key supersedes the first.","type":"string"},"id":{"format":"uuid","type":"string"},"proposed_by":{"type":"string"},"rationale":{"type":"string"},"state":{"enum":["proposed","approved","superseded"],"type":"string"},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","decision_key","state","title","rationale","citations","citation_redacted","proposed_by","created_at","updated_at"],"type":"object"},"WorkspaceDependencyData":{"additionalProperties":false,"properties":{"confirmed":{"description":"Omit to confirm. False keeps it a suggestion.","type":"boolean"},"target_id":{"format":"uuid","type":"string"},"target_type":{"enum":["item","case","handoff"],"type":"string"}},"required":["target_type","target_id"],"type":"object"},"WorkspaceDigest":{"additionalProperties":false,"properties":{"cached":{"description":"True when this was served from the cache rather than computed on this request.","type":"boolean"},"content":{"type":"string"},"derived":{"type":"boolean"},"project_id":{"format":"uuid","type":"string"},"through_activity_id":{"format":"uuid","type":"string"}},"required":["project_id","content","cached","derived"],"type":"object"},"WorkspaceDraftPresentationData":{"additionalProperties":false,"properties":{"audience":{"$ref":"#/components/schemas/WorkspaceAudience"},"materials":{"items":{"$ref":"#/components/schemas/WorkspaceMaterial"},"type":["array","null"]},"template_id":{"type":"string"}},"required":["audience","materials"],"type":"object"},"WorkspaceEntity":{"additionalProperties":false,"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"}},"required":["id","name"],"type":"object"},"WorkspaceEnvelopeCursorActivity":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceCursorActivity"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeCursorTurn":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceCursorTurn"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeCursorUtterance":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceCursorUtterance"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataAppendedTurn":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataAppendedTurn"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataAudioSlice":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataAudioSlice"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataAuditRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataAuditRecord"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataCase":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataCase"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataCaseValue":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataCaseValue"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataConversation":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataConversation"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataConversationObjections":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataConversationObjections"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataConversationRelated":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataConversationRelated"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataDataSource":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataDataSource"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataDecision":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataDecision"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataDigest":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataDigest"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataEvidenceRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataEvidenceRecord"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataEvidenceRedaction":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataEvidenceRedaction"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataEvidenceResults":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataEvidenceResults"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataEvidenceTranscript":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataEvidenceTranscript"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataExport":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataExport"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataFact":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataFact"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataFile":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataFile"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataFileRead":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataFileRead"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataFlowToolsResync":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataFlowToolsResync"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataForcedExtraction":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataForcedExtraction"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataGoal":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataGoal"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataGoalCheckin":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataGoalCheckin"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataHandoff":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataHandoff"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataItem":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataItem"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataItemHistory":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataItemHistory"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataJoinRequestRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataJoinRequestRecord"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataListCaptureOutcome":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataListCaptureOutcome"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataListDataSource":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataListDataSource"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataListEvidenceRedaction":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataListEvidenceRedaction"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataListFlowToolsResync":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataListFlowToolsResync"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataListGoal":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataListGoal"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataListHostAdoption":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataListHostAdoption"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataListItemStatusDefinition":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataListItemStatusDefinition"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataListItemType":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataListItemType"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataListJoinRequestRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataListJoinRequestRecord"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataListLineSpeaker":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataListLineSpeaker"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataListMember":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataListMember"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataListNotificationPref":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataListNotificationPref"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataListPlaudPerson":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataListPlaudPerson"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataListProjectItemChange":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataListProjectItemChange"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataListRedaction":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataListRedaction"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataListSeriesCapture":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataListSeriesCapture"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataListSpeakerSentiment":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataListSpeakerSentiment"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataListSuggestion":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataListSuggestion"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataListView":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataListView"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataMe":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataMe"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataMeKnown":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataMeKnown"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataMeetingOccurrence":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataMeetingOccurrence"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataMeetingSeen":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataMeetingSeen"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataMeetingSummary":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataMeetingSummary"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataMeetingSummaryShare":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataMeetingSummaryShare"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataMember":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataMember"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataMyMeetings":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataMyMeetings"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataNotification":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataNotification"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataNotificationPref":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataNotificationPref"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataObjectionFeedback":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataObjectionFeedback"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataOutputUploadTicket":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataOutputUploadTicket"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataPack":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataPack"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataPersonContextData":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataPersonContextData"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataPersonProfileResult":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataPersonProfileResult"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataPlaudDeviceData":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataPlaudDeviceData"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataPlaudUserTokenData":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataPlaudUserTokenData"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataPresentation":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataPresentation"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataPresentationFile":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataPresentationFile"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataProject":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataProject"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataProjectChangeSet":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataProjectChangeSet"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataReadAllResult":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataReadAllResult"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataRecordAgentTurns":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataRecordAgentTurns"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataRecordSourceCounts":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataRecordSourceCounts"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataRecordStats":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataRecordStats"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataRecordedWindow":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataRecordedWindow"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataRedaction":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataRedaction"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataRefreshResult":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataRefreshResult"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataRelatedAction":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataRelatedAction"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataSavedOutput":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataSavedOutput"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataSavedOutputReceipt":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataSavedOutputReceipt"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataSession":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataSession"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataSpeakerAssignment":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataSpeakerAssignment"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataStewardGrant":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataStewardGrant"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataSuggestion":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataSuggestion"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataTemplate":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataTemplate"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataUnblockRequest":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataUnblockRequest"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataUploadTicket":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataUploadTicket"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataUtterance":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataUtterance"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataView":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataView"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopeDataVisit":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspaceDataVisit"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopePageAuditRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspacePageAuditRecord"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopePageCase":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspacePageCase"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopePageConversation":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspacePageConversation"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopePageDecision":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspacePageDecision"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopePageEvidenceRecord":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspacePageEvidenceRecord"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopePageFact":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspacePageFact"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopePageFile":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspacePageFile"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopePageGoalCheckin":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspacePageGoalCheckin"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopePageHandoff":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspacePageHandoff"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopePageItem":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspacePageItem"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopePageMeetingOccurrence":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspacePageMeetingOccurrence"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopePageNotification":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspacePageNotification"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopePagePresentationSummary":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspacePagePresentationSummary"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopePageProject":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspacePageProject"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopePageSavedOutput":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspacePageSavedOutput"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopePageTemplate":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspacePageTemplate"}},"required":["header","payload"],"type":"object"},"WorkspaceEnvelopePageUnblockRequest":{"additionalProperties":false,"properties":{"header":{"$ref":"#/components/schemas/Header"},"payload":{"$ref":"#/components/schemas/WorkspacePageUnblockRequest"}},"required":["header","payload"],"type":"object"},"WorkspaceEvidenceHit":{"additionalProperties":false,"properties":{"author_principal":{"type":"string"},"conversation_id":{"format":"uuid","type":"string"},"conversation_title":{"type":"string"},"occurred_at":{"format":"date-time","type":"string"},"project_id":{"format":"uuid","type":"string"},"rank":{"format":"float","type":"number"},"seq":{"format":"int64","type":"integer"},"snippet":{"description":"Highlighted fragment. Empty for a redacted turn.","type":"string"},"turn_id":{"format":"uuid","type":"string"}},"required":["turn_id","conversation_id","conversation_title","seq","author_principal","occurred_at","rank","snippet"],"type":"object"},"WorkspaceEvidenceParticipant":{"additionalProperties":false,"properties":{"display_name":{"type":"string"},"principal_id":{"description":"Absent for somebody who does not work here.","type":"string"},"role":{"enum":["organizer","participant","observer"],"type":"string"}},"required":["display_name","role"],"type":"object"},"WorkspaceEvidenceRecord":{"additionalProperties":false,"properties":{"author_principal":{"type":"string"},"body":{"description":"Prose, for a note. Meetings, threads, and documents carry their text as utterances.","type":"string"},"contributes_to_knowledge":{"description":"On by default. Off means the company's knowledge layer must not derive anything from this.","type":"boolean"},"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"device_serial":{"description":"The serial number of the recorder this was captured on. Absent for evidence that was not captured on a device.","type":"string"},"document_id":{"description":"A recording or transcript held by the documents service.","format":"uuid","type":"string"},"ended_at":{"format":"date-time","type":"string"},"external_ref":{"description":"The source's own identifier, for anything a connector created.","type":"string"},"id":{"format":"uuid","type":"string"},"kind":{"enum":["note","meeting","thread","document"],"type":"string"},"labels":{"description":"Slugs that group records across sources and projects, such as flow-tools. Labels do not change who may read a record.","items":{"type":"string"},"type":["array","null"]},"next_seq":{"description":"The sequence number the next appended utterance will receive.","format":"int64","type":"integer"},"occurred_at":{"format":"date-time","type":"string"},"participants":{"items":{"$ref":"#/components/schemas/WorkspaceEvidenceParticipant"},"type":["array","null"]},"project_ids":{"description":"Every project this record is filed under. Empty is a real state, not a missing one.","items":{"type":"string"},"type":["array","null"]},"series_ref":{"description":"The recurring series this occurrence belongs to, when the source has one. Every occurrence of a weekly meeting shares it.","type":"string"},"source":{"enum":["manual","slack","zoom","import","document","github","azuredevops","plaud","phone","coding_plan","flow_tools","email"],"type":"string"},"status":{"enum":["active","archived"],"type":"string"},"title":{"type":"string"},"transcription_status":{"description":"What is happening to the words, for a record transcribed from audio. Absent for anything typed. live means slices are still arriving from a running recording. Separate from status, which is archival.","enum":["live","pending","transcribing","transcribed","no_speech","failed"],"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","kind","source","title","author_principal","contributes_to_knowledge","status","occurred_at","next_seq","project_ids","labels","created_at","updated_at","created_by"],"type":"object"},"WorkspaceEvidenceRecordHit":{"additionalProperties":false,"properties":{"author_principal":{"type":"string"},"kind":{"enum":["note","meeting","thread","document"],"type":"string"},"occurred_at":{"format":"date-time","type":"string"},"rank":{"format":"float","type":"number"},"record_id":{"format":"uuid","type":"string"},"snippet":{"type":"string"},"title":{"type":"string"}},"required":["record_id","kind","title","author_principal","occurred_at","rank","snippet"],"type":"object"},"WorkspaceEvidenceRedaction":{"additionalProperties":false,"properties":{"approved_by":{"type":"string"},"completed_at":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"reason":{"type":"string"},"record_id":{"format":"uuid","type":"string"},"requested_at":{"format":"date-time","type":"string"},"requested_by":{"type":"string"},"seq":{"format":"int64","type":"integer"},"state":{"enum":["pending","approved"],"type":"string"},"utterance_id":{"format":"uuid","type":"string"}},"required":["id","record_id","utterance_id","seq","reason","state","requested_by","requested_at"],"type":"object"},"WorkspaceEvidenceResults":{"additionalProperties":false,"properties":{"artifacts":{"items":{"$ref":"#/components/schemas/WorkspaceArtifactHit"},"type":["array","null"]},"records":{"description":"Notes, and the titles of meetings, threads, and documents.","items":{"$ref":"#/components/schemas/WorkspaceEvidenceRecordHit"},"type":["array","null"]},"turns":{"items":{"$ref":"#/components/schemas/WorkspaceEvidenceHit"},"type":["array","null"]},"utterances":{"description":"What was said in a meeting or a thread, or a section of a document.","items":{"$ref":"#/components/schemas/WorkspaceEvidenceUtteranceHit"},"type":["array","null"]}},"required":["turns","artifacts","records","utterances"],"type":"object"},"WorkspaceEvidenceTranscript":{"additionalProperties":false,"properties":{"line_count":{"format":"int64","type":"integer"},"lines_returned":{"format":"int64","type":"integer"},"markdown":{"type":"string"},"record":{"$ref":"#/components/schemas/WorkspaceEvidenceRecord"},"truncated":{"items":{"type":"string"},"type":["array","null"]}},"required":["record","markdown","line_count","lines_returned","truncated"],"type":"object"},"WorkspaceEvidenceUtteranceHit":{"additionalProperties":false,"properties":{"occurred_at":{"format":"date-time","type":"string"},"rank":{"format":"float","type":"number"},"record_id":{"format":"uuid","type":"string"},"record_kind":{"enum":["meeting","thread","document"],"type":"string"},"record_title":{"type":"string"},"seq":{"format":"int64","type":"integer"},"snippet":{"description":"Highlighted fragment. Empty for a redacted line.","type":"string"},"speaker_display":{"type":"string"},"speaker_principal":{"type":"string"},"utterance_id":{"format":"uuid","type":"string"}},"required":["utterance_id","record_id","record_kind","record_title","seq","speaker_display","occurred_at","rank","snippet"],"type":"object"},"WorkspaceExpert":{"additionalProperties":false,"properties":{"principal":{"type":"string"},"score":{"format":"double","type":"number"}},"required":["principal","score"],"type":"object"},"WorkspaceExport":{"additionalProperties":false,"properties":{"conversations":{"items":{"$ref":"#/components/schemas/WorkspaceExportConversation"},"type":["array","null"]},"data_sources":{"items":{"$ref":"#/components/schemas/WorkspaceDataSource"},"type":["array","null"]},"decisions":{"items":{"$ref":"#/components/schemas/WorkspaceDecision"},"type":["array","null"]},"exported_at":{"format":"date-time","type":"string"},"items":{"items":{"$ref":"#/components/schemas/WorkspaceItem"},"type":["array","null"]},"project":{"$ref":"#/components/schemas/WorkspaceProject"},"saved_outputs":{"items":{"$ref":"#/components/schemas/WorkspaceSavedOutput"},"type":["array","null"]},"truncated":{"description":"Human-readable notes about anything a limit cut short. Empty when the export is complete.","items":{"type":"string"},"type":["array","null"]}},"required":["project","conversations","items","decisions","saved_outputs","data_sources","exported_at","truncated"],"type":"object"},"WorkspaceExportConversation":{"additionalProperties":false,"properties":{"id":{"format":"uuid","type":"string"},"markdown":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"}},"required":["id","title","status","markdown"],"type":"object"},"WorkspaceFact":{"additionalProperties":false,"properties":{"body":{"description":"The markdown. Present on every read: a fact is company-wide, so there is nothing to withhold.","type":"string"},"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"document_id":{"description":"The uploaded original in the documents service, when the fact came from a file. The body holds its extracted markdown either way.","format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"status":{"enum":["active","superseded","archived"],"type":"string"},"superseded_by":{"description":"The fact that replaced this one. Present only with status superseded.","format":"uuid","type":"string"},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"updated_by":{"type":"string"}},"required":["id","title","body","status","created_at","updated_at","created_by","updated_by"],"type":"object"},"WorkspaceFile":{"additionalProperties":false,"properties":{"byte_size":{"description":"Size the storage account reported.","format":"int64","type":"integer"},"content_hash":{"description":"SHA-256 the uploader supplied. A claim, not a server-verified property.","type":"string"},"content_type":{"type":"string"},"conversation_id":{"format":"uuid","type":"string"},"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"document_id":{"format":"uuid","type":"string"},"filename":{"type":"string"},"kind":{"enum":["uploaded","chat-attachment","saved-output"],"type":"string"},"owner":{"description":"Who uploaded an unfiled file. Absent once the file belongs to a project.","type":"string"},"project_id":{"description":"Absent on a file uploaded without a project.","format":"uuid","type":"string"}},"required":["document_id","kind","filename","created_at","created_by"],"type":"object"},"WorkspaceFileRead":{"additionalProperties":false,"properties":{"byte_size":{"description":"Size the storage account reported.","format":"int64","type":"integer"},"content_hash":{"description":"SHA-256 the uploader supplied. A claim, not a server-verified property.","type":"string"},"content_type":{"type":"string"},"conversation_id":{"format":"uuid","type":"string"},"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"document_id":{"format":"uuid","type":"string"},"download_url":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"filename":{"type":"string"},"kind":{"enum":["uploaded","chat-attachment","saved-output"],"type":"string"},"owner":{"description":"Who uploaded an unfiled file. Absent once the file belongs to a project.","type":"string"},"project_id":{"description":"Absent on a file uploaded without a project.","format":"uuid","type":"string"}},"required":["download_url","expires_at","document_id","kind","filename","created_at","created_by"],"type":"object"},"WorkspaceFinalizeOutputData":{"additionalProperties":false,"properties":{"classification":{"type":"string"},"extraction":{"enum":["none","candidate","full"],"type":"string"},"filename":{"maxLength":255,"minLength":1,"type":"string"},"idempotency_key":{"type":"string"},"media_type":{"maxLength":255,"minLength":1,"type":"string"},"project_id":{"format":"uuid","type":"string"},"sha256":{"maxLength":64,"minLength":64,"type":"string"},"slug":{"type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"},"upload_token":{"maxLength":512,"minLength":1,"type":"string"}},"required":["upload_token","title","filename","media_type","sha256"],"type":"object"},"WorkspaceFindConversationObjectionsData":{"additionalProperties":false,"properties":{"limit":{"description":"Defaults to 5.","format":"int64","maximum":10,"minimum":1,"type":"integer"},"plan":{"description":"One sentence saying what the person proposes to do. Not stored.","maxLength":1000,"minLength":3,"type":"string"},"turn_seq":{"description":"The person's turn that proposed the plan.","format":"int64","minimum":1,"type":"integer"}},"required":["turn_seq","plan"],"type":"object"},"WorkspaceFindConversationRelatedData":{"additionalProperties":false,"properties":{"limit":{"description":"Defaults to 3.","format":"int64","maximum":5,"minimum":1,"type":"integer"},"turn_seq":{"description":"The caller's own message, already appended.","format":"int64","minimum":1,"type":"integer"}},"required":["turn_seq"],"type":"object"},"WorkspaceFlowToolsResync":{"additionalProperties":false,"properties":{"described":{"format":"int32","type":"integer"},"failed":{"format":"int32","type":"integer"},"finished_at":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"imported":{"format":"int32","type":"integer"},"last_error":{"type":"string"},"last_repo":{"description":"The last repository finished. The next run resumes after it.","type":"string"},"prds":{"format":"int32","type":"integer"},"pulls":{"format":"int32","type":"integer"},"regenerate":{"description":"Whether generated descriptions and product requirements notes that already exist are written again.","type":"boolean"},"repo":{"description":"The one repository to re-sync. Absent means every repository in the organization.","type":"string"},"repos_done":{"format":"int32","type":"integer"},"repos_total":{"description":"Set when the sync starts working on the request.","format":"int32","type":"integer"},"requested_at":{"format":"date-time","type":"string"},"requested_by":{"type":"string"},"started_at":{"format":"date-time","type":"string"},"status":{"enum":["queued","running","done"],"type":"string"},"updated":{"format":"int32","type":"integer"}},"required":["id","regenerate","status","repos_done","pulls","imported","updated","described","prds","failed","requested_at","requested_by"],"type":"object"},"WorkspaceForcedExtraction":{"additionalProperties":false,"properties":{"evidence_id":{"format":"uuid","type":"string"},"job_id":{"description":"The intelligence extract job. Claims appear when it finishes.","format":"uuid","type":"string"}},"required":["evidence_id","job_id"],"type":"object"},"WorkspaceGoal":{"additionalProperties":false,"properties":{"checkin_state":{"description":"due on the project's check-in day when nobody has checked in during the seven days ending that day, overdue from the next day until somebody does, and current otherwise. A goal less than a week old on its check-in day is current. Worked out in New York time. Absent on a closed goal.","enum":["current","due","overdue"],"type":"string"},"closing_note":{"description":"How it ended. Required once the goal is achieved, missed, or dropped.","type":"string"},"contributors":{"description":"Owners of the unarchived tasks linked to this goal.","items":{"type":"string"},"type":["array","null"]},"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"how_we_know":{"type":"string"},"id":{"format":"uuid","type":"string"},"last_checkin_at":{"description":"When the latest check-in was posted. Absent before the first.","format":"date-time","type":"string"},"last_checkin_status":{"description":"The status the latest check-in gave the goal. Absent before the first.","enum":["on_track","at_risk","off_track"],"type":"string"},"lead":{"type":"string"},"next_checkin_on":{"description":"YYYY-MM-DD, a New York date. While the goal is due or overdue, the day its check-in was due; otherwise the next check-in day it will be due on. Absent on a closed goal.","type":"string"},"outcome":{"type":"string"},"project_id":{"format":"uuid","type":"string"},"status":{"enum":["on_track","at_risk","off_track","achieved","missed","dropped"],"type":"string"},"target_date":{"description":"YYYY-MM-DD. Absent means ongoing.","type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","project_id","outcome","lead","status","closing_note","how_we_know","contributors","created_at","updated_at","created_by"],"type":"object"},"WorkspaceGoalCheckin":{"additionalProperties":false,"properties":{"author":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"goal_id":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"note":{"type":"string"},"project_id":{"format":"uuid","type":"string"},"status":{"description":"The status the check-in gave the goal.","enum":["on_track","at_risk","off_track"],"type":"string"},"status_before":{"description":"The goal's status when the check-in was posted.","enum":["on_track","at_risk","off_track"],"type":"string"}},"required":["id","goal_id","project_id","status_before","status","note","author","created_at"],"type":"object"},"WorkspaceHandoff":{"additionalProperties":false,"properties":{"acceptances":{"description":"One receipt per revision. A later revision does not replace an earlier receipt.","items":{"$ref":"#/components/schemas/WorkspaceHandoffAcceptance"},"type":["array","null"]},"cancel_reason":{"type":"string"},"case_id":{"format":"uuid","type":"string"},"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"criteria":{"items":{"$ref":"#/components/schemas/WorkspaceHandoffCriterion"},"type":["array","null"]},"evidence":{"items":{"$ref":"#/components/schemas/WorkspaceCoordRef"},"type":["array","null"]},"history":{"items":{"$ref":"#/components/schemas/WorkspaceHandoffEvent"},"type":["array","null"]},"id":{"format":"uuid","type":"string"},"item_id":{"format":"uuid","type":"string"},"next_action":{"type":"string"},"offered_at":{"format":"date-time","type":"string"},"overdue":{"type":"boolean"},"project_id":{"format":"uuid","type":"string"},"receiver":{"type":"string"},"response_due":{"description":"Calendar date, YYYY-MM-DD. Overdue is calculated from this, not stored as a state.","type":"string"},"revision":{"format":"int32","type":"integer"},"sender":{"type":"string"},"state":{"enum":["draft","offered","changes_requested","accepted","cancelled"],"type":"string"},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"urgency_reason":{"type":"string"}},"required":["id","project_id","sender","receiver","title","next_action","urgency_reason","state","revision","overdue","criteria","evidence","acceptances","history","created_at","updated_at","created_by"],"type":"object"},"WorkspaceHandoffAcceptance":{"additionalProperties":false,"properties":{"accepted_at":{"format":"date-time","type":"string"},"accepted_by":{"type":"string"},"revision":{"format":"int32","type":"integer"}},"required":["revision","accepted_at","accepted_by"],"type":"object"},"WorkspaceHandoffCriterion":{"additionalProperties":false,"properties":{"body":{"type":"string"},"id":{"format":"uuid","type":"string"},"position":{"format":"int32","type":"integer"}},"required":["id","body","position"],"type":"object"},"WorkspaceHandoffEvent":{"additionalProperties":false,"properties":{"actor":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"kind":{"type":"string"},"note":{"type":"string"},"proposed_receiver":{"type":"string"},"revision":{"format":"int32","type":"integer"},"unblock_request_id":{"format":"uuid","type":"string"}},"required":["id","revision","kind","actor","created_at"],"type":"object"},"WorkspaceHostAdoption":{"additionalProperties":false,"properties":{"empty_allowlist":{"format":"int64","type":"integer"},"host_email":{"description":"Empty when the host could not be named. Those meetings are one row, not dropped.","type":"string"},"joined":{"description":"The bot sat in the meeting. A launch that has not finished does not count.","format":"int64","type":"integer"},"launch_failed":{"format":"int64","type":"integer"},"no_host_id":{"format":"int64","type":"integer"},"not_on_allowlist":{"format":"int64","type":"integer"},"opted_out":{"format":"int64","type":"integer"},"percent_joined":{"description":"Joined divided by started, in percent, to one decimal.","format":"double","type":"number"},"started":{"format":"int64","type":"integer"},"transcribed":{"description":"A transcript exists. Includes a meeting the bot is still in, once a line has been written. A finished meeting counts only when its outcome is transcribed.","format":"int64","type":"integer"},"unidentified":{"format":"int64","type":"integer"}},"required":["host_email","started","joined","transcribed","percent_joined","empty_allowlist","no_host_id","unidentified","opted_out","not_on_allowlist","launch_failed"],"type":"object"},"WorkspaceInsight":{"additionalProperties":false,"properties":{"body":{"type":"string"},"epistemicState":{"type":"string"},"id":{"type":"string"},"independentSourceCount":{"format":"int64","type":"integer"},"kind":{"type":"string"},"lastObservedAt":{"format":"date-time","type":"string"},"source":{"type":"string"},"title":{"type":"string"}},"required":["id","kind","title","body","epistemicState","independentSourceCount","lastObservedAt","source"],"type":"object"},"WorkspaceInterest":{"additionalProperties":false,"properties":{"asked_at":{"format":"date-time","type":["string","null"]},"kind":{"enum":["asked","watch","preferred"],"type":"string"},"source_ids":{"items":{"type":"string"},"type":["array","null"]},"topic":{"type":"string"}},"required":["topic","kind","asked_at","source_ids"],"type":"object"},"WorkspaceItem":{"additionalProperties":false,"properties":{"archived_at":{"format":"date-time","type":"string"},"archived_by":{"type":"string"},"assignee":{"type":"string"},"body":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"derived_from":{"description":"Citations back to the turns this was proposed from."},"fields":{"additionalProperties":{"type":"string"},"description":"Values for the fields the type defines, by key.","type":"object"},"goal_id":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"kind":{"enum":["question","task","note"],"type":"string"},"links":{"items":{"$ref":"#/components/schemas/WorkspaceItemLink"},"type":["array","null"]},"origin":{"description":"Who wrote it: human, agent, intelligence, summarizer, or template.","type":"string"},"rank":{"description":"Position in the project; smaller is higher.","format":"int64","type":"integer"},"resolution":{"description":"How it ended. A bug needs one to close.","type":"string"},"resolved_at":{"format":"date-time","type":"string"},"resolved_by":{"type":"string"},"source":{"description":"Who put this here. Summarizer-proposed items are what the follow-through signal counts separately. An agent's or intelligence's task reads summarizer here; origin has the exact value.","enum":["human","summarizer","template"],"type":"string"},"state":{"enum":["open","resolved"],"type":"string"},"status":{"$ref":"#/components/schemas/WorkspaceItemStatus"},"status_changed_at":{"description":"When the task entered its status. Reordering does not change it.","format":"date-time","type":"string"},"target_date":{"description":"Calendar date, YYYY-MM-DD.","type":"string"},"title":{"type":"string"},"type":{"description":"A type slug from GET /v1/item-types.","type":"string"},"updated_at":{"format":"date-time","type":"string"},"updated_by":{"type":"string"},"version":{"description":"The current content version. Send it back with a content edit.","format":"int32","type":"integer"}},"required":["id","kind","state","title","body","source","derived_from","created_at","updated_at","created_by","origin","type","status","status_changed_at","fields","links","rank","version","updated_by"],"type":"object"},"WorkspaceItemChange":{"additionalProperties":false,"properties":{"actor":{"type":"string"},"after":{"type":"string"},"before":{"description":"An id or a short value. Empty means none.","type":"string"},"field":{"description":"status, position, assignee, target_date, archived, or goal.","type":"string"},"occurred_at":{"format":"date-time","type":"string"},"seq":{"format":"int32","type":"integer"}},"required":["seq","field","before","after","actor","occurred_at"],"type":"object"},"WorkspaceItemHistory":{"additionalProperties":false,"properties":{"changes":{"description":"Status, owner, date, archive, goal, and position changes, newest first. At most 200.","items":{"$ref":"#/components/schemas/WorkspaceItemChange"},"type":["array","null"]},"versions":{"description":"Content versions, newest first. At most 200.","items":{"$ref":"#/components/schemas/WorkspaceItemVersion"},"type":["array","null"]}},"required":["versions","changes"],"type":"object"},"WorkspaceItemLink":{"additionalProperties":false,"properties":{"kind":{"description":"conversation, output, decision, pull_request, insight, or url.","maxLength":32,"type":"string"},"label":{"maxLength":200,"type":"string"},"target":{"description":"An id, or a URL for kind url.","maxLength":2000,"minLength":1,"type":"string"}},"required":["kind","target"],"type":"object"},"WorkspaceItemStatus":{"additionalProperties":false,"properties":{"category":{"enum":["backlog","unstarted","started","review","completed","canceled"],"type":"string"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"}},"required":["id","name","category"],"type":"object"},"WorkspaceItemStatusDefinition":{"additionalProperties":false,"properties":{"category":{"enum":["backlog","unstarted","started","review","completed","canceled"],"type":"string"},"description":{"description":"What the status means, in a line a picker can show beside the name.","type":"string"},"id":{"format":"uuid","type":"string"},"is_default":{"description":"Where a task lands in this category when nobody names a status.","type":"boolean"},"name":{"type":"string"},"position":{"format":"int32","type":"integer"}},"required":["id","name","description","category","position","is_default"],"type":"object"},"WorkspaceItemType":{"additionalProperties":false,"properties":{"body_hint":{"description":"The prompt for the free text, shown as its placeholder and readable by agents writing one.","type":"string"},"body_label":{"description":"What a form calls this type's free text: Details, What's happening, Context.","type":"string"},"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"description":{"type":"string"},"enabled":{"type":"boolean"},"evidence_field":{"description":"body, answer, or resolution: the part of a task of this type that can count as company knowledge.","type":"string"},"fields":{"items":{"$ref":"#/components/schemas/WorkspaceItemTypeField"},"type":["array","null"]},"legacy_kind":{"description":"The kind older clients see for this type.","type":"string"},"name":{"type":"string"},"position":{"format":"int32","type":"integer"},"requires_resolution":{"description":"True when closing a task of this type needs a resolution.","type":"boolean"},"slug":{"type":"string"},"title_hint":{"description":"An example title, shown as the title field's placeholder.","type":"string"},"updated_at":{"format":"date-time","type":"string"},"updated_by":{"type":"string"}},"required":["slug","name","description","title_hint","body_label","body_hint","fields","evidence_field","legacy_kind","requires_resolution","enabled","position","created_at","updated_at","created_by","updated_by"],"type":"object"},"WorkspaceItemTypeField":{"additionalProperties":false,"properties":{"key":{"type":"string"},"kind":{"description":"text or long_text.","type":"string"},"label":{"type":"string"},"placeholder":{"description":"An example or prompt for the field. Empty when it needs none.","type":"string"},"required":{"type":"boolean"}},"required":["key","label","kind","required","placeholder"],"type":"object"},"WorkspaceItemVersion":{"additionalProperties":false,"properties":{"body":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"fields":{"additionalProperties":{"type":"string"},"type":"object"},"links":{"items":{"$ref":"#/components/schemas/WorkspaceItemLink"},"type":["array","null"]},"resolution":{"type":"string"},"source":{"description":"Who wrote this version: human, agent, intelligence, summarizer, or template.","type":"string"},"title":{"type":"string"},"type":{"type":"string"},"version":{"format":"int32","type":"integer"}},"required":["version","title","body","type","fields","links","resolution","source","created_at","created_by"],"type":"object"},"WorkspaceJoinRequestRecord":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"decided_at":{"format":"date-time","type":"string"},"decided_by":{"type":"string"},"message":{"type":"string"},"principal_id":{"type":"string"},"state":{"enum":["pending","approved","denied"],"type":"string"}},"required":["principal_id","state","message","created_at"],"type":"object"},"WorkspaceKnownClaim":{"additionalProperties":false,"properties":{"body":{"type":"string"},"epistemic_state":{"type":"string"},"insight_id":{"format":"uuid","type":"string"},"kind":{"type":"string"},"last_observed_at":{"format":"date-time","type":"string"},"practice":{"type":"string"},"quotes":{"items":{"$ref":"#/components/schemas/WorkspaceKnownQuote"},"type":["array","null"]},"title":{"type":"string"}},"required":["insight_id","kind","title","body","epistemic_state","quotes"],"type":"object"},"WorkspaceKnownLink":{"additionalProperties":false,"properties":{"external_id":{"type":"string"},"system":{"type":"string"}},"required":["system","external_id"],"type":"object"},"WorkspaceKnownMention":{"additionalProperties":false,"properties":{"occurred_at":{"format":"date-time","type":"string"},"record_id":{"format":"uuid","type":"string"},"record_kind":{"type":"string"},"record_title":{"type":"string"},"seq":{"format":"int64","type":"integer"},"speaker":{"type":"string"},"speaker_principal":{"type":"string"},"text":{"type":"string"},"you_were_there":{"type":"boolean"}},"required":["text","speaker","occurred_at","record_id","seq","record_title","record_kind","you_were_there"],"type":"object"},"WorkspaceKnownQuote":{"additionalProperties":false,"properties":{"author":{"type":"string"},"occurred_at":{"format":"date-time","type":"string"},"seq":{"format":"int64","type":"integer"},"source_id":{"format":"uuid","type":"string"},"source_kind":{"enum":["evidence","conversation","project"],"type":"string"},"source_title":{"type":"string"},"text":{"type":"string"},"you_were_there":{"type":"boolean"}},"required":["text","author","source_kind","source_id","you_were_there"],"type":"object"},"WorkspaceKnownSaid":{"additionalProperties":false,"properties":{"occurred_at":{"format":"date-time","type":"string"},"source_id":{"type":"string"},"text":{"type":"string"}},"required":["text","source_id"],"type":"object"},"WorkspaceKnownSource":{"additionalProperties":false,"properties":{"conversation_id":{"format":"uuid","type":"string"},"id":{"type":"string"},"kind":{"type":"string"},"occurred_at":{"format":"date-time","type":"string"},"record_id":{"format":"uuid","type":"string"},"seq":{"format":"int64","type":"integer"},"title":{"type":"string"}},"required":["id","kind"],"type":"object"},"WorkspaceKnownThread":{"additionalProperties":false,"properties":{"confidence":{"enum":["inferred","corroborated","user_confirmed"],"type":"string"},"entities":{"items":{"$ref":"#/components/schemas/WorkspaceEntity"},"type":["array","null"]},"goal":{"type":"string"},"id":{"format":"uuid","type":"string"},"last_supported_at":{"format":"date-time","type":"string"},"milestone":{"type":"string"},"relationship":{"enum":["owns","assigned_action","asked_about","committed_to","contributed_to","depends_on","discussed","manages_owner","merely_mentioned"],"type":"string"},"said":{"items":{"$ref":"#/components/schemas/WorkspaceKnownSaid"},"type":["array","null"]},"sources":{"items":{"$ref":"#/components/schemas/WorkspaceSource"},"type":["array","null"]},"state":{"enum":["open","blocked","waiting","done","unknown"],"type":"string"},"topic":{"type":"string"}},"required":["said","id","topic","entities","relationship","goal","milestone","state","last_supported_at","confidence","sources"],"type":"object"},"WorkspaceLegalHoldData":{"additionalProperties":false,"properties":{"hold":{"type":"boolean"},"reason":{"description":"The matter this hold belongs to. Recorded on the event.","maxLength":2000,"minLength":1,"type":"string"}},"required":["hold","reason"],"type":"object"},"WorkspaceLineSpeaker":{"additionalProperties":false,"properties":{"evidence_id":{"type":"string"},"seq":{"format":"int64","type":"integer"},"speaker":{"description":"Lowercased email when the line names one, otherwise the display name.","type":"string"}},"required":["evidence_id","seq","speaker"],"type":"object"},"WorkspaceLinkEvidenceData":{"additionalProperties":false,"properties":{"project_id":{"format":"uuid","type":"string"}},"required":["project_id"],"type":"object"},"WorkspaceMaterial":{"additionalProperties":false,"properties":{"body":{"type":"string"},"claims":{"items":{"$ref":"#/components/schemas/WorkspaceClaim"},"type":["array","null"]},"id":{"type":"string"},"image_ref":{"type":"string"},"internal_note":{"type":"string"},"kind":{"type":"string"},"metrics":{"items":{"$ref":"#/components/schemas/WorkspaceMetricValue"},"type":["array","null"]},"steps":{"items":{"$ref":"#/components/schemas/WorkspaceStep"},"type":["array","null"]},"title":{"type":"string"},"topics":{"items":{"type":"string"},"type":["array","null"]},"visibility":{"type":"string"}},"required":["id","title","kind","visibility"],"type":"object"},"WorkspaceMe":{"additionalProperties":false,"properties":{"is_platform_admin":{"description":"True when this request holds platform-admin powers: a principal in WORKSPACE_PLATFORM_ADMINS, or anyone signed in through DEV_AUTH without a service token. X-Flow-As-Member: true makes this false; it cannot make it true.","type":"boolean"},"principal":{"type":"string"}},"required":["principal","is_platform_admin"],"type":"object"},"WorkspaceMeKnown":{"additionalProperties":false,"properties":{"assigned":{"items":{"$ref":"#/components/schemas/WorkspaceKnownThread"},"type":["array","null"]},"claims":{"items":{"$ref":"#/components/schemas/WorkspaceKnownClaim"},"type":["array","null"]},"claims_available":{"type":"boolean"},"commitments":{"items":{"$ref":"#/components/schemas/WorkspaceCommitment"},"type":["array","null"]},"generated_at":{"format":"date-time","type":"string"},"interests":{"items":{"$ref":"#/components/schemas/WorkspaceInterest"},"type":["array","null"]},"links":{"items":{"$ref":"#/components/schemas/WorkspaceKnownLink"},"type":["array","null"]},"preferences":{"items":{"$ref":"#/components/schemas/WorkspacePreference"},"type":["array","null"]},"profile":{"$ref":"#/components/schemas/WorkspaceProfile"},"recipient":{"$ref":"#/components/schemas/WorkspaceRecipient"},"said_about_you":{"items":{"$ref":"#/components/schemas/WorkspaceKnownMention"},"type":["array","null"]},"sources":{"items":{"$ref":"#/components/schemas/WorkspaceKnownSource"},"type":["array","null"]},"working_on":{"items":{"$ref":"#/components/schemas/WorkspaceKnownThread"},"type":["array","null"]}},"required":["recipient","profile","links","working_on","assigned","commitments","interests","preferences","claims","sources","said_about_you","claims_available","generated_at"],"type":"object"},"WorkspaceMeetingOccurrence":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"ended_at":{"format":"date-time","type":"string"},"external_ref":{"description":"The source's per-occurrence identifier — a Zoom meeting UUID. The same value the evidence record carries when there is one.","type":"string"},"id":{"format":"uuid","type":"string"},"occurred_at":{"format":"date-time","type":"string"},"outcome":{"description":"Why the meeting produced the transcript it did, or did not.","enum":["transcribed","no_speech","opted_out","not_available","failed"],"type":"string"},"participant_count":{"description":"People in the room, bots excluded.","format":"int32","type":"integer"},"record_id":{"description":"The evidence record, when one was opened. Absent means the meeting produced no transcript.","format":"uuid","type":"string"},"removed_by_display":{"description":"The name of the participant who removed the bot, as it appeared in the meeting. Only for chat: Zoom does not report which host or co-host pressed Remove.","type":"string"},"removed_by_external_id":{"description":"Their Zoom user id within the meeting, the same value participants and utterances carry. Only for chat.","type":"string"},"removed_by_principal":{"description":"Their Flow account, when their email resolved to one. Absent for a guest or a participant Zoom gave no email for.","type":"string"},"removed_via":{"description":"How the bot was taken out of the meeting, when somebody did it. chat is a participant typing the leave command; host is the host or a co-host using Zoom's Remove. Absent when nobody removed it.","enum":["chat","host"],"type":"string"},"series_ref":{"description":"The recurring series this occurrence belongs to. Every occurrence of a weekly meeting shares it.","type":"string"},"source":{"enum":["zoom","plaud","phone","import"],"type":"string"},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"utterance_count":{"description":"Lines transcribed. Zero for every outcome other than transcribed.","format":"int32","type":"integer"}},"required":["id","source","external_ref","title","occurred_at","participant_count","utterance_count","outcome","created_at","updated_at"],"type":"object"},"WorkspaceMeetingSeen":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"decision":{"type":"string"},"external_ref":{"type":"string"},"host_email":{"type":"string"},"host_zoom_id":{"type":"string"},"id":{"format":"uuid","type":"string"},"occurred_at":{"format":"date-time","type":"string"},"series_ref":{"type":"string"},"skip_reason":{"type":"string"},"source":{"type":"string"},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","source","external_ref","title","occurred_at","decision","created_at","updated_at"],"type":"object"},"WorkspaceMeetingSummary":{"additionalProperties":false,"properties":{"can_manage":{"description":"Whether the caller may edit, regenerate, or share this summary.","type":"boolean"},"content":{"$ref":"#/components/schemas/WorkspaceMeetingSummaryContent","description":"Present when a summary has been written. A pending summary may still carry the previous version while it is rewritten."},"dropped_items":{"description":"Items the model wrote that the transcript did not support, and were removed.","format":"int32","type":"integer"},"edited_at":{"format":"date-time","type":"string"},"edited_by":{"type":"string"},"emailed_host_at":{"format":"date-time","type":"string"},"error":{"description":"The last failure, on failed, or on pending while a retry waits.","type":"string"},"evidence_id":{"format":"uuid","type":"string"},"host":{"description":"The email of the meeting's host. Empty when nobody can be named.","type":"string"},"model":{"type":"string"},"recipients":{"description":"The host first, then everyone else in the meeting with an email. Only filled for someone who can share.","items":{"type":"string"},"type":["array","null"]},"skip_reason":{"description":"Why there is nothing to summarize. Only on skipped.","enum":["no_transcript","no_speech","transcription_failed","too_short","too_few_words","not_a_meeting","deleted"],"type":"string"},"source_seq":{"description":"The record's next_seq when the summary was written. Lower than the record's current next_seq means lines arrived since.","format":"int64","type":"integer"},"status":{"description":"none means no summary has been asked for: the recording has not finished, or it finished before summaries existed.","enum":["none","pending","running","ready","skipped","failed"],"type":"string"},"updated_at":{"format":"date-time","type":"string"},"version":{"description":"How many summaries have been written for this meeting.","format":"int32","type":"integer"}},"required":["evidence_id","status","version","dropped_items","host","can_manage","recipients"],"type":"object"},"WorkspaceMeetingSummaryChapter":{"additionalProperties":false,"properties":{"source_seqs":{"description":"The transcript lines this covers, by seq.","items":{"format":"int64","type":"integer"},"type":["array","null"]},"start_ms":{"description":"Milliseconds from the start of the meeting to the first line about this topic.","format":"int64","minimum":0,"type":"integer"},"summary":{"maxLength":1000,"type":"string"},"title":{"maxLength":1000,"minLength":1,"type":"string"}},"required":["title","summary","start_ms","source_seqs"],"type":"object"},"WorkspaceMeetingSummaryContent":{"additionalProperties":false,"properties":{"chapters":{"items":{"$ref":"#/components/schemas/WorkspaceMeetingSummaryChapter"},"maxItems":100,"type":["array","null"]},"next_steps":{"description":"Empty when nobody committed to anything.","items":{"$ref":"#/components/schemas/WorkspaceMeetingSummaryNextStep"},"maxItems":100,"type":["array","null"]},"overview":{"maxLength":4000,"minLength":1,"type":"string"}},"required":["overview","next_steps","chapters"],"type":"object"},"WorkspaceMeetingSummaryNextStep":{"additionalProperties":false,"properties":{"due":{"description":"The deadline in the words that were spoken, such as by Friday. Absent when none was said.","maxLength":200,"type":"string"},"owner":{"description":"The speaker who took this on, as the transcript names them. Absent when nobody in particular did.","maxLength":200,"type":"string"},"source_seqs":{"description":"The transcript lines this came from, by seq.","items":{"format":"int64","type":"integer"},"type":["array","null"]},"text":{"maxLength":1000,"minLength":1,"type":"string"}},"required":["text","source_seqs"],"type":"object"},"WorkspaceMeetingSummaryShare":{"additionalProperties":false,"properties":{"failed":{"items":{"type":"string"},"type":["array","null"]},"sent":{"items":{"type":"string"},"type":["array","null"]}},"required":["sent","failed"],"type":"object"},"WorkspaceMember":{"additionalProperties":false,"properties":{"granted_at":{"format":"date-time","type":"string"},"granted_by":{"type":"string"},"principal_id":{"type":"string"},"role":{"enum":["viewer","editor","owner"],"type":"string"}},"required":["principal_id","role","granted_by","granted_at"],"type":"object"},"WorkspaceMetricChange":{"additionalProperties":false,"properties":{"claim_touches":{"items":{"type":"string"},"type":["array","null"]},"name":{"type":"string"},"new_observed":{"type":"string"},"new_period":{"type":"string"},"new_value":{"type":"string"},"old_observed":{"type":"string"},"old_period":{"type":"string"},"old_value":{"type":"string"},"slide_ids":{"items":{"type":"string"},"type":["array","null"]}},"required":["name","old_value","new_value"],"type":"object"},"WorkspaceMetricValue":{"additionalProperties":false,"properties":{"definition":{"type":"string"},"name":{"type":"string"},"numeric":{"format":"double","type":"number"},"observed_on":{"type":"string"},"period":{"type":"string"},"source_id":{"type":"string"},"unit":{"type":"string"},"value":{"type":"string"}},"required":["name","value"],"type":"object"},"WorkspaceMoneyTotal":{"additionalProperties":false,"properties":{"amount_minor":{"format":"int64","type":"integer"},"currency":{"type":"string"}},"required":["currency","amount_minor"],"type":"object"},"WorkspaceMoveConversationData":{"additionalProperties":false,"properties":{"project_id":{"format":"uuid","type":"string"}},"required":["project_id"],"type":"object"},"WorkspaceMoveItemData":{"additionalProperties":false,"properties":{"after_id":{"description":"The task directly above where this one lands.","format":"uuid","type":"string"},"before_id":{"description":"The task directly below where this one lands.","format":"uuid","type":"string"},"resolution":{"description":"Needs version.","maxLength":20000,"type":"string"},"status_id":{"format":"uuid","type":"string"},"version":{"format":"int32","minimum":1,"type":"integer"}},"required":["status_id"],"type":"object"},"WorkspaceMyMeetings":{"additionalProperties":false,"properties":{"ids":{"description":"Meetings whose roster names the caller.","items":{"type":"string"},"type":["array","null"]}},"required":["ids"],"type":"object"},"WorkspaceNote":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"slide_id":{"type":"string"},"text":{"type":"string"}},"required":["kind","text"],"type":"object"},"WorkspaceNotification":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"kind":{"enum":["invite","mention","join_request","join_decided","item_assigned","handoff_offered","handoff_changes","handoff_accepted","unblock_assigned","unblock_answered","unblock_resolved","unblock_due","unblock_digest","insight_disputed","duplicate_effort","review_digest"],"type":"string"},"payload":{"description":"Kind-specific detail. Shape varies by kind; clients should switch on kind."},"project_id":{"description":"Absent for company-wide notifications from the intelligence service.","format":"uuid","type":"string"},"read_at":{"format":"date-time","type":"string"}},"required":["id","kind","payload","created_at"],"type":"object"},"WorkspaceNotificationPref":{"additionalProperties":false,"properties":{"channel":{"enum":["in_app","slack"],"type":"string"},"enabled":{"type":"boolean"},"kind":{"enum":["invite","mention","join_request","join_decided","item_assigned","handoff_offered","handoff_changes","handoff_accepted","unblock_assigned","unblock_answered","unblock_resolved","unblock_due","unblock_digest","insight_disputed","duplicate_effort","review_digest"],"type":"string"},"updated_at":{"description":"Absent when the switch has never been changed, which means it is at its default.","format":"date-time","type":"string"}},"required":["channel","kind","enabled"],"type":"object"},"WorkspaceObjectionCandidate":{"additionalProperties":false,"properties":{"body":{"type":"string"},"body_truncated":{"type":"boolean"},"citation_omitted":{"description":"shared_conversation: quotes are not given to the agent in a conversation others can read, because its reply is saved there.","enum":["restricted","unavailable","none","shared_conversation"],"type":"string"},"contradicts_insight_id":{"format":"uuid","type":"string"},"epistemic_state":{"description":"Say how solid the claim is: disputed, replaced, or confirmed.","type":"string"},"insight_id":{"format":"uuid","type":"string"},"kind":{"type":"string"},"last_observed_at":{"description":"When a source last said it. Say so when it is old.","format":"date-time","type":"string"},"practice":{"$ref":"#/components/schemas/WorkspaceObjectionPractice"},"replaced_by_insight_id":{"format":"uuid","type":"string"},"status":{"type":"string"},"supporting_citation":{"$ref":"#/components/schemas/WorkspaceObjectionCitation"},"title":{"type":"string"},"type":{"enum":["contradicting_claim","replaced_decision","unanswered_question","reported_problem"],"type":"string"}},"required":["insight_id","type","title","body","kind","status","epistemic_state"],"type":"object"},"WorkspaceObjectionCitation":{"additionalProperties":false,"properties":{"author":{"type":"string"},"locator":{"type":"string"},"occurred_at":{"format":"date-time","type":"string"},"quote":{"type":"string"},"quote_truncated":{"type":"boolean"},"source_id":{"type":"string"},"source_kind":{"type":"string"},"source_seq":{"format":"int64","type":"integer"},"support":{"enum":["verified","unverified"],"type":"string"}},"required":["quote","author","locator","support"],"type":"object"},"WorkspaceObjectionFeedback":{"additionalProperties":false,"properties":{"conversation_id":{"format":"uuid","type":"string"},"insight_id":{"format":"uuid","type":"string"},"person":{"type":"string"},"turn_seq":{"format":"int64","type":"integer"},"updated_at":{"format":"date-time","type":"string"},"verdict":{"enum":["useful","already_knew","wrong"],"type":"string"}},"required":["conversation_id","turn_seq","insight_id","person","verdict","updated_at"],"type":"object"},"WorkspaceObjectionPerson":{"additionalProperties":false,"properties":{"insight_count":{"format":"int64","type":"integer"},"principal":{"type":"string"}},"required":["principal","insight_count"],"type":"object"},"WorkspaceObjectionPractice":{"additionalProperties":false,"properties":{"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","slug","name"],"type":"object"},"WorkspaceOutlineSlide":{"additionalProperties":false,"properties":{"evidence_refs":{"items":{"type":"string"},"type":["array","null"]},"gap":{"type":"string"},"id":{"type":"string"},"layout":{"type":"string"},"main_point":{"type":"string"},"metrics":{"items":{"$ref":"#/components/schemas/WorkspaceMetricValue"},"type":["array","null"]},"purpose":{"type":"string"},"supporting":{"items":{"type":"string"},"type":["array","null"]},"visual":{"type":"string"}},"required":["id","purpose","main_point","visual","layout"],"type":"object"},"WorkspaceOutputUploadTicket":{"additionalProperties":false,"properties":{"expires_at":{"type":"string"},"filename":{"type":"string"},"upload_token":{"type":"string"},"upload_url":{"type":"string"}},"required":["upload_url","upload_token","expires_at","filename"],"type":"object"},"WorkspacePack":{"additionalProperties":false,"properties":{"conversations":{"items":{"$ref":"#/components/schemas/WorkspacePackThread"},"type":["array","null"]},"decisions":{"items":{"$ref":"#/components/schemas/WorkspacePackDecision"},"type":["array","null"]},"generated_at":{"format":"date-time","type":"string"},"goals":{"description":"The project's active goals.","items":{"$ref":"#/components/schemas/WorkspacePackGoal"},"type":["array","null"]},"knowledge":{"$ref":"#/components/schemas/WorkspacePackKnowledge"},"open_cases":{"items":{"$ref":"#/components/schemas/WorkspacePackCase"},"type":["array","null"]},"open_items":{"description":"Open, unarchived tasks: backlog first, then not started, started, and in review, each in rank order.","items":{"$ref":"#/components/schemas/WorkspacePackItem"},"type":["array","null"]},"project":{"$ref":"#/components/schemas/WorkspaceProjectSummary"},"saved_outputs":{"items":{"$ref":"#/components/schemas/WorkspacePackOutput"},"type":["array","null"]}},"required":["project","open_items","goals","open_cases","decisions","saved_outputs","conversations","knowledge","generated_at"],"type":"object"},"WorkspacePackCase":{"additionalProperties":false,"properties":{"id":{"format":"uuid","type":"string"},"issue":{"type":"string"},"next_action":{"type":"string"},"owner":{"type":"string"},"status":{"enum":["needs_validation","accepted","in_progress"],"type":"string"},"title":{"type":"string"}},"required":["id","title","status","owner"],"type":"object"},"WorkspacePackDecision":{"additionalProperties":false,"properties":{"approved_by":{"type":"string"},"decided_at":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"rationale":{"type":"string"},"state":{"type":"string"},"title":{"type":"string"}},"required":["id","title","state","decided_at"],"type":"object"},"WorkspacePackGoal":{"additionalProperties":false,"properties":{"checkin_state":{"enum":["current","due","overdue"],"type":"string"},"how_we_know":{"type":"string"},"id":{"format":"uuid","type":"string"},"last_checkin_on":{"description":"YYYY-MM-DD, a New York date. Absent before the first check-in.","type":"string"},"lead":{"type":"string"},"outcome":{"type":"string"},"status":{"enum":["on_track","at_risk","off_track"],"type":"string"},"target_date":{"description":"YYYY-MM-DD. Absent means ongoing.","type":"string"}},"required":["id","outcome","lead","status","checkin_state"],"type":"object"},"WorkspacePackItem":{"additionalProperties":false,"properties":{"age_days":{"format":"double","type":"number"},"assignee":{"type":"string"},"body":{"description":"The first 400 characters.","type":"string"},"category":{"enum":["backlog","unstarted","started","review","completed","canceled"],"type":"string"},"days_in_status":{"description":"Days since the task entered its status.","format":"double","type":"number"},"goal_id":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"kind":{"type":"string"},"status":{"description":"The status name.","type":"string"},"target_date":{"description":"YYYY-MM-DD.","type":"string"},"title":{"type":"string"},"type":{"type":"string"}},"required":["id","kind","title","age_days","days_in_status","type","status","category"],"type":"object"},"WorkspacePackKnowledge":{"additionalProperties":false,"properties":{"company_facts":{"items":{"$ref":"#/components/schemas/WorkspaceInsight"},"type":["array","null"]},"degraded":{"description":"True when the knowledge layer could not be reached. The rest of the pack is complete.","type":"boolean"},"insights":{"items":{"$ref":"#/components/schemas/WorkspaceInsight"},"type":["array","null"]},"open_questions":{"items":{"$ref":"#/components/schemas/WorkspaceInsight"},"type":["array","null"]},"rebuilding":{"description":"True when the knowledge layer is rebuilding this project's pack. The sections are empty for that reason, not because nothing is known. The rest of the pack is complete.","type":"boolean"},"related_work":{"items":{"$ref":"#/components/schemas/WorkspaceRelated"},"type":["array","null"]},"who_knows":{"items":{"$ref":"#/components/schemas/WorkspaceExpert"},"type":["array","null"]}},"required":["insights","open_questions","related_work","who_knows","company_facts","degraded","rebuilding"],"type":"object"},"WorkspacePackOutput":{"additionalProperties":false,"properties":{"bytes":{"format":"int64","type":"integer"},"filename":{"type":"string"},"media_type":{"type":"string"},"output_id":{"format":"uuid","type":"string"},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"url":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["output_id","title","filename","media_type","version","bytes","updated_at","url"],"type":"object"},"WorkspacePackThread":{"additionalProperties":false,"properties":{"id":{"format":"uuid","type":"string"},"status":{"type":"string"},"title":{"type":"string"},"turn_count":{"format":"int64","type":"integer"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","title","status","turn_count","updated_at"],"type":"object"},"WorkspacePageAuditRecord":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceAuditRecord"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"WorkspacePageCase":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceCase"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"WorkspacePageConversation":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceConversation"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"WorkspacePageDecision":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceDecision"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"WorkspacePageEvidenceRecord":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceEvidenceRecord"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"WorkspacePageFact":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceFact"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"WorkspacePageFile":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceFile"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"WorkspacePageGoalCheckin":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceGoalCheckin"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"WorkspacePageHandoff":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceHandoff"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"WorkspacePageItem":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceItem"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"WorkspacePageMeetingOccurrence":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceMeetingOccurrence"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"WorkspacePageNotification":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceNotification"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"WorkspacePagePresentationSummary":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspacePresentationSummary"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"WorkspacePageProject":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceProject"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"WorkspacePageSavedOutput":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceSavedOutput"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"WorkspacePageTemplate":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceTemplate"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"WorkspacePageUnblockRequest":{"additionalProperties":false,"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkspaceUnblockRequest"},"type":["array","null"]},"meta":{"$ref":"#/components/schemas/PageMeta"}},"required":["data","meta"],"type":"object"},"WorkspacePersonContextData":{"additionalProperties":false,"properties":{"commitments":{"items":{"$ref":"#/components/schemas/WorkspaceCommitment"},"type":["array","null"]},"coverage":{"$ref":"#/components/schemas/WorkspaceCoverage"},"generated_at":{"format":"date-time","type":"string"},"interests":{"items":{"$ref":"#/components/schemas/WorkspaceInterest"},"type":["array","null"]},"preferences":{"items":{"$ref":"#/components/schemas/WorkspacePreference"},"type":["array","null"]},"profile":{"$ref":"#/components/schemas/WorkspaceProfile"},"profile_version":{"format":"int64","type":"integer"},"project":{"$ref":"#/components/schemas/WorkspacePack","description":"The project the request is scoped to, present when project_id is given or the conversation is filed on a project. Includes the knowledge sections with their text, not only their status."},"recipient":{"$ref":"#/components/schemas/WorkspaceRecipient"},"threads":{"items":{"$ref":"#/components/schemas/WorkspaceThread"},"type":["array","null"]}},"required":["recipient","profile","threads","interests","commitments","preferences","coverage","profile_version","generated_at"],"type":"object"},"WorkspacePersonPreferenceData":{"additionalProperties":false,"properties":{"scope":{"enum":["assistant","output"],"type":"string"},"text":{"maxLength":500,"minLength":1,"type":"string"}},"required":["text"],"type":"object"},"WorkspacePersonProfileData":{"additionalProperties":false,"properties":{"function":{"maxLength":2000,"type":"string"},"personalization_enabled":{"description":"False stops the context endpoint returning private records and stops the learner reading for this person.","type":"boolean"},"preferences":{"description":"Replaces the preferences the person has stated.","items":{"$ref":"#/components/schemas/WorkspacePersonPreferenceData"},"maxItems":25,"type":"array"},"responsibilities":{"description":"Replaces the responsibilities the person has stated. Stored as user_confirmed.","items":{"type":"string"},"maxItems":25,"type":"array"},"team":{"maxLength":300,"type":"string"},"title":{"maxLength":300,"type":"string"}},"type":"object"},"WorkspacePersonProfileResult":{"additionalProperties":false,"properties":{"personalization_enabled":{"type":"boolean"},"profile":{"$ref":"#/components/schemas/WorkspaceProfile"}},"required":["profile","personalization_enabled"],"type":"object"},"WorkspacePersonRef":{"additionalProperties":false,"properties":{"email":{"type":"string"},"name":{"type":"string"},"title":{"type":"string"}},"required":["name","email","title"],"type":"object"},"WorkspacePlaudDeviceData":{"additionalProperties":false,"properties":{"bound":{"type":"boolean"},"serial":{"type":"string"},"type":{"type":"string"},"user_id":{"type":"string"}},"required":["serial","type","bound","user_id"],"type":"object"},"WorkspacePlaudPerson":{"additionalProperties":false,"properties":{"last_signed_in_at":{"description":"Absent when they have recordings and no recorded sign-in.","format":"date-time","type":"string"},"principal":{"type":"string"},"recordings":{"description":"Recordings the app uploaded in the window. The cloud sync is not included.","format":"int64","type":"integer"},"sign_ins":{"description":"UTC days in the window the person opened the app. A token refresh the same day does not add another.","format":"int64","type":"integer"}},"required":["principal","sign_ins","recordings"],"type":"object"},"WorkspacePlaudUserTokenData":{"additionalProperties":false,"properties":{"access_token":{"type":"string"},"expires_at":{"format":"date-time","type":"string"},"user_id":{"description":"The identifier Plaud holds for this person, which is their Flow principal.","type":"string"}},"required":["access_token","expires_at","user_id"],"type":"object"},"WorkspacePreference":{"additionalProperties":false,"properties":{"scope":{"enum":["assistant","output"],"type":"string"},"text":{"type":"string"}},"required":["text","scope"],"type":"object"},"WorkspacePresentation":{"additionalProperties":false,"properties":{"audience":{"$ref":"#/components/schemas/WorkspaceAudience"},"checks":{"items":{"$ref":"#/components/schemas/WorkspaceNote"},"type":["array","null"]},"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"file_sha256":{"type":"string"},"id":{"format":"uuid","type":"string"},"metric_changes":{"items":{"$ref":"#/components/schemas/WorkspaceMetricChange"},"type":["array","null"]},"metrics":{"items":{"$ref":"#/components/schemas/WorkspaceMetricValue"},"type":["array","null"]},"outline":{"items":{"$ref":"#/components/schemas/WorkspaceOutlineSlide"},"type":["array","null"]},"project_id":{"format":"uuid","type":"string"},"questions":{"items":{"type":"string"},"type":["array","null"]},"render_error":{"type":"string"},"review_notes":{"items":{"type":"string"},"type":["array","null"]},"revision":{"format":"int32","type":"integer"},"shared_revision":{"description":"The revision that was shared. Later drafts do not change it.","format":"int32","type":"integer"},"slides":{"items":{"$ref":"#/components/schemas/WorkspaceSlide"},"type":["array","null"]},"sources":{"items":{"$ref":"#/components/schemas/WorkspaceMaterial"},"type":["array","null"]},"stage":{"type":"string"},"status":{"enum":["draft","shared"],"type":"string"},"template_id":{"type":"string"},"template_version":{"type":"string"},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","project_id","status","revision","created_at","updated_at","created_by","title","template_id","template_version","stage","audience","outline","slides","sources","metrics","checks","questions","review_notes"],"type":"object"},"WorkspacePresentationFile":{"additionalProperties":false,"properties":{"content_base64":{"type":"string"},"filename":{"type":"string"},"media_type":{"type":"string"},"sha256":{"type":"string"}},"required":["filename","media_type","sha256","content_base64"],"type":"object"},"WorkspacePresentationSummary":{"additionalProperties":false,"properties":{"current_revision":{"format":"int32","type":"integer"},"id":{"format":"uuid","type":"string"},"project_id":{"format":"uuid","type":"string"},"shared_revision":{"format":"int32","type":"integer"},"stage":{"type":"string"},"status":{"enum":["draft","shared"],"type":"string"},"template_id":{"type":"string"},"template_version":{"type":"string"},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","project_id","title","template_id","template_version","stage","status","current_revision","updated_at"],"type":"object"},"WorkspaceProfile":{"additionalProperties":false,"properties":{"disputed":{"type":"boolean"},"function":{"type":"string"},"manager":{"$ref":"#/components/schemas/WorkspacePersonRef"},"reports":{"items":{"$ref":"#/components/schemas/WorkspacePersonRef"},"type":["array","null"]},"responsibilities":{"items":{"$ref":"#/components/schemas/WorkspaceResponsibility"},"type":["array","null"]},"team":{"type":"string"},"title":{"type":"string"},"title_source":{"enum":["directory","user","inferred"],"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["title","title_source","team","function","manager","reports","responsibilities","disputed","version"],"type":"object"},"WorkspaceProject":{"additionalProperties":false,"properties":{"checkin_weekday":{"description":"The day of the week goal check-ins are due, 1 (Monday) to 5 (Friday), in New York time.","format":"int32","maximum":5,"minimum":1,"type":"integer"},"contributes_to_knowledge":{"description":"Whether this project's conversations feed the company knowledge layer.","type":"boolean"},"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"default_practice_slug":{"description":"Area of the knowledge graph this project's insights default to.","type":"string"},"description":{"type":"string"},"goals":{"type":"string"},"id":{"format":"uuid","type":"string"},"instructions":{"type":"string"},"kind":{"enum":["project","scratchpad"],"type":"string"},"legal_hold":{"type":"boolean"},"name":{"type":"string"},"status":{"enum":["active","archived"],"type":"string"},"updated_at":{"format":"date-time","type":"string"},"updated_by":{"type":"string"},"visibility":{"enum":["listed","unlisted"],"type":"string"},"workflow":{"description":"The statuses and task types the project offers, from the template it started from.","enum":["product_development","general"],"type":"string"}},"required":["id","name","description","goals","instructions","kind","status","visibility","workflow","contributes_to_knowledge","default_practice_slug","legal_hold","checkin_weekday","created_at","updated_at","created_by","updated_by"],"type":"object"},"WorkspaceProjectChangeSet":{"additionalProperties":false,"properties":{"items":{"description":"Tasks that changed after since, archived ones included, as they are now. Empty without since, and when reset is true.","items":{"$ref":"#/components/schemas/WorkspaceItem"},"type":["array","null"]},"reset":{"description":"True when every task should be reloaded instead of merging items: their positions were renumbered, more than 500 changed, or since is ahead of seq.","type":"boolean"},"seq":{"description":"The project's change counter. Send it as since on the next read.","format":"int64","type":"integer"},"structure_changed":{"description":"True when goals, views, statuses, or the project's settings changed after since. Reload them.","type":"boolean"}},"required":["seq","items","structure_changed","reset"],"type":"object"},"WorkspaceProjectItemChange":{"additionalProperties":false,"properties":{"actor":{"type":"string"},"after":{"type":"string"},"before":{"description":"An id or a short value. Empty means none.","type":"string"},"field":{"description":"status, position, assignee, target_date, archived, or goal.","type":"string"},"item_id":{"format":"uuid","type":"string"},"occurred_at":{"format":"date-time","type":"string"},"seq":{"format":"int32","type":"integer"}},"required":["item_id","seq","field","before","after","actor","occurred_at"],"type":"object"},"WorkspaceProjectSummary":{"additionalProperties":false,"properties":{"description":{"type":"string"},"goals":{"type":"string"},"id":{"format":"uuid","type":"string"},"instructions":{"description":"What the project told agents to do. Carried verbatim: it is the closest thing the pack has to an instruction.","type":"string"},"member_count":{"format":"int64","type":"integer"},"name":{"type":"string"},"practice_slug":{"type":"string"},"status":{"type":"string"}},"required":["id","name","description","goals","instructions","status","member_count"],"type":"object"},"WorkspaceProposeDecisionData":{"additionalProperties":false,"properties":{"citations":{},"decision_key":{"maxLength":200,"minLength":1,"type":"string"},"rationale":{"maxLength":20000,"type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"}},"required":["decision_key","title"],"type":"object"},"WorkspaceRateObjectionData":{"additionalProperties":false,"properties":{"insight_id":{"format":"uuid","type":"string"},"turn_seq":{"description":"The agent's turn that raised the objection.","format":"int64","minimum":1,"type":"integer"},"verdict":{"enum":["useful","already_knew","wrong"],"type":"string"}},"required":["turn_seq","insight_id","verdict"],"type":"object"},"WorkspaceReadAllResult":{"additionalProperties":false,"properties":{"read":{"description":"How many notifications this call marked read. Zero on a replay or an already-empty inbox.","format":"int64","type":"integer"}},"required":["read"],"type":"object"},"WorkspaceReasonCount":{"additionalProperties":false,"properties":{"count":{"format":"int64","type":"integer"},"reason":{"type":"string"}},"required":["reason","count"],"type":"object"},"WorkspaceReassignData":{"additionalProperties":false,"properties":{"expected_revision":{"format":"int32","minimum":1,"type":"integer"},"note":{"maxLength":2000,"type":"string"},"receiver":{"maxLength":500,"minLength":1,"type":"string"}},"required":["expected_revision","receiver"],"type":"object"},"WorkspaceRecipient":{"additionalProperties":false,"properties":{"ambiguous":{"description":"True when the directory could not tell which person this is. No title or manager is asserted.","type":"boolean"},"email":{"type":"string"},"identity_match":{"enum":["none","email","login_link","alias"],"type":"string"},"name":{"type":"string"},"person_id":{"description":"The canonical person in intelligence. Null when the person is unknown or the match is ambiguous.","format":"uuid","type":"string"},"principal_id":{"type":"string"}},"required":["principal_id","email","name","person_id","identity_match","ambiguous"],"type":"object"},"WorkspaceRecordAgentTurns":{"additionalProperties":false,"properties":{"authors":{"items":{"$ref":"#/components/schemas/WorkspaceAgentTurnCount"},"type":"array"},"since":{"format":"date-time","type":"string"}},"required":["since","authors"],"type":"object"},"WorkspaceRecordAmountData":{"additionalProperties":false,"properties":{"amount_minor":{"format":"int64","minimum":0,"type":"integer"},"attributable":{"type":"boolean"},"currency":{"pattern":"^[A-Za-z]{3}$","type":"string"},"note":{"maxLength":2000,"type":"string"},"stage":{"enum":["identified","approved","posted","collected"],"type":"string"}},"required":["stage","amount_minor","currency"],"type":"object"},"WorkspaceRecordOccurrenceData":{"additionalProperties":false,"properties":{"ended_at":{"format":"date-time","type":"string"},"external_ref":{"description":"The source's per-occurrence identifier. Repeating one updates that occurrence rather than adding a second.","maxLength":500,"minLength":1,"type":"string"},"occurred_at":{"description":"When it started. Defaults to now.","format":"date-time","type":"string"},"outcome":{"enum":["transcribed","no_speech","opted_out","not_available","failed"],"type":"string"},"participant_count":{"format":"int32","minimum":0,"type":"integer"},"record_id":{"description":"The evidence record. Required when the outcome is transcribed, and refused otherwise.","format":"uuid","type":"string"},"removed_by_display":{"description":"Who removed it, by the name they had in the meeting. Only with removed_via chat.","maxLength":300,"minLength":1,"type":"string"},"removed_by_external_id":{"description":"Their Zoom user id within the meeting. Only with removed_via chat.","maxLength":200,"minLength":1,"type":"string"},"removed_by_principal":{"description":"Their Flow account, when known. Only with removed_via chat.","maxLength":320,"minLength":1,"type":"string"},"removed_via":{"description":"How the bot was taken out of the meeting, when somebody did it. Omitting it leaves any removal already recorded for this occurrence in place.","enum":["chat","host"],"type":"string"},"series_ref":{"description":"The recurring series. Omit for an ad-hoc call.","maxLength":200,"type":"string"},"source":{"enum":["zoom","plaud","phone","import"],"type":"string"},"title":{"maxLength":300,"minLength":1,"type":"string"},"utterance_count":{"description":"Must be zero unless the outcome is transcribed.","format":"int32","minimum":0,"type":"integer"}},"required":["source","external_ref","title","outcome"],"type":"object"},"WorkspaceRecordSeenData":{"additionalProperties":false,"properties":{"decision":{"enum":["launched","already_recording","skipped","launch_failed","awaiting_host"],"type":"string"},"external_ref":{"description":"zoom: followed by the Zoom meeting UUID. The same key an occurrence uses.","maxLength":500,"minLength":1,"type":"string"},"host_email":{"description":"Lowercased. Omit when the host could not be named.","maxLength":320,"type":"string"},"host_zoom_id":{"maxLength":200,"type":"string"},"occurred_at":{"format":"date-time","type":"string"},"series_ref":{"description":"The Zoom meeting number. Omit for an ad-hoc call.","maxLength":200,"type":"string"},"skip_reason":{"description":"Required when the decision is skipped, and refused otherwise.","enum":["empty_allowlist","no_host_id","unidentified","opted_out","not_on_allowlist"],"type":"string"},"source":{"enum":["zoom"],"type":"string"},"title":{"maxLength":300,"minLength":1,"type":"string"}},"required":["source","external_ref","title","decision"],"type":"object"},"WorkspaceRecordSourceCounts":{"additionalProperties":false,"properties":{"since":{"format":"date-time","type":"string"},"sources":{"items":{"$ref":"#/components/schemas/WorkspaceSourceCount"},"type":"array"}},"required":["since","sources"],"type":"object"},"WorkspaceRecordStats":{"additionalProperties":false,"properties":{"conversations":{"description":"Conversations the caller can see, every status. A platform admin receives every conversation.","format":"int64","type":"integer"},"emails":{"description":"Active emails from the Gmail connector. One message is one record.","format":"int64","type":"integer"},"facts":{"description":"Facts. Company-wide: every caller receives the same count.","format":"int64","type":"integer"},"files_uploaded":{"description":"Distinct uploaded files. A file filed under two projects counts once.","format":"int64","type":"integer"},"phones":{"description":"Active recordings made on the companion app's microphone. One recording is one record.","format":"int64","type":"integer"},"plauds":{"description":"Active Plaud recordings. One recording is one record.","format":"int64","type":"integer"},"slack_messages":{"description":"Lines in active Slack threads. A thread with no lines counts as zero.","format":"int64","type":"integer"},"zoom_meetings":{"description":"Active Zoom meetings. One meeting is one record.","format":"int64","type":"integer"}},"required":["conversations","zoom_meetings","slack_messages","files_uploaded","facts","plauds","phones","emails"],"type":"object"},"WorkspaceRecordedMeeting":{"additionalProperties":false,"properties":{"char_count":{"description":"Characters of transcript. The extraction gate requires 800.","format":"int64","type":"integer"},"duration_seconds":{"format":"int64","type":"integer"},"ended_at":{"format":"date-time","type":"string"},"evidence_id":{"format":"uuid","type":"string"},"host_email":{"description":"The start register when this meeting was seen, otherwise the organizer on the evidence record. Empty when neither names a host.","type":"string"},"human_speakers":{"description":"Distinct human speakers. The extraction gate requires 2.","format":"int64","type":"integer"},"line_count":{"format":"int32","type":"integer"},"occurred_at":{"format":"date-time","type":"string"},"participant_count":{"format":"int32","type":"integer"},"series_ref":{"type":"string"},"title":{"type":"string"}},"required":["evidence_id","host_email","title","occurred_at","participant_count","line_count","char_count","human_speakers"],"type":"object"},"WorkspaceRecordedWindow":{"additionalProperties":false,"properties":{"meetings":{"items":{"$ref":"#/components/schemas/WorkspaceRecordedMeeting"},"type":["array","null"]},"series":{"items":{"$ref":"#/components/schemas/WorkspaceSeriesYield"},"type":["array","null"]}},"required":["meetings","series"],"type":"object"},"WorkspaceRedaction":{"additionalProperties":false,"properties":{"approved_by":{"type":"string"},"completed_at":{"format":"date-time","type":"string"},"conversation_id":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"project_id":{"format":"uuid","type":"string"},"reason":{"type":"string"},"requested_at":{"format":"date-time","type":"string"},"requested_by":{"type":"string"},"seq":{"format":"int64","type":"integer"},"state":{"enum":["pending","approved"],"type":"string"}},"required":["id","conversation_id","seq","reason","state","requested_by","requested_at"],"type":"object"},"WorkspaceRedirectData":{"additionalProperties":false,"properties":{"expected_revision":{"format":"int32","minimum":1,"type":"integer"},"responder":{"maxLength":500,"minLength":1,"type":"string"}},"required":["expected_revision","responder"],"type":"object"},"WorkspaceRefreshResult":{"additionalProperties":false,"properties":{"commitments":{"format":"int64","type":"integer"},"full":{"type":"boolean"},"gaps":{"items":{"type":"string"},"type":["array","null"]},"interests":{"format":"int64","type":"integer"},"preferences":{"format":"int64","type":"integer"},"principal":{"type":"string"},"responsibilities":{"format":"int64","type":"integer"},"review_flags":{"format":"int64","type":"integer"},"revoked":{"format":"int64","type":"integer"},"skipped":{"type":"string"},"threads":{"format":"int64","type":"integer"}},"required":["principal","full","threads","interests","commitments","responsibilities","preferences","revoked","review_flags","gaps"],"type":"object"},"WorkspaceRelated":{"additionalProperties":false,"properties":{"projectId":{"type":"string"},"reason":{"type":"string"},"weight":{"format":"double","type":"number"}},"required":["projectId","reason","weight"],"type":"object"},"WorkspaceRelatedAction":{"additionalProperties":false,"properties":{"action":{"enum":["opened","not_relevant","asked"],"type":"string"},"created_at":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"insight_id":{"format":"uuid","type":"string"},"person_id":{"format":"uuid","type":"string"}},"required":["id","action","created_at"],"type":"object"},"WorkspaceRelatedActionData":{"additionalProperties":false,"properties":{"action":{"enum":["opened","not_relevant","asked"],"type":"string"},"insight_id":{"description":"For opened and not_relevant.","format":"uuid","type":"string"},"person_id":{"description":"For asked.","format":"uuid","type":"string"},"turn_seq":{"description":"The message the panel was showing results for.","format":"int64","minimum":1,"type":"integer"}},"required":["turn_seq","action"],"type":"object"},"WorkspaceRelatedClaim":{"additionalProperties":false,"properties":{"body":{"type":"string"},"body_truncated":{"type":"boolean"},"citation_omitted":{"enum":["restricted","unavailable","none"],"type":"string"},"epistemic_state":{"type":"string"},"insight_id":{"format":"uuid","type":"string"},"kind":{"type":"string"},"last_observed_at":{"format":"date-time","type":"string"},"practice":{"$ref":"#/components/schemas/WorkspaceObjectionPractice"},"supporting_citation":{"$ref":"#/components/schemas/WorkspaceObjectionCitation"},"title":{"type":"string"}},"required":["insight_id","title","body","kind","epistemic_state"],"type":"object"},"WorkspaceRelatedPerson":{"additionalProperties":false,"properties":{"claim_count":{"description":"How many of the claims shown quote them.","format":"int64","type":"integer"},"email":{"type":"string"},"name":{"type":"string"},"person_id":{"format":"uuid","type":"string"},"practices":{"items":{"type":"string"},"type":["array","null"]},"title":{"type":"string"}},"required":["person_id","name","email","practices","claim_count"],"type":"object"},"WorkspaceRenewUploadURLData":{"additionalProperties":false,"properties":{"blob_name":{"description":"From the upload-url call that started this upload.","maxLength":512,"minLength":1,"type":"string"},"filename":{"description":"The same filename as the original call. Documents reads the extension from it.","maxLength":255,"minLength":1,"type":"string"}},"required":["blob_name","filename"],"type":"object"},"WorkspaceReorderViewsData":{"additionalProperties":false,"properties":{"view_ids":{"description":"Every view on the project, each once, in the new order.","items":{"format":"uuid","type":"string"},"maxItems":20,"type":["array","null"]}},"required":["view_ids"],"type":"object"},"WorkspaceRequestJoinData":{"additionalProperties":false,"properties":{"message":{"maxLength":2000,"type":"string"}},"type":"object"},"WorkspaceRequestRedactionData":{"additionalProperties":false,"properties":{"reason":{"maxLength":2000,"minLength":1,"type":"string"}},"required":["reason"],"type":"object"},"WorkspaceRequestUtteranceRedactionData":{"additionalProperties":false,"properties":{"reason":{"maxLength":2000,"minLength":1,"type":"string"}},"required":["reason"],"type":"object"},"WorkspaceResolveSuggestionData":{"additionalProperties":false,"properties":{"state":{"enum":["accepted","dismissed"],"type":"string"}},"required":["state"],"type":"object"},"WorkspaceResponsibility":{"additionalProperties":false,"properties":{"confidence":{"enum":["inferred","corroborated","user_confirmed"],"type":"string"},"source_ids":{"items":{"type":"string"},"type":["array","null"]},"text":{"type":"string"}},"required":["text","confidence","source_ids"],"type":"object"},"WorkspaceRestoreItemData":{"additionalProperties":false,"properties":{"from_version":{"description":"The earlier version to copy.","format":"int32","minimum":1,"type":"integer"},"version":{"description":"The version you read.","format":"int32","minimum":1,"type":"integer"}},"required":["version","from_version"],"type":"object"},"WorkspaceReturnData":{"additionalProperties":false,"properties":{"expected_revision":{"format":"int32","minimum":1,"type":"integer"},"note":{"maxLength":2000,"minLength":1,"type":"string"}},"required":["expected_revision","note"],"type":"object"},"WorkspaceRevisePresentationData":{"additionalProperties":false,"properties":{"audience":{"$ref":"#/components/schemas/WorkspaceAudience"},"bullets":{"items":{"type":"string"},"type":["array","null"]},"keep_positions":{"description":"1-based slide positions to leave unchanged.","items":{"format":"int64","type":"integer"},"type":["array","null"]},"kind":{"enum":["shorten","replace_example","switch_template","update_metrics","adapt_audience","lock","unlock","keep","edit_slide"],"type":"string"},"lock_ids":{"items":{"type":"string"},"type":["array","null"]},"metrics":{"items":{"$ref":"#/components/schemas/WorkspaceMetricValue"},"type":["array","null"]},"replace_from":{"type":"string"},"replace_with":{"type":"string"},"slide_count":{"format":"int64","type":"integer"},"slide_id":{"type":"string"},"template_id":{"type":"string"},"title":{"type":"string"},"unlock_ids":{"items":{"type":"string"},"type":["array","null"]}},"required":["kind"],"type":"object"},"WorkspaceRevisionData":{"additionalProperties":false,"properties":{"expected_revision":{"format":"int32","minimum":1,"type":"integer"}},"required":["expected_revision"],"type":"object"},"WorkspaceSaveConversationOutputData":{"additionalProperties":false,"properties":{"classification":{"type":"string"},"content":{"type":"string"},"content_base64":{"type":"string"},"extraction":{"enum":["none","candidate","full"],"type":"string"},"filename":{"maxLength":255,"minLength":1,"type":"string"},"idempotency_key":{"type":"string"},"media_type":{"maxLength":255,"minLength":1,"type":"string"},"project_id":{"format":"uuid","type":"string"},"slug":{"type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"}},"required":["title","filename","media_type"],"type":"object"},"WorkspaceSaveOutputData":{"additionalProperties":false,"properties":{"classification":{"type":"string"},"content":{"description":"Inline content. Mutually exclusive with document_id."},"document_id":{"description":"A document in the documents service. Mutually exclusive with content.","format":"uuid","type":"string"},"extraction":{"enum":["none","candidate","full"],"type":"string"},"filename":{"type":"string"},"idempotency_key":{"type":"string"},"kind":{"maxLength":50,"type":"string"},"media_type":{"type":"string"},"slug":{"type":"string"},"source_conversation_id":{"format":"uuid","type":"string"},"source_turn_seq":{"format":"int64","type":"integer"},"title":{"maxLength":500,"minLength":1,"type":"string"}},"required":["title"],"type":"object"},"WorkspaceSavedOutput":{"additionalProperties":false,"properties":{"bytes":{"format":"int64","type":"integer"},"classification":{"type":"string"},"content":{},"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"document_id":{"format":"uuid","type":"string"},"extraction":{"enum":["none","candidate","full"],"type":"string"},"filename":{"type":"string"},"id":{"format":"uuid","type":"string"},"kind":{"type":"string"},"media_type":{"type":"string"},"project_id":{"format":"uuid","type":"string"},"sha256":{"type":"string"},"slug":{"type":"string"},"source_conversation_id":{"format":"uuid","type":"string"},"source_turn_seq":{"format":"int64","type":"integer"},"status":{"enum":["active","superseded","archived"],"type":"string"},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"url":{"type":"string"},"version":{"format":"int64","type":"integer"}},"required":["id","project_id","title","kind","version","status","extraction","created_at","updated_at","created_by"],"type":"object"},"WorkspaceSavedOutputReceipt":{"additionalProperties":false,"properties":{"bytes":{"format":"int64","type":"integer"},"output_id":{"format":"uuid","type":"string"},"sha256":{"type":"string"},"status":{"type":"string"},"turn_seq":{"format":"int64","type":"integer"},"url":{"type":"string"},"version":{"format":"int64","type":"integer"},"warnings":{"items":{"type":"string"},"type":["array","null"]}},"required":["output_id","version","sha256","bytes","url","status","warnings"],"type":"object"},"WorkspaceSeriesCapture":{"additionalProperties":false,"properties":{"first_met":{"format":"date-time","type":"string"},"last_met":{"format":"date-time","type":"string"},"latest_title":{"type":"string"},"missed":{"description":"The difference. No threshold is applied: whether this is a problem is the reader's judgement.","format":"int64","type":"integer"},"occurrences":{"description":"How often this series met.","format":"int64","type":"integer"},"series_ref":{"type":"string"},"transcribed":{"description":"How many of those produced a transcript.","format":"int64","type":"integer"}},"required":["series_ref","latest_title","occurrences","transcribed","missed","first_met","last_met"],"type":"object"},"WorkspaceSeriesYield":{"additionalProperties":false,"properties":{"latest_title":{"type":"string"},"series_ref":{"type":"string"},"started":{"description":"Times Zoom reported this series started in the window. Zero when the transcript predates the start register.","format":"int64","type":"integer"},"transcribed":{"format":"int64","type":"integer"}},"required":["series_ref","latest_title","started","transcribed"],"type":"object"},"WorkspaceSession":{"additionalProperties":false,"properties":{"capture":{"description":"hook means the client guarantees every turn was recorded. Summaries from a best-effort session are not trustworthy the same way.","enum":["hook","best-effort"],"type":"string"},"conversation_id":{"format":"uuid","type":"string"},"ended_at":{"format":"date-time","type":"string"},"ended_reason":{"enum":["client","idle-timeout"],"type":"string"},"id":{"format":"uuid","type":"string"},"last_activity_at":{"format":"date-time","type":"string"},"principal_id":{"type":"string"},"project_id":{"format":"uuid","type":"string"},"source_client":{"type":"string"},"started_at":{"format":"date-time","type":"string"},"transcript":{"$ref":"#/components/schemas/WorkspaceTranscriptSummary"}},"required":["id","conversation_id","principal_id","source_client","capture","started_at","last_activity_at"],"type":"object"},"WorkspaceSetKnowledgeData":{"additionalProperties":false,"properties":{"contributes_to_knowledge":{"type":"boolean"}},"required":["contributes_to_knowledge"],"type":"object"},"WorkspaceSetPrefData":{"additionalProperties":false,"properties":{"channel":{"enum":["in_app","slack"],"type":"string"},"enabled":{"type":"boolean"},"kind":{"enum":["invite","mention","join_request","join_decided","item_assigned","handoff_offered","handoff_changes","handoff_accepted","unblock_assigned","unblock_answered","unblock_resolved","unblock_due","unblock_digest","insight_disputed","duplicate_effort","review_digest"],"type":"string"}},"required":["channel","kind","enabled"],"type":"object"},"WorkspaceSetProjectStatusData":{"additionalProperties":false,"properties":{"status":{"enum":["active","archived"],"type":"string"}},"required":["status"],"type":"object"},"WorkspaceShareMeetingSummaryData":{"additionalProperties":false,"properties":{"recipients":{"description":"Emails from the summary's recipients list.","items":{"type":"string"},"maxItems":50,"minItems":1,"type":["array","null"]}},"required":["recipients"],"type":"object"},"WorkspaceSlide":{"additionalProperties":false,"properties":{"actions":{"items":{"type":"string"},"type":["array","null"]},"body":{"type":"string"},"bullets":{"items":{"type":"string"},"type":["array","null"]},"columns":{"items":{"type":"string"},"type":["array","null"]},"context":{"type":"string"},"eyebrow":{"type":"string"},"gap":{"type":"string"},"id":{"type":"string"},"image_ref":{"type":"string"},"layout":{"type":"string"},"locked":{"type":"boolean"},"metrics":{"items":{"$ref":"#/components/schemas/WorkspaceMetricValue"},"type":["array","null"]},"notes":{"type":"string"},"purpose":{"type":"string"},"results":{"items":{"type":"string"},"type":["array","null"]},"rows":{"items":{"$ref":"#/components/schemas/WorkspaceComparisonRow"},"type":["array","null"]},"source_refs":{"items":{"type":"string"},"type":["array","null"]},"steps":{"items":{"$ref":"#/components/schemas/WorkspaceStep"},"type":["array","null"]},"subtitle":{"type":"string"},"title":{"type":"string"}},"required":["id","layout","title"],"type":"object"},"WorkspaceSnoozeData":{"additionalProperties":false,"properties":{"expected_revision":{"format":"int32","minimum":1,"type":"integer"},"until":{"format":"date-time","type":"string"}},"required":["expected_revision","until"],"type":"object"},"WorkspaceSource":{"additionalProperties":false,"properties":{"id":{"type":"string"},"kind":{"enum":["conversation_turn","slack","zoom","document","project_item","pull_request"],"type":"string"},"occurred_at":{"format":"date-time","type":"string"},"ref":{"type":"string"}},"required":["id","kind","occurred_at","ref"],"type":"object"},"WorkspaceSourceCount":{"additionalProperties":false,"properties":{"count":{"description":"Lines of text, where a line is the text at 100 characters wide plus each line break. Notes count the lines of their body. Email, documents, coding plans, Slack, Zoom, Plaud, and Phone count the lines written on the record.","format":"int64","type":"integer"},"live":{"description":"Recordings from this source still being made that started in the last hour. Zero for a source that does not record.","format":"int64","type":"integer"},"source":{"description":"The evidence source: manual, slack, zoom, import, document, github, azuredevops, plaud, phone, coding_plan, flow_tools, or email.","type":"string"}},"required":["source","count","live"],"type":"object"},"WorkspaceSpeakerAssignment":{"additionalProperties":false,"properties":{"assigned":{"format":"int64","type":"integer"},"display":{"type":"string"},"entity_id":{"format":"uuid","type":"string"},"principal":{"type":"string"},"speaker_external_id":{"type":"string"}},"required":["speaker_external_id","principal","display","assigned"],"type":"object"},"WorkspaceSpeakerSentiment":{"additionalProperties":false,"properties":{"balance":{"description":"Average line score, from -1 to 1, to three decimals. A line at or above 0.05 is positive, and at or below -0.05 is negative.","format":"double","type":"number"},"day":{"description":"The meeting's start date in America/New_York, YYYY-MM-DD.","type":"string"},"lines":{"format":"int64","type":"integer"},"meetings":{"description":"Transcribed meetings this person spoke in.","format":"int64","type":"integer"},"negative":{"format":"int64","type":"integer"},"neutral":{"format":"int64","type":"integer"},"positive":{"format":"int64","type":"integer"},"speaker":{"description":"Lowercased email when the line names one, otherwise the display name. Empty when neither is set.","type":"string"}},"required":["speaker","day","lines","positive","negative","neutral","meetings","balance"],"type":"object"},"WorkspaceStartSessionData":{"additionalProperties":false,"properties":{"capture":{"enum":["hook","best-effort"],"type":"string"},"source_client":{"maxLength":200,"minLength":1,"type":"string"}},"required":["source_client"],"type":"object"},"WorkspaceStep":{"additionalProperties":false,"properties":{"detail":{"type":"string"},"label":{"type":"string"}},"required":["label"],"type":"object"},"WorkspaceStewardGrant":{"additionalProperties":false,"properties":{"expires_at":{"description":"Absent for permanent membership. Break-glass access always has one.","format":"date-time","type":"string"},"granted_at":{"format":"date-time","type":"string"},"granted_via":{"enum":["invite","break_glass","offboard_transfer"],"type":"string"},"principal":{"type":"string"},"project_id":{"format":"uuid","type":"string"},"reason":{"type":"string"},"role":{"enum":["viewer","editor","owner"],"type":"string"}},"required":["project_id","principal","role","granted_via","granted_at"],"type":"object"},"WorkspaceSubjectOverlap":{"additionalProperties":false,"properties":{"counted_case_id":{"format":"uuid","type":"string"},"excluded_case_ids":{"items":{"type":"string"},"type":["array","null"]},"subject_key":{"type":"string"}},"required":["subject_key","counted_case_id","excluded_case_ids"],"type":"object"},"WorkspaceSuggestion":{"additionalProperties":false,"properties":{"confidence":{"format":"double","type":"number"},"created_at":{"format":"date-time","type":"string"},"project_id":{"format":"uuid","type":"string"},"rationale":{"type":"string"},"state":{"enum":["proposed","accepted","dismissed"],"type":"string"}},"required":["project_id","state","confidence","rationale","created_at"],"type":"object"},"WorkspaceSupersedeData":{"additionalProperties":false,"properties":{"expected_revision":{"format":"int32","minimum":1,"type":"integer"},"replacement":{"$ref":"#/components/schemas/WorkspaceCreateUnblockData"}},"required":["expected_revision","replacement"],"type":"object"},"WorkspaceSupersedeFactData":{"additionalProperties":false,"properties":{"superseded_by":{"description":"The fact that replaces this one. Record it first.","format":"uuid","type":"string"}},"required":["superseded_by"],"type":"object"},"WorkspaceTemplate":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"created_by":{"description":"system for the built-in templates.","type":"string"},"data_source_refs":{},"description":{"type":"string"},"goals_template":{"type":"string"},"id":{"format":"uuid","type":"string"},"instructions_template":{"type":"string"},"is_shared":{"type":"boolean"},"name":{"type":"string"},"starter_items":{},"workflow":{"description":"The statuses and task types a project started from this template offers.","enum":["product_development","general"],"type":"string"}},"required":["id","name","description","goals_template","instructions_template","starter_items","data_source_refs","is_shared","workflow","created_at","created_by"],"type":"object"},"WorkspaceThread":{"additionalProperties":false,"properties":{"confidence":{"enum":["inferred","corroborated","user_confirmed"],"type":"string"},"entities":{"items":{"$ref":"#/components/schemas/WorkspaceEntity"},"type":["array","null"]},"goal":{"type":"string"},"id":{"format":"uuid","type":"string"},"last_supported_at":{"format":"date-time","type":"string"},"milestone":{"type":"string"},"relationship":{"enum":["owns","assigned_action","asked_about","committed_to","contributed_to","depends_on","discussed","manages_owner","merely_mentioned"],"type":"string"},"sources":{"items":{"$ref":"#/components/schemas/WorkspaceSource"},"type":["array","null"]},"state":{"enum":["open","blocked","waiting","done","unknown"],"type":"string"},"topic":{"type":"string"}},"required":["id","topic","entities","relationship","goal","milestone","state","last_supported_at","confidence","sources"],"type":"object"},"WorkspaceTranscriptSummary":{"additionalProperties":false,"properties":{"lookups":{"format":"int64","type":"integer"},"utterances":{"$ref":"#/components/schemas/WorkspaceUtteranceCounts"},"warning":{"type":["string","null"]}},"required":["utterances","lookups","warning"],"type":"object"},"WorkspaceTransferOwnershipData":{"additionalProperties":false,"properties":{"from":{"description":"The departing member, who is removed.","maxLength":500,"minLength":1,"type":"string"},"reason":{"maxLength":2000,"minLength":1,"type":"string"},"to":{"description":"Who becomes an owner. Raised to owner if already a member.","maxLength":500,"minLength":1,"type":"string"}},"required":["from","to","reason"],"type":"object"},"WorkspaceTransitionCaseData":{"additionalProperties":false,"properties":{"agent_cost_minor":{"format":"int64","minimum":0,"type":"integer"},"dismissal_reason":{"maxLength":2000,"type":"string"},"operator_minutes":{"format":"int32","minimum":0,"type":"integer"},"status":{"enum":["accepted","in_progress","verified","dismissed"],"type":"string"},"verification_method":{"maxLength":2000,"type":"string"}},"required":["status"],"type":"object"},"WorkspaceTurn":{"additionalProperties":false,"properties":{"actor_kind":{"enum":["human","agent","service"],"type":"string"},"author_principal":{"type":"string"},"client_turn_id":{"type":"string"},"id":{"format":"uuid","type":"string"},"in_reply_to_seq":{"format":"int64","type":"integer"},"occurred_at":{"format":"date-time","type":"string"},"on_behalf_of":{"type":"string"},"payload":{},"redacted":{"description":"The content was destroyed by a governed redaction. The turn's position in the record remains.","type":"boolean"},"role":{"enum":["user","assistant","system","command"],"type":"string"},"seq":{"format":"int64","type":"integer"},"session_id":{"format":"uuid","type":"string"},"turn_kind":{"enum":["utterance","lookup","output","system"],"type":"string"}},"required":["id","seq","client_turn_id","role","actor_kind","author_principal","turn_kind","payload","redacted","occurred_at"],"type":"object"},"WorkspaceUnblockDependency":{"additionalProperties":false,"properties":{"confirmed":{"description":"False is a suggestion. It is not counted as work waiting.","type":"boolean"},"target_id":{"format":"uuid","type":"string"},"target_type":{"enum":["item","case","handoff"],"type":"string"}},"required":["target_type","target_id","confirmed"],"type":"object"},"WorkspaceUnblockRequest":{"additionalProperties":false,"properties":{"answer":{"type":"string"},"answer_actor":{"type":"string"},"answer_type":{"enum":["choice","value","document","decision","explain"],"type":"string"},"answered_at":{"format":"date-time","type":"string"},"ask":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"created_by":{"type":"string"},"criterion_id":{"format":"uuid","type":"string"},"decision_id":{"description":"A pointer at a decision. Answering does not approve it.","format":"uuid","type":"string"},"delay_consequence":{"type":"string"},"dependencies":{"items":{"$ref":"#/components/schemas/WorkspaceUnblockDependency"},"type":["array","null"]},"id":{"format":"uuid","type":"string"},"links":{"items":{"$ref":"#/components/schemas/WorkspaceCoordRef"},"type":["array","null"]},"options":{"items":{"type":"string"},"type":["array","null"]},"project_id":{"format":"uuid","type":"string"},"ranking_reason":{"type":"string"},"requester":{"type":"string"},"responder":{"type":"string"},"response_due":{"type":"string"},"responses":{"description":"Earlier answers stay when a request is sent back.","items":{"$ref":"#/components/schemas/WorkspaceUnblockResponse"},"type":["array","null"]},"revision":{"format":"int32","type":"integer"},"snooze_until":{"description":"Hides the request from the short queue. Does not change the due date.","format":"date-time","type":"string"},"source":{"enum":["human","agent"],"type":"string"},"state":{"enum":["open","answered","resolved","withdrawn","superseded"],"type":"string"},"suggested_answer":{"type":"string"},"suggested_rationale":{"type":"string"},"superseded_by":{"format":"uuid","type":"string"},"target_id":{"format":"uuid","type":"string"},"target_type":{"enum":["item","case","handoff"],"type":"string"},"updated_at":{"format":"date-time","type":"string"},"withdraw_reason":{"type":"string"}},"required":["id","project_id","target_type","target_id","requester","responder","source","ask","answer_type","options","delay_consequence","suggested_answer","suggested_rationale","state","revision","dependencies","links","responses","ranking_reason","created_at","updated_at","created_by"],"type":"object"},"WorkspaceUnblockResponse":{"additionalProperties":false,"properties":{"actor":{"type":"string"},"answer":{"type":"string"},"answered_at":{"format":"date-time","type":"string"},"note":{"type":"string"},"revision":{"format":"int32","type":"integer"},"sufficient":{"type":"boolean"}},"required":["revision","answer","actor","answered_at"],"type":"object"},"WorkspaceUpdateCaseData":{"additionalProperties":false,"properties":{"agent_cost_minor":{"format":"int64","minimum":0,"type":"integer"},"category":{"enum":["recurring_charge_missing","concession_overrun","service_not_posted","other"],"type":"string"},"clear_decision":{"type":"boolean"},"clear_expected_amount":{"type":"boolean"},"decision_id":{"format":"uuid","type":"string"},"expected_amount_minor":{"format":"int64","minimum":0,"type":"integer"},"expected_currency":{"pattern":"^[A-Za-z]{3}$","type":"string"},"expected_recurrence":{"enum":["one_time","recurring"],"type":"string"},"issue":{"maxLength":20000,"minLength":1,"type":"string"},"links":{"items":{"$ref":"#/components/schemas/WorkspaceCaseLinkData"},"type":"array"},"next_action":{"maxLength":2000,"type":"string"},"operator_minutes":{"format":"int32","minimum":0,"type":"integer"},"owner":{"maxLength":500,"minLength":1,"type":"string"},"proposed_correction":{"maxLength":20000,"type":"string"},"still_needs_checking":{"maxLength":20000,"type":"string"},"subject_key":{"maxLength":200,"type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"},"verification_due":{"description":"YYYY-MM-DD, or empty to clear.","type":"string"},"verification_method":{"maxLength":2000,"type":"string"}},"type":"object"},"WorkspaceUpdateConversationData":{"additionalProperties":false,"properties":{"contributes_to_knowledge":{"description":"Set false to keep this conversation out of the knowledge layer. What was already derived from it is withdrawn.","type":"boolean"},"status":{"enum":["active","archived"],"type":"string"},"title":{"maxLength":500,"type":"string"}},"type":"object"},"WorkspaceUpdateFactData":{"additionalProperties":false,"properties":{"blob_name":{"description":"A replacement file. Its extracted markdown becomes the new body.","maxLength":512,"type":"string"},"body":{"maxLength":400000,"minLength":1,"type":"string"},"content_hash":{"pattern":"^[0-9a-f]{64}$","type":"string"},"content_type":{"description":"Required with blob_name.","maxLength":255,"type":"string"},"filename":{"description":"Required with blob_name.","maxLength":255,"type":"string"},"title":{"maxLength":300,"minLength":1,"type":"string"}},"type":"object"},"WorkspaceUpdateGoalData":{"additionalProperties":false,"properties":{"closing_note":{"maxLength":2000,"type":"string"},"how_we_know":{"maxLength":2000,"type":"string"},"lead":{"maxLength":320,"minLength":1,"type":"string"},"outcome":{"maxLength":300,"minLength":1,"type":"string"},"status":{"enum":["on_track","at_risk","off_track","achieved","missed","dropped"],"type":"string"},"target_date":{"description":"YYYY-MM-DD, or empty for an ongoing goal.","type":"string"}},"type":"object"},"WorkspaceUpdateHandoffData":{"additionalProperties":false,"properties":{"case_id":{"format":"uuid","type":"string"},"clear_case":{"type":"boolean"},"clear_item":{"type":"boolean"},"criteria":{"items":{"$ref":"#/components/schemas/WorkspaceCriterionData"},"maxItems":20,"minItems":1,"type":["array","null"]},"evidence":{"items":{"$ref":"#/components/schemas/WorkspaceCoordRefData"},"type":["array","null"]},"expected_revision":{"format":"int32","minimum":1,"type":"integer"},"item_id":{"format":"uuid","type":"string"},"next_action":{"maxLength":2000,"minLength":1,"type":"string"},"response_due":{"description":"YYYY-MM-DD, or empty to clear.","type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"},"urgency_reason":{"maxLength":2000,"type":"string"}},"required":["expected_revision","title","next_action","criteria"],"type":"object"},"WorkspaceUpdateItemData":{"additionalProperties":false,"properties":{"after_id":{"description":"Places the task as a move does: the task directly above where it lands.","format":"uuid","type":"string"},"assignee":{"description":"Must be a member of the project. Empty removes the owner.","maxLength":320,"type":"string"},"before_id":{"description":"The task directly below where it lands. Leave both out to keep its place.","format":"uuid","type":"string"},"body":{"maxLength":20000,"type":"string"},"fields":{"additionalProperties":{"type":"string"},"description":"Replaces the field values. Changing the type drops values the new type does not have.","type":"object"},"goal_id":{"description":"A goal on this project, or empty to clear.","type":"string"},"links":{"description":"Replaces the links.","items":{"$ref":"#/components/schemas/WorkspaceItemLink"},"maxItems":20,"type":"array"},"origin":{"description":"Who wrote this content: human, the default, or agent.","type":"string"},"resolution":{"maxLength":20000,"type":"string"},"status_id":{"format":"uuid","type":"string"},"target_date":{"description":"YYYY-MM-DD, or empty to clear.","type":"string"},"title":{"maxLength":200,"minLength":1,"type":"string"},"type":{"maxLength":32,"type":"string"},"version":{"description":"The version you read. Required with title, body, type, fields, links, or resolution.","format":"int32","minimum":1,"type":"integer"}},"type":"object"},"WorkspaceUpdateNoteData":{"additionalProperties":false,"properties":{"body":{"maxLength":400000,"type":"string"},"status":{"enum":["active","archived"],"type":"string"},"title":{"maxLength":300,"minLength":1,"type":"string"}},"type":"object"},"WorkspaceUpdateProjectData":{"additionalProperties":false,"properties":{"checkin_weekday":{"description":"The day of the week goal check-ins are due, 1 (Monday) to 5 (Friday).","format":"int32","maximum":5,"minimum":1,"type":"integer"},"contributes_to_knowledge":{"type":"boolean"},"default_practice_slug":{"maxLength":100,"type":"string"},"description":{"maxLength":4000,"type":"string"},"goals":{"maxLength":8000,"type":"string"},"instructions":{"maxLength":20000,"type":"string"},"name":{"maxLength":200,"minLength":1,"type":"string"},"visibility":{"enum":["listed","unlisted"],"type":"string"}},"type":"object"},"WorkspaceUpdateViewData":{"additionalProperties":false,"properties":{"filters":{"$ref":"#/components/schemas/WorkspaceViewFilters","description":"Replaces the view's filters. An empty object removes them all."},"group_by":{"enum":["status","goal","assignee","type","none"],"type":"string"},"layout":{"enum":["list","board"],"type":"string"},"name":{"maxLength":60,"minLength":1,"type":"string"},"sort":{"enum":["position","target_date","updated","created","time_in_status"],"type":"string"},"sort_desc":{"type":"boolean"},"version":{"description":"The version you read.","format":"int32","minimum":1,"type":"integer"}},"required":["version"],"type":"object"},"WorkspaceUploadTicket":{"additionalProperties":false,"properties":{"blob_name":{"description":"Send this back when recording the file.","type":"string"},"expires_at":{"format":"date-time","type":"string"},"filename":{"type":"string"},"upload_url":{"type":"string"}},"required":["upload_url","expires_at","blob_name","filename"],"type":"object"},"WorkspaceUpsertParticipantsData":{"additionalProperties":false,"properties":{"participants":{"items":{"$ref":"#/components/schemas/WorkspaceCreateParticipantData"},"type":["array","null"]}},"required":["participants"],"type":"object"},"WorkspaceUtterance":{"additionalProperties":false,"properties":{"actor_kind":{"enum":["human","agent","service"],"type":"string"},"client_line_id":{"type":"string"},"id":{"format":"uuid","type":"string"},"occurred_at":{"format":"date-time","type":"string"},"payload":{},"redacted":{"description":"The content was destroyed by a governed redaction. The line's position in the record remains.","type":"boolean"},"seq":{"format":"int64","type":"integer"},"speaker_display":{"type":"string"},"speaker_external_id":{"description":"The source's id for the speaker — a Zoom participant id or a Plaud Speaker N.","type":"string"},"speaker_principal":{"description":"Absent when the speaker is not a Flow person.","type":"string"}},"required":["id","seq","client_line_id","speaker_display","actor_kind","payload","redacted","occurred_at"],"type":"object"},"WorkspaceUtteranceCounts":{"additionalProperties":false,"properties":{"assistant":{"format":"int64","type":"integer"},"user":{"format":"int64","type":"integer"}},"required":["user","assistant"],"type":"object"},"WorkspaceView":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"created_by":{"description":"system for a starting view.","type":"string"},"filters":{"$ref":"#/components/schemas/WorkspaceViewFilters"},"group_by":{"description":"How a list groups its tasks. A board ignores it: its columns are always statuses.","enum":["status","goal","assignee","type","none"],"type":"string"},"id":{"format":"uuid","type":"string"},"layout":{"enum":["list","board"],"type":"string"},"name":{"type":"string"},"position":{"description":"Tab order, smallest first.","format":"int32","type":"integer"},"project_id":{"format":"uuid","type":"string"},"seed_key":{"description":"Which starting view this began as, such as board or bugs. It stays when the view is renamed. Absent for a view someone added.","type":"string"},"sort":{"enum":["position","target_date","updated","created","time_in_status"],"type":"string"},"sort_desc":{"type":"boolean"},"updated_at":{"format":"date-time","type":"string"},"updated_by":{"type":"string"},"version":{"description":"Send it back with an edit. Reordering does not change it.","format":"int32","type":"integer"}},"required":["id","project_id","name","layout","group_by","sort","sort_desc","filters","position","version","created_at","updated_at","created_by","updated_by"],"type":"object"},"WorkspaceViewFilters":{"additionalProperties":false,"properties":{"archived":{"description":"True shows only archived tasks, as archived=true does on GET /items. Absent leaves them out.","type":"boolean"},"assignees":{"description":"People, or none for tasks without an owner. Never me: a view is shared, and showing only your own tasks stays on your device.","items":{"maxLength":320,"type":"string"},"maxItems":50,"type":["array","null"]},"categories":{"items":{"enum":["backlog","unstarted","started","review","completed","canceled"],"type":"string"},"maxItems":50,"type":["array","null"]},"due":{"description":"overdue: open tasks past their target date.","enum":["overdue"],"type":"string"},"goal_ids":{"description":"Goals on the project, or none for tasks without a goal. One deleted later is left out when the view is read.","items":{"type":"string"},"maxItems":50,"type":["array","null"]},"status_ids":{"description":"Statuses the project offers. One retired later is left out when the view is read.","items":{"format":"uuid","type":"string"},"maxItems":50,"type":["array","null"]},"types":{"description":"Task type slugs the project offers.","items":{"maxLength":32,"type":"string"},"maxItems":50,"type":["array","null"]}},"type":"object"},"WorkspaceVisit":{"additionalProperties":false,"properties":{"last_seen_at":{"format":"date-time","type":"string"},"previous_seen_at":{"description":"What \"since I was last here\" reads. Absent on a first visit.","format":"date-time","type":"string"}},"required":["last_seen_at"],"type":"object"},"WorkspaceWithdrawData":{"additionalProperties":false,"properties":{"expected_revision":{"format":"int32","minimum":1,"type":"integer"},"reason":{"maxLength":2000,"minLength":1,"type":"string"}},"required":["expected_revision","reason"],"type":"object"}},"securitySchemes":{"accessToken":{"bearerFormat":"JWT","description":"An access token from Hydra for this service's audience or the platform audience, https://api.flow.internal: a person's token from a first-party app, or a machine client's own.","scheme":"bearer","type":"http"},"identityAdminAppKey":{"description":"The shared key that says the call comes from the user admin app. It opens nothing by itself: it is sent together with the person's token.","in":"header","name":"X-Identity-Admin-App-Key","type":"apiKey"},"identityGrantKey":{"description":"Accepted only when identity runs with APP_ENV=local, for the local setup scripts. Refused everywhere else.","in":"header","name":"X-Identity-Grant-Key","type":"apiKey"},"kratosBasic":{"description":"The user kratos and the shared ensure key as the password. Every call without them is a 401. X-Identity-Ensure-Key is not accepted here.","scheme":"basic","type":"http"},"machineToken":{"bearerFormat":"JWT","description":"A client_credentials access token from Hydra for this service's audience. The client must be an active system principal holding principal-reader at global scope.","scheme":"bearer","type":"http"},"personToken":{"bearerFormat":"JWT","description":"The access token of the person acting, issued by Hydra to the user admin app, flow-users-app, for this service's audience or the platform audience. Sent together with X-Identity-Admin-App-Key.","scheme":"bearer","type":"http"}}},"info":{"title":"Flow Platform API","version":"0.1.0"},"openapi":"3.1.0","paths":{"/v1/account-uses/{used_for}":{"get":{"description":"Returns the account marked for the use in the chart of the legal entity. 404 with code legal_entity_not_found for an unknown legal entity, and 404 with code account_use_not_set when no account in that chart is marked.","operationId":"get-account-use","parameters":[{"in":"path","name":"used_for","required":true,"schema":{"enum":["cash_for_payments"],"type":"string"}},{"explode":false,"in":"query","name":"legal_entity_code","required":true,"schema":{"maxLength":64,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataAccountUse"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Get the account a legal entity uses for a purpose","tags":["chart"]}},"/v1/accounts":{"get":{"operationId":"list-accounts","parameters":[{"explode":false,"in":"query","name":"chart_code","required":true,"schema":{"maxLength":16,"minLength":1,"type":"string"}},{"explode":false,"in":"query","name":"classification","schema":{"enum":["asset","liability","equity","revenue","expense"],"type":"string"}},{"explode":false,"in":"query","name":"active","schema":{"enum":["true","false"],"type":"string"}},{"explode":false,"in":"query","name":"is_postable","schema":{"enum":["true","false"],"type":"string"}},{"explode":false,"in":"query","name":"q","schema":{"maxLength":100,"type":"string"}},{"explode":false,"in":"query","name":"after","schema":{"type":"string"}},{"explode":false,"in":"query","name":"limit","schema":{"default":50,"format":"int64","maximum":200,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountListOutputBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List accounts"},"post":{"operationId":"create-account","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingCommandRequestCreateAccountBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataAccount"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Create an account","tags":["chart"]}},"/v1/accounts/{id}":{"get":{"operationId":"get-account","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataAccount"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Get an account by ID"}},"/v1/accounts/{id}/balance":{"get":{"operationId":"get-account-balance","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"explode":false,"in":"query","name":"legal_entity_id","required":true,"schema":{"type":"string"}},{"description":"Include postings through the end of this post month, YYYY-MM","explode":false,"in":"query","name":"as_of_month","schema":{"description":"Include postings through the end of this post month, YYYY-MM","pattern":"^\\d{4}-(0[1-9]|1[0-2])$","type":"string"}},{"description":"Unsupported; use as_of_month","explode":false,"in":"query","name":"as_of","schema":{"description":"Unsupported; use as_of_month","type":"string"}},{"explode":false,"in":"query","name":"property_id","schema":{"type":"string"}},{"explode":false,"in":"query","name":"unit_id","schema":{"type":"string"}},{"explode":false,"in":"query","name":"lease_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountBalanceOutputBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Get the posted balance for an account scoped to a legal entity"}},"/v1/accounts/{id}/used-for":{"post":{"description":"Makes this account the one used for the given purpose in its chart, taking the use from the account that held it. The account must be an active line account, and an asset account for cash_for_payments. A body account_id, when sent, must equal the account id in the path. A use cannot be cleared, only moved. Setting the use on the account that already holds it changes nothing and writes no event.","operationId":"set-account-use","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingCommandRequestSetAccountUseBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataAccount"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Mark an account for a system use","tags":["chart"]}},"/v1/accounts/tree":{"get":{"operationId":"get-account-tree","parameters":[{"explode":false,"in":"query","name":"chart_code","required":true,"schema":{"maxLength":16,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountTreeOutputBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Get the account hierarchy for a chart"}},"/v1/admin-audit":{"get":{"description":"Every admin audit record, newest first by occurred_at. The person must be allowed identity::ListAdminAudit. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"list-admin-audit","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopePageAdminAuditRecord"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"List admin audit records","tags":["admin-audit"]}},"/v1/admin/flow-tools/resyncs":{"get":{"description":"Platform admin only. Newest first, with progress.","operationId":"list-flow-tools-resyncs","parameters":[{"explode":false,"in":"query","name":"limit","schema":{"default":10,"format":"int64","maximum":50,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataListFlowToolsResync"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List recent Flow Tools re-syncs","tags":["evidence"]},"post":{"description":"Platform admin only. Queues a re-sync of every pull request in every repository of the Flow Tools GitHub organization, or in one. The Flow Tools sync job does the work over its next runs, one repository at a time, and records progress on the request. Answers 202 at once. 409 resync_active while another re-sync is queued or running.","operationId":"request-flow-tools-resync","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestFlowToolsResyncInputBody"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataFlowToolsResync"}}},"description":"Accepted"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Re-sync the Flow Tools repositories","tags":["evidence"]}},"/v1/admin/flows":{"post":{"description":"Enqueues each step of the named flow in the same order the committed workflow file does. The calls themselves are fast; the batch worker still does the work.","operationId":"run-scheduled-flow","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceCommandRequestRunFlowData"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataFlowRun"}}},"description":"Accepted"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Run one Kestra flow by hand","tags":["admin"]}},"/v1/admin/jobs":{"post":{"description":"Puts a row on the queue and returns. The batch worker does the work. A kind that is already pending is rescheduled rather than doubled.","operationId":"run-job","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceCommandRequestRunJobData"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataJobRun"}}},"description":"Accepted"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Enqueue one job the scheduler would have posted","tags":["admin"]}},"/v1/admin/jobs/{id}/expire":{"post":{"description":"For work that is not coming back: a conversation since deleted, or a job superseded by a repair. The row and its error stay readable and the worker never claims it again.","operationId":"expire-dead-job","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataDeadJobAction"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Retire a dead job without running it","tags":["admin"]}},"/v1/admin/jobs/{id}/requeue":{"post":{"description":"Returns the job to the queue with a fresh set of attempts, keeping the error that killed it so a job that fails the same way twice is recognizable. Use it once the cause is fixed. 409 when an equivalent job is already waiting, which means the work is going to run anyway.","operationId":"requeue-dead-job","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataDeadJobAction"}}},"description":"Accepted"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Run a dead job again","tags":["admin"]}},"/v1/admin/jobs/dead":{"get":{"description":"The dead-letter queue, newest failure first, with the error that stopped each job. A job lands here after exhausting its attempts, and nothing retries it on its own.","operationId":"list-dead-jobs","parameters":[{"description":"Only jobs of this kind. One failing dependency dead-letters every job of one kind, so an unfiltered list is mostly that.","explode":false,"in":"query","name":"kind","schema":{"description":"Only jobs of this kind. One failing dependency dead-letters every job of one kind, so an unfiltered list is mostly that.","type":"string"}},{"description":"Only jobs aimed at this kind of thing: project, project_item, project_decision, evidence, conversation.","explode":false,"in":"query","name":"target_kind","schema":{"description":"Only jobs aimed at this kind of thing: project, project_item, project_decision, evidence, conversation.","type":"string"}},{"description":"Only jobs aimed at this record.","explode":false,"in":"query","name":"target_id","schema":{"description":"Only jobs aimed at this record.","type":"string"}},{"description":"Jobs for this project, including extract jobs whose source was observed as belonging to it.","explode":false,"in":"query","name":"project_id","schema":{"description":"Jobs for this project, including extract jobs whose source was observed as belonging to it.","format":"uuid","type":"string"}},{"explode":false,"in":"query","name":"limit","schema":{"default":50,"format":"int32","maximum":200,"minimum":1,"type":"integer"}},{"explode":false,"in":"query","name":"offset","schema":{"default":0,"format":"int32","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataDeadJobList"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Work that failed and stopped retrying","tags":["admin"]}},"/v1/admin/jobs/dead/requeue":{"post":{"description":"The same filters as the dead-letter list, without a page. Each matching job goes back on the queue with a fresh set of attempts. A job whose equivalent is already pending is left in place and counted as skipped, rather than failing the rest.","operationId":"requeue-dead-jobs","parameters":[{"description":"Only jobs of this kind. One failing dependency dead-letters every job of one kind, so an unfiltered list is mostly that.","explode":false,"in":"query","name":"kind","schema":{"description":"Only jobs of this kind. One failing dependency dead-letters every job of one kind, so an unfiltered list is mostly that.","type":"string"}},{"description":"Only jobs aimed at this kind of thing: project, project_item, project_decision, evidence, conversation.","explode":false,"in":"query","name":"target_kind","schema":{"description":"Only jobs aimed at this kind of thing: project, project_item, project_decision, evidence, conversation.","type":"string"}},{"description":"Only jobs aimed at this record.","explode":false,"in":"query","name":"target_id","schema":{"description":"Only jobs aimed at this record.","type":"string"}},{"description":"Jobs for this project, including extract jobs whose source was observed as belonging to it.","explode":false,"in":"query","name":"project_id","schema":{"description":"Jobs for this project, including extract jobs whose source was observed as belonging to it.","format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataDeadJobsRequeue"}}},"description":"Accepted"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Run every matching dead job again","tags":["admin"]}},"/v1/admin/jobs/depth":{"get":{"description":"Pending and claimed counts per kind. The same numbers Kestra records on the maintenance flow.","operationId":"list-job-depth","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListQueueDepthRow"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"What is waiting on the job queue","tags":["admin"]}},"/v1/admin/jobs/health":{"get":{"description":"One row per kind: how many jobs are pending, claimed, done, and dead; how long the oldest due work has waited; how long the current claim has been running; how long successful runs took in the last day; and the latest error on a dead job. A finished job can still carry an old last_error from a retry; that is not shown here. /v1/admin/jobs/depth is still the pending and claimed counts Kestra records.","operationId":"list-job-health","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListQueueKindHealth"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Where the job queue is stuck, and how long each kind takes","tags":["admin"]}},"/v1/admin/projects/{id}/derived-insights/clear":{"post":{"description":"The step before re-deriving a project. Extraction deduplicates on the text it produces, so a better prompt writes new claims beside the old ones instead of replacing them. Only the extractor's own output is touched, and only where every supporting citation is this project's; anything else is counted and reported back. This one does the work inline rather than queueing it.","operationId":"clear-project-derived-insights","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceCommandRequestClearDerivedData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataClearDerived"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Clear what extraction wrote for one project","tags":["admin"]}},"/v1/admin/reevaluate":{"post":{"description":"Marks prior reads unread and queues extract now. A job that already said done cannot skip this. Works for a whole project or one item, decision, evidence record, or conversation.","operationId":"force-reevaluate","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceCommandRequestReevaluateData"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataReevaluate"}}},"description":"Accepted"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Force a new extraction of a project or one workspace record","tags":["admin"]}},"/v1/attention/briefs":{"get":{"operationId":"list-attention-briefs","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"explode":false,"in":"query","name":"profile_id","schema":{"format":"uuid","type":"string"}},{"explode":false,"in":"query","name":"status","schema":{"enum":["draft","in_review","approved","delivered","rejected"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopePageAttentionBriefSummary"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Daily attention briefs","tags":["attention"]}},"/v1/attention/briefs/{id}":{"get":{"description":"An item the caller cannot read is omitted, including its wording. Excluded candidates stay on the brief so a reviewer can see omissions.","operationId":"get-attention-brief","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataAttentionBriefDetail"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"One brief, including what was left out","tags":["attention"]}},"/v1/attention/briefs/{id}/deliver":{"post":{"description":"An attempt without a receipt is uncertain. This route will not send a second copy until an operator reconciles it.","operationId":"deliver-attention-brief","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandRequestStruct {}"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataAttentionDeliveryResult"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Send an approved brief","tags":["attention"]}},"/v1/attention/briefs/{id}/delivery/reconcile":{"post":{"operationId":"reconcile-attention-delivery","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceCommandRequestReconcileInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataAttentionDeliveryResult"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Record whether an uncertain send arrived","tags":["attention"]}},"/v1/attention/briefs/{id}/review":{"post":{"description":"Approve freezes the wording and prepares one email delivery. It does not send.","operationId":"review-attention-brief","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceCommandRequestBriefReview"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataAttentionID"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Approve or reject a brief","tags":["attention"]}},"/v1/attention/items/{id}/feedback":{"post":{"description":"Already handled keeps the issue and records a resolution or an explicit assertion. Assign follow-up creates a workspace task. Opening an item does not resolve it.","operationId":"attention-feedback","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceCommandRequestFeedbackInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataAttentionID"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Record what the recipient wants done with an item","tags":["attention"]}},"/v1/attention/profiles":{"get":{"description":"A profile says what matters to one person. The role label does not grant access to sources.","operationId":"list-attention-profiles","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListAttentionProfile"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Attention profiles","tags":["attention"]},"post":{"operationId":"create-attention-profile","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceCommandRequestAttentionProfileInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataAttentionID"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Create an attention profile","tags":["attention"]}},"/v1/attention/profiles/{id}":{"get":{"operationId":"get-attention-profile","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataAttentionProfile"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"One attention profile","tags":["attention"]}},"/v1/attention/profiles/{id}/versions":{"post":{"description":"Writes a new version. Briefs already delivered keep the version they were built from.","operationId":"revise-attention-profile","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceCommandRequestAttentionProfileInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataAttentionID"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Confirm a new profile version","tags":["attention"]}},"/v1/audit":{"get":{"description":"Newest first. Platform admins only. Filter by domain, event type, actor, or entity.","operationId":"list-audit","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Workspace domain, e.g. evidence","explode":false,"in":"query","name":"domain","schema":{"description":"Workspace domain, e.g. evidence","type":"string"}},{"description":"Exact event type, e.g. evidence.archived","explode":false,"in":"query","name":"eventType","schema":{"description":"Exact event type, e.g. evidence.archived","type":"string"}},{"description":"Actor FID that performed the change","explode":false,"in":"query","name":"actor","schema":{"description":"Actor FID that performed the change","type":"string"}},{"description":"Entity the event was about","explode":false,"in":"query","name":"entityId","schema":{"description":"Entity the event was about","format":"uuid","type":"string"}},{"description":"Matches the summary, the actor, or the event type. Empty lists everything in scope.","explode":false,"in":"query","name":"q","schema":{"description":"Matches the summary, the actor, or the event type. Empty lists everything in scope.","maxLength":200,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageAuditRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List the workspace audit log","tags":["audit"]}},"/v1/audit/{id}":{"get":{"description":"Platform admins only.","operationId":"get-audit","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataAuditRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Get one audit log row","tags":["audit"]}},"/v1/authz/me":{"get":{"description":"The actions the caller's grants allow, at each scope, across every service: what your grants allow, before resource-level rules. Each service's own check still decides every call. An action is listed at a grant's scope when the grant's role may call it, the action is in the catalog, and the scope's type is one of the action's scope types. The response names no role. It takes no parameters and is never cached. Requires Authorization: Bearer with an access token for this service's audience or the platform audience, a person's or a machine client's own. Any other token, or none, is a 401. A caller whose principal does not exist or is not active gets an empty list.","operationId":"authz-me","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataAuthzMe"}}},"description":"OK","headers":{"Cache-Control":{"schema":{"type":"string"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"accessToken":[]}],"summary":"What the caller may do","tags":["authz"]}},"/v1/balance-sheet":{"get":{"description":"Lists every asset, liability and equity account in the properties' chart of accounts, plus any account outside it with activity, as of the end of the post month. Accounts come in chart order; depth places each in the hierarchy, and a header's totals include every account beneath it. Amounts are debits minus credits. Equity includes current year earnings (from January of the month's year) and prior years' earnings, calculated from revenue and expense accounts rather than posted. The properties' legal entities must share a currency and a chart, and every entity that posted lines for them must use that currency. out_of_balance is the three section totals added together: zero on a sheet that balances, and otherwise the amount whose other side falls outside the report.","operationId":"get-balance-sheet","parameters":[{"description":"Property ids, comma separated. The balance sheet combines them.","explode":false,"in":"query","name":"property_id","required":true,"schema":{"description":"Property ids, comma separated. The balance sheet combines them.","items":{"format":"uuid","type":"string"},"minItems":1,"type":"array"}},{"description":"Post month, YYYY-MM: the month of each entry's entry_date. Balances are as of the end of it.","explode":false,"in":"query","name":"month","required":true,"schema":{"description":"Post month, YYYY-MM: the month of each entry's entry_date. Balances are as of the end of it.","pattern":"^\\d{4}-(0[1-9]|1[0-2])$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataBalanceSheet"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Get the balance sheet for one or more properties"}},"/v1/clients":{"get":{"description":"Every client in Hydra, service accounts and others, in client_id order, with who manages it and whether people sign in through it. No secret is ever returned. Reads at most 2000 clients, and says when there were more. 503 clients_unavailable without a Hydra admin URL, 503 hydra_unavailable when Hydra does not answer. The person must be allowed identity::ListClients. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"list-clients","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataClientListing"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Service Unavailable"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"List every Hydra client","tags":["service-account"]}},"/v1/commands/identity/admin-audit/record":{"post":{"description":"Appends a record to the admin audit table. The record holds FIDs and fixed codes only. Records cannot be changed or removed. actor_fid must be the person the token names. A record of action admin.access_denied about the caller, which the user admin app writes when it turns someone away, needs only an active person; every other record needs identity::RecordAdminAudit. Requires an Idempotency-Key header. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"record-admin-audit","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityRecordAdminAuditRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataAdminAuditRecord"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"Record one step of an admin action","tags":["admin-audit"]}},"/v1/commands/identity/endpoint-access/grant":{"post":{"description":"Adds one endpoint_access row, for scripts. The same checks apply as for an action set-role-actions adds, and a role may hold at most 500 actions. A row that exists changes nothing. Requires an Idempotency-Key header. The person must be allowed identity::GrantEndpointAccess. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"grant-endpoint-access","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEndpointAccessRowRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataGrantedEndpointAccess"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"Let a role call one action","tags":["endpoint-access"]}},"/v1/commands/identity/endpoint-access/revoke":{"post":{"description":"Removes one endpoint_access row, for scripts. The action is not checked against the catalog, so a row for an action that left the catalog can still be removed. A row that does not exist changes nothing. The rules on identity:: actions apply as for set-role-actions, so an identity:: action is never removed from platform-admin. Requires an Idempotency-Key header. The person must be allowed identity::RevokeEndpointAccess. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"revoke-endpoint-access","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEndpointAccessRowRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataRevokedEndpointAccess"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"Stop a role calling one action","tags":["endpoint-access"]}},"/v1/commands/identity/endpoint-access/set-role-actions":{"post":{"description":"Replaces the role's actions with the list sent, on every service, wherever the role is granted. expected_actions must equal the role's current actions, ignoring order, or the command is a 409 with code stale and writes nothing. Every action being added must be in the action catalog. Adding or removing an identity:: action needs a person holding platform-admin at global scope; one cannot be added to a role for system principals (422 identity_action_on_system_role) or removed from platform-admin (409 action_pinned). Writes one event per action added or removed. Requires an Idempotency-Key header. The person must be allowed identity::SetRoleActions. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"set-role-actions","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentitySetRoleActionsRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataRoleActionsChange"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"Set every action a role may call","tags":["endpoint-access"]}},"/v1/commands/identity/person/create":{"post":{"description":"Creates an active Kratos identity with the email and name and no credentials, and its person principal, then returns a one-time setup link for the person's first sign-in. The link is in this response only. An email that belongs to a person already, or to a Kratos identity that can already sign in, is a 409 email_exists that creates nothing; its errors name the person's FID only when the caller may also call identity::GetPrincipal. A Kratos identity with the email and no principal and no way to sign in is adopted. When Kratos cannot make the link, the person is kept and setup_link_error is true. With no Kratos admin URL configured it is a 503 person_create_unavailable. Requires an Idempotency-Key header. The person must be allowed identity::CreatePerson. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"create-person","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityCreatePersonRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataCreatedPerson"}}},"description":"Created"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Service Unavailable"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"Add a person and issue their first setup link","tags":["person"]}},"/v1/commands/identity/person/setup-link":{"post":{"description":"Returns a new one-time setup link for a person principal who has no way to sign in yet. The link is in this response only. A person who can already sign in is a 422 person_has_credentials: a setup link would let an admin sign in as them. A disabled person is a 422 person_disabled. An unknown FID, or one that is not a person, is a 404. A person who holds any role also needs a caller holding platform-admin at global scope, and is a 403 otherwise. When Kratos cannot make the link it is a 503 setup_link_unavailable; send the request again with a new Idempotency-Key. Requires an Idempotency-Key header. The person must be allowed identity::CreatePersonSetupLink. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"issue-person-setup-link","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityPersonFIDRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataIssuedSetupLink"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Service Unavailable"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"Issue a new setup link for a person who cannot sign in yet","tags":["person"]}},"/v1/commands/identity/principal/disable":{"post":{"description":"Sets a person principal's status to disabled. Its grants are kept, and every authorization check refuses it from then on. Disabling a principal that is already disabled changes nothing. There is no command to enable it again. A system principal is a 409, and so is disabling the last effective global platform admin. Disabling a person who holds platform-admin, or a role that may call an identity action that changes something, also needs a person holding platform-admin at global scope, and is a 403 otherwise. Requires an Idempotency-Key header. The person must be allowed identity::DisablePrincipal. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"disable-principal","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityDisablePrincipalRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataDisabledPrincipal"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"Disable a person principal","tags":["principal"]}},"/v1/commands/identity/principal/ensure":{"post":{"description":"Creates the principal for an FID adopted from Kratos or Hydra, or returns the existing one unchanged. Requires an Idempotency-Key header and the shared X-Identity-Ensure-Key header. An FID that already exists with the other kind is a 409.","operationId":"ensure-principal","parameters":[{"description":"The shared key for this operation. Every call without the right key is a 401.","in":"header","name":"X-Identity-Ensure-Key","required":true,"schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityCommandRequestEnsurePrincipalData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataEnsuredPrincipal"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"summary":"Create or adopt a principal","tags":["principal"]}},"/v1/commands/identity/principal/grant-role":{"post":{"description":"Makes the principal hold a role at a scope, as a manual grant. Granting a grant that already exists with the same expiry changes nothing. Requires an Idempotency-Key header. The person must be allowed identity::GrantServiceAccountRole or identity::RevokeServiceAccountRole when the principal is a service account, and identity::GrantRole or identity::RevokeRole otherwise. Granting or revoking platform-admin, or a role that may call an identity action that changes something, also needs a person holding platform-admin at global scope, and is a 403 otherwise. A principal that became or stopped being a service account after the check is a 409 with code target_changed, and nothing is written. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"grant-role","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityGrantRoleRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataGrantedRole"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"Grant a role at a scope","tags":["principal"]}},"/v1/commands/identity/principal/revoke-role":{"post":{"description":"Removes the manual grant with this key. Grants an automation created are never removed by this operation. Revoking a grant that does not exist changes nothing. Revoking the last effective global platform-admin grant is a 409. Requires an Idempotency-Key header. The person must be allowed identity::GrantServiceAccountRole or identity::RevokeServiceAccountRole when the principal is a service account, and identity::GrantRole or identity::RevokeRole otherwise. Granting or revoking platform-admin, or a role that may call an identity action that changes something, also needs a person holding platform-admin at global scope, and is a 403 otherwise. A principal that became or stopped being a service account after the check is a 409 with code target_changed, and nothing is written. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"revoke-role","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityRevokeRoleRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataRevokedRole"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"Revoke a manual grant","tags":["principal"]}},"/v1/commands/identity/role-types/create":{"post":{"description":"Adds a role to the role registry, allowed to be given actions. principal_kind is person, the default, or system, for a role that service accounts and other system principals may hold. A reserved name, or a name a Cedar policy names directly, is a 422 with code role_reserved on body.data.role; a role that exists is a 409 with code role_exists. A role created this way may later be renamed or deleted with role-types/rename and role-types/delete. Requires an Idempotency-Key header. The person must be allowed identity::CreateRoleType. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"create-role-type","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityCreateRoleTypeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataCreatedRoleType"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"Create a role","tags":["principal"]}},"/v1/commands/identity/role-types/delete":{"post":{"description":"Removes a role a person created through the user admin app. Every grant of the role is revoked and every action it may call is removed, so its holders lose that access at once in identity and with the next copy of the principal snapshot in every other service. The name may be used again. confirm_role must equal role, or the command is a 422 with code confirmation_mismatch. A protected role is a 422 with code role_protected, as for rename, and an unknown role a 422 with code unknown_role. Deleting a role that holds any identity:: action removes that action, which needs a person holding platform-admin at global scope, so anyone else is refused with a 403. Writes principal.role_revoked for each unexpired grant, endpoint_access.revoked for each action, and principal.role_type_deleted. Requires an Idempotency-Key header. The person must be allowed identity::DeleteRoleType. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"delete-role-type","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityDeleteRoleTypeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataDeletedRoleType"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"Delete a role","tags":["principal"]}},"/v1/commands/identity/role-types/rename":{"post":{"description":"Gives a role a person created through the user admin app a new name. Every grant of the role, whatever its scope, source or expiry, and every action it may call move to the new name, so no one's access changes, and the old name is removed and may be used again. Services pick up the change with their next copy of the principal snapshot. A role a migration seeded or the local grant key created, a reserved name, and a role a Cedar policy names directly are protected: 422 with code role_protected. An unknown role is a 422 with code unknown_role; a reserved new name, or one a Cedar policy names directly, is a 422 with code role_reserved on body.data.new_role; a new name that exists is a 409 with code role_exists. Renaming a role that holds any identity:: action, a read or a write, moves that action to another role name, which needs a person holding platform-admin at global scope, so anyone else is refused with a 403 even when they hold identity::RenameRoleType. Writes a revoked and a granted event for each grant and action moved, and principal.role_type_renamed. Requires an Idempotency-Key header. The person must be allowed identity::RenameRoleType. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"rename-role-type","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityRenameRoleTypeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataRenamedRoleType"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"Rename a role","tags":["principal"]}},"/v1/commands/identity/service-account/delete":{"post":{"description":"Removes the Hydra client and disables the principal. The row and the principal are kept, so the client_id is never reused. An account that is already deleted changes nothing. Requires an Idempotency-Key header. The person must be allowed identity::DeleteServiceAccount. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"delete-service-account","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityServiceAccountIDRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataChangedServiceAccount"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Service Unavailable"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"Delete a service account","tags":["service-account"]}},"/v1/commands/identity/service-account/disable":{"post":{"description":"Disables the account's principal, replaces its secret with one nobody holds, and revokes its tokens at Hydra. An account that is already disabled or deleted changes nothing. Requires an Idempotency-Key header. The person must be allowed identity::DisableServiceAccount. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"disable-service-account","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityServiceAccountIDRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataChangedServiceAccount"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Service Unavailable"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"Disable a service account","tags":["service-account"]}},"/v1/commands/identity/service-account/register":{"post":{"description":"Creates a service account: its system principal, its row, and its Hydra client with a new secret, all or none. The secret is in this response only. The account can get tokens at once and can do nothing until its principal is granted a role. Requires an Idempotency-Key header. The person must be allowed identity::RegisterServiceAccount. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"register-service-account","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityRegisterServiceAccountRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataIssuedServiceAccount"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Service Unavailable"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"Register a service account","tags":["service-account"]}},"/v1/commands/identity/service-account/rotate":{"post":{"description":"Gives an active account a new secret, in this response only. The old secret stops working at once. Requires an Idempotency-Key header. The person must be allowed identity::RotateServiceAccount. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"rotate-service-account","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityServiceAccountIDRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataIssuedServiceAccount"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Service Unavailable"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"Rotate a service account's secret","tags":["service-account"]}},"/v1/commands/identity/service-audience/add":{"post":{"description":"Adds a service's audience to the registry, so service accounts may be given it. There is no change and no removal. Requires an Idempotency-Key header. The person must be allowed identity::AddServiceAudience. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"add-service-audience","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityAddServiceAudienceRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataServiceAudience"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"Register a service audience","tags":["service-account"]}},"/v1/context/person":{"get":{"description":"The caller's own context: formal role, responsibilities, active work threads with a typed relationship, interests, open commitments, preferences, and a coverage report of what could not be read. The recipient is the authenticated principal, or the person named in X-Flow-On-Behalf-Of on a service call; it is never a body or query field. Every source a row cites is re-checked against the caller's access on each request. With personalization off the response carries no private records. If the people directory is down the stored snapshot is served with a coverage gap.","operationId":"get-person-context","parameters":[{"description":"brief returns the whole picture for a report: active threads, open commitments, interests and coverage. chat returns what bears on query, because it is prepended to a prompt.","explode":false,"in":"query","name":"mode","schema":{"default":"chat","description":"brief returns the whole picture for a report: active threads, open commitments, interests and coverage. chat returns what bears on query, because it is prepended to a prompt.","enum":["brief","chat"],"type":"string"}},{"description":"Chat mode only. What the person is asking about; memories, threads, interests and commitments are ranked against it.","explode":false,"in":"query","name":"query","schema":{"description":"Chat mode only. What the person is asking about; memories, threads, interests and commitments are ranked against it.","maxLength":1000,"type":"string"}},{"description":"The conversation the turn belongs to. Works for an unfiled conversation, which has no project. Raises threads from that conversation.","explode":false,"in":"query","name":"conversation_id","schema":{"description":"The conversation the turn belongs to. Works for an unfiled conversation, which has no project. Raises threads from that conversation.","format":"uuid","type":"string"}},{"description":"Adds the project's pack. The caller must be able to read the project.","explode":false,"in":"query","name":"project_id","schema":{"description":"Adds the project's pack. The caller must be able to read the project.","format":"uuid","type":"string"}},{"description":"RFC 3339. Narrows older, non-obligation items. Open obligations are returned regardless of age.","explode":false,"in":"query","name":"since","schema":{"description":"RFC 3339. Narrows older, non-obligation items. Open obligations are returned regardless of age.","format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataPersonContextData"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"What Flow knows about the caller's work","tags":["context"]}},"/v1/context/person/profile":{"put":{"description":"The person's own correction of title, team, function, responsibilities and preferences, and the personalization switch. A corrected field is marked source user and a directory sync will not overwrite it; a title that differs from the directory is flagged disputed. Absent fields are left alone.","operationId":"update-person-profile","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestPersonProfileData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataPersonProfileResult"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Correct the caller's own profile","tags":["context"]}},"/v1/context/person/refresh":{"post":{"description":"Rebuilds the caller's threads, interests, commitments and responsibilities from sources they may read. Idempotent. Incremental unless full is true; a person never refreshed, or not fully reconciled for a week, gets a full pass anyway.","operationId":"refresh-person-context","parameters":[{"description":"Re-read the whole window instead of only what changed.","explode":false,"in":"query","name":"full","schema":{"description":"Re-read the whole window instead of only what changed.","type":"boolean"}},{"description":"RFC 3339. Start of the window. Defaults to 90 days back; never more than a year.","explode":false,"in":"query","name":"since","schema":{"description":"RFC 3339. Start of the window. Defaults to 90 days back; never more than a year.","format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataRefreshResult"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Rebuild the caller's derived context","tags":["context"]}},"/v1/conversations":{"post":{"description":"Anyone signed in may start a conversation without a project. Filing it onto a project on create requires editor on that project. Requires an Idempotency-Key header.","operationId":"create-conversation","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestCreateConversationData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataConversation"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Start a conversation","tags":["conversation"]}},"/v1/conversations/{conversationId}":{"get":{"operationId":"get-conversation","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataConversation"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Get a conversation","tags":["conversation"]},"patch":{"description":"Archiving hides the conversation from agent-desktop lists. It is not deleted: the review console still lists it, GET by id still works, and appending a turn is refused. Send status=active to reopen.","operationId":"update-conversation","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestUpdateConversationData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataConversation"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Rename or archive a conversation","tags":["conversation"]}},"/v1/conversations/{conversationId}/files":{"get":{"description":"Page mode. Works for a filed conversation and for an unfiled one the caller can read. A caller sees attachments they uploaded. A platform admin sees every attachment.","operationId":"list-conversation-files","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageFile"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List files attached to a conversation","tags":["file"]}},"/v1/conversations/{conversationId}/move":{"post":{"description":"This is how a conversation becomes shared. Every author must already be a member of the destination.","operationId":"move-conversation","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestMoveConversationData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataConversation"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"File a conversation onto a project","tags":["conversation"]}},"/v1/conversations/{conversationId}/objections":{"post":{"description":"The desktop agent's find_objections tool (ADR 0109). Call it when the person proposes or settles on a course of action. Returns claims that are disputed, contradicted, replaced decisions, unanswered questions or reported problems, best first. Claims the agent already raised in this conversation are left out. Quotes are included only when nobody but the caller can read the conversation. An empty list is the usual answer, and degraded means intelligence could not be asked. Neither is a reason to say anything. Writes nothing to the conversation.","operationId":"find-conversation-objections","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceFindConversationObjectionsData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataConversationObjections"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Find claims in the record that argue against a plan","tags":["conversation"]}},"/v1/conversations/{conversationId}/objections/feedback":{"post":{"description":"useful, already_knew or wrong, for one claim the agent raised in one turn. Rating again replaces the earlier rating. Does not change the claim.","operationId":"rate-conversation-objection","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestRateObjectionData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataObjectionFeedback"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Rate an objection the agent raised","tags":["conversation"]}},"/v1/conversations/{conversationId}/outputs":{"get":{"operationId":"list-conversation-outputs","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Defaults to active.","explode":false,"in":"query","name":"status","schema":{"description":"Defaults to active.","enum":["active","superseded","archived"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageSavedOutput"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List outputs saved from a conversation","tags":["conversation"]},"post":{"description":"Inline text up to 256 KiB. Larger files use the upload then finalize path. Writes one output turn.","operationId":"save-conversation-output","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestSaveConversationOutputData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataSavedOutputReceipt"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Save an artifact onto a conversation's project","tags":["conversation"]}},"/v1/conversations/{conversationId}/outputs/finalize":{"post":{"description":"Rejects a sha256 mismatch. Writes one output turn.","operationId":"finalize-conversation-output","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestFinalizeOutputData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataSavedOutputReceipt"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Commit an uploaded saved output","tags":["conversation"]}},"/v1/conversations/{conversationId}/outputs/upload":{"post":{"description":"Step one of two. PUT the bytes to upload_url, then POST finalize with the upload_token.","operationId":"create-conversation-output-upload","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestCreateOutputUploadData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataOutputUploadTicket"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Mint a write URL for a large saved output","tags":["conversation"]}},"/v1/conversations/{conversationId}/related":{"post":{"description":"For the agent-desktop panel beside the conversation (ADR 0110). Call it after appending the caller's own message. Returns published claims closely related to that message, with the quotes the caller can read, and people quoted behind at least two of them. Claims already shown to the caller in this conversation are left out. An empty list is the usual answer. A message under four words, or a redacted one, is skipped without searching. Degraded means intelligence could not be asked. Writes nothing to the conversation.","operationId":"find-conversation-related","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceFindConversationRelatedData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataConversationRelated"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Find what the company already knows about a message","tags":["conversation"]}},"/v1/conversations/{conversationId}/related/actions":{"post":{"description":"opened or not_relevant for a claim, asked for a person. Used to measure the panel.","operationId":"record-conversation-related-action","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestRelatedActionData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataRelatedAction"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Record what the caller did with the related-claims panel","tags":["conversation"]}},"/v1/conversations/{conversationId}/sessions":{"post":{"operationId":"start-session","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestStartSessionData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataSession"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Open a working session","tags":["conversation"]}},"/v1/conversations/{conversationId}/suggestions":{"get":{"description":"Proposed by the intelligence service for conversations still in a scratchpad. Accepting one records intent; the move itself still checks membership.","operationId":"list-conversation-suggestions","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataListSuggestion"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Where this conversation might belong","tags":["conversation"]}},"/v1/conversations/{conversationId}/suggestions/{projectId}/resolve":{"post":{"operationId":"resolve-conversation-suggestion","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestResolveSuggestionData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataSuggestion"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Accept or dismiss a suggestion","tags":["conversation"]}},"/v1/conversations/{conversationId}/turns":{"get":{"description":"Cursor-paginated by seq, oldest first. Resume with the last seq you saw.","operationId":"list-turns","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Return turns after this sequence number. 0 starts from the beginning.","explode":false,"in":"query","name":"since_seq","schema":{"description":"Return turns after this sequence number. 0 starts from the beginning.","format":"int64","minimum":0,"type":"integer"}},{"explode":false,"in":"query","name":"pagination[limit]","schema":{"default":50,"format":"int64","maximum":200,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeCursorTurn"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Read turns after a sequence number","tags":["conversation"]},"post":{"description":"Idempotent twice over: the Idempotency-Key covers an HTTP retry, and client_turn_id covers a client that generated a fresh key for the same turn.","operationId":"append-turn","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestAppendTurnData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataAppendedTurn"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Append a turn","tags":["conversation"]}},"/v1/conversations/{conversationId}/turns/{seq}/redaction":{"post":{"description":"Nothing is removed yet. A second person must approve, and the request itself is permanent whether or not it is granted.","operationId":"request-turn-redaction","parameters":[{"in":"path","name":"conversationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"seq","required":true,"schema":{"format":"int64","minimum":1,"type":"integer"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestRequestRedactionData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataRedaction"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Ask for a turn's content to be destroyed","tags":["conversation"]}},"/v1/deliveries":{"get":{"description":"Cursor paginated. The in-flight set shrinks while it is being paged — every pickup removes a row ahead of the reader — so an offset boundary would silently drop the rows that shifted up into it. Food is never held and so never appears here. There is no total: see /v1/deliveries/summary.","operationId":"list-deliveries","parameters":[{"description":"Opaque position from a previous response's meta.cursor.next","explode":false,"in":"query","name":"pagination[cursor]","schema":{"description":"Opaque position from a previous response's meta.cursor.next","maxLength":512,"type":"string"}},{"description":"Maximum items to return","explode":false,"in":"query","name":"pagination[limit]","schema":{"default":50,"description":"Maximum items to return","format":"int64","maximum":200,"minimum":1,"type":"integer"}},{"explode":false,"in":"query","name":"propertyRef","required":true,"schema":{"maxLength":200,"type":"string"}},{"explode":false,"in":"query","name":"sort","schema":{"default":"urgency","enum":["urgency","received"],"type":"string"}},{"explode":false,"in":"query","name":"unitRef","schema":{"maxLength":200,"type":"string"}},{"explode":false,"in":"query","name":"overdue","schema":{"type":"boolean"}},{"explode":false,"in":"query","name":"status","schema":{"default":"held","enum":["held","resolved_today"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResidentLogisticsEnvelopeCursorDeliveryRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Held deliveries, most urgent first","tags":["deliveries"]},"post":{"description":"Food is admitted and terminal on arrival; a parcel is held for the property's hold window. A food delivery with no resolved recipient is rejected — the operator refuses entry instead.","operationId":"create-delivery","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResidentLogisticsCommandRequestCreateDeliveryData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResidentLogisticsEnvelopeDataDeliveryRecord"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Take in a delivery","tags":["deliveries"]}},"/v1/deliveries/{id}":{"get":{"operationId":"get-delivery","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResidentLogisticsEnvelopeDataDeliveryDetail"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"One delivery, with recipients, notes and notification history","tags":["deliveries"]}},"/v1/deliveries/{id}/cancel":{"post":{"description":"Guarded on the delivery still being held: a second call matches no row and returns 409, so a double click produces one event rather than two. Pending notifications are cancelled in the same transaction.","operationId":"cancel-delivery","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResidentLogisticsCommandRequestResolveData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResidentLogisticsEnvelopeDataDeliveryRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Logged in error","tags":["deliveries"]}},"/v1/deliveries/{id}/deliver-to-door":{"post":{"description":"Guarded on the delivery still being held: a second call matches no row and returns 409, so a double click produces one event rather than two. Pending notifications are cancelled in the same transaction.","operationId":"deliver-delivery-to-door","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResidentLogisticsCommandRequestResolveData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResidentLogisticsEnvelopeDataDeliveryRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Staff carried it up","tags":["deliveries"]}},"/v1/deliveries/{id}/discard":{"post":{"description":"Guarded on the delivery still being held: a second call matches no row and returns 409, so a double click produces one event rather than two. Pending notifications are cancelled in the same transaction.","operationId":"discard-delivery","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResidentLogisticsCommandRequestResolveData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResidentLogisticsEnvelopeDataDeliveryRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Binned or donated","tags":["deliveries"]}},"/v1/deliveries/{id}/notes":{"post":{"description":"Append-only. A note is corrected by adding another, so who said what and when survives.","operationId":"add-delivery-note","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResidentLogisticsCommandRequestNoteData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResidentLogisticsEnvelopeDataNoteRecord"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Append a note","tags":["deliveries"]}},"/v1/deliveries/{id}/pickup":{"post":{"description":"Guarded on the delivery still being held: a second call matches no row and returns 409, so a double click produces one event rather than two. Pending notifications are cancelled in the same transaction.","operationId":"pickup-delivery","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResidentLogisticsCommandRequestResolveData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResidentLogisticsEnvelopeDataDeliveryRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Resident collected it","tags":["deliveries"]}},"/v1/deliveries/{id}/refuse":{"post":{"description":"Guarded on the delivery still being held: a second call matches no row and returns 409, so a double click produces one event rather than two. Pending notifications are cancelled in the same transaction.","operationId":"refuse-delivery","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResidentLogisticsCommandRequestResolveData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResidentLogisticsEnvelopeDataDeliveryRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Courier turned away","tags":["deliveries"]}},"/v1/deliveries/{id}/release-candidates":{"get":{"description":"Backs the type-ahead on the transition dialog. Returns the whole set rather than taking a search term: the candidates for one delivery are the people on one unit and the carriers one building sees, so a query parameter would buy a round trip per keystroke to filter rows the client already holds. Grouped by transition because the sets differ — a parcel returned to sender goes to a courier, one collected at the desk goes to a person. Free text is accepted on every transition regardless of what is listed here.","operationId":"list-release-candidates","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResidentLogisticsEnvelopeDataReleaseCandidatesBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"What this delivery's transitions can be released to","tags":["deliveries"]}},"/v1/deliveries/{id}/reopen":{"post":{"description":"For a resolution applied to the wrong parcel. Only a resolved parcel can reopen: a second call matches no row and returns 422, so a double tap undoes once. Food cannot — it is terminal on arrival and there is no shelf to return it to. The hold deadline is left as it was, because the parcel never actually left.","operationId":"reopen-delivery","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResidentLogisticsCommandRequestResolveData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResidentLogisticsEnvelopeDataDeliveryRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Put a resolved parcel back on the shelf","tags":["deliveries"]}},"/v1/deliveries/{id}/return-to-sender":{"post":{"description":"Guarded on the delivery still being held: a second call matches no row and returns 409, so a double click produces one event rather than two. Pending notifications are cancelled in the same transaction.","operationId":"return-delivery-to-sender","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResidentLogisticsCommandRequestResolveData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResidentLogisticsEnvelopeDataDeliveryRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Given back to a carrier","tags":["deliveries"]}},"/v1/deliveries/summary":{"get":{"description":"One aggregate over the same partial index the list scans. Separate from the list because cursor pagination has no total, and because these are refreshed on a different cadence to the rows.","operationId":"summarise-deliveries","parameters":[{"explode":false,"in":"query","name":"propertyRef","required":true,"schema":{"maxLength":200,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResidentLogisticsEnvelopeDataSummaryRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Counts for the page header","tags":["deliveries"]}},"/v1/discovery/contradictions":{"post":{"description":"Cites two observations from different records. The card names the clash, says what would settle it, and names who can answer. It does not adopt either side. A repeat of the same two observations returns the card already filed.","operationId":"file-discovery-contradiction","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceCommandRequestContradictionData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataContradictionBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"File a contradiction for a person to settle","tags":["discovery"]}},"/v1/discovery/coverage":{"get":{"description":"Questions investigations raised that the panel could not answer, grouped by why. One is a question that was too ambitious; several with the same reason is a data requirement.","operationId":"discovery-coverage-demand","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataCoverageBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"What the unanswerable questions are asking for","tags":["discovery"]}},"/v1/discovery/cycles":{"get":{"description":"Each cycle records the multiplicity family it declared before any confirmation result was read, how many candidates entered, how many were registered, and how many findings came out. A cycle with no findings is a legitimate outcome, not a failure.","operationId":"list-discovery-cycles","parameters":[{"explode":false,"in":"query","name":"limit","schema":{"default":25,"format":"int32","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListDiscoveryCycle"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Discovery cycles, newest first","tags":["discovery"]}},"/v1/discovery/cycles/{id}":{"get":{"description":"The exit counts and gate failures are the requirements list for the next round of data collection. A cycle where two thirds of candidates exited for insufficient data is telling you to collect data, not to tune the gates.","operationId":"get-discovery-cycle","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataDiscoveryCycleDetail"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"One cycle, with why its candidates stopped","tags":["discovery"]}},"/v1/discovery/cycles/{id}/blocked":{"get":{"description":"Reviewed each cycle, deliberately. A gate that is wrong produces no symptom anywhere else: the finding it would have blocked simply never appears. This is the only place a blind spot becomes visible.","operationId":"list-discovery-blocked","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"explode":false,"in":"query","name":"limit","schema":{"default":20,"format":"int32","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListDiscoveryBlocked"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"A sample of candidates the gates stopped","tags":["discovery"]}},"/v1/discovery/findings":{"get":{"operationId":"list-discovery-findings","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"explode":false,"in":"query","name":"status","schema":{"enum":["draft","in_review","published","inconclusive","under_review","retired"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopePageDiscoveryFinding"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Findings awaiting review, and those reviewed","tags":["discovery"]}},"/v1/discovery/findings/{id}":{"get":{"description":"Includes the lag-response curve and which attached runs count as independent support. Two readings of one dataset are not corroboration, and the independence flag is what says so.","operationId":"get-discovery-finding","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataDiscoveryFindingDetail"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"One finding, with every run and check behind it","tags":["discovery"]}},"/v1/discovery/findings/{id}/review":{"post":{"description":"Confirms novelty and usefulness. It does not change the finding's evidence class: saying a result is new and useful is not saying the estimate identifies a causal effect. An 'already knew' verdict writes a scoped entry into the known-relationship registry — scoped to the question actually reviewed, so it suppresses an equivalent rerun rather than every future question about the pair.","operationId":"review-discovery-finding","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewDiscoveryFindingInputBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataDiscoveryReviewResult"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Record a verdict on a finding","tags":["discovery"]}},"/v1/discovery/investigation-runs":{"get":{"operationId":"list-discovery-investigation-runs","parameters":[{"explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"format":"int32","maximum":1000000,"minimum":1,"type":"integer"}},{"explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":5,"format":"int32","maximum":20,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopePageInvestigationRun"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Investigation coverage and considered candidates","tags":["discovery"]}},"/v1/discovery/packets":{"get":{"description":"Ordered by the rubric, capped at the review budget. A packet is an investigation with its sources attached, not a finding: the evidence class says what it is allowed to claim, and conversational evidence can never reach a measured one.","operationId":"list-discovery-packets","parameters":[{"explode":false,"in":"query","name":"status","schema":{"enum":["draft","in_review","published","dismissed","superseded"],"type":"string"}},{"description":"Keep cards from one category. Empty returns every category.","explode":false,"in":"query","name":"lens","schema":{"description":"Keep cards from one category. Empty returns every category.","enum":["profit","overlap","culture"],"type":"string"}},{"description":"Exact inquiry slug. Empty returns every inquiry.","explode":false,"in":"query","name":"inquiry","schema":{"description":"Exact inquiry slug. Empty returns every inquiry.","maxLength":120,"type":"string"}},{"description":"Case-insensitive text matched against the title, consequence, scope, inquiry, speaker, or channel.","explode":false,"in":"query","name":"entity","schema":{"description":"Case-insensitive text matched against the title, consequence, scope, inquiry, speaker, or channel.","maxLength":200,"type":"string"}},{"description":"Exclusive lower bound on created_at, RFC3339. Returns investigations stored after this instant.","explode":false,"in":"query","name":"created_after","schema":{"description":"Exclusive lower bound on created_at, RFC3339. Returns investigations stored after this instant.","type":"string"}},{"description":"Exclusive lower bound on updated_at, RFC3339. Pass the newest updated_at already seen to read later status changes.","explode":false,"in":"query","name":"updated_after","schema":{"description":"Exclusive lower bound on updated_at, RFC3339. Pass the newest updated_at already seen to read later status changes.","type":"string"}},{"explode":false,"in":"query","name":"page","schema":{"default":1,"format":"int64","maximum":5000,"minimum":1,"type":"integer"}},{"explode":false,"in":"query","name":"limit","schema":{"default":20,"format":"int64","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataPacketListBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Evidence-led investigations, best first","tags":["discovery"]}},"/v1/discovery/packets/{id}":{"get":{"description":"Supporting sources, any opposing passages, and the documented challenge search. Finding no opposing passage is not proof of the claim.","operationId":"get-discovery-packet","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataPacketDetail"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"One investigation with every passage it rests on","tags":["discovery"]}},"/v1/discovery/packets/{id}/insight":{"post":{"description":"Publishes one insight cited to the observations for the card's supporting lines. A line that was never ingested is skipped. A card with no ingested line is refused.","operationId":"insight-from-discovery-packet","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceCommandRequestPacketInsightData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataPacketInsightBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Publish an insight from one discovery card","tags":["discovery"]}},"/v1/discovery/packets/{id}/review":{"post":{"description":"The verdict feeds the comparison between what the rubric predicted and what a reviewer thought. 'already_knew' is as useful a signal as 'useful' and more common; recording it is how the novelty score gets calibrated.","operationId":"review-discovery-packet","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceCommandRequestReviewPacketData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataReviewedBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Record a verdict and what it changed","tags":["discovery"]}},"/v1/discovery/questions":{"get":{"description":"Proposals from the daily job. A question the caller cannot fully read is omitted, including its title: the title can reveal the evidence. Every conversational question that clears the checks is presented. Needs-data questions are a separate queue.","operationId":"list-company-questions","parameters":[{"explode":false,"in":"query","name":"status","schema":{"enum":["proposed","needs_data","held","investigating","investigated","deferred","already_answered","not_useful"],"type":"string"}},{"description":"me lists questions assigned to the caller. A work email lists the questions assigned to that person.","explode":false,"in":"query","name":"assignee","schema":{"description":"me lists questions assigned to the caller. A work email lists the questions assigned to that person.","maxLength":320,"type":"string"}},{"description":"Lists questions assigned to this person. Cannot be combined with assignee.","explode":false,"in":"query","name":"assignee_person_id","schema":{"description":"Lists questions assigned to this person. Cannot be combined with assignee.","format":"uuid","type":"string"}},{"description":"open is every question still waiting for an answer. answered is a question marked already answered, and carries answered_at. A question closed as not useful is neither. Combines with status.","explode":false,"in":"query","name":"state","schema":{"description":"open is every question still waiting for an answer. answered is a question marked already answered, and carries answered_at. A question closed as not useful is neither. Combines with status.","enum":["open","answered"],"type":"string"}},{"explode":false,"in":"query","name":"page","schema":{"default":1,"format":"int64","maximum":500,"minimum":1,"type":"integer"}},{"explode":false,"in":"query","name":"limit","schema":{"default":25,"format":"int64","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataQuestionListBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Company questions awaiting a person","tags":["discovery"]}},"/v1/discovery/questions/{id}":{"get":{"operationId":"get-company-question","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataQuestionDetail"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"One company question, with the passages it cites","tags":["discovery"]}},"/v1/discovery/questions/{id}/review":{"post":{"description":"Investigate freezes the current version and queues the existing discovery sweep for that question only. Refine writes a new version and does not change a version already under investigation.","operationId":"review-company-question","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceCommandRequestQuestionActionData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataReviewedBody"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Approve, edit, defer, or reject a question","tags":["discovery"]}},"/v1/discovery/slack-questions":{"get":{"description":"Any signed-in caller. principal is the assignee. since and until are the same half-open window as the counts. A question posted in the window is included, and so is a question posted earlier when a Slack reply arrived in the window. A question the caller cannot fully read is omitted, including its title.","operationId":"slack-questions","parameters":[{"description":"Email of the person the questions were sent to.","explode":false,"in":"query","name":"principal","required":true,"schema":{"description":"Email of the person the questions were sent to.","maxLength":320,"minLength":1,"type":"string"}},{"description":"Start of the window, included. Defaults to thirty days ago.","explode":false,"in":"query","name":"since","schema":{"description":"Start of the window, included. Defaults to thirty days ago.","format":"date-time","type":"string"}},{"description":"End of the window, excluded. Defaults to now.","explode":false,"in":"query","name":"until","schema":{"description":"End of the window, excluded. Defaults to now.","format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataSlackQuestionsBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Questions behind one row of the Slack reply report","tags":["discovery"]}},"/v1/discovery/slack-replies":{"get":{"description":"Any signed-in caller. One row per person over a half-open window. Sent is questions posted to them in the window. Replies are answers that arrived in the window, including an answer to a question posted earlier. Waiting is questions posted in the window that are still open. Counts only. The questions themselves are listed by slack-questions.","operationId":"slack-replies","parameters":[{"description":"Start of the window, included. Defaults to thirty days ago.","explode":false,"in":"query","name":"since","schema":{"description":"Start of the window, included. Defaults to thirty days ago.","format":"date-time","type":"string"}},{"description":"End of the window, excluded. Defaults to now.","explode":false,"in":"query","name":"until","schema":{"description":"End of the window, excluded. Defaults to now.","format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListSlackPerson"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"How many Slack replies the question bot received","tags":["discovery"]}},"/v1/documents":{"get":{"description":"Page-mode list. Query with pagination[page] and pagination[pageSize], and narrow by ref_type, ref_id, ref_category, is_external, and created_by. No SAS is minted; use GET /v1/documents/{id} for a download URL.","operationId":"list-documents","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"explode":false,"in":"query","name":"ref_type","schema":{"maxLength":64,"type":"string"}},{"explode":false,"in":"query","name":"ref_id","schema":{"maxLength":128,"type":"string"}},{"explode":false,"in":"query","name":"ref_category","schema":{"maxLength":64,"type":"string"}},{"explode":false,"in":"query","name":"is_external","schema":{"enum":["true","false"],"type":"string"}},{"description":"Only documents this principal uploaded.","explode":false,"in":"query","name":"created_by","schema":{"description":"Only documents this principal uploaded.","maxLength":500,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentsEnvelopePageDocumentRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List documents, optionally filtered by reference","tags":["documents"]},"post":{"description":"Step two of two. Requires an Idempotency-Key header and a blob_name from POST /v1/documents/sas. The blob must already be uploaded.","operationId":"create-document","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentsCommandRequestCreateDocumentData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentsEnvelopeDataDocumentRecord"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Record an uploaded document","tags":["documents"]}},"/v1/documents/{id}":{"get":{"description":"The SAS is minted per request and expires on the storage account's TTL.","operationId":"get-document","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentsEnvelopeDataDocumentReadRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Get a document and a read SAS for it","tags":["documents"]},"post":{"description":"Requires an Idempotency-Key header. references and metadata replace what is stored. Storage account, visibility, container, and blob name are immutable.","operationId":"update-document","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentsCommandRequestUpdateDocumentData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentsEnvelopeDataDocumentRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Update a document's filename, references, and metadata","tags":["documents"]}},"/v1/documents/{id}/entries":{"post":{"description":"Reads a registered zip and records every file inside it as its own document, folders included, recursively. Each entry references the archive with category \"archive-entry\", so the results are listable with GET /v1/documents?ref_type=document&ref_id={id}.\n\nAn uploaded zip is expanded automatically, so this is needed only for an archive that opted out with metadata expand_archive=false, or for a nested zip — a zip inside an archive is recorded rather than expanded, and this is how you go deeper.\n\nRequires an Idempotency-Key header; a retry with the same key returns the same entries without creating more. Expanding an already-expanded archive converges: existing entries are returned as they are, and created_count says how many this call recorded.","operationId":"expand-archive","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentsCommandRequestExpandArchiveData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentsEnvelopeDataExpansionRecord"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Expand a zip into one document per file","tags":["documents"]}},"/v1/documents/readable":{"get":{"description":"One page of documents that carry a project or unfiled reference. all=true is every such file. Otherwise the page is files uploaded by owner. A document linked to two projects is returned once. q matches filename or uploader. No SAS is minted.","operationId":"list-readable-documents","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Every project and unfiled file. Set for a platform admin.","explode":false,"in":"query","name":"all","schema":{"description":"Every project and unfiled file. Set for a platform admin.","type":"boolean"}},{"description":"Principal whose uploads are listed. Ignored when all is true.","explode":false,"in":"query","name":"owner","schema":{"description":"Principal whose uploads are listed. Ignored when all is true.","maxLength":500,"type":"string"}},{"description":"Matches filename or uploader. Empty lists everything in scope.","explode":false,"in":"query","name":"q","schema":{"description":"Matches filename or uploader. Empty lists everything in scope.","maxLength":200,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentsEnvelopePageDocumentRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List project and unfiled files, newest first","tags":["documents"]}},"/v1/documents/sas":{"post":{"description":"Step one of two. Returns a time-limited write URL and the blob name to send back to POST /v1/documents once the bytes are uploaded. No document is created here. Pass blob_name to re-sign a URL for an upload already in progress rather than start a new one.","operationId":"create-upload-sas","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentsUploadSASData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentsEnvelopeDataUploadSASRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Mint a write SAS for an upload","tags":["documents"]}},"/v1/documents/uploaded-count":{"get":{"description":"Distinct documents whose project or unfiled reference has category uploaded. all=true counts every such file. Otherwise the count is files uploaded by owner. A document linked to two projects counts once.","operationId":"count-uploaded-documents","parameters":[{"description":"Count every uploaded project and unfiled file. Set for a platform admin.","explode":false,"in":"query","name":"all","schema":{"description":"Count every uploaded project and unfiled file. Set for a platform admin.","type":"boolean"}},{"description":"Principal whose uploads count. Ignored when all is true.","explode":false,"in":"query","name":"owner","schema":{"description":"Principal whose uploads count. Ignored when all is true.","maxLength":500,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentsEnvelopeDataUploadedCount"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Count uploaded files without listing them","tags":["documents"]}},"/v1/endpoint-access/roles/{role}":{"get":{"description":"Every action in the catalog identity was built with, with its service and policies and whether the role may call it, then every action the role may call that is not in the catalog, marked in_catalog false. An unknown role is a 422 with code unknown_role. The person must be allowed identity::GetRoleActions. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"role-actions","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"description":"A registered role.","in":"path","name":"role","required":true,"schema":{"description":"A registered role.","maxLength":63,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataRoleActions"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"List every action and whether a role may call it","tags":["endpoint-access"]}},"/v1/entities":{"get":{"operationId":"list-entities","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"explode":false,"in":"query","name":"kind","schema":{"enum":["person","team","system","practice","vendor","customer","company","concept"],"type":"string"}},{"description":"Matches display name, slug, or alias. Substring, case-insensitive.","explode":false,"in":"query","name":"q","schema":{"description":"Matches display name, slug, or alias. Substring, case-insensitive.","maxLength":100,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopePageEntity"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"The things the company talks about","tags":["graph"]}},"/v1/entities/{id}":{"get":{"description":"Follows a merge: asking for an entity that was merged away returns the survivor, so a stored id never dangles.","operationId":"get-entity","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataEntity"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"One entity","tags":["graph"]}},"/v1/entities/{id}/edges":{"get":{"description":"Edges in both directions, so the answer matches a traversal of the same node. Which way an edge points follows from its kind, not from which end is being asked about.","operationId":"list-entity-edges","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Edge kind, such as works_on, knows_about, or mentions.","explode":false,"in":"query","name":"kind","schema":{"description":"Edge kind, such as works_on, knows_about, or mentions.","type":"string"}},{"explode":false,"in":"query","name":"limit","schema":{"default":50,"format":"int64","maximum":200,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListEdge"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"What this entity is connected to","tags":["graph"]}},"/v1/entities/{id}/offices":{"get":{"description":"Officer appointments read from governing documents, such as a board consent electing a Treasurer. For a person, the offices they hold and the company each is at; for a company, who holds which office there. Context about the company's structure: an office grants no access and does not count toward the practice rankings.","operationId":"list-entity-offices","parameters":[{"description":"A person or a company.","in":"path","name":"id","required":true,"schema":{"description":"A person or a company.","format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListOffice"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Offices held by a person, or held at a company","tags":["graph"]}},"/v1/eval/examples":{"get":{"operationId":"list-eval-examples","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"explode":false,"in":"query","name":"split","schema":{"enum":["dev","test"],"type":"string"}},{"explode":false,"in":"query","name":"include_retired","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopePageEvalExample"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"The labelled set","tags":["eval"]},"post":{"description":"Idempotent on the source. Relabelling replaces the whole label set, because a human edits an example's labels together and a half-relabelled example scores as a precision failure that is really a bookkeeping failure.","operationId":"save-eval-example","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveEvalExampleInputBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataEvalExample"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Label a piece of source material","tags":["eval"]}},"/v1/eval/examples/{id}/retire":{"post":{"description":"Keeps the history that scored against it. Needs a reason: the denominator of every future run changes and somebody will ask why.","operationId":"retire-eval-example","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetireEvalExampleInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataEvalExample"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Drop an example from future runs","tags":["eval"]}},"/v1/eval/runs":{"get":{"description":"Each run carries the model and a hash of the prompt it scored. 'Precision moved' is unanswerable without knowing whether the prompt did.","operationId":"list-eval-runs","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"explode":false,"in":"query","name":"split","schema":{"enum":["dev","test"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopePageEvalRun"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Scoring history","tags":["eval"]}},"/v1/eval/runs/{id}":{"get":{"operationId":"get-eval-run","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataEvalRun"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"One run, with its per-kind reading","tags":["eval"]}},"/v1/eval/runs/{id}/diff":{"get":{"description":"Per example, both directions. The aggregates are the least useful part of a comparison: a change that fixes two examples and breaks two others leaves precision flat, and this is the only place it shows.","operationId":"diff-eval-runs","parameters":[{"description":"The later run.","in":"path","name":"id","required":true,"schema":{"description":"The later run.","format":"uuid","type":"string"}},{"description":"The earlier run. Omit for the one immediately preceding this run on the same split.","explode":false,"in":"query","name":"before","schema":{"description":"The earlier run. Omit for the one immediately preceding this run on the same split.","format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataEvalDiff"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"What moved between two runs","tags":["eval"]}},"/v1/eval/shape":{"get":{"description":"Size per split, and how much of the set expects nothing. The second number is the one nobody tracks: a set with no silent examples cannot tell an extractor that declines sensibly from one that finds a decision in every thread, and both report excellent precision.","operationId":"get-eval-shape","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataEvalShape"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Whether the eval set can measure anything yet","tags":["eval"]}},"/v1/events":{"get":{"operationId":"get-event-feed","parameters":[{"explode":false,"in":"query","name":"after","schema":{"format":"int64","type":"integer"}},{"explode":false,"in":"query","name":"limit","schema":{"default":100,"format":"int64","maximum":1000,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventFeedOutputBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Read the event feed"}},"/v1/evidence/{evidenceId}":{"delete":{"description":"Platform admin only. Soft-deletes the record so it leaves lists and search. Insights that only cited this record are removed; those still supported by other evidence keep their remaining citations. The row and its lines stay. A second delete is 404.","operationId":"delete-evidence","parameters":[{"in":"path","name":"evidenceId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandRequestStruct {}"}}},"required":true},"responses":{"204":{"description":"No Content"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Delete a note, meeting, thread, or document","tags":["evidence"]},"get":{"operationId":"get-evidence","parameters":[{"in":"path","name":"evidenceId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataEvidenceRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Get a note, meeting, or thread","tags":["evidence"]}},"/v1/evidence/{evidenceId}/end-live":{"post":{"description":"Marks a live recording ended and refuses any further audio for it, which is the way out when a recorder is lost, flat, or out of range and the record would otherwise sit open indefinitely. The lines already written stay and become the transcript. A platform admin can end any live recording. Its author can end it only while it has no lines, which closes it as no_speech: that is how a phone that captured no audio says so. Only a record whose transcription_status is live can be ended; anything else is 409.","operationId":"end-live-recording","parameters":[{"in":"path","name":"evidenceId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandRequestStruct {}"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataEvidenceRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Stop a recording that is stuck live","tags":["evidence"]}},"/v1/evidence/{evidenceId}/force-claim":{"post":{"description":"Platform admin only. Queues extraction of this record at interactive priority with the volume and chatter gates off, and the model must return at least one insight. Claims appear when the intelligence worker finishes. Every claim still has to quote the record. A record with no text is refused. Idempotency-Key required.","operationId":"force-evidence-claim","parameters":[{"in":"path","name":"evidenceId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandRequestStruct {}"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataForcedExtraction"}}},"description":"Accepted"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Queue a forced extraction of this record","tags":["evidence"]}},"/v1/evidence/{evidenceId}/knowledge":{"put":{"description":"Turning it off withdraws whatever was already derived from this record. On an unfiled record it also makes the record private again.","operationId":"set-evidence-knowledge","parameters":[{"in":"path","name":"evidenceId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestSetKnowledgeData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataEvidenceRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Turn the knowledge layer on or off for a record","tags":["evidence"]}},"/v1/evidence/{evidenceId}/labels/{label}":{"delete":{"description":"The record's author or a platform admin. 404 when the record does not carry the label. Idempotency-Key required.","operationId":"remove-evidence-label","parameters":[{"in":"path","name":"evidenceId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"label","required":true,"schema":{"pattern":"^[a-z0-9][a-z0-9-]{0,63}$","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"204":{"description":"No Content"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Remove a label from a record","tags":["evidence"]},"put":{"description":"The record's author or a platform admin. Adding a label the record already carries changes nothing. Intelligence copies labels onto the insights drawn from the record. Idempotency-Key required.","operationId":"add-evidence-label","parameters":[{"in":"path","name":"evidenceId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"label","required":true,"schema":{"pattern":"^[a-z0-9][a-z0-9-]{0,63}$","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataEvidenceRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Add a label to a record","tags":["evidence"]}},"/v1/evidence/{evidenceId}/links":{"post":{"description":"Takes the author's permission on the record and editor on the project: filing somebody else's note would speak for them, and filing into somebody else's project would speak to them.","operationId":"link-evidence","parameters":[{"in":"path","name":"evidenceId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestLinkEvidenceData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataEvidenceRecord"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"File a record under a project","tags":["evidence"]}},"/v1/evidence/{evidenceId}/links/{projectId}":{"delete":{"description":"Either the record's author or an editor of that project. Removing the last link makes the record unfiled again, which changes who can read it.","operationId":"unlink-evidence","parameters":[{"in":"path","name":"evidenceId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"projectId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"204":{"description":"No Content"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Detach a record from a project","tags":["evidence"]}},"/v1/evidence/{evidenceId}/redactions":{"get":{"operationId":"list-evidence-redactions","parameters":[{"in":"path","name":"evidenceId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataListEvidenceRedaction"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List redaction requests awaiting approval","tags":["evidence"]}},"/v1/evidence/{evidenceId}/summary":{"get":{"description":"The overview, next steps with owners and dates where they were said, and chapters with where each starts in the recording. Written after a Zoom, phone, or Plaud meeting ends. Anyone who can read the meeting can read this.","operationId":"get-meeting-summary","parameters":[{"in":"path","name":"evidenceId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataMeetingSummary"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Read a meeting's summary","tags":["evidence"]},"patch":{"description":"The host or a platform admin. Only a ready summary. Once edited, a later change to the transcript does not overwrite it; regenerating does.","operationId":"edit-meeting-summary","parameters":[{"in":"path","name":"evidenceId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestMeetingSummaryContent"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataMeetingSummary"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Replace a meeting's summary with your own wording","tags":["evidence"]}},"/v1/evidence/{evidenceId}/summary/regenerate":{"post":{"description":"The host or a platform admin. Discards any edit and queues a fresh summary from the current transcript. The summarizer picks it up within a few minutes.","operationId":"regenerate-meeting-summary","parameters":[{"in":"path","name":"evidenceId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandRequestStruct {}"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataMeetingSummary"}}},"description":"Accepted"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Write a meeting's summary again","tags":["evidence"]}},"/v1/evidence/{evidenceId}/summary/share":{"post":{"description":"The host or a platform admin, and only a ready summary. Each recipient must be on the meeting's roster with an email. Sending the same version to the same person twice sends one message.","operationId":"share-meeting-summary","parameters":[{"in":"path","name":"evidenceId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestShareMeetingSummaryData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataMeetingSummaryShare"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Email a meeting's summary to people who were in it","tags":["evidence"]}},"/v1/evidence/{evidenceId}/transcript":{"get":{"description":"The whole meeting, thread, note, or document as markdown: who was there, then each line as speaker and what they said. max_lines stops early and names the lines left out. A note has no lines; its body is the transcript.","operationId":"get-evidence-transcript","parameters":[{"in":"path","name":"evidenceId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"markdown. The spoken text, one line per turn.","explode":false,"in":"query","name":"format","schema":{"default":"markdown","description":"markdown. The spoken text, one line per turn.","enum":["markdown"],"type":"string"}},{"description":"Stop after this many lines. 0 returns the whole record, up to 8000 lines.","explode":false,"in":"query","name":"max_lines","schema":{"description":"Stop after this many lines. 0 returns the whole record, up to 8000 lines.","format":"int64","maximum":8000,"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataEvidenceTranscript"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Read a record as a transcript","tags":["evidence"]}},"/v1/evidence/{evidenceId}/utterances/{seq}/redaction":{"post":{"description":"Nothing is removed yet. A second person must approve, and the request itself is permanent whether or not it is granted.","operationId":"request-utterance-redaction","parameters":[{"in":"path","name":"evidenceId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"seq","required":true,"schema":{"format":"int64","minimum":1,"type":"integer"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestRequestUtteranceRedactionData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataEvidenceRedaction"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Ask for a line's content to be destroyed","tags":["evidence"]}},"/v1/evidence/redactions/{redactionId}/approve":{"post":{"description":"A platform steward, or an owner of a project the record is filed under, and never the requester. The content is unrecoverable; a keyed hash of it is kept so an audit can prove what was removed.","operationId":"approve-utterance-redaction","parameters":[{"in":"path","name":"redactionId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataEvidenceRedaction"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Approve a redaction and destroy the content","tags":["evidence"]}},"/v1/facts":{"get":{"description":"Page mode, newest change first. Open to any authenticated caller: a fact is company-wide, and the claims derived from it are already visible to everyone. Narrow with status; the default is every status.","operationId":"list-facts","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Only facts in this state. Absent returns every state.","explode":false,"in":"query","name":"status","schema":{"description":"Only facts in this state. Absent returns every state.","enum":["active","superseded","archived"],"type":"string"}},{"description":"Matches title or text. Empty lists every fact in scope.","explode":false,"in":"query","name":"q","schema":{"description":"Matches title or text. Empty lists every fact in scope.","maxLength":200,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageFact"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List what the company has settled","tags":["fact"]},"post":{"description":"Platform admin only, and requires an Idempotency-Key header. Send body for markdown written directly, or blob_name from the upload-url call for a file, whose markdown is extracted before the fact is written. Intelligence derives claims from it and publishes them without review.","operationId":"create-fact","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestCreateFactData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataFact"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Record something settled about the business","tags":["fact"]}},"/v1/facts/{factId}":{"get":{"description":"Includes the body, which is what a citation on a derived claim opens onto.","operationId":"get-fact","parameters":[{"in":"path","name":"factId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataFact"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Read one fact","tags":["fact"]},"post":{"description":"Platform admin only. Title, body, or a replacement file. Intelligence re-derives, and the claims that came from the previous text are withdrawn. Only an active fact can be edited.","operationId":"update-fact","parameters":[{"in":"path","name":"factId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestUpdateFactData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataFact"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Rewrite a fact","tags":["fact"]}},"/v1/facts/{factId}/archive":{"post":{"description":"Platform admin only. The claims derived from it leave the context pack. Archiving an already archived fact is a no-op rather than an error.","operationId":"archive-fact","parameters":[{"in":"path","name":"factId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandRequestStruct {}"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataFact"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Withdraw a fact with no replacement","tags":["fact"]}},"/v1/facts/{factId}/supersede":{"post":{"description":"Platform admin only. Record the replacement first, then point this fact at it. Nothing is deleted: the old text stays readable so the claims citing it can be withdrawn against a source that still exists.","operationId":"supersede-fact","parameters":[{"in":"path","name":"factId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestSupersedeFactData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataFact"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Replace a fact with a newer one","tags":["fact"]}},"/v1/facts/upload-url":{"post":{"description":"Step one of two when the fact comes from a file. PUT the bytes to upload_url, then POST /v1/facts with the returned blob_name. Platform admin only.","operationId":"create-fact-upload-url","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCreateFileUploadURLData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataUploadTicket"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Mint a write URL for a fact's source document","tags":["fact"]}},"/v1/files":{"post":{"description":"Step two of two. Requires an Idempotency-Key header and a blob_name from POST /v1/files/upload-url. Pass conversation_id to attach it to an unfiled chat; the file follows that conversation when it is filed. An uploaded file is also recorded as evidence, with no project until it is filed. A recording is left for the meeting that claims it. Only the uploader sees an unfiled file in a file list.","operationId":"create-unfiled-file","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestCreateUnfiledFileData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataFile"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Record an uploaded file against no project","tags":["file"]}},"/v1/files/{documentId}":{"get":{"description":"The URL is minted per request and expires on the storage account's TTL. Access is decided by the project the file belongs to, or by the uploader when it belongs to none.","operationId":"get-file","parameters":[{"in":"path","name":"documentId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataFileRead"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Get a file and a download URL for it","tags":["file"]}},"/v1/files/{documentId}/unlink":{"post":{"description":"Detaches the file so it no longer appears in the project. The bytes are not deleted: documents exposes no delete, and retention is not workspace's to decide. Requires an Idempotency-Key header and editor access.","operationId":"unlink-file","parameters":[{"in":"path","name":"documentId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandRequestStruct {}"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataFile"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Remove a file from its project","tags":["file"]}},"/v1/files/upload-url":{"post":{"description":"Step one of two for a file that belongs to no project. PUT the bytes to upload_url, then POST /v1/files with the returned blob_name. Any authenticated caller may mint one; the file answers to whoever uploaded it.","operationId":"create-unfiled-upload-url","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCreateFileUploadURLData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataUploadTicket"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Mint a write URL for a file with no project","tags":["file"]}},"/v1/files/upload-url/renew":{"post":{"description":"For a recording long enough to outlive its URL. Takes the blob_name from the original upload-url call and returns a new URL over the same blob, valid for another six hours, so the bytes already written are kept and the upload continues. Only the caller who minted it, and only before the file is recorded. Anything else is 404, including somebody else's blob name, so the endpoint cannot be used to probe.","operationId":"renew-upload-url","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceRenewUploadURLData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataUploadTicket"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Sign a fresh write URL for an upload already in progress","tags":["file"]}},"/v1/graph/area/{areaId}":{"get":{"description":"The area's member insights, nearest its centre first, and with connected=true the nodes one edge away from them. Only edges with a member on at least one end are returned, so an edge between two connected nodes is never drawn. With connected=false only edges between members are returned. Members carry inArea=true.","operationId":"get-area-graph","parameters":[{"in":"path","name":"areaId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Include the nodes one edge away from the area's members.","explode":false,"in":"query","name":"connected","schema":{"default":true,"description":"Include the nodes one edge away from the area's members.","type":"boolean"}},{"description":"How many members to draw, nearest the area's centre first.","explode":false,"in":"query","name":"limit","schema":{"default":500,"description":"How many members to draw, nearest the area's centre first.","format":"int64","maximum":2000,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataSubgraph"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"The part of the graph that belongs to one area","tags":["graph"]}},"/v1/graph/overview":{"get":{"description":"Needs no focus. Returns the highest-degree nodes and the edges among exactly those nodes, so the result is a closed subgraph rather than a set of stubs. This is what a reader should open on: a focus picked for them is a focus picked arbitrarily, and one node's empty neighbourhood reads as an empty corpus.","operationId":"get-graph-overview","parameters":[{"description":"How many nodes to return, highest degree first.","explode":false,"in":"query","name":"limit","schema":{"default":200,"description":"How many nodes to return, highest degree first.","format":"int64","maximum":10000,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataSubgraph"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"The most connected nodes in the whole graph","tags":["graph"]}},"/v1/graph/subgraph":{"get":{"description":"Breadth-first with a per-hop cap. A truncated response says so, because a partial graph that looks complete is how somebody concludes two things are unconnected when they are not.","operationId":"get-subgraph","parameters":[{"description":"kind:id, where kind is entity, insight, observation, project, or evidence.","explode":false,"in":"query","name":"focus","required":true,"schema":{"description":"kind:id, where kind is entity, insight, observation, project, or evidence.","type":"string"}},{"explode":false,"in":"query","name":"depth","schema":{"default":2,"format":"int64","maximum":4,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataSubgraph"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Bounded traversal around a focus node","tags":["graph"]}},"/v1/handoffs":{"get":{"description":"Every handoff on a project the caller can read. A platform admin sees all of them. This is not the personal queue.","operationId":"list-review-handoffs","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"explode":false,"in":"query","name":"state","schema":{"enum":["draft","offered","changes_requested","accepted","cancelled"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageHandoff"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List handoffs the caller can review","tags":["project"]}},"/v1/hooks/kratos/person":{"post":{"description":"Called by the Kratos web_hook after registration and after login. Runs principal/ensure for the identity id as a person, with an idempotency key derived from the id, so it takes no Idempotency-Key header. Requires HTTP Basic credentials, the user kratos and the shared ensure key as the password. An id that already exists as a system principal is a 409.","operationId":"kratos-ensure-person","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityKratosPersonBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataEnsuredPrincipal"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"kratosBasic":[]}],"summary":"Create or adopt the person principal for a Kratos identity","tags":["principal"]}},"/v1/hooks/kratos/recovery":{"post":{"description":"Called by the Kratos web_hook after a recovery link is used and before a session is issued. Answers 200 only for an active person principal with an unexpired setup link issuance who has no way to sign in yet; for a person who holds any role, every unexpired issuance must come from an issuer who could manage admins. Any other person is a 403, and a check that could not run, such as Kratos being unavailable or unconfigured, is a 503. Both answer in the message shape Kratos reads from an interrupting web_hook, one fixed message each, so Kratos shows it on the recovery screen and issues no session. Writes nothing. Requires HTTP Basic credentials, the user kratos and the shared ensure key as the password.","operationId":"kratos-check-recovery","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityKratosPersonBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataRecoveryAllowed"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityHookMessages"}}},"description":"The recovery is refused. The same message for every reason."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityHookMessages"}}},"description":"A check could not run, so the recovery is refused."}},"security":[{"kratosBasic":[]}],"summary":"Decide whether a Kratos recovery may complete","tags":["person"]}},"/v1/item-types":{"get":{"description":"Every type, company-wide. Each type says which fields a task of that type has. A project offers its workflow's types; list those with /v1/projects/{id}/item-types.","operationId":"list-item-types","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataListItemType"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List the task types","tags":["project"]}},"/v1/journal-entries":{"get":{"operationId":"list-journal-entries","parameters":[{"explode":false,"in":"query","name":"legal_entity_id","required":true,"schema":{"type":"string"}},{"description":"First transaction date","explode":false,"in":"query","name":"from_date","schema":{"description":"First transaction date","type":"string"}},{"description":"Last transaction date","explode":false,"in":"query","name":"to_date","schema":{"description":"Last transaction date","type":"string"}},{"description":"First post month, YYYY-MM-01","explode":false,"in":"query","name":"from_post_month","schema":{"description":"First post month, YYYY-MM-01","type":"string"}},{"description":"Last post month, YYYY-MM-01","explode":false,"in":"query","name":"to_post_month","schema":{"description":"Last post month, YYYY-MM-01","type":"string"}},{"explode":false,"in":"query","name":"posted","schema":{"enum":["true","false"],"type":"string"}},{"explode":false,"in":"query","name":"after","schema":{"type":"string"}},{"explode":false,"in":"query","name":"limit","schema":{"default":50,"format":"int64","maximum":200,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JournalEntryListOutputBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List journal entries for a legal entity"},"post":{"operationId":"create-journal-entry","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingCommandRequestCreateJournalEntryBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataJournalEntry"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Create a journal entry"}},"/v1/journal-entries/{id}":{"delete":{"operationId":"delete-journal-entry","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingCommandRequestDeleteJournalEntryBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataJournalEntryDeletion"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"accessToken":[]}],"summary":"Remove a mistaken journal entry and retain its audit snapshot"},"get":{"operationId":"get-journal-entry","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataJournalEntry"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Get a journal entry with its lines"}},"/v1/journal-entries/{id}/deletion-check":{"get":{"operationId":"check-journal-entry-deletion","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"explode":false,"in":"query","name":"related_entry_ids","schema":{"items":{"type":"string"},"type":["array","null"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataJournalEntryDeletionCheck"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"accessToken":[]}],"summary":"Check deletion permission, relationships and open periods without deleting entries"}},"/v1/journal-entries/{id}/draft":{"post":{"operationId":"edit-journal-entry-draft","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingCommandRequestEditJournalEntryDraftBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataJournalEntry"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"accessToken":[]}],"summary":"Replace the content of a draft journal entry"}},"/v1/journal-entries/{id}/post":{"post":{"operationId":"post-journal-entry","parameters":[{"description":"Optional manual choice: first day of a month","explode":false,"in":"query","name":"post_month","schema":{"description":"Optional manual choice: first day of a month","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataJournalEntry"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Post a journal entry"}},"/v1/journal-entries/{id}/reverse":{"post":{"operationId":"reverse-journal-entry","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}},{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingCommandRequestReverseJournalEntryBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataJournalEntry"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Create a reversing entry for a posted journal entry"}},"/v1/journal-entries/{id}/transaction-date":{"post":{"operationId":"correct-transfer-journal-date","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingCommandRequestCorrectTransferJournalDateBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataJournalEntry"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"security":[{"accessToken":[]}],"summary":"Billing corrects its transfer's transaction date without changing its amounts or post month"}},"/v1/knowledge/areas":{"get":{"description":"The decision areas discovered by clustering the decisions themselves and labelling each cluster, largest first. Coexists with the hand-defined practices; rebuilt in full each nightly run.","operationId":"list-areas","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListArea"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"The decision areas induced from the corpus","tags":["signals"]},"post":{"description":"Reviewer only. The area starts empty with status pending; a background job fills it with the decisions and facts nearest its name and description, then marks it ready. It is kept through the nightly induction and refilled after each one. 409 when the slug is taken or blocked.","operationId":"create-area","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceCommandRequestCreateAreaData"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataArea"}}},"description":"Accepted"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Create an area by hand","tags":["signals"]}},"/v1/knowledge/areas/{areaId}":{"delete":{"description":"Reviewer only. Deleting an induced area records its slug and cluster centre as blocked, so the nightly induction drops any later cluster that matches either. Deleting a manual area only removes it.","operationId":"delete-area","parameters":[{"in":"path","name":"areaId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandRequestStruct {}"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataDeletedArea"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Delete an area, and block an induced one from coming back","tags":["signals"]}},"/v1/knowledge/areas/{areaId}/deciders":{"get":{"description":"The observed deciders rolled up across an area's decisions, strongest first — the authority map cut by learned area rather than by hand-defined practice. Advisory: it reports what was seen and grants nothing.","operationId":"area-deciders","parameters":[{"in":"path","name":"areaId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataAreaDeciders"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Who appears to decide within one induced area","tags":["signals"]}},"/v1/knowledge/areas/{areaId}/members":{"get":{"description":"The decisions that clustered into an area, most representative first (nearest the cluster centre). The audit trail for the label — open an area to see what it was drawn from.","operationId":"area-members","parameters":[{"in":"path","name":"areaId","required":true,"schema":{"format":"uuid","type":"string"}},{"explode":false,"in":"query","name":"limit","schema":{"default":100,"format":"int64","maximum":500,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataAreaMembers"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"The decisions inside one induced area","tags":["signals"]}},"/v1/knowledge/areas/blocked":{"get":{"description":"Most recently blocked first.","operationId":"list-blocked-areas","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListBlockedArea"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Areas the nightly induction will not recreate","tags":["signals"]}},"/v1/knowledge/areas/blocked/{blockId}":{"delete":{"description":"Reviewer only. The area is not restored now; it comes back on the next induction if the clustering still finds it.","operationId":"unblock-area","parameters":[{"in":"path","name":"blockId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandRequestStruct {}"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataUnblockedArea"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Let the nightly induction recreate a blocked area","tags":["signals"]}},"/v1/knowledge/areas/memberships":{"post":{"description":"A read, sent as a POST because the id list does not fit a query string. For drawing areas over the graph: an insight can be in more than one area, and one in none is left out of the answer.","operationId":"area-memberships","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AreaMembershipsInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListAreaMembership"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Which areas each of a set of insights is in","tags":["signals"]}},"/v1/knowledge/authorities":{"get":{"description":"The whole authority map in one call: each person's observed authority in a practice, grouped by practice by the caller. Advisory — it reports what was seen and grants nothing.","operationId":"list-authorities","parameters":[{"description":"The most claims returned for each practice.","explode":false,"in":"query","name":"limit","schema":{"default":200,"description":"The most claims returned for each practice.","format":"int64","maximum":500,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListAuthority"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Observed decision-rights across every practice","tags":["signals"]}},"/v1/knowledge/authorities/{personId}/decisions":{"get":{"description":"The audit trail for a decider: every decision attributed to them in a practice, with the verbatim quote that named them, newest first. Advisory — it shows the claim's work and grants nothing.","operationId":"decider-decisions","parameters":[{"in":"path","name":"personId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The practice the authority is in — the same one the decider was listed under.","explode":false,"in":"query","name":"practice","required":true,"schema":{"description":"The practice the authority is in — the same one the decider was listed under.","type":"string"}},{"explode":false,"in":"query","name":"limit","schema":{"default":100,"format":"int64","maximum":500,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataDeciderDecisions"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"The decisions behind one person's authority","tags":["signals"]}},"/v1/knowledge/authorities/decision-map":{"get":{"description":"Each decision that still stands and names a decider, with its practice and the people named as deciding it, newest first. The Authorities page groups these by area and by the deciders' place in the org chart. Advisory — it reports what was seen and grants nothing.","operationId":"list-decision-map","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListMappedDecision"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Every standing decision and who made it","tags":["signals"]}},"/v1/knowledge/bottlenecks":{"get":{"operationId":"list-bottlenecks","parameters":[{"explode":false,"in":"query","name":"limit","schema":{"default":20,"format":"int64","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListBottleneck"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Where open questions pile up unanswered","tags":["signals"]}},"/v1/knowledge/bottlenecks/questions":{"get":{"description":"The bottleneck list is a count. This returns each published open question that mentions the person, oldest first, and an outline that names them. A queue on one person is the list, not a reason to drop it.","operationId":"list-bottleneck-questions","parameters":[{"description":"Display name, slug, or alias. A uuid selects that entity.","explode":false,"in":"query","name":"person","required":true,"schema":{"description":"Display name, slug, or alias. A uuid selects that entity.","maxLength":200,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListPersonQuestions"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"The open questions pointed at one person","tags":["signals"]}},"/v1/knowledge/candidates":{"get":{"operationId":"list-candidates","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Practice slug, for reviewers who only cover one area.","explode":false,"in":"query","name":"practice","schema":{"description":"Practice slug, for reviewers who only cover one area.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopePageCandidate"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"The review queue","tags":["knowledge"]}},"/v1/knowledge/candidates/{id}/accept":{"post":{"operationId":"accept-candidate","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandRequestStruct {}"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataInsight"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Turn a candidate into a published insight","tags":["knowledge"]}},"/v1/knowledge/candidates/{id}/reject":{"post":{"operationId":"reject-candidate","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandRequestStruct {}"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataCandidate"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Discard a candidate","tags":["knowledge"]}},"/v1/knowledge/evidence":{"get":{"description":"Runs each query, expands every hit into the lines around it, drops duplicates and sources that are not a record of the company working, and caps how much any one meeting may contribute. Returns text to reason over, never an answer. Pass several q values: a question rarely contains the words its evidence uses. A name the company records have no row for is searched for on its own and listed in searched, because the records being silent about a building is not evidence the building is not discussed. Reading is subject to your own access.","operationId":"search-original-evidence","parameters":[{"description":"A search to issue. Repeat for several; each is run and the results are merged.","explode":false,"in":"query","name":"q","required":true,"schema":{"description":"A search to issue. Repeat for several; each is run and the results are merged.","items":{"type":"string"},"type":["array","null"]}},{"description":"How many passages to return.","explode":false,"in":"query","name":"limit","schema":{"default":20,"description":"How many passages to return.","format":"int64","maximum":40,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataEvidenceResults"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Original passages for a question, with the company records that bear on it","tags":["knowledge"]}},"/v1/knowledge/evidence-with-claims":{"get":{"description":"Workspace evidence ids intelligence has drawn a claim from. Not filtered by who can read them: workspace applies that when it lists evidence. A person's browser is refused. Only another Flow service, acting for someone, may call this.","operationId":"list-evidence-with-claims","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataEvidenceClaimIndex"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Evidence records that have at least one claim","tags":["knowledge"]}},"/v1/knowledge/evidence/{id}/force-claim":{"post":{"description":"Called by workspace after a platform admin confirms. Marks the record unread and queues extraction at interactive priority. The worker reads the whole record with the model and skips the volume and chatter gates, and the model must return at least one insight. Every claim still has to quote the record, so a claim it cannot ground is not written.","operationId":"force-evidence-claim","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandRequestStruct {}"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataForcedExtraction"}}},"description":"Accepted"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Queue a forced extraction of an evidence record","tags":["knowledge"]}},"/v1/knowledge/evidence/{id}/insights":{"get":{"description":"Claims citing this record, with the quotes taken from it. Unlike the company-wide list, this one is authorized per caller: workspace is asked whether you may read the record, and a record you cannot read answers 404 whether or not it exists.","operationId":"list-insights-for-evidence","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"explode":false,"in":"query","name":"status","schema":{"enum":["candidate","published","rejected","expired","superseded"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopePageEvidenceInsight"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"What was concluded from one evidence record","tags":["knowledge"]}},"/v1/knowledge/evidence/{id}/path":{"get":{"description":"For the record's path on the Network Observer. Insights: a claim cites the record. Graph: an entity edge on one of its observations or claims, or a finished entity resolution. Discovery: a discovery passage quotes it. Attention: an attention item lists it as a source. Authorized like the record's claims: a record you cannot read answers 404.","operationId":"get-evidence-path","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataEvidencePathBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Which parts of intelligence one evidence record reached","tags":["knowledge"]}},"/v1/knowledge/evidence/insight-counts":{"post":{"description":"Counts only: no quotes and no meeting text. One row per id, including ids that produced nothing, which come back as zero. Every status counts; published is a separate column. At most 500 ids. Authenticated callers only — intelligence has no platform-admin list, and a count discloses nothing a company-visible claim does not already.","operationId":"count-insights-for-evidence","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CountInsightsForEvidenceInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListEvidenceInsightCount"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"How many claims cite each evidence record","tags":["knowledge"]}},"/v1/knowledge/facts/{id}/insights":{"get":{"description":"Claims extracted from a fact an admin recorded, with the quotes taken from it. Unlike the evidence equivalent this asks workspace nothing: a fact is readable by any authenticated caller, so its quotes disclose nothing the caller could not fetch from workspace directly.","operationId":"list-insights-for-fact","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"explode":false,"in":"query","name":"status","schema":{"enum":["candidate","published","rejected","expired","superseded"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopePageEvidenceInsight"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"What was derived from one curated fact","tags":["knowledge"]}},"/v1/knowledge/follow-through":{"get":{"operationId":"list-follow-through","parameters":[{"explode":false,"in":"query","name":"limit","schema":{"default":20,"format":"int64","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListFollowThrough"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"What projects started and did not finish","tags":["signals"]}},"/v1/knowledge/insights":{"get":{"description":"Company-scoped: every insight is visible to every employee. The evidence behind one is not — see the citations on the detail view, which point at conversations you may not be able to open.","operationId":"list-insights","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"explode":false,"in":"query","name":"status","schema":{"enum":["candidate","published","rejected","expired","superseded"],"type":"string"}},{"explode":false,"in":"query","name":"kind","schema":{"enum":["fact","decision","open_question","hypothesis","problem","handoff","unblock","commitment","session_journal"],"type":"string"}},{"description":"Practice slug. Unknown slugs return an empty page rather than an error.","explode":false,"in":"query","name":"practice","schema":{"description":"Practice slug. Unknown slugs return an empty page rather than an error.","type":"string"}},{"description":"Keeps claims connected to this entity in the graph. With kind=decision, the decisions a person or team is connected to.","explode":false,"in":"query","name":"entity_id","schema":{"description":"Keeps claims connected to this entity in the graph. With kind=decision, the decisions a person or team is connected to.","format":"uuid","type":"string"}},{"description":"Workspace type the insight was derived from.","explode":false,"in":"query","name":"source_type","schema":{"description":"Workspace type the insight was derived from.","enum":["project","project_item","project_decision","saved_output","evidence","conversation"],"type":"string"}},{"description":"One record of that type. A project id when source_type is project.","explode":false,"in":"query","name":"source_id","schema":{"description":"One record of that type. A project id when source_type is project.","type":"string"}},{"description":"How much weight the claim carries.","explode":false,"in":"query","name":"epistemic_state","schema":{"description":"How much weight the claim carries.","enum":["asserted","corroborated","human_confirmed","authoritative","disputed","stale"],"type":"string"}},{"description":"Keeps claims supported by at least one source carrying this workspace label, such as flow-tools.","explode":false,"in":"query","name":"label","schema":{"description":"Keeps claims supported by at least one source carrying this workspace label, such as flow-tools.","pattern":"^[a-z0-9][a-z0-9-]{0,63}$","type":"string"}},{"description":"Lowest confidence to include, 0 to 1.","explode":false,"in":"query","name":"min_confidence","schema":{"description":"Lowest confidence to include, 0 to 1.","type":"string"}},{"description":"Inclusive created_at start, YYYY-MM-DD.","explode":false,"in":"query","name":"created_after","schema":{"description":"Inclusive created_at start, YYYY-MM-DD.","type":"string"}},{"description":"Inclusive created_at end, YYYY-MM-DD.","explode":false,"in":"query","name":"created_before","schema":{"description":"Inclusive created_at end, YYYY-MM-DD.","type":"string"}},{"description":"Inclusive updated_at start, YYYY-MM-DD.","explode":false,"in":"query","name":"updated_after","schema":{"description":"Inclusive updated_at start, YYYY-MM-DD.","type":"string"}},{"description":"Inclusive updated_at end, YYYY-MM-DD.","explode":false,"in":"query","name":"updated_before","schema":{"description":"Inclusive updated_at end, YYYY-MM-DD.","type":"string"}},{"description":"Matches the title or the text, alongside the other filters. Empty lists every claim in scope.","explode":false,"in":"query","name":"q","schema":{"description":"Matches the title or the text, alongside the other filters. Empty lists every claim in scope.","maxLength":200,"type":"string"}},{"description":"When true, only claims drawn from meetings the caller was in. A meeting counts when the caller's name is on its roster. Fails if workspace cannot be reached, rather than answering as if they were in none.","explode":false,"in":"query","name":"attended","schema":{"description":"When true, only claims drawn from meetings the caller was in. A meeting counts when the caller's name is on its roster. Fails if workspace cannot be reached, rather than answering as if they were in none.","type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopePageInsight"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List what the company knows","tags":["knowledge"]},"post":{"description":"For what a person knows and no conversation captured. Citations are required all the same: a claim with no evidence is refused, whoever makes it.","operationId":"create-insight","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceCommandRequestCreateInsightData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataInsight"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Record a claim by hand","tags":["knowledge"]}},"/v1/knowledge/insights/{id}":{"get":{"operationId":"get-insight","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataInsightDetail"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"One insight with its evidence and relationships","tags":["knowledge"]}},"/v1/knowledge/insights/{id}/challenge":{"post":{"description":"Open to anyone. Disputing only ever weakens the corpus's confidence, so it is not gated on review access the way promoting is.","operationId":"challenge-insight","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceCommandRequestChallengeData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataInsight"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Dispute a published claim","tags":["knowledge"]}},"/v1/knowledge/insights/{id}/promote":{"post":{"operationId":"promote-insight","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandRequestStruct {}"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataInsight"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Publish a candidate into the corpus","tags":["knowledge"]}},"/v1/knowledge/insights/{id}/reject":{"post":{"operationId":"reject-insight","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandRequestStruct {}"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataInsight"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Refuse a candidate","tags":["knowledge"]}},"/v1/knowledge/insights/{id}/resolve":{"post":{"description":"Records that somebody looked at a disputed claim and settled it, returning the insight to ordinary standing or withdrawing it.","operationId":"resolve-insight","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceCommandRequestResolveDisputeData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataInsight"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Close a dispute","tags":["knowledge"]}},"/v1/knowledge/insights/{id}/supersede":{"post":{"operationId":"supersede-insight","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceCommandRequestSupersedeData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataInsight"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Replace a claim with a newer one","tags":["knowledge"]}},"/v1/knowledge/insights/{id}/verify":{"post":{"description":"Moves the epistemic state to human_confirmed, which no amount of corroboration reaches on its own.","operationId":"verify-insight","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandRequestStruct {}"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataInsight"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Confirm a claim as a human","tags":["knowledge"]}},"/v1/knowledge/insights/batch":{"post":{"description":"The list shape, not the detail: no quotes and no links. For a screen that already knows which claims it is showing. An id that does not exist is left out. Writes nothing. At most 200 ids.","operationId":"read-insights","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadInsightsInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListInsight"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Read many insights by id, without their evidence","tags":["knowledge"]}},"/v1/knowledge/labels":{"get":{"description":"A label, such as flow-tools, is put on workspace evidence. A claim carries it when a supporting citation comes from a labelled source. Pass a label to list-insights as label to filter by it.","operationId":"list-insight-labels","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListInsightLabel"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List the source labels that reach at least one claim","tags":["knowledge"]}},"/v1/knowledge/links":{"get":{"description":"Duplicated effort is similar work whose people share no project. Similar work inside one group is a recurrence, not a finding.","operationId":"list-links","parameters":[{"description":"Defaults to duplicate_effort, which is the one worth acting on.","explode":false,"in":"query","name":"kind","schema":{"description":"Defaults to duplicate_effort, which is the one worth acting on.","enum":["related","duplicate_effort","contradicts","supersedes","depends_on"],"type":"string"}},{"description":"Restrict to one insight's relationships.","explode":false,"in":"query","name":"insight","schema":{"description":"Restrict to one insight's relationships.","format":"uuid","type":"string"}},{"explode":false,"in":"query","name":"limit","schema":{"default":50,"format":"int64","maximum":200,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListLink"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Related work and duplicated effort","tags":["signals"]}},"/v1/knowledge/objections":{"post":{"description":"For the desktop agent, through workspace (ADR 0109). Returns claims near the plan that are disputed, contradicted, replaced decisions, unanswered questions, or reported problems, best first. A nearby claim that agrees with the plan is never returned. An empty list is a normal answer. Quotes are returned only when audience is private, and only from sources the caller can read. Writes a record of which claims were returned, and nothing else.","operationId":"find-objections","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceFindObjectionsRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataObjections"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Find claims that argue against a plan","tags":["knowledge"]}},"/v1/knowledge/objections/feedback":{"post":{"description":"One rating per person, turn and claim. Rating again replaces the earlier verdict. Used to measure the feature; it does not change the claim.","operationId":"record-objection-feedback","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceCommandRequestObjectionFeedbackData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataObjectionFeedback"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Rate an objection the agent raised","tags":["knowledge"]}},"/v1/knowledge/practices":{"get":{"description":"Workspace caches this to validate a project's default practice, and accepts an unknown slug rather than failing project creation when this service is down.","operationId":"list-practices","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListPractice"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"The areas the corpus is partitioned into","tags":["knowledge"]},"post":{"description":"Reviewer only. The taxonomy is small and shared, so adding to it is a deliberate act rather than a side effect of filing something.","operationId":"create-practice","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceCommandRequestCreatePracticeData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataPractice"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Add an area to partition the corpus by","tags":["knowledge"]}},"/v1/knowledge/practices/{slug}/people":{"get":{"description":"Everyone tagged with the practice, with how much they work in it and their influence in it. Ordered by activity unless sort is influence.","operationId":"list-practice-people","parameters":[{"description":"The practice slug.","in":"path","name":"slug","required":true,"schema":{"description":"The practice slug.","type":"string"}},{"description":"Most influence first, or most activity first.","explode":false,"in":"query","name":"sort","schema":{"default":"influence","description":"Most influence first, or most activity first.","enum":["activity","influence"],"type":"string"}},{"explode":false,"in":"query","name":"limit","schema":{"default":100,"format":"int64","maximum":500,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataPracticePeople"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"The people who work in a practice","tags":["knowledge"]}},"/v1/knowledge/practices/{slug}/refile":{"post":{"description":"Reviewer only. Queues a background job that asks the model where each live claim in the practice belongs, using the current practice list and descriptions. A claim filed elsewhere moves, with its authority signals, and the authority rankings are rebuilt. One model call per claim.","operationId":"refile-practice","parameters":[{"in":"path","name":"slug","required":true,"schema":{"pattern":"^[a-z0-9][a-z0-9-]{0,63}$","type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataRefileQueued"}}},"description":"Accepted"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Re-check every claim in a practice against the current descriptions","tags":["knowledge"]}},"/v1/knowledge/practices/{slug}/update":{"post":{"description":"Reviewer only. The description tells the classifying model what belongs in the practice and what does not; new claims are filed by it. The slug cannot change. Existing claims stay where they are until the practice is re-filed.","operationId":"update-practice","parameters":[{"in":"path","name":"slug","required":true,"schema":{"pattern":"^[a-z0-9][a-z0-9-]{0,63}$","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceCommandRequestUpdatePracticeData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataPractice"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Change a practice's name and description","tags":["knowledge"]}},"/v1/knowledge/pulse":{"get":{"operationId":"get-pulse","parameters":[{"explode":false,"in":"query","name":"days","schema":{"default":7,"format":"int64","maximum":90,"minimum":1,"type":"integer"}},{"description":"Restricts the recent list. Bucket counts stay company-wide so a practice can be read against the whole.","explode":false,"in":"query","name":"practice","schema":{"description":"Restricts the recent list. Bucket counts stay company-wide so a practice can be read against the whole.","type":"string"}},{"explode":false,"in":"query","name":"limit","schema":{"default":20,"format":"int64","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataPulse"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"What is happening, by practice and window","tags":["signals"]}},"/v1/knowledge/related":{"post":{"description":"For the agent-desktop panel, through workspace (ADR 0110). Returns at most five live claims closely related to the text, best first, with the strongest quote the caller can read, and up to three people quoted behind at least two of them. Claims already returned to the caller for this conversation are left out. An empty list is the usual answer. Writes a record of what was returned.","operationId":"find-related-claims","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceFindRelatedRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataRelated"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Find published claims closely related to a message","tags":["knowledge"]}},"/v1/knowledge/related/actions":{"post":{"description":"opened or not_relevant for a claim, asked for a person. Used to measure the panel; changes nothing else.","operationId":"record-related-action","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceCommandRequestRelatedActionData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataRelatedAction"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Record what a person did with the related-claims panel","tags":["knowledge"]}},"/v1/knowledge/search":{"get":{"description":"Fuses semantic and keyword matches over insights with workspace's evidence search, which applies your project ACL. An insight hit includes its body, cut only past the page budget, and one supporting quotation when you can read that source. A known failed citation is not offered as evidence. Fetch the insight when the body was cut, the quotation was omitted, or you need every citation: one quotation can cover only part of the claim. Results are ordered by relevance, adjusted by how far each claim is trusted: corroborated and confirmed claims rank above stale, disputed, and unreviewed ones. Nothing is hidden, so a disputed claim that answers the question still appears, carrying the state that explains why. Degrades to insights alone when workspace is unavailable. On the evidence half, a relative day or a calendar date is a time window, and two or more personal names in that kind of question match who was in the meeting.","operationId":"search-knowledge","parameters":[{"description":"The topic. Interrogatives are stripped before keyword search, which ANDs every remaining word.","explode":false,"in":"query","name":"q","required":true,"schema":{"description":"The topic. Interrogatives are stripped before keyword search, which ANDs every remaining word.","maxLength":500,"minLength":2,"type":"string"}},{"explode":false,"in":"query","name":"limit","schema":{"default":20,"format":"int64","maximum":50,"minimum":1,"type":"integer"}},{"description":"Restrict insights to one practice. Evidence is unaffected.","explode":false,"in":"query","name":"practice","schema":{"description":"Restrict insights to one practice. Evidence is unaffected.","type":"string"}},{"description":"Restrict insights to those supported by a source carrying this workspace label, such as flow-tools. Evidence is unaffected.","explode":false,"in":"query","name":"label","schema":{"description":"Restrict insights to those supported by a source carrying this workspace label, such as flow-tools. Evidence is unaffected.","pattern":"^[a-z0-9][a-z0-9-]{0,63}$","type":"string"}},{"description":"Defaults to all.","explode":false,"in":"query","name":"kind","schema":{"description":"Defaults to all.","enum":["all","insights","evidence","outputs"],"type":"string"}},{"description":"RFC 3339 instant. Keeps hits whose occurrence time is at or after it. A hit with no known occurrence time is dropped.","explode":false,"in":"query","name":"since","schema":{"description":"RFC 3339 instant. Keeps hits whose occurrence time is at or after it. A hit with no known occurrence time is dropped.","type":"string"}},{"description":"RFC 3339 instant. Keeps hits whose occurrence time is before it.","explode":false,"in":"query","name":"until","schema":{"description":"RFC 3339 instant. Keeps hits whose occurrence time is before it.","type":"string"}},{"description":"Keeps insights connected to this entity in the graph. Evidence is kept only when its author is this person; for any other kind of entity no evidence is kept.","explode":false,"in":"query","name":"entity_id","schema":{"description":"Keeps insights connected to this entity in the graph. Evidence is kept only when its author is this person; for any other kind of entity no evidence is kept.","format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataKnowledgeSearchResults"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Search what the company knows and what was said","tags":["knowledge"]}},"/v1/knowledge/stats/stations":{"get":{"description":"For the traffic leaving the intelligence column on the Network Observer. Insights: claims. Graph: entities, entity links, and relationships. Discovery: company questions, prospecting candidates, and findings. Attention: attention items. Counts only, company-wide, for any authenticated caller. `since` is at most 7 days back.","operationId":"get-station-outputs","parameters":[{"description":"RFC 3339. Start of the window. At most 7 days back.","explode":false,"in":"query","name":"since","required":true,"schema":{"description":"RFC 3339. Start of the window. At most 7 days back.","format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataStationOutputsBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"How many new items each part of intelligence produced since a moment","tags":["knowledge"]}},"/v1/knowledge/verify-citations":{"post":{"description":"For each quote, locates it in the evidence record cited. Formatting is ignored — a quote that drops a chat message's list markers still counts — but different words do not. A quote that is not in the source it names is unsupported however real the words are elsewhere. Writes nothing.","operationId":"verify-citations","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceVerifyCitationsBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataVerifyCitationsResults"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Check that quoted words are really in the sources cited","tags":["knowledge"]}},"/v1/knowledge/who-decides":{"get":{"description":"Observed decision-rights, learned from who the company's own discussions treat as making the calls, with the confidence and quotes behind each. Advisory: it reports what was seen and grants nothing.","operationId":"who-decides","parameters":[{"description":"The practice slug to ask about.","explode":false,"in":"query","name":"practice","required":true,"schema":{"description":"The practice slug to ask about.","type":"string"}},{"explode":false,"in":"query","name":"limit","schema":{"default":20,"format":"int64","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataWhoDecides"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Who appears to decide within a practice","tags":["signals"]}},"/v1/knowledge/who-knows":{"get":{"description":"By practice, this reads the nightly rollup. By free-text topic, it searches and tallies the authors of the evidence behind the matches. With neither, it ranks the whole corpus from the same rollup.","operationId":"who-knows","parameters":[{"description":"Practice slug. Answered from the nightly rollup. Omit with q to rank the whole corpus.","explode":false,"in":"query","name":"practice","schema":{"description":"Practice slug. Answered from the nightly rollup. Omit with q to rank the whole corpus.","type":"string"}},{"description":"Free-text topic. Interrogatives are stripped; the rest is searched and the evidence's authors are tallied.","explode":false,"in":"query","name":"q","schema":{"description":"Free-text topic. Interrogatives are stripped; the rest is searched and the evidence's authors are tallied.","maxLength":200,"type":"string"}},{"explode":false,"in":"query","name":"limit","schema":{"default":10,"format":"int64","maximum":50,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListKnower"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Where knowledge about something is concentrated","tags":["signals"]}},"/v1/known-relationships":{"get":{"description":"The registry a candidate finding is checked against before it is allowed to consume testing compute. Its purpose is negative: to stop the discovery layer rediscovering what is already joined in a dbt model, plotted on a dashboard, written in an operating manual, or adjudicated 'we knew that'.","operationId":"list-known-relationships","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"explode":false,"in":"query","name":"kind","schema":{"enum":["known","identity"],"type":"string"}},{"explode":false,"in":"query","name":"basis","schema":{"enum":["lineage","expectation","formula","tested","established"],"type":"string"}},{"explode":false,"in":"query","name":"status","schema":{"enum":["known","retired"],"type":"string"}},{"description":"Matches either end.","explode":false,"in":"query","name":"domain","schema":{"description":"Matches either end.","type":"string"}},{"description":"Substring of either end or of the summary.","explode":false,"in":"query","name":"search","schema":{"description":"Substring of either end or of the summary.","maxLength":200,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopePageKnownRelationship"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"What the company already knows relates to what","tags":["discovery"]},"post":{"description":"Idempotent on the two ends, so re-seeding from dbt or re-parsing the dashboards does not duplicate. Re-registering a retired relationship revives it: asserting it again is a statement that it is current.","operationId":"register-known-relationship","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterKnownRelationshipInputBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataKnownRelationship"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Register a relationship as already known","tags":["discovery"]}},"/v1/known-relationships/{id}":{"get":{"description":"Several independent sources — a dbt join, a dashboard tile, a line in an SOP — make a relationship more firmly known than any one of them does.","operationId":"get-known-relationship","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataKnownRelationshipDetail"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"One registered relationship and the artefacts asserting it","tags":["discovery"]}},"/v1/known-relationships/{id}/retire":{"post":{"description":"Stops it blocking candidates. The row survives, because what the company used to believe is itself worth keeping.","operationId":"retire-known-relationship","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetireKnownRelationshipInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataKnownRelationship"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Withdraw a relationship without forgetting it was believed","tags":["discovery"]}},"/v1/known-relationships/check":{"get":{"description":"The gate itself, exposed so a person can ask it the same question the discovery layer asks. Reports 'already known' and 'related by arithmetic' separately: the first is arguable and is shown with its sources, the second is not.","operationId":"check-known-relationship","parameters":[{"explode":false,"in":"query","name":"cause","required":true,"schema":{"maxLength":400,"type":"string"}},{"explode":false,"in":"query","name":"effect","required":true,"schema":{"maxLength":400,"type":"string"}},{"explode":false,"in":"query","name":"population","schema":{"maxLength":400,"type":"string"}},{"explode":false,"in":"query","name":"grain","schema":{"maxLength":100,"type":"string"}},{"explode":false,"in":"query","name":"segment","schema":{"maxLength":200,"type":"string"}},{"explode":false,"in":"query","name":"lag_low","schema":{"default":-1,"format":"int64","minimum":-1,"type":"integer"}},{"explode":false,"in":"query","name":"lag_high","schema":{"default":-1,"format":"int64","minimum":-1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataKnownRelationshipCheck"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Is this pair already known?","tags":["discovery"]}},"/v1/known-relationships/coverage":{"get":{"description":"An unseeded registry and a working one look identical from a row count. Running a discovery cycle against an unseeded one produces a batch of findings people already knew, which is the failure the registry exists to prevent, arrived at by another route.","operationId":"get-known-relationship-coverage","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataKnownRelationshipCoverage"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Whether the registry has actually been seeded","tags":["discovery"]}},"/v1/legal-entities":{"get":{"description":"Lists active legal entities. Set include_inactive to also list deactivated ones.","operationId":"list-legal-entities","parameters":[{"description":"Also list deactivated entities","explode":false,"in":"query","name":"include_inactive","schema":{"description":"Also list deactivated entities","type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegalEntityListOutputBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List legal entities","tags":["legal-entity"]},"post":{"description":"Creates an active legal entity. Its time zone and first accounting month are set afterwards through the period calendar.","operationId":"create-legal-entity","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingCommandRequestCreateLegalEntityBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataLegalEntity"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Set up a legal entity","tags":["legal-entity"]}},"/v1/legal-entities/{id}":{"get":{"operationId":"get-legal-entity","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataLegalEntity"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Get a legal entity","tags":["legal-entity"]},"patch":{"description":"Only the name and address can change. A request that changes nothing emits no event. An address, when given, replaces the whole address; it cannot be removed once recorded.","operationId":"update-legal-entity","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingCommandRequestUpdateLegalEntityBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataLegalEntity"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Change a legal entity's name or address","tags":["legal-entity"]}},"/v1/legal-entities/{id}/calendar":{"post":{"operationId":"configure-period-calendar","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingCommandRequestConfigurePeriodCalendarBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataPeriodCalendar"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Initialize a verified entity calendar"}},"/v1/legal-entities/{id}/calendar/books-start":{"post":{"operationId":"update-period-calendar-books-start","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingUpdatePeriodCalendarBooksStartRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataPeriodCalendar"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Correct an entity calendar books-start month"}},"/v1/legal-entities/{id}/calendar/timezone":{"post":{"operationId":"update-period-calendar-timezone","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingCommandRequestUpdatePeriodCalendarTimezoneBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataPeriodCalendar"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Update an entity calendar timezone"}},"/v1/legal-entities/{id}/consolidated-balance":{"get":{"operationId":"get-consolidated-balance","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Include postings through the end of this post month, YYYY-MM","explode":false,"in":"query","name":"as_of_month","schema":{"description":"Include postings through the end of this post month, YYYY-MM","pattern":"^\\d{4}-(0[1-9]|1[0-2])$","type":"string"}},{"description":"Unsupported; use as_of_month","explode":false,"in":"query","name":"as_of","schema":{"description":"Unsupported; use as_of_month","type":"string"}},{"explode":false,"in":"query","name":"property_id","schema":{"type":"string"}},{"explode":false,"in":"query","name":"unit_id","schema":{"type":"string"}},{"explode":false,"in":"query","name":"lease_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsolidatedBalanceOutputBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Get the consolidated posted balance across a legal entity group"}},"/v1/legal-entities/{id}/deactivate":{"post":{"description":"A deactivated entity accepts no new journal entries; reversals of its posted entries still post. Requires why.detail. Deactivating an inactive entity changes nothing and emits no event.","operationId":"deactivate-legal-entity","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingCommandRequestSetLegalEntityActiveBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataLegalEntity"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Deactivate a legal entity","tags":["legal-entity"]}},"/v1/legal-entities/{id}/reactivate":{"post":{"description":"Requires why.detail. Reactivating an active entity changes nothing and emits no event.","operationId":"reactivate-legal-entity","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingCommandRequestSetLegalEntityActiveBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataLegalEntity"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Reactivate a legal entity","tags":["legal-entity"]}},"/v1/legal-entities/{id}/trial-balance":{"get":{"description":"Lists every account with posted activity for one legal entity, with its debit and credit totals. Total debits equal total credits whenever the ledger is sound. Without from_date the totals are cumulative up to to_date, which is the conventional trial balance; with from_date they are the movement within the range. Date bounds select whole posting months.","operationId":"get-trial-balance","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}},{"description":"Inclusive start of the range, YYYY-MM-DD, by entry_date. Omit for totals cumulative up to to_date.","explode":false,"in":"query","name":"from_date","schema":{"description":"Inclusive start of the range, YYYY-MM-DD, by entry_date. Omit for totals cumulative up to to_date.","format":"date","type":"string"}},{"description":"Inclusive end of the range, YYYY-MM-DD, by entry_date.","explode":false,"in":"query","name":"to_date","schema":{"description":"Inclusive end of the range, YYYY-MM-DD, by entry_date.","format":"date","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataTrialBalance"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Get the trial balance for a legal entity"}},"/v1/locations":{"get":{"description":"Page-mode list, or filter with parent=<id> (direct children), under=<id> (whole subtree), kind=a,b (one or more kinds), or ids=a,b,c (tier-1 batch). Filters combine — e.g. parent=<floor>&kind=common_area, or under=<building>&kind=unit,bedroom.","operationId":"list-locations","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Comma-separated ids to resolve in one call (tier-1 batch); ignores the filters below.","explode":false,"in":"query","name":"ids","schema":{"description":"Comma-separated ids to resolve in one call (tier-1 batch); ignores the filters below.","type":"string"}},{"description":"Return the direct children of this location id.","explode":false,"in":"query","name":"parent","schema":{"description":"Return the direct children of this location id.","type":"string"}},{"description":"Return every location in this node's subtree.","explode":false,"in":"query","name":"under","schema":{"description":"Return every location in this node's subtree.","type":"string"}},{"description":"Filter to one or more kinds, comma-separated (e.g. common_area or unit,bedroom).","explode":false,"in":"query","name":"kind","schema":{"description":"Filter to one or more kinds, comma-separated (e.g. common_area or unit,bedroom).","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationsEnvelopePageLocationRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List, filter, or batch-resolve locations","tags":["locations"]}},"/v1/locations/{id}":{"get":{"operationId":"get-location","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationsEnvelopeDataLocationRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Get a location by id","tags":["locations"]}},"/v1/locations/{location_id}/maintenance-items":{"get":{"description":"The effective item list for a unit or common area. If the location has diverged from its template the stored items are returned (source=location); otherwise the default template for its space type is returned (source=template).","operationId":"list-location-maintenance-items","parameters":[{"in":"path","name":"location_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceItemsEnvelopeDataLocationItemList"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List the maintenance items for a location","tags":["maintenanceitems"]},"post":{"description":"Adds an item to a location's list, materializing the location's template on first edit. Requires an Idempotency-Key header and ?space_type=.","operationId":"add-location-maintenance-item","parameters":[{"in":"path","name":"location_id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceItemsCommandRequestAddItemData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceItemsEnvelopeDataItemRecord"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Add a maintenance item to a location","tags":["maintenanceitems"]}},"/v1/locations/{location_id}/maintenance-items/{item_id}":{"delete":{"description":"Removes an item from a location's list (soft, keeps provenance), materializing the template on first edit. Requires an Idempotency-Key header and ?space_type=.","operationId":"remove-location-maintenance-item","parameters":[{"in":"path","name":"location_id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"item_id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceItemsEnvelopeDataRemovedItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Remove a maintenance item from a location","tags":["maintenanceitems"]}},"/v1/maintenance-categories":{"get":{"operationId":"list-maintenance-categories","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceItemsEnvelopeDataListCategoryRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List maintenance categories","tags":["maintenanceitems"]},"post":{"description":"Requires an Idempotency-Key header. The id is derived from the slug.","operationId":"create-maintenance-category","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceItemsCommandRequestCreateCategoryData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceItemsEnvelopeDataCategoryRecord"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Create a maintenance category","tags":["maintenanceitems"]}},"/v1/maintenance-categories/{id}":{"patch":{"operationId":"update-maintenance-category","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceItemsCommandRequestUpdateCategoryData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceItemsEnvelopeDataCategoryRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Update a maintenance category","tags":["maintenanceitems"]}},"/v1/maintenance-items":{"get":{"description":"The structured item catalog. Filter with category=<slug>, space_type=in_unit|common_area (template membership), or code=<exact code>.","operationId":"list-maintenance-items","parameters":[{"description":"Filter to a category by slug (e.g. appliances).","explode":false,"in":"query","name":"category","schema":{"description":"Filter to a category by slug (e.g. appliances).","type":"string"}},{"description":"Filter to items in a template: in_unit or common_area.","explode":false,"in":"query","name":"space_type","schema":{"description":"Filter to items in a template: in_unit or common_area.","type":"string"}},{"description":"Resolve a single item by its exact code.","explode":false,"in":"query","name":"code","schema":{"description":"Resolve a single item by its exact code.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceItemsEnvelopeDataListItemRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List or filter the maintenance-item catalog","tags":["maintenanceitems"]},"post":{"description":"Requires an Idempotency-Key header. The id is derived from the code.","operationId":"create-maintenance-item","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceItemsCommandRequestCreateItemData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceItemsEnvelopeDataItemRecord"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Create a maintenance item","tags":["maintenanceitems"]}},"/v1/maintenance-items/{id}":{"delete":{"description":"Soft-removes an item from the catalog (status=retired). Requires an Idempotency-Key header.","operationId":"retire-maintenance-item","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceItemsEnvelopeDataItemRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Retire a maintenance item","tags":["maintenanceitems"]},"get":{"operationId":"get-maintenance-item","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceItemsEnvelopeDataItemRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Get a maintenance item by id","tags":["maintenanceitems"]},"patch":{"operationId":"update-maintenance-item","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceItemsCommandRequestUpdateItemData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceItemsEnvelopeDataItemRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Update a maintenance item","tags":["maintenanceitems"]}},"/v1/maintenance-templates/{space_type}/items/{item_id}":{"delete":{"operationId":"remove-template-item","parameters":[{"in":"path","name":"space_type","required":true,"schema":{"enum":["in_unit","common_area"],"type":"string"}},{"in":"path","name":"item_id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceItemsEnvelopeDataTemplateMembership"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Remove an item from a space-type template","tags":["maintenanceitems"]},"put":{"operationId":"add-template-item","parameters":[{"in":"path","name":"space_type","required":true,"schema":{"enum":["in_unit","common_area"],"type":"string"}},{"in":"path","name":"item_id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MaintenanceItemsEnvelopeDataTemplateMembership"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Add an item to a space-type template","tags":["maintenanceitems"]}},"/v1/me":{"get":{"description":"The authenticated principal and whether they are a platform admin on this request. A client uses the flag to decide whether to offer the fact controls; the server enforces it regardless. X-Flow-As-Member: true reports false; that header cannot grant admin.","operationId":"get-me","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataMe"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Who the caller is","tags":["me"]}},"/v1/me/conversations":{"get":{"description":"A conversation started without a project is yours alone until you file it. It has no project page to appear on, so it is listed here. A platform admin receives every unfiled conversation, because this is the only global unfiled list. Send X-Flow-As-Member: true to see only your own; that header cannot grant admin. scope=readable is every conversation the caller may open, newest activity first, one page at a time.","operationId":"list-unfiled-conversations","parameters":[{"description":"Default unfiled lists chats with no project. readable lists every conversation the caller may open, newest activity first.","explode":false,"in":"query","name":"scope","schema":{"description":"Default unfiled lists chats with no project. readable lists every conversation the caller may open, newest activity first.","enum":["unfiled","readable"],"type":"string"}},{"explode":false,"in":"query","name":"q","schema":{"maxLength":200,"type":"string"}},{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"explode":false,"in":"query","name":"status","schema":{"enum":["active","archived"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageConversation"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List your conversations that belong to no project","tags":["conversation"]}},"/v1/me/evidence":{"get":{"description":"Notes you wrote, and meetings or threads you were in, filed or not. With no scope, a platform admin receives every record, because this is the only global evidence list. scope=participant is that personal listing even for a platform admin. Send X-Flow-As-Member: true to see only your own on the default list; that header cannot grant admin.","operationId":"list-my-evidence","parameters":[{"description":"participant is the personal listing, including for a platform admin. readable includes every record the caller authored or is named on the roster of. Project membership does not open a record. Omitted, a platform admin receives every record and anyone else receives the personal listing.","explode":false,"in":"query","name":"scope","schema":{"description":"participant is the personal listing, including for a platform admin. readable includes every record the caller authored or is named on the roster of. Project membership does not open a record. Omitted, a platform admin receives every record and anyone else receives the personal listing.","enum":["participant","readable"],"type":"string"}},{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"explode":false,"in":"query","name":"kind","schema":{"enum":["note","meeting","thread","document"],"type":"string"}},{"explode":false,"in":"query","name":"source","schema":{"enum":["manual","slack","zoom","import","document","github","azuredevops","plaud","phone","coding_plan","flow_tools","email"],"type":"string"}},{"explode":false,"in":"query","name":"status","schema":{"enum":["active","archived"],"type":"string"}},{"description":"When true, Zoom meetings with no transcript lines are left out. Other sources are unchanged. Applies to scope=readable only.","explode":false,"in":"query","name":"has_transcript","schema":{"description":"When true, Zoom meetings with no transcript lines are left out. Other sources are unchanged. Applies to scope=readable only.","type":"boolean"}},{"description":"When true, only records intelligence has drawn at least one claim from are returned. Applies to scope=readable only. Fails if intelligence cannot be reached, rather than answering as if nothing had claims.","explode":false,"in":"query","name":"has_claims","schema":{"description":"When true, only records intelligence has drawn at least one claim from are returned. Applies to scope=readable only. Fails if intelligence cannot be reached, rather than answering as if nothing had claims.","type":"boolean"}},{"description":"Only records carrying this label, such as flow-tools. Applies to scope=readable only.","explode":false,"in":"query","name":"label","schema":{"description":"Only records carrying this label, such as flow-tools. Applies to scope=readable only.","pattern":"^[a-z0-9][a-z0-9-]{0,63}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageEvidenceRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List evidence you were part of","tags":["evidence"]}},"/v1/me/files":{"get":{"description":"Page mode. Files uploaded without a project. A file filed under a project is listed by that project instead. A platform admin receives every unfiled file. X-Flow-As-Member: true lists only their own; it cannot grant admin. scope=readable is every file the caller uploaded, newest first, one page at a time. A platform admin receives every project and unfiled file.","operationId":"list-my-files","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Default unfiled lists files with no project. readable lists files the caller uploaded, or every file for a platform admin.","explode":false,"in":"query","name":"scope","schema":{"description":"Default unfiled lists files with no project. readable lists files the caller uploaded, or every file for a platform admin.","enum":["unfiled","readable"],"type":"string"}},{"explode":false,"in":"query","name":"q","schema":{"maxLength":200,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageFile"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List the caller's unfiled files","tags":["file"]}},"/v1/me/handoffs":{"get":{"description":"Offered revisions where the caller is the named receiver, and only for projects they can still read.","operationId":"list-my-handoffs","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageHandoff"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List handoffs waiting on the caller","tags":["project"]}},"/v1/me/known":{"get":{"description":"For the desktop \"You\" page (ADR 0111, ADR 0115). The caller's directory record, the work threads, commitments, interests and preferences kept for them, and the work assigned to them, drawn only from meetings, threads and conversations they were present for, each with the sources that pass. Then what others said about them, from any record they may read as a member: lines that name them by full name or email in the past 30 days (said_about_you), and the published claims about them with their quotes, each marked you_were_there. Claims come from intelligence; when it cannot be reached, claims_available is false and the rest is still served.","operationId":"get-what-flow-knows-about-me","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataMeKnown"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"What Flow knows about you","tags":["context"]}},"/v1/me/meetings":{"get":{"description":"Ids of meetings whose roster names the caller, including archived meetings. A roster row with no email still counts when that display name is already the caller's and is not also someone else's. A platform admin receives their own meetings. A meeting with no identified roster is left out.","operationId":"list-my-meetings","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataMyMeetings"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List meetings you were in","tags":["evidence"]}},"/v1/me/notification-prefs":{"get":{"description":"Returns the full grid of channel and kind, defaults included, whether or not the caller has ever changed one.","operationId":"list-notification-prefs","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataListNotificationPref"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Notification settings","tags":["notification"]},"put":{"operationId":"set-notification-pref","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestSetPrefData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataNotificationPref"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Change one setting","tags":["notification"]}},"/v1/me/notifications":{"get":{"description":"Newest first. Includes both project notifications and company-wide ones from the intelligence service.","operationId":"list-notifications","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Return only notifications that have not been read.","explode":false,"in":"query","name":"unread_only","schema":{"description":"Return only notifications that have not been read.","type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageNotification"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"The caller's inbox","tags":["notification"]}},"/v1/me/notifications/{notificationId}/read":{"post":{"operationId":"read-notification","parameters":[{"in":"path","name":"notificationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataNotification"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Mark one notification read","tags":["notification"]}},"/v1/me/notifications/read-all":{"post":{"description":"Marks every unread notification read. Emits no per-notification events: this is one act, not a hundred.","operationId":"read-all-notifications","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataReadAllResult"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Empty the badge","tags":["notification"]}},"/v1/me/profile":{"get":{"description":"The signed-in person's email, whether it is verified, and name, read from their own Kratos identity on each call. It takes no parameters and always answers for the token's sub; there is no way to ask for anyone else. It is never cached. Requires Authorization: Bearer with a person's access token for this service's audience or the platform audience. Any other token, or none, is a 401. A machine client's own token is a 403 not_a_person. A person Kratos has no identity for is a 404 profile_not_found, and one whose identity is not active is a 403 inactive. When Kratos cannot be read the answer is a 503.","operationId":"get-my-profile","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileEnvelopeDataProfile"}}},"description":"OK","headers":{"Cache-Control":{"schema":{"type":"string"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Service Unavailable"}},"security":[{"accessToken":[]}],"summary":"The caller's own email and name","tags":["profile"]}},"/v1/me/scratchpad":{"get":{"description":"A private, unlisted project that never contributes to the knowledge layer.","operationId":"get-scratchpad","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataProject"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Get your scratchpad, creating it on first use","tags":["project"]}},"/v1/me/stats":{"get":{"description":"Conversations, active Zoom meetings, Slack lines, Plaud and phone recordings, emails, uploaded files, and facts, without listing the rows. A platform admin receives every conversation, every active evidence record, and every uploaded file. Anyone else receives conversations in their projects, evidence they authored or were in, and files they uploaded. Facts are company-wide. Send X-Flow-As-Member: true to count as a member; that header cannot grant admin.","operationId":"record-stats","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataRecordStats"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Count the record the overview shows","tags":["evidence"]}},"/v1/me/stats/agent-turns":{"get":{"description":"Turns written by an agent author (agent:<slug>) since `since`, per author, in the conversations the caller can see, by the same rule as the conversation count in /v1/me/stats. A Foundry harness writes every turn of every agent this way. An author with no turns in the window is left out. `since` is at most 7 days back.","operationId":"record-agent-turns","parameters":[{"description":"RFC 3339. Start of the window. At most 7 days back.","explode":false,"in":"query","name":"since","required":true,"schema":{"description":"RFC 3339. Start of the window. At most 7 days back.","format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataRecordAgentTurns"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Count turns each agent wrote since a moment","tags":["conversation"]}},"/v1/me/stats/sources":{"get":{"description":"Active evidence per source since `since`, for the same reader as /v1/me/stats. Slack, Zoom, Plaud, and Phone are lines in active records by when each line was said. Every other source is records by when they happened. `live` is recordings still being made that started in the last hour. A source with nothing in the window and nothing live is left out. `since` is at most 7 days back.","operationId":"record-source-counts","parameters":[{"description":"RFC 3339. Start of the window. At most 7 days back.","explode":false,"in":"query","name":"since","required":true,"schema":{"description":"RFC 3339. Start of the window. At most 7 days back.","format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataRecordSourceCounts"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Count evidence per source since a moment","tags":["evidence"]}},"/v1/me/unblock-requests":{"get":{"description":"Open requests the caller is named to answer, and answered requests waiting on the caller to confirm. Ranked before the page is cut. Snoozed requests are left out unless include_snoozed is set. Losing project access removes the row.","operationId":"list-my-unblock-requests","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Include requests the caller has snoozed. The short queue leaves them out.","explode":false,"in":"query","name":"include_snoozed","schema":{"description":"Include requests the caller has snoozed. The short queue leaves them out.","type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageUnblockRequest"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List the caller's unblock queue","tags":["project"]}},"/v1/meetings":{"post":{"description":"Creates the container; the lines arrive through the utterance endpoint. Repeating an external_ref returns the existing record rather than opening a second one, which is what makes a connector's retry safe.","operationId":"create-meeting","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestCreateMeetingData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataEvidenceRecord"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Open a meeting or a thread","tags":["evidence"]}},"/v1/meetings/{evidenceId}/audio-slices":{"post":{"description":"The author of a live recording posts raw audio — about a minute of it — and the words land on the record as lines. Send the slices in order from index 0, with the Content-Type of the audio. Resending a slice is free: an index that has already been read is answered from what was stored without transcribing again. Only a record whose transcription_status is live accepts slices; anything else is 409, which is the signal to stop sending.","operationId":"add-audio-slice","parameters":[{"in":"path","name":"evidenceId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Which slice this is, counting from 0. The same index twice is the same minute.","explode":false,"in":"query","name":"index","required":true,"schema":{"description":"Which slice this is, counting from 0. The same index twice is the same minute.","format":"int32","minimum":0,"type":"integer"}},{"description":"Milliseconds from the start of the recording to the start of this slice. Used to place the lines on the recording's timeline.","explode":false,"in":"query","name":"start_ms","schema":{"description":"Milliseconds from the start of the recording to the start of this slice. Used to place the lines on the recording's timeline.","format":"int64","minimum":0,"type":"integer"}},{"description":"audio/mpeg, audio/mp4, audio/wav, or audio/ogg.","in":"header","name":"Content-Type","required":true,"schema":{"description":"audio/mpeg, audio/mp4, audio/wav, or audio/ogg.","type":"string"}}],"requestBody":{"content":{"application/octet-stream":{"schema":{"contentMediaType":"application/octet-stream","format":"binary","type":"string"}},"audio/mp4":{"schema":{"contentMediaType":"application/octet-stream","format":"binary","type":"string"}},"audio/mpeg":{"schema":{"contentMediaType":"application/octet-stream","format":"binary","type":"string"}},"audio/ogg":{"schema":{"contentMediaType":"application/octet-stream","format":"binary","type":"string"}},"audio/wav":{"schema":{"contentMediaType":"application/octet-stream","format":"binary","type":"string"}}},"description":"The audio of one slice, as it comes off the recorder.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataAudioSlice"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Transcribe a slice of a recording in progress","tags":["evidence"]}},"/v1/meetings/{evidenceId}/participants":{"post":{"description":"Late joiners arrive here. Speakers are also added when a line is written; this exists so a silent attendee still appears in the list.","operationId":"upsert-meeting-participants","parameters":[{"in":"path","name":"evidenceId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestUpsertParticipantsData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataEvidenceRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Record who is in a meeting","tags":["evidence"]}},"/v1/meetings/{evidenceId}/speakers/assign":{"post":{"description":"Writes a Flow principal onto every line from one Zoom or Plaud participant id. Intelligence then relinks authorship. A Zoom Room cannot be bound to one person.","operationId":"assign-meeting-speaker","parameters":[{"in":"path","name":"evidenceId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestAssignSpeakerData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataSpeakerAssignment"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Name an unlabeled speaker for this meeting","tags":["evidence"]}},"/v1/meetings/{evidenceId}/utterances":{"get":{"description":"Cursor-paginated by seq, oldest first. Resume with the last seq you saw.","operationId":"list-utterances","parameters":[{"in":"path","name":"evidenceId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Return lines after this sequence number. 0 starts from the beginning.","explode":false,"in":"query","name":"since_seq","schema":{"description":"Return lines after this sequence number. 0 starts from the beginning.","format":"int64","minimum":0,"type":"integer"}},{"explode":false,"in":"query","name":"pagination[limit]","schema":{"default":50,"format":"int64","maximum":200,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeCursorUtterance"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Read lines after a sequence number","tags":["evidence"]},"post":{"description":"Idempotent twice over: Idempotency-Key covers an HTTP retry, client_line_id covers a redelivered webhook. The speaker is stated rather than inferred from the caller, so a connector relays a person's words without becoming them.","operationId":"append-utterance","parameters":[{"in":"path","name":"evidenceId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestAppendUtteranceData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataUtterance"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Append a line to a meeting or thread","tags":["evidence"]}},"/v1/meetings/adoption":{"get":{"description":"Any signed-in caller. One row per host email over a half-open window. Joined means the bot sat in the meeting. An empty host_email is every meeting whose host could not be named.","operationId":"meeting-adoption","parameters":[{"description":"Start of the window, included. Defaults to thirty days ago.","explode":false,"in":"query","name":"since","schema":{"description":"Start of the window, included. Defaults to thirty days ago.","format":"date-time","type":"string"}},{"description":"End of the window, excluded. Defaults to now.","explode":false,"in":"query","name":"until","schema":{"description":"End of the window, excluded. Defaults to now.","format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataListHostAdoption"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Recording rate by host","tags":["evidence"]}},"/v1/meetings/capture-outcomes":{"get":{"description":"Platform admin only. Meetings in the window grouped by what came of them.","operationId":"meeting-capture-outcomes","parameters":[{"description":"Start of the window, included. Defaults to thirty days ago.","explode":false,"in":"query","name":"since","schema":{"description":"Start of the window, included. Defaults to thirty days ago.","format":"date-time","type":"string"}},{"description":"End of the window, excluded. Defaults to now.","explode":false,"in":"query","name":"until","schema":{"description":"End of the window, excluded. Defaults to now.","format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataListCaptureOutcome"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"The capture rate over a window","tags":["evidence"]}},"/v1/meetings/line-speakers":{"get":{"description":"Platform admin only. Human speaker for each evidence id and line number. The two query lists are parallel and at most 100 lines.","operationId":"meeting-line-speakers","parameters":[{"description":"Comma-separated evidence ids, parallel with seqs. At most 100.","explode":false,"in":"query","name":"evidence_ids","schema":{"description":"Comma-separated evidence ids, parallel with seqs. At most 100.","type":"string"}},{"description":"Comma-separated line numbers, parallel with evidence_ids.","explode":false,"in":"query","name":"seqs","schema":{"description":"Comma-separated line numbers, parallel with evidence_ids.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataListLineSpeaker"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Who spoke specific transcript lines","tags":["evidence"]}},"/v1/meetings/occurrences":{"get":{"description":"Platform admin only. Newest first, over a half-open window. Pass series_ref instead to list one series, transcribed occurrences included.","operationId":"list-meeting-occurrences","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Only meaningful with series_ref.","explode":false,"in":"query","name":"source","schema":{"description":"Only meaningful with series_ref.","enum":["zoom","plaud","phone","import"],"type":"string"}},{"description":"List one recurring series, transcribed occurrences included, newest first.","explode":false,"in":"query","name":"series_ref","schema":{"description":"List one recurring series, transcribed occurrences included, newest first.","type":"string"}},{"description":"Start of the window, included. Defaults to thirty days ago. Ignored when series_ref is set.","explode":false,"in":"query","name":"since","schema":{"description":"Start of the window, included. Defaults to thirty days ago. Ignored when series_ref is set.","format":"date-time","type":"string"}},{"description":"End of the window, excluded. Defaults to now. Ignored when series_ref is set.","explode":false,"in":"query","name":"until","schema":{"description":"End of the window, excluded. Defaults to now. Ignored when series_ref is set.","format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageMeetingOccurrence"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List meetings that produced no transcript","tags":["evidence"]},"post":{"description":"Written by a capture connector when it leaves a meeting, transcribed or not. A meeting that produced no transcript has no evidence record, and this is the only trace of it. Upserts on the source's identifier, so a bot that restarted mid-meeting reports once.","operationId":"record-meeting-occurrence","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestRecordOccurrenceData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataMeetingOccurrence"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Record that a meeting happened","tags":["evidence"]}},"/v1/meetings/recorded":{"get":{"description":"Any signed-in caller. Titles, hosts, and counts only, no transcript text. Meetings the bot transcribed, with the host when the start register has one, plus how often each recurring series started and was transcribed. At most 5000 meetings, newest first.","operationId":"recorded-meetings","parameters":[{"description":"Start of the window, included. Defaults to thirty days ago.","explode":false,"in":"query","name":"since","schema":{"description":"Start of the window, included. Defaults to thirty days ago.","format":"date-time","type":"string"}},{"description":"End of the window, excluded. Defaults to now.","explode":false,"in":"query","name":"until","schema":{"description":"End of the window, excluded. Defaults to now.","format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataRecordedWindow"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Transcribed meetings in a window","tags":["evidence"]}},"/v1/meetings/seen":{"post":{"description":"Written by the Zoom launcher for every meeting.started it accepts, including the ones it declines to record. Upserts on the Zoom occurrence id. Not evidence, and not read by the knowledge layer.","operationId":"record-meeting-seen","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestRecordSeenData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataMeetingSeen"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Record that Zoom said a meeting started","tags":["evidence"]}},"/v1/meetings/sentiment":{"get":{"description":"Platform admin only. Human lines in transcribed Zoom meetings, scored with VADER from -1 to 1. One row per speaker per day. The day is the meeting start in America/New_York. A line at or above 0.05 is positive, and at or below -0.05 is negative. Balance is the average score.","operationId":"meeting-sentiment","parameters":[{"description":"Start of the window, included. Defaults to thirty days ago.","explode":false,"in":"query","name":"since","schema":{"description":"Start of the window, included. Defaults to thirty days ago.","format":"date-time","type":"string"}},{"description":"End of the window, excluded. Defaults to now.","explode":false,"in":"query","name":"until","schema":{"description":"End of the window, excluded. Defaults to now.","format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataListSpeakerSentiment"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Word choice by speaker","tags":["evidence"]}},"/v1/meetings/series":{"get":{"description":"Platform admin only. Counts only — whether a series is a standing forum, or whether its misses matter, is the reader's judgement rather than this endpoint's.","operationId":"list-meeting-series-capture","parameters":[{"explode":false,"in":"query","name":"source","schema":{"enum":["zoom","plaud","phone","import"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataListSeriesCapture"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"How often each recurring meeting met, and how often it was captured","tags":["evidence"]}},"/v1/notes":{"post":{"description":"A note needs no project. It feeds the company's knowledge layer by default; pass contributes_to_knowledge false to keep it to yourself.","operationId":"create-note","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestCreateNoteData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataEvidenceRecord"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Write a note","tags":["evidence"]}},"/v1/notes/{evidenceId}":{"patch":{"description":"The author's own prose, so no second signature. A meeting's lines are append-only and go through the redaction path instead.","operationId":"update-note","parameters":[{"in":"path","name":"evidenceId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestUpdateNoteData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataEvidenceRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Edit or archive a note","tags":["evidence"]}},"/v1/offices":{"get":{"description":"Officer appointments read from governing documents, ordered by company. Offices that name no single company come last. People who have left are not listed.","operationId":"list-offices","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListOffice"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Every office held by an active person","tags":["graph"]}},"/v1/offices/{id}/dismiss":{"post":{"description":"Reviewer only. The appointment was never right: the wrong person, title, or company. It is ignored from then on, including when the same document is read again. Once the person holds no office at the company, their officer_of edge to it is removed.","operationId":"dismiss-office","parameters":[{"description":"The office.","in":"path","name":"id","required":true,"schema":{"description":"The office.","format":"uuid","type":"string"}}],"responses":{"204":{"description":"No Content"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Dismiss an office the extractor got wrong","tags":["graph"]}},"/v1/offices/{id}/remove":{"post":{"description":"Reviewer only. The appointment was right but has ended. The office no longer shows, and reading the same document again does not bring it back. Once the person holds no office at the company, their officer_of edge to it is removed.","operationId":"remove-office","parameters":[{"description":"The office.","in":"path","name":"id","required":true,"schema":{"description":"The office.","format":"uuid","type":"string"}}],"responses":{"204":{"description":"No Content"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Take a person off an office they no longer hold","tags":["graph"]}},"/v1/outputs/{outputId}":{"get":{"operationId":"get-output","parameters":[{"in":"path","name":"outputId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Omit or 0 for the row named by output_id. A positive value selects that version of the same slug.","explode":false,"in":"query","name":"version","schema":{"description":"Omit or 0 for the row named by output_id. A positive value selects that version of the same slug.","format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataSavedOutput"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Read one saved output","tags":["project"]}},"/v1/people":{"get":{"description":"The same shape as resolve-person without reports. A person two roster entries share a name with is marked ambiguous and carries no title or manager.","operationId":"list-people","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataRoster"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"The roster: every person with a work email, a title, or a place in the reporting structure","tags":["people"]}},"/v1/people/{id}/depart":{"post":{"description":"Reviewer only. The person is marked departed, which re-ingesting a document that names them will not revive. They come off the Authorities rankings and lose their practice tags at once, and later rebuilds leave them out. They stay in the graph and on the entity list, and the claims they made or are named in still count. Their authority signals are kept, so reinstating them restores their standing.","operationId":"depart-person","parameters":[{"description":"The person entity to depart.","in":"path","name":"id","required":true,"schema":{"description":"The person entity to depart.","format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataDepartResult"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Mark a person as having left the company","tags":["people"]}},"/v1/people/{id}/practices":{"get":{"description":"Inferred from what the person authored, decided, attended, worked on, and was mentioned in, measured against the company as a whole, plus any a reviewer confirmed or added. A tag a reviewer removed is not listed. Observed and advisory: a tag is not a team membership and grants nothing.","operationId":"list-person-practices","parameters":[{"description":"The person entity.","in":"path","name":"id","required":true,"schema":{"description":"The person entity.","format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataPersonPractices"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"The practices a person works in","tags":["people"]}},"/v1/people/{id}/practices/{slug}/confirm":{"post":{"description":"Reviewer only. Confirms an inferred tag, or adds one inference did not find. Inference keeps the reviewer's decision and only refreshes the numbers.","operationId":"confirm-person-practice","parameters":[{"description":"The person entity.","in":"path","name":"id","required":true,"schema":{"description":"The person entity.","format":"uuid","type":"string"}},{"description":"The practice slug.","in":"path","name":"slug","required":true,"schema":{"description":"The practice slug.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataPersonPractices"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Confirm or add a practice on a person","tags":["people"]}},"/v1/people/{id}/practices/{slug}/remove":{"post":{"description":"Reviewer only. The tag is kept as removed so inference does not add it back. Confirming it again restores it.","operationId":"remove-person-practice","parameters":[{"description":"The person entity.","in":"path","name":"id","required":true,"schema":{"description":"The person entity.","format":"uuid","type":"string"}},{"description":"The practice slug.","in":"path","name":"slug","required":true,"schema":{"description":"The practice slug.","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataPersonPractices"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Remove a practice from a person","tags":["people"]}},"/v1/people/{id}/reinstate":{"post":{"description":"Reviewer only. A departed person becomes active again. Their authority comes back at the next authority rebuild, which this queues, and their practice tags at the next practice tagging. Tags a reviewer confirmed or removed before the departure are not restored.","operationId":"reinstate-person","parameters":[{"description":"The person entity to depart.","in":"path","name":"id","required":true,"schema":{"description":"The person entity to depart.","format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataDepartResult"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Undo a departure","tags":["people"]}},"/v1/people/me/claims":{"get":{"description":"For the \"You\" page (ADR 0111), through workspace. Live claims connected to the caller's person entity, newest first, each with the source, line, position and author of every citation. No quote text: workspace keeps the claims and quotes from records the caller was present for. An unknown or ambiguous caller gets an empty list.","operationId":"list-my-claims","parameters":[{"description":"Defaults to 200.","explode":false,"in":"query","name":"limit","schema":{"description":"Defaults to 200.","format":"int64","maximum":500,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataMyClaims"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"The published claims about you, with where each citation points","tags":["people"]}},"/v1/people/resolve":{"get":{"description":"Returns the person's formal title and where it came from, their manager, their direct reports, and the accounts they are known by. A link is reported as accepted or review, and only accepted links attribute activity. When the email could mean more than one person (two people share the name, or a rival link for the address is waiting for review) the response has ambiguous set to true and asserts no title, manager, or reports. An unknown email is a 404. Callable by a service acting for a person.","operationId":"resolve-person","parameters":[{"description":"A work email.","explode":false,"in":"query","name":"email","required":true,"schema":{"description":"A work email.","maxLength":320,"minLength":3,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataPersonDetail"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Who a work email belongs to, with title, manager, and reports","tags":["people"]}},"/v1/period-calendar/current":{"get":{"operationId":"get-current-period","parameters":[{"explode":false,"in":"query","name":"legal_entity_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataPeriodCalendar"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Get the entity-local date and Open month"}},"/v1/periods":{"get":{"operationId":"list-periods","parameters":[{"explode":false,"in":"query","name":"legal_entity_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataListClosedPeriod"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List closed periods for a legal entity"}},"/v1/periods/close":{"post":{"operationId":"close-period","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingCommandRequestClosePeriodBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataClosedPeriod"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Close an accounting period"}},"/v1/periods/history":{"get":{"operationId":"list-period-history","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"explode":false,"in":"query","name":"legal_entity_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopePagePeriodHistoryEntry"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List an entity's close and reopen history, newest first"}},"/v1/periods/reopen":{"post":{"operationId":"reopen-period","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingCommandRequestReopenPeriodBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataClosedPeriod"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Reopen a closed accounting period"}},"/v1/plaud/adoption":{"get":{"description":"Any signed-in caller. One row per person over a half-open window. A sign-in is a UTC day they asked for a Plaud token, which the app does when it opens. Recordings are the ones the app uploaded. The cloud sync is not included. Sign-ins start when the register does; a recording from before that still appears.","operationId":"plaud-adoption","parameters":[{"description":"Start of the window, included. Defaults to thirty days ago.","explode":false,"in":"query","name":"since","schema":{"description":"Start of the window, included. Defaults to thirty days ago.","format":"date-time","type":"string"}},{"description":"End of the window, excluded. Defaults to now.","explode":false,"in":"query","name":"until","schema":{"description":"End of the window, excluded. Defaults to now.","format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataListPlaudPerson"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Who opened the Plaud app, and how many recordings they filed","tags":["plaud"]}},"/v1/plaud/devices":{"post":{"description":"Half of binding. The other half happens over Bluetooth when the app is next to the device, so a device registered here records nothing until they have met.","operationId":"bind-plaud-device","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestBindPlaudDeviceData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataPlaudDeviceData"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Register a recorder to the signed-in person","tags":["plaud"]}},"/v1/plaud/user-token":{"post":{"description":"For the recorder app. The token is scoped to the caller and lasts an hour; the partner credential that mints it stays in this service. The Plaud user id is the caller's principal, so a device bound with this token belongs to them. A successful mint is also the sign-in the Plaud report counts, one per person per UTC day.","operationId":"create-plaud-user-token","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataPlaudUserTokenData"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Mint a Plaud token for the signed-in person","tags":["plaud"]}},"/v1/principals/{fid}":{"get":{"description":"The principal's FID, kind and status. An unknown FID is a 404. A person may always read their own principal. For anyone else the person must be allowed identity::ReadServiceAccountPrincipal when the principal is a service account, and identity::GetPrincipal otherwise. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"get-principal","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"description":"The principal's FID.","in":"path","name":"fid","required":true,"schema":{"description":"The principal's FID.","maxLength":255,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataPrincipalStatus"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"Read a principal's status","tags":["principal"]}},"/v1/principals/{fid}/grants":{"get":{"description":"Every grant the principal holds, from every source, including grants whose expiry has passed. A person may always list their own grants. For anyone else the person must be allowed identity::ReadServiceAccountPrincipal when the principal is a service account, and identity::ListPrincipalGrants otherwise. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"list-principal-grants","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"description":"The principal's FID.","in":"path","name":"fid","required":true,"schema":{"description":"The principal's FID.","maxLength":255,"minLength":1,"type":"string"}},{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopePageListedGrant"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"List a principal's grants","tags":["principal"]}},"/v1/principals/snapshot":{"get":{"description":"Every principal, every unexpired grant and every endpoint_access row, read in one transaction so the three lists come from the same moment. Services that authorize requests keep a local copy of it and refresh it periodically. Requires Authorization: Bearer with a client_credentials access token for this service's audience, issued to a client that is an active system principal holding principal-reader at global scope. Any other token, or none, is a 401; a verified token of any other caller is a 403.","operationId":"principal-snapshot","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataPrincipalSnapshot"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"machineToken":[]}],"summary":"Read every principal, grant and endpoint access row","tags":["principal"]}},"/v1/project-templates":{"get":{"description":"The built-in templates first, one per workflow, then shared templates and your own.","operationId":"list-project-templates","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageTemplate"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List templates you can start from","tags":["project"]},"post":{"operationId":"create-project-template","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestCreateTemplateData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataTemplate"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Create a project template","tags":["project"]}},"/v1/projects":{"get":{"description":"A platform admin sees every project, including other people's scratchpads. They are not added as members. Send X-Flow-As-Member: true to list only the projects you belong to; that header cannot grant admin.","operationId":"list-projects","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Restrict to one status.","explode":false,"in":"query","name":"status","schema":{"description":"Restrict to one status.","enum":["active","archived"],"type":"string"}},{"description":"Matches name or description. Empty lists every project in scope.","explode":false,"in":"query","name":"q","schema":{"description":"Matches name or description. Empty lists every project in scope.","maxLength":200,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageProject"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List the projects you belong to","tags":["project"]},"post":{"description":"Anyone signed in may create a project; they become its owner. Platform admin is not required. Requires an Idempotency-Key header.","operationId":"create-project","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestCreateProjectData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataProject"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Create a project","tags":["project"]}},"/v1/projects/{id}":{"delete":{"description":"Owner only. The rows survive; recovery is an operator task.","operationId":"delete-project","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"204":{"description":"No Content"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Soft-delete a project","tags":["project"]},"get":{"operationId":"get-project","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataProject"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Get a project","tags":["project"]},"patch":{"description":"Owner only. Requires an Idempotency-Key header.","operationId":"update-project","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestUpdateProjectData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataProject"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Update a project","tags":["project"]}},"/v1/projects/{id}/activity":{"get":{"description":"Cursor-paginated, newest first. The feed is append-only and polled, so offsets would re-scan a growing prefix.","operationId":"list-project-activity","parameters":[{"description":"Opaque position from a previous response's meta.cursor.next","explode":false,"in":"query","name":"pagination[cursor]","schema":{"description":"Opaque position from a previous response's meta.cursor.next","maxLength":512,"type":"string"}},{"description":"Maximum items to return","explode":false,"in":"query","name":"pagination[limit]","schema":{"default":50,"description":"Maximum items to return","format":"int64","maximum":200,"minimum":1,"type":"integer"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeCursorActivity"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Read a project's activity feed","tags":["project"]}},"/v1/projects/{id}/break-glass":{"post":{"description":"Platform admin only, viewer only, and it expires. Recorded in the project's own activity feed so members can see an admin was here.","operationId":"open-break-glass","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestBreakGlassData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataStewardGrant"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Grant yourself temporary read access","tags":["stewardship"]}},"/v1/projects/{id}/case-value":{"get":{"description":"Identified, approved, posted, and collected are separate. Expected value, including a recurring projection, is separate again. Cases that share a subject are counted once, and dismissed cases contribute reasons rather than money.","operationId":"get-project-case-value","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataCaseValue"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Report what the cases are worth, stage by stage","tags":["project"]}},"/v1/projects/{id}/cases":{"get":{"operationId":"list-project-cases","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"explode":false,"in":"query","name":"status","schema":{"enum":["needs_validation","accepted","in_progress","verified","dismissed"],"type":"string"}},{"description":"When true, only cases that still need a decision, the work, or the check.","explode":false,"in":"query","name":"actionable","schema":{"description":"When true, only cases that still need a decision, the work, or the check.","type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageCase"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List a project's cases","tags":["project"]},"post":{"description":"A finding starts at needs validation. An apparent mismatch is a case to review, not an instruction to bill.","operationId":"create-project-case","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestCreateCaseData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataCase"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Open a case","tags":["project"]}},"/v1/projects/{id}/cases/{caseId}":{"get":{"operationId":"get-project-case","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"caseId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataCase"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Read one case","tags":["project"]},"post":{"description":"Verified and dismissed cases stay as written. Amounts are recorded separately.","operationId":"update-project-case","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"caseId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestUpdateCaseData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataCase"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Update a case that is still open","tags":["project"]}},"/v1/projects/{id}/cases/{caseId}/amounts":{"post":{"description":"Stages are recorded in order: identified, then approved, then posted, then collected. Approved waits for acceptance. Posted and collected wait until the work is in progress. A collected amount says whether the payment can be tied to the correction.","operationId":"record-project-case-amount","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"caseId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestRecordAmountData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataCase"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Record one stage of the outcome","tags":["project"]}},"/v1/projects/{id}/cases/{caseId}/transition":{"post":{"description":"Needs validation can be accepted or dismissed. Accepted can start or be dismissed. In progress can be verified or dismissed. Verification needs a method. Dismissal needs a reason.","operationId":"transition-project-case","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"caseId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestTransitionCaseData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataCase"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Move a case to its next status","tags":["project"]}},"/v1/projects/{id}/changes":{"get":{"description":"Without since, returns only seq: read it before loading the tasks, then send it back as since. With since, returns the tasks that changed after it and the seq to send next time.","operationId":"get-project-changes","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"The seq from your last read. Leave it out to read only the current seq.","explode":false,"in":"query","name":"since","schema":{"description":"The seq from your last read. Leave it out to read only the current seq.","maxLength":19,"pattern":"^[0-9]+$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataProjectChangeSet"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"What changed on a project since you last read it","tags":["project"]}},"/v1/projects/{id}/conversations":{"get":{"operationId":"list-conversations","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"explode":false,"in":"query","name":"status","schema":{"enum":["active","archived"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageConversation"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List a project's conversations","tags":["conversation"]}},"/v1/projects/{id}/data-sources":{"get":{"operationId":"list-project-data-sources","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataListDataSource"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List a project's data sources","tags":["project"]},"post":{"operationId":"add-project-data-source","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestAddDataSourceData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataDataSource"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Give a project's agents access to a data source","tags":["project"]}},"/v1/projects/{id}/data-sources/{sourceId}":{"delete":{"operationId":"remove-project-data-source","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"sourceId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"204":{"description":"No Content"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Remove a data source","tags":["project"]}},"/v1/projects/{id}/decisions":{"get":{"operationId":"list-project-decisions","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"explode":false,"in":"query","name":"state","schema":{"enum":["proposed","approved","superseded"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageDecision"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List a project's decisions","tags":["project"]},"post":{"operationId":"propose-project-decision","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestProposeDecisionData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataDecision"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Propose a decision","tags":["project"]}},"/v1/projects/{id}/decisions/{decisionId}":{"get":{"description":"For a caller holding a pointer at one decision — a knowledge citation, a notification — rather than a page of them.","operationId":"get-project-decision","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"decisionId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataDecision"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Read one decision","tags":["project"]}},"/v1/projects/{id}/decisions/{decisionId}/approve":{"post":{"description":"Owner only. Supersedes whatever held the same key. Approval is what the knowledge layer treats as authoritative.","operationId":"approve-project-decision","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"decisionId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataDecision"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Approve a decision","tags":["project"]}},"/v1/projects/{id}/digest":{"get":{"description":"Counted from the activity feed, bounded by your previous visit, and cached against the feed position it was computed at.","operationId":"get-project-digest","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataDigest"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"What changed since you were last here","tags":["project"]}},"/v1/projects/{id}/evidence":{"get":{"operationId":"list-project-evidence","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"explode":false,"in":"query","name":"kind","schema":{"enum":["note","meeting","thread","document"],"type":"string"}},{"explode":false,"in":"query","name":"source","schema":{"enum":["manual","slack","zoom","import","document","github","azuredevops","plaud","phone","coding_plan","flow_tools","email"],"type":"string"}},{"explode":false,"in":"query","name":"status","schema":{"enum":["active","archived"],"type":"string"}},{"description":"When true, only records the caller authored or is named on the roster of.","explode":false,"in":"query","name":"mine","schema":{"description":"When true, only records the caller authored or is named on the roster of.","type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageEvidenceRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List what is filed under a project","tags":["evidence"]}},"/v1/projects/{id}/export":{"get":{"description":"Conversations as markdown plus the project's items, decisions, outputs, and data sources. Editors only. Long conversations are truncated, and the response says which.","operationId":"export-project","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataExport"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Everything in a project, in one response","tags":["project"]}},"/v1/projects/{id}/files":{"get":{"description":"Page mode. A caller sees files they uploaded. A platform admin sees every file on the project. Narrow to one conversation's attachments with conversation_id.","operationId":"list-files","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Only this conversation's attachments.","explode":false,"in":"query","name":"conversation_id","schema":{"description":"Only this conversation's attachments.","format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageFile"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List a project's files","tags":["file"]},"post":{"description":"Step two of two. Requires an Idempotency-Key header and a blob_name from the upload-url call. An uploaded file is also filed as evidence on the project. A chat attachment and a saved output are not. A recording is left for the meeting that claims it.","operationId":"create-file","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestCreateFileData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataFile"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Record an uploaded file against a project","tags":["file"]}},"/v1/projects/{id}/files/upload-url":{"post":{"description":"Step one of two. PUT the bytes to upload_url, then POST /v1/projects/{id}/files with the returned blob_name. Requires editor access to the project.","operationId":"create-file-upload-url","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCreateFileUploadURLData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataUploadTicket"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Mint a write URL for a project file","tags":["file"]}},"/v1/projects/{id}/goals":{"get":{"description":"Active and closed, oldest first.","operationId":"list-project-goals","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataListGoal"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List a project's goals","tags":["project"]},"post":{"description":"Owners only. The lead must be a member of the project. A project has at most 5 active goals.","operationId":"create-project-goal","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestCreateGoalData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataGoal"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Set a goal","tags":["project"]}},"/v1/projects/{id}/goals/{goalId}":{"delete":{"description":"Owners only. Its tasks are unlinked, and each unlink is in that task's change log. A goal with check-ins can't be deleted; close it as dropped instead.","operationId":"delete-project-goal","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"goalId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"204":{"description":"No Content"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Delete a goal","tags":["project"]},"patch":{"description":"An owner may change anything. The goal's lead may change only status and closing_note. Achieved, missed, and dropped need a closing note. An empty target_date makes the goal ongoing.","operationId":"update-project-goal","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"goalId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestUpdateGoalData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataGoal"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Edit a goal or report how it is going","tags":["project"]}},"/v1/projects/{id}/goals/{goalId}/checkins":{"get":{"description":"Newest first.","operationId":"list-project-goal-checkins","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"goalId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageGoalCheckin"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List a goal's check-ins","tags":["project"]},"post":{"description":"The goal's lead or a project owner, on an active goal. The goal takes the check-in's status. The note is one line. Close a goal by updating it with a closing note.","operationId":"create-project-goal-checkin","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"goalId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestCreateGoalCheckinData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataGoalCheckin"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Check in on a goal","tags":["project"]}},"/v1/projects/{id}/handoffs":{"get":{"operationId":"list-project-handoffs","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"explode":false,"in":"query","name":"state","schema":{"enum":["draft","offered","changes_requested","accepted","cancelled"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageHandoff"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List a project's handoffs","tags":["project"]},"post":{"description":"The caller is the sender. The receiver must already be on the project. Offering it is a separate step.","operationId":"create-project-handoff","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestCreateHandoffData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataHandoff"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Draft a handoff","tags":["project"]}},"/v1/projects/{id}/handoffs/{handoffId}":{"get":{"operationId":"get-project-handoff","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"handoffId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataHandoff"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Read one handoff","tags":["project"]},"post":{"description":"A draft is edited in place. A package that was offered or accepted is written as a new revision. Earlier receipts stay.","operationId":"update-project-handoff","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"handoffId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestUpdateHandoffData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataHandoff"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Revise a handoff","tags":["project"]}},"/v1/projects/{id}/handoffs/{handoffId}/accept":{"post":{"description":"Only the named receiver. Acceptance means they can take the next step. It does not finish the work or verify a case. A stale revision is rejected.","operationId":"accept-project-handoff","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"handoffId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestRevisionData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataHandoff"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Accept the offered revision","tags":["project"]}},"/v1/projects/{id}/handoffs/{handoffId}/cancel":{"post":{"operationId":"cancel-project-handoff","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"handoffId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestCancelData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataHandoff"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Cancel a handoff that has not been accepted","tags":["project"]}},"/v1/projects/{id}/handoffs/{handoffId}/changes":{"post":{"description":"Opens an unblock request for the sender. The handoff stays unaccepted.","operationId":"request-project-handoff-changes","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"handoffId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestChangesData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataHandoff"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Say what is missing","tags":["project"]}},"/v1/projects/{id}/handoffs/{handoffId}/offer":{"post":{"operationId":"offer-project-handoff","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"handoffId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestRevisionData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataHandoff"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Offer the current revision","tags":["project"]}},"/v1/projects/{id}/handoffs/{handoffId}/propose-reassignment":{"post":{"description":"Records the suggestion. It does not change the receiver and it is not an acceptance.","operationId":"propose-project-handoff-reassignment","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"handoffId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestReassignData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataHandoff"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Suggest a different receiver","tags":["project"]}},"/v1/projects/{id}/handoffs/{handoffId}/reassign":{"post":{"description":"The sender or a project owner. The new receiver has not accepted.","operationId":"apply-project-handoff-reassignment","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"handoffId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestReassignData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataHandoff"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Name a different receiver","tags":["project"]}},"/v1/projects/{id}/item-types":{"get":{"description":"The project's workflow's types, in the order a picker lists them. A task keeps its type even when the workflow does not offer it.","operationId":"list-project-item-types","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataListItemType"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List the task types a project offers","tags":["project"]}},"/v1/projects/{id}/items":{"get":{"description":"Top of the project first. Archived tasks are left out unless archived is true or all.","operationId":"list-project-items","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"explode":false,"in":"query","name":"state","schema":{"enum":["open","resolved"],"type":"string"}},{"explode":false,"in":"query","name":"kind","schema":{"enum":["question","task","note"],"type":"string"}},{"explode":false,"in":"query","name":"type","schema":{"maxLength":32,"type":"string"}},{"explode":false,"in":"query","name":"category","schema":{"enum":["backlog","unstarted","started","review","completed","canceled"],"type":"string"}},{"explode":false,"in":"query","name":"status_id","schema":{"format":"uuid","type":"string"}},{"explode":false,"in":"query","name":"assignee","schema":{"maxLength":320,"type":"string"}},{"description":"A goal id, or none for tasks without a goal.","explode":false,"in":"query","name":"goal_id","schema":{"description":"A goal id, or none for tasks without a goal.","type":"string"}},{"description":"Defaults to false.","explode":false,"in":"query","name":"archived","schema":{"description":"Defaults to false.","enum":["false","true","all"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List a project's items","tags":["project"]},"post":{"description":"Editors only. Send type, or kind as older clients do. The task goes to the top of the project, in Triage on a product development project or Todo on a general one, unless status_id names another status. A new owner must be a member of the project.","operationId":"create-project-item","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestCreateItemData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataItem"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Add a task, question, or note","tags":["project"]}},"/v1/projects/{id}/items/{itemId}":{"get":{"description":"For a caller holding a pointer at one item — a knowledge citation, a notification — rather than a page of them.","operationId":"get-project-item","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"itemId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Read one item","tags":["project"]},"patch":{"description":"Editors only. A change to the title, body, type, fields, links, or resolution writes a new version and needs the version you read; a stale one gets 409 stale_version with the current task. Status, owner, target date, and goal changes never need it. after_id and before_id place the task as a move does, so one edit can change its status and where it lands. An empty assignee, target_date, or goal_id clears it. An archived task gets 409 item_archived.","operationId":"update-project-item","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"itemId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestUpdateItemData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Edit a task","tags":["project"]}},"/v1/projects/{id}/items/{itemId}/archive":{"post":{"description":"Open or finished. Archiving is how a project drops work it no longer wants: nothing is deleted. An archived task is hidden from views, read-only until it is unarchived, and keeps its status. What it says, and whether that counts as evidence, does not change.","operationId":"archive-project-item","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"itemId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Archive a task","tags":["project"]}},"/v1/projects/{id}/items/{itemId}/history":{"get":{"operationId":"get-project-item-history","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"itemId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataItemHistory"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"A task's versions and change log","tags":["project"]}},"/v1/projects/{id}/items/{itemId}/move":{"post":{"description":"after_id is the task directly above where this one lands and before_id the one directly below. Leave both out to keep its position. A resolution needs version.","operationId":"move-project-item","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"itemId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestMoveItemData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Move a task to a status and a position","tags":["project"]}},"/v1/projects/{id}/items/{itemId}/resolve":{"post":{"description":"Kept for older clients. Moves the task to the Done status. A bug with no resolution is refused, because these clients cannot write one.","operationId":"resolve-project-item","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"itemId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Mark an item resolved","tags":["project"]}},"/v1/projects/{id}/items/{itemId}/restore":{"post":{"description":"Writes a new version copying from_version's content. version is the version you read.","operationId":"restore-project-item","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"itemId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestRestoreItemData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Restore an earlier version of a task","tags":["project"]}},"/v1/projects/{id}/items/{itemId}/unarchive":{"post":{"operationId":"unarchive-project-item","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"itemId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataItem"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Unarchive a task","tags":["project"]}},"/v1/projects/{id}/items/changes":{"get":{"description":"Status, owner, date, archive, goal, and position changes to every task in the project, archived ones included, newest first. field narrows it to one kind of change.","operationId":"list-project-item-changes","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Only changes to this field.","explode":false,"in":"query","name":"field","schema":{"description":"Only changes to this field.","enum":["status","position","assignee","target_date","archived","goal"],"type":"string"}},{"explode":false,"in":"query","name":"limit","schema":{"default":100,"format":"int32","maximum":500,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataListProjectItemChange"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"The change log across a project's tasks","tags":["project"]}},"/v1/projects/{id}/join-requests":{"get":{"operationId":"list-project-join-requests","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"explode":false,"in":"query","name":"state","schema":{"enum":["pending","approved","denied"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataListJoinRequestRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List join requests","tags":["project"]},"post":{"description":"Available to anyone; the project must be listed. Asking twice does not queue two decisions.","operationId":"request-project-join","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestRequestJoinData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataJoinRequestRecord"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Ask to join a listed project","tags":["project"]}},"/v1/projects/{id}/join-requests/{principal}/decision":{"post":{"description":"Owner only. Approval adds the member in the same transaction.","operationId":"decide-project-join-request","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"principal","required":true,"schema":{"maxLength":320,"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestDecideJoinData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataJoinRequestRecord"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Approve or deny a join request","tags":["project"]}},"/v1/projects/{id}/knowledge-sections":{"get":{"description":"Served from cache. A project with no pack yet returns empty sections rather than a 404, because workspace renders the project-only pack either way and an error here would look like a broken project. A pack whose inputs changed returns empty sections with stale=true and a rebuild queued: its cached contents are known to be wrong, and reasoning off them is worse than reasoning off nothing.","operationId":"get-project-knowledge-sections","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataKnowledgeSections"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"The derived half of a project's context pack","tags":["knowledge"]}},"/v1/projects/{id}/legal-hold":{"put":{"description":"Platform admin only. A held project stops contributing to the knowledge layer and cannot be deleted; intelligence stops deriving from it when it sees the event.","operationId":"set-legal-hold","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestLegalHoldData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataProject"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Freeze a project for litigation","tags":["stewardship"]}},"/v1/projects/{id}/members":{"get":{"operationId":"list-project-members","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataListMember"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List a project's members","tags":["project"]}},"/v1/projects/{id}/members/{principal}":{"delete":{"description":"Owner only. The last owner cannot be removed.","operationId":"remove-project-member","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"principal","required":true,"schema":{"maxLength":320,"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"204":{"description":"No Content"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Remove a member","tags":["project"]},"put":{"description":"Owner only. PUT because the outcome is the same whether or not the person was already a member.","operationId":"add-project-member","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"principal","required":true,"schema":{"maxLength":320,"type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestAddMemberData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataMember"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Invite a member or change their role","tags":["project"]}},"/v1/projects/{id}/outputs":{"get":{"operationId":"list-project-outputs","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Defaults to active.","explode":false,"in":"query","name":"status","schema":{"description":"Defaults to active.","enum":["active","superseded","archived"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageSavedOutput"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List a project's saved outputs","tags":["project"]},"post":{"operationId":"save-project-output","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestSaveOutputData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataSavedOutput"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Keep something out of a conversation","tags":["project"]}},"/v1/projects/{id}/pack":{"get":{"description":"The project's own state plus the company knowledge that bears on it. Degrades to project-only when the knowledge layer is unavailable or is rebuilding this project's pack; check knowledge.degraded and knowledge.rebuilding rather than assuming an empty section means nothing is known.","operationId":"get-project-pack","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataPack"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Everything an agent should know before answering","tags":["project"]}},"/v1/projects/{id}/presentations":{"get":{"operationId":"list-presentations","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePagePresentationSummary"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List a project's presentations","tags":["project"]},"post":{"description":"Reads the audience and the supplied sources and stores an outline. It does not render slides yet. Missing audience, objective, or focus comes back as questions.","operationId":"draft-presentation","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestDraftPresentationData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataPresentation"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Draft a presentation outline","tags":["project"]}},"/v1/projects/{id}/presentations/{presentationId}":{"get":{"operationId":"get-presentation","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"presentationId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Zero reads the current draft.","explode":false,"in":"query","name":"revision","schema":{"description":"Zero reads the current draft.","format":"int32","minimum":0,"type":"integer"}},{"description":"Read the shared revision instead of the current draft.","explode":false,"in":"query","name":"shared","schema":{"description":"Read the shared revision instead of the current draft.","type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataPresentation"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Read one presentation revision","tags":["project"]}},"/v1/projects/{id}/presentations/{presentationId}/build":{"post":{"description":"Fits the outline to the pinned Flow Decks template and stores the file specification as a new revision. A failed render keeps that specification so it can be resumed.","operationId":"build-presentation","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"presentationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestBuildPresentationData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataPresentation"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Render the approved outline","tags":["project"]}},"/v1/projects/{id}/presentations/{presentationId}/file":{"get":{"operationId":"download-presentation","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"presentationId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Zero reads the current draft.","explode":false,"in":"query","name":"revision","schema":{"description":"Zero reads the current draft.","format":"int32","minimum":0,"type":"integer"}},{"description":"Read the shared revision instead of the current draft.","explode":false,"in":"query","name":"shared","schema":{"description":"Read the shared revision instead of the current draft.","type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataPresentationFile"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Download the PowerPoint file for one revision","tags":["project"]}},"/v1/projects/{id}/presentations/{presentationId}/resume":{"post":{"operationId":"resume-presentation","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"presentationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandRequestStruct {}"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataPresentation"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Render a saved specification again","tags":["project"]}},"/v1/projects/{id}/presentations/{presentationId}/revisions":{"post":{"description":"Locked slides are copied into the new revision. A shared revision is not rewritten.","operationId":"revise-presentation","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"presentationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestRevisePresentationData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataPresentation"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Revise selected slides","tags":["project"]}},"/v1/projects/{id}/presentations/{presentationId}/share":{"post":{"description":"Later edits insert a new draft. They do not change the shared revision.","operationId":"share-presentation","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"presentationId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandRequestStruct {}"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataPresentation"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Pin the current revision as shared","tags":["project"]}},"/v1/projects/{id}/redactions":{"get":{"operationId":"list-pending-redactions","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataListRedaction"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List redaction requests awaiting approval","tags":["conversation"]}},"/v1/projects/{id}/status":{"post":{"description":"Archiving freezes writes. Nothing is hidden and nothing is lost.","operationId":"set-project-status","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestSetProjectStatusData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataProject"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Archive or unarchive a project","tags":["project"]}},"/v1/projects/{id}/statuses":{"get":{"description":"The project's workflow's statuses. Each status belongs to one of six fixed categories.","operationId":"list-project-statuses","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataListItemStatusDefinition"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List the statuses a project's tasks can be in","tags":["project"]}},"/v1/projects/{id}/transfer-ownership":{"post":{"description":"Platform admin only. Grants the successor ownership and removes the departing member in one transaction, which is what makes offboarding the last owner possible at all.","operationId":"transfer-project-ownership","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestTransferOwnershipData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataProject"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Move ownership off a departing person","tags":["stewardship"]}},"/v1/projects/{id}/unblock-requests":{"get":{"operationId":"list-project-unblock-requests","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"explode":false,"in":"query","name":"state","schema":{"enum":["open","answered","resolved","withdrawn","superseded"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageUnblockRequest"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List a project's unblock requests","tags":["project"]},"post":{"description":"A person writes the request. The responder must already be on the project.","operationId":"create-project-unblock-request","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestCreateUnblockData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataUnblockRequest"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Ask one person a question that is blocking work","tags":["project"]}},"/v1/projects/{id}/unblock-requests/{requestId}":{"get":{"operationId":"get-project-unblock-request","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"requestId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataUnblockRequest"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Read one unblock request","tags":["project"]}},"/v1/projects/{id}/unblock-requests/{requestId}/answer":{"post":{"description":"The request becomes answered, not resolved. A decision id is a pointer. It does not approve the decision.","operationId":"answer-project-unblock-request","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"requestId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestAnswerData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataUnblockRequest"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Answer an unblock request","tags":["project"]}},"/v1/projects/{id}/unblock-requests/{requestId}/redirect":{"post":{"operationId":"redirect-project-unblock-request","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"requestId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestRedirectData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataUnblockRequest"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Name a different responder","tags":["project"]}},"/v1/projects/{id}/unblock-requests/{requestId}/resolve":{"post":{"description":"Does not accept a linked handoff or verify a linked case.","operationId":"resolve-project-unblock-request","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"requestId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestRevisionData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataUnblockRequest"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Confirm the answer is enough","tags":["project"]}},"/v1/projects/{id}/unblock-requests/{requestId}/return":{"post":{"description":"The request is open again. The answer stays, marked as not enough.","operationId":"return-project-unblock-request","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"requestId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestReturnData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataUnblockRequest"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Send an answer back","tags":["project"]}},"/v1/projects/{id}/unblock-requests/{requestId}/snooze":{"post":{"operationId":"snooze-project-unblock-request","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"requestId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestSnoozeData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataUnblockRequest"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Hide a request from the short queue until a time","tags":["project"]}},"/v1/projects/{id}/unblock-requests/{requestId}/supersede":{"post":{"operationId":"supersede-project-unblock-request","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"requestId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestSupersedeData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataUnblockRequest"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Replace a request with a newer one","tags":["project"]}},"/v1/projects/{id}/unblock-requests/{requestId}/withdraw":{"post":{"operationId":"withdraw-project-unblock-request","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"requestId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestWithdrawData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataUnblockRequest"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Withdraw a request that is no longer needed","tags":["project"]}},"/v1/projects/{id}/views":{"get":{"description":"In tab order. Every project starts with its workflow's views. A filter value the project no longer offers, such as a retired status or a deleted goal, is left out.","operationId":"list-project-views","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataListView"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List a project's saved views","tags":["project"]},"post":{"description":"Editors only. The view goes after the last tab. A project has at most 20 views, and no two share a name.","operationId":"create-project-view","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestCreateViewData"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataView"}}},"description":"Created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Save a view","tags":["project"]}},"/v1/projects/{id}/views/{viewId}":{"delete":{"description":"Owners only. A starting view can be deleted like any other.","operationId":"delete-project-view","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"viewId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"204":{"description":"No Content"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Delete a view","tags":["project"]},"patch":{"description":"Editors only. Needs the version you read; a stale one gets 409 stale_version with the current view. filters, when sent, replaces the view's filters.","operationId":"update-project-view","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"viewId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestUpdateViewData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataView"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Edit a view","tags":["project"]}},"/v1/projects/{id}/views/order":{"put":{"description":"Owners only. view_ids names every view on the project once, in the new order. Returns the views in that order. A view's version does not change.","operationId":"reorder-project-views","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCommandRequestReorderViewsData"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataListView"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Reorder a project's views","tags":["project"]}},"/v1/projects/{id}/visit":{"post":{"description":"Returns the previous visit time, which is the boundary for \"what changed since I was here\".","operationId":"record-project-visit","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataVisit"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Record that you looked at a project","tags":["project"]}},"/v1/projects/gallery":{"get":{"description":"Listed, active projects. Membership is irrelevant; unlisted projects never appear.","operationId":"list-project-gallery","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageProject"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List projects anyone may discover and ask to join","tags":["project"]}},"/v1/property-legal-entities":{"get":{"operationId":"list-property-legal-entities","parameters":[{"description":"Only properties owned by this legal entity","explode":false,"in":"query","name":"legal_entity_code","schema":{"description":"Only properties owned by this legal entity","maxLength":64,"type":"string"}},{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopePagePropertyLegalEntity"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List property ownership, optionally for one legal entity","tags":["property-legal-entity"]},"post":{"description":"Sets the legal entity that owns a property, replacing any previous owner. Assigning the current owner again changes nothing and emits no event.","operationId":"assign-property-legal-entity","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingCommandRequestAssignPropertyLegalEntityBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataPropertyLegalEntity"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Assign a property to the legal entity that owns it","tags":["property-legal-entity"]}},"/v1/property-legal-entities/{property_id}":{"get":{"description":"Returns 404 when the property has not been assigned to a legal entity.","operationId":"get-property-legal-entity","parameters":[{"in":"path","name":"property_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataPropertyLegalEntity"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Get the legal entity that owns a property","tags":["property-legal-entity"]}},"/v1/queries/identity/person/{fid}/setup":{"get":{"description":"setup_pending is true when the person has no way to sign in yet, by the same rule the setup link commands and the Kratos recovery hook use. An unknown FID, or one that is not a person, is a 404. With Kratos unavailable it is a 503. The person must be allowed identity::CreatePersonSetupLink. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"get-person-setup","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"description":"The person principal's FID.","in":"path","name":"fid","required":true,"schema":{"description":"The person principal's FID.","maxLength":255,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataPersonSetup"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Service Unavailable"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"Read whether a person still has to set up a way to sign in","tags":["person"]}},"/v1/redactions/{redactionId}/approve":{"post":{"description":"Project owner or platform admin, and never the requester. The content is unrecoverable; a keyed hash of it is kept so an audit can prove what was removed.","operationId":"approve-turn-redaction","parameters":[{"in":"path","name":"redactionId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataRedaction"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Approve a redaction and destroy the content","tags":["conversation"]}},"/v1/role-types":{"get":{"description":"Every role in the role registry, in role order, with the kind of principal that may hold it, whether it may be given actions, who created it, how many actions it may call and whether it is protected from rename and delete. The person must be allowed identity::ListRoleTypes. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"list-role-types","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopePageListedRoleType"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"List the registered roles","tags":["principal"]}},"/v1/role-types/{role}/holders":{"get":{"description":"How many distinct principals hold the role now, and how many unexpired grants of it there are per scope type. Counts only. An unknown role is a 422 with code unknown_role. The person must be allowed identity::GetRoleHolders. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"role-holders","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"description":"A registered role.","in":"path","name":"role","required":true,"schema":{"description":"A registered role.","maxLength":63,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataRoleHolderCounts"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"Count who holds a role","tags":["principal"]}},"/v1/search/evidence":{"get":{"description":"Conversation turns, project artifacts, notes, and meeting lines. Turns and artifacts are restricted to the projects you belong to; notes and meetings add what you were in, notes you wrote, and what is unfiled and shared with the company. A platform admin searches the whole record. Every restriction is applied inside the query, so result counts cannot reveal matches elsewhere. A relative day (yesterday, today, last week) or a calendar date is a time window on notes and meetings, not a word the text has to contain. Two or more personal names in that kind of question match the people who were in the meeting.","operationId":"search-evidence","parameters":[{"description":"Restrict original records and utterances by connector before ranking. Requires kind records or utterances.","explode":false,"in":"query","name":"source","schema":{"description":"Restrict original records and utterances by connector before ranking. Requires kind records or utterances.","enum":["manual","slack","zoom","import","document","github","azuredevops","plaud","phone","email"],"type":"string"}},{"description":"When true, Zoom meetings with no transcript lines are left out of record search. Other sources, and utterance search, are unchanged.","explode":false,"in":"query","name":"has_transcript","schema":{"description":"When true, Zoom meetings with no transcript lines are left out of record search. Other sources, and utterance search, are unchanged.","type":"boolean"}},{"description":"When true, record search keeps only records intelligence has drawn at least one claim from. Utterance search is unchanged. Fails if intelligence cannot be reached.","explode":false,"in":"query","name":"has_claims","schema":{"description":"When true, record search keeps only records intelligence has drawn at least one claim from. Utterance search is unchanged. Fails if intelligence cannot be reached.","type":"boolean"}},{"description":"Original record or utterance time lower bound (RFC3339). Requires kind records or utterances.","explode":false,"in":"query","name":"since","schema":{"description":"Original record or utterance time lower bound (RFC3339). Requires kind records or utterances.","format":"date-time","type":"string"}},{"description":"websearch syntax: quoted phrases, OR, and leading - to exclude. A relative day such as yesterday, today, or last week, or a YYYY-MM-DD date, is a time window on notes and meetings rather than a required word. Two or more personal names in that kind of question match who was in the meeting.","explode":false,"in":"query","name":"q","required":true,"schema":{"description":"websearch syntax: quoted phrases, OR, and leading - to exclude. A relative day such as yesterday, today, or last week, or a YYYY-MM-DD date, is a time window on notes and meetings rather than a required word. Two or more personal names in that kind of question match who was in the meeting.","maxLength":500,"minLength":1,"type":"string"}},{"description":"Applied to each kind, so the response can hold up to four times this many hits.","explode":false,"in":"query","name":"limit","schema":{"default":25,"description":"Applied to each kind, so the response can hold up to four times this many hits.","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"description":"Restrict to one part of the record. Defaults to all.","explode":false,"in":"query","name":"kind","schema":{"description":"Restrict to one part of the record. Defaults to all.","enum":["all","turns","artifacts","records","utterances"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataEvidenceResults"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Full-text search over what was said and what was concluded","tags":["search"]}},"/v1/service-accounts":{"get":{"description":"Every service account, deleted ones included, in client_id order. No secret is ever returned. The person must be allowed identity::ListServiceAccounts. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"list-service-accounts","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopePageServiceAccount"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"List service accounts","tags":["service-account"]}},"/v1/service-accounts/{client_id}":{"get":{"description":"One service account. No secret is ever returned. An unknown client_id is a 404. The person must be allowed identity::GetServiceAccount. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"get-service-account","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"description":"The service account's client_id.","in":"path","name":"client_id","required":true,"schema":{"description":"The service account's client_id.","maxLength":63,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopeDataServiceAccount"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"Read a service account","tags":["service-account"]}},"/v1/service-audiences":{"get":{"description":"Every registered service audience, in uri order. The platform audience is not listed: an account may always ask for it alone. The person must be allowed identity::ListServiceAudiences. Requires the shared X-Identity-Admin-App-Key header and Authorization: Bearer with the access token of the person acting, issued to the user admin app. A call without both is a 401. A token that is not a person's token for the user admin app, or a person not allowed the action, is a 403. The person is the actor for everything the call writes. With APP_ENV=local only, X-Identity-Grant-Key alone acts as system instead.","operationId":"list-service-audiences","parameters":[{"description":"The shared admin-app key, sent with the person's access token. Without both, the call is a 401.","in":"header","name":"X-Identity-Admin-App-Key","schema":{"type":"string"}},{"description":"The shared grant key, for local scripts. Accepted only with APP_ENV=local, where it acts as system; with any other APP_ENV every call that carries it is a 401.","in":"header","name":"X-Identity-Grant-Key","schema":{"type":"string"}},{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityEnvelopePageServiceAudience"}}},"description":"OK"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Server Error"}},"security":[{"identityAdminAppKey":[],"personToken":[]},{"identityGrantKey":[]}],"summary":"List the service audience registry","tags":["service-account"]}},"/v1/sessions/{sessionId}/end":{"post":{"operationId":"end-session","parameters":[{"in":"path","name":"sessionId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataSession"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Close a session","tags":["conversation"]}},"/v1/sessions/{sessionId}/heartbeat":{"post":{"description":"A session with no heartbeat past the idle window is closed by the sweeper with reason idle-timeout.","operationId":"heartbeat-session","parameters":[{"in":"path","name":"sessionId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopeDataSession"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Keep a session alive","tags":["conversation"]}},"/v1/spine/calendar":{"get":{"description":"An anchor whose period falls outside this range cannot resolve. Distinguishes a calendar that needs extending from an anchor that is wrong, which are different problems with different fixes.","operationId":"get-spine-calendar-coverage","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataSpineCalendarCoverage"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"How far the generated calendar runs","tags":["spine"]}},"/v1/spine/domain-members":{"get":{"description":"Metrics, warehouse tables, roles and systems, each assigned to exactly one primary business unit. Contested assignments carry a secondary one and are the seed list for the handoff catalogue.","operationId":"list-spine-domain-members","parameters":[{"description":"Matches the primary or the secondary owner, so a domain lead sees the contested things too.","explode":false,"in":"query","name":"domain","schema":{"description":"Matches the primary or the secondary owner, so a domain lead sees the contested things too.","type":"string"}},{"explode":false,"in":"query","name":"kind","schema":{"enum":["metric","table","role","system"],"type":"string"}},{"description":"Only assignments two domains claim. These are where handoffs live.","explode":false,"in":"query","name":"contested_only","schema":{"description":"Only assignments two domains claim. These are where handoffs live.","type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListSpineDomainMember"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"What each business unit owns","tags":["spine"]}},"/v1/spine/domains":{"get":{"description":"The closed list of business units, with each one's clock and seasonality. This is what makes a claim that a finding spans two domains checkable rather than a matter of opinion.","operationId":"list-spine-domains","parameters":[{"description":"Include domains that have been retired. A mechanism estimated before a reorganisation still names the domain it was estimated under.","explode":false,"in":"query","name":"include_retired","schema":{"description":"Include domains that have been retired. A mechanism estimated before a reorganisation still names the domain it was estimated under.","type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListSpineDomain"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"The business-unit registry","tags":["spine"]}},"/v1/spine/identity":{"get":{"description":"Resolves a Slack member id, Zoom participant id or similar onto the entity it belongs to. Only accepted links resolve: an identifier waiting in the review queue answers 404, because attributing it on a guess is how a false merge happens.","operationId":"resolve-spine-identity","parameters":[{"explode":false,"in":"query","name":"system","required":true,"schema":{"enum":["slack","zoom","email","hris","yardi","ticketing","crm","ap","sonar","voice","github","azure_devops"],"type":"string"}},{"explode":false,"in":"query","name":"external_id","required":true,"schema":{"maxLength":400,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataSpineIdentity"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Which subject an external identifier belongs to","tags":["spine"]}},"/v1/spine/identity-reviews":{"get":{"description":"Matches scoring between 0.50 and 0.85, and any match with a close rival. Best scores first, so a reviewer's first few minutes clear the most evidence.","operationId":"list-spine-identity-reviews","parameters":[{"explode":false,"in":"query","name":"limit","schema":{"default":50,"format":"int64","maximum":200,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListSpineIdentityReview"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Identity matches awaiting a human","tags":["spine"]}},"/v1/spine/identity-reviews/{id}/accept":{"post":{"description":"Activates the link, so the external identifier resolves to the subject from now on. A reviewer's decision, because accepting one attributes a person's words to a named human.","operationId":"accept-spine-identity-review","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecideSpineIdentityReviewInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataSpineIdentityReview"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Confirm an identity match","tags":["spine"]}},"/v1/spine/identity-reviews/{id}/reject":{"post":{"description":"Leaves the link in place as a record that the match was considered and refused, so the matcher does not propose it again. The identifier stays free for the correct subject.","operationId":"reject-spine-identity-review","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecideSpineIdentityReviewInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataSpineIdentityReview"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Refuse an identity match","tags":["spine"]}},"/v1/spine/properties":{"get":{"description":"Buildings as the spine knows them. A periodic snapshot of Yardi, not a source of truth: the id is what anchors point at and is stable across refreshes.","operationId":"list-spine-properties","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"explode":false,"in":"query","name":"market","schema":{"type":"string"}},{"explode":false,"in":"query","name":"asset_class","schema":{"enum":["A","B","C"],"type":"string"}},{"explode":false,"in":"query","name":"status","schema":{"enum":["active","disposed","pipeline"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopePageSpineProperty"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"The portfolio","tags":["spine"]}},"/v1/spine/properties/{id}":{"get":{"operationId":"get-spine-property","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataSpineProperty"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"One building","tags":["spine"]}},"/v1/spine/properties/{id}/spaces":{"get":{"description":"Lobbies, amenity rooms, mechanical rooms. These carry their own ids so a plant failure can be attributed to the space it happened in rather than to the whole building.","operationId":"list-spine-spaces","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"explode":false,"in":"query","name":"space_kind","schema":{"enum":["common","amenity","mechanical","back_of_house","retail","other"],"type":"string"}},{"explode":false,"in":"query","name":"status","schema":{"enum":["active","offline","removed"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListSpineSpace"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"A building's non-unit spaces","tags":["spine"]}},"/v1/spine/properties/{id}/units":{"get":{"operationId":"list-spine-units","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}},{"explode":false,"in":"query","name":"status","schema":{"enum":["active","offline","removed"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelligenceEnvelopeDataListSpineUnit"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"A building's leasable units","tags":["spine"]}},"/v1/trial-balance":{"get":{"description":"Lists every account in each property's chart of accounts, plus any account outside it with activity, with its opening balance, the debits and credits posted in the range, and its closing balance. Rows come in chart order, and a header's amounts include everything beneath it. Equity carries a calculated prior years' earnings row, because revenue and expense accounts open at zero each fiscal year, which starts in January. The properties' legal entities must share a currency, and every entity that posted lines for them must use that currency; their charts need not match.","operationId":"get-trial-balance-by-property","parameters":[{"description":"Property ids, comma separated. Each account appears once per property rather than being combined.","explode":false,"in":"query","name":"property_id","required":true,"schema":{"description":"Property ids, comma separated. Each account appears once per property rather than being combined.","items":{"format":"uuid","type":"string"},"minItems":1,"type":"array"}},{"description":"First post month, YYYY-MM, inclusive. Must be in the same fiscal year as to_month.","explode":false,"in":"query","name":"from_month","required":true,"schema":{"description":"First post month, YYYY-MM, inclusive. Must be in the same fiscal year as to_month.","pattern":"^\\d{4}-(0[1-9]|1[0-2])$","type":"string"}},{"description":"Last post month, YYYY-MM, inclusive.","explode":false,"in":"query","name":"to_month","required":true,"schema":{"description":"Last post month, YYYY-MM, inclusive.","pattern":"^\\d{4}-(0[1-9]|1[0-2])$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountingEnvelopeDataTrialBalanceByProperty"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Get the trial balance for one or more properties"}},"/v1/unblock-requests":{"get":{"description":"Every request on a project the caller can read. A platform admin sees all of them. This is not the personal queue.","operationId":"list-review-unblock-requests","parameters":[{"description":"1-based page number","explode":false,"in":"query","name":"pagination[page]","schema":{"default":1,"description":"1-based page number","format":"int64","minimum":1,"type":"integer"}},{"description":"Items per page","explode":false,"in":"query","name":"pagination[pageSize]","schema":{"default":25,"description":"Items per page","format":"int64","maximum":100,"minimum":1,"type":"integer"}},{"explode":false,"in":"query","name":"state","schema":{"enum":["open","answered","resolved","withdrawn","superseded"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceEnvelopePageUnblockRequest"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"List unblock requests the caller can review","tags":["project"]}}}}