{"openapi":"3.1.0","info":{"title":"PII Guard — локальная защита данных","description":"POST /process: контракт Приложения A (AlfaSonar). POST /v1/process: API потребителей с ключами.","version":"1.0.0"},"paths":{"/process":{"post":{"tags":["AlfaSonar"],"summary":"Process","operationId":"process","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompetitionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompetitionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/process":{"post":{"tags":["Authenticated product API"],"summary":"Product Process","operationId":"product_process_v1_process_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/policy":{"get":{"summary":"Get Policy","operationId":"get_policy_v1_policy_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/contexts/{context_id}":{"delete":{"summary":"Delete Context","operationId":"delete_context_v1_contexts__context_id__delete","parameters":[{"name":"context_id","in":"path","required":true,"schema":{"type":"string","title":"Context Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"CompetitionRequest":{"properties":{"payload":{"type":"string","maxLength":2000000,"title":"Payload"},"payload_id":{"type":"string","maxLength":1024,"title":"Payload Id"}},"type":"object","required":["payload","payload_id"],"title":"CompetitionRequest"},"CompetitionResponse":{"properties":{"result":{"type":"string","title":"Result"}},"type":"object","required":["result"],"title":"CompetitionResponse"},"EntityOut":{"properties":{"start":{"type":"integer","title":"Start"},"end":{"type":"integer","title":"End"},"type":{"type":"string","title":"Type"},"confidence":{"type":"number","title":"Confidence"},"rule":{"type":"string","title":"Rule"},"action":{"type":"string","enum":["tokenize","redact","keep","detected"],"title":"Action"},"reason":{"type":"string","title":"Reason"},"replacement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Replacement"}},"type":"object","required":["start","end","type","confidence","rule","action","reason"],"title":"EntityOut"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ProcessRequest":{"properties":{"operation":{"type":"string","enum":["mask","unmask","analyze","protect_response"],"title":"Operation","default":"mask"},"text":{"type":"string","maxLength":2000000,"title":"Text"},"context_id":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9_-]{43}$"},{"type":"null"}],"title":"Context Id"}},"additionalProperties":false,"type":"object","required":["text"],"title":"ProcessRequest","description":"Authenticated product API, separate from the official /process competition interface."},"ProcessResponse":{"properties":{"request_id":{"type":"string","title":"Request Id"},"operation":{"type":"string","title":"Operation"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"context_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context Id"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"entities":{"items":{"$ref":"#/components/schemas/EntityOut"},"type":"array","title":"Entities"},"detected_types":{"additionalProperties":{"type":"integer"},"type":"object","title":"Detected Types"},"restored_count":{"type":"integer","title":"Restored Count","default":0},"policy_version":{"type":"string","title":"Policy Version"},"processing_ms":{"type":"number","title":"Processing Ms"},"token_count":{"type":"integer","title":"Token Count"},"tokenizer":{"type":"string","title":"Tokenizer"},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings"}},"type":"object","required":["request_id","operation","text","policy_version","processing_ms","token_count","tokenizer"],"title":"ProcessResponse"},"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"}}}}