{"openapi":"3.1.0","info":{"title":"Orient+ Status API","version":"0.7.0","description":"Публичный API ожидаемой доступности Ориент+ на суше и в море, официальных показателей Galileo HAS и истории подтверждённых событий."},"servers":[{"url":"/api/v1"}],"paths":{"/status":{"get":{"summary":"Сводка доступных доказательств","responses":{"200":{"description":"Зоны, источники событий и поля not_measured/unknown_public_status"}}}},"/coverage":{"get":{"summary":"Единая модель доступности","responses":{"200":{"description":"Плавный растровый слой, GeoJSON ожидаемой доступности за 90 дней и публичная маска территорий"}}}},"/history":{"get":{"summary":"История официальных событий","parameters":[{"name":"range","in":"query","schema":{"type":"string","enum":["24h","7d","30d","90d","all"],"default":"90d"}},{"name":"service","in":"query","schema":{"type":"string","enum":["all","has","b2b"],"default":"all"}}],"responses":{"200":{"description":"Официальные события и статус доступности источника"},"400":{"description":"Некорректный период или источник"}}}},"/availability/timeline":{"get":{"summary":"Официальные интервалы за день","parameters":[{"name":"date","in":"query","schema":{"type":"string","format":"date","example":"2026-03-12"}},{"name":"service","in":"query","schema":{"type":"string","enum":["has","b2b","orient"],"default":"has"}}],"responses":{"200":{"description":"Подтверждённые интервалы или явный статус отсутствия публичных данных"}}}},"/incidents":{"get":{"summary":"Журнал подтверждённых событий","responses":{"200":{"description":"Официальные события HAS и ограничения источников"}}}},"/diagnose":{"get":{"summary":"Диагностика точки и времени","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lon","in":"query","required":true,"schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"time","in":"query","required":true,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Ожидаемая доступность Ориент+, точность, совпадающий NAGU и пробелы доказательств"},"400":{"description":"Некорректные координаты или время"}}},"post":{"summary":"Диагностика точки и времени (JSON)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["lat","lon","time"],"properties":{"lat":{"type":"number"},"lon":{"type":"number"},"time":{"type":"string"}}}}}},"responses":{"200":{"description":"Доказательный вывод без предположения о штатной работе"},"400":{"description":"Некорректный запрос"}}}},"/health":{"get":{"summary":"Проверка готовности API","responses":{"200":{"description":"API готов"}}}}},"components":{"schemas":{"CoverageZone":{"type":"string","enum":["maximum","high","extended","limited"]},"MarketStatus":{"type":"string","enum":["priority","by_request","not_public","offshore"]},"EvidenceStatus":{"type":"string","enum":["official_event_found","no_matching_notice","unknown_public_status","not_measured"]},"ReasonCode":{"type":"string","enum":["OFFICIAL_HAS_EVENT_FOUND","NO_MATCHING_OFFICIAL_NOTICE","LIMITED_PUBLIC_EVIDENCE","OUTSIDE_PUBLIC_SCOPE"]}}}}