{"openapi":"3.1.0","info":{"title":"Arelis Governance API","version":"1.0.0","description":"Arelis Governance API provides compliance infrastructure for AI systems. It offers audit event logging, compliance proof generation, risk routing, deterministic replay verification, causal graph management, and governance policy evaluation. All endpoints enforce tenant isolation and usage-based metering.","contact":{"name":"Arelis Support","url":"https://api.arelis.digital/support","email":"support@arelis.dev"},"license":{"name":"Proprietary","url":"https://api.arelis.digital/terms"},"x-stability-labels":{"stable":"Production-ready. Breaking changes follow semantic versioning.","beta":"Feature-complete but may change. Not recommended for production without monitoring.","deprecated":"Scheduled for removal. See deprecation notice for migration path."}},"servers":[{"url":"https://api.arelis.digital/api/v1","description":"Production"},{"url":"https://sandbox.arelis.digital/api/v1","description":"Sandbox"}],"security":[{"api_key":[]}],"tags":[{"name":"Audit Events","description":"Create, list, and retrieve audit events for AI agent runs."},{"name":"Compliance Proofs","description":"Generate and verify compliance proof artifacts with layered hash commitments."},{"name":"Risk Routing","description":"Evaluate runtime risk scores and manage risk router configuration."},{"name":"Replay","description":"Submit deterministic replay verification jobs and retrieve results."},{"name":"Causal Graphs","description":"Retrieve, commit, and query lineage of causal graphs for agent runs."},{"name":"Governance","description":"Evaluate governance policies, manage policy lifecycle (draft/review/publish/rollback), simulate decisions, and retrieve configuration snapshots."},{"name":"Jobs","description":"Poll the status of asynchronous proof, replay, and export jobs. Supports retry for failed jobs."},{"name":"Auth","description":"User signup, session management via Firebase Authentication."},{"name":"Billing","description":"Billing summary, retention controls, and customer portal links."},{"name":"Metering","description":"Configure milestone thresholds and inspect webhook delivery history."},{"name":"Operations","description":"Operational views for jobs, run integrity, and platform management summaries."},{"name":"Exports","description":"Asynchronous export jobs for audit and reporting workflows."},{"name":"Reporting","description":"Premium reporting workflows with branded artifacts, scheduling, deliveries, and secure sharing."},{"name":"Projects","description":"Manage projects within an organization."},{"name":"Hybrid Telemetry","description":"Hybrid data-plane usage reporting and sampled attestation verification."},{"name":"Health","description":"Service health and readiness checks."}],"paths":{"/events":{"post":{"operationId":"createEvent","x-stability":"stable","summary":"Create an audit event","description":"Records a single audit event for a given run. This is a metered operation (type: audit_event) and counts against the project quota.","tags":["Audit Events"],"security":[{"api_key":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditEventInput"},"example":{"runId":"run_abc123","eventType":"tool.invoked","actor":{"name":"agent-1","role":"assistant"},"resource":{"name":"web-search","type":"tool"},"action":"invoke","timestamp":"2025-06-15T10:30:00Z","metadata":{"query":"latest compliance regulations"}}}}},"responses":{"201":{"description":"Event created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventCreatedResponse"},"example":{"eventId":"evt_xyz789","runId":"run_abc123"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/QuotaExceeded"},"500":{"$ref":"#/components/responses/InternalError"}}},"get":{"operationId":"listEvents","x-stability":"stable","summary":"List audit events","description":"Returns a paginated list of audit events for a specific run. The runId query parameter is required. Supports cursor-based pagination.","tags":["Audit Events"],"security":[{"api_key":[]}],"parameters":[{"name":"runId","in":"query","required":true,"schema":{"type":"string"},"description":"Filter events by run ID.","example":"run_abc123"},{"name":"eventType","in":"query","required":false,"schema":{"type":"string"},"description":"Filter by event type.","example":"tool.invoked"},{"name":"startTime","in":"query","required":false,"schema":{"type":"string","format":"date-time"},"description":"Filter events on or after this timestamp."},{"name":"endTime","in":"query","required":false,"schema":{"type":"string","format":"date-time"},"description":"Filter events on or before this timestamp."},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/Limit"}],"responses":{"200":{"description":"Paginated list of audit events.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventListResponse"},"example":{"events":[{"eventId":"evt_xyz789","runId":"run_abc123","eventType":"tool.invoked","actor":{"name":"agent-1","role":"assistant"},"resource":{"name":"web-search","type":"tool"},"action":"invoke","timestamp":"2025-06-15T10:30:00Z","serverTimestamp":"2025-06-15T10:30:01Z","metadata":{"query":"latest compliance regulations"}}],"nextCursor":null}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/events/batch":{"post":{"operationId":"createEventBatch","x-stability":"stable","summary":"Create audit events in batch","description":"Records up to 500 audit events in a single request. Each event is validated individually; valid events are accepted while invalid ones are rejected. This is a metered operation (type: audit_event).","tags":["Audit Events"],"security":[{"api_key":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchEventInput"},"example":{"events":[{"runId":"run_abc123","eventType":"tool.invoked","actor":"agent-1","resource":"web-search","action":"invoke","timestamp":"2025-06-15T10:30:00Z"},{"runId":"run_abc123","eventType":"tool.completed","actor":"agent-1","resource":"web-search","action":"complete","timestamp":"2025-06-15T10:30:05Z"}]}}}},"responses":{"201":{"description":"Batch processed. Each event reports its acceptance status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchEventResponse"},"example":{"results":[{"eventId":"evt_001","status":"accepted"},{"eventId":null,"status":"rejected","reason":"Validation failed"}]}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/QuotaExceeded"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/events/{eventId}":{"get":{"operationId":"getEvent","x-stability":"stable","summary":"Get an audit event by ID","description":"Retrieves a single audit event by its unique identifier.","tags":["Audit Events"],"security":[{"api_key":[]}],"parameters":[{"name":"eventId","in":"path","required":true,"schema":{"type":"string"},"description":"The unique event identifier.","example":"evt_xyz789"}],"responses":{"200":{"description":"The audit event.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditEvent"},"example":{"eventId":"evt_xyz789","runId":"run_abc123","eventType":"tool.invoked","actor":{"name":"agent-1","role":"assistant"},"resource":{"name":"web-search","type":"tool"},"action":"invoke","timestamp":"2025-06-15T10:30:00Z","serverTimestamp":"2025-06-15T10:30:01Z","metadata":{}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/proofs":{"post":{"operationId":"createProof","x-stability":"stable","summary":"Generate a compliance proof","description":"Generates a compliance proof artifact for a given run. When async=true, returns HTTP 202 with a jobId for polling. This is a metered operation (type: compliance_proof).","tags":["Compliance Proofs"],"security":[{"api_key":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceProofRequest"},"example":{"runId":"run_abc123","schemaVersion":"v2","composed":{"layers":["event_integrity","causal_consistency","policy_compliance"]},"async":false}}}},"responses":{"201":{"description":"Proof generated synchronously.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceProof"},"example":{"proofId":"prf_abc123","runId":"run_abc123","schemaVersion":"v2","commitment":{"runId":"run_abc123","schemaVersion":"v2","timestamp":"2025-06-15T12:00:00Z"},"proofHash":"a1b2c3d4e5f6...","layers":[{"name":"event_integrity","hash":"abc123...","verified":true},{"name":"causal_consistency","hash":"def456...","verified":true}],"createdAt":"2025-06-15T12:00:00Z"}}}},"202":{"description":"Proof generation accepted asynchronously. Poll the job endpoint for results.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncJobAccepted"},"example":{"jobId":"job_abc123"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/QuotaExceeded"},"500":{"$ref":"#/components/responses/InternalError"}}},"get":{"operationId":"listProofs","x-stability":"stable","summary":"List compliance proofs","description":"Returns a paginated list of compliance proof artifacts. Optionally filter by runId.","tags":["Compliance Proofs"],"security":[{"api_key":[]}],"parameters":[{"name":"runId","in":"query","required":false,"schema":{"type":"string"},"description":"Filter proofs by run ID."},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/Limit"}],"responses":{"200":{"description":"Paginated list of compliance proofs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProofListResponse"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/proofs/{proofId}":{"get":{"operationId":"getProof","x-stability":"stable","summary":"Get a compliance proof by ID","description":"Retrieves a single compliance proof artifact by its identifier.","tags":["Compliance Proofs"],"security":[{"api_key":[]}],"parameters":[{"name":"proofId","in":"path","required":true,"schema":{"type":"string"},"description":"The unique proof identifier."}],"responses":{"200":{"description":"The compliance proof.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceProof"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/proofs/verify":{"post":{"operationId":"verifyProof","x-stability":"stable","summary":"Verify a compliance proof","description":"Verifies the integrity of a compliance proof by re-computing layer hashes and checking them against the provided values.","tags":["Compliance Proofs"],"security":[{"api_key":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceVerificationInput"},"examples":{"byProofId":{"summary":"Verify by proofId","value":{"proofId":"prf_abc123"}},"fullArtifact":{"summary":"Verify with full artifact payload","value":{"proofId":"prf_abc123","runId":"run_abc123","schemaVersion":"v2","commitment":{"runId":"run_abc123","schemaVersion":"v2","timestamp":"2025-06-15T12:00:00Z"},"proofHash":"a1b2c3d4e5f6...","layers":[{"name":"event_integrity","hash":"abc123...","verified":true}]}}}}}},"responses":{"200":{"description":"Verification result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerificationResponse"},"example":{"proofId":"prf_abc123","verified":true,"layers":[{"name":"event_integrity","passed":true}]}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/risk/evaluate":{"post":{"operationId":"evaluateRisk","x-stability":"stable","summary":"Evaluate runtime risk","description":"Computes a runtime risk score for a given run based on policy decisions, quota state, and evaluation signals. Returns an action (allow, flag, block, escalate) based on the project's risk router configuration. This is a metered operation (type: risk_decision).","tags":["Risk Routing"],"security":[{"api_key":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuntimeRiskInput"},"example":{"runId":"run_abc123","policyDecisions":[{"policyId":"content-filter","decision":"allow","score":0.2}],"quotaState":{"used":450,"limit":1000,"remaining":550},"evaluationSignals":[{"signal":"latency","value":120}],"explicitSignals":{"override":false}}}}},"responses":{"200":{"description":"Risk evaluation result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RiskDecision"},"example":{"id":"rsk_abc123","runId":"run_abc123","action":"allow","score":0.15,"factors":[{"name":"policy_compliance","weight":0.8,"value":0.1}],"deterministicInputsHash":"sha256:abc123..."}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/QuotaExceeded"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/risk/config":{"get":{"operationId":"getRiskConfig","x-stability":"stable","summary":"Get risk router configuration","description":"Returns the current risk router configuration for the authenticated project.","tags":["Risk Routing"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Current risk router configuration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RiskRouterConfig"},"example":{"mode":"adaptive","thresholds":{"allow":0.3,"flag":0.6,"block":0.8,"escalate":0.9},"defaultAction":"allow"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}},"put":{"operationId":"updateRiskConfig","x-stability":"stable","summary":"Update risk router configuration","description":"Replaces the risk router configuration for the authenticated project.","tags":["Risk Routing"],"security":[{"api_key":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RiskRouterConfig"},"example":{"mode":"strict","thresholds":{"allow":0.2,"flag":0.5,"block":0.7,"escalate":0.85},"defaultAction":"flag"}}}},"responses":{"200":{"description":"Updated risk router configuration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RiskRouterConfig"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/risk/decisions":{"get":{"operationId":"listRiskDecisions","x-stability":"stable","summary":"List risk decisions","description":"Returns a paginated list of risk decisions. Optionally filter by runId.","tags":["Risk Routing"],"security":[{"api_key":[]}],"parameters":[{"name":"runId","in":"query","required":false,"schema":{"type":"string"},"description":"Filter decisions by run ID."},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/Limit"}],"responses":{"200":{"description":"Paginated list of risk decisions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RiskDecisionListResponse"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/replay":{"get":{"operationId":"listReplayJobs","x-stability":"stable","summary":"List replay jobs","description":"Returns a paginated list of replay jobs for the authenticated project.","tags":["Replay"],"security":[{"api_key":[]}],"parameters":[{"name":"runId","in":"query","required":false,"schema":{"type":"string"},"description":"Filter replay jobs by run ID."},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["pending","processing","completed","failed"]},"description":"Filter replay jobs by job status."},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/Limit"}],"responses":{"200":{"description":"Paginated replay job list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplayListResponse"},"example":{"data":[{"jobId":"job_replay_001","replayId":"rpl_abc123","runId":"run_abc123","status":"completed","stepsCount":2,"warningsCount":1,"driftCount":1,"createdAt":"2025-06-15T12:00:00Z","completedAt":"2025-06-15T12:00:05Z","error":null}],"nextCursor":null}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}},"post":{"operationId":"createReplay","x-stability":"stable","summary":"Submit a replay verification job","description":"Submits a deterministic replay verification job for a given run. Returns HTTP 202 with a jobId. This is a metered operation (type: replay_verification).","tags":["Replay"],"security":[{"api_key":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplayRequest"},"example":{"runId":"run_abc123","replaySnapshot":{"policyHash":"sha256:policy123...","modelRoute":"gpt-4-turbo","toolRegistryHash":"sha256:tools456...","configStateHash":"sha256:config789..."}}}}},"responses":{"202":{"description":"Replay job accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncJobAccepted"},"example":{"jobId":"job_replay_001"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/QuotaExceeded"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/replay/causal-graph":{"post":{"operationId":"createCausalGraphReplay","x-stability":"stable","summary":"Submit a causal graph replay verification job","description":"Submits a replay verification job that includes a full causal graph (nodes and edges) for structural replay. Returns HTTP 202 with a jobId. This is a metered operation (type: replay_verification).","tags":["Replay"],"security":[{"api_key":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CausalGraphReplayRequest"},"example":{"runId":"run_abc123","nodes":[{"id":"node_1","type":"agent","data":{"model":"gpt-4-turbo"}},{"id":"node_2","type":"tool","data":{"name":"web-search"}}],"edges":[{"source":"node_1","target":"node_2","type":"contains"}]}}}},"responses":{"202":{"description":"Causal graph replay job accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncJobAccepted"},"example":{"jobId":"job_cg_replay_001"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"429":{"$ref":"#/components/responses/QuotaExceeded"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/replay/{replayId}":{"get":{"operationId":"getReplayResult","x-stability":"stable","summary":"Get a replay result by ID","description":"Retrieves the result of a completed replay verification job.","tags":["Replay"],"security":[{"api_key":[]}],"parameters":[{"name":"replayId","in":"path","required":true,"schema":{"type":"string"},"description":"The unique replay result identifier."}],"responses":{"200":{"description":"The replay result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplayResult"},"example":{"replayId":"rpl_abc123","runId":"run_abc123","steps":[{"index":0,"eventId":"evt_abc001","status":"match","eventType":"tool.invoked","action":"invoke","timestamp":"2025-06-15T12:00:00Z"},{"index":1,"eventId":"evt_abc002","status":"match","eventType":"tool.completed","action":"complete","timestamp":"2025-06-15T12:00:02Z"}],"warnings":["Snapshot drift detected for policyHash."],"driftDiagnostics":[{"field":"policyHash","expected":"sha256:expected-policy","actual":"sha256:actual-policy","severity":"high"}],"createdAt":"2025-06-15T12:00:00Z"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/graphs/{runId}":{"get":{"operationId":"getCausalGraph","x-stability":"stable","summary":"Get a causal graph by run ID","description":"Retrieves the causal graph for a specific run, including all nodes, edges, digest metadata, and root hash.","tags":["Causal Graphs"],"security":[{"api_key":[]}],"parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"},"description":"The run identifier."}],"responses":{"200":{"description":"The causal graph.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CausalGraph"},"example":{"id":"cg_abc123","runId":"run_abc123","nodes":[{"id":"node_1","type":"agent","data":{"model":"gpt-4-turbo"}}],"edges":[{"source":"node_1","target":"node_2","type":"contains"}],"digestMetadata":{"policyHash":"sha256:..."},"rootHash":"sha256:root...","createdAt":"2025-06-15T12:00:00Z"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/graphs/{runId}/commit":{"post":{"operationId":"commitCausalGraph","x-stability":"stable","summary":"Commit a causal graph","description":"Computes and stores a root hash for the causal graph, sealing its contents.","tags":["Causal Graphs"],"security":[{"api_key":[]}],"parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"},"description":"The run identifier."}],"responses":{"200":{"description":"Graph committed successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphCommitResponse"},"example":{"runId":"run_abc123","rootHash":"sha256:abc123...","committedAt":"2025-06-15T12:00:00Z"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/graphs/{runId}/lineage":{"get":{"operationId":"getCausalGraphLineage","x-stability":"stable","summary":"Get causal graph lineage","description":"Returns the lineage (ancestors and descendants) for a specific node in the causal graph. If no nodeId is provided, returns the full graph.","tags":["Causal Graphs"],"security":[{"api_key":[]}],"parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"},"description":"The run identifier."},{"name":"nodeId","in":"query","required":false,"schema":{"type":"string"},"description":"The node ID to compute lineage for. If omitted, returns the full graph."}],"responses":{"200":{"description":"Lineage subgraph.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LineageResponse"},"example":{"runId":"run_abc123","nodeId":"node_1","nodes":[{"id":"node_1","type":"agent","data":{"model":"gpt-4-turbo"}}],"edges":[]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/governance/policy/evaluate":{"post":{"operationId":"evaluatePolicy","x-stability":"stable","summary":"Evaluate governance policies","description":"Evaluates a set of governance policies against a checkpoint for a given run.","tags":["Governance"],"security":[{"api_key":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyEvaluationInput"},"example":{"runId":"run_abc123","policies":["content-filter","data-retention"],"checkpoint":{"step":5,"context":{"model":"gpt-4-turbo","temperature":0.7}}}}}},"responses":{"200":{"description":"Policy evaluation results.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyEvaluationResponse"},"example":{"runId":"run_abc123","decisions":[{"policyId":"content-filter","decision":"allow","reasoning":"No violations detected"}],"evaluatedAt":"2025-06-15T12:00:00Z"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/governance/snapshots/{runId}":{"get":{"operationId":"getGovernanceSnapshot","x-stability":"beta","summary":"Get governance snapshot for a run","description":"Retrieves the governance configuration snapshot for a specific run, including hashes of the policy, model route, tool registry, and config state.","tags":["Governance"],"security":[{"api_key":[]}],"parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"},"description":"The run identifier."}],"responses":{"200":{"description":"Governance snapshot.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GovernanceSnapshot"},"example":{"runId":"run_abc123","policyHash":"sha256:policy...","modelRoute":"gpt-4-turbo","toolRegistryHash":"sha256:tools...","configStateHash":"sha256:config..."}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/governance/policies/{policyId}/transition":{"post":{"operationId":"transitionPolicyStatus","x-stability":"beta","summary":"Transition policy lifecycle status","description":"Transitions a policy to a new lifecycle status. Valid transitions: draft→review, draft→active, review→active, review→draft, active→disabled, disabled→active, *→archived, archived→draft.","tags":["Governance"],"security":[{"api_key":[]}],"parameters":[{"name":"policyId","in":"path","required":true,"schema":{"type":"string"},"description":"The policy identifier."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["targetStatus"],"properties":{"targetStatus":{"type":"string","enum":["draft","review","active","disabled","archived"]},"reason":{"type":"string","maxLength":1000}}}}}},"responses":{"200":{"description":"Policy status transitioned.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string"},"previousStatus":{"type":"string"}}}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/governance/policies/{policyId}/rollback":{"post":{"operationId":"rollbackPolicy","x-stability":"beta","summary":"Rollback policy to a previous version","description":"Reverts the active policy version to a specified previous version and sets policy status to active.","tags":["Governance"],"security":[{"api_key":[]}],"parameters":[{"name":"policyId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["targetVersion"],"properties":{"targetVersion":{"type":"integer","minimum":1},"reason":{"type":"string","maxLength":1000}}}}}},"responses":{"200":{"description":"Policy rolled back.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"activeVersion":{"type":"integer"},"previousVersion":{"type":"integer","nullable":true},"status":{"type":"string"}}}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/governance/policies/{policyId}/simulate":{"post":{"operationId":"simulatePolicy","x-stability":"beta","summary":"Simulate policy evaluation (dry-run)","description":"Evaluates a policy against a sample checkpoint without persisting results. Useful for testing policy changes before publishing.","tags":["Governance"],"security":[{"api_key":[]}],"parameters":[{"name":"policyId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["checkpoint"],"properties":{"checkpoint":{"type":"object","additionalProperties":true},"policyIds":{"type":"array","items":{"type":"string"}},"explain":{"type":"boolean","default":true}}}}}},"responses":{"200":{"description":"Simulation results.","content":{"application/json":{"schema":{"type":"object","properties":{"policyId":{"type":"string"},"policyName":{"type":"string"},"simulatedVersion":{"type":"integer"},"decisions":{"type":"array","items":{"type":"object"}},"summary":{"type":"object"},"simulatedAt":{"type":"string","format":"date-time"}}}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/governance/policies/{policyId}/impact":{"post":{"operationId":"previewPolicyImpact","x-stability":"beta","summary":"Preview impact of proposed policy changes","description":"Compares current vs proposed policy behavior across sample checkpoints to estimate the impact of publishing a new version.","tags":["Governance"],"security":[{"api_key":[]}],"parameters":[{"name":"policyId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["proposedVersion","sampleCheckpoints"],"properties":{"proposedVersion":{"type":"object","required":["condition","action"],"properties":{"condition":{"type":"object"},"action":{"type":"string","enum":["allow","deny","warn","escalate"]},"severity":{"type":"string","enum":["low","medium","high","critical"]}}},"sampleCheckpoints":{"type":"array","items":{"type":"object"},"minItems":1,"maxItems":50}}}}}},"responses":{"200":{"description":"Impact preview results.","content":{"application/json":{"schema":{"type":"object","properties":{"policyId":{"type":"string"},"policyName":{"type":"string"},"sampleCount":{"type":"integer"},"changedCount":{"type":"integer"},"changeRate":{"type":"number"},"comparisons":{"type":"array","items":{"type":"object"}},"analyzedAt":{"type":"string","format":"date-time"}}}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/governance/policies/simulate":{"post":{"operationId":"simulateAllPolicies","x-stability":"beta","summary":"Simulate all project policies (dry-run)","description":"Evaluates all active project policies against a sample checkpoint without persisting. Useful for testing overall governance behavior.","tags":["Governance"],"security":[{"api_key":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["checkpoint"],"properties":{"checkpoint":{"type":"object","additionalProperties":true},"policyIds":{"type":"array","items":{"type":"string"}},"explain":{"type":"boolean","default":true}}}}}},"responses":{"200":{"description":"Simulation results for all policies.","content":{"application/json":{"schema":{"type":"object","properties":{"policyCount":{"type":"integer"},"decisions":{"type":"array","items":{"type":"object"}},"summary":{"type":"object"},"simulatedAt":{"type":"string","format":"date-time"}}}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/jobs/{jobId}":{"get":{"operationId":"getJob","x-stability":"stable","summary":"Get job status","description":"Polls the status of an asynchronous job (proof generation or replay verification). Returns the job type, status, and result when complete.","tags":["Jobs"],"security":[{"api_key":[]}],"parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"},"description":"The unique job identifier returned by an async operation."}],"responses":{"200":{"description":"Job status and result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobStatus"},"example":{"jobId":"job_abc123","type":"replay","status":"completed","result":{"replayId":"rpl_abc123","runId":"run_abc123","steps":[{"index":0,"eventId":"evt_abc001","status":"match"}],"warnings":[],"driftDiagnostics":[],"createdAt":"2025-06-15T12:00:00Z"},"createdAt":"2025-06-15T12:00:00Z","completedAt":"2025-06-15T12:00:05Z"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/auth/signup":{"post":{"operationId":"signup","x-stability":"stable","summary":"Sign up a new user and organization","description":"Creates a new user, organization, sandbox/production projects, and API keys. Requires a valid Firebase ID token in the Authorization header.","tags":["Auth"],"security":[{"bearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupInput"},"example":{"name":"Jane Doe","organizationName":"Acme Corp"}}}},"responses":{"201":{"description":"Account created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupResponse"},"example":{"orgId":"org_abc123","projectId":"prj_sandbox_001","apiKeys":{"sandbox":"are_sandbox_abc123...","production":"are_production_xyz789..."}}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"409":{"description":"User already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"500":{"$ref":"#/components/responses/InternalError"}}}},"/auth/session":{"post":{"operationId":"createSession","x-stability":"stable","summary":"Create a session","description":"Verifies a Firebase ID token and sets a session cookie for dashboard access.","tags":["Auth"],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionInput"},"example":{"idToken":"eyJhbGciOiJSUzI1NiIs..."}}}},"responses":{"200":{"description":"Session created. Cookie set.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}}},"example":{"success":true}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}},"delete":{"operationId":"deleteSession","x-stability":"stable","summary":"Delete a session","description":"Clears the session cookie, logging the user out of the dashboard.","tags":["Auth"],"security":[],"responses":{"200":{"description":"Session cleared.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}}},"example":{"success":true}}}},"500":{"$ref":"#/components/responses/InternalError"}}}},"/billing/portal":{"post":{"operationId":"createPortalSession","x-stability":"stable","summary":"Create a Stripe customer portal session","description":"Creates a Stripe Customer Portal session for managing subscriptions. The organization must have an existing Stripe customer ID.","tags":["Billing"],"security":[{"api_key":[]},{"bearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortalInput"},"example":{"returnUrl":"https://app.arelis.dev/billing"}}}},"responses":{"200":{"description":"Portal session created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UrlResponse"},"example":{"url":"https://billing.stripe.com/p/session/test_abc123"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/projects":{"post":{"operationId":"createProject","x-stability":"stable","summary":"Create a project","description":"Creates a new project in the authenticated organization. Environment must be 'sandbox' or 'production'.","tags":["Projects"],"security":[{"api_key":[]},{"bearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectInput"},"example":{"name":"Staging Environment","environment":"sandbox"}}}},"responses":{"201":{"description":"Project created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"},"example":{"id":"prj_abc123","name":"Staging Environment","environment":"sandbox","createdAt":"2025-06-15T12:00:00Z"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}},"get":{"operationId":"listProjects","x-stability":"stable","summary":"List projects","description":"Returns all active projects in the authenticated organization.","tags":["Projects"],"security":[{"api_key":[]},{"bearer":[]}],"responses":{"200":{"description":"List of projects.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectListResponse"},"example":{"data":[{"id":"prj_sandbox_001","name":"Sandbox","environment":"sandbox","createdAt":"2025-06-15T12:00:00Z","updatedAt":"2025-06-15T12:00:00Z"}]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/projects/{projectId}":{"get":{"operationId":"getProject","x-stability":"stable","summary":"Get a project by ID","description":"Retrieves a single project by its identifier.","tags":["Projects"],"security":[{"api_key":[]},{"bearer":[]}],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"},"description":"The project identifier."}],"responses":{"200":{"description":"The project.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectDetail"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}},"put":{"operationId":"updateProject","x-stability":"stable","summary":"Update a project","description":"Updates the name or settings of a project.","tags":["Projects"],"security":[{"api_key":[]},{"bearer":[]}],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"},"description":"The project identifier."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectUpdateInput"},"example":{"name":"Production v2"}}}},"responses":{"200":{"description":"Project updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectDetail"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}},"delete":{"operationId":"deleteProject","x-stability":"stable","summary":"Delete a project","description":"Soft-deletes a project. The project data is retained but becomes inaccessible.","tags":["Projects"],"security":[{"api_key":[]},{"bearer":[]}],"parameters":[{"name":"projectId","in":"path","required":true,"schema":{"type":"string"},"description":"The project identifier."}],"responses":{"200":{"description":"Project deleted.","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean"}}},"example":{"deleted":true}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/telemetry/usage":{"post":{"operationId":"ingestTelemetryUsage","x-stability":"stable","summary":"Report hybrid data-plane usage","description":"Ingests metered operation counts from a customer-hosted data plane using HMAC-signed payloads. The control plane persists the report, tracks billing usage, and may issue an attestation challenge.","tags":["Hybrid Telemetry"],"security":[{"hybrid_telemetry_key":[]}],"parameters":[{"name":"x-telemetry-signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC SHA-256 signature of `<timestamp>.<canonical_payload>`."},{"name":"x-telemetry-timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp in seconds used for replay protection."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelemetryUsageReportInput"}}}},"responses":{"202":{"description":"Telemetry report accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelemetryUsageReportResponse"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/telemetry/attestations/{challengeId}":{"post":{"operationId":"submitTelemetryAttestation","x-stability":"stable","summary":"Submit usage attestation proof","description":"Submits a challenge response for sampled telemetry reports. Successful verification marks the report attestation as verified.","tags":["Hybrid Telemetry"],"security":[{"hybrid_telemetry_key":[]}],"parameters":[{"name":"challengeId","in":"path","required":true,"schema":{"type":"string"},"description":"Attestation challenge identifier returned by telemetry ingestion."},{"name":"x-telemetry-signature","in":"header","required":true,"schema":{"type":"string"},"description":"HMAC SHA-256 signature of `<timestamp>.<canonical_payload>`."},{"name":"x-telemetry-timestamp","in":"header","required":true,"schema":{"type":"string"},"description":"Unix timestamp in seconds used for replay protection."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelemetryAttestationProofInput"}}}},"responses":{"200":{"description":"Attestation verified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TelemetryAttestationResponse"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/events/count":{"get":{"operationId":"countEvents","x-stability":"stable","summary":"Count events","description":"Returns a count of events for the authenticated project and optional filters.","tags":["Audit Events"],"security":[{"api_key":[]}],"parameters":[{"name":"runId","in":"query","required":false,"schema":{"type":"string"}},{"name":"eventType","in":"query","required":false,"schema":{"type":"string"}},{"name":"startTime","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"endTime","in":"query","required":false,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Event count returned.","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","minimum":0}},"required":["count"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/governance/policy/evaluations":{"get":{"operationId":"listPolicyEvaluations","x-stability":"stable","summary":"List policy evaluations","description":"Returns policy evaluation history with cursor pagination and runId filtering.","tags":["Governance"],"security":[{"api_key":[]}],"parameters":[{"name":"runId","in":"query","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/Limit"}],"responses":{"200":{"description":"Policy evaluations returned.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"runId":{"type":["string","null"]},"policySource":{"type":"string"},"policyCount":{"type":"integer"},"decisions":{},"checkpoint":{},"policySetHash":{"type":["string","null"]},"evaluatedAt":{"type":"string","format":"date-time"}}}},"nextCursor":{"type":["string","null"]}},"required":["data","nextCursor"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/jobs":{"get":{"operationId":"listJobs","x-stability":"stable","summary":"List unified async jobs","description":"Returns a unified queue for proof and replay jobs with status filtering and cursor pagination.","tags":["Jobs"],"security":[{"api_key":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["proof","replay"]}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["pending","processing","completed","failed"]}},{"name":"runId","in":"query","required":false,"schema":{"type":"string"}},{"name":"startTime","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"endTime","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/Limit"}],"responses":{"200":{"description":"Unified jobs list returned.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"jobId":{"type":"string"},"type":{"type":"string","enum":["proof","replay"]},"runId":{"type":"string"},"status":{"type":"string","enum":["pending","processing","completed","failed"]},"createdAt":{"type":"string","format":"date-time"},"completedAt":{"type":["string","null"],"format":"date-time"},"durationMs":{"type":["integer","null"]},"errorSummary":{"type":["string","null"]},"request":{},"result":{}},"required":["jobId","type","runId","status","createdAt"]}},"nextCursor":{"type":["string","null"]}},"required":["data","nextCursor"]}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/exports":{"post":{"operationId":"createExport","x-stability":"beta","summary":"Create an export job","description":"Queues an asynchronous export job for a supported resource and format. Returns 202 with the export identifier.","tags":["Exports"],"security":[{"api_key":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateExportInput"}}}},"responses":{"202":{"description":"Export job accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateExportResponse"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"500":{"$ref":"#/components/responses/InternalError"}}},"get":{"operationId":"listExports","x-stability":"beta","summary":"List export jobs","description":"Returns tenant-scoped export history with cursor pagination.","tags":["Exports"],"security":[{"api_key":[]}],"parameters":[{"name":"resource","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ExportResource"}},{"name":"status","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ExportStatus"}},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/Limit"}],"responses":{"200":{"description":"Export jobs returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportListResponse"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/exports/{exportId}":{"get":{"operationId":"getExport","x-stability":"beta","summary":"Get export job detail","description":"Returns metadata and status for an export job.","tags":["Exports"],"security":[{"api_key":[]}],"parameters":[{"name":"exportId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Export job details returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportDetailResponse"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/exports/{exportId}/download":{"get":{"operationId":"downloadExport","x-stability":"beta","summary":"Download completed export artifact","description":"Downloads the export artifact when the job has completed and the artifact has not expired.","tags":["Exports"],"security":[{"api_key":[]}],"parameters":[{"name":"exportId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Export artifact payload.","content":{"application/json":{"schema":{"type":"string"}},"text/csv":{"schema":{"type":"string"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/ValidationError"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/reporting/executions":{"post":{"operationId":"createReportingExecution","x-stability":"beta","summary":"Queue report execution","description":"Queues an asynchronous report execution and returns 202 with execution metadata.","tags":["Reporting"],"security":[{"api_key":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateReportingExecutionInput"}}}},"responses":{"202":{"description":"Report execution accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateReportingExecutionResponse"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"402":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}},"get":{"operationId":"listReportingExecutions","x-stability":"beta","summary":"List report executions","description":"Returns report execution history with artifact and delivery metadata.","tags":["Reporting"],"security":[{"api_key":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ReportExecutionStatus"}},{"name":"reportTemplateId","in":"query","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/Limit"}],"responses":{"200":{"description":"Report executions returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportExecutionListResponse"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"402":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/reporting/executions/{executionId}":{"get":{"operationId":"getReportingExecution","x-stability":"beta","summary":"Get report execution detail","description":"Returns report execution summary, artifacts, deliveries, and optional row payload.","tags":["Reporting"],"security":[{"api_key":[]}],"parameters":[{"name":"executionId","in":"path","required":true,"schema":{"type":"string"}},{"name":"includeData","in":"query","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Execution detail returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportExecutionDetail"}}}},"402":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"410":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/reporting/executions/{executionId}/download":{"get":{"operationId":"downloadReportingExecutionArtifact","x-stability":"beta","summary":"Download report artifact by format","description":"Downloads a report execution artifact when the selected format has completed successfully.","tags":["Reporting"],"security":[{"api_key":[]}],"parameters":[{"name":"executionId","in":"path","required":true,"schema":{"type":"string"}},{"name":"format","in":"query","required":true,"schema":{"$ref":"#/components/schemas/ReportArtifactFormat"}}],"responses":{"200":{"description":"Artifact payload.","content":{"application/pdf":{"schema":{"type":"string","format":"binary"}},"text/csv":{"schema":{"type":"string"}},"application/json":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"402":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/reporting/executions/{executionId}/shares":{"post":{"operationId":"createReportingExecutionShare","x-stability":"beta","summary":"Create secure report share link","description":"Creates a token-based share link for a specific report artifact format.","tags":["Reporting"],"security":[{"api_key":[]}],"parameters":[{"name":"executionId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateReportingShareInput"}}}},"responses":{"201":{"description":"Share link created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateReportingShareResponse"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"402":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"410":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/reporting/shares/{token}/download":{"get":{"operationId":"downloadReportingShare","x-stability":"beta","summary":"Download shared report artifact","description":"Downloads a report artifact using a tokenized share URL. Authentication is not required.","tags":["Reporting"],"security":[],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}},{"name":"format","in":"query","required":true,"schema":{"$ref":"#/components/schemas/ReportArtifactFormat"}}],"responses":{"200":{"description":"Shared artifact payload.","content":{"application/pdf":{"schema":{"type":"string","format":"binary"}},"text/csv":{"schema":{"type":"string"}},"application/json":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"404":{"$ref":"#/components/responses/NotFound"},"410":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/reporting/branding":{"get":{"operationId":"getReportingBranding","x-stability":"beta","summary":"Get reporting branding","description":"Returns organization-level reporting branding settings.","tags":["Reporting"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Branding settings returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportingBranding"}}}},"402":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}},"put":{"operationId":"updateReportingBranding","x-stability":"beta","summary":"Update reporting branding","description":"Updates organization-level report branding tokens used by PDF and delivery templates.","tags":["Reporting"],"security":[{"api_key":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateReportingBrandingInput"}}}},"responses":{"200":{"description":"Branding updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportingBranding"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"402":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/reporting/branding/logo":{"post":{"operationId":"uploadReportingBrandingLogo","x-stability":"beta","summary":"Upload reporting branding logo","description":"Uploads a branding logo image for report generation and delivery templates.","tags":["Reporting"],"security":[{"api_key":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"201":{"description":"Logo uploaded.","content":{"application/json":{"schema":{"type":"object","properties":{"logoUrl":{"type":"string","format":"uri"}},"required":["logoUrl"]}}}},"400":{"$ref":"#/components/responses/ValidationError"},"402":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/cron/reporting/schedules":{"post":{"operationId":"runReportingScheduleCron","x-stability":"beta","summary":"Run reporting schedule cron","description":"Creates queued executions for due report schedules.","tags":["Reporting"],"security":[],"parameters":[{"name":"x-cron-secret","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Schedule cron summary returned.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/cron/reporting/executions":{"post":{"operationId":"runReportingExecutionCron","x-stability":"beta","summary":"Run reporting execution cron","description":"Processes pending reporting executions.","tags":["Reporting"],"security":[],"parameters":[{"name":"x-cron-secret","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Execution cron summary returned.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/cron/reporting/deliveries":{"post":{"operationId":"runReportingDeliveryCron","x-stability":"beta","summary":"Run reporting delivery cron","description":"Processes pending reporting deliveries with retry semantics.","tags":["Reporting"],"security":[],"parameters":[{"name":"x-cron-secret","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Delivery cron summary returned.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/cron/reporting/cleanup":{"post":{"operationId":"runReportingCleanupCron","x-stability":"beta","summary":"Run reporting cleanup cron","description":"Purges expired report artifacts and stale share links.","tags":["Reporting"],"security":[],"parameters":[{"name":"x-cron-secret","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Cleanup cron summary returned.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/jobs/{jobId}/retry":{"post":{"operationId":"retryJob","x-stability":"stable","summary":"Retry failed job","description":"Retries a failed proof or replay job when the stored request payload is reusable.","tags":["Jobs"],"security":[{"api_key":[]}],"parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Job retry accepted.","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"type":{"type":"string","enum":["proof","replay"]},"retriedFrom":{"type":"string"},"retryEligible":{"type":"boolean"}},"required":["jobId","type","retriedFrom","retryEligible"]}}}},"400":{"$ref":"#/components/responses/ValidationError"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/ValidationError"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/integrity/{runId}":{"get":{"operationId":"getIntegrityRunSummary","x-stability":"stable","summary":"Get run integrity summary","description":"Aggregates snapshot hashes, graph commitment state, proof/replay linkage, and policy evaluation references.","tags":["Operations"],"security":[{"api_key":[]}],"parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Integrity summary returned.","content":{"application/json":{"schema":{"type":"object","properties":{"runId":{"type":"string"},"snapshot":{"type":"object"},"graph":{"type":["object","null"]},"linkedArtifacts":{"type":"object"},"status":{"type":"object"},"timeline":{"type":"array","items":{"type":"object"}},"links":{"type":"object"}},"required":["runId","snapshot","status","timeline","links"]}}}},"400":{"$ref":"#/components/responses/ValidationError"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/graphs":{"get":{"operationId":"listGraphs","x-stability":"stable","summary":"List causal graph records","description":"Lists committed and uncommitted graph records with run/date filtering.","tags":["Causal Graphs"],"security":[{"api_key":[]}],"parameters":[{"name":"runId","in":"query","required":false,"schema":{"type":"string"}},{"name":"startTime","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"endTime","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/Limit"}],"responses":{"200":{"description":"Graph records returned.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object"}},"nextCursor":{"type":["string","null"]}},"required":["data","nextCursor"]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/replay/templates":{"get":{"operationId":"listReplayTemplates","x-stability":"stable","summary":"List replay templates","description":"Lists saved replay templates for the active project.","tags":["Replay"],"security":[{"api_key":[]}],"parameters":[{"name":"runId","in":"query","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/Limit"}],"responses":{"200":{"description":"Replay templates returned.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object"}},"nextCursor":{"type":["string","null"]}}}}}},"400":{"$ref":"#/components/responses/ValidationError"},"500":{"$ref":"#/components/responses/InternalError"}}},"post":{"operationId":"createReplayTemplate","x-stability":"stable","summary":"Create replay template","description":"Creates a replay template with snapshot hash metadata.","tags":["Replay"],"security":[{"api_key":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","snapshot"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"runId":{"type":"string"},"snapshot":{"type":"object"}}}}}},"responses":{"201":{"description":"Replay template created.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/replay/templates/{templateId}":{"get":{"operationId":"getReplayTemplate","x-stability":"stable","summary":"Get replay template","tags":["Replay"],"security":[{"api_key":[]}],"parameters":[{"name":"templateId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Replay template returned.","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"$ref":"#/components/responses/NotFound"}}},"put":{"operationId":"updateReplayTemplate","x-stability":"stable","summary":"Update replay template","tags":["Replay"],"security":[{"api_key":[]}],"parameters":[{"name":"templateId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Replay template updated.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"404":{"$ref":"#/components/responses/NotFound"}}},"delete":{"operationId":"deleteReplayTemplate","x-stability":"stable","summary":"Delete replay template","tags":["Replay"],"security":[{"api_key":[]}],"parameters":[{"name":"templateId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Replay template deleted.","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean"}}}}}},"404":{"$ref":"#/components/responses/NotFound"}}}},"/replay/compare":{"post":{"operationId":"compareReplayResults","x-stability":"stable","summary":"Compare replay diagnostics","description":"Compares baseline and candidate replay results and optionally updates regression baseline.","tags":["Replay"],"security":[{"api_key":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["runId","baselineReplayId","candidateReplayId"],"properties":{"runId":{"type":"string"},"baselineReplayId":{"type":"string"},"candidateReplayId":{"type":"string"},"setAsBaseline":{"type":"boolean"},"baselineTemplateId":{"type":"string"},"notes":{"type":"string"}}}}}},"responses":{"200":{"description":"Replay comparison returned.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/metering/milestones":{"get":{"operationId":"getMilestoneConfig","x-stability":"stable","summary":"Get milestone threshold config","tags":["Metering"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Milestone config returned.","content":{"application/json":{"schema":{"type":"object"}}}}}},"put":{"operationId":"updateMilestoneConfig","x-stability":"stable","summary":"Update milestone threshold config","tags":["Metering"],"security":[{"api_key":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Milestone config updated.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"}}}},"/metering/milestones/deliveries":{"get":{"operationId":"listMilestoneDeliveries","x-stability":"stable","summary":"List milestone delivery history","tags":["Metering"],"security":[{"api_key":[]}],"parameters":[{"name":"operationType","in":"query","required":false,"schema":{"type":"string","enum":["audit_event","compliance_proof","risk_decision","replay_verification"]}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/Limit"}],"responses":{"200":{"description":"Milestone deliveries returned.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"}}}},"/telemetry/reports":{"get":{"operationId":"listTelemetryReports","x-stability":"stable","summary":"List telemetry usage reports","tags":["Hybrid Telemetry"],"security":[{"api_key":[]}],"parameters":[{"name":"projectId","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["accepted","pending","verified","failed","expired","not_requested"]}},{"name":"startTime","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"endTime","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/Limit"}],"responses":{"200":{"description":"Telemetry report list returned.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/telemetry/challenges":{"get":{"operationId":"listTelemetryChallenges","x-stability":"stable","summary":"List attestation challenges","tags":["Hybrid Telemetry"],"security":[{"api_key":[]}],"parameters":[{"name":"projectId","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["accepted","pending","verified","failed","expired","not_requested"]}},{"name":"startTime","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"endTime","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"$ref":"#/components/parameters/Cursor"},{"$ref":"#/components/parameters/Limit"}],"responses":{"200":{"description":"Attestation challenge list returned.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/billing/summary":{"get":{"operationId":"getBillingSummary","x-stability":"stable","summary":"Get billing summary","description":"Returns current and comparative projected billing scenarios by tier.","tags":["Billing"],"security":[{"api_key":[]}],"parameters":[{"in":"query","name":"compareTier","required":false,"schema":{"type":"string","enum":["free","enterprise"]},"description":"Optional comparison tier for simulation output."},{"in":"query","name":"usage_audit_event","required":false,"schema":{"type":"integer","minimum":0},"description":"Optional simulated usage override for audit events."},{"in":"query","name":"usage_compliance_proof","required":false,"schema":{"type":"integer","minimum":0},"description":"Optional simulated usage override for compliance proofs."},{"in":"query","name":"usage_risk_decision","required":false,"schema":{"type":"integer","minimum":0},"description":"Optional simulated usage override for risk decisions."},{"in":"query","name":"usage_replay_verification","required":false,"schema":{"type":"integer","minimum":0},"description":"Optional simulated usage override for replay verifications."}],"responses":{"200":{"description":"Billing summary returned.","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"$ref":"#/components/responses/NotFound"}}}},"/organization":{"get":{"operationId":"getOrganization","x-stability":"stable","summary":"Get organization summary","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Organization returned.","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"$ref":"#/components/responses/NotFound"}}}},"/quotas":{"get":{"operationId":"getQuotas","x-stability":"stable","summary":"Get quota configuration","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Quota rows returned.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/health":{"get":{"operationId":"healthCheck","x-stability":"stable","summary":"Health check","description":"Returns the service status and current timestamp.","tags":["Health"],"security":[],"responses":{"200":{"description":"Service is running.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"},"example":{"status":"ok","timestamp":"2025-06-15T12:00:00Z"}}}}}}},"/ai-systems/{systemId}":{"delete":{"operationId":"deleteAiSystemsSystemId","x-stability":"stable","summary":"Auto-generated parity operation for DELETE /ai-systems/{systemId}","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}},"get":{"operationId":"getAiSystemsSystemId","x-stability":"stable","summary":"Auto-generated parity operation for GET /ai-systems/{systemId}","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}},"put":{"operationId":"putAiSystemsSystemId","x-stability":"stable","summary":"Auto-generated parity operation for PUT /ai-systems/{systemId}","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/api-keys/{keyId}":{"delete":{"operationId":"deleteApiKeysKeyId","x-stability":"stable","summary":"Auto-generated parity operation for DELETE /api-keys/{keyId}","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}},"put":{"operationId":"putApiKeysKeyId","x-stability":"stable","summary":"Auto-generated parity operation for PUT /api-keys/{keyId}","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/governance/policies/{policyId}":{"delete":{"operationId":"deleteGovernancePoliciesPolicyId","x-stability":"stable","summary":"Auto-generated parity operation for DELETE /governance/policies/{policyId}","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Governance"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}},"get":{"operationId":"getGovernancePoliciesPolicyId","x-stability":"stable","summary":"Auto-generated parity operation for GET /governance/policies/{policyId}","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Governance"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}},"put":{"operationId":"putGovernancePoliciesPolicyId","x-stability":"stable","summary":"Auto-generated parity operation for PUT /governance/policies/{policyId}","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Governance"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/mcp-servers/{serverId}":{"delete":{"operationId":"deleteMcpServersServerId","x-stability":"stable","summary":"Auto-generated parity operation for DELETE /mcp-servers/{serverId}","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}},"get":{"operationId":"getMcpServersServerId","x-stability":"stable","summary":"Auto-generated parity operation for GET /mcp-servers/{serverId}","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}},"put":{"operationId":"putMcpServersServerId","x-stability":"stable","summary":"Auto-generated parity operation for PUT /mcp-servers/{serverId}","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/mcp-servers/{serverId}/link/{systemId}":{"delete":{"operationId":"deleteMcpServersServerIdLinkSystemId","x-stability":"stable","summary":"Auto-generated parity operation for DELETE /mcp-servers/{serverId}/link/{systemId}","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/risk/config/draft":{"delete":{"operationId":"deleteRiskConfigDraft","x-stability":"stable","summary":"Auto-generated parity operation for DELETE /risk/config/draft","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Risk Routing"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}},"post":{"operationId":"postRiskConfigDraft","x-stability":"stable","summary":"Auto-generated parity operation for POST /risk/config/draft","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Risk Routing"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/ai-systems":{"get":{"operationId":"getAiSystems","x-stability":"stable","summary":"Auto-generated parity operation for GET /ai-systems","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}},"post":{"operationId":"postAiSystems","x-stability":"stable","summary":"Auto-generated parity operation for POST /ai-systems","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/ai-systems/{systemId}/summary":{"get":{"operationId":"getAiSystemsSystemIdSummary","x-stability":"stable","summary":"Auto-generated parity operation for GET /ai-systems/{systemId}/summary","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/api-keys":{"get":{"operationId":"getApiKeys","x-stability":"stable","summary":"Auto-generated parity operation for GET /api-keys","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}},"post":{"operationId":"postApiKeys","x-stability":"stable","summary":"Auto-generated parity operation for POST /api-keys","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/governance/policies":{"get":{"operationId":"getGovernancePolicies","x-stability":"stable","summary":"Auto-generated parity operation for GET /governance/policies","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Governance"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}},"post":{"operationId":"postGovernancePolicies","x-stability":"stable","summary":"Auto-generated parity operation for POST /governance/policies","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Governance"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/governance/policies/{policyId}/versions":{"get":{"operationId":"getGovernancePoliciesPolicyIdVersions","x-stability":"stable","summary":"Auto-generated parity operation for GET /governance/policies/{policyId}/versions","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Governance"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}},"post":{"operationId":"postGovernancePoliciesPolicyIdVersions","x-stability":"stable","summary":"Auto-generated parity operation for POST /governance/policies/{policyId}/versions","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Governance"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/mcp-servers":{"get":{"operationId":"getMcpServers","x-stability":"stable","summary":"Auto-generated parity operation for GET /mcp-servers","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}},"post":{"operationId":"postMcpServers","x-stability":"stable","summary":"Auto-generated parity operation for POST /mcp-servers","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/mcp-servers/{serverId}/health":{"get":{"operationId":"getMcpServersServerIdHealth","x-stability":"stable","summary":"Auto-generated parity operation for GET /mcp-servers/{serverId}/health","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/mcp-servers/{serverId}/systems":{"get":{"operationId":"getMcpServersServerIdSystems","x-stability":"stable","summary":"Auto-generated parity operation for GET /mcp-servers/{serverId}/systems","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/mcp-servers/{serverId}/tools":{"get":{"operationId":"getMcpServersServerIdTools","x-stability":"stable","summary":"Auto-generated parity operation for GET /mcp-servers/{serverId}/tools","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}}},"post":{"operationId":"postMcpServersServerIdTools","x-stability":"stable","summary":"Auto-generated parity operation for POST /mcp-servers/{serverId}/tools","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/namespaces/approvals":{"get":{"operationId":"getNamespacesApprovals","x-stability":"stable","summary":"Auto-generated parity operation for GET /namespaces/approvals","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}},"post":{"operationId":"postNamespacesApprovals","x-stability":"stable","summary":"Auto-generated parity operation for POST /namespaces/approvals","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/risk/config/versions":{"get":{"operationId":"getRiskConfigVersions","x-stability":"stable","summary":"Auto-generated parity operation for GET /risk/config/versions","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Risk Routing"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/usage":{"get":{"operationId":"getUsage","x-stability":"stable","summary":"Auto-generated parity operation for GET /usage","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/usage/history":{"get":{"operationId":"getUsageHistory","x-stability":"stable","summary":"Auto-generated parity operation for GET /usage/history","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/ai-systems/{systemId}/set-default":{"post":{"operationId":"postAiSystemsSystemIdSetDefault","x-stability":"stable","summary":"Auto-generated parity operation for POST /ai-systems/{systemId}/set-default","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/api-keys/{keyId}/rotate":{"post":{"operationId":"postApiKeysKeyIdRotate","x-stability":"stable","summary":"Auto-generated parity operation for POST /api-keys/{keyId}/rotate","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/approvals/{approvalId}/resolve":{"post":{"operationId":"postApprovalsApprovalIdResolve","x-stability":"stable","summary":"Auto-generated parity operation for POST /approvals/{approvalId}/resolve","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/governance/policies/{policyId}/activate-version":{"post":{"operationId":"postGovernancePoliciesPolicyIdActivateVersion","x-stability":"stable","summary":"Auto-generated parity operation for POST /governance/policies/{policyId}/activate-version","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Governance"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/governance/policies/{policyId}/restore":{"post":{"operationId":"postGovernancePoliciesPolicyIdRestore","x-stability":"stable","summary":"Auto-generated parity operation for POST /governance/policies/{policyId}/restore","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Governance"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/mcp-servers/{serverId}/health-check":{"post":{"operationId":"postMcpServersServerIdHealthCheck","x-stability":"stable","summary":"Auto-generated parity operation for POST /mcp-servers/{serverId}/health-check","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/mcp-servers/{serverId}/link":{"post":{"operationId":"postMcpServersServerIdLink","x-stability":"stable","summary":"Auto-generated parity operation for POST /mcp-servers/{serverId}/link","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/mcp-servers/{serverId}/refresh-tools":{"post":{"operationId":"postMcpServersServerIdRefreshTools","x-stability":"stable","summary":"Auto-generated parity operation for POST /mcp-servers/{serverId}/refresh-tools","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/mcp/tools/evaluate":{"post":{"operationId":"postMcpToolsEvaluate","x-stability":"stable","summary":"Auto-generated parity operation for POST /mcp/tools/evaluate","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/risk/config/publish":{"post":{"operationId":"postRiskConfigPublish","x-stability":"stable","summary":"Auto-generated parity operation for POST /risk/config/publish","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Risk Routing"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/risk/config/rollback":{"post":{"operationId":"postRiskConfigRollback","x-stability":"stable","summary":"Auto-generated parity operation for POST /risk/config/rollback","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Risk Routing"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/risk/simulate":{"post":{"operationId":"postRiskSimulate","x-stability":"stable","summary":"Auto-generated parity operation for POST /risk/simulate","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Risk Routing"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}},"/mcp-servers/{serverId}/tools/{toolName}":{"put":{"operationId":"putMcpServersServerIdToolsToolName","x-stability":"stable","summary":"Auto-generated parity operation for PUT /mcp-servers/{serverId}/tools/{toolName}","description":"Generated from SDK surface parity checks. Replace with curated request/response schemas as needed.","tags":["Operations"],"security":[{"api_key":[]}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}}}}},"components":{"securitySchemes":{"api_key":{"type":"apiKey","in":"header","name":"x-api-key","description":"API key for programmatic access. Obtain keys during signup or from the dashboard."},"bearer":{"type":"http","scheme":"bearer","bearerFormat":"Firebase ID Token","description":"Firebase Authentication ID token for dashboard and user-facing operations."},"hybrid_telemetry_key":{"type":"apiKey","in":"header","name":"x-telemetry-key","description":"Hybrid data-plane telemetry key. Use with x-telemetry-signature and x-telemetry-timestamp."}},"parameters":{"Cursor":{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Base64-encoded cursor for pagination. Returned as nextCursor in responses."},"Limit":{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50},"description":"Maximum number of items to return (1-200, default 50)."}},"schemas":{"ProblemDetail":{"type":"object","description":"RFC 7807 Problem Detail for HTTP APIs.","required":["type","title","status","detail"],"properties":{"type":{"type":"string","format":"uri","description":"A URI reference identifying the problem type.","example":"https://api.arelis.digital/errors/validation-error"},"title":{"type":"string","description":"A short, human-readable summary.","example":"Validation Error"},"status":{"type":"integer","description":"The HTTP status code.","example":400},"detail":{"type":"string","description":"A human-readable explanation.","example":"Invalid event input."},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"path":{"type":"array","items":{"type":"string"}}}},"description":"Detailed validation errors (Zod issues)."}}},"TelemetryUsageReportInput":{"type":"object","required":["windowStart","windowEnd","operationCounts"],"properties":{"idempotencyKey":{"type":"string","maxLength":128,"description":"Optional idempotency key for retry-safe ingestion."},"windowStart":{"type":"string","format":"date-time","description":"Inclusive usage window start timestamp."},"windowEnd":{"type":"string","format":"date-time","description":"Exclusive usage window end timestamp."},"operationCounts":{"type":"object","required":["audit_event","compliance_proof","risk_decision","replay_verification"],"properties":{"audit_event":{"type":"integer","minimum":0},"compliance_proof":{"type":"integer","minimum":0},"risk_decision":{"type":"integer","minimum":0},"replay_verification":{"type":"integer","minimum":0}}},"source":{"type":"object","properties":{"deploymentId":{"type":"string"},"region":{"type":"string"},"provider":{"type":"string","enum":["aws","gcp","azure","other"]}},"additionalProperties":false}}},"TelemetryUsageReportResponse":{"type":"object","properties":{"reportId":{"type":"string"},"accepted":{"type":"boolean"},"totalQuantity":{"type":"integer"},"operationCounts":{"type":"object","properties":{"audit_event":{"type":"integer","minimum":0},"compliance_proof":{"type":"integer","minimum":0},"risk_decision":{"type":"integer","minimum":0},"replay_verification":{"type":"integer","minimum":0}}},"attestation":{"type":"object","properties":{"required":{"type":"boolean"},"challengeId":{"type":"string","nullable":true},"expiresAt":{"type":"string","format":"date-time","nullable":true}}}}},"TelemetryAttestationProofInput":{"type":"object","required":["usageDigest","totalOperations","attestationDigest"],"properties":{"usageDigest":{"type":"string"},"totalOperations":{"type":"integer","minimum":0},"attestationDigest":{"type":"string"},"merkleRoot":{"type":"string"},"evidenceHash":{"type":"string"}}},"TelemetryAttestationResponse":{"type":"object","properties":{"challengeId":{"type":"string"},"reportId":{"type":"string"},"verified":{"type":"boolean"},"status":{"type":"string"}}},"AuditEventInput":{"type":"object","required":["runId","eventType","actor","resource","action","timestamp"],"properties":{"runId":{"type":"string","minLength":1,"description":"The agent run identifier."},"eventType":{"type":"string","minLength":1,"description":"Type of the event (e.g., tool.invoked, model.response)."},"actor":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"The actor that performed the action. Can be a string or object."},"resource":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":true}],"description":"The resource the action was performed on. Can be a string or object."},"action":{"type":"string","minLength":1,"description":"The action performed."},"timestamp":{"type":"string","format":"date-time","description":"When the event occurred (ISO 8601)."},"metadata":{"type":"object","additionalProperties":true,"description":"Optional key-value metadata."}}},"AuditEvent":{"type":"object","properties":{"eventId":{"type":"string"},"runId":{"type":"string"},"eventType":{"type":"string"},"actor":{"oneOf":[{"type":"string"},{"type":"object"}]},"resource":{"oneOf":[{"type":"string"},{"type":"object"}]},"action":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"serverTimestamp":{"type":"string","format":"date-time"},"metadata":{"type":"object","additionalProperties":true,"nullable":true}}},"EventCreatedResponse":{"type":"object","properties":{"eventId":{"type":"string"},"runId":{"type":"string"}}},"EventListResponse":{"type":"object","properties":{"events":{"type":"array","items":{"$ref":"#/components/schemas/AuditEvent"}},"nextCursor":{"type":"string","nullable":true}}},"BatchEventInput":{"type":"object","required":["events"],"properties":{"events":{"type":"array","minItems":1,"maxItems":500,"items":{"$ref":"#/components/schemas/AuditEventInput"},"description":"Array of audit events (1-500)."}}},"BatchEventResponse":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"eventId":{"type":"string","nullable":true},"status":{"type":"string","enum":["accepted","rejected"]},"reason":{"type":"string"}}}}}},"ComplianceProofRequest":{"type":"object","required":["runId"],"properties":{"runId":{"type":"string","minLength":1},"schemaVersion":{"type":"string","enum":["v1","v2"],"default":"v2"},"disclosureRuleIds":{"type":"array","items":{"type":"string"}},"composed":{"type":"object","properties":{"layers":{"type":"array","items":{"type":"string"}},"narrowing":{"type":"object","additionalProperties":true},"lineage":{"type":"object","additionalProperties":true}}},"async":{"type":"boolean","default":false,"description":"If true, returns 202 with a jobId instead of generating synchronously."}}},"ComplianceProof":{"type":"object","properties":{"proofId":{"type":"string"},"runId":{"type":"string"},"schemaVersion":{"type":"string","enum":["v1","v2"]},"commitment":{"type":"object","additionalProperties":true},"proofHash":{"type":"string"},"layers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"hash":{"type":"string"},"verified":{"type":"boolean"}}}},"metadata":{"type":"object","additionalProperties":true,"nullable":true},"createdAt":{"type":"string","format":"date-time"}}},"ProofListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ComplianceProof"}},"nextCursor":{"type":"string","nullable":true}}},"ComplianceVerificationByIdInput":{"type":"object","required":["proofId"],"properties":{"proofId":{"type":"string","minLength":1}}},"ComplianceVerificationArtifactInput":{"type":"object","required":["proofId","runId","schemaVersion","proofHash","layers"],"properties":{"proofId":{"type":"string","minLength":1},"runId":{"type":"string","minLength":1},"schemaVersion":{"type":"string","enum":["v1","v2"]},"commitment":{"description":"The original commitment object."},"proofHash":{"type":"string","minLength":1},"layers":{"type":"array","items":{"type":"object","required":["name","hash"],"properties":{"name":{"type":"string"},"hash":{"type":"string"},"verified":{"type":"boolean"}}}}}},"ComplianceVerificationInput":{"oneOf":[{"$ref":"#/components/schemas/ComplianceVerificationByIdInput"},{"$ref":"#/components/schemas/ComplianceVerificationArtifactInput"}]},"VerificationResponse":{"type":"object","properties":{"proofId":{"type":"string"},"verified":{"type":"boolean"},"layers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"passed":{"type":"boolean"},"reason":{"type":"string"}}}},"proofHashMismatch":{"type":"boolean"}}},"RuntimeRiskInput":{"type":"object","required":["runId","policyDecisions","quotaState","evaluationSignals"],"properties":{"runId":{"type":"string","minLength":1},"policyDecisions":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Array of policy decision objects."},"quotaState":{"type":"object","additionalProperties":true,"description":"Current quota state."},"evaluationSignals":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Array of evaluation signal objects."},"explicitSignals":{"type":"object","additionalProperties":true,"description":"Optional explicit signal overrides."}}},"RiskDecision":{"type":"object","properties":{"id":{"type":"string"},"runId":{"type":"string"},"action":{"type":"string","enum":["allow","flag","block","escalate"]},"score":{"type":"number","minimum":0,"maximum":1},"factors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"weight":{"type":"number"},"value":{"type":"number"}}}},"deterministicInputsHash":{"type":"string"}}},"RiskDecisionListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/RiskDecision"},{"type":"object","properties":{"createdAt":{"type":"string","format":"date-time"}}}]}},"nextCursor":{"type":"string","nullable":true}}},"RiskRouterConfig":{"type":"object","required":["mode","thresholds","defaultAction"],"properties":{"mode":{"type":"string","enum":["adaptive","strict","permissive"]},"thresholds":{"type":"object","required":["allow","flag","block","escalate"],"properties":{"allow":{"type":"number","minimum":0,"maximum":1},"flag":{"type":"number","minimum":0,"maximum":1},"block":{"type":"number","minimum":0,"maximum":1},"escalate":{"type":"number","minimum":0,"maximum":1}}},"defaultAction":{"type":"string","enum":["allow","flag","block","escalate"]}}},"ReplayRequest":{"type":"object","required":["runId"],"properties":{"runId":{"type":"string","minLength":1},"replaySnapshot":{"type":"object","properties":{"policyHash":{"type":"string","nullable":true},"modelRoute":{"type":"string","nullable":true},"toolRegistryHash":{"type":"string","nullable":true},"configStateHash":{"type":"string","nullable":true}}}}},"CausalGraphReplayRequest":{"type":"object","required":["runId","nodes","edges"],"properties":{"runId":{"type":"string","minLength":1},"nodes":{"type":"array","items":{"$ref":"#/components/schemas/GraphNode"}},"edges":{"type":"array","items":{"$ref":"#/components/schemas/GraphEdge"}},"replaySnapshot":{"type":"object","properties":{"policyHash":{"type":"string","nullable":true},"modelRoute":{"type":"string","nullable":true},"toolRegistryHash":{"type":"string","nullable":true},"configStateHash":{"type":"string","nullable":true}}}}},"ReplayResult":{"type":"object","properties":{"replayId":{"type":"string"},"runId":{"type":"string"},"steps":{"type":"array","items":{"type":"object","additionalProperties":true}},"warnings":{"type":"array","items":{"type":"string"}},"driftDiagnostics":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"expected":{"type":"string","nullable":true},"actual":{"type":"string","nullable":true},"severity":{"type":"string","enum":["low","medium","high"]}}}},"createdAt":{"type":"string","format":"date-time"}}},"ReplayListItem":{"type":"object","properties":{"jobId":{"type":"string"},"replayId":{"type":"string","nullable":true},"runId":{"type":"string"},"status":{"type":"string","enum":["pending","processing","completed","failed"]},"createdAt":{"type":"string","format":"date-time"},"completedAt":{"type":"string","format":"date-time","nullable":true},"stepsCount":{"type":"integer","minimum":0},"warningsCount":{"type":"integer","minimum":0},"driftCount":{"type":"integer","minimum":0},"error":{"type":"string","nullable":true}}},"ReplayListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReplayListItem"}},"nextCursor":{"type":"string","nullable":true}}},"GraphNode":{"type":"object","required":["id","type","data"],"properties":{"id":{"type":"string"},"type":{"type":"string"},"data":{"type":"object","additionalProperties":true}}},"GraphEdge":{"type":"object","required":["source","target","type"],"properties":{"source":{"type":"string"},"target":{"type":"string"},"type":{"type":"string","enum":["contains","sequence","parent","provisioned","configured","authenticated","discovered","agent_child"]}}},"CausalGraph":{"type":"object","properties":{"id":{"type":"string"},"runId":{"type":"string"},"nodes":{"type":"array","items":{"$ref":"#/components/schemas/GraphNode"}},"edges":{"type":"array","items":{"$ref":"#/components/schemas/GraphEdge"}},"digestMetadata":{"type":"object","additionalProperties":true,"nullable":true},"rootHash":{"type":"string","nullable":true},"createdAt":{"type":"string","format":"date-time"}}},"GraphCommitResponse":{"type":"object","properties":{"runId":{"type":"string"},"rootHash":{"type":"string"},"committedAt":{"type":"string","format":"date-time"}}},"LineageResponse":{"type":"object","properties":{"runId":{"type":"string"},"nodeId":{"type":"string"},"nodes":{"type":"array","items":{"$ref":"#/components/schemas/GraphNode"}},"edges":{"type":"array","items":{"$ref":"#/components/schemas/GraphEdge"}},"ancestorCount":{"type":"number"},"descendantCount":{"type":"number"}}},"PolicyEvaluationInput":{"type":"object","required":["runId","policies","checkpoint"],"properties":{"runId":{"type":"string","minLength":1},"policies":{"type":"array","items":{"type":"string"},"description":"Array of policy identifiers to evaluate."},"checkpoint":{"type":"object","additionalProperties":true,"description":"Checkpoint context for policy evaluation."}}},"PolicyEvaluationResponse":{"type":"object","properties":{"runId":{"type":"string"},"decisions":{"type":"array","items":{"type":"object","properties":{"policyId":{"type":"string"},"decision":{"type":"string"},"reasoning":{"type":"string"}}}},"evaluatedAt":{"type":"string","format":"date-time"}}},"GovernanceSnapshot":{"type":"object","properties":{"runId":{"type":"string"},"policyHash":{"type":"string","nullable":true},"modelRoute":{"type":"string","nullable":true},"toolRegistryHash":{"type":"string","nullable":true},"configStateHash":{"type":"string","nullable":true}}},"AsyncJobAccepted":{"type":"object","properties":{"jobId":{"type":"string"}}},"JobStatus":{"type":"object","properties":{"jobId":{"type":"string"},"type":{"type":"string","enum":["proof","replay"]},"status":{"type":"string","enum":["pending","processing","completed","failed"]},"result":{"type":"object","additionalProperties":true,"nullable":true},"createdAt":{"type":"string","format":"date-time"},"completedAt":{"type":"string","format":"date-time","nullable":true}}},"SignupInput":{"type":"object","required":["name","organizationName"],"properties":{"name":{"type":"string","description":"The user's display name."},"organizationName":{"type":"string","description":"The organization name."}}},"SignupResponse":{"type":"object","properties":{"orgId":{"type":"string"},"projectId":{"type":"string"},"apiKeys":{"type":"object","properties":{"sandbox":{"type":"string"},"production":{"type":"string"}}}}},"SessionInput":{"type":"object","required":["idToken"],"properties":{"idToken":{"type":"string","description":"Firebase ID token."}}},"CheckoutInput":{"type":"object","required":["tier","successUrl","cancelUrl"],"properties":{"tier":{"type":"string","description":"The pricing tier to subscribe to."},"successUrl":{"type":"string","format":"uri","description":"URL to redirect to after successful checkout."},"cancelUrl":{"type":"string","format":"uri","description":"URL to redirect to if checkout is canceled."}}},"PortalInput":{"type":"object","required":["returnUrl"],"properties":{"returnUrl":{"type":"string","format":"uri","description":"URL to redirect to after leaving the portal."}}},"UrlResponse":{"type":"object","properties":{"url":{"type":"string","format":"uri"}}},"ProjectInput":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"The project name."},"environment":{"type":"string","enum":["sandbox","production"],"default":"sandbox"}}},"ProjectUpdateInput":{"type":"object","properties":{"name":{"type":"string"},"settings":{"type":"object","additionalProperties":true}}},"Project":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"environment":{"type":"string","enum":["sandbox","production"]},"createdAt":{"type":"string","format":"date-time"}}},"ProjectDetail":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"environment":{"type":"string","enum":["sandbox","production"]},"settings":{"type":"object","additionalProperties":true,"nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"ProjectListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"environment":{"type":"string","enum":["sandbox","production"]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}}}}},"ExportResource":{"type":"string","enum":["events","proofs","risk_decisions","replays","jobs","integrity","telemetry_reports","telemetry_challenges","usage_summary","usage_history","metering_milestones","metering_deliveries","policies","policy_evaluations","graphs"]},"ExportFormat":{"type":"string","enum":["json","csv"]},"ExportStatus":{"type":"string","enum":["pending","processing","completed","failed","expired"]},"CreateExportInput":{"type":"object","required":["resource","format"],"properties":{"resource":{"$ref":"#/components/schemas/ExportResource"},"format":{"$ref":"#/components/schemas/ExportFormat"},"filters":{"type":"object","additionalProperties":true},"includeFields":{"type":"array","items":{"type":"string"}}}},"ExportRecord":{"type":"object","properties":{"exportId":{"type":"string"},"resource":{"$ref":"#/components/schemas/ExportResource"},"format":{"$ref":"#/components/schemas/ExportFormat"},"status":{"$ref":"#/components/schemas/ExportStatus"},"rowCount":{"type":["integer","null"]},"checksumSha256":{"type":["string","null"]},"failureReason":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"startedAt":{"type":["string","null"],"format":"date-time"},"completedAt":{"type":["string","null"],"format":"date-time"},"expiresAt":{"type":["string","null"],"format":"date-time"}},"required":["exportId","resource","format","status","createdAt"]},"CreateExportResponse":{"allOf":[{"$ref":"#/components/schemas/ExportRecord"}]},"ExportListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ExportRecord"}},"nextCursor":{"type":["string","null"]}},"required":["data","nextCursor"]},"ExportDetailResponse":{"allOf":[{"$ref":"#/components/schemas/ExportRecord"},{"type":"object","properties":{"filters":{"type":["object","null"],"additionalProperties":true},"includeFields":{"type":"array","items":{"type":"string"}},"artifactFileName":{"type":["string","null"]},"artifactMimeType":{"type":["string","null"]},"artifactSizeBytes":{"type":["integer","null"]}}}]},"ReportArtifactFormat":{"type":"string","enum":["pdf","csv","json"]},"ReportExecutionStatus":{"type":"string","enum":["pending","processing","completed","failed","expired"]},"ReportDeliveryStatus":{"type":"string","enum":["pending","processing","delivered","failed"]},"CreateReportingExecutionInput":{"type":"object","required":["reportTemplateId"],"properties":{"reportTemplateId":{"type":"string"},"parameters":{"type":"object","additionalProperties":true},"formats":{"type":"array","items":{"$ref":"#/components/schemas/ReportArtifactFormat"}},"deliveryOverride":{"type":"object","properties":{"emailTargets":{"type":"array","items":{"type":"string","format":"email"}},"webhookTargets":{"type":"array","items":{"type":"string","format":"uri"}}}}}},"ReportArtifactMetadata":{"type":"object","properties":{"format":{"$ref":"#/components/schemas/ReportArtifactFormat"},"fileName":{"type":"string"},"mimeType":{"type":"string"},"sizeBytes":{"type":"integer"},"checksumSha256":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"}}},"ReportDeliveryMetadata":{"type":"object","properties":{"channel":{"type":"string","enum":["email","webhook"]},"target":{"type":"string"},"status":{"$ref":"#/components/schemas/ReportDeliveryStatus"},"attemptCount":{"type":"integer"},"lastAttemptAt":{"type":["string","null"],"format":"date-time"},"lastError":{"type":["string","null"]}}},"ReportExecutionRecord":{"type":"object","properties":{"executionId":{"type":"string"},"reportTemplateId":{"type":"string"},"reportName":{"type":"string"},"reportType":{"type":"string"},"status":{"$ref":"#/components/schemas/ReportExecutionStatus"},"requestedFormats":{"type":"array","items":{"$ref":"#/components/schemas/ReportArtifactFormat"}},"summary":{"type":["object","null"],"additionalProperties":true},"rowCount":{"type":["integer","null"]},"failureReason":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"startedAt":{"type":["string","null"],"format":"date-time"},"processingStartedAt":{"type":["string","null"],"format":"date-time"},"processingCompletedAt":{"type":["string","null"],"format":"date-time"},"completedAt":{"type":["string","null"],"format":"date-time"},"expiresAt":{"type":["string","null"],"format":"date-time"},"artifacts":{"type":"array","items":{"$ref":"#/components/schemas/ReportArtifactMetadata"}},"deliveries":{"type":"array","items":{"$ref":"#/components/schemas/ReportDeliveryMetadata"}}}},"CreateReportingExecutionResponse":{"type":"object","properties":{"executionId":{"type":"string"},"status":{"$ref":"#/components/schemas/ReportExecutionStatus"},"queuedAt":{"type":"string","format":"date-time"},"reportTemplateId":{"type":"string"},"reportName":{"type":"string"},"reportType":{"type":"string"},"warnings":{"type":"array","items":{"type":"string"}}}},"ReportExecutionListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReportExecutionRecord"}},"nextCursor":{"type":["string","null"]}}},"ReportExecutionDetail":{"allOf":[{"$ref":"#/components/schemas/ReportExecutionRecord"},{"type":"object","properties":{"parameters":{"type":["object","null"],"additionalProperties":true},"resultFormat":{"type":"string"},"checksumSha256":{"type":["string","null"]},"errorCode":{"type":["string","null"]},"requestedByActorId":{"type":["string","null"]},"requestedByActorType":{"type":"string"},"data":{"type":["array","object","string","null"],"items":{"type":"object","additionalProperties":true}}}}]},"CreateReportingShareInput":{"type":"object","properties":{"format":{"$ref":"#/components/schemas/ReportArtifactFormat"},"expiresInHours":{"type":"integer","minimum":1,"maximum":720},"maxAccesses":{"type":"integer","minimum":1,"maximum":100}}},"CreateReportingShareResponse":{"type":"object","properties":{"shareId":{"type":"string"},"executionId":{"type":"string"},"format":{"$ref":"#/components/schemas/ReportArtifactFormat"},"downloadUrl":{"type":"string","format":"uri"},"expiresAt":{"type":"string","format":"date-time"},"maxAccesses":{"type":"integer"}}},"ReportingBranding":{"type":"object","properties":{"orgId":{"type":"string"},"displayName":{"type":["string","null"]},"logoUrl":{"type":["string","null"],"format":"uri"},"primaryColor":{"type":["string","null"]},"secondaryColor":{"type":["string","null"]},"accentColor":{"type":["string","null"]},"footerText":{"type":["string","null"]},"legalDisclaimer":{"type":["string","null"]},"contactEmail":{"type":["string","null"],"format":"email"},"createdAt":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":["string","null"],"format":"date-time"}}},"UpdateReportingBrandingInput":{"type":"object","properties":{"displayName":{"type":["string","null"]},"primaryColor":{"type":["string","null"]},"secondaryColor":{"type":["string","null"]},"accentColor":{"type":["string","null"]},"footerText":{"type":["string","null"]},"legalDisclaimer":{"type":["string","null"]},"contactEmail":{"type":["string","null"],"format":"email"}}},"HealthResponse":{"type":"object","properties":{"status":{"type":"string","enum":["ok"]},"timestamp":{"type":"string","format":"date-time"}}},"ReadinessResponse":{"type":"object","properties":{"status":{"type":"string","enum":["healthy","unhealthy"]},"checks":{"type":"object","properties":{"database":{"type":"string","enum":["ok","error"]}}},"timestamp":{"type":"string","format":"date-time"}}}},"responses":{"ValidationError":{"description":"The request body or query parameters failed validation (400).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"},"example":{"type":"https://api.arelis.digital/errors/validation-error","title":"Validation Error","status":400,"detail":"Invalid event input.","errors":[{"code":"too_small","message":"String must contain at least 1 character(s)","path":["runId"]}]}}}},"Unauthorized":{"description":"Authentication is missing or invalid (401).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"},"example":{"type":"https://api.arelis.digital/errors/unauthorized","title":"Unauthorized","status":401,"detail":"Invalid or missing API key."}}}},"Forbidden":{"description":"Insufficient permissions for this operation (403).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"},"example":{"type":"https://api.arelis.digital/errors/forbidden","title":"Forbidden","status":403,"detail":"You do not have permission to perform this action."}}}},"NotFound":{"description":"The requested resource was not found (404).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"},"example":{"type":"https://api.arelis.digital/errors/not-found","title":"Not Found","status":404,"detail":"Resource not found."}}}},"ContentTypeUnsupported":{"description":"The request Content-Type is not supported (415).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"},"example":{"type":"https://api.arelis.digital/errors/content-type-unsupported","title":"Unsupported Media Type","status":415,"detail":"Content-Type must be application/json."}}}},"QuotaExceeded":{"description":"Rate limit or usage quota exceeded (429). Retry after the indicated period.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"},"example":{"type":"https://api.arelis.digital/errors/quota-exceeded","title":"Quota Exceeded","status":429,"detail":"Audit event quota exceeded."}}}},"RateLimitExceeded":{"description":"Too many requests in a given time window (429).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"},"example":{"type":"https://api.arelis.digital/errors/rate-limit-exceeded","title":"Rate Limit Exceeded","status":429,"detail":"Too many requests. Please retry after 60 seconds."}}}},"InternalError":{"description":"An unexpected server error occurred (500).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"},"example":{"type":"https://api.arelis.digital/errors/internal-error","title":"Internal Server Error","status":500,"detail":"An unexpected error occurred. Please try again later."}}}},"ServiceUnavailable":{"description":"The service is temporarily unavailable (503).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"},"example":{"type":"https://api.arelis.digital/errors/service-unavailable","title":"Service Unavailable","status":503,"detail":"The service is temporarily unavailable. Please try again later."}}}}}}}