{"openapi":"3.1.0","info":{"title":"Algorithm Service","description":"Lightweight token-authenticated, per-module metered algorithm hosting.","version":"0.5.1"},"paths":{"/health/live":{"get":{"tags":["health"],"summary":"Live","operationId":"live_health_live_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health/ready":{"get":{"tags":["health"],"summary":"Ready","operationId":"ready_health_ready_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/me":{"get":{"tags":["tokens"],"summary":"Me","operationId":"me_v1_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"BearerToken":[]}]}},"/v1/modules":{"get":{"tags":["algorithms"],"summary":"My Modules","operationId":"my_modules_v1_modules_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"BearerToken":[]}]}},"/v1/modules/{module_id}/verify":{"post":{"tags":["algorithms"],"summary":"Verify","operationId":"verify_v1_modules__module_id__verify_post","parameters":[{"name":"module_id","in":"path","required":true,"schema":{"type":"string","title":"Module Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["metadata"],"properties":{"metadata":{"type":"string","description":"CapturePacket JSON or {captures:[CapturePacket,...]}"}},"additionalProperties":{"type":"string","format":"binary"}}}}},"security":[{"BearerToken":[]}]}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"BearerToken":{"type":"http","scheme":"bearer","description":"Business API token only"},"AccountSession":{"type":"apiKey","in":"cookie","name":"ifp_session","description":"HttpOnly session issued by POST /auth/login; administration requires role=admin"},"CSRFToken":{"type":"apiKey","in":"header","name":"X-CSRF-Token","description":"CSRF token from /auth/login or /auth/session; required together with the session cookie"}}}}