{"openapi":"3.1.0","info":{"title":"TOIS Public API","version":"1.0.0","description":"TOIS Public API v1 — machine-readable contract for external institutions (Fabric v5.0)."},"servers":[{"url":"/","description":"Deployment base URL"}],"security":[{"TenantAuth":[],"UserAuth":[],"RoleAuth":[]}],"x-tois-api-version":"v1","x-tois-stability":"stable","x-tois-deprecation":"none","components":{"securitySchemes":{"TenantAuth":{"type":"apiKey","in":"header","name":"x-tenant-id","description":"Tenant context when the tenantId query parameter is omitted."},"UserAuth":{"type":"apiKey","in":"header","name":"x-user-id","description":"Caller identity (user or service principal)."},"RoleAuth":{"type":"apiKey","in":"header","name":"x-user-role","description":"RBAC role used for permission checks."}},"schemas":{"FabricSnapshotResponse":{"type":"object","properties":{"apiVersion":{"type":"string","enum":["v1"]},"tenantId":{"type":"string"},"generatedAt":{"type":"string","format":"date-time"},"institution":{"type":"object","properties":{"tenantId":{"type":"string"},"flowCount":{"type":"number"},"breachedSlaCount":{"type":"number"},"riskIndex":{"type":"number"},"complianceScore":{"type":"number"},"complianceLevel":{"type":"string","enum":["compliant","watch","critical"]}},"required":["tenantId","flowCount","breachedSlaCount","riskIndex","complianceScore","complianceLevel"]},"twin":{"type":"object","properties":{"tenantId":{"type":"string"},"generatedAt":{"type":"string","format":"date-time"},"flowCount":{"type":"number"},"resourceLoad":{"type":"number"},"activePolicies":{"type":"number"},"riskIndex":{"type":"number"},"breachedSlaCount":{"type":"number"}},"required":["tenantId","generatedAt","flowCount","resourceLoad","activePolicies","riskIndex","breachedSlaCount"]},"twinForecast":{"type":"object","properties":{"tenantId":{"type":"string"},"generatedAt":{"type":"string","format":"date-time"},"points":{"type":"array","items":{"type":"object","properties":{"at":{"type":"string","format":"date-time"},"flowCount":{"type":"number"},"riskIndex":{"type":"number"},"breachedSlaCount":{"type":"number"}},"required":["at","flowCount","riskIndex","breachedSlaCount"]}}},"required":["tenantId","generatedAt","points"]},"compliance":{"type":"object","properties":{"tenantId":{"type":"string"},"generatedAt":{"type":"string","format":"date-time"},"overallScore":{"type":"number"},"level":{"type":"string","enum":["compliant","watch","critical"]},"checks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"status":{"type":"string","enum":["pass","warn","fail"]},"score":{"type":"number"},"detail":{"type":"string"}},"required":["id","name","status","score","detail"]}},"recommendations":{"type":"array","items":{"type":"string"}}},"required":["tenantId","generatedAt","overallScore","level","checks","recommendations"]},"kpis":{"type":"array","items":{"type":"object","properties":{"definitionId":{"type":"string"},"tenantId":{"type":"string"},"value":{"type":"number"},"measuredAt":{"type":"string","format":"date-time"}},"required":["definitionId","tenantId","value","measuredAt"]}},"recommendations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tenantId":{"type":"string"},"flowId":{"type":"string"},"title":{"type":"string"},"rationale":{"type":"string"}},"required":["id","tenantId","flowId","title","rationale"]}},"federationClusters":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"profile":{"type":"string","enum":["stable","at_risk","critical"]},"tenantIds":{"type":"array","items":{"type":"string"}}},"required":["id","label","profile","tenantIds"]}}},"required":["apiVersion","tenantId","generatedAt","institution","twin","twinForecast","compliance","kpis","recommendations","federationClusters"]},"StrategicViewResponse":{"type":"object","properties":{"apiVersion":{"type":"string","enum":["v1"]},"tenantId":{"type":"string"},"generatedAt":{"type":"string","format":"date-time"},"horizonDays":{"type":"number"},"topSignals":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"category":{"type":"string","enum":["governance","capacity","risk","quality"]},"severity":{"type":"string","enum":["low","medium","high","critical"]},"message":{"type":"string"}},"required":["id","category","severity","message"]}},"strategicScore":{"type":"number"}},"required":["apiVersion","tenantId","generatedAt","horizonDays","topSignals","strategicScore"]}},"parameters":{}},"paths":{"/api/public/v1/fabric/snapshot":{"get":{"operationId":"getPublicFabricSnapshot","tags":["fabric"],"summary":"Institution-level fabric snapshot","description":"Returns the unified TOIS Fabric snapshot for the tenant (twin, compliance, KPIs, recommendations, federation clusters).","x-tois-operation":"public.fabric.snapshot","x-tois-audit-event":"fabric.snapshot.generated","x-tois-tenant-aware":true,"x-tois-rbac":"operations.view","parameters":[{"schema":{"type":"string","description":"Tenant id (preferred). Falls back to x-tenant-id header.","example":"default"},"required":false,"description":"Tenant id (preferred). Falls back to x-tenant-id header.","name":"tenantId","in":"query"},{"schema":{"type":"string","description":"Caller id (default: system).","example":"integration-service"},"required":false,"description":"Caller id (default: system).","name":"x-user-id","in":"header"},{"schema":{"type":"string","description":"RBAC role used for permission checks.","example":"auditor"},"required":false,"description":"RBAC role used for permission checks.","name":"x-user-role","in":"header"},{"schema":{"type":"string","description":"Tenant id when the tenantId query parameter is omitted.","example":"default"},"required":false,"description":"Tenant id when the tenantId query parameter is omitted.","name":"x-tenant-id","in":"header"}],"responses":{"200":{"description":"Fabric snapshot","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FabricSnapshotResponse"}}}}}},"x-tois-api-version":"v1","x-tois-stability":"stable","x-tois-deprecation":"none"},"/api/public/v1/fabric/strategic":{"get":{"operationId":"getPublicFabricStrategic","tags":["fabric"],"summary":"Strategic governance view","description":"Returns strategic signals and a strategic score derived from twin, SLA, compliance, risk, and capacity signals.","x-tois-operation":"public.fabric.strategic","x-tois-audit-event":"fabric.strategic.generated","x-tois-tenant-aware":true,"x-tois-rbac":"operations.view","parameters":[{"schema":{"type":"string","description":"Tenant id (preferred). Falls back to x-tenant-id header.","example":"default"},"required":false,"description":"Tenant id (preferred). Falls back to x-tenant-id header.","name":"tenantId","in":"query"},{"schema":{"type":"string","description":"Planning horizon in days (default 30). Parsed as integer.","example":"30"},"required":false,"description":"Planning horizon in days (default 30). Parsed as integer.","name":"horizonDays","in":"query"},{"schema":{"type":"string","description":"Caller id (default: system).","example":"integration-service"},"required":false,"description":"Caller id (default: system).","name":"x-user-id","in":"header"},{"schema":{"type":"string","description":"RBAC role used for permission checks.","example":"auditor"},"required":false,"description":"RBAC role used for permission checks.","name":"x-user-role","in":"header"},{"schema":{"type":"string","description":"Tenant id when the tenantId query parameter is omitted.","example":"default"},"required":false,"description":"Tenant id when the tenantId query parameter is omitted.","name":"x-tenant-id","in":"header"}],"responses":{"200":{"description":"Strategic view","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StrategicViewResponse"}}}}}},"x-tois-api-version":"v1","x-tois-stability":"stable","x-tois-deprecation":"none"}},"webhooks":{}}