{"openapi":"3.1.0","info":{"title":"Vargate Gateway","description":"AI agent supervision proxy. Intercepts autonomous agent tool calls, evaluates them against OPA/Rego governance policy, logs every decision to a hash-chained audit trail, and anchors Merkle tree roots to blockchain. Implements AGCS v0.9 (Agent Governance Certification Standard).","version":"1.0.0"},"paths":{"/policy/templates":{"get":{"tags":["Policy"],"summary":"List Policy Templates","description":"List available policy templates with their configurable parameters.","operationId":"list_policy_templates_policy_templates_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/policy/rules":{"get":{"tags":["Policy"],"summary":"Policy Rules","description":"Parse active OPA policy files and return structured rule descriptions.","operationId":"policy_rules_policy_rules_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/bundles/vargate/status":{"get":{"tags":["Policy"],"summary":"Bundle Status Proxy","description":"Proxy bundle status from the bundle server. Returns current policy bundle revision and hash.","operationId":"bundle_status_proxy_bundles_vargate_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/mcp/tools/call":{"post":{"tags":["Tool Calls"],"summary":"Tool Call","description":"Submit an agent tool call for governance evaluation.\n\nThe proxy evaluates the action against OPA policy, checks gateway\nconstraints, logs the decision to the hash-chained audit trail,\nand returns allow/deny/escalate with violation details.","operationId":"tool_call_mcp_tools_call_post","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolCallRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agents/{agent_id}/history":{"delete":{"tags":["Audit"],"summary":"Clear Agent History","description":"Clear behavioral history for an agent. Used by test scripts.","operationId":"clear_agent_history_agents__agent_id__history_delete","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agents/{agent_id}/anomaly_score":{"get":{"tags":["Audit"],"summary":"Agent Anomaly Score","description":"Get current anomaly score for an agent.","operationId":"agent_anomaly_score_agents__agent_id__anomaly_score_get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agents/{agent_id}/counters":{"delete":{"tags":["Audit"],"summary":"Clear Agent Counters","description":"Clear counters and actions but keep anomaly_score. Used by test scripts.","operationId":"clear_agent_counters_agents__agent_id__counters_delete","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/health":{"get":{"tags":["System"],"summary":"Health","description":"Check gateway health including Redis, blockchain, and Merkle tree status.","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}},"/metrics":{"get":{"tags":["System"],"summary":"Metrics Endpoint","description":"Prometheus metrics endpoint. Unauthenticated — only accessible from internal Docker network.","operationId":"metrics_endpoint_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/backup/trigger":{"post":{"tags":["System"],"summary":"Trigger Backup","description":"Trigger an immediate SQLite backup. Requires authentication. Rate-limited to 2/min.","operationId":"trigger_backup_backup_trigger_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/verify":{"get":{"tags":["Audit"],"summary":"Audit Verify","description":"Verify the hash chain integrity of the tenant's audit log.","operationId":"audit_verify_audit_verify_get","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/log":{"get":{"tags":["Audit"],"summary":"Audit Log","description":"Retrieve recent audit log records for the authenticated tenant.","operationId":"audit_log_audit_log_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"default":200,"title":"Limit"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/tamper-simulate":{"post":{"tags":["Audit"],"summary":"Tamper Simulate","description":"DEMO ONLY: Simulate tampering with an audit record to demonstrate chain verification.","operationId":"tamper_simulate_audit_tamper_simulate_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TamperRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/tamper-restore":{"post":{"tags":["Audit"],"summary":"Tamper Restore","description":"DEMO ONLY: Restore tampered records to their original hashes.","operationId":"tamper_restore_audit_tamper_restore_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/erase/{subject_id}":{"post":{"tags":["Audit"],"summary":"Erase Subject","description":"GDPR right-to-erasure: delete the subject's HSM key, making encrypted PII irrecoverable.","operationId":"erase_subject_audit_erase__subject_id__post","parameters":[{"name":"subject_id","in":"path","required":true,"schema":{"type":"string","title":"Subject Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/erase/{subject_id}/verify":{"get":{"tags":["Audit"],"summary":"Verify Erasure","description":"Verify that crypto-shredding was successful for a given subject.","operationId":"verify_erasure_audit_erase__subject_id__verify_get","parameters":[{"name":"subject_id","in":"path","required":true,"schema":{"type":"string","title":"Subject Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/subjects":{"get":{"tags":["Audit"],"summary":"List Subjects","description":"List all PII subjects with encrypted records in the audit log.","operationId":"list_subjects_audit_subjects_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/hsm/keys":{"post":{"tags":["Credentials"],"summary":"Proxy Hsm Create Key","description":"Create an HSM encryption key for a data subject.","operationId":"proxy_hsm_create_key_hsm_keys_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Req"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Credentials"],"summary":"Proxy Hsm List Keys","description":"List all HSM keys.","operationId":"proxy_hsm_list_keys_hsm_keys_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/hsm/encrypt":{"post":{"tags":["Credentials"],"summary":"Proxy Hsm Encrypt","description":"Encrypt data using an HSM-managed key.","operationId":"proxy_hsm_encrypt_hsm_encrypt_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Req"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/hsm/decrypt":{"post":{"tags":["Credentials"],"summary":"Proxy Hsm Decrypt","description":"Decrypt data using an HSM-managed key.","operationId":"proxy_hsm_decrypt_hsm_decrypt_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Req"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/hsm/keys/{subject_id}/status":{"get":{"tags":["Credentials"],"summary":"Proxy Hsm Key Status","description":"Check the status of an HSM key for a data subject.","operationId":"proxy_hsm_key_status_hsm_keys__subject_id__status_get","parameters":[{"name":"subject_id","in":"path","required":true,"schema":{"type":"string","title":"Subject Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/hsm/keys/{subject_id}":{"delete":{"tags":["Credentials"],"summary":"Proxy Hsm Delete Key","description":"Delete an HSM key (crypto-shredding).","operationId":"proxy_hsm_delete_key_hsm_keys__subject_id__delete","parameters":[{"name":"subject_id","in":"path","required":true,"schema":{"type":"string","title":"Subject Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/credentials/register":{"post":{"tags":["Credentials"],"summary":"Register Credential","description":"Register a tool credential in the HSM vault for brokered execution.","operationId":"register_credential_credentials_register_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterCredentialRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/credentials":{"get":{"tags":["Credentials"],"summary":"List Credentials","description":"List registered tool credentials (metadata only, not values).","operationId":"list_credentials_credentials_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/credentials/{tool_id}/{name}":{"delete":{"tags":["Credentials"],"summary":"Delete Credential","description":"Remove a tool credential from the vault.","operationId":"delete_credential_credentials__tool_id___name__delete","parameters":[{"name":"tool_id","in":"path","required":true,"schema":{"type":"string","title":"Tool Id"}},{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/credentials/{tool_id}/status":{"get":{"tags":["Credentials"],"summary":"Credential Status","description":"Check registration status of a tool credential.","operationId":"credential_status_credentials__tool_id__status_get","parameters":[{"name":"tool_id","in":"path","required":true,"schema":{"type":"string","title":"Tool Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/credentials/access-log":{"get":{"tags":["Credentials"],"summary":"Credential Access Log","description":"View the credential access log (which credentials were used and when).","operationId":"credential_access_log_credentials_access_log_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/replay":{"post":{"tags":["Audit"],"summary":"Audit Replay","description":"Replay a single audit record against current OPA policy to check decision consistency.","operationId":"audit_replay_audit_replay_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplayRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/replay-bulk":{"post":{"tags":["Audit"],"summary":"Audit Replay Bulk","description":"Replay multiple recent records against current policy for bulk verification.","operationId":"audit_replay_bulk_audit_replay_bulk_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkReplayRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/anchor/trigger":{"post":{"tags":["Blockchain"],"summary":"Trigger Anchor","description":"Trigger an immediate Merkle anchor to Sepolia (or fallback to legacy).","operationId":"trigger_anchor_anchor_trigger_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/anchor/verify":{"get":{"tags":["Blockchain"],"summary":"Verify Anchor","description":"Verify current Merkle root against latest on-chain anchor.","operationId":"verify_anchor_anchor_verify_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/anchor/proof/{action_id}":{"get":{"tags":["Blockchain"],"summary":"Anchor Proof","description":"Get a Merkle inclusion proof for a specific audit record (AG-2.3).","operationId":"anchor_proof_anchor_proof__action_id__get","parameters":[{"name":"action_id","in":"path","required":true,"schema":{"type":"string","title":"Action Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/anchor/chain-verify":{"get":{"tags":["Blockchain"],"summary":"Verify Anchor Chain","description":"Verify the hash chain between successive Merkle roots.","operationId":"verify_anchor_chain_anchor_chain_verify_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/merkle/roots":{"get":{"tags":["Blockchain"],"summary":"Get Merkle Roots","description":"Return all locally-recorded Merkle roots.","operationId":"get_merkle_roots_merkle_roots_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/audit/merkle/roots":{"get":{"tags":["Blockchain"],"summary":"Audit Merkle Roots","description":"Get Merkle tree roots for the tenant's audit records.","operationId":"audit_merkle_roots_audit_merkle_roots_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"default":100,"title":"Limit"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/merkle/proof/{record_hash}":{"get":{"tags":["Blockchain"],"summary":"Audit Merkle Proof","description":"Get a Merkle inclusion proof for a specific audit record hash.","operationId":"audit_merkle_proof_audit_merkle_proof__record_hash__get","parameters":[{"name":"record_hash","in":"path","required":true,"schema":{"type":"string","title":"Record Hash"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/merkle/consistency/{tree_n}/{tree_m}":{"get":{"tags":["Blockchain"],"summary":"Audit Merkle Consistency","description":"Verify consistency between two Merkle trees.","operationId":"audit_merkle_consistency_audit_merkle_consistency__tree_n___tree_m__get","parameters":[{"name":"tree_n","in":"path","required":true,"schema":{"type":"integer","title":"Tree N"}},{"name":"tree_m","in":"path","required":true,"schema":{"type":"integer","title":"Tree M"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audit/merkle/verify":{"get":{"tags":["Blockchain"],"summary":"Audit Merkle Verify","description":"Verify the overall Merkle tree integrity.","operationId":"audit_merkle_verify_audit_merkle_verify_get","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/anchor/consistency-proof":{"get":{"tags":["Blockchain"],"summary":"Consistency Proof","description":"Consistency proof between two anchor indices.","operationId":"consistency_proof_anchor_consistency_proof_get","parameters":[{"name":"from_anchor_index","in":"query","required":true,"schema":{"type":"integer","title":"From Anchor Index"}},{"name":"to_anchor_index","in":"query","required":true,"schema":{"type":"integer","title":"To Anchor Index"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/anchor/log":{"get":{"tags":["Blockchain"],"summary":"Get Anchor Log","description":"Return all Merkle anchor records with explorer URLs.","operationId":"get_anchor_log_anchor_log_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/anchor/status":{"get":{"tags":["Blockchain"],"summary":"Anchor Status","description":"Status of blockchain anchoring systems (multi-chain).","operationId":"anchor_status_anchor_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/tenants":{"post":{"tags":["Tenants"],"summary":"Create Tenant","description":"Create a new tenant with API key. Requires existing tenant auth.","operationId":"create_tenant_tenants_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTenantRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Tenants"],"summary":"List Tenants","description":"List all tenants. Admin endpoint.","operationId":"list_tenants_tenants_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tenants/{tenant_id}":{"get":{"tags":["Tenants"],"summary":"Get Tenant Info","description":"Get tenant details by ID.","operationId":"get_tenant_info_tenants__tenant_id__get","parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/me":{"get":{"tags":["Tenants"],"summary":"Dashboard Me","description":"Get dashboard data for the authenticated tenant including audit stats and chain health.","operationId":"dashboard_me_dashboard_me_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/settings":{"patch":{"tags":["Tenants"],"summary":"Update Tenant Settings","description":"Update tenant settings (name, slug, public dashboard, rate limits).","operationId":"update_tenant_settings_dashboard_settings_patch","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantSettingsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/webhooks/test":{"post":{"tags":["Tenants"],"summary":"Test Webhook","description":"Send a test webhook to the tenant's configured URL.","operationId":"test_webhook_webhooks_test_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/public/{slug}":{"get":{"tags":["Tenants"],"summary":"Public Dashboard","description":"Get public dashboard data for a tenant (if enabled). No auth required.","operationId":"public_dashboard_dashboard_public__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals":{"get":{"tags":["Approval Queue"],"summary":"List Pending Approvals","description":"List actions awaiting human approval for the authenticated tenant.","operationId":"list_pending_approvals_approvals_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approvals/history":{"get":{"tags":["Approval Queue"],"summary":"Approval History","description":"List completed approval decisions (approved/rejected) for the tenant.","operationId":"approval_history_approvals_history_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/approve/{action_id}":{"post":{"tags":["Approval Queue"],"summary":"Approve Action","description":"Approve a pending action. Executes via brokered execution if credentials are available.","operationId":"approve_action_approve__action_id__post","parameters":[{"name":"action_id","in":"path","required":true,"schema":{"type":"string","title":"Action Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalRequest","default":{"note":""}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/reject/{action_id}":{"post":{"tags":["Approval Queue"],"summary":"Reject Action","description":"Reject a pending action with an optional reason.","operationId":"reject_action_reject__action_id__post","parameters":[{"name":"action_id","in":"path","required":true,"schema":{"type":"string","title":"Action Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalRequest","default":{"note":""}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/transparency":{"get":{"tags":["Tenants"],"summary":"Transparency Global","description":"Public transparency stats across all tenants.","operationId":"transparency_global_transparency_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/transparency/{tenant_id}":{"get":{"tags":["Tenants"],"summary":"Transparency Tenant","description":"Public transparency stats for a specific tenant.","operationId":"transparency_tenant_transparency__tenant_id__get","parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/gtm/stats":{"get":{"tags":["Tenants"],"summary":"Gtm Stats","description":"GTM agent constraint statistics (blocked domains, daily cap, cooldown events).","operationId":"gtm_stats_gtm_stats_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/signup":{"post":{"tags":["Auth"],"summary":"Email Signup","description":"Sign up with email. Sends a verification link. On verification, a tenant and API key are provisioned.","operationId":"email_signup_auth_signup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailSignupRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/verify-email":{"get":{"tags":["Auth"],"summary":"Verify Email","description":"Verify email address from signup link. Provisions tenant, user, and API key on success.","operationId":"verify_email_auth_verify_email_get","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/github":{"get":{"tags":["Auth"],"summary":"Github Login","description":"Redirect to GitHub OAuth authorization page.","operationId":"github_login_auth_github_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/github/callback":{"get":{"tags":["Auth"],"summary":"Github Callback","description":"GitHub OAuth callback. Exchanges code for token, provisions or links user account.","operationId":"github_callback_auth_github_callback_get","parameters":[{"name":"code","in":"query","required":true,"schema":{"type":"string","title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","default":"","title":"State"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/session":{"post":{"tags":["Auth"],"summary":"Create Session","description":"Exchange API key for a JWT session token.","operationId":"create_session_auth_session_post","parameters":[{"name":"x-api-key","in":"header","required":true,"schema":{"type":"string","title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api-keys/rotate":{"post":{"tags":["Auth"],"summary":"Rotate Api Key","description":"Rotate the current API key. Returns a new key; the old one is invalidated.","operationId":"rotate_api_key_api_keys_rotate_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/my-tenants":{"get":{"tags":["Auth"],"summary":"List My Tenants","description":"List all tenants the authenticated user belongs to.","operationId":"list_my_tenants_auth_my_tenants_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/switch-tenant":{"post":{"tags":["Auth"],"summary":"Switch Tenant","description":"Switch active tenant context. Returns a new session token scoped to the target tenant.","operationId":"switch_tenant_auth_switch_tenant_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/compliance/export/{tenant_id}":{"get":{"tags":["Compliance"],"summary":"Export Compliance","description":"Export a compliance package for a tenant's audit trail.\n\nReturns a verifiable bundle containing audit records, chain verification,\nMerkle proofs, blockchain anchors, and policy snapshot. Supports JSON\nand PDF output formats. AGCS AG-2.8 compliance artifact.","operationId":"export_compliance_compliance_export__tenant_id__get","parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","pattern":"^(json|pdf)$","default":"json","title":"Format"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","default":"2020-01-01","title":"From"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","title":"To"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-vargate-public-tenant","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vargate-Public-Tenant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"ApprovalRequest":{"properties":{"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note","default":""}},"type":"object","title":"ApprovalRequest"},"BulkReplayRequest":{"properties":{"count":{"type":"integer","title":"Count","default":10}},"type":"object","title":"BulkReplayRequest"},"ContextOverride":{"properties":{"is_business_hours":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Business Hours"}},"type":"object","title":"ContextOverride"},"CreateTenantRequest":{"properties":{"tenant_id":{"type":"string","title":"Tenant Id"},"name":{"type":"string","title":"Name"},"rate_limit_rps":{"type":"integer","title":"Rate Limit Rps","default":10},"rate_limit_burst":{"type":"integer","title":"Rate Limit Burst","default":20}},"type":"object","required":["tenant_id","name"],"title":"CreateTenantRequest"},"EmailSignupRequest":{"properties":{"email":{"type":"string","title":"Email"},"name":{"type":"string","title":"Name"}},"type":"object","required":["email","name"],"title":"EmailSignupRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status"},"service":{"type":"string","title":"Service"},"redis":{"type":"boolean","title":"Redis"},"blockchain":{"type":"boolean","title":"Blockchain"},"connected_chains":{"items":{"type":"string"},"type":"array","title":"Connected Chains"},"merkle_trees":{"type":"boolean","title":"Merkle Trees"},"merkle_tree_count":{"type":"integer","title":"Merkle Tree Count"},"sepolia_merkle":{"type":"boolean","title":"Sepolia Merkle"}},"type":"object","required":["status","service","redis","blockchain","connected_chains","merkle_trees","merkle_tree_count","sepolia_merkle"],"title":"HealthResponse","description":"Gateway health status including all dependency checks."},"RegisterCredentialRequest":{"properties":{"tool_id":{"type":"string","title":"Tool Id"},"name":{"type":"string","title":"Name"},"value":{"type":"string","title":"Value"}},"type":"object","required":["tool_id","name","value"],"title":"RegisterCredentialRequest"},"ReplayRequest":{"properties":{"action_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action Id"},"record_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Record Number"},"last_block":{"type":"boolean","title":"Last Block","default":false}},"type":"object","title":"ReplayRequest"},"TamperRequest":{"properties":{"record_number":{"type":"integer","title":"Record Number"}},"type":"object","required":["record_number"],"title":"TamperRequest"},"TenantSettingsRequest":{"properties":{"public_dashboard":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Public Dashboard"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"anchor_chain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Anchor Chain"},"policy_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Policy Template"},"policy_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Policy Config"},"webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Url"},"webhook_events":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Webhook Events"},"failure_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Failure Config"}},"type":"object","title":"TenantSettingsRequest"},"ToolCallRequest":{"properties":{"agent_id":{"type":"string","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9_\\-\\.]+$","title":"Agent Id"},"agent_type":{"type":"string","maxLength":64,"title":"Agent Type","default":"unknown"},"agent_version":{"type":"string","maxLength":32,"pattern":"^\\d+\\.\\d+\\.\\d+.*$","title":"Agent Version","default":"0.0.0"},"tool":{"type":"string","maxLength":256,"minLength":1,"pattern":"^[a-zA-Z0-9_\\-\\.:/]+$","title":"Tool"},"method":{"type":"string","maxLength":128,"minLength":1,"pattern":"^[a-zA-Z0-9_\\-\\.]+$","title":"Method"},"params":{"additionalProperties":true,"type":"object","title":"Params","default":{}},"context_override":{"anyOf":[{"$ref":"#/components/schemas/ContextOverride"},{"type":"null"}]}},"type":"object","required":["agent_id","tool","method"],"title":"ToolCallRequest","examples":[{"agent_id":"my-agent-v1","agent_type":"autonomous","agent_version":"1.0.0","method":"GET","params":{"headers":{"Accept":"application/json"},"url":"https://api.example.com/data"},"tool":"http"}]},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"tags":[{"name":"Tool Calls","description":"Core proxy endpoint — submit agent tool calls for governance evaluation"},{"name":"Auth","description":"Signup, email verification, GitHub OAuth, sessions, API key rotation"},{"name":"Tenants","description":"Tenant CRUD, dashboard settings, public dashboard"},{"name":"Approval Queue","description":"Human-in-the-loop approval workflow for flagged actions"},{"name":"Audit","description":"Hash-chained audit log, verification, GDPR erasure, replay"},{"name":"Blockchain","description":"Merkle tree anchoring, proofs, verification, multi-chain status"},{"name":"Credentials","description":"HSM-backed credential vault for agent-blind brokered execution"},{"name":"Policy","description":"OPA policy rules and bundle status"},{"name":"System","description":"Health check, backup, metrics"}]}