{
  "openapi": "3.1.0",
  "info": {
    "title": "Pore API",
    "version": "0.0.0-stub",
    "description": "Stub OpenAPI schema for the Pore authorization API. Replaced by apps/api build output once JUS-17 lands."
  },
  "servers": [{ "url": "https://api.pore.dev" }],
  "paths": {
    "/v1/check": {
      "post": {
        "summary": "Check a single authorization relationship.",
        "responses": { "200": { "description": "Check result." } }
      }
    },
    "/v1/check/bulk": {
      "post": {
        "summary": "Check up to 100 authorization relationships.",
        "responses": { "200": { "description": "Check results in input order." } }
      }
    },
    "/v1/grants": {
      "post": {
        "summary": "Create (idempotent) a grant.",
        "responses": { "200": { "description": "Existing grant." }, "201": { "description": "Grant created." } }
      },
      "delete": {
        "summary": "Revoke a grant.",
        "responses": { "204": { "description": "Grant removed." }, "404": { "description": "Grant did not exist." } }
      }
    },
    "/v1/objects": {
      "get": {
        "summary": "List object ids a subject is authorized on under a relation.",
        "responses": { "200": { "description": "Paginated object ids." } }
      }
    },
    "/v1/namespaces": {
      "get": { "summary": "List namespaces.", "responses": { "200": { "description": "Namespaces." } } },
      "post": { "summary": "Create a namespace.", "responses": { "201": { "description": "Namespace created." } } }
    },
    "/v1/keys": {
      "get": { "summary": "List API keys (admin scope).", "responses": { "200": { "description": "Keys." } } },
      "post": { "summary": "Create an API key (admin scope).", "responses": { "201": { "description": "Key created." } } }
    }
  }
}
