{"openapi":"3.1.0","info":{"title":"LAKA Volumetric Security Grammar API","version":"1.0.0","summary":"Public read API for the LAKA Volumetric Security Grammar, plus a schema validator and the governing authorization gate as code.","description":"The SECURITY_UNIT model and governing production rule; the volumetric matrix; eight JSON Schemas; seven worked examples; the deny-first policy rules; the version-pinned standards register; and two stateless POST endpoints: /v1/validate checks a document against a published schema, /v1/authorize-check evaluates the authorization gates and names any failed conditions. This API is a defensive specification and reference — it never executes, scans or changes anything.","contact":{"name":"Bow Tie Kreative","url":"https://bowtiekreative.com"}},"servers":[{"url":"https://security.bowtiekreative.com"}],"paths":{"/v1":{"get":{"summary":"Service index","operationId":"index","responses":{"200":{"description":"Service metadata and endpoint list"}}}},"/v1/health":{"get":{"summary":"Liveness and corpus counts","operationId":"health","responses":{"200":{"description":"Status and counts"}}}},"/v1/openapi.json":{"get":{"summary":"This document","operationId":"openapi","responses":{"200":{"description":"OpenAPI 3.1"}}}},"/v1/manifest":{"get":{"summary":"Package manifest and inventory","operationId":"manifest","responses":{"200":{"description":"Manifest"}}}},"/v1/unit":{"get":{"summary":"The SECURITY_UNIT model and governing rule","operationId":"unit","responses":{"200":{"description":"Components and rule conditions"}}}},"/v1/matrix":{"get":{"summary":"The volumetric matrix","operationId":"matrix","responses":{"200":{"description":"Change levels, internal variables, meta-variables"}}}},"/v1/schemas":{"get":{"summary":"List the JSON Schemas","operationId":"listSchemas","responses":{"200":{"description":"Schema summaries"}}}},"/v1/schemas/{name}":{"get":{"summary":"One schema in full","operationId":"getSchema","parameters":[{"name":"name","in":"path","required":true,"schema":{"enum":["authorization","change-plan","control-profile","finding","security-program","test-plan","threat-model","tool-registry"]},"example":"finding"}],"responses":{"200":{"description":"JSON Schema (draft 2020-12)"},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"const":"not_found"}}}}}}}}},"/v1/deny-rules":{"get":{"summary":"The deny-first policy rules","operationId":"denyRules","responses":{"200":{"description":"Rules with conditions and decisions"}}}},"/v1/standards":{"get":{"summary":"The adopted standards register","operationId":"standards","responses":{"200":{"description":"Version-pinned standards"}}}},"/v1/tools":{"get":{"summary":"Registered tool classes (safety posture only)","operationId":"tools","responses":{"200":{"description":"Tool class summaries"}}}},"/v1/examples":{"get":{"summary":"List the worked examples","operationId":"listExamples","responses":{"200":{"description":"Example summaries"}}}},"/v1/examples/{id}":{"get":{"summary":"One worked example","operationId":"getExample","parameters":[{"name":"id","in":"path","required":true,"schema":{"enum":["asset-inventory","client-authorization","finding-example","passive-test-plan","security-program","threat-model","vps-change-plan"]},"example":"finding-example"}],"responses":{"200":{"description":"The example: JSON document plus YAML original"},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"const":"not_found"}}}}}}}}},"/v1/docs":{"get":{"summary":"List the chapters","operationId":"docs","responses":{"200":{"description":"Document list"}}}},"/v1/docs/{slug}":{"get":{"summary":"One chapter, as markdown","operationId":"getDoc","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"example":"security-grammar"}],"responses":{"200":{"description":"Markdown text","content":{"text/markdown":{"schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"const":"not_found"}}}}}}}}},"/v1/sources":{"get":{"summary":"Standards and chapter sources","operationId":"sources","responses":{"200":{"description":"Sources"}}}},"/v1/validate":{"post":{"summary":"Validate a document against a published schema","operationId":"validateDocument","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["schema","document"],"properties":{"schema":{"enum":["authorization","change-plan","control-profile","finding","security-program","test-plan","threat-model","tool-registry"]},"document":{"type":"object","description":"The document to validate."}}}}}},"responses":{"200":{"description":"Validation outcome","content":{"application/json":{"schema":{"type":"object","properties":{"schema":{"type":"string"},"valid":{"type":"boolean"},"error_count":{"type":"integer"},"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}}}}}}}}},"400":{"description":"Malformed body or unknown schema name"}}}},"/v1/authorize-check":{"post":{"summary":"Evaluate the governing authorization rule","operationId":"authorizeCheck","description":"A stateless decision function mirroring the governing production rule. Missing gate inputs count as false; the default is deny. It never executes, scans or changes anything.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"authorized":{"type":"boolean"},"target_in_scope":{"type":"boolean"},"mode_allowed":{"type":"boolean"},"preconditions_true":{"type":"boolean"},"change_possible":{"type":"boolean"},"rollback_verified":{"type":"boolean"}}}}}},"responses":{"200":{"description":"The decision","content":{"application/json":{"schema":{"type":"object","properties":{"allowed":{"type":"boolean"},"decision":{"enum":["allow","deny"]},"failed_conditions":{"type":"array","items":{"type":"string"}},"reasons":{"type":"array","items":{"type":"string"}}}}}}},"400":{"description":"The body was not a JSON object"}}}}}}