{"openapi":"3.1.0","info":{"title":"NEXT BOOST Monitoring API","version":"1.1.0","description":"Даты UTC в ISO 8601. Денежные значения передаются строками. Cookie-запросы изменения требуют X-CSRF-Token из /session. API-ключи: data:read; при явном выборе servers:write. billing:write явно разрешает расчёт и оплату с баланса; services:write — управление услугами; servers:write — собственные серверы. Административные операции и настройки аккаунта требуют сеанс кабинета. Ключ идемпотентности можно передать заголовком или requestKey; повтор возвращает прежний результат. Ошибка связи не означает отказ операции."},"servers":[{"url":"https://next-boost.ru/api/v1"}],"paths":{"/session":{"get":{"summary":"Сеанс, пользователь и CSRF","operationId":"get__session","parameters":[],"security":[],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/games":{"get":{"summary":"Активные игры","operationId":"get__games","parameters":[],"security":[],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/servers":{"get":{"summary":"Каталог и поиск","operationId":"get__servers","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"game","in":"query","required":false,"schema":{"type":"string"}},{"name":"country","in":"query","required":false,"schema":{"type":"string"}},{"name":"map","in":"query","required":false,"schema":{"type":"string"}},{"name":"players_min","in":"query","required":false,"schema":{"type":"string"}},{"name":"players_max","in":"query","required":false,"schema":{"type":"string"}},{"name":"players_status","in":"query","required":false,"schema":{"type":"string"}},{"name":"online","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"string"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"string"}}],"security":[],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/servers/{id}":{"get":{"summary":"Карточка сервера","operationId":"get__servers_id_","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/servers/{id}/state":{"get":{"summary":"Сохранённое состояние","operationId":"get__servers_id_state","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/servers/{id}/history":{"get":{"summary":"История онлайна","operationId":"get__servers_id_history","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"days","in":"query","required":false,"schema":{"type":"string"}}],"security":[],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/servers/{id}/vote":{"post":{"summary":"Голос за сервер","operationId":"post__servers_id_vote","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/servers/{id}/claim":{"post":{"summary":"Создать подтверждение владения названием","operationId":"post__servers_id_claim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"get":{"summary":"Состояние собственной проверки владения","operationId":"get__servers_id_claim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"session":[]},{"apiKey":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"delete":{"summary":"Отменить свою проверку владения","operationId":"delete__servers_id_claim","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]},{"apiKey":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/servers/{id}/claim/check":{"post":{"summary":"Запросить свежий опрос для проверки фразы","operationId":"post__servers_id_claim_check","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/statistics":{"get":{"summary":"Подготовленная статистика A2S с покрытием и приблизительными показателями","operationId":"get__statistics","parameters":[{"name":"period","in":"query","schema":{"type":"string","enum":["today","yesterday","7d","30d","90d"],"default":"today"}},{"name":"game","in":"query","required":false,"schema":{"type":"string"}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"serverId","in":"query","required":false,"schema":{"type":"string"}},{"name":"server","in":"query","required":false,"schema":{"type":"string"}},{"name":"match","in":"query","required":false,"schema":{"type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"security":[],"responses":{"200":{"description":"UTC-даты; null означает отсутствие данных, не ноль. История ников ограничена 30 календарными днями. График до 720 точек. Счёт не равен числу убийств.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","required":["from","to","timezone","approximate","source","playerHistoryDays"],"properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"since":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":["string","null"],"format":"date-time"},"timezone":{"const":"Europe/Moscow"},"coverage":{"type":["number","null"],"minimum":0,"maximum":100},"resolution":{"type":"string"},"approximate":{"const":true},"source":{"const":"a2s"},"playerHistoryDays":{"const":30}}},"metrics":{"type":"object","additionalProperties":{"type":["number","string","null"]}},"items":{"type":"array","items":{"type":"object"}},"nextCursor":{"type":["string","null"]}}}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/statistics/series":{"get":{"summary":"Подготовленная статистика A2S с покрытием и приблизительными показателями","operationId":"get__statistics_series","parameters":[{"name":"period","in":"query","schema":{"type":"string","enum":["today","yesterday","7d","30d","90d"],"default":"today"}},{"name":"game","in":"query","required":false,"schema":{"type":"string"}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"serverId","in":"query","required":false,"schema":{"type":"string"}},{"name":"server","in":"query","required":false,"schema":{"type":"string"}},{"name":"match","in":"query","required":false,"schema":{"type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"security":[],"responses":{"200":{"description":"UTC-даты; null означает отсутствие данных, не ноль. История ников ограничена 30 календарными днями. График до 720 точек. Счёт не равен числу убийств.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","required":["from","to","timezone","approximate","source","playerHistoryDays"],"properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"since":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":["string","null"],"format":"date-time"},"timezone":{"const":"Europe/Moscow"},"coverage":{"type":["number","null"],"minimum":0,"maximum":100},"resolution":{"type":"string"},"approximate":{"const":true},"source":{"const":"a2s"},"playerHistoryDays":{"const":30}}},"metrics":{"type":"object","additionalProperties":{"type":["number","string","null"]}},"items":{"type":"array","items":{"type":"object"}},"nextCursor":{"type":["string","null"]}}}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/servers/{id}/statistics":{"get":{"summary":"Подготовленная статистика A2S с покрытием и приблизительными показателями","operationId":"get__servers_id_statistics","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"period","in":"query","schema":{"type":"string","enum":["today","yesterday","7d","30d","90d"],"default":"today"}},{"name":"game","in":"query","required":false,"schema":{"type":"string"}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"serverId","in":"query","required":false,"schema":{"type":"string"}},{"name":"server","in":"query","required":false,"schema":{"type":"string"}},{"name":"match","in":"query","required":false,"schema":{"type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"security":[],"responses":{"200":{"description":"UTC-даты; null означает отсутствие данных, не ноль. История ников ограничена 30 календарными днями. График до 720 точек. Счёт не равен числу убийств.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","required":["from","to","timezone","approximate","source","playerHistoryDays"],"properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"since":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":["string","null"],"format":"date-time"},"timezone":{"const":"Europe/Moscow"},"coverage":{"type":["number","null"],"minimum":0,"maximum":100},"resolution":{"type":"string"},"approximate":{"const":true},"source":{"const":"a2s"},"playerHistoryDays":{"const":30}}},"metrics":{"type":"object","additionalProperties":{"type":["number","string","null"]}},"items":{"type":"array","items":{"type":"object"}},"nextCursor":{"type":["string","null"]}}}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/players":{"get":{"summary":"Наблюдения публичных ников, без подтверждённой личности","operationId":"get__players","parameters":[{"name":"period","in":"query","schema":{"type":"string","enum":["today","yesterday","7d","30d","90d"],"default":"30d"}},{"name":"game","in":"query","required":false,"schema":{"type":"string"}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"serverId","in":"query","required":false,"schema":{"type":"string"}},{"name":"server","in":"query","required":false,"schema":{"type":"string"}},{"name":"match","in":"query","required":false,"schema":{"type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"security":[],"responses":{"200":{"description":"UTC-даты; null означает отсутствие данных, не ноль. История ников ограничена 30 календарными днями. График до 720 точек. Счёт не равен числу убийств.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","required":["from","to","timezone","approximate","source","playerHistoryDays"],"properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"since":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":["string","null"],"format":"date-time"},"timezone":{"const":"Europe/Moscow"},"coverage":{"type":["number","null"],"minimum":0,"maximum":100},"resolution":{"type":"string"},"approximate":{"const":true},"source":{"const":"a2s"},"playerHistoryDays":{"const":30}}},"metrics":{"type":"object","additionalProperties":{"type":["number","string","null"]}},"items":{"type":"array","items":{"type":"object"}},"nextCursor":{"type":["string","null"]}}}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/players/names/{id}":{"get":{"summary":"Наблюдения публичных ников, без подтверждённой личности","operationId":"get__players_names_id_","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"period","in":"query","schema":{"type":"string","enum":["today","yesterday","7d","30d","90d"],"default":"30d"}},{"name":"game","in":"query","required":false,"schema":{"type":"string"}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"serverId","in":"query","required":false,"schema":{"type":"string"}},{"name":"server","in":"query","required":false,"schema":{"type":"string"}},{"name":"match","in":"query","required":false,"schema":{"type":"string"}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}}],"security":[],"responses":{"200":{"description":"UTC-даты; null означает отсутствие данных, не ноль. История ников ограничена 30 календарными днями. График до 720 точек. Счёт не равен числу убийств.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","required":["from","to","timezone","approximate","source","playerHistoryDays"],"properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"since":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":["string","null"],"format":"date-time"},"timezone":{"const":"Europe/Moscow"},"coverage":{"type":["number","null"],"minimum":0,"maximum":100},"resolution":{"type":"string"},"approximate":{"const":true},"source":{"const":"a2s"},"playerHistoryDays":{"const":30}}},"metrics":{"type":"object","additionalProperties":{"type":["number","string","null"]}},"items":{"type":"array","items":{"type":"object"}},"nextCursor":{"type":["string","null"]}}}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/statistics":{"get":{"summary":"Бюджет и состояние подробного сбора","operationId":"get__admin_statistics","parameters":[],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"post":{"summary":"Пауза подробного сбора; бюджетную паузу нельзя обойти","operationId":"post__admin_statistics","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/auth/login":{"post":{"summary":"login","operationId":"post__auth_login","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"login":{"type":"string"},"email":{"type":"string","format":"email"},"name":{"type":"string"},"password":{"type":"string"},"token":{"type":"string"}},"required":["login","password"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/auth/register":{"post":{"summary":"register","operationId":"post__auth_register","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"login":{"type":"string"},"email":{"type":"string","format":"email"},"name":{"type":"string"},"password":{"type":"string"},"token":{"type":"string"}},"required":["login","email","password"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/auth/forgot":{"post":{"summary":"forgot","operationId":"post__auth_forgot","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"login":{"type":"string"},"email":{"type":"string","format":"email"},"name":{"type":"string"},"password":{"type":"string"},"token":{"type":"string"}},"required":["login"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/auth/reset":{"post":{"summary":"reset","operationId":"post__auth_reset","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"login":{"type":"string"},"email":{"type":"string","format":"email"},"name":{"type":"string"},"password":{"type":"string"},"token":{"type":"string"}},"required":["token","password"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/auth/logout":{"post":{"summary":"logout","operationId":"post__auth_logout","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"login":{"type":"string"},"email":{"type":"string","format":"email"},"name":{"type":"string"},"password":{"type":"string"},"token":{"type":"string"}},"required":[]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/my/account":{"get":{"summary":"Собственные account","operationId":"get__my_account","parameters":[],"security":[{"session":[]},{"apiKey":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"put":{"summary":"Обновить профиль с проверкой текущего пароля","operationId":"put__my_account","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"password":{"type":"string"},"currentPassword":{"type":"string"}},"required":["currentPassword"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/my/servers":{"get":{"summary":"Собственные servers","operationId":"get__my_servers","parameters":[],"security":[{"session":[]},{"apiKey":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"post":{"summary":"Добавить собственный сервер","operationId":"post__my_servers","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string"},"game":{"type":"string"},"queryPort":{"type":"integer"}},"required":["address","game"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/my/invoices":{"get":{"summary":"Собственные invoices","operationId":"get__my_invoices","parameters":[],"security":[{"session":[]},{"apiKey":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/my/logs":{"get":{"summary":"Собственные logs","operationId":"get__my_logs","parameters":[],"security":[{"session":[]},{"apiKey":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/my/grants":{"get":{"summary":"Собственные grants","operationId":"get__my_grants","parameters":[],"security":[{"session":[]},{"apiKey":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/my/keys":{"get":{"summary":"Собственные keys","operationId":"get__my_keys","parameters":[],"security":[{"session":[]},{"apiKey":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"post":{"summary":"Создать ключ на 90 дней или отозвать собственный ключ","operationId":"post__my_keys","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"write":{"type":"boolean"},"scopes":{"type":"array","items":{"enum":["data:read","servers:write","services:write","billing:write"]}},"revoke":{"type":"string","format":"uuid"}},"required":[]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/my/servers/{id}":{"put":{"summary":"Изменить сайт и контакты собственного сервера","operationId":"put__my_servers_id_","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"website":{"type":"string"},"contacts":{"type":"string"}},"required":[]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"delete":{"summary":"Удалить собственный сервер","operationId":"delete__my_servers_id_","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]},{"apiKey":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/my/invoices/{id}/checkout":{"get":{"summary":"Повторно открыть существующий счёт","operationId":"get__my_invoices_id_checkout","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"session":[]},{"apiKey":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/my/grants/{id}":{"put":{"summary":"Настроить перенос, позицию, цвет и автопродление","operationId":"put__my_grants_id_","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"transferTo":{"type":"string","format":"uuid"},"position":{"type":"integer"},"color":{"type":"string"},"autoRenew":{"type":"boolean"},"period":{"type":"string"}},"required":[]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/services":{"get":{"summary":"Услуги, сроки, совместимость и способы оплаты","operationId":"get__services","parameters":[],"security":[],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/quotes":{"post":{"summary":"Создать расчёт и резерв на 15 минут","operationId":"post__quotes","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"serverId":{"type":"string","format":"uuid"},"service":{"type":"string","enum":["befirst","top","boost","vip","color","gamemenu","favorites"]},"operation":{"enum":["buy","prolong"]},"period":{"type":"string"},"position":{"type":"integer"},"color":{"type":"string"},"couponCode":{"type":"string"}},"required":["serverId","service","period"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/orders/balance":{"post":{"summary":"Оплатить расчёт с баланса","operationId":"post__orders_balance","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"security":[{"session":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"quoteId":{"type":"string","format":"uuid"},"requestKey":{"type":"string"}},"required":["quoteId"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/orders/freekassa":{"post":{"summary":"Создать счёт услуги или пополнения","operationId":"post__orders_freekassa","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string"}}],"security":[{"session":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"quoteId":{"type":"string","format":"uuid"},"amount":{"$ref":"#/components/schemas/Money"},"requestKey":{"type":"string"}},"required":[]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/overview":{"get":{"summary":"Администратор: overview","operationId":"get__admin_overview","parameters":[],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/users":{"get":{"summary":"Администратор: users","operationId":"get__admin_users","parameters":[],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"post":{"summary":"Изменить: users","operationId":"post__admin_users","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"value":{"type":"object"}},"required":[]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/servers":{"get":{"summary":"Администратор: servers","operationId":"get__admin_servers","parameters":[],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"post":{"summary":"Изменить: servers","operationId":"post__admin_servers","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"requestKey":{"type":"string"},"reason":{"type":"string","minLength":3,"maxLength":500},"revision":{"type":"integer"},"id":{"type":"string","format":"uuid"},"action":{"enum":["create","update","bulk"]},"game":{"type":"string"},"address":{"type":"string"},"queryPort":{"type":"integer"},"ids":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string","format":"uuid"}},"bulkAction":{"enum":["probe","ban","unban"]}},"required":["requestKey","reason"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/grants":{"get":{"summary":"Администратор: grants","operationId":"get__admin_grants","parameters":[],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"post":{"summary":"Изменить: grants","operationId":"post__admin_grants","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"requestKey":{"type":"string"},"reason":{"type":"string","minLength":3,"maxLength":500},"revision":{"type":"integer"},"id":{"type":"string","format":"uuid"},"serverId":{"type":"string","format":"uuid"},"service":{"enum":["befirst","top","boost","vip","color","gamemenu","favorites"]},"operation":{"enum":["buy","prolong"]},"action":{"enum":["update","prolong","transfer","stop"]},"duration":{"type":"integer"},"position":{"type":"integer"},"color":{"type":"string"},"transferTo":{"type":"string","format":"uuid"},"expiresAt":{"type":"string","format":"date-time"},"rounds":{"type":"integer"},"preview":{"type":"boolean"}},"required":["reason"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/pages":{"get":{"summary":"Администратор: pages","operationId":"get__admin_pages","parameters":[],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"post":{"summary":"Изменить: pages","operationId":"post__admin_pages","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"value":{"type":"object"}},"required":[]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/partners":{"get":{"summary":"Администратор: partners","operationId":"get__admin_partners","parameters":[],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"post":{"summary":"Изменить: partners","operationId":"post__admin_partners","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"value":{"type":"object"}},"required":[]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/games":{"get":{"summary":"Администратор: games","operationId":"get__admin_games","parameters":[],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"post":{"summary":"Изменить: games","operationId":"post__admin_games","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"revision":{"type":"integer"},"reason":{"type":"string","minLength":3,"maxLength":500},"name":{"type":"string"},"enabled":{"type":"boolean"},"allowedServices":{"type":"object"}},"required":["id","revision","reason"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/jobs":{"get":{"summary":"Администратор: jobs","operationId":"get__admin_jobs","parameters":[],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"post":{"summary":"Изменить: jobs","operationId":"post__admin_jobs","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"value":{"type":"object"}},"required":[]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/logs":{"get":{"summary":"Администратор: logs","operationId":"get__admin_logs","parameters":[],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/income":{"get":{"summary":"Администратор: income","operationId":"get__admin_income","parameters":[],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/settings/main":{"get":{"summary":"Администратор: settings/main","operationId":"get__admin_settings_main","parameters":[],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"post":{"summary":"Изменить: settings/main","operationId":"post__admin_settings_main","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"revision":{"type":"integer"},"value":{"type":"object"}},"required":["revision","value"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/settings/services":{"get":{"summary":"Администратор: settings/services","operationId":"get__admin_settings_services","parameters":[],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"post":{"summary":"Изменить: settings/services","operationId":"post__admin_settings_services","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"revision":{"type":"integer"},"value":{"type":"object"}},"required":["revision","value"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/settings/discounts":{"get":{"summary":"Администратор: settings/discounts","operationId":"get__admin_settings_discounts","parameters":[],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"post":{"summary":"Изменить: settings/discounts","operationId":"post__admin_settings_discounts","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"revision":{"type":"integer"},"value":{"type":"object"}},"required":["revision","value"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/settings/servers":{"get":{"summary":"Администратор: settings/servers","operationId":"get__admin_settings_servers","parameters":[],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"post":{"summary":"Изменить: settings/servers","operationId":"post__admin_settings_servers","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"revision":{"type":"integer"},"value":{"type":"object"}},"required":["revision","value"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/settings/email":{"get":{"summary":"Администратор: settings/email","operationId":"get__admin_settings_email","parameters":[],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"post":{"summary":"Изменить: settings/email","operationId":"post__admin_settings_email","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"revision":{"type":"integer"},"value":{"type":"object"}},"required":["revision","value"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/settings/currency":{"get":{"summary":"Администратор: settings/currency","operationId":"get__admin_settings_currency","parameters":[],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"post":{"summary":"Изменить: settings/currency","operationId":"post__admin_settings_currency","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"revision":{"type":"integer"},"value":{"type":"object"}},"required":["revision","value"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/servers/{id}":{"get":{"summary":"Карточка / раздел: /admin/servers/{id}","operationId":"get__admin_servers_id_","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/users/{id}":{"get":{"summary":"Карточка / раздел: /admin/users/{id}","operationId":"get__admin_users_id_","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/invoices/{id}":{"get":{"summary":"Карточка / раздел: /admin/invoices/{id}","operationId":"get__admin_invoices_id_","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/transactions":{"get":{"summary":"Карточка / раздел: /admin/transactions","operationId":"get__admin_transactions","parameters":[],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/roles":{"get":{"summary":"Карточка / раздел: /admin/roles","operationId":"get__admin_roles","parameters":[],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"post":{"summary":"Назначить роли; только владелец, сеансы отзываются","operationId":"post__admin_roles","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"requestKey":{"type":"string"},"reason":{"type":"string","minLength":3,"maxLength":500},"revision":{"type":"integer"},"id":{"type":"string","format":"uuid"},"roles":{"type":"array","uniqueItems":true,"items":{"enum":["owner","admin","moderator","finance"]}}},"required":["id","roles","revision","reason","requestKey"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/coupons":{"get":{"summary":"Карточка / раздел: /admin/coupons","operationId":"get__admin_coupons","parameters":[],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"post":{"summary":"Создать / изменить кампанию купона","operationId":"post__admin_coupons","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"requestKey":{"type":"string"},"reason":{"type":"string","minLength":3,"maxLength":500},"revision":{"type":"integer"},"id":{"type":"string","format":"uuid"},"code":{"type":"string","pattern":"^[A-Za-z0-9_-]{4,64}$"},"title":{"type":"string"},"kind":{"enum":["balance","discount","service","topup_bonus"]},"state":{"enum":["active","paused","archived","disabled"]},"startsAt":{"type":"string","format":"date-time"},"endsAt":{"type":"string","format":"date-time"},"maxUses":{"type":"integer"},"perUser":{"type":"integer"},"budget":{"type":"string","pattern":"^\\d+(\\.\\d{1,2})?$"},"rules":{"type":"object","properties":{"users":{"type":"array","items":{"type":"string","format":"uuid"}},"games":{"type":"array","items":{"type":"string"}},"services":{"type":"array","items":{"type":"string"}},"operations":{"type":"array","items":{"enum":["buy","prolong"]}},"amount":{"type":"string","pattern":"^\\d+(\\.\\d{1,2})?$"},"discountType":{"enum":["percent","fixed"]},"percent":{"type":"integer","minimum":1,"maximum":100},"service":{"type":"string"},"duration":{"type":"integer"},"color":{"type":"string"}}}},"required":["code","title","kind","state","startsAt","endsAt","maxUses","budget","rules","reason","requestKey"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/mail":{"get":{"summary":"Карточка / раздел: /admin/mail","operationId":"get__admin_mail","parameters":[],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}},"post":{"summary":"Почта: пароль не возвращается, требуется владелец","operationId":"post__admin_mail","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"requestKey":{"type":"string"},"reason":{"type":"string","minLength":3,"maxLength":500},"revision":{"type":"integer"},"value":{"type":"object"},"password":{"type":"string","writeOnly":true},"clearPassword":{"type":"boolean"}},"required":["revision","value","requestKey"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/integrations":{"get":{"summary":"Карточка / раздел: /admin/integrations","operationId":"get__admin_integrations","parameters":[],"security":[{"session":[]}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/servers/{id}/update":{"post":{"summary":"Сервер: update","operationId":"post__admin_servers_id_update","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"requestKey":{"type":"string"},"reason":{"type":"string","minLength":3,"maxLength":500},"revision":{"type":"integer"},"address":{"type":"string"},"queryPort":{"type":"integer"},"website":{"type":"string"},"contacts":{"type":"string"},"country":{"type":"string"},"ownerId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"banned":{"type":"boolean"}},"required":["requestKey","reason","revision"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/servers/{id}/owner":{"post":{"summary":"Сервер: owner","operationId":"post__admin_servers_id_owner","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"requestKey":{"type":"string"},"reason":{"type":"string","minLength":3,"maxLength":500},"revision":{"type":"integer"},"address":{"type":"string"},"queryPort":{"type":"integer"},"website":{"type":"string"},"contacts":{"type":"string"},"country":{"type":"string"},"ownerId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"banned":{"type":"boolean"}},"required":["requestKey","reason","revision"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/servers/{id}/archive":{"post":{"summary":"Сервер: archive","operationId":"post__admin_servers_id_archive","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"requestKey":{"type":"string"},"reason":{"type":"string","minLength":3,"maxLength":500},"revision":{"type":"integer"},"address":{"type":"string"},"queryPort":{"type":"integer"},"website":{"type":"string"},"contacts":{"type":"string"},"country":{"type":"string"},"ownerId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"banned":{"type":"boolean"}},"required":["requestKey","reason","revision"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/servers/{id}/restore":{"post":{"summary":"Сервер: restore","operationId":"post__admin_servers_id_restore","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"requestKey":{"type":"string"},"reason":{"type":"string","minLength":3,"maxLength":500},"revision":{"type":"integer"},"address":{"type":"string"},"queryPort":{"type":"integer"},"website":{"type":"string"},"contacts":{"type":"string"},"country":{"type":"string"},"ownerId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"banned":{"type":"boolean"}},"required":["requestKey","reason","revision"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/servers/{id}/ban":{"post":{"summary":"Сервер: ban","operationId":"post__admin_servers_id_ban","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"requestKey":{"type":"string"},"reason":{"type":"string","minLength":3,"maxLength":500},"revision":{"type":"integer"},"address":{"type":"string"},"queryPort":{"type":"integer"},"website":{"type":"string"},"contacts":{"type":"string"},"country":{"type":"string"},"ownerId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"banned":{"type":"boolean"}},"required":["requestKey","reason","revision"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/servers/{id}/probe":{"post":{"summary":"Сервер: probe","operationId":"post__admin_servers_id_probe","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"requestKey":{"type":"string"},"reason":{"type":"string","minLength":3,"maxLength":500},"revision":{"type":"integer"},"address":{"type":"string"},"queryPort":{"type":"integer"},"website":{"type":"string"},"contacts":{"type":"string"},"country":{"type":"string"},"ownerId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"banned":{"type":"boolean"}},"required":["requestKey","reason"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/users/{id}/update":{"post":{"summary":"Пользователь: update","operationId":"post__admin_users_id_update","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"requestKey":{"type":"string"},"reason":{"type":"string","minLength":3,"maxLength":500},"revision":{"type":"integer"},"login":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"disabled":{"type":"boolean"},"personalDiscount":{"type":"integer"}},"required":["requestKey","revision","reason"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/users/{id}/sessions":{"post":{"summary":"Пользователь: sessions","operationId":"post__admin_users_id_sessions","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"requestKey":{"type":"string"},"reason":{"type":"string","minLength":3,"maxLength":500},"revision":{"type":"integer"},"login":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"disabled":{"type":"boolean"},"personalDiscount":{"type":"integer"}},"required":["requestKey","revision","reason"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/mail/verify":{"post":{"summary":"Проверка SMTP без отправки письма","operationId":"post__admin_mail_verify","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/mail/test":{"post":{"summary":"Тестовое письмо на email владельца","operationId":"post__admin_mail_test","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"requestKey":{"type":"string"}},"required":["requestKey"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/my/coupons/preview":{"post":{"summary":"Проверить купон","operationId":"post__my_coupons_preview","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"serverId":{"type":"string","format":"uuid"},"requestKey":{"type":"string"}},"required":["code"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/my/coupons/redeem":{"post":{"summary":"Активировать купон атомарно","operationId":"post__my_coupons_redeem","parameters":[{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"serverId":{"type":"string","format":"uuid"},"requestKey":{"type":"string"}},"required":["code","requestKey"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}},"/admin/users/{id}/balance":{"post":{"summary":"Корректировка баланса; финансовая роль, отдельная проводка, без фиктивной оплаты","operationId":"post__admin_users_id_balance","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-CSRF-Token","in":"header","required":false,"schema":{"type":"string"}}],"security":[{"session":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"requestKey":{"type":"string"},"reason":{"type":"string","minLength":3,"maxLength":500},"balanceDelta":{"type":"string","pattern":"^-?\\d+(\\.\\d{1,2})?$"}},"required":["requestKey","reason","balanceDelta"]}}}},"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Неверные параметры"},"401":{"description":"Требуется вход"},"403":{"description":"Нет прав или неверный CSRF"},"409":{"description":"Конфликт / недоступность позиции / повторный ключ с другими параметрами"},"429":{"description":"Ограничение частоты"},"503":{"description":"Временная недоступность"}}}}},"components":{"securitySchemes":{"session":{"type":"apiKey","in":"cookie","name":"__Host-nextboost-session"},"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"nb_…"}},"schemas":{"Money":{"type":"string","pattern":"^\\d+\\.\\d{2}$","examples":["100.00"]},"Problem":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"required":["error"]}}}}