{ "openapi": "3.1.0", "info": { "title": "Wanaku API", "description": "Wanaku MCP proxy management API", "license": { "name": "Apache-2.0", "identifier": "Apache-2.0" }, "version": "0.3.0" }, "paths": { "/api/v1/action-policies": { "get": { "tags": [ "Action Policies" ], "operationId": "get_effective_action_policy", "responses": { "200": { "description": "Effective action policy", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_ActionPolicyRevisionResponse" } } } }, "404": { "description": "No action policy configured", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } }, "put": { "tags": [ "Action Policies" ], "operationId": "update_action_policy", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateActionPolicyRequest" } } }, "required": true }, "responses": { "200": { "description": "Action policy revision created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_ActionPolicyRevisionResponse" } } } }, "400": { "description": "Invalid action policy", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "409": { "description": "Revision conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "422": { "description": "Action policy rejected", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } } }, "/api/v1/action-policies/revisions": { "get": { "tags": [ "Action Policies" ], "operationId": "list_action_policy_revisions", "responses": { "200": { "description": "Action policy revision history", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_Vec_RevisionMetadata" } } } } } } }, "/api/v1/action-policies/revisions/active": { "get": { "tags": [ "Action Policies" ], "operationId": "get_active_action_policy_revision", "responses": { "200": { "description": "Active action policy revision", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_ActionPolicyRevisionResponse" } } } }, "404": { "description": "No active action policy revision", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } } }, "/api/v1/action-policies/revisions/{id}": { "get": { "tags": [ "Action Policies" ], "operationId": "get_action_policy_revision", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64", "minimum": 0 } } ], "responses": { "200": { "description": "Action policy revision", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_ActionPolicyRevisionResponse" } } } }, "404": { "description": "Action policy revision not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } } }, "/api/v1/action-policies/revisions/{id}/activate": { "post": { "tags": [ "Action Policies" ], "operationId": "activate_action_policy_revision", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64", "minimum": 0 } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActivateRevisionRequest" } } } }, "responses": { "200": { "description": "Action policy revision activated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_ActionPolicyRevisionResponse" } } } }, "400": { "description": "Invalid activation request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "404": { "description": "Action policy revision not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "409": { "description": "Revision conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "422": { "description": "Action policy revision rejected", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } } }, "/api/v1/agents": { "get": { "tags": [ "Agents" ], "operationId": "list_agents", "parameters": [ { "name": "namespace", "in": "query", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Agent operation completed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_Vec_AgentView" } } } }, "400": { "description": "Invalid agent", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "404": { "description": "Agent not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "409": { "description": "Agent already exists", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } }, "post": { "tags": [ "Agents" ], "operationId": "create_agent", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentEntry" } } }, "required": true }, "responses": { "200": { "description": "Agent operation completed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_AgentView" } } } }, "400": { "description": "Invalid agent", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "404": { "description": "Agent not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "409": { "description": "Agent already exists", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } } }, "/api/v1/agents/{namespace}/{name}": { "get": { "tags": [ "Agents" ], "operationId": "get_agent", "parameters": [ { "name": "namespace", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Agent operation completed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_AgentView" } } } }, "400": { "description": "Invalid agent", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "404": { "description": "Agent not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "409": { "description": "Agent already exists", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } }, "put": { "tags": [ "Agents" ], "operationId": "update_agent", "parameters": [ { "name": "namespace", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentEntry" } } }, "required": true }, "responses": { "200": { "description": "Agent operation completed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_AgentView" } } } }, "400": { "description": "Invalid agent", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "404": { "description": "Agent not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "409": { "description": "Agent already exists", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } }, "delete": { "tags": [ "Agents" ], "operationId": "delete_agent", "parameters": [ { "name": "namespace", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Agent operation completed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_Value" } } } }, "400": { "description": "Invalid agent", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "404": { "description": "Agent not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "409": { "description": "Agent already exists", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } } }, "/api/v1/audit/events": { "get": { "tags": [ "Audit" ], "operationId": "list_audit_events", "parameters": [ { "name": "from", "in": "query", "description": "Inclusive ISO 8601 start time", "required": false, "schema": { "type": "string" } }, { "name": "to", "in": "query", "description": "Inclusive ISO 8601 end time", "required": false, "schema": { "type": "string" } }, { "name": "namespace", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "actor", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "operation", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "target", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "decision", "in": "query", "required": false, "schema": { "$ref": "#/components/schemas/AuditDecision" } }, { "name": "reason_code", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "correlation_id", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0 } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0 } } ], "responses": { "200": { "description": "Audit event page", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_AuditPage" } } } } } } }, "/api/v1/audit/events/{id}": { "get": { "tags": [ "Audit" ], "operationId": "get_audit_event", "parameters": [ { "name": "id", "in": "path", "description": "Audit event ID", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Audit event", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_AuditEvent" } } } }, "404": { "description": "Audit event not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } } }, "/api/v1/audit/health": { "get": { "tags": [ "Audit" ], "operationId": "get_audit_health", "responses": { "200": { "description": "Audit store health", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_AuditHealth" } } } } } } }, "/api/v1/audit/schema": { "get": { "tags": [ "Audit" ], "operationId": "get_audit_schema", "responses": { "200": { "description": "Audit schema version", "content": { "application/json": { "schema": {} } } } } } }, "/api/v1/bindings": { "get": { "tags": [ "Bindings" ], "operationId": "list_bindings", "responses": { "200": { "description": "List all credential bindings (non-secret metadata only)", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/CredentialBinding" } } } } } } } }, "/api/v1/bindings/{id}": { "get": { "tags": [ "Bindings" ], "operationId": "get_binding", "parameters": [ { "name": "id", "in": "path", "description": "Credential binding id", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Binding found (non-secret metadata only)", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CredentialBinding" } } } }, "404": { "description": "Binding not found" } } } }, "/api/v1/evaluators": { "get": { "tags": [ "Evaluators" ], "operationId": "list_evaluators", "responses": { "200": { "description": "Configured evaluators", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_Vec_EvaluatorDef" } } } } } }, "put": { "tags": [ "Evaluators" ], "operationId": "update_evaluators", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateEvaluatorsRequest" } } }, "required": true }, "responses": { "200": { "description": "Evaluator revision created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_EvaluatorRevisionResponse" } } } }, "400": { "description": "Invalid evaluator configuration", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "409": { "description": "Revision conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "422": { "description": "Evaluator configuration rejected", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } } }, "/api/v1/evaluators/llm-connections": { "get": { "tags": [ "Evaluators" ], "operationId": "list_evaluator_llm_connections", "responses": { "200": { "description": "Evaluator LLM connection names", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_Vec_String" } } } } } } }, "/api/v1/evaluators/namespaces": { "get": { "tags": [ "Evaluators" ], "operationId": "list_evaluator_bindings", "responses": { "200": { "description": "Namespace to evaluator bindings", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_HashMap_String_String" } } } } } } }, "/api/v1/evaluators/namespaces/{namespace}": { "put": { "tags": [ "Evaluators" ], "operationId": "bind_evaluator_namespace", "parameters": [ { "name": "namespace", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BindNamespaceRequest" } } }, "required": true }, "responses": { "200": { "description": "Namespace bound to evaluator", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_NamespaceBinding" } } } }, "400": { "description": "Invalid namespace binding", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } }, "delete": { "tags": [ "Evaluators" ], "operationId": "unbind_evaluator_namespace", "parameters": [ { "name": "namespace", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Namespace unbound from evaluator", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_UnbindNamespaceResponse" } } } } } } }, "/api/v1/evaluators/revisions": { "get": { "tags": [ "Evaluators" ], "operationId": "list_evaluator_revisions", "responses": { "200": { "description": "Evaluator revision history", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_Vec_RevisionMetadata" } } } } } } }, "/api/v1/evaluators/revisions/active": { "get": { "tags": [ "Evaluators" ], "operationId": "get_active_evaluator_revision", "responses": { "200": { "description": "Active evaluator revision", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_EvaluatorRevisionResponse" } } } }, "404": { "description": "No active evaluator revision", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } } }, "/api/v1/evaluators/revisions/{id}": { "get": { "tags": [ "Evaluators" ], "operationId": "get_evaluator_revision", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64", "minimum": 0 } } ], "responses": { "200": { "description": "Evaluator revision", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_EvaluatorRevisionResponse" } } } }, "404": { "description": "Evaluator revision not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } } }, "/api/v1/evaluators/revisions/{id}/activate": { "post": { "tags": [ "Evaluators" ], "operationId": "activate_evaluator_revision", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64", "minimum": 0 } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActivateRevisionRequest" } } } }, "responses": { "200": { "description": "Evaluator revision activated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_EvaluatorRevisionResponse" } } } }, "400": { "description": "Invalid activation request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "404": { "description": "Evaluator revision not found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "409": { "description": "Revision conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "422": { "description": "Evaluator revision rejected", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } } }, "/api/v1/evaluators/status": { "get": { "tags": [ "Evaluators" ], "operationId": "get_evaluator_status", "parameters": [ { "name": "namespace", "in": "query", "description": "Namespace name; defaults to default", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Evaluator status", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_EvaluatorStatus" } } } } } } }, "/api/v1/forwards": { "get": { "tags": [ "Forwards" ], "operationId": "list_forwards", "responses": { "200": { "description": "List all forwards", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ForwardEntry" } } } } } } }, "post": { "tags": [ "Forwards" ], "operationId": "create_forward", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ForwardEntry" } } }, "required": true }, "responses": { "200": { "description": "Forward created and tools discovered", "content": { "application/json": { "schema": {} } } } } } }, "/api/v1/forwards/{name}": { "get": { "tags": [ "Forwards" ], "operationId": "get_forward", "parameters": [ { "name": "name", "in": "path", "description": "Forward name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Forward found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ForwardEntry" } } } }, "404": { "description": "Forward not found" } } }, "delete": { "tags": [ "Forwards" ], "operationId": "delete_forward", "parameters": [ { "name": "name", "in": "path", "description": "Forward name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Forward removed" }, "404": { "description": "Forward not found" } } } }, "/api/v1/forwards/{name}/refreshes": { "post": { "tags": [ "Forwards" ], "operationId": "refresh_forward", "parameters": [ { "name": "name", "in": "path", "description": "Forward name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Forward refreshed", "content": { "application/json": { "schema": {} } } }, "404": { "description": "Forward not found" } } } }, "/api/v1/management/info": { "get": { "tags": [ "Management" ], "operationId": "get_info", "responses": { "200": { "description": "Server name and version", "content": { "application/json": { "schema": {} } } } } } }, "/api/v1/management/statistics": { "get": { "tags": [ "Management" ], "operationId": "get_statistics", "responses": { "200": { "description": "Registry statistics", "content": { "application/json": { "schema": {} } } } } } }, "/api/v1/metrics": { "get": { "tags": [ "Metrics" ], "operationId": "get_metrics", "responses": { "200": { "description": "Metrics snapshot", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MetricsSnapshot" } } } } } } }, "/api/v1/namespaces": { "get": { "tags": [ "Namespaces" ], "operationId": "list_namespaces", "responses": { "200": { "description": "List all namespaces", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NamespaceEntry" } } } } } } }, "post": { "tags": [ "Namespaces" ], "operationId": "create_namespace", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NamespaceEntry" } } }, "required": true }, "responses": { "200": { "description": "Namespace registered", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NamespaceEntry" } } } }, "400": { "description": "Invalid namespace name" } } } }, "/api/v1/namespaces/{name}": { "get": { "tags": [ "Namespaces" ], "operationId": "get_namespace", "parameters": [ { "name": "name", "in": "path", "description": "Namespace name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Namespace found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NamespaceEntry" } } } }, "404": { "description": "Namespace not found" } } }, "delete": { "tags": [ "Namespaces" ], "operationId": "delete_namespace", "parameters": [ { "name": "name", "in": "path", "description": "Namespace name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Namespace removed" }, "404": { "description": "Namespace not found" } } } }, "/api/v1/plugins": { "get": { "tags": [ "Plugins" ], "operationId": "list_plugins", "responses": { "200": { "description": "List discovered plugins", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_Vec_PluginManifest" } } } } } } }, "/api/v1/plugins/catalog": { "get": { "tags": [ "Plugins" ], "operationId": "list_plugin_catalog", "responses": { "200": { "description": "Available plugins", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_Vec_PluginCatalogEntry" } } } }, "502": { "description": "Catalog unavailable or invalid", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } } }, "/api/v1/plugins/install": { "post": { "tags": [ "Plugins" ], "operationId": "install_plugin", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InstallPluginRequest" } } }, "required": true }, "responses": { "200": { "description": "Plugin successfully installed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_InstallPluginResponse" } } } }, "400": { "description": "Invalid request or insecure archive", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "422": { "description": "Extraction or manifest error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "502": { "description": "Download failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } } }, "/api/v1/plugins/{id}/config": { "put": { "tags": [ "Plugins" ], "operationId": "configure_plugin", "parameters": [ { "name": "id", "in": "path", "description": "Plugin ID", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigurePluginRequest" } } }, "required": true }, "responses": { "200": { "description": "Configuration saved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_Value" } } } }, "400": { "description": "Invalid configuration", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "500": { "description": "Persistence failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } } }, "/api/v1/policy-simulations/replays": { "post": { "tags": [ "Policy Simulations" ], "operationId": "start_policy_replay", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReplayRequest" } } }, "required": true }, "responses": { "202": { "description": "Bounded replay job accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_ReplayJob" } } } }, "400": { "description": "Invalid replay request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "408": { "description": "Simulation duration exceeded", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "413": { "description": "Input or result limit exceeded", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "422": { "description": "Candidate or active configuration validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_SimulationError" } } } }, "429": { "description": "Replay capacity exhausted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "503": { "description": "Simulation state unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } } }, "/api/v1/policy-simulations/replays/{id}": { "get": { "tags": [ "Policy Simulations" ], "operationId": "get_policy_replay", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Replay status and bounded results", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_ReplayJob" } } } }, "404": { "description": "Replay not found or expired", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "503": { "description": "Simulation state unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } }, "delete": { "tags": [ "Policy Simulations" ], "operationId": "delete_policy_replay", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Replay deleted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_Value" } } } }, "404": { "description": "Replay not found or expired", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "503": { "description": "Simulation state unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } } }, "/api/v1/policy-simulations/replays/{id}/cancel": { "post": { "tags": [ "Policy Simulations" ], "operationId": "cancel_policy_replay", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Replay cancellation status", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_ReplayJob" } } } }, "404": { "description": "Replay not found or expired", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "503": { "description": "Simulation state unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } } }, "/api/v1/policy-simulations/simulate": { "post": { "tags": [ "Policy Simulations" ], "operationId": "simulate_policy_action", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SimulationRequest" } } }, "required": true }, "responses": { "200": { "description": "Side-effect-free decision report", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_SimulationReport" } } } }, "400": { "description": "Invalid action or unsupported external execution", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "408": { "description": "Simulation duration exceeded", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "413": { "description": "Input or result limit exceeded", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "422": { "description": "Candidate validation failed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_SimulationError" } } } }, "429": { "description": "Simulation capacity exhausted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "503": { "description": "Simulation state unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } } }, "/api/v1/policy-simulations/validate": { "post": { "tags": [ "Policy Simulations" ], "operationId": "validate_policy_candidate", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidationRequest" } } }, "required": true }, "responses": { "200": { "description": "Transient validation report", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WanakuResponse_ValidationReport" } } } }, "400": { "description": "Invalid request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "408": { "description": "Simulation duration exceeded", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "413": { "description": "Input or result limit exceeded", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "429": { "description": "Simulation capacity exhausted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } }, "503": { "description": "Simulation state unavailable", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ManagementErrorResponse" } } } } } } }, "/api/v1/prompts": { "get": { "tags": [ "Prompts" ], "operationId": "list_prompts", "responses": { "200": { "description": "List all prompts", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PromptEntry" } } } } } } } }, "/api/v1/prompts/{name}": { "get": { "tags": [ "Prompts" ], "operationId": "get_prompt", "parameters": [ { "name": "name", "in": "path", "description": "Prompt name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Prompt found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PromptEntry" } } } }, "404": { "description": "Prompt not found" } } }, "delete": { "tags": [ "Prompts" ], "operationId": "delete_prompt", "parameters": [ { "name": "name", "in": "path", "description": "Prompt name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Prompt removed" }, "404": { "description": "Prompt not found" } } } }, "/api/v1/prompts/{name}/disable": { "put": { "tags": [ "Prompts" ], "operationId": "disable_prompt", "parameters": [ { "name": "name", "in": "path", "description": "Prompt name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Prompt disabled. MCP clients cannot list or use it.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PromptEntry" } } } }, "404": { "description": "Prompt not found" } } } }, "/api/v1/prompts/{name}/enable": { "put": { "tags": [ "Prompts" ], "operationId": "enable_prompt", "parameters": [ { "name": "name", "in": "path", "description": "Prompt name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Prompt enabled. MCP clients can list and use it.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PromptEntry" } } } }, "404": { "description": "Prompt not found" } } } }, "/api/v1/resources": { "get": { "tags": [ "Resources" ], "operationId": "list_resources", "responses": { "200": { "description": "List all resources", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ResourceEntry" } } } } } } } }, "/api/v1/resources/{name}": { "get": { "tags": [ "Resources" ], "operationId": "get_resource", "parameters": [ { "name": "name", "in": "path", "description": "Resource name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Resource found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourceEntry" } } } }, "404": { "description": "Resource not found" } } }, "delete": { "tags": [ "Resources" ], "operationId": "delete_resource", "parameters": [ { "name": "name", "in": "path", "description": "Resource name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Resource removed" }, "404": { "description": "Resource not found" } } } }, "/api/v1/resources/{name}/disable": { "put": { "tags": [ "Resources" ], "operationId": "disable_resource", "parameters": [ { "name": "name", "in": "path", "description": "Resource name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Resource disabled. MCP clients cannot list or use it.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourceEntry" } } } }, "404": { "description": "Resource not found" } } } }, "/api/v1/resources/{name}/enable": { "put": { "tags": [ "Resources" ], "operationId": "enable_resource", "parameters": [ { "name": "name", "in": "path", "description": "Resource name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Resource enabled. MCP clients can list and use it.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourceEntry" } } } }, "404": { "description": "Resource not found" } } } }, "/api/v1/tools": { "get": { "tags": [ "Tools" ], "operationId": "list_tools", "responses": { "200": { "description": "List all tools", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ToolEntry" } } } } } } } }, "/api/v1/tools/{name}": { "get": { "tags": [ "Tools" ], "operationId": "get_tool", "parameters": [ { "name": "name", "in": "path", "description": "Tool name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Tool found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToolEntry" } } } }, "404": { "description": "Tool not found" } } }, "delete": { "tags": [ "Tools" ], "operationId": "delete_tool", "parameters": [ { "name": "name", "in": "path", "description": "Tool name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Tool removed" }, "404": { "description": "Tool not found" } } } }, "/api/v1/tools/{name}/disable": { "put": { "tags": [ "Tools" ], "operationId": "disable_tool", "parameters": [ { "name": "name", "in": "path", "description": "Tool name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Tool disabled. MCP clients cannot list or use it.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToolEntry" } } } }, "404": { "description": "Tool not found" } } } }, "/api/v1/tools/{name}/enable": { "put": { "tags": [ "Tools" ], "operationId": "enable_tool", "parameters": [ { "name": "name", "in": "path", "description": "Tool name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Tool enabled. MCP clients can list and use it.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToolEntry" } } } }, "404": { "description": "Tool not found" } } } }, "/healthz": { "get": { "tags": [ "Health" ], "operationId": "healthz", "responses": { "200": { "description": "Server is healthy", "content": { "application/json": { "schema": {} } } } } } } }, "components": { "schemas": { "ActionPolicy": { "type": "object", "description": "A complete action-policy document.", "properties": { "rules": { "type": "array", "items": { "$ref": "#/components/schemas/Rule" } } }, "additionalProperties": false }, "ActionPolicyRevisionResponse": { "type": "object", "required": [ "revision", "policy" ], "properties": { "policy": { "$ref": "#/components/schemas/ActionPolicy" }, "revision": { "$ref": "#/components/schemas/RevisionMetadata" } } }, "ActivateRevisionRequest": { "type": "object", "properties": { "expected_revision": { "type": [ "integer", "null" ], "format": "int64", "minimum": 0 } } }, "ActivationStatus": { "type": "string", "enum": [ "active", "superseded", "rejected" ] }, "AgentEntry": { "type": "object", "required": [ "name", "address" ], "properties": { "address": { "type": "string" }, "cardAddress": { "type": [ "string", "null" ] }, "description": { "type": "string" }, "name": { "type": "string" }, "namespace": { "type": "string" } }, "additionalProperties": false }, "AgentView": { "type": "object", "required": [ "name", "description", "namespace", "address", "proxyUrl" ], "properties": { "address": { "type": "string" }, "cardAddress": { "type": [ "string", "null" ] }, "description": { "type": "string" }, "name": { "type": "string" }, "namespace": { "type": "string" }, "proxyUrl": { "type": "string" } } }, "AuditCategory": { "type": "string", "enum": [ "decision", "administrative" ] }, "AuditDecision": { "type": "string", "enum": [ "allow", "block", "warn", "reject_malformed", "error" ] }, "AuditEvent": { "type": "object", "required": [ "schema_version", "event_id", "stream_id", "sequence", "timestamp", "category", "decision", "correlation_id", "protocol", "operation", "reason_code", "explanation", "redaction", "attributes", "coverage_complete", "dropped_events" ], "properties": { "actor": { "type": [ "string", "null" ] }, "attributes": { "type": "object", "additionalProperties": {}, "propertyNames": { "type": "string" } }, "audience": { "type": [ "string", "null" ] }, "category": { "$ref": "#/components/schemas/AuditCategory" }, "conversation_id": { "type": [ "string", "null" ] }, "correlation_id": { "type": "string" }, "coverage_complete": { "type": "boolean" }, "decision": { "$ref": "#/components/schemas/AuditDecision" }, "dropped_events": { "type": "integer", "format": "int64", "minimum": 0 }, "duration_ms": { "type": [ "integer", "null" ], "format": "int64", "minimum": 0 }, "evaluator": { "type": [ "string", "null" ] }, "event_id": { "type": "string" }, "explanation": { "type": "string" }, "filter": { "type": [ "string", "null" ] }, "namespace": { "type": [ "string", "null" ] }, "operation": { "type": "string" }, "payload": {}, "policy_revision": { "type": [ "string", "null" ] }, "protocol": { "type": "string" }, "reason_code": { "type": "string" }, "redaction": { "$ref": "#/components/schemas/RedactionMetadata" }, "request_id": { "type": [ "string", "null" ] }, "response_status": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 }, "schema_version": { "type": "string" }, "sequence": { "type": "integer", "format": "int64", "minimum": 0 }, "stream_id": { "type": "string" }, "target": { "type": [ "string", "null" ] }, "target_type": { "type": [ "string", "null" ] }, "timestamp": { "type": "string" }, "upstream_id": { "type": [ "string", "null" ] }, "workload": { "type": [ "string", "null" ] } } }, "AuditHealth": { "type": "object", "required": [ "healthy", "dropped_events", "retained_events", "capacity" ], "properties": { "capacity": { "type": "integer", "minimum": 0 }, "dropped_events": { "type": "integer", "format": "int64", "minimum": 0 }, "healthy": { "type": "boolean" }, "last_error": { "type": [ "string", "null" ] }, "retained_events": { "type": "integer", "minimum": 0 } } }, "AuditLevel": { "type": "string", "description": "Controls whether audit mode invokes configured LLM evaluators.", "enum": [ "basic", "full" ] }, "AuditPage": { "type": "object", "required": [ "events", "offset", "limit", "total" ], "properties": { "events": { "type": "array", "items": { "$ref": "#/components/schemas/AuditEvent" } }, "limit": { "type": "integer", "minimum": 0 }, "offset": { "type": "integer", "minimum": 0 }, "total": { "type": "integer", "minimum": 0 } } }, "AuditSnapshot": { "type": "object", "required": [ "storage_failures" ], "properties": { "storage_failures": { "type": "integer", "format": "int64", "minimum": 0 } } }, "BindNamespaceRequest": { "type": "object", "required": [ "conversation_id" ], "properties": { "conversation_id": { "type": "string" } } }, "BindingRestrictions": { "type": "object", "description": "Optional restrictions that further constrain where a binding may be used.\nAn empty vector means \"no restriction on this dimension\".", "properties": { "governed_items": { "type": "array", "items": { "type": "string" }, "description": "Governed item identifiers this binding may be used for." }, "identities": { "type": "array", "items": { "type": "string" }, "description": "Authenticated identities this binding may be used for." }, "namespaces": { "type": "array", "items": { "type": "string" }, "description": "Namespaces in which this binding may be used." }, "operations": { "type": "array", "items": { "type": "string" }, "description": "MCP operations this binding may be used for." } } }, "CacheRules": { "type": "object", "description": "Cache rules for a binding's resolved credentials.", "properties": { "maxTtlSeconds": { "type": [ "integer", "null" ], "format": "int64", "description": "An explicit bounded maximum TTL, in seconds. When absent and the\nresolver supplies no expiry metadata, results are not cached.", "minimum": 0 } } }, "CandidateSelection": { "type": "object", "properties": { "base_evaluator_revision": { "type": [ "integer", "null" ], "format": "int64", "default": null, "minimum": 0 }, "base_policy_revision": { "type": [ "integer", "null" ], "format": "int64", "default": null, "minimum": 0 }, "evaluator_patch": {}, "evaluator_revision": { "type": [ "integer", "null" ], "format": "int64", "default": null, "minimum": 0 }, "evidence_ids": { "type": "array", "items": { "type": "string" }, "default": [] }, "inline_evaluators": {}, "inline_policy": {}, "policy_patch": {}, "policy_revision": { "type": [ "integer", "null" ], "format": "int64", "default": null, "minimum": 0 } }, "additionalProperties": false }, "ConfigurePluginRequest": { "type": "object", "required": [ "services" ], "properties": { "services": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/PluginServiceTarget" }, "propertyNames": { "type": "string" } } } }, "CredentialBinding": { "type": "object", "description": "A credential binding: a top-level resource operationally owned by one forward.\n\nThe binding holds only **opaque** secret references. It never stores inline\nsecret values, and management APIs expose only its non-secret metadata.", "required": [ "id", "forwardId", "origin", "mechanism", "secretRefs", "allowedPurposes" ], "properties": { "allowedPurposes": { "type": "array", "items": { "$ref": "#/components/schemas/CredentialPurpose" }, "description": "The credential purposes this binding is allowed to serve." }, "cache": { "$ref": "#/components/schemas/CacheRules", "description": "Cache rules for resolved credentials." }, "forwardId": { "type": "string", "description": "The owning forward's stable identifier (the forward name)." }, "id": { "type": "string", "description": "Stable, non-secret binding identifier." }, "mechanism": { "$ref": "#/components/schemas/InjectionMechanism", "description": "The outbound injection mechanism." }, "origin": { "$ref": "#/components/schemas/NormalizedOrigin", "description": "The exact normalized upstream origin this binding may target." }, "restrictions": { "$ref": "#/components/schemas/BindingRestrictions", "description": "Optional additional restrictions." }, "revision": { "type": "integer", "format": "int64", "description": "Monotonic binding revision. Any change to the binding must bump this so\ncached credentials for the old revision are never reused.", "minimum": 0 }, "secretRefs": { "type": "array", "items": { "$ref": "#/components/schemas/SecretRef" }, "description": "One or more opaque secret references resolved just in time." } } }, "CredentialPurpose": { "type": "string", "description": "The purpose a credential is used for. Discovery and invocation are kept\ndistinct in policy checks, resolution context, audit events, and cache keys.", "enum": [ "discovery", "invocation" ] }, "DecisionSnapshot": { "type": "object", "required": [ "pass", "block", "reject_malformed", "warn", "filter_tools", "set_metadata" ], "properties": { "block": { "type": "integer", "format": "int64", "minimum": 0 }, "filter_tools": { "type": "integer", "format": "int64", "minimum": 0 }, "pass": { "type": "integer", "format": "int64", "minimum": 0 }, "reject_malformed": { "type": "integer", "format": "int64", "minimum": 0 }, "set_metadata": { "type": "integer", "format": "int64", "minimum": 0 }, "warn": { "type": "integer", "format": "int64", "minimum": 0 } } }, "Diagnostic": { "type": "object", "required": [ "severity", "reason_code", "path" ], "properties": { "path": { "type": "string" }, "reason_code": { "type": "string" }, "severity": { "type": "string" } } }, "DurationSnapshot": { "type": "object", "required": [ "count", "total_ms", "avg_ms" ], "properties": { "avg_ms": { "type": "number", "format": "double" }, "count": { "type": "integer", "format": "int64", "minimum": 0 }, "total_ms": { "type": "number", "format": "double" } } }, "Effect": { "type": "string", "enum": [ "allow", "deny" ] }, "EnforcementMode": { "type": "string", "description": "Controls whether governance decisions affect traffic.", "enum": [ "enforce", "audit", "disabled" ] }, "EngineSnapshot": { "type": "object", "required": [ "llm_success", "llm_failure", "passthrough_success", "passthrough_failure", "typesafe_system_one_success", "typesafe_system_one_failure", "duration" ], "properties": { "duration": { "$ref": "#/components/schemas/DurationSnapshot" }, "llm_failure": { "type": "integer", "format": "int64", "minimum": 0 }, "llm_success": { "type": "integer", "format": "int64", "minimum": 0 }, "passthrough_failure": { "type": "integer", "format": "int64", "minimum": 0 }, "passthrough_success": { "type": "integer", "format": "int64", "minimum": 0 }, "typesafe_system_one_failure": { "type": "integer", "format": "int64", "minimum": 0 }, "typesafe_system_one_success": { "type": "integer", "format": "int64", "minimum": 0 } } }, "EvaluationEngine": { "oneOf": [ { "allOf": [ { "$ref": "#/components/schemas/LlmDef", "description": "LLM-assisted classification, filtering, or augmentation." }, { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "llm" ] } } } ], "description": "LLM-assisted classification, filtering, or augmentation." }, { "allOf": [ { "$ref": "#/components/schemas/SystemOneDef", "description": "TypeSafe System One typed evaluation." }, { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "typesafe-system-one" ] } } } ], "description": "TypeSafe System One typed evaluation." }, { "allOf": [ { "$ref": "#/components/schemas/OpaDef", "description": "Open Policy Agent decision through the REST Data API." }, { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "opa" ] } } } ], "description": "Open Policy Agent decision through the REST Data API." }, { "type": "object", "description": "Pass the normalized MCP context directly to the processor.", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "passthrough" ] } } } ], "description": "An evaluation implementation selected by an evaluator definition." }, "EvaluatorDef": { "type": "object", "description": "A single evaluator definition: trigger + evaluation engine + processor.", "required": [ "name", "trigger", "engine", "processor" ], "properties": { "engine": { "$ref": "#/components/schemas/EvaluationEngine", "description": "The engine that produces the processor input." }, "name": { "type": "string" }, "processor": { "$ref": "#/components/schemas/ProcessorRef" }, "trigger": { "$ref": "#/components/schemas/TriggerDef" } }, "additionalProperties": false }, "EvaluatorReadiness": { "type": "string", "description": "Runtime readiness of the active evaluator configuration.", "enum": [ "ready", "degraded", "invalid", "unconfigured", "disabled" ] }, "EvaluatorRevisionResponse": { "type": "object", "required": [ "revision", "evaluators" ], "properties": { "evaluators": { "type": "array", "items": { "$ref": "#/components/schemas/EvaluatorDef" } }, "revision": { "$ref": "#/components/schemas/RevisionMetadata" } } }, "EvaluatorSnapshot": { "type": "object", "required": [ "decisions", "engine", "llm", "schema", "wasm", "pipeline_duration" ], "properties": { "decisions": { "$ref": "#/components/schemas/DecisionSnapshot" }, "engine": { "$ref": "#/components/schemas/EngineSnapshot" }, "llm": { "$ref": "#/components/schemas/LlmSnapshot" }, "pipeline_duration": { "$ref": "#/components/schemas/DurationSnapshot" }, "schema": { "$ref": "#/components/schemas/SchemaSnapshot" }, "wasm": { "$ref": "#/components/schemas/WasmSnapshot" } } }, "EvaluatorStatus": { "type": "object", "required": [ "namespace", "state", "reason_code", "posture" ], "properties": { "namespace": { "type": "string" }, "posture": { "$ref": "#/components/schemas/GovernancePosture" }, "reason_code": { "type": "string" }, "revision_id": { "type": [ "integer", "null" ], "format": "int64", "minimum": 0 }, "state": { "$ref": "#/components/schemas/EvaluatorReadiness" } } }, "FailureBehavior": { "type": "string", "description": "Controls the result when governance cannot produce a decision.", "enum": [ "allow", "deny" ] }, "FilterSnapshot": { "type": "object", "required": [ "requests_continue", "requests_reject", "requests_other", "errors", "duration" ], "properties": { "duration": { "$ref": "#/components/schemas/DurationSnapshot" }, "errors": { "type": "integer", "format": "int64", "minimum": 0 }, "requests_continue": { "type": "integer", "format": "int64", "minimum": 0 }, "requests_other": { "type": "integer", "format": "int64", "minimum": 0 }, "requests_reject": { "type": "integer", "format": "int64", "minimum": 0 } } }, "ForwardEntry": { "type": "object", "required": [ "name", "address" ], "properties": { "address": { "type": "string" }, "available": { "type": "boolean" }, "credentialBindings": { "type": "object", "description": "Credential bindings referenced by purpose (discovery / invocation).\n\nOnly the opaque, non-secret binding identifier is stored here. The\nbinding itself is a separate top-level resource owned by this forward.", "additionalProperties": { "type": "string" }, "propertyNames": { "type": "string", "description": "The purpose a credential is used for. Discovery and invocation are kept\ndistinct in policy checks, resolution context, audit events, and cache keys.", "enum": [ "discovery", "invocation" ] } }, "labels": { "type": "object", "additionalProperties": { "type": "string" }, "propertyNames": { "type": "string" } }, "name": { "type": "string" }, "namespace": { "type": [ "string", "null" ] }, "serverInfo": { "oneOf": [ { "$ref": "#/components/schemas/McpServerInfo" }, { "type": "null" } ] }, "statusMessage": { "type": [ "string", "null" ] } } }, "GaugeSnapshot": { "type": "object", "required": [ "evaluators_loaded", "wasm_compiled", "namespace_bindings" ], "properties": { "evaluators_loaded": { "type": "integer", "format": "int64", "minimum": 0 }, "namespace_bindings": { "type": "integer", "format": "int64", "minimum": 0 }, "wasm_compiled": { "type": "integer", "format": "int64", "minimum": 0 } } }, "GovernanceMetric": { "type": "object", "required": [ "mode", "outcome", "count" ], "properties": { "count": { "type": "integer", "format": "int64", "minimum": 0 }, "mode": { "type": "string" }, "outcome": { "$ref": "#/components/schemas/GovernanceOutcome" } } }, "GovernanceOutcome": { "type": "string", "description": "Fixed outcome dimensions; request identifiers and namespace names are excluded.", "enum": [ "enforced_allow", "enforced_deny", "audit_allow", "audit_deny", "audit_skipped", "no_match_allow", "no_match_deny", "fail_open", "fail_closed", "disabled" ] }, "GovernancePosture": { "type": "object", "description": "The effective governance settings for one namespace.", "properties": { "audit_level": { "$ref": "#/components/schemas/AuditLevel", "default": "basic" }, "disabled_reason": { "type": [ "string", "null" ], "description": "Required when governance is intentionally disabled.", "default": null }, "mode": { "$ref": "#/components/schemas/EnforcementMode", "default": "enforce" }, "no_match": { "$ref": "#/components/schemas/NoMatchBehavior", "default": "deny" }, "on_failure": { "$ref": "#/components/schemas/FailureBehavior", "default": "deny" } }, "additionalProperties": false }, "InjectionMechanism": { "oneOf": [ { "type": "object", "description": "`Authorization: Bearer `.", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "bearer" ] } } }, { "type": "object", "description": "A static named header carrying the resolved secret as its value.", "required": [ "header", "type" ], "properties": { "header": { "type": "string", "description": "The (validated) header name to inject." }, "type": { "type": "string", "enum": [ "named_header" ] } } }, { "type": "object", "description": "HTTP Basic authentication with separately resolved username and password.", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "basic" ] } } } ], "description": "The supported outbound credential injection mechanisms." }, "InstallPluginRequest": { "type": "object", "required": [ "id", "version", "url" ], "properties": { "id": { "type": "string" }, "url": { "type": "string" }, "version": { "type": "string" } } }, "InstallPluginResponse": { "type": "object", "required": [ "manifest" ], "properties": { "manifest": { "$ref": "#/components/schemas/PluginManifest" } } }, "LlmDef": { "type": "object", "description": "LLM engine configuration.", "required": [ "operation", "prompt", "connection" ], "properties": { "connection": { "type": "string" }, "operation": { "$ref": "#/components/schemas/LlmOperation" }, "prompt": { "type": "string" }, "result_schema": {} }, "additionalProperties": false }, "LlmOperation": { "type": "string", "description": "The cognitive operation that the LLM performs.", "enum": [ "classify", "filter", "augment" ] }, "LlmSnapshot": { "type": "object", "required": [ "calls_success", "calls_failure", "empty_results", "duration" ], "properties": { "calls_failure": { "type": "integer", "format": "int64", "minimum": 0 }, "calls_success": { "type": "integer", "format": "int64", "minimum": 0 }, "duration": { "$ref": "#/components/schemas/DurationSnapshot" }, "empty_results": { "type": "integer", "format": "int64", "minimum": 0 } } }, "ManagementErrorResponse": { "type": "object", "required": [ "error" ], "properties": { "data": {}, "error": { "type": "string" } } }, "MatchExpression": { "type": "object", "description": "A named matcher and its literal pattern.", "required": [ "matcher", "value" ], "properties": { "matcher": { "$ref": "#/components/schemas/MatchKind" }, "value": { "type": "string" } }, "additionalProperties": false }, "MatchKind": { "type": "string", "enum": [ "exact", "glob", "prefix" ] }, "McpServerInfo": { "type": "object", "required": [ "serverName", "version" ], "properties": { "capabilities": { "type": "array", "items": { "type": "string" } }, "description": { "type": [ "string", "null" ] }, "extensions": { "type": "array", "items": { "type": "string" } }, "instructions": { "type": [ "string", "null" ] }, "serverName": { "type": "string" }, "version": { "type": "string" }, "websiteUrl": { "type": [ "string", "null" ] } } }, "MetricsSnapshot": { "type": "object", "required": [ "evaluator_governance", "filters", "evaluators", "pipeline", "gauges", "audit" ], "properties": { "audit": { "$ref": "#/components/schemas/AuditSnapshot" }, "evaluator_governance": { "type": "array", "items": { "$ref": "#/components/schemas/GovernanceMetric" } }, "evaluators": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/EvaluatorSnapshot" }, "propertyNames": { "type": "string" } }, "filters": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/FilterSnapshot" }, "propertyNames": { "type": "string" } }, "gauges": { "$ref": "#/components/schemas/GaugeSnapshot" }, "pipeline": { "$ref": "#/components/schemas/PipelineSnapshot" } } }, "NamespaceBinding": { "type": "object", "required": [ "namespace", "conversation_id" ], "properties": { "conversation_id": { "type": "string" }, "namespace": { "type": "string" } } }, "NamespaceEntry": { "type": "object", "required": [ "name" ], "properties": { "audience": { "type": [ "string", "null" ] }, "authRequired": { "type": [ "boolean", "null" ] }, "labels": { "type": "object", "additionalProperties": { "type": "string" }, "propertyNames": { "type": "string" } }, "name": { "type": "string" } } }, "NoMatchBehavior": { "type": "string", "description": "Controls the result when no governance rule matches an action.", "enum": [ "allow", "deny" ] }, "NormalizedOrigin": { "type": "string", "description": "An exact, normalized upstream origin (scheme + host + port).\n\nNormalization lower-cases the scheme and host and makes the port explicit,\nso that bindings can be matched exactly and credentials are never sent to a\ndifferent origin because of address-normalization ambiguity." }, "NoulCriteria": { "type": "object", "description": "Optional descriptions for Noul true and false outcomes.", "required": [ "true", "false" ], "properties": { "false": {}, "true": {} }, "additionalProperties": false }, "NoulDef": { "type": "object", "description": "A TypeSafe Noul primitive.", "required": [ "id", "instructions" ], "properties": { "criteria": { "oneOf": [ { "$ref": "#/components/schemas/NoulCriteria" }, { "type": "null" } ] }, "id": { "type": "string" }, "instructions": {} }, "additionalProperties": false }, "OpaDef": { "type": "object", "description": "OPA engine configuration.", "required": [ "connection", "decision_path" ], "properties": { "connection": { "type": "string", "description": "Name of an entry in `opa_connections`." }, "decision_path": { "type": "string", "description": "Slash-separated OPA data path, for example `wanaku/tool_call/allow`." } }, "additionalProperties": false }, "PipelineSnapshot": { "type": "object", "required": [ "trigger_matches", "trigger_misses", "skipped_no_method", "skipped_no_state", "skipped_no_match", "skipped_no_registry", "skipped_no_interactions" ], "properties": { "skipped_no_interactions": { "type": "integer", "format": "int64", "minimum": 0 }, "skipped_no_match": { "type": "integer", "format": "int64", "minimum": 0 }, "skipped_no_method": { "type": "integer", "format": "int64", "minimum": 0 }, "skipped_no_registry": { "type": "integer", "format": "int64", "minimum": 0 }, "skipped_no_state": { "type": "integer", "format": "int64", "minimum": 0 }, "trigger_matches": { "type": "integer", "format": "int64", "minimum": 0 }, "trigger_misses": { "type": "integer", "format": "int64", "minimum": 0 } } }, "PluginCatalogEntry": { "type": "object", "description": "Metadata for an available plugin and its installation archive.", "required": [ "id", "name", "version", "url" ], "properties": { "dependencies": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceRequirement" } }, "description": { "type": "string" }, "id": { "type": "string" }, "license": { "type": "string" }, "metadata": { "type": "object", "additionalProperties": {}, "propertyNames": { "type": "string" } }, "name": { "type": "string" }, "publisher": { "type": "string" }, "requires": { "$ref": "#/components/schemas/PluginRequires" }, "url": { "type": "string" }, "version": { "type": "string" } } }, "PluginManifest": { "type": "object", "required": [ "id", "name", "version", "entrypoint" ], "properties": { "entrypoint": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "permissions": { "type": "array", "items": { "type": "string" } }, "requires": { "$ref": "#/components/schemas/PluginRequires" }, "styles": { "type": "array", "items": { "type": "string" } }, "version": { "type": "string" } } }, "PluginRequires": { "type": "object", "properties": { "hostApi": { "type": "string" }, "services": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceRequirement" } } } }, "PluginServiceTarget": { "type": "object", "required": [ "target" ], "properties": { "target": { "type": "string" } } }, "PolicyIdentity": { "type": "object", "properties": { "base_evaluator_revision": { "type": [ "integer", "null" ], "format": "int64", "minimum": 0 }, "base_policy_revision": { "type": [ "integer", "null" ], "format": "int64", "minimum": 0 }, "evaluator_checksum": { "type": [ "string", "null" ] }, "evaluator_revision": { "type": [ "integer", "null" ], "format": "int64", "minimum": 0 }, "policy_checksum": { "type": [ "string", "null" ] }, "policy_revision": { "type": [ "integer", "null" ], "format": "int64", "minimum": 0 } } }, "Predicate": { "oneOf": [ { "type": "object", "required": [ "pointer", "value", "operator" ], "properties": { "operator": { "type": "string", "enum": [ "exists" ] }, "pointer": { "type": "string" }, "value": { "type": "boolean" } } }, { "type": "object", "required": [ "pointer", "value", "operator" ], "properties": { "operator": { "type": "string", "enum": [ "equals" ] }, "pointer": { "type": "string" }, "value": {} } }, { "type": "object", "required": [ "pointer", "value", "operator" ], "properties": { "operator": { "type": "string", "enum": [ "not_equals" ] }, "pointer": { "type": "string" }, "value": {} } }, { "type": "object", "required": [ "pointer", "values", "operator" ], "properties": { "operator": { "type": "string", "enum": [ "one_of" ] }, "pointer": { "type": "string" }, "values": { "type": "array", "items": {} } } }, { "type": "object", "required": [ "pointer", "values", "operator" ], "properties": { "operator": { "type": "string", "enum": [ "not_one_of" ] }, "pointer": { "type": "string" }, "values": { "type": "array", "items": {} } } } ], "description": "A typed comparison against a JSON Pointer." }, "ProcessorRef": { "type": "object", "description": "Reference to a WASM processor module.", "required": [ "path" ], "properties": { "path": { "type": "string" } } }, "PromptArgument": { "type": "object", "required": [ "name" ], "properties": { "description": { "type": "string" }, "name": { "type": "string" }, "required": { "type": "boolean" } } }, "PromptEntry": { "type": "object", "required": [ "name" ], "properties": { "arguments": { "type": "array", "items": { "$ref": "#/components/schemas/PromptArgument" } }, "description": { "type": "string" }, "enabled": { "type": "boolean", "description": "Whether MCP clients can list and invoke this entry. The management API\nlists disabled entries; MCP calls do not. Forward-sourced entries are\ndisabled instead of deleted, because the next discovery restores them." }, "forwardId": { "type": [ "string", "null" ], "description": "Stable identity of the forward that owns this discovered prompt.\n\nThe forward name is immutable and serves as the `forwardId`. Routing\nresolves the current upstream address from this identifier at retrieval\ntime. The upstream address is never used as forward identity." }, "id": { "type": [ "string", "null" ] }, "messages": { "type": "array", "items": { "$ref": "#/components/schemas/PromptMessage" } }, "name": { "type": "string" }, "namespace": { "type": [ "string", "null" ] } } }, "PromptMessage": { "type": "object", "required": [ "role", "content" ], "properties": { "content": {}, "role": { "$ref": "#/components/schemas/PromptRole" } } }, "PromptRole": { "type": "string", "enum": [ "user", "assistant", "system" ] }, "RedactionMetadata": { "type": "object", "required": [ "redacted_fields", "payload_captured", "payload_truncated" ], "properties": { "payload_captured": { "type": "boolean" }, "payload_truncated": { "type": "boolean" }, "redacted_fields": { "type": "array", "items": { "type": "string" } } } }, "ReplayDetail": { "type": "object", "required": [ "index", "category", "access_expansion", "compatibility_impact", "outside_evidence", "active", "candidate" ], "properties": { "access_expansion": { "type": "boolean" }, "active": { "$ref": "#/components/schemas/SimulationReport" }, "candidate": { "$ref": "#/components/schemas/SimulationReport" }, "category": { "type": "string" }, "compatibility_impact": { "type": "boolean" }, "index": { "type": "integer", "minimum": 0 }, "outside_evidence": { "type": "boolean" } } }, "ReplayJob": { "type": "object", "required": [ "schema_version", "id", "status", "stale", "identity", "counts", "details", "skipped_audit_ids", "duration_ms" ], "properties": { "counts": { "type": "object", "additionalProperties": { "type": "integer", "minimum": 0 }, "propertyNames": { "type": "string" } }, "details": { "type": "array", "items": { "$ref": "#/components/schemas/ReplayDetail" } }, "duration_ms": { "type": "integer", "format": "int64", "minimum": 0 }, "id": { "type": "string" }, "identity": { "$ref": "#/components/schemas/PolicyIdentity" }, "reason_code": { "type": [ "string", "null" ] }, "schema_version": { "type": "string" }, "skipped_audit_ids": { "type": "array", "items": { "type": "string" } }, "stale": { "type": "boolean" }, "status": { "type": "string" } } }, "ReplayRequest": { "type": "object", "properties": { "actions": { "type": "array", "items": { "$ref": "#/components/schemas/SyntheticAction" } }, "allow_external_evaluators": { "type": "boolean" }, "audit_event_ids": { "type": "array", "items": { "type": "string" } }, "candidate": { "$ref": "#/components/schemas/CandidateSelection" } }, "additionalProperties": false }, "ResourceEntry": { "type": "object", "required": [ "name", "location", "type" ], "properties": { "description": { "type": "string" }, "enabled": { "type": "boolean", "description": "Whether MCP clients can list and invoke this entry. The management API\nlists disabled entries; MCP calls do not. Forward-sourced entries are\ndisabled instead of deleted, because the next discovery restores them." }, "forwardId": { "type": [ "string", "null" ], "description": "Stable identity of the forward that owns this discovered resource.\n\nThe forward name is immutable and serves as the `forwardId`. Routing\nresolves the current upstream address from this identifier at read time.\nThe upstream address is never used as forward identity." }, "id": { "type": [ "string", "null" ] }, "labels": { "type": "object", "additionalProperties": { "type": "string" }, "propertyNames": { "type": "string" } }, "location": { "type": "string" }, "mimeType": { "type": "string" }, "name": { "type": "string" }, "namespace": { "type": [ "string", "null" ] }, "type": { "type": "string" } } }, "RevisionMetadata": { "type": "object", "required": [ "id", "created_at", "status", "checksum", "origin" ], "properties": { "activated_at": { "type": [ "string", "null" ] }, "actor": { "type": [ "string", "null" ] }, "checksum": { "type": "string" }, "created_at": { "type": "string" }, "failure_reason": { "type": [ "string", "null" ] }, "id": { "$ref": "#/components/schemas/u64" }, "origin": { "$ref": "#/components/schemas/RevisionOrigin" }, "status": { "$ref": "#/components/schemas/ActivationStatus" } } }, "RevisionOrigin": { "type": "string", "enum": [ "startup", "api" ] }, "Rule": { "type": "object", "description": "One stable, independently auditable policy rule.", "required": [ "id", "effect" ], "properties": { "description": { "type": [ "string", "null" ] }, "effect": { "$ref": "#/components/schemas/Effect" }, "id": { "type": "string" }, "message": { "type": [ "string", "null" ], "description": "A safe message that can be returned to an action caller." }, "metadata": { "type": "object", "additionalProperties": {}, "propertyNames": { "type": "string" } }, "predicates": { "type": "array", "items": { "$ref": "#/components/schemas/Predicate" } }, "reason_code": { "type": [ "string", "null" ] }, "selectors": { "$ref": "#/components/schemas/Selectors" } }, "additionalProperties": false }, "SchemaSnapshot": { "type": "object", "required": [ "validations_pass", "validations_fail", "retries_success", "retries_failure" ], "properties": { "retries_failure": { "type": "integer", "format": "int64", "minimum": 0 }, "retries_success": { "type": "integer", "format": "int64", "minimum": 0 }, "validations_fail": { "type": "integer", "format": "int64", "minimum": 0 }, "validations_pass": { "type": "integer", "format": "int64", "minimum": 0 } } }, "SecretRef": { "type": "string", "description": "An opaque secret reference of the form ':'.", "examples": [ "env:API_TOKEN" ] }, "Selectors": { "type": "object", "description": "Transport-neutral action selectors.", "properties": { "labels": { "type": "object", "additionalProperties": { "type": "string" }, "propertyNames": { "type": "string" } }, "namespace": { "type": [ "string", "null" ] }, "operation": { "type": [ "string", "null" ], "description": "The action operation. MCP adapters use values such as `tools/call`." }, "target_name": { "oneOf": [ { "$ref": "#/components/schemas/MatchExpression" }, { "type": "null" } ] }, "target_type": { "oneOf": [ { "$ref": "#/components/schemas/TargetType" }, { "type": "null" } ] }, "uri": { "oneOf": [ { "$ref": "#/components/schemas/MatchExpression" }, { "type": "null" } ] } }, "additionalProperties": false }, "ServiceRequirement": { "type": "object", "required": [ "id", "version" ], "properties": { "id": { "type": "string" }, "version": { "type": "string" } } }, "SimulationError": { "type": "object", "required": [ "reason_code" ], "properties": { "reason_code": { "type": "string" }, "validation": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/ValidationReport" } ] } } }, "SimulationReport": { "type": "object", "required": [ "schema_version", "identity", "stale", "namespace", "operation", "posture", "stages", "decision", "baseline_used", "failure_used", "conditional", "redaction", "duration_ms" ], "properties": { "baseline_used": { "type": "boolean" }, "conditional": { "type": "boolean" }, "decision": { "type": "string" }, "duration_ms": { "type": "integer", "format": "int64", "minimum": 0 }, "failure_used": { "type": "boolean" }, "identity": { "$ref": "#/components/schemas/PolicyIdentity" }, "namespace": { "type": "string" }, "operation": { "type": "string" }, "posture": { "$ref": "#/components/schemas/GovernancePosture" }, "redaction": { "$ref": "#/components/schemas/RedactionMetadata" }, "schema_version": { "type": "string" }, "stages": { "type": "array", "items": { "$ref": "#/components/schemas/StageDecision" } }, "stale": { "type": "boolean" }, "target": { "type": [ "string", "null" ] } } }, "SimulationRequest": { "type": "object", "required": [ "action" ], "properties": { "action": { "$ref": "#/components/schemas/SyntheticAction" }, "allow_external_evaluators": { "type": "boolean" }, "candidate": { "$ref": "#/components/schemas/CandidateSelection" } }, "additionalProperties": false }, "StageDecision": { "type": "object", "required": [ "stage", "decision", "reason_code", "matched_ids" ], "properties": { "decision": { "type": "string" }, "matched_ids": { "type": "array", "items": { "type": "string" } }, "reason_code": { "type": "string" }, "stage": { "type": "string" } } }, "SyntheticAction": { "type": "object", "required": [ "request" ], "properties": { "evidence_id": { "type": [ "string", "null" ] }, "namespace": { "type": "string" }, "request": {} }, "additionalProperties": false }, "SystemOneDef": { "type": "object", "description": "TypeSafe System One engine configuration. It currently supports Noul.", "required": [ "connection", "noul" ], "properties": { "connection": { "type": "string" }, "noul": { "$ref": "#/components/schemas/NoulDef" }, "state": { "$ref": "#/components/schemas/SystemOneState" } }, "additionalProperties": false }, "SystemOneState": { "type": "string", "description": "Selects the MCP data that becomes the TypeSafe state.", "enum": [ "arguments", "context" ] }, "TargetType": { "type": "string", "enum": [ "tool", "resource", "prompt", "agent" ] }, "ToolEntry": { "type": "object", "required": [ "name", "description", "uri", "type", "inputSchema" ], "properties": { "description": { "type": "string" }, "enabled": { "type": "boolean", "description": "Whether MCP clients can list and invoke this entry. The management API\nlists disabled entries; MCP calls do not. Forward-sourced entries are\ndisabled instead of deleted, because the next discovery restores them." }, "forwardId": { "type": [ "string", "null" ], "description": "Stable identity of the forward that owns this discovered tool.\n\nThe forward name is immutable and serves as the `forwardId`. Routing\nresolves the current upstream address from this identifier at invocation\ntime. The upstream address is never used as forward identity." }, "id": { "type": [ "string", "null" ] }, "inputSchema": {}, "labels": { "type": "object", "additionalProperties": { "type": "string" }, "propertyNames": { "type": "string" } }, "name": { "type": "string" }, "namespace": { "type": [ "string", "null" ] }, "type": { "type": "string" }, "uri": { "type": "string" } } }, "TriggerDef": { "type": "object", "description": "What triggers this evaluator.", "required": [ "method" ], "properties": { "method": { "type": "string" }, "namespace": { "type": [ "string", "null" ] } } }, "UnbindNamespaceResponse": { "type": "object", "required": [ "unbound" ], "properties": { "unbound": { "type": "string" } } }, "UpdateActionPolicyRequest": { "type": "object", "required": [ "policy" ], "properties": { "expected_revision": { "type": [ "integer", "null" ], "format": "int64", "minimum": 0 }, "policy": { "$ref": "#/components/schemas/ActionPolicy" } } }, "UpdateEvaluatorsRequest": { "type": "object", "properties": { "evaluators": { "type": "array", "items": { "$ref": "#/components/schemas/EvaluatorDef" } }, "expected_revision": { "type": [ "integer", "null" ], "format": "int64", "minimum": 0 } }, "additionalProperties": false }, "ValidationReport": { "type": "object", "required": [ "schema_version", "valid", "stale", "identity", "diagnostics" ], "properties": { "diagnostics": { "type": "array", "items": { "$ref": "#/components/schemas/Diagnostic" } }, "identity": { "$ref": "#/components/schemas/PolicyIdentity" }, "schema_version": { "type": "string" }, "stale": { "type": "boolean" }, "valid": { "type": "boolean" } } }, "ValidationRequest": { "type": "object", "properties": { "allow_external_evaluators": { "type": "boolean" }, "candidate": { "$ref": "#/components/schemas/CandidateSelection" } }, "additionalProperties": false }, "WanakuResponse_ActionPolicyRevisionResponse": { "type": "object", "properties": { "data": { "type": "object", "required": [ "revision", "policy" ], "properties": { "policy": { "$ref": "#/components/schemas/ActionPolicy" }, "revision": { "$ref": "#/components/schemas/RevisionMetadata" } } }, "error": { "type": [ "string", "null" ] } } }, "WanakuResponse_AgentView": { "type": "object", "properties": { "data": { "type": "object", "required": [ "name", "description", "namespace", "address", "proxyUrl" ], "properties": { "address": { "type": "string" }, "cardAddress": { "type": [ "string", "null" ] }, "description": { "type": "string" }, "name": { "type": "string" }, "namespace": { "type": "string" }, "proxyUrl": { "type": "string" } } }, "error": { "type": [ "string", "null" ] } } }, "WanakuResponse_AuditEvent": { "type": "object", "properties": { "data": { "type": "object", "required": [ "schema_version", "event_id", "stream_id", "sequence", "timestamp", "category", "decision", "correlation_id", "protocol", "operation", "reason_code", "explanation", "redaction", "attributes", "coverage_complete", "dropped_events" ], "properties": { "actor": { "type": [ "string", "null" ] }, "attributes": { "type": "object", "additionalProperties": {}, "propertyNames": { "type": "string" } }, "audience": { "type": [ "string", "null" ] }, "category": { "$ref": "#/components/schemas/AuditCategory" }, "conversation_id": { "type": [ "string", "null" ] }, "correlation_id": { "type": "string" }, "coverage_complete": { "type": "boolean" }, "decision": { "$ref": "#/components/schemas/AuditDecision" }, "dropped_events": { "type": "integer", "format": "int64", "minimum": 0 }, "duration_ms": { "type": [ "integer", "null" ], "format": "int64", "minimum": 0 }, "evaluator": { "type": [ "string", "null" ] }, "event_id": { "type": "string" }, "explanation": { "type": "string" }, "filter": { "type": [ "string", "null" ] }, "namespace": { "type": [ "string", "null" ] }, "operation": { "type": "string" }, "payload": {}, "policy_revision": { "type": [ "string", "null" ] }, "protocol": { "type": "string" }, "reason_code": { "type": "string" }, "redaction": { "$ref": "#/components/schemas/RedactionMetadata" }, "request_id": { "type": [ "string", "null" ] }, "response_status": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 }, "schema_version": { "type": "string" }, "sequence": { "type": "integer", "format": "int64", "minimum": 0 }, "stream_id": { "type": "string" }, "target": { "type": [ "string", "null" ] }, "target_type": { "type": [ "string", "null" ] }, "timestamp": { "type": "string" }, "upstream_id": { "type": [ "string", "null" ] }, "workload": { "type": [ "string", "null" ] } } }, "error": { "type": [ "string", "null" ] } } }, "WanakuResponse_AuditHealth": { "type": "object", "properties": { "data": { "type": "object", "required": [ "healthy", "dropped_events", "retained_events", "capacity" ], "properties": { "capacity": { "type": "integer", "minimum": 0 }, "dropped_events": { "type": "integer", "format": "int64", "minimum": 0 }, "healthy": { "type": "boolean" }, "last_error": { "type": [ "string", "null" ] }, "retained_events": { "type": "integer", "minimum": 0 } } }, "error": { "type": [ "string", "null" ] } } }, "WanakuResponse_AuditPage": { "type": "object", "properties": { "data": { "type": "object", "required": [ "events", "offset", "limit", "total" ], "properties": { "events": { "type": "array", "items": { "$ref": "#/components/schemas/AuditEvent" } }, "limit": { "type": "integer", "minimum": 0 }, "offset": { "type": "integer", "minimum": 0 }, "total": { "type": "integer", "minimum": 0 } } }, "error": { "type": [ "string", "null" ] } } }, "WanakuResponse_EvaluatorRevisionResponse": { "type": "object", "properties": { "data": { "type": "object", "required": [ "revision", "evaluators" ], "properties": { "evaluators": { "type": "array", "items": { "$ref": "#/components/schemas/EvaluatorDef" } }, "revision": { "$ref": "#/components/schemas/RevisionMetadata" } } }, "error": { "type": [ "string", "null" ] } } }, "WanakuResponse_EvaluatorStatus": { "type": "object", "properties": { "data": { "type": "object", "required": [ "namespace", "state", "reason_code", "posture" ], "properties": { "namespace": { "type": "string" }, "posture": { "$ref": "#/components/schemas/GovernancePosture" }, "reason_code": { "type": "string" }, "revision_id": { "type": [ "integer", "null" ], "format": "int64", "minimum": 0 }, "state": { "$ref": "#/components/schemas/EvaluatorReadiness" } } }, "error": { "type": [ "string", "null" ] } } }, "WanakuResponse_HashMap_String_String": { "type": "object", "properties": { "data": { "type": "object", "additionalProperties": { "type": "string" }, "propertyNames": { "type": "string" } }, "error": { "type": [ "string", "null" ] } } }, "WanakuResponse_InstallPluginResponse": { "type": "object", "properties": { "data": { "type": "object", "required": [ "manifest" ], "properties": { "manifest": { "$ref": "#/components/schemas/PluginManifest" } } }, "error": { "type": [ "string", "null" ] } } }, "WanakuResponse_NamespaceBinding": { "type": "object", "properties": { "data": { "type": "object", "required": [ "namespace", "conversation_id" ], "properties": { "conversation_id": { "type": "string" }, "namespace": { "type": "string" } } }, "error": { "type": [ "string", "null" ] } } }, "WanakuResponse_ReplayJob": { "type": "object", "properties": { "data": { "type": "object", "required": [ "schema_version", "id", "status", "stale", "identity", "counts", "details", "skipped_audit_ids", "duration_ms" ], "properties": { "counts": { "type": "object", "additionalProperties": { "type": "integer", "minimum": 0 }, "propertyNames": { "type": "string" } }, "details": { "type": "array", "items": { "$ref": "#/components/schemas/ReplayDetail" } }, "duration_ms": { "type": "integer", "format": "int64", "minimum": 0 }, "id": { "type": "string" }, "identity": { "$ref": "#/components/schemas/PolicyIdentity" }, "reason_code": { "type": [ "string", "null" ] }, "schema_version": { "type": "string" }, "skipped_audit_ids": { "type": "array", "items": { "type": "string" } }, "stale": { "type": "boolean" }, "status": { "type": "string" } } }, "error": { "type": [ "string", "null" ] } } }, "WanakuResponse_SimulationError": { "type": "object", "properties": { "data": { "type": "object", "required": [ "reason_code" ], "properties": { "reason_code": { "type": "string" }, "validation": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/ValidationReport" } ] } } }, "error": { "type": [ "string", "null" ] } } }, "WanakuResponse_SimulationReport": { "type": "object", "properties": { "data": { "type": "object", "required": [ "schema_version", "identity", "stale", "namespace", "operation", "posture", "stages", "decision", "baseline_used", "failure_used", "conditional", "redaction", "duration_ms" ], "properties": { "baseline_used": { "type": "boolean" }, "conditional": { "type": "boolean" }, "decision": { "type": "string" }, "duration_ms": { "type": "integer", "format": "int64", "minimum": 0 }, "failure_used": { "type": "boolean" }, "identity": { "$ref": "#/components/schemas/PolicyIdentity" }, "namespace": { "type": "string" }, "operation": { "type": "string" }, "posture": { "$ref": "#/components/schemas/GovernancePosture" }, "redaction": { "$ref": "#/components/schemas/RedactionMetadata" }, "schema_version": { "type": "string" }, "stages": { "type": "array", "items": { "$ref": "#/components/schemas/StageDecision" } }, "stale": { "type": "boolean" }, "target": { "type": [ "string", "null" ] } } }, "error": { "type": [ "string", "null" ] } } }, "WanakuResponse_UnbindNamespaceResponse": { "type": "object", "properties": { "data": { "type": "object", "required": [ "unbound" ], "properties": { "unbound": { "type": "string" } } }, "error": { "type": [ "string", "null" ] } } }, "WanakuResponse_ValidationReport": { "type": "object", "properties": { "data": { "type": "object", "required": [ "schema_version", "valid", "stale", "identity", "diagnostics" ], "properties": { "diagnostics": { "type": "array", "items": { "$ref": "#/components/schemas/Diagnostic" } }, "identity": { "$ref": "#/components/schemas/PolicyIdentity" }, "schema_version": { "type": "string" }, "stale": { "type": "boolean" }, "valid": { "type": "boolean" } } }, "error": { "type": [ "string", "null" ] } } }, "WanakuResponse_Value": { "type": "object", "properties": { "data": {}, "error": { "type": [ "string", "null" ] } } }, "WanakuResponse_Vec_AgentView": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "name", "description", "namespace", "address", "proxyUrl" ], "properties": { "address": { "type": "string" }, "cardAddress": { "type": [ "string", "null" ] }, "description": { "type": "string" }, "name": { "type": "string" }, "namespace": { "type": "string" }, "proxyUrl": { "type": "string" } } } }, "error": { "type": [ "string", "null" ] } } }, "WanakuResponse_Vec_EvaluatorDef": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "description": "A single evaluator definition: trigger + evaluation engine + processor.", "required": [ "name", "trigger", "engine", "processor" ], "properties": { "engine": { "$ref": "#/components/schemas/EvaluationEngine", "description": "The engine that produces the processor input." }, "name": { "type": "string" }, "processor": { "$ref": "#/components/schemas/ProcessorRef" }, "trigger": { "$ref": "#/components/schemas/TriggerDef" } }, "additionalProperties": false } }, "error": { "type": [ "string", "null" ] } } }, "WanakuResponse_Vec_PluginCatalogEntry": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "description": "Metadata for an available plugin and its installation archive.", "required": [ "id", "name", "version", "url" ], "properties": { "dependencies": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceRequirement" } }, "description": { "type": "string" }, "id": { "type": "string" }, "license": { "type": "string" }, "metadata": { "type": "object", "additionalProperties": {}, "propertyNames": { "type": "string" } }, "name": { "type": "string" }, "publisher": { "type": "string" }, "requires": { "$ref": "#/components/schemas/PluginRequires" }, "url": { "type": "string" }, "version": { "type": "string" } } } }, "error": { "type": [ "string", "null" ] } } }, "WanakuResponse_Vec_PluginManifest": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "id", "name", "version", "entrypoint" ], "properties": { "entrypoint": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "permissions": { "type": "array", "items": { "type": "string" } }, "requires": { "$ref": "#/components/schemas/PluginRequires" }, "styles": { "type": "array", "items": { "type": "string" } }, "version": { "type": "string" } } } }, "error": { "type": [ "string", "null" ] } } }, "WanakuResponse_Vec_RevisionMetadata": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "id", "created_at", "status", "checksum", "origin" ], "properties": { "activated_at": { "type": [ "string", "null" ] }, "actor": { "type": [ "string", "null" ] }, "checksum": { "type": "string" }, "created_at": { "type": "string" }, "failure_reason": { "type": [ "string", "null" ] }, "id": { "$ref": "#/components/schemas/u64" }, "origin": { "$ref": "#/components/schemas/RevisionOrigin" }, "status": { "$ref": "#/components/schemas/ActivationStatus" } } } }, "error": { "type": [ "string", "null" ] } } }, "WanakuResponse_Vec_String": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "string" } }, "error": { "type": [ "string", "null" ] } } }, "WasmSnapshot": { "type": "object", "required": [ "executions", "not_found", "duration" ], "properties": { "duration": { "$ref": "#/components/schemas/DurationSnapshot" }, "executions": { "type": "integer", "format": "int64", "minimum": 0 }, "not_found": { "type": "integer", "format": "int64", "minimum": 0 } } }, "u64": { "type": "integer", "format": "int64", "minimum": 0 } } } }