{"components":{"schemas":{"AcknowledgeBody":{"properties":{"notification_id":{"description":"Notification ID from the update notification","title":"Notification Id","type":"string"},"rule_id":{"description":"Rule ID being acknowledged","title":"Rule Id","type":"string"}},"required":["rule_id","notification_id"],"title":"AcknowledgeBody","type":"object"},"ActionRequest":{"properties":{"action_type":{"maxLength":128,"minLength":2,"title":"Action Type","type":"string"},"agent_role":{"maxLength":128,"minLength":2,"title":"Agent Role","type":"string"},"campaign_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"title":"Campaign Id"},"confidence":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}],"title":"Confidence"},"delegating_agent_role":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"title":"Delegating Agent Role"},"payload":{"additionalProperties":true,"title":"Payload","type":"object"},"requested_by":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"title":"Requested By"},"requested_tools":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Requested Tools"},"route_path":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Route Path"},"task_class":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"title":"Task Class"},"thread_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"title":"Thread Id"}},"required":["agent_role","action_type","payload"],"title":"ActionRequest","type":"object"},"ActionStatusResponse":{"properties":{"approval_attestation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approval Attestation"},"approved_by_user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Approved By User Id"},"id":{"title":"Id","type":"string"},"resolution_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolution Note"},"resolved_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resolved At"},"status":{"title":"Status","type":"string"}},"required":["id","status"],"title":"ActionStatusResponse","type":"object"},"AiConfigResponse":{"properties":{"has_key":{"title":"Has Key","type":"boolean"},"key_masked":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Masked"},"llm_mode":{"enum":["shared","byok"],"title":"Llm Mode","type":"string"},"provider":{"enum":["openai","anthropic","groq","google","openrouter"],"title":"Provider","type":"string"}},"required":["llm_mode","provider","has_key","key_masked"],"title":"AiConfigResponse","type":"object"},"AlphaScanRequest":{"properties":{"channel":{"default":"other","title":"Channel","type":"string"},"content":{"maxLength":4000,"minLength":1,"title":"Content","type":"string"},"content_type":{"default":"other","title":"Content Type","type":"string"}},"required":["content"],"title":"AlphaScanRequest","type":"object"},"ApiKeyCreateRequest":{"properties":{"name":{"maxLength":120,"minLength":2,"title":"Name","type":"string"},"scopes":{"items":{"type":"string"},"title":"Scopes","type":"array"}},"required":["name"],"title":"ApiKeyCreateRequest","type":"object"},"ApiKeyCreateResponse":{"properties":{"item":{"$ref":"#/components/schemas/ApiKeyItem"},"key":{"title":"Key","type":"string"}},"required":["key","item"],"title":"ApiKeyCreateResponse","type":"object"},"ApiKeyItem":{"properties":{"created_at":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"title":"Created At"},"id":{"title":"Id","type":"string"},"key_prefix":{"title":"Key Prefix","type":"string"},"last_used_at":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"title":"Last Used At"},"name":{"title":"Name","type":"string"},"revoked_at":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"title":"Revoked At"},"scopes":{"items":{"type":"string"},"title":"Scopes","type":"array"}},"required":["id","name","key_prefix","scopes"],"title":"ApiKeyItem","type":"object"},"ApiKeyListResponse":{"properties":{"keys":{"items":{"$ref":"#/components/schemas/ApiKeyItem"},"title":"Keys","type":"array"}},"required":["keys"],"title":"ApiKeyListResponse","type":"object"},"ApplyAutonomyAllowlistIn":{"properties":{"action_id":{"maxLength":64,"minLength":8,"title":"Action Id","type":"string"}},"required":["action_id"],"title":"ApplyAutonomyAllowlistIn","type":"object"},"ApplyPolicyCalibrationIn":{"properties":{"action_id":{"maxLength":64,"minLength":8,"title":"Action Id","type":"string"}},"required":["action_id"],"title":"ApplyPolicyCalibrationIn","type":"object"},"AssistantChatRequest":{"additionalProperties":false,"properties":{"history":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"maxItems":12,"title":"History","type":"array"},"message":{"maxLength":4000,"minLength":1,"title":"Message","type":"string"},"persona_id":{"maxLength":64,"minLength":3,"title":"Persona Id","type":"string"}},"required":["persona_id","message"],"title":"AssistantChatRequest","type":"object"},"AssistantChatResponse":{"additionalProperties":false,"properties":{"pending_review_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pending Review Note"},"persona_id":{"title":"Persona Id","type":"string"},"persona_label":{"title":"Persona Label","type":"string"},"reply":{"title":"Reply","type":"string"},"thread_ref":{"title":"Thread Ref","type":"string"}},"required":["persona_id","persona_label","reply","thread_ref"],"title":"AssistantChatResponse","type":"object"},"AttemptKind":{"description":"Contract for task execution context.\n- production: Standard pipeline execution.\n- sandbox: Healer-triggered verification run in the isolated environment.\n- synthetic: System-generated health checks (e.g., dogfood runs).","enum":["production","sandbox","synthetic"],"title":"AttemptKind","type":"string"},"AuditLogEntry":{"properties":{"action_taken":{"maxLength":128,"minLength":2,"title":"Action Taken","type":"string"},"agent_role":{"maxLength":128,"minLength":2,"title":"Agent Role","type":"string"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"},"resource_id":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"title":"Resource Id"},"status":{"enum":["SUCCESS","ERROR"],"title":"Status","type":"string"}},"required":["agent_role","action_taken","status"],"title":"AuditLogEntry","type":"object"},"AutonomyActionBody":{"properties":{"action_id":{"title":"Action Id","type":"string"},"was_edited":{"default":false,"description":"True when the chairman edited the proposed payload before approving.","title":"Was Edited","type":"boolean"}},"required":["action_id"],"title":"AutonomyActionBody","type":"object"},"AutonomyHeartbeatLoopResult":{"properties":{"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"ok":{"title":"Ok","type":"boolean"},"result":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Result"}},"required":["ok"],"title":"AutonomyHeartbeatLoopResult","type":"object"},"AutonomyHeartbeatResponse":{"properties":{"deep":{"title":"Deep","type":"boolean"},"heartbeat_at":{"title":"Heartbeat At","type":"string"},"loops":{"additionalProperties":{"$ref":"#/components/schemas/AutonomyHeartbeatLoopResult"},"title":"Loops","type":"object"},"ok_count":{"title":"Ok Count","type":"integer"},"status":{"title":"Status","type":"string"},"total_loops":{"title":"Total Loops","type":"integer"}},"required":["heartbeat_at","deep","status","ok_count","total_loops","loops"],"title":"AutonomyHeartbeatResponse","type":"object"},"AwsRoleConnectBody":{"description":"Full connection registration — creates a named integration.","properties":{"external_id":{"default":"","maxLength":256,"title":"External Id","type":"string"},"label":{"default":"default","description":"Human-friendly name for this connection","maxLength":128,"title":"Label","type":"string"},"region":{"default":"us-east-1","maxLength":32,"title":"Region","type":"string"},"role_arn":{"maxLength":512,"minLength":10,"title":"Role Arn","type":"string"}},"required":["role_arn"],"title":"AwsRoleConnectBody","type":"object"},"AwsS3PreviewBody":{"properties":{"bucket":{"maxLength":256,"minLength":1,"title":"Bucket","type":"string"},"delimiter":{"default":",","maxLength":1,"title":"Delimiter","type":"string"},"external_id":{"default":"","maxLength":256,"title":"External Id","type":"string"},"has_header":{"default":true,"title":"Has Header","type":"boolean"},"key":{"maxLength":1024,"minLength":1,"title":"Key","type":"string"},"max_rows":{"default":20,"maximum":500,"minimum":1,"title":"Max Rows","type":"integer"},"region":{"default":"us-east-1","maxLength":32,"title":"Region","type":"string"},"role_arn":{"maxLength":512,"minLength":10,"title":"Role Arn","type":"string"}},"required":["role_arn","bucket","key"],"title":"AwsS3PreviewBody","type":"object"},"CheckRequest":{"description":"Governance check on AI-generated output.\n\nSend ONLY the text produced by your LLM. Do NOT include API keys,\nprompts, or model credentials — those must stay in your own infrastructure.","properties":{"content":{"description":"The AI-generated text to evaluate.","maxLength":100000,"minLength":1,"title":"Content","type":"string"},"content_type":{"default":"other","description":"Type of content — governs which rules apply.","enum":["email","message","document","code","other"],"title":"Content Type","type":"string"},"context":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"}]},"type":"object"},{"type":"null"}],"description":"Optional key/value metadata attached to this check for audit purposes. Do NOT put API keys or secrets here.","title":"Context"},"idempotency_key":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"description":"Re-submitting the same key within 24h returns the original verdict.","title":"Idempotency Key"},"source_model":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"description":"The model NAME that generated this content, e.g. 'gpt-4o'. Used for observability only — never treated as a credential.","title":"Source Model"}},"required":["content"],"title":"CheckRequest","type":"object"},"CheckResponse":{"properties":{"audit_hash":{"title":"Audit Hash","type":"string"},"bundle_hash":{"title":"Bundle Hash","type":"string"},"bundle_name":{"title":"Bundle Name","type":"string"},"decision":{"title":"Decision","type":"string"},"ok":{"title":"Ok","type":"boolean"},"summary":{"additionalProperties":true,"title":"Summary","type":"object"},"timeline":{"items":{"additionalProperties":true,"type":"object"},"title":"Timeline","type":"array"}},"required":["ok","decision","audit_hash","bundle_hash","bundle_name","timeline","summary"],"title":"CheckResponse","type":"object"},"CheckVerdict":{"properties":{"action_id":{"title":"Action Id","type":"string"},"latency_ms":{"title":"Latency Ms","type":"integer"},"review_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Url"},"verdict":{"enum":["safe","blocked","review_required"],"title":"Verdict","type":"string"},"violations":{"items":{"$ref":"#/components/schemas/ViolationDetail"},"title":"Violations","type":"array"}},"required":["verdict","action_id","violations","latency_ms"],"title":"CheckVerdict","type":"object"},"ClaimSubmit":{"description":"Structured incident report for an indemnification claim.","properties":{"claimed_amount_usd":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"description":"Total financial exposure (fines + legal costs) in USD.","title":"Claimed Amount Usd"},"incident_date":{"description":"ISO 8601 date/time when the compliance incident occurred.","title":"Incident Date","type":"string"},"incident_summary":{"description":"Plain-English description of the compliance incident. Include: what AI content was involved, what regulation was triggered, what enforcement action is threatened or underway.","maxLength":5000,"minLength":50,"title":"Incident Summary","type":"string"},"regulation_cited":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"description":"Regulation at issue (e.g. 'HIPAA Privacy Rule 45 C.F.R. § 164').","title":"Regulation Cited"},"regulator_name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"description":"Regulatory body involved (e.g. 'OCR', 'FCC', 'FINRA').","title":"Regulator Name"},"regulator_reference":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"description":"Enforcement case number, docket, or investigation reference.","title":"Regulator Reference"},"submission_ids":{"description":"DataVibe gate submission IDs for the content that caused the incident.","items":{"type":"string"},"maxItems":50,"title":"Submission Ids","type":"array"}},"required":["incident_date","incident_summary"],"title":"ClaimSubmit","type":"object"},"ClientOnboardingRequest":{"properties":{"client_name":{"maxLength":255,"minLength":2,"title":"Client Name","type":"string"},"company_domain":{"maxLength":255,"minLength":3,"title":"Company Domain","type":"string"},"requirements_text":{"maxLength":8000,"minLength":20,"title":"Requirements Text","type":"string"}},"required":["client_name","company_domain","requirements_text"],"title":"ClientOnboardingRequest","type":"object"},"ConnectionTestRequest":{"properties":{"api_token":{"title":"Api Token","type":"string"},"base_url":{"title":"Base Url","type":"string"},"email":{"title":"Email","type":"string"},"project_key":{"title":"Project Key","type":"string"}},"required":["base_url","email","api_token","project_key"],"title":"ConnectionTestRequest","type":"object"},"ContactRequest":{"properties":{"body":{"maxLength":4000,"minLength":1,"title":"Body","type":"string"},"email":{"format":"email","title":"Email","type":"string"},"name":{"maxLength":200,"minLength":1,"title":"Name","type":"string"},"request_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"title":"Request Id"},"source":{"default":"landing.contact","maxLength":64,"title":"Source","type":"string"},"subject":{"default":"Inquiry","maxLength":200,"title":"Subject","type":"string"},"topic":{"default":"contact","maxLength":32,"title":"Topic","type":"string"}},"required":["name","email","body"],"title":"ContactRequest","type":"object"},"ControlDLQResponse":{"properties":{"tasks":{"items":{"$ref":"#/components/schemas/DLQTaskRow"},"title":"Tasks","type":"array"}},"required":["tasks"],"title":"ControlDLQResponse","type":"object"},"ControlQueueMetricsResponse":{"properties":{"acked_total":{"title":"Acked Total","type":"integer"},"active_leases":{"title":"Active Leases","type":"integer"},"by_region":{"additionalProperties":{"type":"integer"},"title":"By Region","type":"object"},"by_shard":{"additionalProperties":{"type":"integer"},"title":"By Shard","type":"object"},"claimed":{"title":"Claimed","type":"integer"},"dead_letter":{"title":"Dead Letter","type":"integer"},"failed":{"title":"Failed","type":"integer"},"pending":{"title":"Pending","type":"integer"},"transport_by_mode":{"additionalProperties":{"type":"integer"},"title":"Transport By Mode","type":"object"},"transport_failures_total":{"default":0,"title":"Transport Failures Total","type":"integer"},"transport_mode":{"enum":["buffered","streamed"],"title":"Transport Mode","type":"string"}},"required":["pending","claimed","acked_total","failed","dead_letter","active_leases","transport_mode"],"title":"ControlQueueMetricsResponse","type":"object"},"ControlRegistryResponse":{"properties":{"actors":{"items":{"$ref":"#/components/schemas/RegistryActorRow"},"title":"Actors","type":"array"},"lease_ttl_seconds":{"title":"Lease Ttl Seconds","type":"integer"},"registry_backend":{"title":"Registry Backend","type":"string"},"transport_mode":{"enum":["buffered","streamed"],"title":"Transport Mode","type":"string"}},"required":["actors","lease_ttl_seconds","transport_mode","registry_backend"],"title":"ControlRegistryResponse","type":"object"},"CostAnalysisRequest":{"properties":{"stripe_balance_cents":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"title":"Stripe Balance Cents"}},"title":"CostAnalysisRequest","type":"object"},"CreateCampaignIn":{"description":"Allocate a parent row for multi-step governed sequences; pass ``campaign_id`` on subsequent ``request_action`` calls.","properties":{"metadata":{"additionalProperties":true,"title":"Metadata","type":"object"},"stage":{"default":"active","maxLength":64,"title":"Stage","type":"string"},"workspace_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"title":"Workspace Id"}},"title":"CreateCampaignIn","type":"object"},"CreateIncidentRequest":{"properties":{"assignment_group":{"default":"","title":"Assignment Group","type":"string"},"category":{"default":"governance","title":"Category","type":"string"},"instance_url":{"description":"ServiceNow instance URL, e.g. https://acme.service-now.com","title":"Instance Url","type":"string"},"password":{"title":"Password","type":"string"},"review_url":{"default":"https://app.datavibe.cc/queue","title":"Review Url","type":"string"},"submission_id":{"title":"Submission Id","type":"string"},"username":{"title":"Username","type":"string"},"violations":{"items":{"additionalProperties":true,"type":"object"},"title":"Violations","type":"array"}},"required":["instance_url","username","password","submission_id"],"title":"CreateIncidentRequest","type":"object"},"CreateIssueRequest":{"properties":{"api_token":{"title":"Api Token","type":"string"},"base_url":{"description":"Jira instance URL, e.g. https://acme.atlassian.net","title":"Base Url","type":"string"},"email":{"title":"Email","type":"string"},"issue_type":{"default":"Bug","title":"Issue Type","type":"string"},"project_key":{"maxLength":20,"minLength":1,"title":"Project Key","type":"string"},"review_url":{"default":"https://app.datavibe.cc/queue","title":"Review Url","type":"string"},"submission_id":{"title":"Submission Id","type":"string"},"violations":{"items":{"additionalProperties":true,"type":"object"},"title":"Violations","type":"array"}},"required":["base_url","email","api_token","project_key","submission_id"],"title":"CreateIssueRequest","type":"object"},"CreateScimTokenRequest":{"properties":{"label":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"title":"Label"}},"title":"CreateScimTokenRequest","type":"object"},"CustomPipelineRequest":{"properties":{"client_brief":{"maxLength":8000,"minLength":20,"title":"Client Brief","type":"string"},"company_domain":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"title":"Company Domain"}},"required":["client_brief"],"title":"CustomPipelineRequest","type":"object"},"DLQTaskRow":{"properties":{"actor_type":{"title":"Actor Type","type":"string"},"attempt":{"title":"Attempt","type":"integer"},"attempt_kind":{"anyOf":[{"$ref":"#/components/schemas/AttemptKind"},{"type":"null"}]},"failure_stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failure Stage"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"max_attempts":{"title":"Max Attempts","type":"integer"},"payload":{"additionalProperties":true,"title":"Payload","type":"object"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"route_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Route Mode"},"shard":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shard"},"task_id":{"title":"Task Id","type":"string"},"tenant_id":{"title":"Tenant Id","type":"string"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"},"updated_at":{"format":"date-time","title":"Updated At","type":"string"},"workspace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Id"}},"required":["task_id","tenant_id","actor_type","attempt","max_attempts","payload","updated_at"],"title":"DLQTaskRow","type":"object"},"DashboardAuditRequest":{"properties":{"extra_context":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}],"title":"Extra Context"}},"title":"DashboardAuditRequest","type":"object"},"DealWonPayload":{"properties":{"campaign_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Campaign Id"},"company_name":{"title":"Company Name","type":"string"},"domain":{"title":"Domain","type":"string"},"email":{"title":"Email","type":"string"},"governance_action_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Governance Action Id"}},"required":["domain","email","company_name"],"title":"DealWonPayload","type":"object"},"DealWonResponse":{"properties":{"briefing_queued":{"title":"Briefing Queued","type":"boolean"},"client_id":{"title":"Client Id","type":"integer"},"status":{"title":"Status","type":"string"}},"required":["client_id","status","briefing_queued"],"title":"DealWonResponse","type":"object"},"EngineeringDevLoopRequest":{"properties":{"incident_log":{"anyOf":[{"maxLength":4000,"type":"string"},{"type":"null"}],"default":"HTTP 500 spike detected in production endpoint /v1/pipelines/generate","title":"Incident Log"},"service_name":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"default":"core-api","title":"Service Name"}},"title":"EngineeringDevLoopRequest","type":"object"},"ExpireStaleResponse":{"properties":{"expired_count":{"title":"Expired Count","type":"integer"},"in_review_reverted":{"title":"In Review Reverted","type":"integer"},"ok":{"title":"Ok","type":"boolean"},"older_than_days":{"title":"Older Than Days","type":"integer"}},"required":["ok","expired_count","in_review_reverted","older_than_days"],"title":"ExpireStaleResponse","type":"object"},"FeatureFlagItem":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"key":{"title":"Key","type":"string"},"updated_at":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"title":"Updated At"},"value":{"title":"Value"}},"required":["key","value"],"title":"FeatureFlagItem","type":"object"},"FeatureFlagsResponse":{"properties":{"flags":{"items":{"$ref":"#/components/schemas/FeatureFlagItem"},"title":"Flags","type":"array"}},"required":["flags"],"title":"FeatureFlagsResponse","type":"object"},"FeaturesResponse":{"properties":{"admin":{"title":"Admin","type":"boolean"},"auth_compat_mode":{"title":"Auth Compat Mode","type":"boolean"},"billing":{"title":"Billing","type":"boolean"},"intelligence":{"title":"Intelligence","type":"boolean"},"max_pipelines":{"title":"Max Pipelines","type":"integer"},"super_admin":{"title":"Super Admin","type":"boolean"},"ui_v2":{"title":"Ui V2","type":"boolean"},"ws_enabled":{"title":"Ws Enabled","type":"boolean"}},"required":["billing","admin","super_admin","max_pipelines","intelligence","ws_enabled","ui_v2","auth_compat_mode"],"title":"FeaturesResponse","type":"object"},"GateStreamChunk":{"description":"One NDJSON line in a streaming governance session.","properties":{"chunk_index":{"minimum":0,"title":"Chunk Index","type":"integer"},"content":{"maxLength":64000,"minLength":1,"title":"Content","type":"string"},"final":{"default":false,"title":"Final","type":"boolean"},"session_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"title":"Session Id"}},"required":["chunk_index","content"],"title":"GateStreamChunk","type":"object"},"GateStreamResponse":{"properties":{"buffered_chars":{"title":"Buffered Chars","type":"integer"},"chunk_index":{"title":"Chunk Index","type":"integer"},"session_id":{"title":"Session Id","type":"string"},"verdict":{"enum":["safe","blocked","review_required","pending"],"title":"Verdict","type":"string"},"violations":{"items":{"additionalProperties":true,"type":"object"},"title":"Violations","type":"array"}},"required":["session_id","chunk_index","verdict","buffered_chars"],"title":"GateStreamResponse","type":"object"},"GenerateRequest":{"description":"Generate AI content with integrated governance.\n\nDO NOT include any API keys here. The LLM key is determined by\nyour workspace's ai_config (shared DataVibe key or your encrypted BYOK key).","properties":{"content_type":{"default":"other","enum":["email","message","document","code","other"],"title":"Content Type","type":"string"},"idempotency_key":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"title":"Idempotency Key"},"max_tokens":{"default":1024,"maximum":8192,"minimum":1,"title":"Max Tokens","type":"integer"},"messages":{"description":"Conversation messages (OpenAI-style: role + content).","items":{"additionalProperties":{"type":"string"},"type":"object"},"minItems":1,"title":"Messages","type":"array"},"model":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"description":"Model to use. Defaults to the provider's default fast model.","title":"Model"},"system":{"anyOf":[{"maxLength":8000,"type":"string"},{"type":"null"}],"description":"System prompt (Anthropic-style). For OpenAI, prepend as a system message.","title":"System"},"temperature":{"default":0.7,"maximum":2,"minimum":0,"title":"Temperature","type":"number"}},"required":["messages"],"title":"GenerateRequest","type":"object"},"GenerateResponse":{"description":"The response from a generate-and-check call.\n\n'content' is present only when verdict == 'safe'.\nFor 'blocked', do not use the content — governance rejected it.\nFor 'review_required', 'content' is present but flagged for human review.","properties":{"action_id":{"title":"Action Id","type":"string"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"latency_ms":{"title":"Latency Ms","type":"integer"},"mode_used":{"enum":["shared","byok"],"title":"Mode Used","type":"string"},"provider":{"title":"Provider","type":"string"},"review_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Url"},"verdict":{"enum":["safe","blocked","review_required"],"title":"Verdict","type":"string"},"violations":{"items":{"$ref":"#/components/schemas/ViolationDetail"},"title":"Violations","type":"array"}},"required":["verdict","action_id","content","violations","mode_used","provider","latency_ms"],"title":"GenerateResponse","type":"object"},"GenericOkResponse":{"properties":{"ok":{"default":true,"title":"Ok","type":"boolean"}},"title":"GenericOkResponse","type":"object"},"GovernanceConfigUpdate":{"properties":{"activeOverlays":{"description":"Industry overlay slugs to activate: 'healthcare', 'fintech', 'legal'.","items":{"type":"string"},"title":"Activeoverlays","type":"array"},"complianceCertAllowlist":{"items":{"type":"string"},"title":"Compliancecertallowlist","type":"array"},"customCompetitors":{"items":{"type":"string"},"maxItems":100,"title":"Customcompetitors","type":"array"},"metricClaimThreshold":{"default":0,"description":"Minimum percentage in a metric claim that triggers the rule (0 = always trigger)","maximum":100,"minimum":0,"title":"Metricclaimthreshold","type":"integer"},"severityOverrides":{"additionalProperties":{"type":"string"},"title":"Severityoverrides","type":"object"},"urlShortenerAllowlist":{"items":{"type":"string"},"title":"Urlshortenerallowlist","type":"array"}},"title":"GovernanceConfigUpdate","type":"object"},"GovernanceTokenUsageResponse":{"properties":{"check_count":{"title":"Check Count","type":"integer"},"limit":{"title":"Limit","type":"integer"},"plan":{"title":"Plan","type":"string"},"usage_date":{"title":"Usage Date","type":"string"},"used":{"title":"Used","type":"integer"}},"required":["used","limit","plan","usage_date","check_count"],"title":"GovernanceTokenUsageResponse","type":"object"},"GovernedGenerateRequest":{"description":"Ask DataVibe to generate content AND gate it in one call.","properties":{"auto_remediate":{"default":false,"description":"If True, apply safer_alternative substitutions to WARN violations automatically.","title":"Auto Remediate","type":"boolean"},"channel":{"default":"email","description":"Delivery channel — informs which rules are injected into the system prompt.","title":"Channel","type":"string"},"max_tokens":{"default":600,"description":"Max tokens to generate.","maximum":4096,"minimum":50,"title":"Max Tokens","type":"integer"},"model":{"default":"claude-haiku-4-5-20251001","description":"LLM model ID (Anthropic or OpenAI-compatible).","title":"Model","type":"string"},"prompt":{"description":"The generation task (e.g. 'Write a cold outreach email to the VP of Engineering').","maxLength":8000,"minLength":10,"title":"Prompt","type":"string"},"recipient":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Recipient for the gate submission (optional).","title":"Recipient"},"source_model_override":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Override the model label in gate records.","title":"Source Model Override"},"system_context":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}],"description":"Additional system context (agent role, company info, etc.). DataVibe appends its governance rules after this.","title":"System Context"}},"required":["prompt"],"title":"GovernedGenerateRequest","type":"object"},"GovernedGenerateResponse":{"properties":{"action_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action Id"},"gate_verdict":{"title":"Gate Verdict","type":"string"},"generated_text":{"title":"Generated Text","type":"string"},"governance_system_prompt":{"title":"Governance System Prompt","type":"string"},"model_used":{"title":"Model Used","type":"string"},"policy_passed":{"title":"Policy Passed","type":"boolean"},"policy_violations":{"items":{"additionalProperties":true,"type":"object"},"title":"Policy Violations","type":"array"},"remediated":{"title":"Remediated","type":"boolean"},"remediated_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Remediated Text"},"used_ai":{"title":"Used Ai","type":"boolean"}},"required":["generated_text","gate_verdict","policy_passed","policy_violations","action_id","remediated","remediated_text","governance_system_prompt","model_used","used_ai"],"title":"GovernedGenerateResponse","type":"object"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"title":"Detail","type":"array"}},"title":"HTTPValidationError","type":"object"},"IncidentEvidence":{"properties":{"hash":{"description":"sha256 fingerprint of the denylist-scrubbed blob","title":"Hash","type":"string"},"kind":{"description":"media kind of the evidence","enum":["json","csv","text","binary"],"title":"Kind","type":"string"},"size_bytes":{"description":"post-denylist payload size","title":"Size Bytes","type":"integer"},"stored_at":{"description":"timestamp when the evidence was preserved","format":"date-time","title":"Stored At","type":"string"}},"required":["hash","size_bytes","kind","stored_at"],"title":"IncidentEvidence","type":"object"},"LandingTelemetryBatchIn":{"properties":{"events":{"items":{"$ref":"#/components/schemas/LandingTelemetryEventIn"},"maxItems":80,"minItems":1,"title":"Events","type":"array"}},"required":["events"],"title":"LandingTelemetryBatchIn","type":"object"},"LandingTelemetryEventIn":{"description":"Single anonymous landing interaction.","properties":{"client_ts":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"description":"Optional client-reported time (ISO). Stored only inside metadata when valid.","title":"Client Ts"},"element_id":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"title":"Element Id"},"event_type":{"maxLength":96,"minLength":1,"title":"Event Type","type":"string"},"metadata":{"additionalProperties":true,"title":"Metadata","type":"object"}},"required":["event_type"],"title":"LandingTelemetryEventIn","type":"object"},"LegalComplianceRequest":{"properties":{"action_description":{"maxLength":4000,"minLength":20,"title":"Action Description","type":"string"},"data_types_involved":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Data Types Involved"},"jurisdiction":{"default":"EU","maxLength":64,"title":"Jurisdiction","type":"string"}},"required":["action_description"],"title":"LegalComplianceRequest","type":"object"},"LegalHoldCreate":{"properties":{"description":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}],"title":"Description"},"hold_end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hold End"},"hold_start":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hold Start"},"scope":{"default":"workspace","title":"Scope","type":"string"},"scope_ids":{"items":{"type":"string"},"title":"Scope Ids","type":"array"},"title":{"maxLength":300,"minLength":1,"title":"Title","type":"string"}},"required":["title"],"title":"LegalHoldCreate","type":"object"},"LoginRequest":{"properties":{"email":{"format":"email","title":"Email","type":"string"},"password":{"title":"Password","type":"string"}},"required":["email","password"],"title":"LoginRequest","type":"object"},"LoginResponse":{"properties":{"csrf_token":{"title":"Csrf Token","type":"string"},"user":{"$ref":"#/components/schemas/UserOut"}},"required":["user","csrf_token"],"title":"LoginResponse","type":"object"},"MemberAdd":{"properties":{"role":{"default":"MEMBER","title":"Role","type":"string"},"user_id":{"title":"User Id","type":"string"}},"required":["user_id"],"title":"MemberAdd","type":"object"},"OperatorAutonomyFlagsPatch":{"properties":{"JARVIS_AUTO_LANDING_PAGE":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Jarvis Auto Landing Page"},"JARVIS_AUTO_SCALING_ZERO_COST":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Jarvis Auto Scaling Zero Cost"},"JARVIS_AUTO_WORKER_OPTIMIZATION":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Jarvis Auto Worker Optimization"}},"title":"OperatorAutonomyFlagsPatch","type":"object"},"OperatorPolicyConfig":{"properties":{"conf_threshold_audit":{"maximum":1,"minimum":0,"title":"Conf Threshold Audit","type":"number"},"conf_threshold_coding":{"maximum":1,"minimum":0,"title":"Conf Threshold Coding","type":"number"},"conf_threshold_reasoning":{"maximum":1,"minimum":0,"title":"Conf Threshold Reasoning","type":"number"},"conf_threshold_sales":{"maximum":1,"minimum":0,"title":"Conf Threshold Sales","type":"number"},"conf_threshold_support":{"maximum":1,"minimum":0,"title":"Conf Threshold Support","type":"number"},"provider_cap_google":{"minimum":0,"title":"Provider Cap Google","type":"integer"},"provider_cap_groq":{"minimum":0,"title":"Provider Cap Groq","type":"integer"},"provider_cap_openrouter":{"minimum":0,"title":"Provider Cap Openrouter","type":"integer"},"sensory_retries":{"default":1,"maximum":5,"minimum":0,"title":"Sensory Retries","type":"integer"},"sensory_stale_after_s":{"default":900,"maximum":86400,"minimum":60,"title":"Sensory Stale After S","type":"integer"},"sensory_timeout_s":{"default":8,"maximum":60,"minimum":1,"title":"Sensory Timeout S","type":"number"}},"required":["conf_threshold_sales","conf_threshold_support","conf_threshold_audit","conf_threshold_reasoning","conf_threshold_coding","provider_cap_groq","provider_cap_google","provider_cap_openrouter"],"title":"OperatorPolicyConfig","type":"object"},"OperatorSystemStatusUpdate":{"properties":{"value":{"enum":["ACTIVE","FROZEN"],"title":"Value","type":"string"}},"required":["value"],"title":"OperatorSystemStatusUpdate","type":"object"},"OrgCreate":{"properties":{"billing_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Email"},"name":{"maxLength":120,"minLength":2,"title":"Name","type":"string"},"slug":{"maxLength":63,"minLength":3,"title":"Slug","type":"string"},"sso_domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sso Domain"}},"required":["name","slug"],"title":"OrgCreate","type":"object"},"OutboundGateMessage":{"properties":{"body":{"anyOf":[{"maxLength":4000,"type":"string"},{"type":"null"}],"title":"Body"},"html_body":{"anyOf":[{"maxLength":8000,"type":"string"},{"type":"null"}],"title":"Html Body"},"subject":{"maxLength":150,"minLength":1,"title":"Subject","type":"string"}},"required":["subject"],"title":"OutboundGateMessage","type":"object"},"OutboundGateRecipient":{"properties":{"company":{"anyOf":[{"maxLength":160,"type":"string"},{"type":"null"}],"title":"Company"},"email":{"format":"email","title":"Email","type":"string"},"name":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"title":"Name"},"title":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"title":"Title"}},"required":["email"],"title":"OutboundGateRecipient","type":"object"},"OutboundGateRequest":{"description":"Third-party outbound payload held for human approval before provider send.","properties":{"idempotency_key":{"anyOf":[{"maxLength":160,"type":"string"},{"type":"null"}],"title":"Idempotency Key"},"message":{"$ref":"#/components/schemas/OutboundGateMessage"},"metadata":{"additionalProperties":true,"title":"Metadata","type":"object"},"provider":{"default":"resend","pattern":"^(resend|sendgrid|custom)$","title":"Provider","type":"string"},"recipients":{"items":{"$ref":"#/components/schemas/OutboundGateRecipient"},"maxItems":25,"minItems":1,"title":"Recipients","type":"array"},"requested_by":{"anyOf":[{"maxLength":256,"type":"string"},{"type":"null"}],"title":"Requested By"},"source":{"default":"external","maxLength":80,"minLength":2,"title":"Source","type":"string"}},"required":["recipients","message"],"title":"OutboundGateRequest","type":"object"},"OutboundGateResponse":{"properties":{"action_id":{"title":"Action Id","type":"string"},"config_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Config Hash"},"message":{"title":"Message","type":"string"},"policy_passed":{"title":"Policy Passed","type":"boolean"},"policy_violations":{"items":{"additionalProperties":true,"type":"object"},"title":"Policy Violations","type":"array"},"review_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Url"},"snapshot_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Id"},"status":{"title":"Status","type":"string"}},"required":["action_id","status","policy_passed","policy_violations","review_url","message"],"title":"OutboundGateResponse","type":"object"},"OutboundGateV2Request":{"description":"v2 gate request — supports all messaging channels, not just email.\n\nFor email channel: ``subject`` and ``body_html`` are required.\nFor all other channels: ``body_text`` is the primary payload; ``subject``\nand ``body_html`` are ignored but accepted without error for forward compat.","properties":{"auto_remediate":{"default":false,"description":"If True and all violations are WARN-only (no BLOCK), the gate automatically applies safer_alternative substitutions inline and returns APPROVED immediately — no human queue. Eliminates review latency for live-chat channels while preserving audit trail. BLOCK verdicts always require human review regardless of this flag.","title":"Auto Remediate","type":"boolean"},"body_html":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"HTML body (email channel only).","title":"Body Html"},"body_text":{"description":"Plain-text body — required for all channels.","minLength":1,"title":"Body Text","type":"string"},"campaign_id":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"description":"Campaign tracking ID.","title":"Campaign Id"},"channel":{"default":"email","description":"Delivery channel. 'email' behaves identically to v1. Non-email channels skip CAN-SPAM rules and apply channel-specific policies.","enum":["email","whatsapp","telegram","sms","linkedin","slack"],"title":"Channel","type":"string"},"governance_action_id":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"description":"GovernanceAgentAction FK.","title":"Governance Action Id"},"idempotency_key":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"description":"Deduplication key — re-submitting the same key returns the original response.","title":"Idempotency Key"},"metadata":{"additionalProperties":true,"description":"Arbitrary context passed through.","title":"Metadata","type":"object"},"recipient":{"description":"Recipient identifier — format depends on channel: email address (email), E.164 phone number (whatsapp/sms), @username or numeric ID (telegram), profile URL (linkedin), user/channel ID (slack).","title":"Recipient","type":"string"},"source_model":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"description":"LLM that generated this content.","title":"Source Model"},"subject":{"anyOf":[{"maxLength":998,"type":"string"},{"type":"null"}],"description":"Email subject (email channel only).","title":"Subject"}},"required":["recipient","body_text"],"title":"OutboundGateV2Request","type":"object"},"OutboundGateV2Response":{"properties":{"ack_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ack Message"},"action_id":{"title":"Action Id","type":"string"},"channel":{"default":"email","enum":["email","whatsapp","telegram","sms","linkedin","slack"],"title":"Channel","type":"string"},"config_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Config Hash"},"hold_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hold Token"},"message":{"title":"Message","type":"string"},"policy_passed":{"title":"Policy Passed","type":"boolean"},"policy_violations":{"items":{"additionalProperties":true,"type":"object"},"title":"Policy Violations","type":"array"},"remediated":{"default":false,"title":"Remediated","type":"boolean"},"remediated_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Remediated Body"},"review_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Url"},"safe_fallback":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Safe Fallback"},"snapshot_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Id"},"status":{"title":"Status","type":"string"}},"required":["action_id","status","policy_passed","policy_violations","review_url","message"],"title":"OutboundGateV2Response","type":"object"},"PipelineDeploymentProposalRequest":{"description":"Agent / operator-submitted client DAG for chairman approval (per workspace).","properties":{"blueprint":{"additionalProperties":true,"title":"Blueprint","type":"object"},"simulation_metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"description":"Optional dry-run stats from a future simulator MCP tool.","title":"Simulation Metrics"}},"required":["blueprint"],"title":"PipelineDeploymentProposalRequest","type":"object"},"PipelineEngineerTurnRequest":{"description":"Run the simulate → iterate → propose tool loop (queues chairman card on success).","properties":{"client_request":{"maxLength":8000,"minLength":12,"title":"Client Request","type":"string"},"thread_id":{"maxLength":128,"minLength":4,"title":"Thread Id","type":"string"}},"required":["thread_id","client_request"],"title":"PipelineEngineerTurnRequest","type":"object"},"PipelineHealthScanRequest":{"properties":{"lookback_hours":{"default":24,"maximum":168,"minimum":1,"title":"Lookback Hours","type":"integer"},"workspace_id":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"title":"Workspace Id"}},"title":"PipelineHealthScanRequest","type":"object"},"PolicyRevertRequest":{"properties":{"field":{"maxLength":128,"minLength":2,"title":"Field","type":"string"},"value":{"maxLength":64,"minLength":1,"title":"Value","type":"string"}},"required":["field","value"],"title":"PolicyRevertRequest","type":"object"},"ProvisionRequest":{"properties":{"api_key_hash":{"description":"Plain SHA-256 hex of the dv_live_… secret.","maxLength":64,"minLength":64,"title":"Api Key Hash","type":"string"},"api_key_prefix":{"maxLength":32,"minLength":1,"title":"Api Key Prefix","type":"string"},"bundle":{"additionalProperties":true,"title":"Bundle","type":"object"},"bundle_hash":{"description":"Expected canonical bundle hash (sha256:hex). The server recomputes from the bundle bytes and rejects on mismatch.","title":"Bundle Hash","type":"string"},"bundle_name":{"maxLength":200,"minLength":1,"title":"Bundle Name","type":"string"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"org_id":{"maxLength":120,"minLength":1,"title":"Org Id","type":"string"},"provisioning_id":{"maxLength":120,"minLength":1,"title":"Provisioning Id","type":"string"}},"required":["provisioning_id","org_id","api_key_hash","api_key_prefix","bundle","bundle_hash","bundle_name"],"title":"ProvisionRequest","type":"object"},"ProvisionResponse":{"properties":{"api_key_prefix":{"title":"Api Key Prefix","type":"string"},"bundle_hash":{"title":"Bundle Hash","type":"string"},"outcome":{"title":"Outcome","type":"string"},"provisioning_id":{"title":"Provisioning Id","type":"string"},"status":{"title":"Status","type":"string"}},"required":["provisioning_id","bundle_hash","status","outcome","api_key_prefix"],"title":"ProvisionResponse","type":"object"},"ProvisioningView":{"properties":{"api_key_prefix":{"title":"Api Key Prefix","type":"string"},"bundle_hash":{"title":"Bundle Hash","type":"string"},"bundle_name":{"title":"Bundle Name","type":"string"},"org_id":{"title":"Org Id","type":"string"},"provisioning_id":{"title":"Provisioning Id","type":"string"},"status":{"title":"Status","type":"string"}},"required":["provisioning_id","org_id","api_key_prefix","bundle_hash","bundle_name","status"],"title":"ProvisioningView","type":"object"},"ProxyChatRequest":{"additionalProperties":true,"properties":{"max_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Tokens"},"messages":{"items":{"$ref":"#/components/schemas/ProxyMessage"},"title":"Messages","type":"array"},"model":{"default":"gpt-4o","title":"Model","type":"string"},"stream":{"default":false,"title":"Stream","type":"boolean"},"temperature":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature"},"top_p":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Top P"}},"required":["messages"],"title":"ProxyChatRequest","type":"object"},"ProxyMessage":{"properties":{"content":{"anyOf":[{"type":"string"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"role":{"title":"Role","type":"string"}},"required":["role"],"title":"ProxyMessage","type":"object"},"RegistryActorRow":{"properties":{"actor_id":{"title":"Actor Id","type":"string"},"actor_type":{"title":"Actor Type","type":"string"},"last_seen":{"format":"date-time","title":"Last Seen","type":"string"},"live":{"title":"Live","type":"boolean"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"shard":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shard"},"workspace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Id"}},"required":["actor_id","actor_type","last_seen","live"],"title":"RegistryActorRow","type":"object"},"RemediateRequest":{"properties":{"fixed_version":{"title":"Fixed Version","type":"string"},"package":{"title":"Package","type":"string"},"severity":{"title":"Severity","type":"string"},"vuln_id":{"title":"Vuln Id","type":"string"}},"required":["package","fixed_version","vuln_id","severity"],"title":"RemediateRequest","type":"object"},"ResumeRequest":{"properties":{"decision":{"enum":["APPROVED","REJECTED"],"title":"Decision","type":"string"},"edited_payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Edited Payload"},"human_feedback":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Human Feedback"}},"required":["decision"],"title":"ResumeRequest","type":"object"},"RevokeRequest":{"properties":{"reason":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"title":"Reason"}},"title":"RevokeRequest","type":"object"},"RevokeResponse":{"properties":{"outcome":{"title":"Outcome","type":"string"},"provisioning_id":{"title":"Provisioning Id","type":"string"}},"required":["provisioning_id","outcome"],"title":"RevokeResponse","type":"object"},"SSOConfigSave":{"properties":{"attribute_mapping":{"additionalProperties":{"type":"string"},"description":"Map IdP claim names to DataVibe user fields.","title":"Attribute Mapping","type":"object"},"client_id":{"minLength":1,"title":"Client Id","type":"string"},"client_secret":{"minLength":1,"title":"Client Secret","type":"string"},"issuer":{"description":"OIDC issuer URL, e.g. https://dev-12345.okta.com","title":"Issuer","type":"string"},"provider":{"default":"generic","description":"okta | azure | google | generic","title":"Provider","type":"string"}},"required":["issuer","client_id","client_secret"],"title":"SSOConfigSave","type":"object"},"SalesRevenueLoopRequest":{"properties":{"company_domain":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"title":"Company Domain"},"target_url":{"anyOf":[{"maxLength":1024,"type":"string"},{"type":"null"}],"title":"Target Url"}},"title":"SalesRevenueLoopRequest","type":"object"},"ScanResult":{"properties":{"critical":{"title":"Critical","type":"integer"},"duration_ms":{"title":"Duration Ms","type":"integer"},"high":{"title":"High","type":"integer"},"low":{"title":"Low","type":"integer"},"medium":{"title":"Medium","type":"integer"},"scan_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Scan Id"},"scanned_at":{"format":"date-time","title":"Scanned At","type":"string"},"status":{"title":"Status","type":"string"},"total_vulns":{"title":"Total Vulns","type":"integer"},"vulnerabilities":{"items":{"$ref":"#/components/schemas/Vulnerability"},"title":"Vulnerabilities","type":"array"}},"required":["status","scanned_at","duration_ms","total_vulns","critical","high","medium","low","vulnerabilities"],"title":"ScanResult","type":"object"},"ScimName":{"properties":{"familyName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Familyname"},"formatted":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Formatted"},"givenName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Givenname"}},"title":"ScimName","type":"object"},"ScimPatchOp":{"properties":{"op":{"title":"Op","type":"string"},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path"},"value":{"title":"Value"}},"required":["op"],"title":"ScimPatchOp","type":"object"},"ScimPatchRequest":{"properties":{"Operations":{"items":{"$ref":"#/components/schemas/ScimPatchOp"},"title":"Operations","type":"array"},"schemas":{"items":{"type":"string"},"title":"Schemas","type":"array"}},"title":"ScimPatchRequest","type":"object"},"ScimUserPatchRequest":{"properties":{"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"},"display_name":{"anyOf":[{"maxLength":160,"type":"string"},{"type":"null"}],"title":"Display Name"},"email":{"anyOf":[{"maxLength":320,"minLength":5,"type":"string"},{"type":"null"}],"title":"Email"},"raw_payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Raw Payload"},"role":{"anyOf":[{"pattern":"^(member|admin|owner)$","type":"string"},{"type":"null"}],"title":"Role"}},"title":"ScimUserPatchRequest","type":"object"},"ScimUserResource":{"properties":{"active":{"default":true,"title":"Active","type":"boolean"},"emails":{"items":{"additionalProperties":true,"type":"object"},"title":"Emails","type":"array"},"externalId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Externalid"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"anyOf":[{"$ref":"#/components/schemas/ScimName"},{"type":"null"}]},"schemas":{"items":{"type":"string"},"title":"Schemas","type":"array"},"userName":{"title":"Username","type":"string"}},"required":["userName"],"title":"ScimUserResource","type":"object"},"ScimUserUpsertRequest":{"properties":{"active":{"default":true,"title":"Active","type":"boolean"},"display_name":{"anyOf":[{"maxLength":160,"type":"string"},{"type":"null"}],"title":"Display Name"},"email":{"maxLength":320,"minLength":5,"title":"Email","type":"string"},"external_id":{"maxLength":128,"minLength":2,"title":"External Id","type":"string"},"raw_payload":{"additionalProperties":true,"title":"Raw Payload","type":"object"},"role":{"default":"member","pattern":"^(member|admin|owner)$","title":"Role","type":"string"}},"required":["external_id","email"],"title":"ScimUserUpsertRequest","type":"object"},"SecurityAuditRequest":{"properties":{"scope":{"default":"full","maxLength":64,"title":"Scope","type":"string"},"target_url":{"maxLength":1024,"minLength":8,"title":"Target Url","type":"string"}},"required":["target_url"],"title":"SecurityAuditRequest","type":"object"},"SecurityEvidenceBundleResponse":{"properties":{"activity_events":{"items":{"additionalProperties":true,"type":"object"},"title":"Activity Events","type":"array"},"approval_events":{"items":{"additionalProperties":true,"type":"object"},"title":"Approval Events","type":"array"},"open_incidents":{"items":{"additionalProperties":true,"type":"object"},"title":"Open Incidents","type":"array"},"window_end":{"title":"Window End","type":"string"},"window_start":{"title":"Window Start","type":"string"},"workspace_id":{"title":"Workspace Id","type":"string"}},"required":["workspace_id","window_start","window_end"],"title":"SecurityEvidenceBundleResponse","type":"object"},"SeoAuditRequest":{"properties":{"focus_keywords":{"anyOf":[{"items":{"type":"string"},"maxItems":10,"type":"array"},{"type":"null"}],"title":"Focus Keywords"},"target_url":{"maxLength":1024,"minLength":8,"title":"Target Url","type":"string"}},"required":["target_url"],"title":"SeoAuditRequest","type":"object"},"SigningKeyRegister":{"description":"Register a customer-controlled HMAC-SHA256 signing secret.\n\nDataVibe will co-sign every evidence export for this workspace using both\nthe platform key AND this customer key. A lawyer or regulator can then\nverify the export independently — without DataVibe's cooperation — proving\nDataVibe could not have fabricated the evidence post-hoc.\n\nThe secret must be at least 32 characters. DataVibe stores it encrypted\nat rest and never returns it in full after registration.","properties":{"hint":{"default":"","description":"Optional human label for this key","maxLength":120,"title":"Hint","type":"string"},"secret":{"description":"Customer HMAC-SHA256 secret (min 32 chars)","maxLength":256,"minLength":32,"title":"Secret","type":"string"}},"required":["secret"],"title":"SigningKeyRegister","type":"object"},"SimulateCompareRequest":{"description":"Compare-mode payload.\n\nProfile presets affect parameter *hydration* at compile time, not\nsimulator runtime. So the compare endpoint accepts a **canvas**\n(the Studio's pre-compile shape), recompiles it once per profile\non the server, and simulates each compiled bundle. That guarantees\nthe 4 timelines reflect real per-profile parameter shifts (e.g.\n`min_tier=3` under strict vs `min_tier=1` under recommended) and\nnot just the same hydrated bundle stamped four different ways.","properties":{"canvas":{"additionalProperties":true,"description":"Studio canvas state: { name, lanes: [{category, items: [{ruleKey, params?, action?, appliesTo?}]}] }. Any `profile` in the canvas is ignored — the server sets it per-cell.","title":"Canvas","type":"object"},"event":{"additionalProperties":true,"description":"Event payload to evaluate against, identical across profiles.","title":"Event","type":"object"},"profiles":{"description":"Ordered list of profiles to evaluate. Must contain only recommended/balanced/strict/enterprise; duplicates are rejected. Order is preserved in the response.","items":{"type":"string"},"title":"Profiles","type":"array"}},"required":["canvas"],"title":"SimulateCompareRequest","type":"object"},"SimulateCompareResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/SimulateComparisonCell"},"title":"Results","type":"array"}},"required":["results"],"title":"SimulateCompareResponse","type":"object"},"SimulateComparisonCell":{"properties":{"bundle":{"additionalProperties":true,"title":"Bundle","type":"object"},"profile":{"title":"Profile","type":"string"},"simulation":{"$ref":"#/components/schemas/SimulateResponse"}},"required":["profile","bundle","simulation"],"title":"SimulateComparisonCell","type":"object"},"SimulateRequest":{"properties":{"bundle":{"additionalProperties":true,"description":"A PolicyBundle conforming to bundle.schema.json.","title":"Bundle","type":"object"},"event":{"additionalProperties":true,"description":"Event payload to evaluate against.","title":"Event","type":"object"}},"required":["bundle"],"title":"SimulateRequest","type":"object"},"SimulateResponse":{"properties":{"audit_hash":{"title":"Audit Hash","type":"string"},"decision":{"title":"Decision","type":"string"},"ok":{"title":"Ok","type":"boolean"},"summary":{"$ref":"#/components/schemas/SimulateSummary"},"timeline":{"items":{"$ref":"#/components/schemas/TimelineEventDTO"},"title":"Timeline","type":"array"}},"required":["ok","decision","audit_hash","timeline","summary"],"title":"SimulateResponse","type":"object"},"SimulateSummary":{"properties":{"fired_keys":{"items":{"type":"string"},"title":"Fired Keys","type":"array"},"skipped_keys":{"items":{"type":"string"},"title":"Skipped Keys","type":"array"},"total_latency_ns":{"title":"Total Latency Ns","type":"integer"}},"required":["total_latency_ns","fired_keys","skipped_keys"],"title":"SimulateSummary","type":"object"},"StoreKeyRequest":{"description":"Provide your LLM API key. It is encrypted before storage and\ncan never be retrieved in plaintext — only a masked version is shown.","properties":{"api_key":{"description":"Your LLM provider API key. Encrypted at rest; never returned.","maxLength":512,"minLength":10,"title":"Api Key","type":"string"},"provider":{"default":"openai","description":"Which provider this key belongs to.","enum":["openai","anthropic","groq","google","openrouter"],"title":"Provider","type":"string"}},"required":["api_key"],"title":"StoreKeyRequest","type":"object"},"SwarmSalesObjectiveRequest":{"description":"High-level CEO objective → planner fans out parallel workers (map-reduce).","properties":{"objective":{"maxLength":4000,"minLength":8,"title":"Objective","type":"string"}},"required":["objective"],"title":"SwarmSalesObjectiveRequest","type":"object"},"TeamListResponse":{"properties":{"users":{"items":{"$ref":"#/components/schemas/TeamMember"},"title":"Users","type":"array"}},"required":["users"],"title":"TeamListResponse","type":"object"},"TeamMember":{"properties":{"created_at":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"title":"Created At"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"id":{"title":"Id","type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"role":{"title":"Role","type":"string"}},"required":["id","email","name","role"],"title":"TeamMember","type":"object"},"TeamRoleUpdateRequest":{"properties":{"role":{"pattern":"^(USER|CFO|CISO|ADMIN|SUPER_ADMIN)$","title":"Role","type":"string"}},"required":["role"],"title":"TeamRoleUpdateRequest","type":"object"},"TenantIsolationPreferenceUpsertRequest":{"properties":{"dedicated_tenant_id":{"anyOf":[{"maxLength":120,"minLength":2,"type":"string"},{"type":"null"}],"title":"Dedicated Tenant Id"},"isolation_mode":{"default":"shared","pattern":"^(shared|dedicated)$","title":"Isolation Mode","type":"string"},"metadata":{"additionalProperties":true,"title":"Metadata","type":"object"}},"title":"TenantIsolationPreferenceUpsertRequest","type":"object"},"TimelineEventDTO":{"properties":{"details":{"additionalProperties":true,"title":"Details","type":"object"},"kind":{"title":"Kind","type":"string"},"t_offset_ns":{"title":"T Offset Ns","type":"integer"}},"required":["kind","t_offset_ns"],"title":"TimelineEventDTO","type":"object"},"TokenExchangeRequest":{"properties":{"code":{"title":"Code","type":"string"},"code_verifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Verifier"},"org_id":{"title":"Org Id","type":"string"},"redirect_uri":{"title":"Redirect Uri","type":"string"}},"required":["org_id","code","redirect_uri"],"title":"TokenExchangeRequest","type":"object"},"TrustIncidentDetail":{"properties":{"actor_type":{"title":"Actor Type","type":"string"},"count":{"title":"Count","type":"integer"},"error_class":{"title":"Error Class","type":"string"},"evidence":{"anyOf":[{"$ref":"#/components/schemas/IncidentEvidence"},{"type":"null"}]},"first_seen":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"title":"First Seen"},"incident_id":{"title":"Incident Id","type":"string"},"last_seen":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"title":"Last Seen"},"remediation_hint":{"title":"Remediation Hint","type":"string"},"replay":{"$ref":"#/components/schemas/TrustIncidentReplay"},"task_ids":{"items":{"type":"string"},"title":"Task Ids","type":"array"},"task_summaries":{"items":{"$ref":"#/components/schemas/TrustTaskSummary"},"title":"Task Summaries","type":"array"},"window_days":{"title":"Window Days","type":"integer"}},"required":["incident_id","error_class","actor_type","count","window_days","task_ids","task_summaries","remediation_hint","replay"],"title":"TrustIncidentDetail","type":"object"},"TrustIncidentDetailResponse":{"properties":{"data":{"$ref":"#/components/schemas/TrustIncidentDetail"},"request_id":{"title":"Request Id","type":"string"}},"required":["data","request_id"],"title":"TrustIncidentDetailResponse","type":"object"},"TrustIncidentList":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TrustIncidentSummary"},"title":"Items","type":"array"},"window_days":{"title":"Window Days","type":"integer"}},"required":["items","window_days"],"title":"TrustIncidentList","type":"object"},"TrustIncidentListResponse":{"properties":{"data":{"$ref":"#/components/schemas/TrustIncidentList"},"request_id":{"title":"Request Id","type":"string"}},"required":["data","request_id"],"title":"TrustIncidentListResponse","type":"object"},"TrustIncidentReplay":{"properties":{"available":{"title":"Available","type":"boolean"},"cta_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cta Path"}},"required":["available"],"title":"TrustIncidentReplay","type":"object"},"TrustIncidentSummary":{"properties":{"actor_type":{"title":"Actor Type","type":"string"},"count":{"title":"Count","type":"integer"},"error_class":{"title":"Error Class","type":"string"},"first_seen":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"title":"First Seen"},"incident_id":{"title":"Incident Id","type":"string"},"last_seen":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"title":"Last Seen"}},"required":["incident_id","error_class","actor_type","count"],"title":"TrustIncidentSummary","type":"object"},"TrustOnManualApproveResponse":{"properties":{"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"ok":{"title":"Ok","type":"boolean"}},"required":["ok"],"title":"TrustOnManualApproveResponse","type":"object"},"TrustOverview":{"properties":{"bytes_processed_total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bytes Processed Total"},"cache_hit_ratio":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cache Hit Ratio"},"cost_usd_estimated":{"title":"Cost Usd Estimated","type":"number"},"mttr_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mttr Seconds"},"p95_latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"P95 Latency Ms"},"runs_failed":{"title":"Runs Failed","type":"integer"},"runs_succeeded":{"title":"Runs Succeeded","type":"integer"},"runs_total":{"title":"Runs Total","type":"integer"},"success_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Success Rate"},"tier":{"title":"Tier","type":"string"},"tokens_used":{"title":"Tokens Used","type":"integer"},"top_error_classes":{"items":{"additionalProperties":true,"type":"object"},"title":"Top Error Classes","type":"array"},"window_days":{"title":"Window Days","type":"integer"}},"required":["window_days","runs_total","runs_succeeded","runs_failed","tokens_used","cost_usd_estimated","top_error_classes","tier"],"title":"TrustOverview","type":"object"},"TrustOverviewResponse":{"properties":{"cache":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cache"},"data":{"$ref":"#/components/schemas/TrustOverview"},"request_id":{"title":"Request Id","type":"string"}},"required":["data","request_id"],"title":"TrustOverviewResponse","type":"object"},"TrustTaskSummary":{"properties":{"attempt_kind":{"title":"Attempt Kind","type":"string"},"attempts":{"title":"Attempts","type":"integer"},"details":{"additionalProperties":true,"title":"Details","type":"object"},"task_id":{"title":"Task Id","type":"string"}},"required":["task_id","attempts","attempt_kind","details"],"title":"TrustTaskSummary","type":"object"},"UpdateConfigRequest":{"properties":{"llm_mode":{"anyOf":[{"enum":["shared","byok"],"type":"string"},{"type":"null"}],"title":"Llm Mode"},"provider":{"anyOf":[{"enum":["openai","anthropic","groq","google","openrouter"],"type":"string"},{"type":"null"}],"title":"Provider"}},"title":"UpdateConfigRequest","type":"object"},"UpdateFlagRequest":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"key":{"maxLength":120,"minLength":2,"title":"Key","type":"string"},"value":{"title":"Value"}},"required":["key","value"],"title":"UpdateFlagRequest","type":"object"},"UserOut":{"properties":{"email":{"title":"Email","type":"string"},"id":{"title":"Id","type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"plan":{"title":"Plan","type":"string"},"role":{"title":"Role","type":"string"},"workspace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Id"}},"required":["id","email","name","role","plan"],"title":"UserOut","type":"object"},"ValidateRequest":{"properties":{"bundle":{"additionalProperties":true,"description":"A PolicyBundle conforming to bundle.schema.json.","title":"Bundle","type":"object"}},"required":["bundle"],"title":"ValidateRequest","type":"object"},"ValidateResponse":{"properties":{"inferred_industries":{"items":{"type":"string"},"title":"Inferred Industries","type":"array"},"issues":{"items":{"$ref":"#/components/schemas/ValidationIssueDTO"},"title":"Issues","type":"array"},"ok":{"title":"Ok","type":"boolean"},"total_latency_ms":{"default":0,"title":"Total Latency Ms","type":"number"}},"required":["ok"],"title":"ValidateResponse","type":"object"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"title":"Location","type":"array"},"msg":{"title":"Message","type":"string"},"type":{"title":"Error Type","type":"string"}},"required":["loc","msg","type"],"title":"ValidationError","type":"object"},"ValidationIssueDTO":{"properties":{"code":{"title":"Code","type":"string"},"message":{"title":"Message","type":"string"},"path":{"default":"","title":"Path","type":"string"}},"required":["code","message"],"title":"ValidationIssueDTO","type":"object"},"ViolationDetail":{"properties":{"detail":{"title":"Detail","type":"string"},"matched_substring":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Matched Substring"},"rule":{"title":"Rule","type":"string"},"severity":{"enum":["BLOCK","WARN"],"title":"Severity","type":"string"}},"required":["rule","severity","detail"],"title":"ViolationDetail","type":"object"},"Vulnerability":{"properties":{"description":{"title":"Description","type":"string"},"fixed_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fixed Version"},"installed_version":{"title":"Installed Version","type":"string"},"package":{"title":"Package","type":"string"},"severity":{"title":"Severity","type":"string"},"source":{"default":"pip-audit","title":"Source","type":"string"},"vuln_id":{"title":"Vuln Id","type":"string"}},"required":["package","installed_version","fixed_version","vuln_id","severity","description"],"title":"Vulnerability","type":"object"},"WebhookPayloadSchema":{"properties":{"data":{"additionalProperties":true,"title":"Data","type":"object"},"event":{"title":"Event","type":"string"}},"required":["event","data"],"title":"WebhookPayloadSchema","type":"object"},"WebhookRegistration":{"properties":{"endpoint_url":{"format":"uri","maxLength":2083,"minLength":1,"title":"Endpoint Url","type":"string"},"event_filter":{"default":["BLOCKED","QUEUED"],"items":{"type":"string"},"title":"Event Filter","type":"array"},"format":{"default":"ndjson","title":"Format","type":"string"}},"required":["endpoint_url"],"title":"WebhookRegistration","type":"object"},"WorkspaceLink":{"properties":{"inherit_governance":{"default":false,"title":"Inherit Governance","type":"boolean"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"workspace_id":{"title":"Workspace Id","type":"string"}},"required":["workspace_id"],"title":"WorkspaceLink","type":"object"},"WorkspaceRegionPreferenceUpsertRequest":{"properties":{"failover_region":{"anyOf":[{"maxLength":32,"minLength":2,"type":"string"},{"type":"null"}],"title":"Failover Region"},"home_region":{"default":"default","maxLength":32,"minLength":2,"title":"Home Region","type":"string"},"metadata":{"additionalProperties":true,"title":"Metadata","type":"object"},"mode":{"default":"single_primary","pattern":"^(single_primary|manual_failover|active_passive)$","title":"Mode","type":"string"}},"title":"WorkspaceRegionPreferenceUpsertRequest","type":"object"},"WsTokenResponse":{"properties":{"expires_in_seconds":{"title":"Expires In Seconds","type":"integer"},"token":{"title":"Token","type":"string"}},"required":["token","expires_in_seconds"],"title":"WsTokenResponse","type":"object"},"api__routes__control_bundles__CheckRequest":{"properties":{"event":{"additionalProperties":true,"description":"The event to evaluate against the active bundle.","title":"Event","type":"object"}},"title":"CheckRequest","type":"object"},"api__routes__gate__OutboundGateRequest":{"properties":{"body_html":{"description":"Email body as HTML.","minLength":1,"title":"Body Html","type":"string"},"body_text":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Plain-text fallback (optional).","title":"Body Text"},"campaign_id":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"description":"Optional campaign ID for analytics.","title":"Campaign Id"},"governance_action_id":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"description":"GovernanceAgentAction.id that triggered this submission.","title":"Governance Action Id"},"idempotency_key":{"anyOf":[{"maxLength":255,"type":"string"},{"type":"null"}],"description":"Client-supplied idempotency key. Re-submitting the same key returns the original action_id.","title":"Idempotency Key"},"metadata":{"additionalProperties":true,"description":"Any extra context (score, template, etc.).","title":"Metadata","type":"object"},"recipient":{"description":"Recipient email address.","format":"email","title":"Recipient","type":"string"},"source_model":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"description":"LLM model that generated this (e.g. 'gpt-4o').","title":"Source Model"},"subject":{"description":"Email subject line.","maxLength":998,"minLength":1,"title":"Subject","type":"string"}},"required":["recipient","subject","body_html"],"title":"OutboundGateRequest","type":"object"},"api__routes__servicenow_integrations__ConnectionTestRequest":{"properties":{"assignment_group":{"default":"","title":"Assignment Group","type":"string"},"instance_url":{"title":"Instance Url","type":"string"},"password":{"title":"Password","type":"string"},"username":{"title":"Username","type":"string"}},"required":["instance_url","username","password"],"title":"ConnectionTestRequest","type":"object"}},"securitySchemes":{"APIKeyHeader":{"in":"header","name":"Authorization","type":"apiKey"},"HTTPBearer":{"scheme":"bearer","type":"http"}}},"info":{"description":"\nDataVibe — AI Output Governance API.\nIntercept AI-generated content before it reaches customers. Deterministic policy evaluation, human review queue, and tamper-evident audit trail.\n\n### Core endpoint\n`POST /v1/gate/outbound` — submit an AI-generated payload for policy scan and approval routing.\n\n### Authentication\nAll endpoints require an API Key passed in the `Authorization` header using the Bearer schema.\n`Authorization: Bearer dv_live_abc123...`\n","title":"DataVibe API","version":"1.0.0"},"openapi":"3.1.0","paths":{"/.well-known/api-catalog":{"get":{"operationId":"api_catalog__well_known_api_catalog_get","responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"}},"summary":"Api Catalog","tags":["Agent Discovery"]}},"/.well-known/mcp/server-card.json":{"get":{"operationId":"mcp_server_card__well_known_mcp_server_card_json_get","responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"}},"summary":"Mcp Server Card","tags":["Agent Discovery"]}},"/.well-known/oauth-authorization-server":{"get":{"operationId":"oauth_authorization_server__well_known_oauth_authorization_server_get","responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"}},"summary":"Oauth Authorization Server","tags":["Agent Discovery"]}},"/.well-known/oauth-protected-resource":{"get":{"operationId":"oauth_protected_resource__well_known_oauth_protected_resource_get","responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"}},"summary":"Oauth Protected Resource","tags":["Agent Discovery"]}},"/.well-known/x402":{"get":{"description":"Static x402 payment requirements for agent discovery probes.","operationId":"x402_well_known__well_known_x402_get","responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"}},"summary":"X402 Well Known","tags":["Agent Discovery"]}},"/scim/v2/ServiceProviderConfig":{"post":{"operationId":"service_provider_config_scim_v2_ServiceProviderConfig_post","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Service Provider Config Scim V2 Serviceproviderconfig Post","type":"object"}}},"description":"Successful Response"}},"summary":"Service Provider Config","tags":["scim-v2"]}},"/scim/v2/Users":{"get":{"operationId":"list_users_scim_v2_Users_get","parameters":[{"in":"query","name":"filter","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"in":"query","name":"startIndex","required":false,"schema":{"default":1,"minimum":1,"title":"Startindex","type":"integer"}},{"in":"query","name":"count","required":false,"schema":{"default":100,"maximum":500,"minimum":1,"title":"Count","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"List Users","tags":["scim-v2"]},"post":{"operationId":"create_user_scim_v2_Users_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScimUserResource"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Create User","tags":["scim-v2"]}},"/scim/v2/Users/{user_id}":{"delete":{"operationId":"delete_user_scim_v2_Users__user_id__delete","parameters":[{"in":"path","name":"user_id","required":true,"schema":{"title":"User Id","type":"string"}}],"responses":{"204":{"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Delete User","tags":["scim-v2"]},"get":{"operationId":"get_user_scim_v2_Users__user_id__get","parameters":[{"in":"path","name":"user_id","required":true,"schema":{"title":"User Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Get User","tags":["scim-v2"]},"patch":{"operationId":"patch_user_scim_v2_Users__user_id__patch","parameters":[{"in":"path","name":"user_id","required":true,"schema":{"title":"User Id","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScimPatchRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Patch User","tags":["scim-v2"]}},"/v1/admin/flags":{"get":{"operationId":"list_feature_flags_v1_admin_flags_get","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureFlagsResponse"}}},"description":"Successful Response"}},"security":[{"HTTPBearer":[]}],"summary":"List Feature Flags","tags":["admin-security"]},"post":{"operationId":"upsert_feature_flag_v1_admin_flags_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFlagRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureFlagItem"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"HTTPBearer":[]}],"summary":"Upsert Feature Flag","tags":["admin-security"]}},"/v1/admin/security-evidence-bundle":{"get":{"operationId":"export_security_evidence_bundle_v1_admin_security_evidence_bundle_get","parameters":[{"in":"query","name":"lookback_hours","required":false,"schema":{"default":168,"title":"Lookback Hours","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecurityEvidenceBundleResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"HTTPBearer":[]}],"summary":"Export Security Evidence Bundle","tags":["admin-security"]}},"/v1/admin/team":{"get":{"operationId":"list_team_v1_admin_team_get","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamListResponse"}}},"description":"Successful Response"}},"security":[{"HTTPBearer":[]}],"summary":"List Team","tags":["admin-security"]}},"/v1/admin/team/{target_user_id}/role":{"put":{"operationId":"update_team_role_v1_admin_team__target_user_id__role_put","parameters":[{"in":"path","name":"target_user_id","required":true,"schema":{"title":"Target User Id","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamRoleUpdateRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamMember"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"HTTPBearer":[]}],"summary":"Update Team Role","tags":["admin-security"]}},"/v1/admin/workspace-isolation":{"get":{"operationId":"list_workspace_isolation_preferences_v1_admin_workspace_isolation_get","responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"}},"security":[{"HTTPBearer":[]}],"summary":"List Workspace Isolation Preferences","tags":["admin-security"]}},"/v1/admin/workspace-isolation/{workspace_id}":{"put":{"operationId":"upsert_workspace_isolation_preference_v1_admin_workspace_isolation__workspace_id__put","parameters":[{"in":"path","name":"workspace_id","required":true,"schema":{"title":"Workspace Id","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantIsolationPreferenceUpsertRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"HTTPBearer":[]}],"summary":"Upsert Workspace Isolation Preference","tags":["admin-security"]}},"/v1/admin/workspace-regions":{"get":{"operationId":"list_workspace_region_preferences_v1_admin_workspace_regions_get","responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"}},"security":[{"HTTPBearer":[]}],"summary":"List Workspace Region Preferences","tags":["admin-security"]}},"/v1/admin/workspace-regions/{workspace_id}":{"put":{"operationId":"upsert_workspace_region_preference_v1_admin_workspace_regions__workspace_id__put","parameters":[{"in":"path","name":"workspace_id","required":true,"schema":{"title":"Workspace Id","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceRegionPreferenceUpsertRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"HTTPBearer":[]}],"summary":"Upsert Workspace Region Preference","tags":["admin-security"]}},"/v1/agent/pay-per-check":{"get":{"description":"Returns HTTP 402 with x402 payment requirements when agent payment is enabled. Use POST with a JSON body to run a pay-per-check scan after payment.","operationId":"agent_pay_per_check_probe_v1_agent_pay_per_check_get","responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"}},"summary":"x402 payment discovery probe","tags":["Agent Payments"]},"post":{"description":"Same deterministic scan as /v1/alpha/scan, gated by x402/MPP when X402_ENABLED or MPP_ENABLED. Send payment proof headers to bypass 402.","operationId":"agent_pay_per_check_v1_agent_pay_per_check_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlphaScanRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Agent Pay Per Check V1 Agent Pay Per Check Post","type":"object"}}},"description":"Successful Response"},"402":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Payment required (x402)"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Agent pay-per-check governance scan","tags":["Agent Payments"],"x-payment-info":{"amount":"0.01","currency":"USD","description":"Single agent governance scan (pay-per-check)","humanAuthorizationRequired":false,"intent":"charge","method":"stripe","subscriptionFallback":"https://datavibe.cc/pricing"}}},"/v1/ai-config":{"get":{"description":"Return current AI provider config. The plaintext key is NEVER returned.","operationId":"get_ai_config_v1_ai_config_get","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiConfigResponse"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Get Ai Config","tags":["AI Provider Config"]},"put":{"description":"Change llm_mode (shared/byok) or provider without touching the stored key.","operationId":"update_ai_config_v1_ai_config_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateConfigRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiConfigResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Update Ai Config","tags":["AI Provider Config"]}},"/v1/ai-config/key":{"delete":{"description":"Revoke the stored API key and reset to shared mode.","operationId":"revoke_api_key_v1_ai_config_key_delete","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Revoke Api Key V1 Ai Config Key Delete","type":"object"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Revoke Api Key","tags":["AI Provider Config"]},"post":{"description":"Encrypt and store the customer's LLM API key.\n\nSecurity guarantees:\n  - The plaintext key is encrypted with AES-256-GCM before storage.\n  - Only a masked version (sk-...xxxx) is returned.\n  - The plaintext key is NEVER stored in a log, cache, or DB column.\n  - The key can be revoked at any time via DELETE /v1/ai-config/key.","operationId":"store_api_key_v1_ai_config_key_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreKeyRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AiConfigResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Store Api Key","tags":["AI Provider Config"]}},"/v1/alpha/scan":{"post":{"operationId":"alpha_scan_v1_alpha_scan_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlphaScanRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Alpha Scan V1 Alpha Scan Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Alpha Scan","tags":["Alpha"]}},"/v1/assistants/chat":{"post":{"operationId":"assistant_chat_v1_assistants_chat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssistantChatRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssistantChatResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Assistant Chat","tags":["assistants"]}},"/v1/assistants/personas":{"get":{"description":"Authenticated users only — returns public persona labels (no internal roles).","operationId":"list_personas_v1_assistants_personas_get","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response List Personas V1 Assistants Personas Get","type":"object"}}},"description":"Successful Response"}},"summary":"List Personas","tags":["assistants"]}},"/v1/auth/features":{"get":{"operationId":"features_v1_auth_features_get","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeaturesResponse"}}},"description":"Successful Response"}},"summary":"Features","tags":["auth"]}},"/v1/auth/login":{"post":{"operationId":"login_v1_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Login","tags":["auth"]}},"/v1/auth/logout":{"post":{"operationId":"logout_v1_auth_logout_post","responses":{"204":{"description":"Successful Response"}},"summary":"Logout","tags":["auth"]}},"/v1/auth/me":{"get":{"operationId":"me_v1_auth_me_get","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserOut"}}},"description":"Successful Response"}},"summary":"Me","tags":["auth"]}},"/v1/auth/refresh":{"post":{"operationId":"refresh_v1_auth_refresh_post","responses":{"204":{"description":"Successful Response"}},"summary":"Refresh","tags":["auth"]}},"/v1/auth/ws-token":{"get":{"operationId":"ws_token_v1_auth_ws_token_get","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WsTokenResponse"}}},"description":"Successful Response"}},"summary":"Ws Token","tags":["auth"]}},"/v1/bundles/simulate":{"post":{"description":"Evaluate ``req.bundle`` against ``req.event`` and return a timeline.\n\nThe response is **always 200** when the request is structurally\nwell-formed; a bundle that fails the validator returns\n``{ok: false, decision: 'block', timeline: [validation_failed event]}``\nso the Studio can surface field-level issues without a noisy 4xx.\n\nStructural problems (oversized payload, deep event nesting) return 413.","operationId":"simulate_v1_bundles_simulate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimulateRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimulateResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Simulate","tags":["policy"]}},"/v1/bundles/simulate/compare":{"post":{"description":"Compile the canvas once per profile, simulate each, return aligned cells.\n\nDeterminism: same request body → byte-identical response. The\ncanvas is never mutated; each cell gets its own per-profile copy\nbefore compile.","operationId":"simulate_compare_v1_bundles_simulate_compare_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimulateCompareRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimulateCompareResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Simulate Compare","tags":["policy"]}},"/v1/bundles/validate":{"post":{"description":"Re-run the authoritative server validator against a bundle.\n\nReturns 200 with ``ok: false`` and a list of issues when the bundle is\nstructurally well-formed but rejected (the dashboard surfaces these\nfield-level errors directly). Truly malformed payloads (too large) get\na 413 with an actionable error envelope.","operationId":"validate_v1_bundles_validate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Validate","tags":["policy"]}},"/v1/certification/apply":{"post":{"description":"Evaluate eligibility and issue a certificate if all six criteria pass.\n\nIf the workspace is not yet eligible, returns the eligibility report with\ngaps[] so the team can see exactly what to fix. If eligible, creates a\nnew ACTIVE certificate and returns the certificate ID.\n\nIdempotent: re-applying on an already-certified workspace returns the\nexisting certificate (unless it was revoked or expired).","operationId":"apply_for_certification_v1_certification_apply_post","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Apply For Certification V1 Certification Apply Post","type":"object"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Apply for DataVibe Certified AI Governance certification","tags":["Certification"]}},"/v1/certification/status":{"get":{"description":"Return current certification status and live eligibility evaluation.\n\nAlways runs the eligibility engine fresh — use this to show the progress\nchecklist in the dashboard without submitting a formal application.","operationId":"get_certification_status_v1_certification_status_get","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Get Certification Status V1 Certification Status Get","type":"object"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Get current certification eligibility and certificate status","tags":["Certification"]}},"/v1/certification/{cert_id}":{"get":{"description":"Retrieve a certificate record by ID. No authentication required.\n\nDesigned for the public verification page (/verify/[cert-id] on the\nlanding site). Returns enough information for a third party to confirm\nthe certificate is genuine without exposing workspace internals.","operationId":"get_certificate_public_v1_certification__cert_id__get","parameters":[{"in":"path","name":"cert_id","required":true,"schema":{"title":"Cert Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Get Certificate Public V1 Certification  Cert Id  Get","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Get a certificate by ID (public — no authentication required)","tags":["Certification"]}},"/v1/check":{"post":{"description":"Send the output of your LLM call for policy evaluation. Your API keys never leave your infrastructure — DataVibe only sees the text. Returns a verdict: 'safe', 'blocked', or 'review_required'.","operationId":"check_output_v1_check_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckVerdict"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Governance verdict on AI-generated output","tags":["Governance Check"]}},"/v1/claim":{"get":{"operationId":"list_claims_v1_claim_get","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response List Claims V1 Claim Get","type":"object"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"List indemnification claims for the workspace","tags":["Enterprise Shield — Claims"]}},"/v1/claim/submit":{"post":{"description":"File an indemnification claim after a compliance incident.\n\nDataVibe will:\n1. Acknowledge the claim within 1 hour (automated).\n2. Validate the workspace held an ACTIVE certificate at incident time.\n3. Retrieve and sign the governance evidence for the cited submissions.\n4. Respond within 24 hours with the evidence package and claim decision.\n\nThe claim is automatically enriched with the active governance snapshot\nthat was in effect at the time of the cited submissions.","operationId":"submit_claim_v1_claim_submit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimSubmit"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Submit Claim V1 Claim Submit Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Submit an Enterprise Shield indemnification claim","tags":["Enterprise Shield — Claims"]}},"/v1/claim/{claim_id}":{"get":{"description":"Poll the status of a submitted claim.\n\nStatus lifecycle: SUBMITTED → UNDER_REVIEW → EVIDENCE_SENT → RESOLVED | DECLINED","operationId":"get_claim_v1_claim__claim_id__get","parameters":[{"in":"path","name":"claim_id","required":true,"schema":{"title":"Claim Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Get Claim V1 Claim  Claim Id  Get","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Get indemnification claim status","tags":["Enterprise Shield — Claims"]}},"/v1/control/bundles/check":{"post":{"description":"Evaluate ``event`` against the active bundle bound to the caller's API key.","operationId":"check_bundle_v1_control_bundles_check_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__routes__control_bundles__CheckRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Check Bundle","tags":["Runtime bundles"]}},"/v1/control/bundles/provision":{"post":{"description":"Persist a paid bundle so the runtime can enforce it.\n\nIdempotent on ``provisioning_id``: replaying the same payload returns\n``outcome == \"existing\"`` instead of duplicating rows.","operationId":"provision_bundle_v1_control_bundles_provision_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisionRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisionResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Provision Bundle","tags":["Runtime bundles"]}},"/v1/control/bundles/provisioning/{provisioning_id}":{"get":{"operationId":"fetch_provisioning_v1_control_bundles_provisioning__provisioning_id__get","parameters":[{"in":"path","name":"provisioning_id","required":true,"schema":{"title":"Provisioning Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisioningView"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Fetch Provisioning","tags":["Runtime bundles"]}},"/v1/control/bundles/revoke/{provisioning_id}":{"post":{"description":"Revoke a runtime binding so the API key stops being honored.\n\nUsed by the dashboard's subscription lifecycle (grace expiry, manual\ncancellation, refund). Idempotent — re-calling on an already-revoked\nrow returns ``already_revoked`` rather than 404.\n\nNote: ``reason`` is recorded only in the structured log for now; the\nrow itself just gets ``status = 'REVOKED'``.","operationId":"revoke_provisioning_v1_control_bundles_revoke__provisioning_id__post","parameters":[{"in":"path","name":"provisioning_id","required":true,"schema":{"title":"Provisioning Id","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Revoke Provisioning","tags":["Runtime bundles"]}},"/v1/evidence/expert-brief":{"get":{"description":"Generate a technical brief suitable for lawyers, courts, and regulators.\n\nThe brief explains in non-technical language:\n1. What DataVibe is and its role in the AI content pipeline\n2. The exact content processed (content hash — not content itself)\n3. Which policy rules fired, with statute citations and penalty ranges\n4. What decision was made and by whom (human review if applicable)\n5. The governance policy active at evaluation time (cryptographically bound)\n6. Cryptographic proof of record integrity\n\nReturns JSON (default) or print-ready HTML (Accept: text/html).","operationId":"get_expert_brief_v1_evidence_expert_brief_get","parameters":[{"description":"Gate submission ID","in":"query","name":"submission_id","required":true,"schema":{"description":"Gate submission ID","title":"Submission Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"title":"Response Get Expert Brief V1 Evidence Expert Brief Get"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Generate a plain-English expert brief for legal proceedings","tags":["Evidence Vault"]}},"/v1/evidence/gdpr/execute-deletion":{"post":{"description":"Process a pending account_deletion_request for the caller's workspace.\n\nGDPR Art. 17 (right to erasure) requires that personal data be deleted on\nrequest. However, an active legal hold MUST take precedence — deleting data\nsubject to a discovery hold violates the legal hold obligations and can\nconstitute spoliation of evidence.\n\nThis endpoint:\n1. Checks for active legal holds (workspace-scoped) — returns 503 if found.\n2. Processes the oldest PENDING deletion request for this workspace.\n3. Anonymises gate_submissions rows: recipient → '[redacted]', body_html/text → '[gdpr-erased]'.\n4. Marks the deletion request COMPLETED.\n\nGovernance invariant: assert_no_active_hold() MUST be called before any\ndata mutation. Never bypass this check.","operationId":"execute_gdpr_deletion_v1_evidence_gdpr_execute_deletion_post","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Execute Gdpr Deletion V1 Evidence Gdpr Execute Deletion Post","type":"object"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Execute a GDPR Art. 17 right-to-erasure request (internal — admin only)","tags":["Evidence Vault"]}},"/v1/evidence/governance":{"get":{"description":"Stream governance decisions as a signed NDJSON evidence package.\n\nEach line is a JSON object representing one governance decision with:\n- Full snapshot binding (snapshot_id + config_hash at enforcement time)\n- Policy violations with reasoning\n- Content hash (not content — preserves privacy while proving integrity)\n- HMAC signature per decision for individual record authentication\n\nThe first line is a package header; the last line is a package trailer\nwith aggregate signature over all decision IDs.\n\nAdmissibility: courts and regulators accept HMAC-signed JSON as electronic\nevidence when the signing key is verifiable and the chain of custody is\ndocumented. Export the signing key separately when producing for discovery.","operationId":"export_governance_evidence_v1_evidence_governance_get","parameters":[{"description":"ISO 8601 start (inclusive)","in":"query","name":"since","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 start (inclusive)","title":"Since"}},{"description":"ISO 8601 end (exclusive)","in":"query","name":"until","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 end (exclusive)","title":"Until"}},{"description":"BLOCKED | QUEUED | APPROVED | REJECTED | SENT","in":"query","name":"verdict","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"BLOCKED | QUEUED | APPROVED | REJECTED | SENT","title":"Verdict"}},{"description":"Include SHA-256 hash of body content","in":"query","name":"include_content_hash","required":false,"schema":{"default":true,"description":"Include SHA-256 hash of body content","title":"Include Content Hash","type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Export Governance Evidence","tags":["Evidence Vault"]}},"/v1/evidence/governance/{submission_id}":{"get":{"description":"Get a single governance decision as a complete, self-contained evidence record.\n\nIncludes the full policy snapshot that was active at enforcement time,\nso the decision can be independently replayed and verified.","operationId":"get_single_governance_evidence_v1_evidence_governance__submission_id__get","parameters":[{"in":"path","name":"submission_id","required":true,"schema":{"title":"Submission Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Get Single Governance Evidence V1 Evidence Governance  Submission Id  Get","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Get Single Governance Evidence","tags":["Evidence Vault"]}},"/v1/evidence/legal-holds":{"get":{"description":"List legal holds for the workspace. Status filter defaults to ACTIVE.","operationId":"list_legal_holds_v1_evidence_legal_holds_get","parameters":[{"description":"ACTIVE | RELEASED | all","in":"query","name":"status","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ACTIVE | RELEASED | all","title":"Status"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response List Legal Holds V1 Evidence Legal Holds Get","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"List Legal Holds","tags":["Evidence Vault"]},"post":{"description":"Create a legal hold to freeze records from deletion.","operationId":"create_legal_hold_v1_evidence_legal_holds_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegalHoldCreate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Create Legal Hold V1 Evidence Legal Holds Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Create Legal Hold","tags":["Evidence Vault"]}},"/v1/evidence/legal-holds/{hold_id}/release":{"post":{"description":"Release a legal hold. Records can be purged again after release.","operationId":"release_legal_hold_v1_evidence_legal_holds__hold_id__release_post","parameters":[{"in":"path","name":"hold_id","required":true,"schema":{"title":"Hold Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Release Legal Hold V1 Evidence Legal Holds  Hold Id  Release Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Release Legal Hold","tags":["Evidence Vault"]}},"/v1/evidence/report":{"get":{"description":"Generate a regulator-ready compliance report for the workspace.\n\nDesigned to be handed directly to:\n- OCR (HIPAA) — AI system description, PHI violation incidents, remediation log\n- FINRA — communication records, supervisor approval chain, retention proof\n- SEC/SOX — financial AI decisions, dual approval chain, 7-year immutable log\n- GDPR/DPA — Records of Processing Activities (ROPA), breach incidents\n\nReturns JSON by default. Pass Accept: text/html for a printable HTML version.\nThe HTML version can be printed to PDF in any browser.","operationId":"export_compliance_report_v1_evidence_report_get","parameters":[{"description":"Report format: hipaa | finra | sox | gdpr","in":"query","name":"format","required":true,"schema":{"description":"Report format: hipaa | finra | sox | gdpr","title":"Format","type":"string"}},{"description":"ISO 8601 start date (inclusive)","in":"query","name":"since","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 start date (inclusive)","title":"Since"}},{"description":"ISO 8601 end date (exclusive)","in":"query","name":"until","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 end date (exclusive)","title":"Until"}}],"responses":{"200":{"content":{"application/json":{"schema":{"title":"Response Export Compliance Report V1 Evidence Report Get"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Export a regulator-ready compliance report (HIPAA / FINRA / SOX / GDPR)","tags":["Evidence Vault"]}},"/v1/evidence/signing-key":{"get":{"operationId":"get_signing_key_hint_v1_evidence_signing_key_get","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Get Signing Key Hint V1 Evidence Signing Key Get","type":"object"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Get the registered co-signing key hint for this workspace","tags":["Evidence Vault"]},"post":{"description":"Store a workspace-controlled HMAC secret for evidence co-signing.\n\nAfter registration, all evidence exports for this workspace will carry\ntwo HMAC signatures: DataVibe platform key + customer key. Either party\ncan independently verify the export.\n\nThe secret is stored encrypted (Fernet/AES via EVIDENCE_SIGNING_SECRET\nas KEK). It is never returned in full — only the first 6 chars + hint.","operationId":"register_signing_key_v1_evidence_signing_key_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningKeyRegister"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Register Signing Key V1 Evidence Signing Key Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Register a customer co-signing key for dual-signature evidence packages","tags":["Evidence Vault"]}},"/v1/evidence/verify":{"get":{"description":"Verify the integrity of a DataVibe evidence package.\n\nThis endpoint requires NO authentication — it is designed to be used by\nlawyers, regulators, and court officers who have received an evidence export\nand need to verify its authenticity independently.\n\nVerification process:\n1. The verifier provides the export_id and aggregate_signature from the\n   package trailer.\n2. DataVibe looks up the export metadata and recomputes the aggregate\n   signature using the platform signing key.\n3. If a customer_secret is provided, DataVibe also verifies the customer\n   co-signature, proving the customer independently witnessed the package.\n\nReturns: { verified: bool, dv_sig: \"OK\"|\"FAIL\", customer_sig: \"OK\"|\"FAIL\"|\"N/A\" }","operationId":"verify_evidence_signature_v1_evidence_verify_get","parameters":[{"description":"Export ID from the evidence package header","in":"query","name":"export_id","required":true,"schema":{"description":"Export ID from the evidence package header","title":"Export Id","type":"string"}},{"description":"Aggregate signature from the package trailer (v1=<hex>)","in":"query","name":"signature","required":true,"schema":{"description":"Aggregate signature from the package trailer (v1=<hex>)","title":"Signature","type":"string"}},{"description":"Customer co-signing secret for dual verification","in":"query","name":"customer_secret","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Customer co-signing secret for dual verification","title":"Customer Secret"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Verify Evidence Signature V1 Evidence Verify Get","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Verify an evidence package signature (public — no authentication required)","tags":["Evidence Vault"]}},"/v1/features":{"get":{"operationId":"features_alias_v1_features_get","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeaturesResponse"}}},"description":"Successful Response"}},"summary":"Features Alias","tags":["features"]}},"/v1/gate/demo":{"post":{"description":"Runs the base governance scanner on arbitrary content. No workspace API key required. Rate-limited 10 req/min per IP. Returns verdict (safe | review_required | blocked) and full violation list. Identical to POST /v1/alpha/scan — provided at this path for discoverability.","operationId":"gate_demo_v1_gate_demo_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlphaScanRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Gate Demo V1 Gate Demo Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Public gate demo (no auth required)","tags":["Gate"]}},"/v1/gate/execute/{action_id}":{"post":{"operationId":"execute_submission_v1_gate_execute__action_id__post","parameters":[{"in":"path","name":"action_id","required":true,"schema":{"title":"Action Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Execute Submission V1 Gate Execute  Action Id  Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Execute an approved gate submission (internal — dashboard use only)","tags":["Outbound Gate"]}},"/v1/gate/outbound":{"post":{"description":"The gate intercepts AI-generated outbound before it reaches your sending infrastructure. Every submission is scanned by the policy engine and held in the approval queue until a human releases it.","operationId":"submit_outbound_v1_gate_outbound_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__routes__gate__OutboundGateRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutboundGateResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Submit an AI-generated outbound message for human review","tags":["Outbound Gate"]}},"/v1/gate/outbound/{action_id}":{"get":{"operationId":"get_submission_status_v1_gate_outbound__action_id__get","parameters":[{"in":"path","name":"action_id","required":true,"schema":{"title":"Action Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Get Submission Status V1 Gate Outbound  Action Id  Get","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Poll the status of a gate submission","tags":["Outbound Gate"]}},"/v1/gate/stream":{"post":{"description":"Buffer streamed tokens into sentences and run deterministic policy on each flush.\n\nClients POST sequential chunks; when ``final=true`` the full buffer is scanned.\nDoes not persist until integrated with outbound dispatch — returns advisory verdicts.","operationId":"gate_stream_chunk_v1_gate_stream_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GateStreamChunk"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GateStreamResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Progressive governance scan for token streams (NDJSON chunks)","tags":["Outbound Gate"]}},"/v1/gate/submissions":{"get":{"operationId":"list_submissions_v1_gate_submissions_get","parameters":[{"in":"query","name":"status","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"in":"query","name":"limit","required":false,"schema":{"default":50,"title":"Limit","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response List Submissions V1 Gate Submissions Get","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"List gate submissions for your workspace","tags":["Outbound Gate"]}},"/v1/gate/usage/tokens":{"get":{"operationId":"get_governance_token_usage_v1_gate_usage_tokens_get","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GovernanceTokenUsageResponse"}}},"description":"Successful Response"}},"summary":"Daily governance token usage for the workspace","tags":["Outbound Gate"]}},"/v1/generate":{"post":{"description":"Generate AI content and governance-check the output in one call.\n\nThe LLM key used depends on your workspace config (GET /v1/ai-config):\n  - llm_mode == 'shared': DataVibe's own API key is used.\n  - llm_mode == 'byok':   Your encrypted key is decrypted in memory,\n                          used for this call, then discarded.","operationId":"generate_and_check_v1_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Generate And Check","tags":["Generate"]}},"/v1/generate/stream":{"post":{"description":"SSE wrapper around /v1/generate — emits progress then the final JSON payload.\n\nTrue provider token streaming can be added later; this endpoint keeps the\nHTTP connection alive and returns the same GenerateResponse as JSON in the\nfinal `result` event.","operationId":"generate_and_check_stream_v1_generate_stream_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Generate + govern with SSE progress events (beta)","tags":["Generate"]}},"/v1/governance/agent/action/{action_id}":{"get":{"operationId":"check_action_status_v1_governance_agent_action__action_id__get","parameters":[{"in":"path","name":"action_id","required":true,"schema":{"title":"Action Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionStatusResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Check Action Status","tags":["governance"]}},"/v1/governance/agent/actions":{"get":{"description":"List governance actions. status=PENDING|APPROVED|REJECTED|ALL","operationId":"list_governance_actions_v1_governance_agent_actions_get","parameters":[{"in":"query","name":"status","required":false,"schema":{"default":"PENDING","title":"Status","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"default":100,"maximum":500,"minimum":1,"title":"Limit","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response List Governance Actions V1 Governance Agent Actions Get","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"List Governance Actions","tags":["governance-autonomy"]}},"/v1/governance/agent/actions/{action_id}":{"get":{"operationId":"get_governance_action_v1_governance_agent_actions__action_id__get","parameters":[{"in":"path","name":"action_id","required":true,"schema":{"title":"Action Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Get Governance Action V1 Governance Agent Actions  Action Id  Get","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Get Governance Action","tags":["governance-autonomy"]}},"/v1/governance/agent/actions/{action_id}/approve":{"post":{"description":"Transition IN_REVIEW → APPROVED and store the HMAC attestation envelope.","operationId":"approve_governance_action_v1_governance_agent_actions__action_id__approve_post","parameters":[{"in":"path","name":"action_id","required":true,"schema":{"title":"Action Id","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Body","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Approve Governance Action V1 Governance Agent Actions  Action Id  Approve Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Approve Governance Action","tags":["governance-autonomy"]}},"/v1/governance/agent/actions/{action_id}/claim":{"post":{"description":"Atomic PENDING → IN_REVIEW for concurrency safety.","operationId":"claim_governance_action_v1_governance_agent_actions__action_id__claim_post","parameters":[{"in":"path","name":"action_id","required":true,"schema":{"title":"Action Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Claim Governance Action V1 Governance Agent Actions  Action Id  Claim Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Claim Governance Action","tags":["governance-autonomy"]}},"/v1/governance/agent/actions/{action_id}/reject":{"post":{"description":"Transition IN_REVIEW → REJECTED.","operationId":"reject_governance_action_v1_governance_agent_actions__action_id__reject_post","parameters":[{"in":"path","name":"action_id","required":true,"schema":{"title":"Action Id","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Body","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Reject Governance Action V1 Governance Agent Actions  Action Id  Reject Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Reject Governance Action","tags":["governance-autonomy"]}},"/v1/governance/agent/actions/{action_id}/release":{"post":{"description":"Release IN_REVIEW → PENDING (rollback on failure).","operationId":"release_governance_action_v1_governance_agent_actions__action_id__release_post","parameters":[{"in":"path","name":"action_id","required":true,"schema":{"title":"Action Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Release Governance Action V1 Governance Agent Actions  Action Id  Release Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Release Governance Action","tags":["governance-autonomy"]}},"/v1/governance/agent/apply-autonomy-allowlist":{"post":{"description":"Merge ``proposed_prefixes`` from an approved ``AUTONOMY_ALLOWLIST_PROPOSAL`` into legacy allowlist JSON.","operationId":"apply_autonomy_allowlist_approved_v1_governance_agent_apply_autonomy_allowlist_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplyAutonomyAllowlistIn"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Apply Autonomy Allowlist Approved V1 Governance Agent Apply Autonomy Allowlist Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Apply Autonomy Allowlist Approved","tags":["governance"]}},"/v1/governance/agent/apply-policy-calibration":{"post":{"description":"Apply ``proposed_policy_keys`` from an approved ``POLICY_CALIBRATION_PROPOSAL`` action (Phase B).","operationId":"apply_policy_calibration_approved_v1_governance_agent_apply_policy_calibration_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplyPolicyCalibrationIn"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Apply Policy Calibration Approved V1 Governance Agent Apply Policy Calibration Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Apply Policy Calibration Approved","tags":["governance"]}},"/v1/governance/agent/audit":{"post":{"operationId":"log_audit_v1_governance_agent_audit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditLogEntry"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":{"type":"boolean"},"title":"Response Log Audit V1 Governance Agent Audit Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Log Audit","tags":["governance"]}},"/v1/governance/agent/auditor/reconcile":{"post":{"description":"Phase-1 Auditor pilot:\ncompare recent dashboard usage rows against read-only Stripe balance snapshot\nand queue an approval card for chairman review.","operationId":"enqueue_auditor_daily_reconcile_v1_governance_agent_auditor_reconcile_post","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Enqueue Auditor Daily Reconcile V1 Governance Agent Auditor Reconcile Post","type":"object"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Enqueue Auditor Daily Reconcile","tags":["governance"]}},"/v1/governance/agent/autonomy/heartbeat":{"post":{"description":"Cross-domain heartbeat for autonomous operations.\n\nExecutes existing free-tier loops in one cadence and returns per-loop status.","operationId":"autonomy_heartbeat_v1_governance_agent_autonomy_heartbeat_post","parameters":[{"description":"When true, also run slower strategy/policy loops.","in":"query","name":"deep","required":false,"schema":{"default":false,"description":"When true, also run slower strategy/policy loops.","title":"Deep","type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutonomyHeartbeatResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Autonomy Heartbeat","tags":["governance-autonomy"]}},"/v1/governance/agent/board/weekly-report":{"post":{"operationId":"board_weekly_report_v1_governance_agent_board_weekly_report_post","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericOkResponse"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Board Weekly Report","tags":["governance-autonomy"]}},"/v1/governance/agent/control/queue":{"get":{"operationId":"wrapper_get_queue_metrics_v1_governance_agent_control_queue_get","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ControlQueueMetricsResponse"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Wrapper Get Queue Metrics","tags":["governance-autonomy"]}},"/v1/governance/agent/control/registry":{"get":{"operationId":"wrapper_get_registry_v1_governance_agent_control_registry_get","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ControlRegistryResponse"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Wrapper Get Registry","tags":["governance-autonomy"]}},"/v1/governance/agent/control/tasks/dlq":{"get":{"operationId":"wrapper_list_dlq_v1_governance_agent_control_tasks_dlq_get","parameters":[{"in":"query","name":"limit","required":false,"schema":{"default":50,"title":"Limit","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ControlDLQResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Wrapper List Dlq","tags":["governance-autonomy"]}},"/v1/governance/agent/dashboard/audit-loop":{"post":{"operationId":"enqueue_dashboard_audit_loop_v1_governance_agent_dashboard_audit_loop_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardAuditRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Enqueue Dashboard Audit Loop V1 Governance Agent Dashboard Audit Loop Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Enqueue Dashboard Audit Loop","tags":["governance"]}},"/v1/governance/agent/data/pipeline-deployment-proposal":{"post":{"operationId":"enqueue_pipeline_deployment_proposal_v1_governance_agent_data_pipeline_deployment_proposal_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineDeploymentProposalRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Enqueue Pipeline Deployment Proposal V1 Governance Agent Data Pipeline Deployment Proposal Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Enqueue Pipeline Deployment Proposal","tags":["governance"]}},"/v1/governance/agent/data/pipeline-engineer-turn":{"post":{"operationId":"run_pipeline_engineer_turn_v1_governance_agent_data_pipeline_engineer_turn_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineEngineerTurnRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Run Pipeline Engineer Turn V1 Governance Agent Data Pipeline Engineer Turn Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Run Pipeline Engineer Turn","tags":["governance"]}},"/v1/governance/agent/data/scientist-run":{"post":{"description":"DATA_SCIENTIST: read campaign telemetry, propose copy optimization when metrics drop.","operationId":"data_scientist_run_v1_governance_agent_data_scientist_run_post","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericOkResponse"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Data Scientist Run","tags":["governance-autonomy"]}},"/v1/governance/agent/engineering/dev-loop":{"post":{"operationId":"enqueue_engineering_dev_loop_v1_governance_agent_engineering_dev_loop_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EngineeringDevLoopRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Enqueue Engineering Dev Loop V1 Governance Agent Engineering Dev Loop Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Enqueue Engineering Dev Loop","tags":["governance"]}},"/v1/governance/agent/legal/compliance-check":{"post":{"operationId":"enqueue_legal_compliance_check_v1_governance_agent_legal_compliance_check_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegalComplianceRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Enqueue Legal Compliance Check V1 Governance Agent Legal Compliance Check Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Enqueue Legal Compliance Check","tags":["governance"]}},"/v1/governance/agent/maintenance/expire-stale-pending":{"post":{"description":"Mark governance actions stuck in PENDING beyond ``older_than_days`` as FAILED (TTL cleanup).\nAlso reverts IN_REVIEW rows older than 30 minutes back to PENDING — these are actions\nwhose claiming serverless request crashed mid-flight without releasing the lock.\nIntended for daily cron (does not require global system ACTIVE).","operationId":"expire_stale_pending_actions_v1_governance_agent_maintenance_expire_stale_pending_post","parameters":[{"in":"query","name":"older_than_days","required":false,"schema":{"default":7,"maximum":90,"minimum":1,"title":"Older Than Days","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpireStaleResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Expire Stale Pending Actions","tags":["governance-autonomy"]}},"/v1/governance/agent/maintenance/prune-langgraph-checkpoints":{"post":{"description":"Weekly cron: trim LangGraph Postgres checkpoints (Phase C4).","operationId":"prune_langgraph_checkpoints_route_v1_governance_agent_maintenance_prune_langgraph_checkpoints_post","parameters":[{"in":"query","name":"older_than_days","required":false,"schema":{"default":14,"maximum":90,"minimum":1,"title":"Older Than Days","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericOkResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Prune Langgraph Checkpoints Route","tags":["governance-autonomy"]}},"/v1/governance/agent/onboarding/initiate":{"post":{"operationId":"enqueue_client_onboarding_v1_governance_agent_onboarding_initiate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientOnboardingRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Enqueue Client Onboarding V1 Governance Agent Onboarding Initiate Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Enqueue Client Onboarding","tags":["governance"]}},"/v1/governance/agent/ops/brand-sentinel-scan":{"post":{"operationId":"brand_sentinel_scan_v1_governance_agent_ops_brand_sentinel_scan_post","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericOkResponse"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Brand Sentinel Scan","tags":["governance-autonomy"]}},"/v1/governance/agent/ops/pipeline-health-scan":{"post":{"operationId":"pipeline_health_scan_v1_governance_agent_ops_pipeline_health_scan_post","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericOkResponse"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Pipeline Health Scan","tags":["governance-autonomy"]}},"/v1/governance/agent/ops/self-healing-pass":{"post":{"description":"Self-healer: convert approved PIPELINE_HEALTH_ALERT_INTERNAL → PIPELINE_REMEDIATION_ actions.","operationId":"self_healing_pass_v1_governance_agent_ops_self_healing_pass_post","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericOkResponse"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Self Healing Pass","tags":["governance-autonomy"]}},"/v1/governance/agent/pipeline/custom-design":{"post":{"operationId":"enqueue_custom_pipeline_design_v1_governance_agent_pipeline_custom_design_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomPipelineRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Enqueue Custom Pipeline Design V1 Governance Agent Pipeline Custom Design Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Enqueue Custom Pipeline Design","tags":["governance"]}},"/v1/governance/agent/pipeline/health-scan":{"post":{"operationId":"enqueue_pipeline_health_scan_v1_governance_agent_pipeline_health_scan_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineHealthScanRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Enqueue Pipeline Health Scan V1 Governance Agent Pipeline Health Scan Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Enqueue Pipeline Health Scan","tags":["governance"]}},"/v1/governance/agent/policy/calibration-run":{"post":{"operationId":"policy_calibration_run_v1_governance_agent_policy_calibration_run_post","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericOkResponse"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Policy Calibration Run","tags":["governance-autonomy"]}},"/v1/governance/agent/request-action":{"post":{"operationId":"request_action_v1_governance_agent_request_action_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Request Action V1 Governance Agent Request Action Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Request Action","tags":["governance"]}},"/v1/governance/agent/research/financial-audit":{"post":{"operationId":"run_financial_audit_route_v1_governance_agent_research_financial_audit_post","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Run Financial Audit Route V1 Governance Agent Research Financial Audit Post","type":"object"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Run Financial Audit Route","tags":["governance"]}},"/v1/governance/agent/research/innovation-loop":{"post":{"operationId":"enqueue_innovation_scout_loop_v1_governance_agent_research_innovation_loop_post","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Enqueue Innovation Scout Loop V1 Governance Agent Research Innovation Loop Post","type":"object"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Enqueue Innovation Scout Loop","tags":["governance"]}},"/v1/governance/agent/research/strategy-loop":{"post":{"operationId":"run_strategy_scout_loop_v1_governance_agent_research_strategy_loop_post","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Run Strategy Scout Loop V1 Governance Agent Research Strategy Loop Post","type":"object"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Run Strategy Scout Loop","tags":["governance"]}},"/v1/governance/agent/sales/outbound-generate":{"post":{"description":"Same behavior as POST /v1/jarvis/outbound/generate: draft outbound campaign and\nenqueue PENDING governance action (no auto-send). Exposed under /v1/governance/agent\nso gateways that only route governance prefixes still work.","operationId":"sales_outbound_generate_v1_governance_agent_sales_outbound_generate_post","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericOkResponse"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Sales Outbound Generate","tags":["governance-autonomy"]}},"/v1/governance/agent/sales/outbound-seed":{"get":{"operationId":"sales_outbound_seed_get_v1_governance_agent_sales_outbound_seed_get","responses":{"200":{"content":{"application/json":{"schema":{"title":"Response Sales Outbound Seed Get V1 Governance Agent Sales Outbound Seed Get"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Sales Outbound Seed Get","tags":["governance-autonomy"]},"post":{"operationId":"sales_outbound_seed_post_v1_governance_agent_sales_outbound_seed_post","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericOkResponse"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Sales Outbound Seed Post","tags":["governance-autonomy"]}},"/v1/governance/agent/sales/prospect-run":{"post":{"description":"SNIPER autonomous prospecting: find fintech ICP targets and queue sales loops.","operationId":"prospect_run_v1_governance_agent_sales_prospect_run_post","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericOkResponse"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Prospect Run","tags":["governance-autonomy"]}},"/v1/governance/agent/sales/revenue-loop":{"post":{"operationId":"enqueue_sales_revenue_loop_v1_governance_agent_sales_revenue_loop_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalesRevenueLoopRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Enqueue Sales Revenue Loop V1 Governance Agent Sales Revenue Loop Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Enqueue Sales Revenue Loop","tags":["governance"]}},"/v1/governance/agent/sales/swarm-objective":{"post":{"operationId":"enqueue_swarm_sales_objective_route_v1_governance_agent_sales_swarm_objective_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwarmSalesObjectiveRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Enqueue Swarm Sales Objective Route V1 Governance Agent Sales Swarm Objective Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Enqueue Swarm Sales Objective Route","tags":["governance"]}},"/v1/governance/agent/scaling/analysis":{"post":{"operationId":"enqueue_cost_analysis_v1_governance_agent_scaling_analysis_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CostAnalysisRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Enqueue Cost Analysis V1 Governance Agent Scaling Analysis Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Enqueue Cost Analysis","tags":["governance"]}},"/v1/governance/agent/security/web-audit":{"post":{"operationId":"enqueue_security_web_audit_v1_governance_agent_security_web_audit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecurityAuditRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Enqueue Security Web Audit V1 Governance Agent Security Web Audit Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Enqueue Security Web Audit","tags":["governance"]}},"/v1/governance/agent/seo/audit-loop":{"post":{"operationId":"enqueue_seo_audit_v1_governance_agent_seo_audit_loop_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeoAuditRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Enqueue Seo Audit V1 Governance Agent Seo Audit Loop Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Enqueue Seo Audit","tags":["governance"]}},"/v1/governance/agent/sop/rejection-pattern-scan":{"post":{"operationId":"rejection_pattern_scan_v1_governance_agent_sop_rejection_pattern_scan_post","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericOkResponse"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Rejection Pattern Scan","tags":["governance-autonomy"]}},"/v1/governance/agent/trust/on-manual-approve":{"post":{"description":"Optional: called from dashboard after chairman approval to graduate autonomy streaks.\nBody: { \"action_id\": \"uuid\" }","operationId":"trust_on_manual_approve_v1_governance_agent_trust_on_manual_approve_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutonomyActionBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrustOnManualApproveResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Trust On Manual Approve","tags":["governance-autonomy"]}},"/v1/governance/agent/trust/on-manual-reject":{"post":{"operationId":"trust_on_manual_reject_v1_governance_agent_trust_on_manual_reject_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutonomyActionBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericOkResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Trust On Manual Reject","tags":["governance-autonomy"]}},"/v1/governance/campaigns":{"post":{"description":"Create a ``GovernanceCampaign`` for attribution rollups (zero marginal cost — Postgres only).","operationId":"post_create_governance_campaign_v1_governance_campaigns_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCampaignIn"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Post Create Governance Campaign V1 Governance Campaigns Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Post Create Governance Campaign","tags":["governance"]}},"/v1/governance/campaigns/recent":{"get":{"operationId":"get_recent_governance_campaigns_v1_governance_campaigns_recent_get","parameters":[{"in":"query","name":"limit","required":false,"schema":{"default":12,"maximum":80,"minimum":1,"title":"Limit","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Get Recent Governance Campaigns V1 Governance Campaigns Recent Get","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Get Recent Governance Campaigns","tags":["governance"]}},"/v1/governance/config":{"get":{"description":"Return the active governance config for the workspace.","operationId":"get_governance_config_v1_governance_config_get","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Get Governance Config V1 Governance Config Get","type":"object"}}},"description":"Successful Response"}},"summary":"Get Governance Config","tags":["Governance Config"]},"post":{"description":"Save new governance config. Creates an immutable snapshot and rotates the active pointer.\n\nIndustry overlays (healthcare, fintech, legal, fda, sox) require Pro or Enterprise plan.\nStarter-tier workspaces may not activate overlays.","operationId":"update_governance_config_v1_governance_config_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GovernanceConfigUpdate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Update Governance Config V1 Governance Config Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Update Governance Config","tags":["Governance Config"]}},"/v1/governance/config/schema":{"get":{"description":"Return allowed values for bounded config fields. No auth required — public schema.","operationId":"get_config_schema_v1_governance_config_schema_get","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Get Config Schema V1 Governance Config Schema Get","type":"object"}}},"description":"Successful Response"}},"summary":"Get Config Schema","tags":["Governance Config"]}},"/v1/governance/export":{"get":{"description":"Stream all gate submissions for the workspace as NDJSON.\n\nUses a server-side asyncpg cursor so memory usage is constant regardless\nof result set size. Schema is 1:1 identical to the live webhook payload,\nenabling direct SIEM ingestion from exported files.\n\nSafe for legal hold and cold-storage archival.","operationId":"export_audit_log_v1_governance_export_get","parameters":[{"description":"ISO 8601 start timestamp (inclusive)","in":"query","name":"since","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 start timestamp (inclusive)","title":"Since"}},{"description":"ISO 8601 end timestamp (exclusive)","in":"query","name":"until","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 end timestamp (exclusive)","title":"Until"}},{"description":"Filter by status: BLOCKED, QUEUED, SENT, FAILED","in":"query","name":"status","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status: BLOCKED, QUEUED, SENT, FAILED","title":"Status"}}],"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Export Audit Log","tags":["Governance Config"]}},"/v1/governance/operator/autonomy-flags":{"get":{"operationId":"get_autonomy_flags_v1_governance_operator_autonomy_flags_get","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":{"type":"boolean"},"title":"Response Get Autonomy Flags V1 Governance Operator Autonomy Flags Get","type":"object"}}},"description":"Successful Response"}},"summary":"Get Autonomy Flags","tags":["governance"]},"put":{"operationId":"put_autonomy_flags_v1_governance_operator_autonomy_flags_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OperatorAutonomyFlagsPatch"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":{"type":"boolean"},"title":"Response Put Autonomy Flags V1 Governance Operator Autonomy Flags Put","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Put Autonomy Flags","tags":["governance"]}},"/v1/governance/operator/policy-config":{"delete":{"operationId":"reset_policy_config_v1_governance_operator_policy_config_delete","parameters":[{"in":"query","name":"field","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Field"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Reset Policy Config V1 Governance Operator Policy Config Delete","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Reset Policy Config","tags":["governance"]},"get":{"operationId":"get_policy_config_v1_governance_operator_policy_config_get","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Get Policy Config V1 Governance Operator Policy Config Get","type":"object"}}},"description":"Successful Response"}},"summary":"Get Policy Config","tags":["governance"]},"put":{"operationId":"set_policy_config_v1_governance_operator_policy_config_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OperatorPolicyConfig"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Set Policy Config V1 Governance Operator Policy Config Put","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Set Policy Config","tags":["governance"]}},"/v1/governance/operator/policy-config/revert":{"post":{"operationId":"revert_policy_field_v1_governance_operator_policy_config_revert_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyRevertRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Revert Policy Field V1 Governance Operator Policy Config Revert Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Revert Policy Field","tags":["governance"]}},"/v1/governance/operator/system-state":{"get":{"operationId":"get_system_state_v1_governance_operator_system_state_get","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"title":"Response Get System State V1 Governance Operator System State Get","type":"object"}}},"description":"Successful Response"}},"summary":"Get System State","tags":["governance"]},"put":{"operationId":"set_system_state_v1_governance_operator_system_state_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OperatorSystemStatusUpdate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"title":"Response Set System State V1 Governance Operator System State Put","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Set System State","tags":["governance"]}},"/v1/governance/outbound-gate":{"post":{"description":"Hold a third-party outbound payload for governed approval before provider dispatch.\n\nExternal AI SDR/workflow tools can submit the exact outbound they planned to\nsend, and DataVibe turns it into the same signed approval path used by the\nGovernance Hub.","operationId":"outbound_gate_v1_governance_outbound_gate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutboundGateRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Outbound Gate V1 Governance Outbound Gate Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Outbound Gate","tags":["governance"]}},"/v1/governance/resume/{thread_id}":{"post":{"operationId":"resume_jarvis_thread_v1_governance_resume__thread_id__post","parameters":[{"in":"path","name":"thread_id","required":true,"schema":{"title":"Thread Id","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResumeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"title":"Response Resume Jarvis Thread V1 Governance Resume  Thread Id  Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Resume Jarvis Thread","tags":["governance"]}},"/v1/governance/webhook":{"delete":{"description":"Deactivate the workspace's governance webhook.","operationId":"deactivate_webhook_v1_governance_webhook_delete","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Deactivate Webhook V1 Governance Webhook Delete","type":"object"}}},"description":"Successful Response"}},"summary":"Deactivate Webhook","tags":["Governance Config"]},"get":{"description":"Return current webhook registration for the workspace (secret redacted).","operationId":"get_webhook_v1_governance_webhook_get","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Get Webhook V1 Governance Webhook Get","type":"object"}}},"description":"Successful Response"}},"summary":"Get Webhook","tags":["Governance Config"]},"post":{"description":"Register or replace the governance webhook endpoint.\n\nGenerates a fresh HMAC signing secret. Store it securely — it is only\nreturned once and never retrievable again.","operationId":"register_webhook_v1_governance_webhook_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookRegistration"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Register Webhook V1 Governance Webhook Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Register Webhook","tags":["Governance Config"]}},"/v1/governance/webhook/test":{"post":{"description":"Send a synthetic governance event to the registered endpoint to verify delivery.","operationId":"test_webhook_v1_governance_webhook_test_post","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Test Webhook V1 Governance Webhook Test Post","type":"object"}}},"description":"Successful Response"}},"summary":"Test Webhook","tags":["Governance Config"]}},"/v1/guard":{"post":{"description":"Runs pip-audit against requirements.txt, stores the result in Neon,\nand returns the full vulnerability report.\n\nTakes ~5-15 seconds depending on network latency to the OSV database.","operationId":"trigger_scan_v1_guard_post","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanResult"}}},"description":"Successful Response"}},"security":[{"HTTPBearer":[]}],"summary":"Run SourceGuard dependency scan","tags":["security"]}},"/v1/guard/history":{"get":{"description":"Returns the last 30 scan summaries (no vuln details — those are in /latest).","operationId":"get_scan_history_v1_guard_history_get","responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"}},"security":[{"HTTPBearer":[]}],"summary":"Scan history summaries","tags":["security"]}},"/v1/guard/latest":{"get":{"description":"Returns the most recent stored scan. Used by the CISO dashboard\nas the fallback when the Neon Data API isn't configured.","operationId":"get_latest_scan_v1_guard_latest_get","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanResult"}}},"description":"Successful Response"}},"security":[{"HTTPBearer":[]}],"summary":"Most recent scan results","tags":["security"]}},"/v1/guard/remediate":{"post":{"description":"Previously spawned a JARVIS agent thread to autonomously patch a vulnerability.\nThe Jarvis autonomous execution system is currently offline.\nUse /v1/guard to identify vulnerabilities; apply fixes manually or via CI.","operationId":"remediate_vulnerability_v1_guard_remediate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemediateRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"HTTPBearer":[]}],"summary":"Autonomous remediation (offline — requires Jarvis agent system)","tags":["security"]}},"/v1/health":{"get":{"description":"Cheap endpoint for uptime probes. If Mongo is configured, perform a single\n`ping` command via the shared Motor pool (no new client per request).","operationId":"liveness_v1_health_get","responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"}},"summary":"Liveness","tags":["health"]}},"/v1/health/db":{"get":{"description":"Runs a trivial query against Neon to confirm the pool is live.\nUses a schema-independent query so this works regardless of which\ntables are present in the core-api database.","operationId":"db_readiness_v1_health_db_get","responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"}},"summary":"Db Readiness","tags":["health"]}},"/v1/health/mongo":{"get":{"operationId":"mongo_readiness_v1_health_mongo_get","responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"}},"summary":"Mongo Readiness","tags":["health"]}},"/v1/health/queue":{"get":{"operationId":"queue_health_v1_health_queue_get","responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"}},"summary":"Queue Health","tags":["health"]}},"/v1/health/ready":{"get":{"description":"Deep readiness: verifies Neon connectivity, gate-path schema, and Prisma tables.\n\nReturns 503 with a clear error if NEON_DATABASE_URL points at the wrong\nNeon project (missing Prisma tables mean API key auth cannot function).","operationId":"gate_readiness_v1_health_ready_get","responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"}},"summary":"Gate Readiness","tags":["health"]}},"/v1/integrations/aws/cloudformation-template":{"get":{"description":"Return a customer-specific CloudFormation template.\n\nThe customer downloads this JSON and deploys it via:\n  aws cloudformation deploy --template-file datavibe-access.json         --stack-name datavibe-access         --parameter-overrides S3BucketName=my-bucket         --capabilities CAPABILITY_NAMED_IAM","operationId":"get_cloudformation_template_v1_integrations_aws_cloudformation_template_get","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Get Cloudformation Template V1 Integrations Aws Cloudformation Template Get","type":"object"}}},"description":"Successful Response"}},"security":[{"HTTPBearer":[]}],"summary":"Get Cloudformation Template","tags":["aws-integrations"]}},"/v1/integrations/aws/role/connect":{"post":{"description":"Full AWS connection registration.\n\n1. Validates the role ARN format.\n2. Calls STS AssumeRole to confirm the handshake works.\n3. Stores the ARN (not credentials!) in the secret vault.\n4. Returns a connection_id for use in pipeline DAG configs.","operationId":"aws_role_connect_v1_integrations_aws_role_connect_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwsRoleConnectBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Aws Role Connect V1 Integrations Aws Role Connect Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"HTTPBearer":[]}],"summary":"Aws Role Connect","tags":["aws-integrations"]}},"/v1/integrations/aws/s3/preview":{"post":{"description":"End-to-end integration smoke test: AssumeRole → stream S3 object → return sample rows.\n\nThis proves the full data path works before the customer builds a pipeline.\nData is streamed in-flight — no disk I/O on Render.","operationId":"aws_s3_preview_v1_integrations_aws_s3_preview_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwsS3PreviewBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Aws S3 Preview V1 Integrations Aws S3 Preview Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"HTTPBearer":[]}],"summary":"Aws S3 Preview","tags":["aws-integrations"]}},"/v1/integrations/jira/issue":{"post":{"description":"Create a Jira issue from a governance violation.","operationId":"create_jira_issue_v1_integrations_jira_issue_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateIssueRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Create Jira Issue V1 Integrations Jira Issue Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Create Jira Issue","tags":["jira-integrations"]}},"/v1/integrations/jira/status":{"get":{"description":"Check Jira credentials and project key validity.","operationId":"jira_connection_status_v1_integrations_jira_status_get","parameters":[{"in":"query","name":"base_url","required":true,"schema":{"title":"Base Url","type":"string"}},{"in":"query","name":"email","required":true,"schema":{"title":"Email","type":"string"}},{"in":"query","name":"api_token","required":true,"schema":{"title":"Api Token","type":"string"}},{"in":"query","name":"project_key","required":true,"schema":{"title":"Project Key","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Jira Connection Status V1 Integrations Jira Status Get","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Jira Connection Status","tags":["jira-integrations"]}},"/v1/integrations/jira/test":{"post":{"description":"Verify Jira connection by creating and immediately deleting a test issue.","operationId":"test_jira_connection_v1_integrations_jira_test_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionTestRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Test Jira Connection V1 Integrations Jira Test Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Test Jira Connection","tags":["jira-integrations"]}},"/v1/integrations/servicenow/incident":{"post":{"description":"Create a ServiceNow incident from a governance violation.","operationId":"create_servicenow_incident_v1_integrations_servicenow_incident_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateIncidentRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Create Servicenow Incident V1 Integrations Servicenow Incident Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Create Servicenow Incident","tags":["servicenow-integrations"]}},"/v1/integrations/servicenow/status":{"get":{"description":"Check ServiceNow connectivity.","operationId":"servicenow_status_v1_integrations_servicenow_status_get","parameters":[{"in":"query","name":"instance_url","required":true,"schema":{"title":"Instance Url","type":"string"}},{"in":"query","name":"username","required":true,"schema":{"title":"Username","type":"string"}},{"in":"query","name":"password","required":true,"schema":{"title":"Password","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Servicenow Status V1 Integrations Servicenow Status Get","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Servicenow Status","tags":["servicenow-integrations"]}},"/v1/integrations/servicenow/test":{"post":{"description":"Create and immediately resolve a test incident to verify connectivity.","operationId":"test_servicenow_connection_v1_integrations_servicenow_test_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__routes__servicenow_integrations__ConnectionTestRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Test Servicenow Connection V1 Integrations Servicenow Test Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Test Servicenow Connection","tags":["servicenow-integrations"]}},"/v1/organizations":{"post":{"description":"Create an organization. The calling workspace's org_id becomes the first OWNER.","operationId":"create_organization_v1_organizations_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgCreate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Create Organization V1 Organizations Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Create Organization","tags":["Organizations"]}},"/v1/organizations/{org_id}":{"get":{"description":"Get organization details with all linked workspaces.","operationId":"get_organization_v1_organizations__org_id__get","parameters":[{"in":"path","name":"org_id","required":true,"schema":{"title":"Org Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Get Organization V1 Organizations  Org Id  Get","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Get Organization","tags":["Organizations"]}},"/v1/organizations/{org_id}/members":{"get":{"operationId":"list_org_members_v1_organizations__org_id__members_get","parameters":[{"in":"path","name":"org_id","required":true,"schema":{"title":"Org Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response List Org Members V1 Organizations  Org Id  Members Get","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"List Org Members","tags":["Organizations"]},"post":{"operationId":"add_org_member_v1_organizations__org_id__members_post","parameters":[{"in":"path","name":"org_id","required":true,"schema":{"title":"Org Id","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberAdd"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Add Org Member V1 Organizations  Org Id  Members Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Add Org Member","tags":["Organizations"]}},"/v1/organizations/{org_id}/members/{user_id}":{"delete":{"operationId":"remove_org_member_v1_organizations__org_id__members__user_id__delete","parameters":[{"in":"path","name":"org_id","required":true,"schema":{"title":"Org Id","type":"string"}},{"in":"path","name":"user_id","required":true,"schema":{"title":"User Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Remove Org Member V1 Organizations  Org Id  Members  User Id  Delete","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Remove Org Member","tags":["Organizations"]}},"/v1/organizations/{org_id}/usage":{"get":{"description":"Cross-workspace governance usage rollup for the org's billing period.","operationId":"org_usage_rollup_v1_organizations__org_id__usage_get","parameters":[{"in":"path","name":"org_id","required":true,"schema":{"title":"Org Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Org Usage Rollup V1 Organizations  Org Id  Usage Get","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Org Usage Rollup","tags":["Organizations"]}},"/v1/organizations/{org_id}/workspaces":{"post":{"description":"Link a workspace to this organization.","operationId":"add_workspace_to_org_v1_organizations__org_id__workspaces_post","parameters":[{"in":"path","name":"org_id","required":true,"schema":{"title":"Org Id","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceLink"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Add Workspace To Org V1 Organizations  Org Id  Workspaces Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Add Workspace To Org","tags":["Organizations"]}},"/v1/organizations/{org_id}/workspaces/{workspace_id}":{"delete":{"operationId":"remove_workspace_from_org_v1_organizations__org_id__workspaces__workspace_id__delete","parameters":[{"in":"path","name":"org_id","required":true,"schema":{"title":"Org Id","type":"string"}},{"in":"path","name":"workspace_id","required":true,"schema":{"title":"Workspace Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Remove Workspace From Org V1 Organizations  Org Id  Workspaces  Workspace Id  Delete","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Remove Workspace From Org","tags":["Organizations"]}},"/v1/proxy/chat/completions":{"post":{"description":"OpenAI-compatible governance proxy.\n\nSet `base_url=\"https://api.datavibe.cc/v1/proxy\"` in your OpenAI client.\nEvery response gains a `datavibe` field with the governance verdict.\nBlocked responses have their content replaced with a governance notice.","operationId":"proxy_chat_completions_v1_proxy_chat_completions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProxyChatRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Proxy Chat Completions V1 Proxy Chat Completions Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Proxy Chat Completions","tags":["Proxy"]}},"/v1/public/contact":{"post":{"description":"Receives landing page contact form submissions and emails the owner.\nAlways returns 200 — fail-open so the user never sees an error due to\na transient email provider issue.","operationId":"post_contact_v1_public_contact_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Post Contact V1 Public Contact Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Post Contact","tags":["public"]}},"/v1/public/credit-token":{"post":{"operationId":"post_credit_token_v1_public_credit_token_post","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Post Credit Token V1 Public Credit Token Post","type":"object"}}},"description":"Successful Response"}},"summary":"Post Credit Token","tags":["public"]}},"/v1/public/demo-token":{"post":{"operationId":"post_demo_token_v1_public_demo_token_post","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Post Demo Token V1 Public Demo Token Post","type":"object"}}},"description":"Successful Response"}},"summary":"Post Demo Token","tags":["public"]}},"/v1/rule-updates":{"get":{"description":"Return rule update notifications sent to this workspace, with ack status.","operationId":"list_rule_updates_v1_rule_updates_get","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response List Rule Updates V1 Rule Updates Get","type":"object"}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"List rule update notifications for the workspace","tags":["Rule Updates"]}},"/v1/rule-updates/acknowledge":{"post":{"description":"Record that the workspace has acknowledged a rule update.\n\nAcknowledgement is recorded in the tamper-evident audit chain — this\ncreates a legally defensible record that the workspace was notified of\nthe regulatory change and its implications.","operationId":"acknowledge_rule_update_v1_rule_updates_acknowledge_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcknowledgeBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Acknowledge Rule Update V1 Rule Updates Acknowledge Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Acknowledge a rule update notification","tags":["Rule Updates"]}},"/v1/rule-updates/changelog":{"get":{"description":"Return the rule changelog in structured form.\n\nEach entry documents the regulatory change that prompted a rule update,\nwhat changed, which policy packages are affected, and whether workspace\noperators need to take action.\n\nThis endpoint is public — no authentication required.","operationId":"get_rule_changelog_v1_rule_updates_changelog_get","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Get Rule Changelog V1 Rule Updates Changelog Get","type":"object"}}},"description":"Successful Response"}},"summary":"Return the DataVibe policy rule changelog (public)","tags":["Rule Updates"]}},"/v1/scim/admin/config":{"get":{"operationId":"scim_workspace_config_v1_scim_admin_config_get","responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"}},"security":[{"HTTPBearer":[]}],"summary":"Scim Workspace Config","tags":["scim-admin"]}},"/v1/scim/admin/tokens":{"get":{"operationId":"list_scim_tokens_v1_scim_admin_tokens_get","responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"}},"security":[{"HTTPBearer":[]}],"summary":"List Scim Tokens","tags":["scim-admin"]},"post":{"operationId":"create_scim_token_v1_scim_admin_tokens_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScimTokenRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"HTTPBearer":[]}],"summary":"Create Scim Token","tags":["scim-admin"]}},"/v1/scim/admin/tokens/{token_id}":{"delete":{"operationId":"revoke_scim_token_v1_scim_admin_tokens__token_id__delete","parameters":[{"in":"path","name":"token_id","required":true,"schema":{"title":"Token Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"HTTPBearer":[]}],"summary":"Revoke Scim Token","tags":["scim-admin"]}},"/v1/scim/config":{"get":{"operationId":"get_scim_config_v1_scim_config_get","responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"}},"security":[{"HTTPBearer":[]}],"summary":"Get Scim Config","tags":["scim"]}},"/v1/scim/users":{"get":{"operationId":"list_scim_users_v1_scim_users_get","responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"}},"security":[{"HTTPBearer":[]}],"summary":"List Scim Users","tags":["scim"]},"post":{"operationId":"upsert_scim_user_v1_scim_users_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScimUserUpsertRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"HTTPBearer":[]}],"summary":"Upsert Scim User","tags":["scim"]}},"/v1/scim/users/{external_id}":{"delete":{"operationId":"deactivate_scim_user_v1_scim_users__external_id__delete","parameters":[{"in":"path","name":"external_id","required":true,"schema":{"title":"External Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"HTTPBearer":[]}],"summary":"Deactivate Scim User","tags":["scim"]},"patch":{"operationId":"patch_scim_user_v1_scim_users__external_id__patch","parameters":[{"in":"path","name":"external_id","required":true,"schema":{"title":"External Id","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScimUserPatchRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"HTTPBearer":[]}],"summary":"Patch Scim User","tags":["scim"]}},"/v1/security/api-keys":{"get":{"operationId":"list_api_keys_v1_security_api_keys_get","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyListResponse"}}},"description":"Successful Response"}},"security":[{"HTTPBearer":[]}],"summary":"List Api Keys","tags":["admin-security"]},"post":{"operationId":"create_api_key_v1_security_api_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreateRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreateResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"HTTPBearer":[]}],"summary":"Create Api Key","tags":["admin-security"]}},"/v1/security/api-keys/{key_id}":{"delete":{"operationId":"revoke_api_key_v1_security_api_keys__key_id__delete","parameters":[{"in":"path","name":"key_id","required":true,"schema":{"title":"Key Id","type":"string"}}],"responses":{"204":{"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"HTTPBearer":[]}],"summary":"Revoke Api Key","tags":["admin-security"]}},"/v1/sso/authorize":{"get":{"description":"Build the IdP authorization URL and redirect the user.","operationId":"sso_authorize_v1_sso_authorize_get","parameters":[{"in":"query","name":"org_id","required":true,"schema":{"title":"Org Id","type":"string"}},{"in":"query","name":"redirect_uri","required":true,"schema":{"title":"Redirect Uri","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Sso Authorize","tags":["SSO"]}},"/v1/sso/config":{"get":{"description":"Return the SSO config for the workspace (client_secret redacted).","operationId":"get_sso_config_v1_sso_config_get","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Get Sso Config V1 Sso Config Get","type":"object"}}},"description":"Successful Response"}},"summary":"Get Sso Config","tags":["SSO"]},"post":{"description":"Save or update SSO config. Validates OIDC discovery before persisting.","operationId":"save_sso_config_v1_sso_config_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SSOConfigSave"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Save Sso Config V1 Sso Config Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Save Sso Config","tags":["SSO"]}},"/v1/sso/metadata":{"get":{"description":"Fetch and return OIDC discovery metadata for an issuer URL.","operationId":"sso_provider_metadata_v1_sso_metadata_get","parameters":[{"in":"query","name":"issuer","required":true,"schema":{"title":"Issuer","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Sso Provider Metadata V1 Sso Metadata Get","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Sso Provider Metadata","tags":["SSO"]}},"/v1/sso/token-exchange":{"post":{"description":"Exchange an authorization code for an ID token and return the user claims.","operationId":"sso_token_exchange_v1_sso_token_exchange_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenExchangeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Sso Token Exchange V1 Sso Token Exchange Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Sso Token Exchange","tags":["SSO"]}},"/v1/telemetry/email-events":{"post":{"operationId":"ingest_email_events_v1_telemetry_email_events_post","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Ingest Email Events V1 Telemetry Email Events Post","type":"object"}}},"description":"Successful Response"}},"summary":"Ingest Email Events","tags":["telemetry"]}},"/v1/telemetry/landing-page":{"post":{"description":"Ingest anonymous landing-page interaction batches (clicks, scroll depth, bounce signals).\n\nNo third-party analytics — stored in ``landing_page_telemetry`` for internal optimization loops.","operationId":"ingest_landing_page_telemetry_v1_telemetry_landing_page_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LandingTelemetryBatchIn"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Ingest Landing Page Telemetry V1 Telemetry Landing Page Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Ingest Landing Page Telemetry","tags":["telemetry"]}},"/v1/trust/incidents":{"get":{"operationId":"trust_incidents_v1_trust_incidents_get","parameters":[{"in":"query","name":"window","required":false,"schema":{"default":"30d","title":"Window","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrustIncidentListResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"HTTPBearer":[]}],"summary":"Trust Incidents","tags":["trust"]}},"/v1/trust/incidents/{incident_id}":{"get":{"operationId":"trust_incident_detail_v1_trust_incidents__incident_id__get","parameters":[{"in":"path","name":"incident_id","required":true,"schema":{"title":"Incident Id","type":"string"}},{"in":"query","name":"window","required":false,"schema":{"default":"30d","title":"Window","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrustIncidentDetailResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"HTTPBearer":[]}],"summary":"Trust Incident Detail","tags":["trust"]}},"/v1/trust/observation-flags":{"get":{"description":"Step 7: The 'Bad Answers' dashboard summary.","operationId":"trust_observation_flags_v1_trust_observation_flags_get","parameters":[{"in":"query","name":"limit","required":false,"schema":{"default":20,"maximum":100,"minimum":1,"title":"Limit","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Trust Observation Flags V1 Trust Observation Flags Get","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"HTTPBearer":[]}],"summary":"Trust Observation Flags","tags":["trust"]}},"/v1/trust/observation-flags/{trace_id}":{"get":{"description":"Step 7: The 'Crime Scene' detail - reconstructs the full AI journey.","operationId":"trust_observation_trace_detail_v1_trust_observation_flags__trace_id__get","parameters":[{"in":"path","name":"trace_id","required":true,"schema":{"title":"Trace Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Trust Observation Trace Detail V1 Trust Observation Flags  Trace Id  Get","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"HTTPBearer":[]}],"summary":"Trust Observation Trace Detail","tags":["trust"]}},"/v1/trust/overview":{"get":{"operationId":"trust_overview_v1_trust_overview_get","parameters":[{"in":"query","name":"window","required":false,"schema":{"default":"30d","title":"Window","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrustOverviewResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"HTTPBearer":[]}],"summary":"Trust Overview","tags":["trust"]}},"/v1/trust/runs":{"get":{"operationId":"trust_runs_v1_trust_runs_get","parameters":[{"in":"query","name":"limit","required":false,"schema":{"default":50,"maximum":200,"minimum":1,"title":"Limit","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Trust Runs V1 Trust Runs Get","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"HTTPBearer":[]}],"summary":"Trust Runs","tags":["trust"]}},"/v1/trust/runs/{run_id}":{"get":{"operationId":"trust_run_detail_v1_trust_runs__run_id__get","parameters":[{"in":"path","name":"run_id","required":true,"schema":{"title":"Run Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Trust Run Detail V1 Trust Runs  Run Id  Get","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"HTTPBearer":[]}],"summary":"Trust Run Detail","tags":["trust"]}},"/v1/trust/soc2-evidence-pack":{"get":{"description":"Build and return the SOC 2 Type I evidence package as a ZIP archive.\n\nIncludes controls list, governance audit CSV, audit chain NDJSON, and\nmanagement assertion letter. Intended for automated delivery after\n/api/trust/soc2-evidence intake on the landing site.","operationId":"download_soc2_evidence_pack_v1_trust_soc2_evidence_pack_get","responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"}},"security":[{"APIKeyHeader":[]}],"summary":"Download SOC 2 Type I evidence ZIP (M2M only)","tags":["trust"]}},"/v1/webhooks/delivery-failures":{"get":{"description":"Return DLQ rows (failed webhook deliveries) for the workspace.\n\nDashboard proxies here after OWNER/ADMIN auth check.\nReturns both exhausted rows (all retries spent) and rows pending retry.","operationId":"list_delivery_failures_v1_webhooks_delivery_failures_get","parameters":[{"in":"query","name":"org_id","required":true,"schema":{"title":"Org Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response List Delivery Failures V1 Webhooks Delivery Failures Get","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"List webhook DLQ entries for a workspace","tags":["webhooks"]}},"/v1/webhooks/delivery-failures/{fail_id}/retry":{"post":{"description":"Clear exhausted_at and set next_retry_at=NOW() so the reaper retries within 60s.","operationId":"reset_delivery_failure_for_retry_v1_webhooks_delivery_failures__fail_id__retry_post","parameters":[{"in":"path","name":"fail_id","required":true,"schema":{"title":"Fail Id","type":"string"}},{"in":"query","name":"org_id","required":true,"schema":{"title":"Org Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Reset Delivery Failure For Retry V1 Webhooks Delivery Failures  Fail Id  Retry Post","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Reset a DLQ row for immediate retry","tags":["webhooks"]}},"/v1/webhooks/jarvis-won":{"post":{"description":"Fired by JARVIS when an operator marks a pitch as Closed / Won.\n\n1. Upserts the client into the `clients` table (idempotent — safe to retry).\n2. Writes a seed briefing to the Automation Hub log so the dashboard\n   shows the new client immediately without waiting for a manual brief run.\n\nIdempotent: re-firing for the same domain updates the record rather\nthan creating a duplicate, making retries safe.","operationId":"jarvis_deal_won_v1_webhooks_jarvis_won_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DealWonPayload"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DealWonResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"JARVIS deal-won webhook — provisions new client in DataVibe","tags":["webhooks"]}},"/v2/gate/outbound":{"post":{"description":"Multi-channel gate supporting email, WhatsApp, Telegram, SMS, LinkedIn, and Slack. For live-chat channels (non-email), QUEUED submissions return a hold_token and ack_message so the bot can send an instant acknowledgment while the real message awaits human approval. DataVibe calls the workspace callback_url when a reviewer approves or rejects.","operationId":"submit_outbound_v2_v2_gate_outbound_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutboundGateV2Request"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutboundGateV2Response"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Submit an AI-generated message for governance review (all channels)","tags":["Outbound Gate v2"]}},"/v2/gate/outbound/{action_id}":{"get":{"operationId":"get_submission_status_v2_v2_gate_outbound__action_id__get","parameters":[{"in":"path","name":"action_id","required":true,"schema":{"title":"Action Id","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"title":"Response Get Submission Status V2 V2 Gate Outbound  Action Id  Get","type":"object"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Poll the status of a v2 gate submission","tags":["Outbound Gate v2"]}},"/v2/generate/governed":{"post":{"description":"Two-stage governed generation:\n\nStage 1 — Generate (1-5s):\n  Build governance system prompt from active workspace policy.\n  Call LLM with governance rules baked in.\n  LLM produces compliant content ~95% of the time.\n\nStage 2 — Gate (< 50ms):\n  Run the generated output through the v2 policy scanner.\n  Apply auto-remediation if enabled and all violations are WARN-only.\n  Return verdict + gate action_id for the audit chain.\n\nThe gate is the backstop — governed generation dramatically reduces\nthe false positive rate but does not replace the gate.","operationId":"governed_generate_v2_generate_governed_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GovernedGenerateRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GovernedGenerateResponse"}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"security":[{"APIKeyHeader":[]}],"summary":"Generate AI content with governance rules pre-injected into the system prompt","tags":["Governed Generation"]}}},"servers":[{"description":"Production API","url":"https://api.datavibe.cc"},{"description":"Local Engine","url":"http://localhost:8000"}],"tags":[{"description":"Submit AI-generated payloads for policy scan, approval routing, and dispatch.","name":"Outbound Gate"},{"description":"Workspace policy config, immutable snapshots, and audit trail.","name":"Governance"}],"webhooks":{"extraction.completed":{"post":{"description":"When a heavy extraction task completes successfully, this payload will be dispatched \nto your registered Webhook Endpoint. Ensure you verify the `X-DataVibe-Signature` \nheader using your Secret Key.","operationId":"extraction_completed_webhookextraction_completed_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookPayloadSchema"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{}}},"description":"Successful Response"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"description":"Validation Error"}},"summary":"Extraction Completed Webhook"}}}}