{
  "openapi": "3.0.0",
  "servers": [
    {
      "url": "https://api.ngenix.net/api/v3"
    }
  ],
  "info": {
    "description": "\nNGENIX Platform API предназначено для управления платформой NGENIX, аккаунтами и сервисами.\n\nБазовый URL: ```https://api.ngenix.net/api/v3/```\n\n**Элементы управления (кнопка Execute) в данном руководстве позволяют выполнять реальные запросы к API.**\n**Учитывайте это при тестировании.**\n\n\n### Как пользоваться API\n\n---------------------------\n\n\n### Структура\n\nИспользуется архитектура [HATEOAS](https://ru.wikipedia.org/wiki/HATEOAS):\nвся информация о возможных последующих вызовах содержится в ответах. URL\nсоответствуют объектам или коллекциям. Связи между объектами осуществляются\nчерез ссылки на связанные элементы. Для начала работы в рамках данной\nархитектуры, вам необходимо использовать точку старта – ```/```.\n\nОбъекты – конечные элементы информации, которые обладают уникальными свойствами.\nНапример, объектом является конкретная конфигурация, пользователь или список доступа.\nКоллекции: списки однородных объектов. Например, список конфигураций или пользователей.\n\nHTTP-методы для действия над объектами или коллекциями:\n  - GET: получение объекта или коллекции,\n  - POST: создание нового объекта в коллекции,\n  - PUT: полная реинициализация объекта,\n  - PATCH: модификация переданных атрибутов объекта,\n  - DELETE: удаление объекта.\n\n### Как получить информацию о структуре и вызовах API?\n\n1. Сделать запрос к точке старта:\n\n        GET /api/v3/\n\n2. Сделать запрос к **whoami**:\n\n        GET /api/v3/whoami\n\n   Ответ содержит ссылку на вашего пользователя, в примере - 1234567:\n\n   <details>\n     <summary><b>Cодержимое ответа</b></summary>\n\n        {\n          \"modelName\": \"WhoAmI\",\n          \"links\": {\n            \"self\": \"https://api.ngenix.net/api/v3/whoami\"\n          },\n          \"userRef\": {\n            \"id\": 1234567,\n            \"link\": \"https://api.ngenix.net/api/v3/user/1234567\"\n          }\n        }\n   </details>\n\n      В ответе, который представлен выше, есть все связи с дочерними и родительскими сущностями.\n\n3. Запрос информации конкретного пользователя:\n\n        GET /api/v3/user/1234567\n\n\n    Помимо информации о свойствах элемента ответ содержит ссылки:\n    - **self** (в блоке links) – всегда присутствующая ссылка на себя,\n    - **link** (в блоке userRef) – дополнительные ссылки для навигации по API, необходимые для выполнения связанных с объектом операций и получения доп.информации.\n\n    Таким образом вы получили ссылку на ваш аккаунт (в примере - 11111):\n\n    <details><summary><b>Cодержимое ответа</b></summary>\n\n        {\n          \"customerRef\": {\n            \"id\": 11111,\n            \"link\": \"https://api.ngenix.net/api/v3/customer/11111\"\n          },\n          \"email\": \"user@example.com\",\n          \"firstName\": \"\\u0421\\u0435\\u0440\\u0433\\u0435\\u0439\",\n          \"id\": 1234567,\n          \"lastName\": \"\\u0418\\u0432\\u0430\\u043d\\u043e\\u0432\",\n          \"links\": {\n            \"permissions\": \"https://api.ngenix.net/api/v3/user/1234567/permissions\",\n            \"self\": \"https://api.ngenix.net/api/v3/user/1234567\"\n          },\n          \"modelName\": \"User\",\n          \"phone\": \"+7(111)111-11-11\",\n          \"personalDataProcessing\": {\n            \"agreed\": \"true\",\n            \"agreedAt\": \"2019-03-11T12:00:00Z\",\n            \"modelName\": \"PersonalDataProcessing\"\n          }\n        }\n\n    </details>\n\n\n4. Запрос информации по аккаунту:\n\n        GET /api/v3/customer/11111\n\n    Блок links содержит дополнительные ссылки:\n\n   <details><summary><b>Cодержимое ответа</b></summary>\n\n        {\n          \"accountManager\": {\n            \"email\": \"some-manager@ngenix.net\",\n            \"firstName\": \"\\u0414\\u043c\\u0438\\u0442\\u0440\\u0438\\u0439\",\n            \"lastName\": \"\\u041a\\u0440\\u0438\\u043a\\u043e\\u0432\",\n            \"phone\": \"+79222222222\",\n            \"photoUrl\": \"https://photo.ngenix.net/1234567-160x200-ecff722d7acc9c26efb041851cac367c.png\",\n            \"position\": \"\\u0422\\u0435\\u0445\\u043d\\u0438\\u0447\\u0435\\u0441\\u043a\\u0438\\u0439 \\u0434\\u0438\\u0440\\u0435\\u043a\\u0442\\u043e\\u0440\"\n          },\n          \"accountOwner\": {\n            \"email\": \"owner@example.com\",\n            \"firstName\": \"\\u0414\\u043c\\u0438\\u0442\\u0440\\u0438\\u0439\",\n            \"lastName\": \"\\u041a\\u0440\\u0438\\u043a\\u043e\\u0432\",\n            \"phone\": \"+79333333333\",\n            \"photoUrl\": null\n          },\n          \"active\": true,\n          \"billingEmail\": null,\n          \"id\": 11111,\n          \"legalName\": null,\n          \"links\": {\n            \"availableServices\": \"https://api.ngenix.net/api/v3/customer/11111/available-services\",\n            \"configs\": \"https://api.ngenix.net/api/v3/config?customerId=11111\",\n            \"ownershipVerificationData\": \"https://api.ngenix.net/api/v3/customer/11111/ownership-verification-data\",\n            \"self\": \"https://api.ngenix.net/api/v3/customer/11111\",\n            \"services\": \"https://api.ngenix.net/api/v3/customer/11111/service\",\n            \"users\": \"https://api.ngenix.net/api/v3/user?customerId=11111\"\n          },\n          \"modelName\": \"Customer\",\n          \"name\": \"\\u041e\\u041e\\u041e \\\"\\u0422\\u0435\\u0441\\u0442\\u043e\\u0432\\u044b\\u0439 \\u0430\\u043a\\u043a\\u0430\\u0443\\u043d\\u0442\\\"\",\n          \"ncid\": null,\n          \"orderNum\": null,\n          \"sla\": \"standard\",\n          \"status\": \"setup\",\n          \"technicalAccountManager\": {\n            \"email\": \"some-technical-manager@ngenix.net\",\n            \"firstName\": \"\\u0414\\u043c\\u0438\\u0442\\u0440\\u0438\\u0439\",\n            \"lastName\": \"\\u041a\\u0440\\u0438\\u043a\\u043e\\u0432\",\n            \"phone\": \"+75551122333\",\n            \"photoUrl\": \"https://photo.ngenix.net/9020279-160x200-e6ff722d7a9c9c26efb041851cac367c.png\",\n            \"position\": \"\\u041c\\u0435\\u043d\\u0435\\u0434\\u0436\\u0435\\u0440\"\n          },\n          \"testingSettings\": {\n            \"testPeriodLength\": 14,\n            \"testStartDate\": null\n          }\n        }\n\n    </details>\n\n    Исходя из ссылок в блоке **links**, можно выполнить, например:\n\n    Запрос всех пользователей по аккаунту:\n\n          GET /api/v3/user?customerId=11111\n\n    Ответ содержит коллекцию **user**, где **elements** - это список пользователей:\n\n    <details><summary><b>Cодержимое ответа</b></summary>\n\n        {\n          \"elements\": [\n            {\n              \"links\": {\n                \"self\": \"http://api.ngenix.net/v3/api/v3/user/12345\"\n              },\n              \"id\": 12345\n            },\n            {\n              \"links\": {\n                \"self\": \"http://api.ngenix.net/v3/api/v3/user/23456\"\n              },\n              \"id\": 23456\n            },\n            {\n              \"links\": {\n                \"self\": \"http://api.ngenix.net/v3/api/v3/user/*****\"\n              }\n            }\n          ]\n        }\n\n    </details>\n\n    Каждый элемент в коллекции обязательно содержит уникальный идентификатор и ссылку на себя – **self**, а также может содержать некоторые дополнительные атрибуты.\n    Полное представление объекта и операции над ним доступны по ссылке на конкретный объект.\n\n---------------------------\n\n## Аутентификация\n \nAPI поддерживает 2 варианта аутентификации:\n\n- Через API-токен\n- Через OpenID\n\n### Через API-токен\n\nАутентификация вызовов выполняется путём передачи логина учётной записи пользователя и API-токена по протоколу HTTPS в режиме HTTP basic access authentication.\n \nДля получения API-токена необходимо в клиентском портале NGENIX Multidesk на страницах:\n\n- **[Мой профиль пользователя](https://my.ngenix.net/profile)** – если речь об Учётной записи пользователей клиентского портал NGENIX Multidesk.\n\nили\n\n- **[Роботы](https://my.ngenix.net/account/robots)** (страница доступна для Учетных записей пользователей с правом **Пользователи** в режиме **Просмотр**, действия доступны только для Учетных записей пользователей с ролью **Администратор**) – если речь об Учётных записях Роботов, используемых для более удобной интеграции сторонних систем с платформой NGENIX. Перейти на страницу **Управление профилем робота**.\n\nНа этих страницах вы можете сгенерировать новый API-токен для соответствующих учётных записей. Сохраните полученный токен локально, после закрытия окна с токеном повторно посмотреть его не удастся и придется создавать новый токен.\n\n> **Внимание**\n>\n> Доступ к API возможен только через актуальный API-токен (последний сгенерированный токен).\n>\n> При генерации нового API-токена, предыдущий сгенерированный API-токен инвалидируется и более непригоден для аутентификации вызовов NGENIX API.\n\n#### Пример аутентификации по токену\n \nВ качестве примеров запроса в этом разделе и далее будет использоваться curl.\n \n`curl -u <login>/token:<token> 'https://api.ngenix.net/...'`\n \nгде:\n\n- `<login>` — email используемый для входа в NGENIX MutiDesk\n- `/token` — команда на аутентификацию по токену\n- `<token>` — токен из NGENIX Multidesk\n\n### Через OpenID\n \nМетод используется только в документации API. \n\nПри выполнении запросов со страниц документации, пример запроса с помощью утилиты curl будет содержать заголовок `Authorization: Bearer`.\n\n\n  ### Ключевые особенности\n\n  Обратная совместимость при любых будущих изменениях этой спецификации\n  не гарантируется для моделей (schemas), не задействованных напрямую в описании\n  запросов и ответов.\n\n  Для моделей, задействованных непосредственно в описании запросов и ответов\n  гарантируется обратная совместимость набора и свойств полей (атрибутов), но\n  не гарантируется сохранение способа попадания этих полей в модель (пути наследования\n  и набор \"родительских\" моделей).\n\n  ### Общие рекомендации\n\n  Мы советуем проверять статус ответа от API при написании собственных приложений – это позволит избежать лишних обращений и сделает работу с API более предсказуемой.\n\n  ### Заголовок Content-Type\n\n  API ожидает данные в формате JSON с заголовком `Content-Type: application/json`.                                                                                                                          \n  Использование других значений Content-Type может привести к непредсказуемому поведению.\n",
    "version": "3.0",
    "title": "Описание работы с API\n"
  },
  "security": [
    {
      "bearerAuth": []
    },
    {
      "basicAuth": []
    }
  ],
  "tags": [
    {
      "name": "Авторизация в API",
      "description": "В этом разделе вы найдете ручки управления, относящиеся к авторизации в API управления NGENIX."
    },
    {
      "name": "Управление пользователями",
      "description": "В этом разделе вы найдете ручки управления, относящиеся к управлению пользователями личного кабинета и API на платформе NGENIX."
    },
    {
      "name": "Управление аккаунтом",
      "description": "В этом разделе вы найдете ручки управления, относящиеся к управлению аккаунтами на платформе NGENIX."
    },
    {
      "name": "Управление конфигурациями",
      "description": "В этом разделе вы найдете ручки управления, относящиеся к текущим настройкам ваших конфигураций на платформе NGENIX, а также изменению этих настроек."
    },
    {
      "name": "Очистка кэша",
      "description": "В этом разделе вы найдете ручки управления, относящиеся к управлению заданиями на очистку кэша на платформе NGENIX."
    },
    {
      "name": "Управление профилями защиты (Периметр)",
      "description": "В этом разделе вы найдете ручки управления, относящиеся к управлению профилями ПАК Периметр (при наличии у вас выделенного объекта защиты)."
    },
    {
      "name": "Управление DNS",
      "description": "В этом разделе вы найдете ручки управления, относящиеся к управлению DNS-зонами, делегированными на NS-сервера NGENIX."
    },
    {
      "name": "Управление списками",
      "description": "В этом разделе вы найдете ручки управления, относящиеся к управлению списками на платформе NGENIX."
    },
    {
      "name": "Преобразование изображений",
      "description": "В этом разделе вы найдете ручки управления, относящиеся к управлению политиками преобразования изображений."
    },
    {
      "name": "Управление обработкой запросов",
      "description": "В этом разделе вы найдете ручки управления, относящиеся к управлению правилами обработки запросов на платформе NGENIX."
    },
    {
      "name": "Управление таргет-группами DNS",
      "description": "В этом разделе вы найдете ручки управления, относящиеся к управлению объектами для DNS-балансировки."
    },
    {
      "name": "Сетевые префиксы платформы",
      "description": "В этом разделе вы найдете ручки API для получения информации о сетевых префиксах платформы NGENIX."
    },
    {
      "name": "Управление сервисом \"Облачный WAF\"",
      "description": "В этом разделе вы найдете ручки управления, относящиеся к управлению объектами сервиса \"Облачный WAF\" на платформе NGENIX."
    },
    {
      "name": "Управление хранением (S3)",
      "description": "В этом разделе вы найдете ручки управления, относящиеся к управлению объектами \"Корзина хранения данных\" S3-хранилища NGENIX."
    },
    {
      "name": "Управление заглушками DDoS-защиты",
      "description": "В этом разделе вы найдете ручки управления, относящиеся к управлению страницами-заглушками сервиса DDoS-защиты."
    },
    {
      "name": "Управление правилами проверки доступности",
      "description": "В этом разделе вы найдете ручки управления, относящиеся к управлению правилами проверки доступности для сервиса AHC"
    },
    {
      "name": "Управление уведомлениями",
      "description": "В этом разделе вы найдете ручки управления, относящиеся к управлению настройками оповещения о событиях."
    }
  ],
  "paths": {
    "/": {
      "get": {
        "tags": [
          "Авторизация в API"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/'\n```\n",
        "operationId": "ncdn.api_v3.handlers.entry_point.get",
        "summary": "Точка входа",
        "responses": {
          "200": {
            "$ref": "#/components/responses/entryPoint"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/whoami": {
      "get": {
        "tags": [
          "Авторизация в API"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/whoami'\n```\n",
        "operationId": "ncdn.api_v3.handlers.whoami.get",
        "summary": "Получение ссылки на данные пользователя",
        "responses": {
          "200": {
            "$ref": "#/components/responses/whoami"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/user": {
      "get": {
        "tags": [
          "Управление пользователями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/user?customerId=1234'\n```\n",
        "operationId": "ncdn.api_v3.handlers.user.collection.get",
        "summary": "Получение списка пользователей аккаунта",
        "parameters": [
          {
            "$ref": "#/components/parameters/queryCustomerId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/userCollection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "post": {
        "tags": [
          "Управление пользователями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X POST 'https://api.ngenix.net/api/v3/user' -H \"Content-Type: application/json\" -H \"accept: application/json\" -d 'Example Value'\n```\n",
        "operationId": "ncdn.api_v3.handlers.user.collection.post",
        "summary": "Добавление пользователя",
        "requestBody": {
          "$ref": "#/components/requestBodies/user"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/user"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/user/{id}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление пользователями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/user/12345'\n```\n",
        "operationId": "ncdn.api_v3.handlers.user.item.get",
        "summary": "Получение данных пользователя",
        "responses": {
          "200": {
            "$ref": "#/components/responses/user"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление пользователями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X PATCH 'https://api.ngenix.net/api/v3/user/12345' -H \"Content-Type: application/json\" -H \"accept: application/json\" -d 'Example Value'\n```\n",
        "operationId": "ncdn.api_v3.handlers.user.item.patch",
        "summary": "Изменение данных пользователя",
        "requestBody": {
          "$ref": "#/components/requestBodies/userUpdate"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/user"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "delete": {
        "tags": [
          "Управление пользователями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X DELETE 'https://api.ngenix.net/api/v3/user/12345'\n```\n",
        "operationId": "ncdn.api_v3.handlers.user.item.delete",
        "summary": "Удаление пользователя",
        "responses": {
          "204": {
            "$ref": "#/components/responses/noContent"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/user/{id}/permissions": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление пользователями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/user/12345/permissions'\n```\n",
        "operationId": "ncdn.api_v3.handlers.user.permissions.get",
        "summary": "Получение данных о правах доступа пользователя",
        "responses": {
          "200": {
            "$ref": "#/components/responses/userPermissions"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление пользователями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X PATCH 'https://api.ngenix.net/api/v3/user/12345/permissions'\n```\n",
        "operationId": "ncdn.api_v3.handlers.user.permissions.patch",
        "summary": "Изменение данных о правах доступа пользователя",
        "requestBody": {
          "$ref": "#/components/requestBodies/userPermissions"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/userPermissions"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/user/{id}/token": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление пользователями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/user/12345/token'\n```\n",
        "operationId": "ncdn.api_v3.handlers.user.token.get",
        "summary": "Получение первых символов постоянного токена",
        "responses": {
          "200": {
            "$ref": "#/components/responses/userToken"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "put": {
        "tags": [
          "Управление пользователями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X PUT 'https://api.ngenix.net/api/v3/user/12345/token'\n```\n",
        "operationId": "ncdn.api_v3.handlers.user.token.put",
        "summary": "Обновление и получение постоянного токена",
        "responses": {
          "200": {
            "$ref": "#/components/responses/userToken"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/user/{id}/api-access-policy": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление пользователями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/user/12345/api-access-policy'\n```\n",
        "operationId": "ncdn.api_v3.handlers.user.api_access_policy.get",
        "summary": "Получение дополнительных ограничений доступа",
        "responses": {
          "200": {
            "$ref": "#/components/responses/userApiAccessPolicy"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление пользователями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X PATCH 'https://api.ngenix.net/api/v3/user/12345/api-access-policy' -H \"Content-Type: application/json\" -H \"accept: application/json\" -d 'Example Value'\n```\n",
        "operationId": "ncdn.api_v3.handlers.user.api_access_policy.patch",
        "summary": "Изменение дополнительных ограничений доступа",
        "requestBody": {
          "$ref": "#/components/requestBodies/userApiAccessPolicy"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/userApiAccessPolicy"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/user/{id}/preferences": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление пользователями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/user/12345/preferences'\n```\n",
        "operationId": "ncdn.api_v3.handlers.user.preferences.item.get",
        "summary": "Получение данных о персональных настройках и избранном Пользователя",
        "responses": {
          "200": {
            "$ref": "#/components/responses/userPreferences"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление пользователями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X PATCH 'https://api.ngenix.net/api/v3/user/12345/preferences'\n```\n",
        "operationId": "ncdn.api_v3.handlers.user.preferences.item.patch",
        "summary": "Изменение данных о персональных настройках и избранном Пользователя",
        "requestBody": {
          "$ref": "#/components/requestBodies/userPreferences"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/userPreferences"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/customer/{id}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление аккаунтом"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/customer/12345'\n```\n",
        "operationId": "ncdn.api_v3.handlers.customer.item.get",
        "summary": "Получение параметров аккаунта",
        "responses": {
          "200": {
            "$ref": "#/components/responses/customer"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/customer/{id}/service": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление аккаунтом"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/customer/12345/service'\n```\n",
        "operationId": "ncdn.api_v3.handlers.customer.service.collection.get",
        "summary": "Получение списка параметров для аккаунта",
        "responses": {
          "200": {
            "$ref": "#/components/responses/customerServiceCollection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/customer/{id}/available-services": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление аккаунтом"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/customer/12345/available-services'\n```\n",
        "operationId": "ncdn.api_v3.handlers.customer.available_services.item.get",
        "summary": "Получение доступных сервисов",
        "responses": {
          "200": {
            "$ref": "#/components/responses/customerAvailableServices"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/customer/{id}/service/ral": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление аккаунтом"
        ],
        "description": "Параметры уровня аккаунта\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/customer/12345/service/ral'\n```\n",
        "operationId": "ncdn.api_v3.handlers.customer.service.ral.item.get",
        "summary": "Получение параметров сервиса Raw Access Logs",
        "responses": {
          "200": {
            "$ref": "#/components/responses/customerServiceSettingsRal"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление аккаунтом"
        ],
        "description": "Параметры уровня аккаунта\n```\ncurl -u \"email@company.ru/token:****\"\n-X PATCH 'https://api.ngenix.net/api/v3/customer/12345/service/ral'\n-H \"Content-Type: application/json\" -H \"accept: application/json\" -d 'Example Value'\n```\n",
        "operationId": "ncdn.api_v3.handlers.customer.service.ral.item.patch",
        "summary": "Изменение параметров сервиса Raw Access Logs",
        "requestBody": {
          "$ref": "#/components/requestBodies/customerServiceSettingsRal"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/customerServiceSettingsRal"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/customer/{id}/service/dns": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление аккаунтом"
        ],
        "description": "Параметры уровня аккаунта\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/customer/12345/service/dns'\n```\n",
        "operationId": "ncdn.api_v3.handlers.customer.service.dns.item.get",
        "summary": "Получение параметров сервиса Secure DNS",
        "responses": {
          "200": {
            "$ref": "#/components/responses/customerServiceSettingsDns"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/customer/{id}/service/aal": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление аккаунтом"
        ],
        "description": "Параметры уровня аккаунта\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/customer/12345/service/aal'\n```\n",
        "operationId": "ncdn.api_v3.handlers.customer.service.aal.item.get",
        "summary": "Получение параметров сервиса Advanced Analytics",
        "responses": {
          "200": {
            "$ref": "#/components/responses/customerServiceSettingsAal"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/customer/{id}/service/caf": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление аккаунтом"
        ],
        "description": "Параметры уровня аккаунта\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/customer/12345/service/caf'\n```\n",
        "operationId": "ncdn.api_v3.handlers.customer.service.caf.item.get",
        "summary": "Получение параметров сервиса Cloud WAF",
        "responses": {
          "200": {
            "$ref": "#/components/responses/customerServiceSettingsCaf"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/customer/{id}/service/cos": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление аккаунтом"
        ],
        "description": "Параметры уровня аккаунта\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/customer/12345/service/cos'\n```\n",
        "operationId": "ncdn.api_v3.handlers.customer.service.cos.item.get",
        "summary": "Получение параметров сервиса Cloud Object Storage",
        "responses": {
          "200": {
            "$ref": "#/components/responses/customerServiceSettingsCos"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/customer/{id}/service/rta": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление аккаунтом"
        ],
        "description": "Параметры уровня аккаунта\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/customer/12345/service/rta'\n```\n",
        "operationId": "ncdn.api_v3.handlers.customer.service.rta.item.get",
        "summary": "Получение параметров сервиса Real Time Analytics",
        "responses": {
          "200": {
            "$ref": "#/components/responses/customerServiceSettingsRta"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/customer/{id}/service/mdn": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление аккаунтом"
        ],
        "description": "Параметры уровня аккаунта\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/customer/12345/service/mdn'\n```\n",
        "operationId": "ncdn.api_v3.handlers.customer.service.mdn.item.get",
        "summary": "Получение параметров Managed Delivery Network",
        "responses": {
          "200": {
            "$ref": "#/components/responses/customerServiceSettingsMdn"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/customer/{id}/service/odc": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление аккаунтом"
        ],
        "description": "Параметры уровня аккаунта\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/customer/12345/service/odc'\n```\n",
        "operationId": "ncdn.api_v3.handlers.customer.service.odc.item.get",
        "summary": "Получение параметров Origin Direct Connect",
        "responses": {
          "200": {
            "$ref": "#/components/responses/customerServiceSettingsOdc"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/customer/{id}/ownership-verification-data": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление аккаунтом"
        ],
        "description": "Иные данные, используемые для проверки прав владения внешними объектами (зоны DNS, и т.п.)\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/customer/12345/ownership-verification-data'\n```\n",
        "operationId": "ncdn.api_v3.handlers.customer.verification.item.get",
        "summary": "Получение ключей и иных данных",
        "responses": {
          "200": {
            "$ref": "#/components/responses/customerVerification"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/config": {
      "get": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config?customerId=12345&active=true'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.collection.get",
        "summary": "Получение списка конфигураций",
        "parameters": [
          {
            "$ref": "#/components/parameters/queryCustomerId"
          },
          {
            "$ref": "#/components/parameters/queryOptionalStatus"
          },
          {
            "$ref": "#/components/parameters/queryOptionalService"
          },
          {
            "$ref": "#/components/parameters/queryOptionalIsServiceEnabled"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/configCollection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "post": {
        "tags": [
          "Управление конфигурациями"
        ],
        "summary": "Создание конфигурации",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.config.collection.post",
        "requestBody": {
          "$ref": "#/components/requestBodies/configCreate"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/config"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/config/{id}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config/12345'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.item.get",
        "summary": "Получение параметров конфигурации",
        "responses": {
          "200": {
            "$ref": "#/components/responses/config"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X PATCH 'https://api.ngenix.net/api/v3/config/12345'\n-H \"Content-Type: application/json\" -H \"accept: application/json\" -d 'Example Value'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.item.patch",
        "summary": "Изменение параметров конфигурации",
        "requestBody": {
          "$ref": "#/components/requestBodies/config"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/config"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/config/{id}/available-services": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config/12345/available-services'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.available_services.item.get",
        "summary": "Получение доступных сервисов данной конфигурации",
        "responses": {
          "200": {
            "$ref": "#/components/responses/configAvailableServices"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/config/{id}/service": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config/12345/service'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.collection.get",
        "summary": "Получение настроек сервисов конфигурации",
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsCollection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/config/{id}/service/lvs": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "Параметры уровня конфигурации\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config/12345/service/lvs'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.lvs.item.get",
        "summary": "Получение параметров сервиса Live Streaming",
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsLvs"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "Параметры уровня конфигурации\n```\ncurl -u \"email@company.ru/token:****\"\n-X PATCH 'https://api.ngenix.net/api/v3/config/12345/service/lvs'\n-H \"Content-Type: application/json\" -H \"accept: application/json\" -d 'Example Value'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.lvs.item.patch",
        "summary": "Изменение параметров сервиса Live Streaming",
        "requestBody": {
          "$ref": "#/components/requestBodies/configServiceSettingsLvs"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsLvs"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/config/{id}/service/srs": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "Параметры уровня конфигурации\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config/12345/service/srs'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.srs.item.get",
        "summary": "Получение параметров Segmented re-Streaming",
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsSrs"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "Параметры уровня конфигурации\n```\ncurl -u \"email@company.ru/token:****\"\n-X PATCH 'https://api.ngenix.net/api/v3/config/12345/service/srs'\n-H \"Content-Type: application/json\" -H \"accept: application/json\" -d 'Example Value'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.srs.item.patch",
        "summary": "Изменение параметров сервиса Segmented re-Streaming",
        "requestBody": {
          "$ref": "#/components/requestBodies/configServiceSettingsSrs"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsSrs"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/config/{id}/service/ods": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "Параметры уровня конфигурации\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config/12345/service/ods'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.ods.item.get",
        "summary": "Получение параметров on-Demand Streaming",
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsOds"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "Параметры уровня конфигурации\n```\ncurl -u \"email@company.ru/token:****\"\n-X PATCH 'https://api.ngenix.net/api/v3/config/12345/service/ods'\n-H \"Content-Type: application/json\" -H \"accept: application/json\" -d 'Example Value'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.ods.item.patch",
        "summary": "Изменение параметров сервиса on-Demand Streaming",
        "requestBody": {
          "$ref": "#/components/requestBodies/configServiceSettingsOds"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsOds"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/config/{id}/service/wsa": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "Параметры уровня конфигурации\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config/12345/service/wsa'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.wsa.item.get",
        "summary": "Получение параметров сервиса Website Acceleration",
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsWsa"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "Параметры уровня конфигурации\n```\ncurl -u \"email@company.ru/token:****\"\n-X PATCH 'https://api.ngenix.net/api/v3/config/12345/service/wsa'\n-H \"Content-Type: application/json\" -H \"accept: application/json\" -d 'Example Value'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.wsa.item.patch",
        "summary": "Изменение параметров сервиса Website Acceleration",
        "requestBody": {
          "$ref": "#/components/requestBodies/configServiceSettingsWsa"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsWsa"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/config/{id}/service/ssl": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config/12345/service/ssl'\n```\n",
        "summary": "Получение параметров SSL для конфигурации",
        "operationId": "ncdn.api_v3.handlers.config.service.ssl.item.get",
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsSsl"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X PATCH 'https://api.ngenix.net/api/v3/config/12345/service/ssl'\n-H \"Content-Type: application/json\" -H \"accept: application/json\" -d 'Example Value'\n```\n",
        "summary": "Изменение параметров SSL для конфигурации",
        "operationId": "ncdn.api_v3.handlers.config.service.ssl.item.patch",
        "requestBody": {
          "$ref": "#/components/requestBodies/configServiceSettingsSsl"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsSsl"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/config/{id}/service/hsl": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config/12345/service/hsl'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.hsl.item.get",
        "summary": "Получение параметров Hosted SSL для конфигурации",
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsHsl"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X PATCH 'https://api.ngenix.net/api/v3/config/12345/service/hsl'\n-H \"Content-Type: application/json\" -H \"accept: application/json\" -d 'Example Value'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.hsl.item.patch",
        "summary": "Изменение параметров Hosted SSL для конфигурации",
        "requestBody": {
          "$ref": "#/components/requestBodies/configServiceSettingsHsl"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsHsl"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/config/{id}/service/wal": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config/12345/service/wal'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.wal.item.get",
        "summary": "Получение параметров сервиса WAL",
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsWal"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X PATCH 'https://api.ngenix.net/api/v3/config/12345/service/wal'\n-H \"Content-Type: application/json\" -H \"accept: application/json\" -d\n'{\"wallarmMode\": \"block\"}'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.wal.item.patch",
        "summary": "Изменение параметров сервиса WAL",
        "requestBody": {
          "$ref": "#/components/requestBodies/configServiceSettingsWal"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsWal"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/config/{id}/service/ddp": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "Параметры уровня конфигурации\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config/12345/service/ddp'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.ddp.item.get",
        "summary": "Получение параметров сервиса DDoS Protection",
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsDdp"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "Параметры уровня конфигурации\n```\ncurl -u \"email@company.ru/token:****\"\n-X PATCH 'https://api.ngenix.net/api/v3/config/12345/service/ddp'\n-H \"Content-Type: application/json\" -H \"accept: application/json\" -d\n'{\"acls\": {\"whitelistRef\": {\"id\": 1000001}}}'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.ddp.item.patch",
        "summary": "Изменение параметров сервиса DDoS Protection",
        "requestBody": {
          "$ref": "#/components/requestBodies/configServiceSettingsDdp"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsDdp"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/config/{id}/service/oei": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "Параметры уровня конфигурации\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config/12345/service/oei'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.oei.item.get",
        "summary": "Получение параметров Origin Event Inspection",
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsOei"
          }
        }
      }
    },
    "/config/{id}/service/imo": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "Параметры уровня конфигурации\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config/12345/service/imo'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.imo.item.get",
        "summary": "Получение параметров Image Optimization",
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsImo"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "Параметры уровня конфигурации\n```\ncurl -u \"email@company.ru/token:****\"\n-X PATCH 'https://api.ngenix.net/api/v3/config/12345/service/imo'\n-H \"Content-Type: application/json\" -H \"accept: application/json\" -d 'Example Value'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.imo.item.patch",
        "summary": "Изменение параметров Image Optimization",
        "requestBody": {
          "$ref": "#/components/requestBodies/configServiceSettingsImo"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsImo"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/config/{id}/service/paf": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "Параметры уровня конфигурации\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config/12345/service/paf'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.paf.item.get",
        "summary": "Получение параметров Positive Application Firewall",
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsPaf"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/config/{id}/service/rls": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "Параметры уровня конфигурации\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config/12345/service/rls'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.rls.item.get",
        "summary": "Получение параметров Realtime Logs Streaming",
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsRls"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/config/{id}/service/rts": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "Параметры уровня конфигурации\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config/12345/service/rts'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.rts.item.get",
        "summary": "Получение параметров Realtime Streaming",
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsRts"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/config/{id}/service/trl": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config/12345/service/trl'\n```\n",
        "summary": "Получение параметров Tokenized URL конфигурации",
        "operationId": "ncdn.api_v3.handlers.config.service.trl.item.get",
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsTrl"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X PATCH 'https://api.ngenix.net/api/v3/config/12345/service/trl'\n-H \"Content-Type: application/json\" -H \"accept: application/json\" -d 'Example Value'\n```\n",
        "summary": "Изменение параметров Tokenized URL конфигурации",
        "operationId": "ncdn.api_v3.handlers.config.service.trl.item.patch",
        "requestBody": {
          "$ref": "#/components/requestBodies/configServiceSettingsTrl"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsTrl"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/config/{id}/service/prg": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config/12345/service/prg'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.prg.item.get",
        "summary": "Получение параметров Purge для конфигурации",
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsPrg"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/config/{id}/service/osd": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config/12345/service/osd'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.osd.item.get",
        "summary": "Получение параметров Origin Shield конфигурации",
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsOsd"
          }
        }
      }
    },
    "/config/{id}/service/elr": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config/12345/service/elr'\n```\n",
        "operationId": "ncdn.api_v3.handlers.config.service.elr.item.get",
        "summary": "Получение параметров сервиса ELR для конфигурации",
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsElr"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление конфигурациями"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X PATCH 'https://api.ngenix.net/api/v3/config/12345/service/elr'\n-H \"Content-Type: application/json\" -H \"accept: application/json\" -d 'Example Value'\n```\n",
        "summary": "Изменение параметров сервиса ELR для конфигурации",
        "operationId": "ncdn.api_v3.handlers.config.service.elr.item.patch",
        "requestBody": {
          "$ref": "#/components/requestBodies/configServiceSettingsElr"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/configServiceSettingsElr"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/purge-task": {
      "get": {
        "tags": [
          "Очистка кэша"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/purge-task'\n```\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/queryOptionalConfigId"
          },
          {
            "$ref": "#/components/parameters/queryOptionalCustomerId"
          }
        ],
        "operationId": "ncdn.api_v3.handlers.purge_task.collection.get",
        "summary": "Получение списка заданий на очистку кэша",
        "responses": {
          "200": {
            "$ref": "#/components/responses/purgeTaskCollection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "post": {
        "tags": [
          "Очистка кэша"
        ],
        "description": "\u003Cspan style=\"background:orange\"\u003E\n  Обратите внимание, что максимальное возможное количество одновременных заданий\n  на очистку кэша в статусе \"started\" – 100.\n\u003C/span\u003E\n```\ncurl -u \"email@company.ru/token:****\"\n-X POST 'https://api.ngenix.net/api/v3/purge-task'\n-H \"Content-Type: application/json\" -H \"accept: application/json\" -d 'Example Value'\n```\n",
        "operationId": "ncdn.api_v3.handlers.purge_task.collection.post",
        "summary": "Постановка задания на очистку кэша",
        "requestBody": {
          "$ref": "#/components/requestBodies/purgeTask"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/purgeTask"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/purge-task/{uuid}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathUuid"
        }
      ],
      "get": {
        "tags": [
          "Очистка кэша"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/purge-task/1g6yjk'\n```\n",
        "operationId": "ncdn.api_v3.handlers.purge_task.item.get",
        "summary": "Получение статуса задания на очистку кэша",
        "responses": {
          "200": {
            "$ref": "#/components/responses/purgeTask"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/image-transform-policy": {
      "get": {
        "tags": [
          "Преобразование изображений"
        ],
        "summary": "Получение политик преобразования изображений",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.image_transform_policy.collection.get",
        "parameters": [
          {
            "$ref": "#/components/parameters/queryCustomerId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/imageTransformPolicyCollection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "post": {
        "tags": [
          "Преобразование изображений"
        ],
        "summary": "Создание политики преобразования изображений",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.image_transform_policy.collection.post",
        "requestBody": {
          "$ref": "#/components/requestBodies/imageTransformPolicyCreate"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/imageTransformPolicy"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/image-transform-policy/{id}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Преобразование изображений"
        ],
        "summary": "Получение данных политики",
        "description": "Политика преобразования изображений",
        "operationId": "ncdn.api_v3.handlers.image_transform_policy.item.get",
        "responses": {
          "200": {
            "$ref": "#/components/responses/imageTransformPolicy"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Преобразование изображений"
        ],
        "summary": "Изменение данных политики",
        "description": "Политика преобразования изображений",
        "operationId": "ncdn.api_v3.handlers.image_transform_policy.item.patch",
        "requestBody": {
          "$ref": "#/components/requestBodies/imageTransformPolicy"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/imageTransformPolicy"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "delete": {
        "tags": [
          "Преобразование изображений"
        ],
        "summary": "Удаление политики преобразования изображений",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.image_transform_policy.item.delete",
        "responses": {
          "204": {
            "description": "The resource was deleted successfully."
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/managed-object/{id}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление профилями защиты (Периметр)"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/managed-object/4321'\n```\n",
        "operationId": "ncdn.api_v3.handlers.managed_object.item.get",
        "summary": "Получение данных о профиле анализа",
        "responses": {
          "200": {
            "$ref": "#/components/responses/managedObject"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/managed-object/{id}/status": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление профилями защиты (Периметр)"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/managed-object/4321/status'\n```\n",
        "operationId": "ncdn.api_v3.handlers.managed_object.status.item.get",
        "summary": "Получение статуса атак по профилю анализа",
        "responses": {
          "200": {
            "$ref": "#/components/responses/managedObjectStatus"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/notification-settings": {
      "get": {
        "tags": [
          "Управление уведомлениями"
        ],
        "summary": "Получение коллекции настроек оповещений",
        "description": "Фильтр по customerId и опциональный фильтр enabled.\nВ ближайшем обновлении API название ручки будет изменено\nна notification-rule,это связано с унификацией и стандартизацией API\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/queryCustomerId"
          },
          {
            "$ref": "#/components/parameters/queryOptionalEnabled"
          }
        ],
        "operationId": "ncdn.api_v3.handlers.notification_settings.collection.get",
        "responses": {
          "200": {
            "$ref": "#/components/responses/notificationSettingsCollection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "post": {
        "tags": [
          "Управление уведомлениями"
        ],
        "summary": "Создание настроек оповещения о конкретном событии",
        "description": "В ближайшем обновлении API название ручки будет изменено на\nnotification-rule, это связано с унификацией и стандартизацией API\n",
        "operationId": "ncdn.api_v3.handlers.notification_settings.collection.post",
        "requestBody": {
          "$ref": "#/components/requestBodies/notificationSettingsCreate"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/notificationSettings"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/notification-settings/{id}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление уведомлениями"
        ],
        "summary": "Получение настроек оповещения о конкретном событии",
        "description": "В ближайшем обновлении API название ручки будет изменено на\nnotification-rule, это связано с унификацией и стандартизацией API\n",
        "operationId": "ncdn.api_v3.handlers.notification_settings.item.get",
        "responses": {
          "200": {
            "$ref": "#/components/responses/notificationSettings"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление уведомлениями"
        ],
        "summary": "Изменение настроек оповещения о конкретном событии",
        "description": "В ближайшем обновлении API название ручки будет изменено на\nnotification-rule, это связано с унификацией и стандартизацией API\n",
        "operationId": "ncdn.api_v3.handlers.notification_settings.item.patch",
        "requestBody": {
          "$ref": "#/components/requestBodies/notificationSettingsUpdate"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/notificationSettings"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "delete": {
        "tags": [
          "Управление уведомлениями"
        ],
        "summary": "Удаление настроек оповещения о конкретном событии",
        "description": "В ближайшем обновлении API название ручки будет изменено на\nnotification-rule, это связано с унификацией и стандартизацией API\n",
        "operationId": "ncdn.api_v3.handlers.notification_settings.item.delete",
        "responses": {
          "204": {
            "description": "The resource was deleted successfully."
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/customer/{id}/service/vdc": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление аккаунтом"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/customer/12345/service/vdc'\n```\n",
        "operationId": "ncdn.api_v3.handlers.customer.service.vdc.item.get",
        "summary": "Получение настроек VDC",
        "responses": {
          "200": {
            "$ref": "#/components/responses/customerServiceSettingsVdc"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/customer/{id}/service/pro": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление аккаунтом"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/customer/12345/service/pro'\n```\n",
        "operationId": "ncdn.api_v3.handlers.customer.service.pro.item.get",
        "summary": "Получение настроек PRO",
        "responses": {
          "200": {
            "$ref": "#/components/responses/customerServiceSettingsPro"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/customer/{id}/service/elr": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление аккаунтом"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/customer/12345/service/elr'\n```\n",
        "summary": "Получение настроек ELR",
        "operationId": "ncdn.api_v3.handlers.customer.service.elr.item.get",
        "responses": {
          "200": {
            "$ref": "#/components/responses/customerServiceSettingsElr"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/customer/{id}/service/ecd": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление аккаунтом"
        ],
        "description": "Параметры уровня аккаунта\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/customer/12345/service/ecd'\n```\n",
        "operationId": "ncdn.api_v3.handlers.customer.service.ecd.item.get",
        "summary": "Получение параметров сервиса Edge Cloud Delivery",
        "responses": {
          "200": {
            "$ref": "#/components/responses/customerServiceSettingsEcd"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/customer/{id}/service/ahc": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление аккаунтом"
        ],
        "description": "Параметры уровня аккаунта\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/customer/12345/service/ahc'\n```\n",
        "operationId": "ncdn.api_v3.handlers.customer.service.ahc.item.get",
        "summary": "Получение параметров сервиса Active Health Check",
        "responses": {
          "200": {
            "$ref": "#/components/responses/customerServiceSettingsAhc"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/customer/{id}/limits": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "summary": "Получение лимитов потребления",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.customer.limits.get",
        "responses": {
          "200": {
            "$ref": "#/components/responses/customerLimits"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/stub-page": {
      "get": {
        "tags": [
          "Управление заглушками DDoS-защиты"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/stub-page?customerId=1234'\n```\n",
        "summary": "Получение списка настроек для страниц-заглушек",
        "operationId": "ncdn.api_v3.handlers.stub_page.collection.get",
        "parameters": [
          {
            "$ref": "#/components/parameters/queryCustomerId"
          },
          {
            "$ref": "#/components/parameters/queryOptionalStubPagePurpose"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/stubPageCollection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "post": {
        "tags": [
          "Управление заглушками DDoS-защиты"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X POST 'https://api.ngenix.net/api/v3/stub-page'\n-H \"Content-Type: application/json\" -H \"Accept: application/json\" -d 'Stub Page Data'\n```\n",
        "summary": "Создание настроек для страницы-заглушки",
        "operationId": "ncdn.api_v3.handlers.stub_page.collection.post",
        "requestBody": {
          "$ref": "#/components/requestBodies/stubPage"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/stubPage"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/stub-page/{id}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление заглушками DDoS-защиты"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/stub-page/100500'\n```\n",
        "summary": "Получение настроек для страницы-заглушки",
        "operationId": "ncdn.api_v3.handlers.stub_page.item.get",
        "responses": {
          "200": {
            "$ref": "#/components/responses/stubPage"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление заглушками DDoS-защиты"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X PATCH 'https://api.ngenix.net/api/v3/stub-page/100500'\n-H \"Content-Type: application/json\" -H \"Accept: application/json\" -d 'Stub Page Value'\n```\n",
        "summary": "Изменение настроек для страницы-заглушки",
        "operationId": "ncdn.api_v3.handlers.stub_page.item.patch",
        "requestBody": {
          "$ref": "#/components/requestBodies/stubPageUpdate"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/stubPage"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "delete": {
        "tags": [
          "Управление заглушками DDoS-защиты"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X DELETE 'https://api.ngenix.net/api/v3/stub-page/100500'\n```\n",
        "summary": "Удаление настроек для страницы-заглушки",
        "operationId": "ncdn.api_v3.handlers.stub_page.item.delete",
        "responses": {
          "204": {
            "description": "The resource was deleted successfully."
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/dns-zone": {
      "get": {
        "tags": [
          "Управление DNS"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/dns-zone'\n```\n",
        "operationId": "ncdn.api_v3.handlers.dns_zone.collection.get",
        "summary": "Получение списка зон DNS",
        "parameters": [
          {
            "$ref": "#/components/parameters/queryCustomerId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/dnsZoneCollection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "post": {
        "tags": [
          "Управление DNS"
        ],
        "summary": "Создание зоны DNS",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.dns_zone.collection.post",
        "requestBody": {
          "$ref": "#/components/requestBodies/dnsZoneCreate"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/dnsZone"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/dns-zone/{dnsZoneId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathDnsZoneId"
        }
      ],
      "get": {
        "tags": [
          "Управление DNS"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/dns-zone/1324'\n```\n",
        "operationId": "ncdn.api_v3.handlers.dns_zone.item.get",
        "summary": "Получение данных о зоне DNS",
        "responses": {
          "200": {
            "$ref": "#/components/responses/dnsZone"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление DNS"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X PATCH 'https://api.ngenix.net/api/v3/dns-zone'\n-H \"Content-Type: application/json\" -H \"accept: application/json\" -d 'Example Value'\n```\n",
        "operationId": "ncdn.api_v3.handlers.dns_zone.item.patch",
        "summary": "Обновление данных о зоне DNS",
        "requestBody": {
          "$ref": "#/components/requestBodies/dnsZone"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/dnsZone"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "delete": {
        "tags": [
          "Управление DNS"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X DELETE 'https://api.ngenix.net/api/v3/dns-zone/1324'\n```\n",
        "operationId": "ncdn.api_v3.handlers.dns_zone.item.delete",
        "summary": "Удаление зоны DNS",
        "responses": {
          "204": {
            "description": "The resource was deleted successfully."
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/dns-zone/{dnsZoneId}/version": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathDnsZoneId"
        }
      ],
      "get": {
        "tags": [
          "Управление DNS"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/dns-zone/12345/version'\n```\n",
        "operationId": "ncdn.api_v3.handlers.dns_zone.version.collection.get",
        "summary": "Получение списка версий зоны DNS",
        "responses": {
          "200": {
            "$ref": "#/components/responses/dnsZoneVersionCollection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/dns-zone/{dnsZoneId}/version/{versionId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathDnsZoneId"
        },
        {
          "$ref": "#/components/parameters/pathVersionId"
        }
      ],
      "get": {
        "tags": [
          "Управление DNS"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/dns-zone/1324/version/1'\n```\n",
        "operationId": "ncdn.api_v3.handlers.dns_zone.version.item.get",
        "summary": "Получение данных о версии зоны DNS",
        "responses": {
          "200": {
            "$ref": "#/components/responses/dnsZoneVersion"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/dnssec-key": {
      "get": {
        "tags": [
          "Управление DNS"
        ],
        "summary": "Получение списка публичных ключей DNSSEC",
        "operationId": "ncdn.api_v3.handlers.dnssec_key.collection.get",
        "parameters": [
          {
            "$ref": "#/components/parameters/queryCustomerId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/dnssecKeyCollection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "post": {
        "tags": [
          "Управление DNS"
        ],
        "summary": "Выпуск нового ключа",
        "operationId": "ncdn.api_v3.handlers.dnssec_key.collection.post",
        "requestBody": {
          "$ref": "#/components/requestBodies/dnssecKeyCreate"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/dnssecKey"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/dnssec-key/{id}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление DNS"
        ],
        "summary": "Получение данных публичного ключа DNSSEC",
        "operationId": "ncdn.api_v3.handlers.dnssec_key.item.get",
        "responses": {
          "200": {
            "$ref": "#/components/responses/dnssecKey"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "delete": {
        "tags": [
          "Управление DNS"
        ],
        "summary": "Удаление публичного ключа DNSSEC",
        "operationId": "ncdn.api_v3.handlers.dnssec_key.item.delete",
        "responses": {
          "204": {
            "description": "The resource was deleted successfully."
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/traffic-pattern": {
      "get": {
        "tags": [
          "Управление списками"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/traffic-pattern?customerId=12345'\n```\n",
        "summary": "Получение списков значений ACL-фильтров аккаунта",
        "operationId": "ncdn.api_v3.handlers.traffic_pattern.collection.get",
        "parameters": [
          {
            "$ref": "#/components/parameters/queryCustomerId"
          },
          {
            "$ref": "#/components/parameters/queryOptionalTrafficPatternType"
          },
          {
            "$ref": "#/components/parameters/queryOptionalTrafficPatternSource"
          },
          {
            "$ref": "#/components/parameters/queryOptionalTrafficPatternContentType"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/trafficPatternCollection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "post": {
        "tags": [
          "Управление списками"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X POST 'https://api.ngenix.net/api/v3/traffic-pattern?customerId=12345'\n-H \"Content-Type: application/json\" -H \"accept: application/json\" -d 'Example Value'\n```\n",
        "summary": "Создание нового списка",
        "operationId": "ncdn.api_v3.handlers.traffic_pattern.collection.post",
        "requestBody": {
          "$ref": "#/components/requestBodies/trafficPatternCreate"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/trafficPattern"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/traffic-pattern/{id}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление списками"
        ],
        "description": "Фильтрация по id\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/traffic-pattern/123'\n```\n",
        "summary": "Получение списка значений для правил фильтрации",
        "operationId": "ncdn.api_v3.handlers.traffic_pattern.item.get",
        "responses": {
          "200": {
            "$ref": "#/components/responses/trafficPattern"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление списками"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X PATCH 'https://api.ngenix.net/api/v3/traffic-pattern/123'\n-H \"Content-Type: application/json\" -H \"accept: application/json\" -d 'Example Value'\n```\n",
        "summary": "Изменение списка значений для правил фильтрации",
        "operationId": "ncdn.api_v3.handlers.traffic_pattern.item.patch",
        "requestBody": {
          "$ref": "#/components/requestBodies/trafficPatternUpdate"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/trafficPattern"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "delete": {
        "tags": [
          "Управление списками"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X DELETE 'https://api.ngenix.net/api/v3/traffic-pattern/123'\n```\n",
        "summary": "Удаление списка правил по id",
        "operationId": "ncdn.api_v3.handlers.traffic_pattern.item.delete",
        "responses": {
          "204": {
            "description": "The resource was deleted successfully."
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/traffic-pattern/{id}/task": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        },
        {
          "$ref": "#/components/parameters/queryTrafficPatternTaskStatus"
        }
      ],
      "get": {
        "tags": [
          "Управление списками"
        ],
        "description": "По выбранному списку значений\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/traffic-pattern/123/task'\n```\n",
        "summary": "Получение последних задач для правил фильтрации",
        "operationId": "ncdn.api_v3.handlers.traffic_pattern.task.collection.get",
        "responses": {
          "200": {
            "$ref": "#/components/responses/trafficPatternTaskCollection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "post": {
        "tags": [
          "Управление списками"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X POST 'https://api.ngenix.net/api/v3/traffic-pattern/123/task'\n-H \"Content-Type: application/json\" -H \"accept: application/json\" -d 'Example Value'\n```\n",
        "summary": "Создание задачи на изменение элементов списка",
        "operationId": "ncdn.api_v3.handlers.traffic_pattern.task.collection.post",
        "requestBody": {
          "$ref": "#/components/requestBodies/trafficPatternTaskCreate"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/trafficPatternTask"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/traffic-pattern/{id}/task/{taskId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        },
        {
          "$ref": "#/components/parameters/pathTrafficPatternTaskId"
        }
      ],
      "get": {
        "tags": [
          "Управление списками"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/traffic-pattern/123/task/4321'\n```\n",
        "summary": "Получение информации по выбранной задаче",
        "operationId": "ncdn.api_v3.handlers.traffic_pattern.task.item.get",
        "responses": {
          "200": {
            "$ref": "#/components/responses/trafficPatternTask"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/ruleset": {
      "get": {
        "tags": [
          "Управление обработкой запросов"
        ],
        "summary": "Получение коллекции наборов правил",
        "description": "Опциональные фильтры по ID аккаунта и состоянию набора правил",
        "operationId": "ncdn.api_v3.handlers.ruleset.collection.get",
        "parameters": [
          {
            "$ref": "#/components/parameters/queryOptionalCustomerId"
          },
          {
            "$ref": "#/components/parameters/queryOptionalEnabled"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/rulesetCollection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "post": {
        "tags": [
          "Управление обработкой запросов"
        ],
        "summary": "Создание набора правил",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.ruleset.collection.post",
        "requestBody": {
          "$ref": "#/components/requestBodies/rulesetCreate"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/ruleset"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/ruleset/{id}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление обработкой запросов"
        ],
        "summary": "Получение набора правил",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.ruleset.item.get",
        "responses": {
          "200": {
            "$ref": "#/components/responses/ruleset"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление обработкой запросов"
        ],
        "summary": "Изменение набора правил",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.ruleset.item.patch",
        "requestBody": {
          "$ref": "#/components/requestBodies/rulesetUpdate"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/ruleset"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "delete": {
        "tags": [
          "Управление обработкой запросов"
        ],
        "summary": "Удаление набора правил",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.ruleset.item.delete",
        "responses": {
          "204": {
            "description": "The resource was deleted successfully."
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/cloud-waf-instance": {
      "get": {
        "tags": [
          "Управление сервисом \"Облачный WAF\""
        ],
        "summary": "Получение коллекции объектов \"Экземпляр ПО WAF\"",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.cloud_waf_instance.collection.get",
        "parameters": [
          {
            "$ref": "#/components/parameters/queryCustomerId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/cloudWafInstanceCollection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/cloud-waf-instance/{id}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление сервисом \"Облачный WAF\""
        ],
        "summary": "Получение объекта \"Экземпляр ПО WAF\"",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.cloud_waf_instance.item.get",
        "responses": {
          "200": {
            "$ref": "#/components/responses/cloudWafInstance"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/cloud-waf": {
      "get": {
        "tags": [
          "Управление сервисом \"Облачный WAF\""
        ],
        "summary": "Получение коллекции объектов \"Облачный WAF\"",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.cloud_waf.collection.get",
        "parameters": [
          {
            "$ref": "#/components/parameters/queryCustomerId"
          },
          {
            "$ref": "#/components/parameters/queryOptionalCloudWafInstanceId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/cloudWafCollection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "post": {
        "tags": [
          "Управление сервисом \"Облачный WAF\""
        ],
        "summary": "Создание объекта \"Облачный WAF\"",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.cloud_waf.collection.post",
        "requestBody": {
          "$ref": "#/components/requestBodies/cloudWaf"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/cloudWaf"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/cloud-waf/{id}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление сервисом \"Облачный WAF\""
        ],
        "summary": "Получение объекта \"Облачный WAF\"",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.cloud_waf.item.get",
        "responses": {
          "200": {
            "$ref": "#/components/responses/cloudWaf"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление сервисом \"Облачный WAF\""
        ],
        "summary": "Изменение объекта \"Облачный WAF\"",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.cloud_waf.item.patch",
        "requestBody": {
          "$ref": "#/components/requestBodies/cloudWaf"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/cloudWaf"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "delete": {
        "tags": [
          "Управление сервисом \"Облачный WAF\""
        ],
        "summary": "Удаление объекта \"Облачный WAF\"",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.cloud_waf.item.delete",
        "responses": {
          "204": {
            "description": "The resource was deleted successfully."
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/target-group": {
      "get": {
        "tags": [
          "Управление таргет-группами DNS"
        ],
        "description": "Для DNS-балансировки, фильтр по id аккаунта\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/target-group'\n```\n",
        "summary": "Получение списка наборов объектов",
        "operationId": "ncdn.api_v3.handlers.target_group.collection.get",
        "parameters": [
          {
            "$ref": "#/components/parameters/queryCustomerId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/targetGroupCollection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/target-group/{id}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление таргет-группами DNS"
        ],
        "description": "Для DNS-балансировки\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/target-group/123'\n```\n",
        "summary": "Получение данных о наборе объектов",
        "operationId": "ncdn.api_v3.handlers.target_group.item.get",
        "responses": {
          "200": {
            "$ref": "#/components/responses/targetGroup"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/ip-prefix": {
      "get": {
        "tags": [
          "Сетевые префиксы платформы"
        ],
        "summary": "Cписок сетевых префиксов платформы",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.ip_prefix.collection.get",
        "responses": {
          "200": {
            "$ref": "#/components/responses/ipPrefixCollection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/ip-prefix/{id}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Сетевые префиксы платформы"
        ],
        "summary": "Информация о сетевом префиксе",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.ip_prefix.item.get",
        "responses": {
          "200": {
            "$ref": "#/components/responses/ipPrefix"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/storage-bucket": {
      "get": {
        "tags": [
          "Управление хранением (S3)"
        ],
        "description": "Фильтр по id аккаунта\nОпциональный фильтр по статусу\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/storage-bucket'\n```\n",
        "summary": "Получение списка корзин хранения данных",
        "operationId": "ncdn.api_v3.handlers.storage_bucket.collection.get",
        "parameters": [
          {
            "$ref": "#/components/parameters/queryCustomerId"
          },
          {
            "$ref": "#/components/parameters/queryOptionalStorageBucketStatus"
          },
          {
            "$ref": "#/components/parameters/queryOptionalStorageBucketType"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/storageBucketCollection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/storage-bucket/{id}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление хранением (S3)"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/storage-bucket/123'\n```\n",
        "summary": "Получение данных о корзине хранения данных",
        "operationId": "ncdn.api_v3.handlers.storage_bucket.item.get",
        "responses": {
          "200": {
            "$ref": "#/components/responses/storageBucket"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/s3-key": {
      "get": {
        "tags": [
          "Управление хранением (S3)"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/s3-key'\n```\n",
        "summary": "Получение S3 ключей для КХД, коллекция",
        "operationId": "ncdn.api_v3.handlers.s3_key.collection.get",
        "parameters": [
          {
            "$ref": "#/components/parameters/queryCustomerId"
          },
          {
            "$ref": "#/components/parameters/queryOptionalUserId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/s3KeyPairCollection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "post": {
        "tags": [
          "Управление хранением (S3)"
        ],
        "summary": "Создание S3 ключа для КХД",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.s3_key.collection.post",
        "requestBody": {
          "$ref": "#/components/requestBodies/s3KeyPair"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/s3KeyPair"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/s3-key/{id}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление хранением (S3)"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/s3-key/54778'\n```\n",
        "summary": "Возвращает элемент колекции S3 ключей для КХД",
        "operationId": "ncdn.api_v3.handlers.s3_key.item.get",
        "responses": {
          "200": {
            "$ref": "#/components/responses/s3KeyPair"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "put": {
        "tags": [
          "Управление хранением (S3)"
        ],
        "description": "Для сброса и получения secret key нужно отправить запрос с пустым телом\n```\ncurl -u \"email@company.ru/token:****\"\n-X PUT 'https://api.ngenix.net/api/v3/s3-key/54778'\n```\n",
        "summary": "Сброс S3 secret key для КХД и возврат в ответе",
        "operationId": "ncdn.api_v3.handlers.s3_key.item.put",
        "requestBody": {
          "$ref": "#/components/requestBodies/emptyBody"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/s3KeyPair"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "delete": {
        "tags": [
          "Управление хранением (S3)"
        ],
        "description": "```\ncurl -u \"email@company.ru/token:****\"\n-X DELETE 'https://api.ngenix.net/api/v3/s3-key/54778'\n```\n",
        "summary": "Удаление S3 ключа для КХД",
        "operationId": "ncdn.api_v3.handlers.s3_key.item.delete",
        "responses": {
          "204": {
            "description": "The resource was deleted successfully."
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/availability-check-rule": {
      "get": {
        "tags": [
          "Управление правилами проверки доступности"
        ],
        "summary": "Получение коллекции правил проверки доступности",
        "description": "Обязательный фильтр по ID аккаунта и опциональный — по признаку активности правил",
        "operationId": "ncdn.api_v3.handlers.availability_check_rule.collection.get",
        "parameters": [
          {
            "$ref": "#/components/parameters/queryCustomerId"
          },
          {
            "$ref": "#/components/parameters/queryOptionalHttpChecksEnabled"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/availabilityCheckRuleCollection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "post": {
        "tags": [
          "Управление правилами проверки доступности"
        ],
        "summary": "Создание правила проверки доступности",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.availability_check_rule.collection.post",
        "requestBody": {
          "$ref": "#/components/requestBodies/availabilityCheckRuleCreate"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/availabilityCheckRule"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/availability-check-rule/{id}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление правилами проверки доступности"
        ],
        "summary": "Получение правила проверки доступности",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.availability_check_rule.item.get",
        "responses": {
          "200": {
            "$ref": "#/components/responses/availabilityCheckRule"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "patch": {
        "tags": [
          "Управление правилами проверки доступности"
        ],
        "summary": "Изменение правила проверки доступности",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.availability_check_rule.item.patch",
        "requestBody": {
          "$ref": "#/components/requestBodies/availabilityCheckRuleUpdate"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/availabilityCheckRule"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      },
      "delete": {
        "tags": [
          "Управление правилами проверки доступности"
        ],
        "summary": "Удаление правила проверки доступности",
        "description": "",
        "operationId": "ncdn.api_v3.handlers.availability_check_rule.item.delete",
        "responses": {
          "204": {
            "description": "The resource was deleted successfully."
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/direct-connection": {
      "get": {
        "tags": [
          "Управление прямыми подключениями к платформе"
        ],
        "summary": "Получение коллекции физических подключений",
        "description": "Прямое подключение между клиентом и платформой",
        "operationId": "ncdn.api_v3.handlers.direct_connection.collection.get",
        "parameters": [
          {
            "$ref": "#/components/parameters/queryCustomerId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/directConnectionCollection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    },
    "/direct-connection/{id}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pathId"
        }
      ],
      "get": {
        "tags": [
          "Управление прямыми подключениями к платформе"
        ],
        "summary": "Получение объекта прямого подключения",
        "description": "Прямое подключение между клиентом и платформой",
        "operationId": "ncdn.api_v3.handlers.direct_connection.item.get",
        "responses": {
          "200": {
            "$ref": "#/components/responses/directConnection"
          },
          "default": {
            "$ref": "#/components/responses/error"
          }
        }
      }
    }
  },
  "components": {
    "parameters": {
      "pathId": {
        "name": "id",
        "in": "path",
        "required": true,
        "description": "Числовой идентификатор объекта (на первом уровне вложенности)",
        "schema": {
          "type": "integer",
          "minimum": 1,
          "example": 12345
        }
      },
      "pathUuid": {
        "name": "uuid",
        "in": "path",
        "required": true,
        "description": "Строковый идентификатор объекта (на первом уровне вложенности)",
        "schema": {
          "type": "string",
          "format": "uuid",
          "minLength": 1,
          "example": "550e8400-e29b-41d4-a716-446655440000"
        }
      },
      "queryOptionalConfigId": {
        "in": "query",
        "name": "configId",
        "description": "Идентификатор конфигурации",
        "schema": {
          "type": "integer",
          "minimum": 1,
          "example": 12345
        }
      },
      "queryCustomerId": {
        "in": "query",
        "name": "customerId",
        "required": true,
        "description": "Идентификатор аккаунта (Customer ID)",
        "schema": {
          "type": "integer",
          "minimum": 1,
          "example": 12345
        }
      },
      "queryOptionalUserId": {
        "in": "query",
        "name": "userId",
        "description": "Идентификатор пользователя",
        "schema": {
          "type": "integer",
          "minimum": 1,
          "example": 12345
        }
      },
      "queryOptionalCustomerId": {
        "in": "query",
        "name": "customerId",
        "description": "Идентификатор аккаунта (Customer ID)",
        "schema": {
          "type": "integer",
          "minimum": 1,
          "example": 12345
        }
      },
      "queryOptionalStatus": {
        "name": "active",
        "in": "query",
        "required": false,
        "description": "Ограничение по текущему статусу конфигурации: активные или приостановленные.\n",
        "schema": {
          "type": "boolean",
          "example": true
        }
      },
      "queryOptionalIsServiceEnabled": {
        "name": "serviceEnabled",
        "in": "query",
        "required": false,
        "description": "Ограничение по текущему статусу сервиса в конфигурации: включен или выключен.\n",
        "schema": {
          "type": "boolean",
          "example": true
        }
      },
      "queryOptionalService": {
        "name": "service",
        "in": "query",
        "required": false,
        "description": "Ограничение по типу сервиса: найти все конфигурации, для которых актуален указанный сервис\n",
        "schema": {
          "type": "string",
          "enum": [
            "lvs",
            "srs",
            "ods",
            "rts",
            "prg",
            "trl",
            "ssl",
            "hsl",
            "rta",
            "aal",
            "dns",
            "ral",
            "ddp",
            "wal",
            "cos",
            "mdn",
            "wsa",
            "rls",
            "paf",
            "imo",
            "oei",
            "vdc",
            "osd",
            "elr",
            "bot"
          ],
          "example": "srs"
        }
      },
      "queryOptionalEnabled": {
        "name": "enabled",
        "in": "query",
        "required": false,
        "description": "Ограничение по текущему статусу: включен или выключен.\n",
        "schema": {
          "type": "boolean"
        }
      },
      "queryOptionalCloudWafInstanceId": {
        "in": "query",
        "name": "cloudWafInstanceId",
        "description": "Идентификатор экземпляра ПО WAF",
        "schema": {
          "type": "integer",
          "minimum": 1,
          "example": 12345
        }
      },
      "pathTrafficPatternTaskId": {
        "name": "taskId",
        "in": "path",
        "required": true,
        "description": "Идентификатор задания",
        "schema": {
          "type": "integer",
          "minimum": 1,
          "example": 3
        }
      },
      "pathStorageBucketId": {
        "name": "storageBucketId",
        "in": "path",
        "required": true,
        "description": "Идентификатор КХД",
        "schema": {
          "type": "integer",
          "minimum": 1,
          "example": 3
        }
      },
      "queryOptionalTrafficPatternType": {
        "name": "type",
        "in": "query",
        "required": false,
        "description": "Фильтр по типу списков доступа\n",
        "schema": {
          "type": "string",
          "enum": [
            "blacklist",
            "whitelist",
            "filterlist",
            "commonlist"
          ],
          "example": "blacklist"
        }
      },
      "queryOptionalTrafficPatternSource": {
        "name": "source",
        "in": "query",
        "required": false,
        "description": "Фильтр по источнику списков доступа",
        "schema": {
          "type": "string",
          "enum": [
            "customer",
            "antiddos",
            "predefined",
            "system"
          ],
          "example": "customer"
        }
      },
      "queryOptionalTrafficPatternContentType": {
        "name": "contentType",
        "in": "query",
        "required": false,
        "description": "Фильтр по contentType",
        "schema": {
          "type": "string",
          "enum": [
            "addr",
            "commonString",
            "countryCode",
            "httpMethod",
            "asn",
            "md5HashString"
          ],
          "example": "addr"
        }
      },
      "queryOptionalStorageBucketStatus": {
        "name": "status",
        "in": "query",
        "required": false,
        "description": "Опциональный параметр - состояние корзин хранения данных (активен, создаётся)\n",
        "schema": {
          "type": "string",
          "enum": [
            "create_pending",
            "active"
          ]
        }
      },
      "queryOptionalStorageBucketType": {
        "name": "type",
        "in": "query",
        "required": false,
        "description": "Опциональный параметр - тип корзин хранения данных (пользовательская, системная)\n",
        "schema": {
          "type": "string",
          "enum": [
            "customer",
            "system"
          ]
        }
      },
      "queryTrafficPatternTaskStatus": {
        "name": "status",
        "in": "query",
        "required": false,
        "description": "Опциональный параметр - статус задачи на изменение элементов списка для правил фильтрации\n",
        "schema": {
          "type": "string",
          "enum": [
            "created",
            "success",
            "failed"
          ]
        }
      },
      "pathDnsZoneId": {
        "name": "dnsZoneId",
        "in": "path",
        "required": true,
        "description": "Идентификатор зоны DNS",
        "schema": {
          "type": "integer",
          "minimum": 1,
          "example": 3
        }
      },
      "pathVersionId": {
        "name": "versionId",
        "in": "path",
        "required": true,
        "description": "Идентификатор версии",
        "schema": {
          "type": "integer",
          "minimum": 1,
          "example": 3
        }
      },
      "queryOptionalHttpChecksEnabled": {
        "name": "httpChecksEnabled",
        "in": "query",
        "description": "Опциональный параметр - фильтр по параметру httpChecksEnabled проверок доступности",
        "schema": {
          "type": "boolean"
        }
      },
      "queryOptionalStubPagePurpose": {
        "name": "purpose",
        "in": "query",
        "description": "Опциональный параметр - фильтр по назначению страницы-заглушки",
        "schema": {
          "type": "string",
          "enum": [
            "ddosBlock",
            "deny",
            "botChallenge"
          ]
        }
      }
    },
    "responses": {
      "error": {
        "description": "Ошибка",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "noContent": {
        "description": "No Content",
        "content": {
          "text/plain": {
            "schema": {
              "type": "string",
              "example": "Ok"
            }
          }
        }
      },
      "entryPoint": {
        "description": "Точка входа",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/EntryPoint"
            }
          }
        }
      },
      "whoami": {
        "description": "Ссылка на данные пользователя, чей аутентификационный токен передан в параметрах запроса",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/WhoAmI"
            }
          }
        }
      },
      "customer": {
        "description": "Настройки аккаунта",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Customer"
            }
          }
        }
      },
      "customerServiceCollection": {
        "description": "Список сервисов аккаунта",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ServiceSettingsCollection"
            }
          }
        }
      },
      "customerAvailableServices": {
        "description": "Доступные аккаунту сервисы",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CustomerAvailableServices"
            }
          }
        }
      },
      "configAvailableServices": {
        "description": "Доступные для конфига сервисы",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigAvailableServices"
            }
          }
        }
      },
      "configCollection": {
        "description": "Список конфигураций в кратком представлении",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigCollection"
            }
          }
        }
      },
      "config": {
        "description": "Настройки конфигурации",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Config"
            }
          }
        }
      },
      "configServiceSettingsWal": {
        "description": "Настройки WAL",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsWal"
            }
          }
        }
      },
      "configServiceSettingsDdp": {
        "description": "Настройки DDP",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsDdp"
            }
          }
        }
      },
      "configServiceSettingsOei": {
        "description": "Настройки OEI",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsOei"
            }
          }
        }
      },
      "userCollection": {
        "description": "Список пользователей в кратком представлении",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UserCollection"
            }
          }
        }
      },
      "user": {
        "description": "Настройки пользователя",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/User"
            }
          }
        }
      },
      "userPermissions": {
        "description": "Данные пользователя о правах доступа",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UserPermissions"
            }
          }
        }
      },
      "userToken": {
        "description": "Постоянный токен пользователя",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UserToken"
            }
          }
        }
      },
      "userApiAccessPolicy": {
        "description": "Настройки дополнительных ограничений пользователя",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UserApiAccessPolicy"
            }
          }
        }
      },
      "userPreferences": {
        "description": "Данные о персональных настройках и избранном Пользователя",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UserPreferences"
            }
          }
        }
      },
      "customerServiceSettingsRal": {
        "description": "Настройки RAL",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CustomerServiceSettingsRal"
            }
          }
        }
      },
      "customerServiceSettingsDns": {
        "description": "Настройки Secure DNS",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CustomerServiceSettingsDns"
            }
          }
        }
      },
      "customerServiceSettingsAal": {
        "description": "Настройки AAL",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CustomerServiceSettingsAal"
            }
          }
        }
      },
      "customerServiceSettingsCaf": {
        "description": "Настройки CAF",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CustomerServiceSettingsCaf"
            }
          }
        }
      },
      "customerServiceSettingsCos": {
        "description": "Настройки COS",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CustomerServiceSettingsCos"
            }
          }
        }
      },
      "customerServiceSettingsRta": {
        "description": "Настройки RTA",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CustomerServiceSettingsRta"
            }
          }
        }
      },
      "customerServiceSettingsMdn": {
        "description": "Настройки MDN",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CustomerServiceSettingsMdn"
            }
          }
        }
      },
      "customerServiceSettingsVdc": {
        "description": "Настройки",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CustomerServiceSettingsVdc"
            }
          }
        }
      },
      "customerServiceSettingsPro": {
        "description": "Настройки PRO",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CustomerServiceSettingsPro"
            }
          }
        }
      },
      "customerServiceSettingsElr": {
        "description": "Настройки ELR",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CustomerServiceSettingsElr"
            }
          }
        }
      },
      "customerServiceSettingsEcd": {
        "description": "Настройки ECD",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CustomerServiceSettingsEcd"
            }
          }
        }
      },
      "customerServiceSettingsAhc": {
        "description": "Настройки AHC",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CustomerServiceSettingsAhc"
            }
          }
        }
      },
      "customerServiceSettingsOdc": {
        "description": "Настройки ODC",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CustomerServiceSettingsOdc"
            }
          }
        }
      },
      "customerVerification": {
        "description": "Данные для верификации прав владения",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CustomerVerification"
            }
          }
        }
      },
      "customerLimits": {
        "description": "Лимиты потребления",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CustomerLimits"
            }
          }
        }
      },
      "configServiceSettingsCollection": {
        "description": "Список сервисов, настраиваемых в рамках конфигурации",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsCollection"
            }
          }
        }
      },
      "configServiceSettingsLvs": {
        "description": "Настройки LVS",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsLvs"
            }
          }
        }
      },
      "configServiceSettingsSrs": {
        "description": "Настройки SRS",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsSrs"
            }
          }
        }
      },
      "configServiceSettingsOds": {
        "description": "Настройки ODS",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsOds"
            }
          }
        }
      },
      "configServiceSettingsWsa": {
        "description": "Настройки WSA",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsWsa"
            }
          }
        }
      },
      "configServiceSettingsSsl": {
        "description": "Настройки SSL",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsSsl"
            }
          }
        }
      },
      "configServiceSettingsTrl": {
        "description": "Настройки TRL",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsTrl"
            }
          }
        }
      },
      "configServiceSettingsHsl": {
        "description": "Настройки HSL",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsHsl"
            }
          }
        }
      },
      "configServiceSettingsPaf": {
        "description": "Настройки PAF",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsPaf"
            }
          }
        }
      },
      "configServiceSettingsPrg": {
        "description": "Настройки PRG",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsPrg"
            }
          }
        }
      },
      "configServiceSettingsRls": {
        "description": "Настройки RLS",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsRls"
            }
          }
        }
      },
      "configServiceSettingsRts": {
        "description": "Настройки RTS",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsRts"
            }
          }
        }
      },
      "configServiceSettingsImo": {
        "description": "Настройки IMO",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsImo"
            }
          }
        }
      },
      "configServiceSettingsOsd": {
        "description": "Настройки OSD",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsOsd"
            }
          }
        }
      },
      "configServiceSettingsElr": {
        "description": "Настройки ELR",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsElr"
            }
          }
        }
      },
      "purgeTaskCollection": {
        "description": "Коллекция заданий на очистку кэша",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/PurgeTaskCollection"
            }
          }
        }
      },
      "purgeTask": {
        "description": "Задание на очистку кэша",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/PurgeTask"
            }
          }
        }
      },
      "managedObject": {
        "description": "Профиль анализа",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ManagedObject"
            }
          }
        }
      },
      "managedObjectStatus": {
        "description": "Статус атак по профилю анализа",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ManagedObjectStatus"
            }
          }
        }
      },
      "notificationSettings": {
        "description": "Настройки оповещения по отдельному событию",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/NotificationSettings"
            }
          }
        }
      },
      "notificationSettingsCollection": {
        "description": "Коллекция настроек оповещений",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/NotificationSettingsCollection"
            }
          }
        }
      },
      "stubPageCollection": {
        "description": "Список настроек для страниц-заглушек",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/StubPageCollection"
            }
          }
        }
      },
      "stubPage": {
        "description": "Настройки для страницы-заглушки",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/StubPage"
            }
          }
        }
      },
      "dnsZone": {
        "description": "Данные о зоне DNS",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DnsZone"
            }
          }
        }
      },
      "configCreate": {
        "description": "Данные для создания конфигурации",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Config"
            }
          }
        }
      },
      "dnsZoneCollection": {
        "description": "Список зон DNS",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DnsZoneCollection"
            }
          }
        }
      },
      "dnsZoneVersionCollection": {
        "description": "Список версий зоны DNS",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DnsZoneVersionCollection"
            }
          }
        }
      },
      "dnsZoneVersion": {
        "description": "Версия зоны DNS",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DnsZoneVersion"
            }
          }
        }
      },
      "dnssecKeyCollection": {
        "description": "Список публичных ключей DNSSEC",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DnssecKeyCollection"
            }
          }
        }
      },
      "dnssecKey": {
        "description": "Данные о публичном ключе DNSSEC",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DnssecKey"
            }
          }
        }
      },
      "trafficPattern": {
        "description": "Список значений для правил фильтрации",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TrafficPattern"
            }
          }
        }
      },
      "trafficPatternCollection": {
        "description": "Коллекция списков значений для правил фильтрации",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TrafficPatternCollection"
            }
          }
        }
      },
      "trafficPatternTask": {
        "description": "Задача по изменению списка значений для правил фильтрации",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TrafficPatternTask"
            }
          }
        }
      },
      "trafficPatternTaskCollection": {
        "description": "Список заданий по изменению значений для правил фильтрации",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TrafficPatternTaskCollection"
            }
          }
        }
      },
      "rulesetCollection": {
        "description": "Коллекция наборов правил",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/RulesetCollection"
            }
          }
        }
      },
      "ruleset": {
        "description": "Набор правил",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Ruleset"
            }
          }
        }
      },
      "cloudWafInstanceCollection": {
        "description": "Коллекция объектов \"Экземпляр ПО WAF\"",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CloudWafInstanceCollection"
            }
          }
        }
      },
      "cloudWafInstance": {
        "description": "Объект \"Экземпляр ПО WAF\"",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CloudWafInstance"
            }
          }
        }
      },
      "cloudWafCollection": {
        "description": "Коллекция объектов \"Облачный WAF\"",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CloudWafCollection"
            }
          }
        }
      },
      "cloudWaf": {
        "description": "Объект \"Облачный WAF\"",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CloudWaf"
            }
          }
        }
      },
      "imageTransformPolicy": {
        "description": "Представление данных для создания политики преобразования изображений",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ImageTransformPolicy"
            }
          }
        }
      },
      "imageTransformPolicyCollection": {
        "description": "Коллекция политик преобразования изображений",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ImageTransformPolicyCollection"
            }
          }
        }
      },
      "targetGroup": {
        "description": "Набор объектов для DNS-балансировки",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TargetGroup"
            }
          }
        }
      },
      "targetGroupCollection": {
        "description": "Коллекция наборов объектов для DNS-балансировки",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TargetGroupCollection"
            }
          }
        }
      },
      "ipPrefixCollection": {
        "description": "Коллекция префиксов IP адресов",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/IpPrefixCollection"
            }
          }
        }
      },
      "ipPrefix": {
        "description": "Префикс IP адресов",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/IpPrefix"
            }
          }
        }
      },
      "storageBucket": {
        "description": "Корзина хранения двнных",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/StorageBucket"
            }
          }
        }
      },
      "s3KeyPairCollection": {
        "description": "S3 keys для КХД, коллекция",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/S3KeyPairCollection"
            }
          }
        }
      },
      "s3KeyPair": {
        "description": "S3 keys для КХД, элемент",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/S3KeyPair"
            }
          }
        }
      },
      "storageBucketCollection": {
        "description": "Коллекция корзин хранения данных",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/StorageBucketCollection"
            }
          }
        }
      },
      "availabilityCheckRuleCollection": {
        "description": "Коллекция правил проверки доступности",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AvailabilityCheckRuleCollection"
            }
          }
        }
      },
      "availabilityCheckRule": {
        "description": "Правило проверки доступности",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AvailabilityCheckRule"
            }
          }
        }
      },
      "directConnectionCollection": {
        "description": "Список прямых подключений к платформе",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DirectConnectionCollection"
            }
          }
        }
      },
      "directConnection": {
        "description": "Данные о прямом подключении к платформе",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DirectConnection"
            }
          }
        }
      }
    },
    "requestBodies": {
      "emptyBody": {
        "content": {
          "application/json": {
            "schema": {
              "nullable": true,
              "type": "object"
            }
          }
        }
      },
      "config": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Config"
            },
            "example": {
              "name": "Static delivery - production"
            }
          }
        }
      },
      "configCreate": {
        "description": "Данные для создания конфигурации",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigCreate"
            }
          }
        }
      },
      "customerServiceSettingsRal": {
        "description": "Настройки RAL",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CustomerServiceSettingsRal"
            },
            "example": {
              "enabled": true,
              "logKeepTime": 1209600
            }
          }
        }
      },
      "configServiceSettingsLvs": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsLvs"
            },
            "example": {
              "additionalServerNames": [
                "live.myawesome.io",
                "stream.myawesome.io"
              ],
              "origin": {
                "activeSettings": "publishingPoint"
              }
            }
          }
        }
      },
      "configServiceSettingsSrs": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsSrs"
            },
            "example": {
              "additionalServerNames": [
                "live.myawesome.io",
                "stream.myawesome.io"
              ],
              "origin": {
                "activeSettings": "customerHttp",
                "settings": {
                  "customerHttp": {
                    "path": "/hls",
                    "protocol": "http",
                    "proxyHostHeader": {
                      "mode": "header_host"
                    },
                    "backends": [
                      {
                        "address": "5.37.112.10",
                        "maxFails": 10,
                        "failTimeout": 10,
                        "backup": false
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      },
      "configServiceSettingsOds": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsOds"
            },
            "example": {
              "modelName": "ConfigServiceSettingsOds",
              "additionalServerNames": [
                "vod.myawesome.io",
                "records.myawesome.io"
              ],
              "origin": {
                "activeSettings": "customerHttp",
                "settings": {
                  "customerHttp": {
                    "protocol": "http",
                    "backends": [
                      {
                        "maxFails": 1,
                        "failTimeout": 10,
                        "backup": false,
                        "address": "backend.server.com"
                      }
                    ],
                    "path": "/"
                  },
                  "storageBucket": {
                    "path": "/",
                    "storageBucketRef": null
                  }
                }
              },
              "links": {
                "self": "https://api.ngenix.net/api/v3/config/1234/service/ods"
              },
              "enabled": true
            }
          }
        }
      },
      "configServiceSettingsWsa": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsWsa"
            },
            "example": {
              "additionalServerNames": [
                "myawesome.io",
                "portal.myawesome.io"
              ],
              "origin": {
                "activeSettings": "customerHttp",
                "settings": {
                  "customerHttp": {
                    "path": "/path/to/content",
                    "balanceMethod": "round_robin",
                    "protocol": "http",
                    "proxyHostHeader": {
                      "mode": "custom",
                      "value": "st.myawesome.io"
                    },
                    "backends": [
                      {
                        "address": "5.37.112.10",
                        "maxFails": 10,
                        "failTimeout": 10,
                        "backup": false
                      },
                      {
                        "address": "5.37.112.11",
                        "maxFails": 10,
                        "failTimeout": 10,
                        "backup": false
                      },
                      {
                        "address": "5.37.112.12",
                        "maxFails": 10,
                        "failTimeout": 10,
                        "backup": false
                      },
                      {
                        "address": "5.37.112.13",
                        "maxFails": 10,
                        "failTimeout": 10,
                        "backup": false
                      }
                    ]
                  }
                }
              },
              "gzip": true,
              "emptyFavicon": true,
              "allowedHttpMethods": {
                "GET": true,
                "HEAD": true,
                "PURGE": true,
                "POST": true,
                "PUT": true,
                "PATCH": true,
                "DELETE": false,
                "OPTIONS": true
              },
              "cache": {
                "disableProxyCache": true
              }
            }
          }
        }
      },
      "configServiceSettingsSsl": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsSsl"
            },
            "example": {
              "enabled": true,
              "disableHttp": false,
              "forceHttps": true,
              "hsts": true,
              "hstsMaxAge": 31536000,
              "tlsProfile": "min_10"
            }
          }
        }
      },
      "user": {
        "description": "Полный набор параметров пользователя",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/User"
            },
            "example": {
              "email": "ivanov@company.com",
              "firstName": "Anatoly",
              "lastName": "Ivanov",
              "phone": "+79997776655",
              "customerRef": {
                "id": 1234
              }
            }
          }
        }
      },
      "userUpdate": {
        "description": "Набор параметров пользователя, допустимых для изменения",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UserUpdate"
            },
            "example": {
              "firstName": "Анатолий",
              "lastName": "Иванов",
              "phone": "+79268887766"
            }
          }
        }
      },
      "userApiAccessPolicy": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UserApiAccessPolicy"
            }
          }
        }
      },
      "userPermissions": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UserPermissions"
            },
            "example": {
              "permissions": {
                "user": "none",
                "service": "none",
                "analytics": "ro",
                "support": "ro",
                "storageBucket": "rw",
                "dnsZone": "ro",
                "purgeTask": "ro",
                "trafficPattern": "ro",
                "ruleset": "none",
                "config": "ro"
              }
            }
          }
        }
      },
      "userPreferences": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UserPreferences"
            },
            "example": {
              "favouriteConfigs": [
                {
                  "configRef": {
                    "id": 12345
                  }
                },
                {
                  "configRef": {
                    "id": 54321
                  }
                }
              ]
            }
          }
        }
      },
      "configServiceSettingsTrl": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsTrl"
            },
            "example": {
              "timeout": 3600,
              "signDirs": true,
              "password": "A_secret8"
            }
          }
        }
      },
      "configServiceSettingsDdp": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsDdp"
            },
            "example": {
              "proxyFilter": {
                "customerWhitelistRef": {
                  "id": 111
                }
              }
            }
          }
        }
      },
      "configServiceSettingsImo": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsImo"
            },
            "example": {
              "extensions": [
                "jpg",
                "png"
              ],
              "transformPolicyRef": {
                "id": 12345
              }
            }
          }
        }
      },
      "configServiceSettingsHsl": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsHsl"
            },
            "example": {
              "enabled": true,
              "certificates": {
                "rsa": {
                  "autoRefresh": false,
                  "credentials": {
                    "certificate": "-----BEGIN CERTIFICATE-----{YOUR CERT}-----END CERTIFICATE-----",
                    "privateKey": "-----BEGIN RSA PRIVATE KEY-----{YOUR KEY}-----END RSA PRIVATE KEY-----"
                  }
                },
                "gost": {
                  "credentials": {
                    "certificate": "-----BEGIN CERTIFICATE-----{YOUR CERT}-----END CERTIFICATE-----",
                    "privateKey": "-----BEGIN PRIVATE KEY-----{YOUR KEY}-----END PRIVATE KEY-----"
                  }
                }
              }
            }
          }
        }
      },
      "configServiceSettingsWal": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsWal"
            },
            "example": {
              "wallarmMode": "block"
            }
          }
        }
      },
      "configServiceSettingsElr": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConfigServiceSettingsElr"
            },
            "example": {
              "enabled": true,
              "rulesets": "{ 'userRequestRulesetRef': { 'id': 123 } }"
            }
          }
        }
      },
      "purgeTask": {
        "description": "Задание на очистку кэша",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/PurgeTask"
            },
            "example": {
              "configRef": {
                "id": 12345
              },
              "objects": [
                "/1.jpg",
                "/2.jpg",
                "/3.jpg"
              ]
            }
          }
        }
      },
      "stubPage": {
        "description": "Данные создания настроек для страницы-заглушки",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/StubPage"
            }
          }
        }
      },
      "stubPageUpdate": {
        "description": "Данные обновления настроек для страницы-заглушки",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/StubPageUpdate"
            }
          }
        }
      },
      "dnsZone": {
        "description": "Данные о зоне DNS",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DnsZone"
            },
            "example": {
              "records": [
                {
                  "name": "dynamic",
                  "type": "A",
                  "data": "102.23.45.56"
                },
                {
                  "name": "id",
                  "type": "CNAME",
                  "data": "s88888.cdn.ngenix.net."
                }
              ]
            }
          }
        }
      },
      "dnsZoneCreate": {
        "description": "Данные о зоне DNS для создания",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DnsZoneCreate"
            }
          }
        }
      },
      "dnssecKeyCreate": {
        "description": "Данные о публичном ключе DNSSEC",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DnssecKeyCreate"
            }
          }
        }
      },
      "notificationSettingsCreate": {
        "description": "Данные для создания настроек оповещения",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/NotificationSettingsCreate"
            }
          }
        }
      },
      "notificationSettingsUpdate": {
        "description": "Данные для изменения настроек оповещения",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/NotificationSettingsUpdate"
            }
          }
        }
      },
      "trafficPatternCreate": {
        "description": "Список значений для правил фильтрации",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TrafficPatternCreate"
            },
            "example": {
              "customerRef": {
                "id": 12345
              },
              "type": "whitelist",
              "name": "Whitelist - DDP",
              "contentType": "addr",
              "patterns": [
                {
                  "addr": "123.13.11.11/26"
                },
                {
                  "addr": "123.13.11.12/26"
                }
              ]
            }
          }
        }
      },
      "trafficPatternUpdate": {
        "description": "Список значений для правил фильтрации",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TrafficPatternUpdate"
            },
            "example": {
              "name": "Whitelist - DDP",
              "patterns": [
                {
                  "addr": "123.13.11.11/26"
                },
                {
                  "addr": "123.13.11.12/26"
                }
              ]
            }
          }
        }
      },
      "trafficPatternTaskCreate": {
        "description": "Создание задачи по изменению списка значений для правил фильтрации",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TrafficPatternTaskCreate"
            }
          }
        }
      },
      "rulesetCreate": {
        "description": "Данные для создания списка правил",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/RulesetCreate"
            },
            "example": {
              "customerRef": {
                "id": 12345
              },
              "name": "Rule set for bots",
              "rules": [
                {
                  "name": "Ruleset for blocking bots",
                  "enabled": true,
                  "conditions": [
                    {
                      "function": "begins",
                      "params": [
                        {
                          "variable": "http.request.path"
                        },
                        {
                          "trafficPatternRef": {
                            "id": 4533
                          }
                        }
                      ]
                    },
                    {
                      "function": "contains",
                      "params": [
                        {
                          "variable": "http.request.host"
                        },
                        {
                          "value": [
                            "SuspiciousHeader"
                          ]
                        }
                      ]
                    }
                  ],
                  "actions": [
                    {
                      "action": "setHeader",
                      "params": [
                        "http.request.headers.x-bot-token",
                        "thisIsBot"
                      ]
                    },
                    {
                      "action": "deny",
                      "params": [
                        "403"
                      ]
                    }
                  ]
                }
              ]
            }
          }
        }
      },
      "rulesetUpdate": {
        "description": "Данные для обновления списка правил",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/RulesetUpdate"
            },
            "example": {
              "rules": [
                {
                  "name": "Ruleset for blocking bots",
                  "enabled": true,
                  "conditions": [
                    {
                      "function": "begins",
                      "params": [
                        {
                          "variable": "http.request.path"
                        },
                        {
                          "trafficPatternRef": {
                            "id": 4533
                          }
                        }
                      ]
                    },
                    {
                      "function": "contains",
                      "params": [
                        {
                          "variable": "http.request.host"
                        },
                        {
                          "value": [
                            "SuspiciousHeader"
                          ]
                        }
                      ]
                    }
                  ],
                  "actions": [
                    {
                      "action": "setHeader",
                      "params": [
                        "http.request.headers.x-bot-token",
                        "thisIsBot"
                      ]
                    },
                    {
                      "action": "deny",
                      "params": [
                        "403"
                      ]
                    }
                  ]
                }
              ]
            }
          }
        }
      },
      "cloudWaf": {
        "description": "Объект \"Облачный WAF\"",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CloudWaf"
            }
          }
        }
      },
      "s3KeyPair": {
        "description": "s3 ключ для КХД",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/S3KeyPair"
            }
          }
        }
      },
      "imageTransformPolicy": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ImageTransformPolicy"
            }
          }
        }
      },
      "imageTransformPolicyCreate": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ImageTransformPolicyCreate"
            }
          }
        }
      },
      "availabilityCheckRuleCreate": {
        "description": "Данные для создания правила проверки доступности",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AvailabilityCheckRuleCreate"
            }
          }
        }
      },
      "availabilityCheckRuleUpdate": {
        "description": "Данные для обновления правила проверки доступности",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AvailabilityCheckRuleUpdate"
            }
          }
        }
      }
    },
    "schemas": {
      "Object": {
        "description": "Базовое описание представления объекта с идентификатором",
        "allOf": [
          {
            "$ref": "#/components/schemas/Item"
          },
          {
            "properties": {
              "id": {
                "type": "integer",
                "description": "уникальный идентификатор",
                "readOnly": true
              }
            }
          }
        ],
        "example": {
          "id": 12345,
          "modelName": "Object"
        }
      },
      "Reference": {
        "description": "Описание атрибута ссылочного типа",
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "example": 1234,
            "description": "уникальный идентификатор"
          },
          "link": {
            "type": "string",
            "readOnly": true,
            "format": "uri",
            "example": "https://api.ngenix.net/api/v3/some-object/1234",
            "description": "ссылка на объект"
          }
        }
      },
      "NullableReference": {
        "description": "Необязательная ссылка",
        "type": "object",
        "nullable": true,
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "nullable": true
          },
          "link": {
            "type": "string",
            "readOnly": true,
            "format": "uri",
            "nullable": true
          }
        },
        "example": {
          "id": 1234,
          "link": "https://api.ngenix.net/api/v3/some-object/1234"
        }
      },
      "Item": {
        "description": "Базовое представление сущности",
        "type": "object",
        "properties": {
          "modelName": {
            "type": "string",
            "example": "EntryPoint",
            "description": "Название модели",
            "readOnly": true
          },
          "links": {
            "$ref": "#/components/schemas/Links"
          }
        }
      },
      "Error": {
        "description": "Ошибка",
        "required": [
          "code",
          "detail"
        ],
        "properties": {
          "code": {
            "type": "integer",
            "example": 404,
            "description": "Код ошибки"
          },
          "detail": {
            "type": "string",
            "example": "Error message",
            "description": "Сообщение об ошибке"
          }
        }
      },
      "Collection": {
        "type": "object",
        "properties": {
          "modelName": {
            "type": "string",
            "example": "Collection",
            "description": "Название коллекции"
          },
          "elements": {
            "description": "Список элементов коллекции",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Object"
            }
          }
        }
      },
      "Links": {
        "description": "Блок \"links\" по умолчанию",
        "readOnly": true,
        "required": [
          "self"
        ],
        "properties": {
          "self": {
            "type": "string",
            "format": "uri",
            "example": "https://api.ngenix.net/api/v3/some-item/4321",
            "description": "Ссылка на запрошенный объект"
          }
        }
      },
      "Hints": {
        "description": "Блок \"hints\" может содержать дополнительную информацию, в том числе\nо связанных объектах.\nЭта информация может быть полезна при построении клиентских интерфейсов.\n",
        "readOnly": true
      },
      "CloudWafInstancesLink": {
        "required": [
          "cloudWafInstances"
        ],
        "properties": {
          "cloudWafInstances": {
            "description": "Список экземпляров ПО WAF, доступных аккаунту.",
            "type": "string",
            "format": "uri",
            "example": "https://api.ngenix.net/api/v3/cloud-waf-instance?customerId=4321"
          }
        }
      },
      "CloudWafsLink": {
        "required": [
          "cloudWafs"
        ],
        "properties": {
          "cloudWafs": {
            "description": "Список объектов CloudWaf аккаунта",
            "type": "string",
            "format": "uri",
            "example": "https://api.ngenix.net/api/v3/cloud-waf?customerId=4321"
          }
        }
      },
      "StorageBucketsLink": {
        "required": [
          "storageBuckets"
        ],
        "properties": {
          "storageBuckets": {
            "description": "Список объектов Storage Bucket аккаунта",
            "type": "string",
            "format": "uri",
            "example": "https://api.ngenix.net/api/v3/storage-bucket?customer=4321"
          }
        }
      },
      "EntryPointLinks": {
        "description": "Описание блока \"links\" для модели EntryPoint",
        "allOf": [
          {
            "$ref": "#/components/schemas/Links"
          },
          {
            "required": [
              "self",
              "whoami",
              "ipPrefixes"
            ],
            "properties": {
              "whoami": {
                "type": "string",
                "format": "uri",
                "description": "Ссылка на получение информации о себе"
              },
              "ipPrefixes": {
                "type": "string",
                "format": "uri",
                "description": "Ссылка на получения префиксов IP адресов"
              }
            },
            "example": {
              "modelName": "EntryPointLinks",
              "self": "/api/v3/",
              "whoami": "/api/v3/whoami",
              "ipPrefixes": "/api/v3/ip-prefix"
            }
          }
        ]
      },
      "EntryPoint": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Item"
          },
          {
            "properties": {
              "links": {
                "$ref": "#/components/schemas/EntryPointLinks"
              }
            },
            "example": {
              "modelName": "EntryPoint",
              "links": {
                "self": "/api/v3/",
                "whoami": "/api/v3/whoami",
                "ipPrefixes": "/api/v3/ip-prefix"
              }
            }
          }
        ]
      },
      "WhoAmI": {
        "description": "Ссылка на данные пользователя",
        "allOf": [
          {
            "$ref": "#/components/schemas/Item"
          },
          {
            "properties": {
              "userRef": {
                "$ref": "#/components/schemas/Reference"
              }
            },
            "example": {
              "userRef": {
                "id": 1234,
                "link": "https://api.ngenix.net/api/v3/user/4321"
              },
              "modelName": "WhoAmI",
              "links": {
                "self": "https://api.ngenix.net/api/v3/whoami"
              }
            }
          }
        ]
      },
      "CustomerTestingSettings": {
        "description": "Настройки тестирования аккаунта",
        "type": "object",
        "readOnly": true,
        "nullable": true,
        "properties": {
          "testStartDate": {
            "description": "Дата начала тестирования",
            "type": "string",
            "nullable": true,
            "format": "date"
          },
          "testPeriodLength": {
            "description": "Период тестирования в днях",
            "type": "integer",
            "nullable": true,
            "minimum": 1,
            "maximum": 60
          }
        },
        "example": {
          "testStartDate": "2019-04-01",
          "testPeriodLength": 2
        }
      },
      "CustomerCollectionView": {
        "description": "Краткое представление данных аккаунта",
        "allOf": [
          {
            "$ref": "#/components/schemas/Object"
          },
          {
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 255,
                "example": "ООО Иванов",
                "description": "Наименование аккаунта"
              }
            },
            "example": {
              "modelName": "CustomerCollectionView",
              "name": "ООО Иванов",
              "links": {
                "self": "https://api.ngenix.net/api/v3/customer/4321"
              }
            }
          }
        ]
      },
      "CustomerLinks": {
        "description": "Описание блока \"links\" для модели Customer",
        "allOf": [
          {
            "$ref": "#/components/schemas/Links"
          },
          {
            "required": [
              "services",
              "configs"
            ],
            "properties": {
              "services": {
                "description": "Настройки сервисов уровня аккаунта",
                "type": "string",
                "nullable": true,
                "format": "uri",
                "example": "https://api.ngenix.net/api/v3/customer/4321/service"
              },
              "availableServices": {
                "description": "Доступные аккаунту сервисы",
                "type": "string",
                "format": "uri",
                "example": "https://api.ngenix.net/api/v3/customer/4321/available-services"
              },
              "users": {
                "description": "Пользователи аккаунта",
                "type": "string",
                "format": "uri",
                "example": "https://api.ngenix.net/api/v3/user?customerId=4321"
              },
              "ownershipVerificationData": {
                "description": "Верификационная информация для проверки прав владения внешними объектами",
                "type": "string",
                "format": "uri",
                "example": "https://api.ngenix.net/api/v3/customer/4321/ownership-verification-data"
              },
              "configs": {
                "description": "Список конфигураций аккаунта",
                "type": "string",
                "format": "uri",
                "example": "https://api.ngenix.net/api/v3/config?customer=4321"
              },
              "storageBuckets": {
                "description": "Список корзин хранения данных аккаунта",
                "type": "string",
                "format": "uri",
                "example": "https://api.ngenix.net/api/v3/storage-bucket?customer=4321"
              },
              "stubPages": {
                "description": "Список настроек для страниц-заглушек аккаунта",
                "type": "string",
                "format": "uri",
                "example": "https://api.ngenix.net/api/v3/stub-page?customer=4321"
              },
              "limits": {
                "description": "Ссылка на получение лимитов потребления для аккаунта",
                "type": "string",
                "format": "uri",
                "example": "https://api.ngenix.net/api/v3/customer/4321/limits"
              },
              "notificationSettings": {
                "description": "Ссылка на получение настроек оповещений для аккаунта. В ближайшем обновлении API название поля будет изменено на notificationRule, это связано с унификацией и стандартизацией API.\n",
                "type": "string",
                "format": "uri",
                "example": "https://api.ngenix.net/api/v3/notification-settings?customer=4321"
              },
              "directConnections": {
                "description": "Ссылка на получение списка прямых подключений",
                "type": "string",
                "format": "uri"
              }
            }
          }
        ]
      },
      "CustomerLimits": {
        "description": "Лимиты потребления",
        "properties": {
          "configCount": {
            "description": "Значение верхнего порога для количества сервисных конфигураций (СК)",
            "type": "integer",
            "minimum": 1
          },
          "dnsZoneCount": {
            "description": "Значение верхнего порога для количества доменных зон (ДЗ)",
            "type": "integer",
            "minimum": 1
          },
          "userCount": {
            "description": "Значение верхнего порога для количества пользователей",
            "type": "integer",
            "minimum": 1,
            "readOnly": true
          },
          "robotCount": {
            "description": "Значение верхнего порога для количества клиентских роботов",
            "type": "integer",
            "minimum": 1,
            "readOnly": true
          },
          "elrRulesCount": {
            "description": "Значение верхнего порога для правил ELR",
            "type": "integer",
            "readOnly": true
          }
        },
        "example": {
          "configCount": 15,
          "dnsZoneCount": 5,
          "userCount": 10,
          "robotCount": 10,
          "elrRulesCount": 40
        }
      },
      "AccountOwner": {
        "description": "Краткое представление данных владельца аккаунта",
        "type": "object",
        "nullable": true,
        "readOnly": true,
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "maxLength": 254,
            "minLength": 5
          },
          "firstName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          },
          "lastName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          },
          "phone": {
            "type": "string",
            "nullable": true,
            "minLength": 8,
            "maxLength": 16
          },
          "photoUrl": {
            "type": "string",
            "minLength": 1,
            "nullable": true,
            "format": "uri",
            "readOnly": true
          }
        }
      },
      "CustomerManager": {
        "description": "Данные менеджера аккаунта",
        "nullable": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/AccountOwner"
          },
          {
            "properties": {
              "position": {
                "type": "string",
                "minLength": 1,
                "readOnly": true
              },
              "photoUrl": {
                "type": "string",
                "nullable": true,
                "minLength": 1,
                "format": "uri",
                "readOnly": true
              }
            },
            "example": {
              "email": "user@example.com",
              "firstName": "Виктор",
              "lastName": "Пучеглазов",
              "phone": "+79268887766",
              "position": "Ведущий аккаунт-менеджер",
              "photoUrl": "https://api.ngenix.net/partner/v1/business-card/4321/photo/hfgfgfhjgfhgfhjgf-6s76dsij3uy.jpg"
            }
          }
        ]
      },
      "Customer": {
        "description": "Полное представление данных аккаунта",
        "allOf": [
          {
            "$ref": "#/components/schemas/CustomerCollectionView"
          },
          {
            "properties": {
              "legalName": {
                "description": "Наименование заказчика",
                "type": "string",
                "readOnly": true,
                "nullable": true,
                "maxLength": 255,
                "example": "ООО Иванов Инк."
              },
              "orderNum": {
                "description": "Номер бланка заказа",
                "type": "string",
                "readOnly": true,
                "nullable": true,
                "maxLength": 255,
                "minLength": 1,
                "example": "ab-87654-0987-13245"
              },
              "sla": {
                "description": "Уровень качества обслуживания",
                "type": "string",
                "enum": [
                  "standard",
                  "extended",
                  "premium",
                  "individual",
                  "optimal"
                ],
                "readOnly": true,
                "example": "standard"
              },
              "accountManager": {
                "$ref": "#/components/schemas/CustomerManager"
              },
              "technicalAccountManager": {
                "$ref": "#/components/schemas/CustomerManager"
              },
              "accountOwnerRef": {
                "$ref": "#/components/schemas/Reference"
              },
              "billingEmail": {
                "type": "string",
                "readOnly": true,
                "example": "mail@example.com",
                "description": "E-mail для получения счетов",
                "minLength": 1
              },
              "ncid": {
                "type": "integer",
                "minimum": 1,
                "nullable": true,
                "example": 7609834,
                "readOnly": true,
                "description": "Уникальный идентификатор конечного потребителя услуг"
              },
              "testingSettings": {
                "$ref": "#/components/schemas/CustomerTestingSettings"
              },
              "active": {
                "type": "boolean",
                "example": true,
                "readOnly": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "setup",
                  "test",
                  "active",
                  "suspended",
                  "changing"
                ],
                "readOnly": true,
                "description": "Статус заказчика"
              },
              "baseServicePackage": {
                "$ref": "#/components/schemas/ProductBase",
                "readOnly": true
              },
              "additionalServicePackages": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ProductBase"
                },
                "readOnly": true
              },
              "links": {
                "$ref": "#/components/schemas/CustomerLinks"
              }
            },
            "example": {
              "modelName": "Customer",
              "legalName": "ООО Иванов Инк.",
              "orderNum": "ab-87654-0987-13245",
              "sla": "standard",
              "billingEmail": "mail@example.com",
              "ncid": 7609834,
              "testingSettings": {
                "testStartDate": "2019-04-01",
                "testPeriodLength": 2
              },
              "active": true,
              "status": "test",
              "accountOwnerRef": {
                "id": 234,
                "link": "https://api.ngenix.net/api/v3/user/234"
              },
              "baseServicePackage": {
                "productCode": "SPS",
                "name": "Стартап",
                "description": "Базовый пакет обслуживания \"Стартап\""
              },
              "additionalServicePackages": [
                {
                  "productCode": "APT",
                  "name": "Технический аккаунт-менеджер (TAM)",
                  "description": "Дополнительный пакет обслуживания \"Технический аккаунт-менеджер (TAM)\""
                },
                {
                  "productCode": "APW",
                  "name": "Настройка и тюнинг Wallarm Application Firewall",
                  "description": "Дополнительный пакет обслуживания \"Настройка и тюнинг Wallarm Application Firewall\""
                }
              ]
            }
          }
        ]
      },
      "PlatformSegment": {
        "description": "Описание сегмента платформы",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true,
            "description": "Уникальный идентификатор"
          },
          "name": {
            "type": "string",
            "readOnly": true,
            "description": "Название сегмента платформы"
          },
          "dedicatedSegment": {
            "type": "boolean",
            "readOnly": true,
            "description": "Является ли сегмент платформы выделенным"
          },
          "serverAmount": {
            "type": "integer",
            "readOnly": true,
            "description": "Количество серверов сегмента платформы"
          },
          "bandwidthLimit": {
            "type": "integer",
            "readOnly": true,
            "description": "Максимальная разрешенная полоса трафика с сегмента, Мбит/с"
          },
          "maxBandwidth": {
            "type": "integer",
            "readOnly": true,
            "description": "Монтированная емкость сегмента, Мбит/с"
          }
        }
      },
      "AvailableServiceItem": {
        "description": "Сервис, с указанием доступности для аккаунта",
        "required": [
          "name",
          "available"
        ],
        "properties": {
          "name": {
            "type": "string",
            "example": "wsa",
            "description": "Наименование сервиса"
          },
          "available": {
            "type": "boolean",
            "example": true,
            "description": "Доступность сервиса"
          }
        }
      },
      "AvailableServices": {
        "description": "Доступные сервисы",
        "allOf": [
          {
            "$ref": "#/components/schemas/Item"
          },
          {
            "required": [
              "services"
            ],
            "properties": {
              "services": {
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/AvailableServiceItem"
                }
              },
              "links": {
                "$ref": "#/components/schemas/Links"
              }
            },
            "example": {
              "modelName": "AvailableServices",
              "services": [
                {
                  "name": "wsa",
                  "available": true
                }
              ],
              "links": {
                "self": "https://api.ngenix.net/api/v3/customer/4321/available-services"
              }
            }
          }
        ]
      },
      "CustomerAvailableServices": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AvailableServices"
          },
          {
            "properties": {
              "customerRef": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Reference"
                  },
                  {
                    "readOnly": true
                  }
                ],
                "example": {
                  "id": 4321,
                  "link": "https://api.ngenix.net/api/v3/customer/4321"
                }
              }
            }
          }
        ]
      },
      "ConfigCollection": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Collection"
          },
          {
            "properties": {
              "elements": {
                "items": {
                  "$ref": "#/components/schemas/ConfigCollectionView"
                }
              }
            }
          },
          {
            "example": {
              "elements": [
                {
                  "modelName": "ConfigCollectionView",
                  "id": 1234,
                  "name": "s1234",
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/config/1234"
                  }
                },
                {
                  "modelName": "ConfigCollectionView",
                  "id": 2345,
                  "name": "s2345",
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/config/2345"
                  }
                }
              ]
            }
          }
        ]
      },
      "ConfigAvailableServices": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AvailableServices"
          },
          {
            "properties": {
              "configRef": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Reference"
                  },
                  {
                    "readOnly": true
                  }
                ]
              },
              "links": {
                "$ref": "#/components/schemas/Links"
              }
            },
            "example": {
              "configRef": {
                "link": "https://api.ngenix.net/api/v3/config/1234"
              },
              "links": {
                "self": "https://api.ngenix.net/api/v3/config/4321/available-services"
              }
            }
          }
        ]
      },
      "ConfigServiceSettingsCollection": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ServiceSettingsCollection"
          },
          {
            "example": {
              "modelName": "ServiceSettingsCollection",
              "elements": [
                {
                  "modelName": "ServiceSettingsCollectionView",
                  "serviceAbbreviation": "WSA",
                  "enabled": true,
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/config/1234/service/wsa"
                  }
                },
                {
                  "modelName": "ServiceSettingsCollectionView",
                  "serviceAbbreviation": "SSL",
                  "enabled": true,
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/config/1234/service/ssl"
                  }
                }
              ]
            }
          }
        ]
      },
      "ServiceSettingsCollectionView": {
        "description": "Атрибуты для всех параметров сервисов",
        "allOf": [
          {
            "$ref": "#/components/schemas/Item"
          },
          {
            "properties": {
              "enabled": {
                "type": "boolean",
                "example": true
              },
              "serviceAbbreviation": {
                "type": "string",
                "readOnly": true,
                "example": "wsa",
                "description": "Сокращение наименования сервиса"
              }
            }
          }
        ]
      },
      "ServiceSettingsCollection": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Collection"
          },
          {
            "properties": {
              "elements": {
                "items": {
                  "$ref": "#/components/schemas/ServiceSettingsCollectionView"
                }
              }
            },
            "example": {
              "modelName": "ServiceSettingsCollection",
              "elements": [
                {
                  "modelName": "ServiceSettingsCollectionView",
                  "serviceAbbreviation": "RAL",
                  "enabled": true,
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/customer/1234/service/ral"
                  }
                },
                {
                  "modelName": "ServiceSettingsCollectionView",
                  "serviceAbbreviation": "AAL",
                  "enabled": true,
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/customer/1234/service/aal"
                  }
                },
                {
                  "modelName": "ServiceSettingsCollectionView",
                  "serviceAbbreviation": "CAF",
                  "enabled": true,
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/customer/1234/service/caf"
                  }
                },
                {
                  "modelName": "ServiceSettingsCollectionView",
                  "serviceAbbreviation": "DNS",
                  "enabled": true,
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/customer/1234/service/dns"
                  }
                },
                {
                  "modelName": "ServiceSettingsCollectionView",
                  "serviceAbbreviation": "RTA",
                  "enabled": true,
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/customer/1234/service/rta"
                  }
                },
                {
                  "modelName": "ServiceSettingsCollectionView",
                  "serviceAbbreviation": "ELR",
                  "enabled": true,
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/customer/1234/service/elr"
                  }
                },
                {
                  "modelName": "ServiceSettingsCollectionView",
                  "serviceAbbreviation": "ECD",
                  "enabled": true,
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/customer/1234/service/ecd"
                  }
                },
                {
                  "modelName": "ServiceSettingsCollectionView",
                  "serviceAbbreviation": "AHC",
                  "enabled": true,
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/customer/1234/service/ahc"
                  }
                }
              ]
            }
          }
        ]
      },
      "ProductBase": {
        "description": "Краткое представление продукта",
        "properties": {
          "productCode": {
            "description": "Код продукта",
            "type": "string"
          },
          "name": {
            "description": "Наименование продукта",
            "type": "string"
          },
          "description": {
            "description": "Описание продукта",
            "type": "string"
          }
        }
      },
      "CustomerRefRO": {
        "description": "Атрибут customer ссылочного типа",
        "type": "object",
        "properties": {
          "customerRef": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Reference"
              },
              {
                "readOnly": true
              }
            ],
            "example": {
              "id": 4321,
              "link": "https://api.ngenix.net/api/v3/customer/4321"
            }
          }
        }
      },
      "CustomerServiceSettings": {
        "description": "Атрибуты для параметров сервисов уровня конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/ServiceSettingsCollectionView"
          },
          {
            "$ref": "#/components/schemas/CustomerRefRO"
          }
        ]
      },
      "CustomerServiceSettingsRal": {
        "description": "Настройки сервиса Raw Access Logs для аккаунта.\nПоля 'logPreset' и 'logFields' взаимоисключающие.\nЕсли 'logPreset' == 'standard', то logFields явно указать нельзя.\nЕсли logPreset == null, то передаются конкретные поля logFields.\n",
        "allOf": [
          {
            "$ref": "#/components/schemas/CustomerServiceSettings"
          },
          {
            "properties": {
              "logKeepTime": {
                "description": "Время хранения логов в секундах",
                "type": "integer",
                "minimum": 0,
                "maximum": 2147483647
              },
              "logExportDestination": {
                "description": "Назначение выгрузки логов",
                "type": "string",
                "enum": [
                  "COS"
                ],
                "readOnly": true
              },
              "logPreset": {
                "description": "Пресет логов",
                "type": "string",
                "nullable": true,
                "enum": [
                  "standard"
                ]
              },
              "logFields": {
                "$ref": "#/components/schemas/RalLogFields"
              },
              "logFormat": {
                "description": "Конечный формат лог-файла (log - Common Log Format, tsv - Tab-Separated Values)",
                "type": "string",
                "nullable": true,
                "enum": [
                  "log",
                  "tsv",
                  "json"
                ],
                "default": "log"
              }
            },
            "example": {
              "modelName": "CustomerServiceSettingsRal",
              "serviceAbbreviation": "ral",
              "logKeepTime": 10000,
              "logExportDestination": "COS",
              "logPreset": "standard",
              "logFields": {
                "remoteAddr": true,
                "host": true
              },
              "logFormat": "json",
              "links": {
                "self": "https://api.ngenix.net/api/v3/customer/4321/service/ral"
              }
            }
          }
        ]
      },
      "RalLogFields": {
        "description": "Структура с параметрами для логирования RAL",
        "type": "object",
        "nullable": true,
        "properties": {
          "remoteAddr": {
            "type": "boolean"
          },
          "host": {
            "type": "boolean"
          },
          "datetime": {
            "type": "boolean"
          },
          "request": {
            "type": "boolean"
          },
          "httpStatus": {
            "type": "boolean"
          },
          "cacheStatus": {
            "type": "boolean"
          },
          "upstreamAddr": {
            "type": "boolean"
          },
          "bodyBytesSent": {
            "type": "boolean"
          },
          "httpReferer": {
            "type": "boolean"
          },
          "httpUserAgent": {
            "type": "boolean"
          },
          "requestTime": {
            "type": "boolean"
          },
          "gzipRatio": {
            "type": "boolean"
          },
          "sslProtocol": {
            "type": "boolean"
          },
          "sslCipher": {
            "type": "boolean"
          },
          "connectionRequests": {
            "type": "boolean"
          },
          "connection": {
            "type": "boolean"
          },
          "bytesSent": {
            "type": "boolean"
          },
          "upstreamResponseLength": {
            "type": "boolean"
          },
          "upstreamHeaderTime": {
            "type": "boolean"
          },
          "upstreamResponseTime": {
            "type": "boolean"
          },
          "upstreamStatus": {
            "type": "boolean"
          },
          "countryCode": {
            "type": "boolean"
          },
          "requestId": {
            "type": "boolean"
          },
          "serverPort": {
            "type": "boolean"
          },
          "ipInListType": {
            "type": "boolean"
          },
          "actionForRequest": {
            "type": "boolean"
          },
          "rulesetId": {
            "type": "boolean"
          },
          "rulesetTerminatingRuleId": {
            "type": "boolean"
          },
          "rulesetTerminatingAction": {
            "type": "boolean"
          },
          "botManagementSourceCategory": {
            "type": "boolean"
          },
          "challengeAttemptId": {
            "type": "boolean"
          }
        }
      },
      "CustomerServiceSettingsVdc": {
        "description": "Настройки сервиса VDC для клиента",
        "allOf": [
          {
            "$ref": "#/components/schemas/CustomerServiceSettings"
          },
          {
            "properties": {
              "enabled": {
                "readOnly": true
              },
              "controlPanel": {
                "description": "Ссылка на личный кабинет",
                "type": "string",
                "readOnly": true
              }
            },
            "example": {
              "modelName": "CustomerServiceSettingsVdc",
              "serviceAbbreviation": "vdc",
              "enabled": true,
              "controlPanel": "https://vcd4.cloud.rt.ru/cloud/org/org_105431/",
              "customerRef": {
                "id": 4321,
                "link": "https://api.ngenix.net/api/v3/customer/4321"
              },
              "links": {
                "self": "https://api.ngenix.net/api/v3/customer/4321/service/vdc"
              }
            }
          }
        ]
      },
      "CustomerServiceSettingsPro": {
        "description": "Настройки сервиса PRO для клиента",
        "allOf": [
          {
            "$ref": "#/components/schemas/CustomerServiceSettings"
          },
          {
            "properties": {
              "specification": {
                "type": "string",
                "readOnly": true
              },
              "enabled": {
                "type": "boolean",
                "readOnly": true
              },
              "positions": {
                "readOnly": true,
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ProductBase"
                }
              }
            },
            "example": {
              "modelName": "CustomerServiceSettingsPro",
              "serviceAbbreviation": "pro",
              "enabled": true,
              "specification": "Описание профессиональных сервисов аккаунта",
              "positions": [
                {
                  "productCode": "PRO-12345-11",
                  "name": "Сервис 12345-11",
                  "description": "Описание сервиса PRO-12345-11"
                },
                {
                  "productCode": "PRO-67890-22",
                  "name": "Сервис 67890-22",
                  "description": "Описание сервиса PRO-67890-22"
                }
              ],
              "customerRef": {
                "id": 4321,
                "link": "https://api.ngenix.net/api/v3/customer/4321"
              },
              "links": {
                "self": "https://api.ngenix.net/api/v3/customer/4321/service/pro"
              }
            }
          }
        ]
      },
      "CustomerServiceSettingsDnsLinks": {
        "description": "Описание блока \"links\" для модели CustomerServiceSettingsDns",
        "allOf": [
          {
            "$ref": "#/components/schemas/Links"
          },
          {
            "required": [
              "dnsZones"
            ],
            "properties": {
              "dnsZones": {
                "description": "Настройки DNS-зон аккаунта",
                "type": "string",
                "format": "uri"
              },
              "targetGroups": {
                "description": "Список объектов для DNS-балансировки, принадлежащих данному аккаунту",
                "type": "string",
                "format": "uri"
              }
            },
            "example": {
              "self": "https://api.ngenix.net/api/v3/customer/4321/service/dns",
              "dnsZones": "https://api.ngenix.net/api/v3/dns-zone?customerId=4321",
              "targetGroups": "https://api.ngenix.net/api/v3/target-group?customerId=4321"
            }
          }
        ]
      },
      "CustomerServiceSettingsDns": {
        "description": "Настройки сервиса Secure DNS для аккаунта",
        "allOf": [
          {
            "$ref": "#/components/schemas/CustomerServiceSettings"
          },
          {
            "properties": {
              "enabled": {
                "readOnly": true
              },
              "links": {
                "$ref": "#/components/schemas/CustomerServiceSettingsDnsLinks"
              }
            },
            "example": {
              "modelName": "CustomerServiceSettingsDns",
              "serviceAbbreviation": "dns",
              "enabled": true,
              "links": {
                "self": "https://api.ngenix.net/api/v3/customer/4321/service/dns",
                "dnsZones": "https://api.ngenix.net/api/v3/dns-zone?customerId=4321"
              }
            }
          }
        ]
      },
      "CustomerServiceSettingsAal": {
        "description": "Настройки сервиса AAL для аккаунта",
        "allOf": [
          {
            "$ref": "#/components/schemas/CustomerServiceSettings"
          },
          {
            "properties": {
              "enabled": {
                "readOnly": true
              }
            },
            "example": {
              "modelName": "CustomerServiceSettingsAal",
              "serviceAbbreviation": "aal",
              "enabled": true,
              "links": {
                "self": "https://api.ngenix.net/api/v3/customer/4321/service/aal"
              }
            }
          }
        ]
      },
      "CustomerServiceSettingsCafLinks": {
        "description": "Описание блока \"links\" для модели CustomerServiceSettingsCaf",
        "allOf": [
          {
            "$ref": "#/components/schemas/Links"
          },
          {
            "$ref": "#/components/schemas/CloudWafsLink"
          },
          {
            "$ref": "#/components/schemas/CloudWafInstancesLink",
            "example": {
              "self": "https://api.ngenix.net/api/v3/customer/4321/service/caf",
              "cloudWafs": "https://api.ngenix.net/api/v3/cloud-waf?customerId=4321",
              "cloudWafInstances": "https://api.ngenix.net/api/v3/cloud-waf-instance?customerId=4321"
            }
          }
        ]
      },
      "CustomerServiceSettingsCaf": {
        "description": "Настройки сервиса CAF для аккаунта",
        "allOf": [
          {
            "$ref": "#/components/schemas/CustomerServiceSettings"
          },
          {
            "properties": {
              "enabled": {
                "readOnly": true
              },
              "links": {
                "$ref": "#/components/schemas/CustomerServiceSettingsCafLinks"
              }
            },
            "example": {
              "modelName": "CustomerServiceSettingsCaf",
              "serviceAbbreviation": "caf",
              "enabled": true,
              "links": {
                "self": "https://api.ngenix.net/api/v3/customer/4321/service/caf",
                "cloudWafs": "https://api.ngenix.net/api/v3/cloud-waf?customerId=4321",
                "cloudWafInstances": "https://api.ngenix.net/api/v3/cloud-waf-instances?customerId=4321"
              }
            }
          }
        ]
      },
      "CustomerServiceSettingsCosLinks": {
        "description": "Описание блока \"links\" для модели CustomerServiceSettingsCos",
        "allOf": [
          {
            "$ref": "#/components/schemas/Links"
          },
          {
            "$ref": "#/components/schemas/StorageBucketsLink",
            "example": {
              "self": "https://api.ngenix.net/api/v3/customer/4321/service/cos",
              "storageBuckets": "https://api.ngenix.net/api/v3/storage-bucket?customer=4321"
            }
          }
        ]
      },
      "CustomerServiceSettingsCos": {
        "description": "Настройки сервиса COS для аккаунта",
        "allOf": [
          {
            "$ref": "#/components/schemas/CustomerServiceSettings"
          },
          {
            "properties": {
              "enabled": {
                "readOnly": true
              },
              "links": {
                "$ref": "#/components/schemas/CustomerServiceSettingsCosLinks"
              }
            },
            "example": {
              "modelName": "CustomerServiceSettingsCos",
              "serviceAbbreviation": "cos",
              "enabled": true,
              "links": {
                "self": "https://api.ngenix.net/api/v3/customer/4321/service/cos",
                "storageBuckets": "https://api.ngenix.net/api/v3/storage-bucket?customer=4321"
              }
            }
          }
        ]
      },
      "CustomerServiceSettingsRta": {
        "description": "Настройки сервиса RTA для аккаунта",
        "allOf": [
          {
            "$ref": "#/components/schemas/CustomerServiceSettings"
          },
          {
            "properties": {
              "enabled": {
                "readOnly": true
              }
            },
            "example": {
              "modelName": "CustomerServiceSettingsRta",
              "serviceAbbreviation": "rta",
              "enabled": true,
              "links": {
                "self": "https://api.ngenix.net/api/v3/customer/4321/service/rta"
              }
            }
          }
        ]
      },
      "CustomerServiceSettingsMdn": {
        "description": "Настройки сервиса Managed Delivery Network для аккаунта",
        "allOf": [
          {
            "$ref": "#/components/schemas/CustomerServiceSettings"
          },
          {
            "properties": {
              "enabled": {
                "readOnly": true
              },
              "platformSegments": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/PlatformSegment"
                }
              }
            },
            "example": {
              "modelName": "CustomerServiceSettingsMdn",
              "serviceAbbreviation": "mdn",
              "enabled": true,
              "platformSegments": [
                {
                  "id": 1,
                  "name": "PlatformName",
                  "dedicatedSegment": false
                },
                {
                  "id": 2,
                  "name": "YOUR COMPANY NAME",
                  "dedicatedSegment": true,
                  "serverAmount": 100,
                  "bandwidthLimit": 1024,
                  "maxBandwidth": 4096
                }
              ],
              "links": {
                "self": "https://api.ngenix.net/api/v3/customer/4321/service/mdn"
              }
            }
          }
        ]
      },
      "CustomerServiceSettingsElrLinks": {
        "description": "Описание блока \"links\" для модели CustomerServiceSettingsElrLinks",
        "allOf": [
          {
            "$ref": "#/components/schemas/Links"
          },
          {
            "properties": {
              "rulesets": {
                "description": "Ссылка на получение наборов правил",
                "type": "string",
                "format": "uri",
                "readOnly": true
              },
              "trafficPatterns": {
                "description": "Ссылка на получение списков доступа",
                "type": "string",
                "format": "uri"
              }
            },
            "example": {
              "self": "https://api.ngenix.net/api/v3/customer/4321/service/elr",
              "rulesets": "https://api.ngenix.net/api/v3/ruleset?customerId=4321",
              "trafficPatterns": "https://api.ngenix.net/api/v3/traffic-pattern?customerId=4321&type=commonlist"
            }
          }
        ]
      },
      "CustomerServiceSettingsElr": {
        "description": "Настройки сервиса ELR для аккаунта",
        "allOf": [
          {
            "$ref": "#/components/schemas/CustomerServiceSettings"
          },
          {
            "properties": {
              "fixedRulesets": {
                "type": "boolean",
                "readOnly": true
              },
              "links": {
                "$ref": "#/components/schemas/CustomerServiceSettingsElrLinks"
              }
            },
            "example": {
              "modelName": "CustomerServiceSettingsElr",
              "serviceAbbreviation": "elr",
              "enabled": true,
              "fixedRulesets": true,
              "customerRef": {
                "id": 4321,
                "link": "https://api.ngenix.net/api/v3/customer/4321"
              },
              "links": {
                "self": "https://api.ngenix.net/api/v3/customer/4321/service/elr",
                "rulesets": "https://api.ngenix.net/api/v3/ruleset?customerId=4321",
                "trafficPatterns": "https://api.ngenix.net/api/v3/traffic-pattern?customerId=4321&type=commonlist"
              }
            }
          }
        ]
      },
      "CustomerServiceSettingsEcd": {
        "description": "Настройки сервиса Edge Cloud Delivery для аккаунта",
        "allOf": [
          {
            "$ref": "#/components/schemas/CustomerServiceSettings"
          },
          {
            "properties": {
              "enabled": {
                "readOnly": true
              }
            },
            "example": {
              "modelName": "CustomerServiceSettingsEcd",
              "serviceAbbreviation": "ecd",
              "enabled": true,
              "links": {
                "self": "https://api.ngenix.net/api/v3/customer/4321/service/ecd"
              }
            }
          }
        ]
      },
      "CustomerServiceSettingsAhc": {
        "description": "Настройки сервиса Active Health Check для аккаунта",
        "allOf": [
          {
            "$ref": "#/components/schemas/CustomerServiceSettings"
          },
          {
            "properties": {
              "enabled": {
                "readOnly": true
              }
            },
            "example": {
              "modelName": "CustomerServiceSettingsAhc",
              "serviceAbbreviation": "ahc",
              "enabled": true,
              "links": {
                "self": "https://api.ngenix.net/api/v3/customer/4321/service/ahc"
              }
            }
          }
        ]
      },
      "CustomerServiceSettingsOdcLinks": {
        "description": "Описание блока \"links\" для модели CustomerServiceSettingsOdc",
        "allOf": [
          {
            "$ref": "#/components/schemas/Links"
          },
          {
            "properties": {
              "directConnections": {
                "description": "Ссылка на получение прямых подключений",
                "type": "string",
                "format": "uri"
              }
            },
            "example": {
              "self": "https://api.ngenix.net/api/v3/customer/4321/service/odc",
              "directConnections": "https://api.ngenix.net/api/v3/direct-connection?customerId=4321"
            }
          }
        ]
      },
      "CustomerServiceSettingsOdc": {
        "description": "Настройки сервиса Origin Direct Connect для аккаунта",
        "allOf": [
          {
            "$ref": "#/components/schemas/CustomerServiceSettings"
          },
          {
            "properties": {
              "links": {
                "$ref": "#/components/schemas/CustomerServiceSettingsOdcLinks"
              }
            },
            "example": {
              "modelName": "CustomerServiceSettingsOdc",
              "serviceAbbreviation": "odc",
              "enabled": true,
              "links": {
                "self": "https://api.ngenix.net/api/v3/customer/4321/service/odc",
                "directConnections": "https://api.ngenix.net/api/v3/direct-connection?customerId=4321"
              }
            }
          }
        ]
      },
      "CustomerVerification": {
        "description": "Данные для верификации прав владения",
        "type": "object",
        "properties": {
          "dnsTxtRecord": {
            "type": "string",
            "example": "58c4fcbdbd189123ab093df7fb7d86a5",
            "description": "Значение ключа верификации права владения доменом (TXT-записи)"
          }
        }
      },
      "ConfigServiceSrsOrigin": {
        "type": "object",
        "required": [
          "activeSettings",
          "settings"
        ],
        "properties": {
          "activeSettings": {
            "type": "string",
            "enum": [
              "customerHttp",
              "storageBucket"
            ]
          },
          "settings": {
            "description": "Настройки взаимодействия с сервером оригинации",
            "type": "object",
            "properties": {
              "customerHttp": {
                "$ref": "#/components/schemas/CustomerHttpOriginSettings"
              },
              "storageBucket": {
                "$ref": "#/components/schemas/StorageBucketOriginSettings"
              }
            }
          }
        },
        "example": {
          "activeSettings": "customerHttp",
          "settings": {
            "customerHttp": {
              "protocol": "http",
              "backends": [
                {
                  "maxFails": 1,
                  "failTimeout": 10,
                  "backup": false,
                  "address": "backend.server.com"
                }
              ],
              "path": "/",
              "balanceMethod": "round_robin"
            },
            "storageBucket": {
              "path": "/",
              "storageBucketRef": null
            }
          }
        }
      },
      "ConfigServiceLvsOrigin": {
        "type": "object",
        "readOnly": true,
        "required": [
          "activeSettings",
          "settings"
        ],
        "properties": {
          "activeSettings": {
            "description": "Тип получения RTMP. ```customerRts``` - (RTMP/RTSP)-Pull, то есть забор потоков со стороны клиента, необходимо предварительно сообщить о пути URL потоков, написав на support@ngenix.net. ```publishingPoint``` -  RTMP-Push, то есть публикация потоков платформы.",
            "type": "string",
            "enum": [
              "customerRts",
              "publishingPoint"
            ]
          },
          "settings": {
            "type": "object",
            "properties": {
              "customerRts": {
                "$ref": "#/components/schemas/CustomerRtsOriginSettings"
              },
              "publishingPoint": {
                "$ref": "#/components/schemas/PublishingPointOriginSettings"
              }
            }
          }
        },
        "example": {
          "activeOrigin": "customerRts",
          "settings": {
            "customerRts": {
              "protocol": "rtmp",
              "backends": [
                {
                  "backup": false,
                  "address": "backend.server.com"
                }
              ],
              "path": "/"
            },
            "publishingPoint": {
              "protocol": "rtmp",
              "needAuthorization": true,
              "credentials": {
                "login": "LoG1n",
                "password": "PaSsWaRD"
              },
              "servers": [
                {
                  "backup": false,
                  "address": "s12345-media-origin1.cdn.ngenix.net"
                },
                {
                  "backup": true,
                  "address": "s12345-media-origin2.cdn.ngenix.net"
                }
              ],
              "path": "/"
            }
          }
        }
      },
      "ConfigServiceOdsOrigin": {
        "type": "object",
        "readOnly": true,
        "required": [
          "activeSettings",
          "settings"
        ],
        "properties": {
          "activeSettings": {
            "type": "string",
            "enum": [
              "customerHttp",
              "storageBucket"
            ]
          },
          "settings": {
            "type": "object",
            "properties": {
              "customerHttp": {
                "$ref": "#/components/schemas/CustomerHttpOriginSettingsOds"
              },
              "storageBucket": {
                "$ref": "#/components/schemas/StorageBucketOriginSettings"
              }
            }
          }
        },
        "example": {
          "activeSettings": "customerHttp",
          "settings": {
            "customerHttp": {
              "protocol": "http",
              "backends": [
                {
                  "maxFails": 1,
                  "failTimeout": 10,
                  "backup": false,
                  "address": "backend.server.com"
                }
              ],
              "path": "/"
            },
            "storageBucket": {
              "path": "/",
              "storageBucketRef": null
            }
          }
        }
      },
      "ConfigServiceWsaOrigin": {
        "type": "object",
        "required": [
          "activeSettings",
          "settings"
        ],
        "properties": {
          "activeSettings": {
            "description": "Тип сервера оригинации",
            "type": "string",
            "enum": [
              "customerHttp",
              "caf",
              "storageBucket"
            ]
          },
          "settings": {
            "type": "object",
            "properties": {
              "customerHttp": {
                "$ref": "#/components/schemas/CustomerHttpOriginSettings"
              },
              "caf": {
                "$ref": "#/components/schemas/CafOriginSettings"
              },
              "storageBucket": {
                "$ref": "#/components/schemas/StorageBucketOriginSettings"
              }
            }
          }
        },
        "example": {
          "activeSettings": "customerHttp",
          "settings": {
            "customerHttp": {
              "protocol": "http",
              "backends": [
                {
                  "maxFails": 1,
                  "failTimeout": 10,
                  "backup": false,
                  "address": "backend.server.com"
                }
              ],
              "path": "/",
              "balanceMethod": "round_robin"
            },
            "caf": {
              "cloudWafRef": null
            },
            "storageBucket": {
              "path": "/",
              "storageBucketRef": null
            }
          }
        }
      },
      "DnsZoneCollection": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Collection"
          },
          {
            "properties": {
              "elements": {
                "items": {
                  "$ref": "#/components/schemas/DnsZoneCollectionView"
                }
              }
            }
          }
        ]
      },
      "HttpBalanceSettings": {
        "description": "Допустимые методы балансировки",
        "type": "object",
        "properties": {
          "balanceMethod": {
            "description": "Метод балансировки.",
            "type": "string",
            "enum": [
              "round_robin",
              "inconsistent_ip",
              "consistent_ip",
              "consistent_uri",
              "consistent_key"
            ],
            "example": "round_robin"
          },
          "balanceKey": {
            "$ref": "#/components/schemas/HttpBalanceKey"
          }
        }
      },
      "HttpBalanceKey": {
        "description": "Настройки ключа балансировки",
        "type": "object",
        "properties": {
          "source": {
            "description": "Источник данных для использования в качестве ключа при балансировке\n",
            "type": "string",
            "enum": [
              "ip",
              "uri"
            ],
            "example": "uri",
            "default": "uri"
          },
          "regexp": {
            "description": "Регулярное выражение, накладываемое на источник данных (source)\nдля вычисления ключа балансировки\n",
            "type": "string",
            "readOnly": true,
            "example": "^/video/channel_(.+)/",
            "maxLength": 1024,
            "default": ""
          }
        }
      },
      "ContentPath": {
        "description": "Путь к контенту в источнике данных",
        "type": "object",
        "required": [
          "path"
        ],
        "properties": {
          "path": {
            "type": "string",
            "description": "Директория с контентом",
            "maxLength": 255,
            "example": "/path/to/content"
          }
        }
      },
      "Backend": {
        "description": "Сервер оригинации",
        "type": "object",
        "required": [
          "address"
        ],
        "properties": {
          "address": {
            "description": "Доменное имя сервера",
            "type": "string",
            "pattern": "^[a-z0-9.\\-_]+$",
            "example": "backend.server.com"
          },
          "port": {
            "type": "integer",
            "minimum": 1,
            "maximum": 65535
          }
        }
      },
      "HttpBackend": {
        "description": "HTTP Источник данных",
        "allOf": [
          {
            "$ref": "#/components/schemas/Backend"
          },
          {
            "required": [
              "maxFails",
              "failTimeout",
              "backup"
            ],
            "properties": {
              "maxFails": {
                "description": "Количество неудачных попыток получить контент с сервера оригинации.\nПо достижению этого значения, будет использоваться другой сервер оригинации.\nПериод, в рамках которого происходит подсчет попыток, задается параметром failTimeout.\nminimum=0 означает что количество неудачных попыток неограничено.\n",
                "type": "integer",
                "minimum": 0,
                "maximum": 1000,
                "example": 1
              },
              "failTimeout": {
                "type": "integer",
                "minimum": 0,
                "maximum": 600,
                "example": 10,
                "description": "Время, в течении которого сервер оригинации, достигший значения maxFails, будет не\nиспользоваться. Также этот параметр отвечает за период времени, в рамках которого будет\nпроизводиться подсчет количества неудачных попыток.\n"
              },
              "backup": {
                "type": "boolean",
                "example": false,
                "description": "Использование сервера в качестве резервного"
              }
            }
          }
        ]
      },
      "RtsBackend": {
        "description": "RTS Источник данных",
        "allOf": [
          {
            "$ref": "#/components/schemas/Backend"
          },
          {
            "required": [
              "backup"
            ],
            "properties": {
              "backup": {
                "type": "boolean",
                "example": false
              }
            }
          }
        ]
      },
      "CloudWafBackend": {
        "description": "Бэкэнд для объекта Cloud WAF",
        "allOf": [
          {
            "$ref": "#/components/schemas/HttpBackend"
          },
          {
            "properties": {
              "address": {
                "type": "string",
                "format": "ipv4",
                "example": "95.108.160.1",
                "pattern": "^[0-9.]+$",
                "description": "IP-адрес сервера. Доменные имена использовать нельзя.\n"
              }
            }
          }
        ]
      },
      "PublishingPointServer": {
        "description": "Серверы для публикации контента",
        "allOf": [
          {
            "$ref": "#/components/schemas/Backend"
          },
          {
            "properties": {
              "address": {
                "readOnly": true
              }
            }
          }
        ]
      },
      "CustomerHttpOriginSettings": {
        "description": "Описание клиентского источника данных HTTP-типа",
        "allOf": [
          {
            "$ref": "#/components/schemas/ContentPath"
          },
          {
            "$ref": "#/components/schemas/HttpBalanceSettings"
          },
          {
            "required": [
              "protocol"
            ],
            "properties": {
              "protocol": {
                "type": "string",
                "description": "Протокол взаимодействия с сервером оригинации",
                "enum": [
                  "http",
                  "https"
                ],
                "example": "http"
              },
              "proxyHostHeader": {
                "$ref": "#/components/schemas/ProxyHostHeader"
              },
              "backends": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "$ref": "#/components/schemas/HttpBackend"
                }
              }
            }
          }
        ]
      },
      "ProxyHostHeader": {
        "type": "object",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "description": "Тип проксируемого заголовка host. ```header_host``` - проксирование исходного заголовка Host пользовательского запроса. ```custom``` - использование фиксированного заголовка Host (значение заголовка описывается параметром value)",
            "type": "string",
            "enum": [
              "header_host",
              "custom"
            ],
            "example": "custom"
          },
          "value": {
            "type": "string",
            "example": "some_header",
            "description": "Задание значения фиксированного заголовка Host."
          }
        }
      },
      "CustomerHttpOriginSettingsOds": {
        "description": "Описание клиентского источника данных HTTP-типа для сервиса ODS\n",
        "allOf": [
          {
            "$ref": "#/components/schemas/ContentPath"
          },
          {
            "required": [
              "protocol"
            ],
            "properties": {
              "protocol": {
                "type": "string",
                "enum": [
                  "http",
                  "https"
                ],
                "example": "http"
              },
              "backends": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "$ref": "#/components/schemas/HttpBackend"
                }
              }
            }
          }
        ]
      },
      "StorageBucketOriginSettings": {
        "description": "Описание использования корзины хранения данных в качестве источника данных",
        "allOf": [
          {
            "$ref": "#/components/schemas/ContentPath"
          },
          {
            "required": [
              "storageBucketRef"
            ],
            "properties": {
              "storageBucketRef": {
                "$ref": "#/components/schemas/NullableReference"
              }
            }
          }
        ]
      },
      "CafOriginSettings": {
        "description": "Описание использования объекта Облачный WAF как источника данных",
        "allOf": [
          {
            "$ref": "#/components/schemas/ContentPath"
          },
          {
            "required": [
              "cloudWafRef"
            ],
            "properties": {
              "cloudWafRef": {
                "$ref": "#/components/schemas/NullableReference"
              },
              "proxyHostHeader": {
                "$ref": "#/components/schemas/ProxyHostHeader"
              }
            }
          }
        ]
      },
      "CustomerRtsOriginSettings": {
        "description": "Описание клиентского источника данных RTS PULL",
        "allOf": [
          {
            "$ref": "#/components/schemas/ContentPath"
          },
          {
            "properties": {
              "protocol": {
                "description": "Протокол взаимодействия с медиасервером заказчика",
                "type": "string",
                "enum": [
                  "rtmp",
                  "rtsp"
                ],
                "example": "rtmp"
              },
              "backends": {
                "type": "array",
                "minItems": 1,
                "maxItems": 2,
                "items": {
                  "$ref": "#/components/schemas/RtsBackend"
                }
              }
            }
          }
        ]
      },
      "PublishingPointOriginSettings": {
        "description": "Описание источника данных RTS PUSH",
        "allOf": [
          {
            "$ref": "#/components/schemas/ContentPath"
          },
          {
            "properties": {
              "path": {
                "readOnly": true
              },
              "protocol": {
                "description": "Протокол взаимодействия с платформой",
                "type": "string",
                "readOnly": true,
                "enum": [
                  "rtmp"
                ],
                "example": "rtmp"
              },
              "needAuthorization": {
                "description": "Необходимость в авторизации для публикации",
                "type": "boolean",
                "readOnly": true
              },
              "credentials": {
                "$ref": "#/components/schemas/PublishingPointOriginSettingsCredentials"
              },
              "servers": {
                "type": "array",
                "minItems": 2,
                "maxItems": 2,
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/PublishingPointServer"
                }
              }
            }
          }
        ]
      },
      "PublishingPointOriginSettingsCredentials": {
        "type": "object",
        "readOnly": true,
        "properties": {
          "login": {
            "description": "Логин для публикации",
            "readOnly": true,
            "type": "string"
          },
          "password": {
            "description": "Пароль для публикации",
            "readOnly": true,
            "type": "string"
          }
        }
      },
      "S3Settings": {
        "type": "object",
        "properties": {
          "modelName": {
            "type": "string",
            "example": "S3Settings",
            "description": "Название модели"
          },
          "endpoint": {
            "type": "string",
            "readOnly": true,
            "example": "cos.ngenix.net",
            "description": "S3 endpoint"
          },
          "bucket": {
            "type": "string",
            "readOnly": true,
            "example": "sXXXXX",
            "description": "Имя бакета"
          },
          "credentials": {
            "type": "object",
            "readOnly": true,
            "properties": {
              "accessKey": {
                "type": "string",
                "readOnly": true,
                "example": "ACC3SSK3Y",
                "description": "Ключ доступа"
              },
              "secretKey": {
                "type": "string",
                "readOnly": true,
                "example": "S3KRETK3Y",
                "description": "Секретный ключ"
              }
            }
          }
        }
      },
      "AnycastSettings": {
        "description": "Настройки Anycast",
        "type": "object",
        "properties": {
          "ipAddress": {
            "type": "string",
            "readOnly": true,
            "example": "92.168.123.1"
          }
        }
      },
      "AllowedHttpMethods": {
        "description": "Доступные HTTP методы",
        "type": "object",
        "properties": {
          "GET": {
            "readOnly": true,
            "type": "boolean"
          },
          "HEAD": {
            "readOnly": true,
            "type": "boolean"
          },
          "PURGE": {
            "readOnly": true,
            "type": "boolean"
          },
          "POST": {
            "type": "boolean"
          },
          "PUT": {
            "type": "boolean"
          },
          "PATCH": {
            "type": "boolean"
          },
          "DELETE": {
            "type": "boolean"
          },
          "OPTIONS": {
            "type": "boolean"
          }
        }
      },
      "CacheSettingsValidityStatusesItem": {
        "description": "Настройки времени валидности в зависимости от статуса ответа",
        "type": "object",
        "properties": {
          "status": {
            "type": "integer",
            "minimum": 200,
            "maximum": 599
          },
          "validityTime": {
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "CacheSettingsValidity": {
        "description": "Настройки времени валидности для отдельного HTTP-статуса",
        "type": "object",
        "properties": {
          "defaultValidityTime": {
            "type": "integer",
            "minimum": 0
          },
          "statuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CacheSettingsValidityStatusesItem"
            }
          }
        }
      },
      "ServerName": {
        "type": "string",
        "pattern": "^(\\*\\.)?[a-zA-Zа-яА-ЯёЁ0-9]([a-zA-Zа-яА-ЯёЁ0-9\\-\\.]*[a-zA-Zа-яА-ЯёЁ0-9])*$",
        "example": "additional.myserver.ru",
        "description": "Имя сервера (FQDN либо IP)"
      },
      "AdditionalServerNames": {
        "description": "Список синонимов сервиса. Необходимо для работы конфигурации с использованием CNAME  ```additional.myserver.ru CNAME s12345.cdn.ngenix.net.```",
        "type": "object",
        "properties": {
          "additionalServerNames": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServerName"
            }
          }
        }
      },
      "ConfigCollectionView": {
        "description": "Краткое представление данных конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigCollectionViewTemplate"
          },
          {
            "$ref": "#/components/schemas/AdditionalServerNames"
          },
          {
            "properties": {
              "mainService": {
                "type": "string",
                "enum": [
                  "wsa",
                  "srs",
                  "lvs",
                  "ods"
                ]
              },
              "domain": {
                "readOnly": true,
                "type": "string",
                "example": "s12345.cdn.ngenix.net",
                "description": "CDN domain"
              }
            }
          },
          {
            "example": {
              "modelName": "ConfigCollectionView",
              "name": "vector-vod",
              "active": true,
              "mainService": "lvs",
              "domain": "s12345.cdn.ngenix.net",
              "additionalServerNames": [
                "domain-cdn.myawesome.io",
                "static1.myawesome.io"
              ]
            }
          }
        ]
      },
      "ConfigCollectionViewTemplate": {
        "description": "Краткий шаблон общих данных представления данных конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/Object"
          },
          {
            "properties": {
              "name": {
                "type": "string",
                "pattern": "^[^ ][a-zA-ZА-Яа-я -_0-9]*$",
                "maxLength": 255,
                "example": "vector-vod",
                "description": "Название конфигурации"
              },
              "active": {
                "readOnly": true,
                "type": "boolean",
                "example": true
              }
            }
          }
        ]
      },
      "ConfigLinks": {
        "description": "Описание блока \"links\" для модели Config",
        "allOf": [
          {
            "$ref": "#/components/schemas/Links"
          },
          {
            "properties": {
              "services": {
                "type": "string",
                "format": "uri",
                "readOnly": true
              }
            },
            "example": {
              "self": "https://api.ngenix.net/api/v3/config/1234",
              "services": "https://api.ngenix.net/api/v3/config/4321/services"
            }
          }
        ]
      },
      "ConfigCreateServices": {
        "description": "Описание настроек всех возможных сервисов, указываемых при создании конфигурации\n",
        "type": "object",
        "properties": {
          "srs": {
            "$ref": "#/components/schemas/ConfigServiceSettingsSrs"
          },
          "wsa": {
            "$ref": "#/components/schemas/ConfigServiceSettingsWsa"
          },
          "ssl": {
            "$ref": "#/components/schemas/ConfigServiceSettingsSsl"
          }
        },
        "oneOf": [
          {
            "required": [
              "srs"
            ]
          },
          {
            "required": [
              "wsa"
            ]
          }
        ]
      },
      "ConfigTemplate": {
        "description": "Полное представление данных конфигурации (шаблон для сущностей более высокого уровня)\n",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigCollectionViewTemplate"
          },
          {
            "properties": {
              "customerRef": {
                "$ref": "#/components/schemas/Reference"
              }
            }
          }
        ]
      },
      "ConfigCreate": {
        "description": "Представление данных конфигурации при создании конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigTemplate"
          },
          {
            "required": [
              "name",
              "customerRef",
              "mainService"
            ]
          },
          {
            "properties": {
              "mainService": {
                "type": "string",
                "enum": [
                  "wsa",
                  "srs"
                ]
              },
              "services": {
                "$ref": "#/components/schemas/ConfigCreateServices"
              }
            },
            "example": {
              "name": "ritmo",
              "mainService": "wsa",
              "customerRef": {
                "id": 8994,
                "link": "https://api.ngenix.net/api/v3/customer/8994"
              }
            }
          }
        ]
      },
      "Config": {
        "description": "Полное представление данных конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigTemplate"
          },
          {
            "properties": {
              "customSettings": {
                "readOnly": true,
                "type": "boolean",
                "example": true,
                "description": "Является ли конфигурация профессиональной (наличие кастомных опций)"
              },
              "domain": {
                "readOnly": true,
                "type": "string",
                "example": "s1234.cdn.ngenix.net",
                "description": "EDGE domain"
              },
              "customerRef": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Reference"
                  },
                  {
                    "readOnly": true
                  }
                ],
                "example": {
                  "id": 8994,
                  "link": "https://api.ngenix.net/api/v3/customer/8994"
                }
              },
              "nucSettings": {
                "$ref": "#/components/schemas/ConfigNucSettings"
              },
              "links": {
                "$ref": "#/components/schemas/ConfigLinks"
              }
            },
            "example": {
              "modelName": "Config",
              "active": true,
              "domain": "s1234.cdn.ngenix.net",
              "customerRef": {
                "id": 8994,
                "link": "https://api.ngenix.net/api/v3/customer/8994"
              },
              "nucSettings": {
                "checkLink": "https://s20200.cdn.ngenix.net/nuc-eadb207fc98868cde255c3c7d5a67e80/",
                "checkLinks": [
                  "https://s20200.cdn.ngenix.net/nuc-eadb207fc98868cde255c3c7d5a67e80/"
                ]
              }
            }
          }
        ]
      },
      "ConfigNucSettings": {
        "description": "Блок параметров User Check для конфигурации",
        "readOnly": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigNucCheckLinks"
          },
          {
            "properties": {
              "checkLink": {
                "type": "string",
                "format": "uri",
                "description": "Ссылка на страницу диагностики для конфигурации (на EDGE-domain). Deprecated, будет заменена на checkLinks.\n"
              }
            }
          }
        ]
      },
      "ConfigNucCheckLinks": {
        "description": "Ссылки на страницу диагностики для конфигурации",
        "type": "object",
        "properties": {
          "checkLinks": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uri"
            }
          }
        }
      },
      "ConfigRefRO": {
        "description": "Атрибут config ссылочного типа",
        "type": "object",
        "properties": {
          "configRef": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Reference"
              },
              {
                "readOnly": true
              }
            ]
          }
        },
        "example": {
          "link": "https://api.ngenix.net/api/v3/config/1234"
        }
      },
      "ConfigServiceSettings": {
        "description": "Атрибуты для параметров сервисов уровня конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/ServiceSettingsCollectionView"
          },
          {
            "$ref": "#/components/schemas/ConfigRefRO"
          }
        ]
      },
      "TransportLayerProtectionSettings": {
        "description": "Настройки защиты транспортного уровня",
        "properties": {
          "enabled": {
            "type": "boolean",
            "readOnly": true
          },
          "managedObjectRef": {
            "$ref": "#/components/schemas/Reference",
            "readOnly": true
          }
        },
        "example": {
          "enabled": true,
          "managedObjectRef": {
            "id": 1234,
            "link": "https://api.ngenix.net/api/v3/managed-object/1234"
          }
        }
      },
      "ConfigServiceSettingsLvs": {
        "description": "Настройки сервиса LVS для конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigServiceSettings"
          },
          {
            "$ref": "#/components/schemas/AdditionalServerNames"
          },
          {
            "properties": {
              "origin": {
                "$ref": "#/components/schemas/ConfigServiceLvsOrigin"
              },
              "enabled": {
                "type": "boolean",
                "readOnly": true
              },
              "transportLayerProtection": {
                "$ref": "#/components/schemas/TransportLayerProtectionSettings"
              }
            },
            "example": {
              "modelName": "ConfigServiceSettingsLvs",
              "links": {
                "self": "https://api.ngenix.net/api/v3/config/1234/service/lvs"
              }
            }
          }
        ]
      },
      "ConfigServiceSettingsSrsLinks": {
        "description": "Описание блока \"links\" для модели ConfigServiceSettingsSrs",
        "allOf": [
          {
            "$ref": "#/components/schemas/Links"
          },
          {
            "type": "object",
            "example": {
              "self": "https://api.ngenix.net/api/v3/config/1234/service/srs"
            }
          }
        ]
      },
      "ConfigServiceSettingsSrs": {
        "description": "Настройки сервиса SRS для конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigServiceSettings"
          },
          {
            "$ref": "#/components/schemas/AdditionalServerNames"
          },
          {
            "properties": {
              "links": {
                "$ref": "#/components/schemas/ConfigServiceSettingsSrsLinks"
              },
              "origin": {
                "$ref": "#/components/schemas/ConfigServiceSrsOrigin"
              },
              "enabled": {
                "type": "boolean",
                "readOnly": true
              },
              "transportLayerProtection": {
                "$ref": "#/components/schemas/TransportLayerProtectionSettings"
              },
              "cache": {
                "$ref": "#/components/schemas/SrsCacheSettings",
                "readOnly": true
              }
            },
            "example": {
              "modelName": "ConfigServiceSettingsSrs"
            }
          }
        ]
      },
      "ConfigServiceSettingsOdsLinks": {
        "description": "Описание блока \"links\" для модели ConfigServiceSettingsOds",
        "allOf": [
          {
            "$ref": "#/components/schemas/Links"
          },
          {
            "type": "object",
            "example": {
              "self": "https://api.ngenix.net/api/v3/config/1234/service/ods"
            }
          }
        ]
      },
      "ConfigServiceSettingsOds": {
        "description": "Настройки сервиса ODS для конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigServiceSettings"
          },
          {
            "$ref": "#/components/schemas/AdditionalServerNames"
          },
          {
            "properties": {
              "modelName": {
                "type": "string",
                "example": "ConfigServiceSettingsOds"
              },
              "links": {
                "$ref": "#/components/schemas/ConfigServiceSettingsOdsLinks"
              },
              "origin": {
                "$ref": "#/components/schemas/ConfigServiceOdsOrigin"
              },
              "enabled": {
                "type": "boolean",
                "readOnly": true
              },
              "transportLayerProtection": {
                "$ref": "#/components/schemas/TransportLayerProtectionSettings"
              }
            }
          }
        ]
      },
      "ConfigServiceSettingsWsaLinks": {
        "description": "Описание блока \"links\" для модели ConfigServiceSettingsWsa",
        "allOf": [
          {
            "$ref": "#/components/schemas/Links"
          },
          {
            "$ref": "#/components/schemas/CloudWafsLink"
          },
          {
            "type": "object",
            "example": {
              "self": "https://api.ngenix.net/api/v3/config/1234/service/srs",
              "cloudWafs": "https://api.ngenix.net/api/v3/cloud-waf?customerId=4321"
            }
          }
        ]
      },
      "ConfigServiceSettingsWsa": {
        "description": "Настройки сервиса WSA для конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigServiceSettings"
          },
          {
            "$ref": "#/components/schemas/AdditionalServerNames"
          },
          {
            "properties": {
              "origin": {
                "$ref": "#/components/schemas/ConfigServiceWsaOrigin"
              },
              "enabled": {
                "type": "boolean",
                "readOnly": true
              },
              "gzip": {
                "type": "boolean",
                "example": true
              },
              "emptyFavicon": {
                "type": "boolean",
                "example": true
              },
              "allowedHttpMethods": {
                "$ref": "#/components/schemas/AllowedHttpMethods"
              },
              "cache": {
                "$ref": "#/components/schemas/CacheSettings"
              },
              "links": {
                "$ref": "#/components/schemas/ConfigServiceSettingsWsaLinks"
              },
              "websocket": {
                "description": "Включение поддержки WebSocket",
                "type": "boolean"
              },
              "transportLayerProtection": {
                "$ref": "#/components/schemas/TransportLayerProtectionSettings"
              },
              "anycast": {
                "$ref": "#/components/schemas/AnycastSettings"
              }
            },
            "example": {
              "modelName": "ConfigServiceSettingsWsa",
              "links": {
                "self": "https://api.ngenix.net/api/v3/config/1234/service/wsa",
                "cloudWafs": "https://api.ngenix.net/api/v3/cloud-waf?customerId=4321"
              },
              "gzip": true,
              "emptyFavicon": true,
              "cache": {
                "disableProxyCache": true
              },
              "websocket": true,
              "anycast": {
                "ipAddress": "92.168.123.1"
              }
            }
          }
        ]
      },
      "ConfigServiceSettingsSsl": {
        "description": "Настройки сервиса SSL для конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigServiceSettings"
          },
          {
            "properties": {
              "disableHttp": {
                "description": "Отключить взаимодействие пользователей с ресурсом по http",
                "type": "boolean"
              },
              "forceHttps": {
                "description": "Принудительно направлять пользователей на https (редирект)",
                "type": "boolean"
              },
              "hsts": {
                "description": "Принудительно направлять пользователей на https (через механизм HSTS)",
                "type": "boolean"
              },
              "hstsMaxAge": {
                "type": "integer",
                "description": "Срок действия HSTS в секундах",
                "minimum": 1,
                "maximum": 31536000
              },
              "tlsProfile": {
                "type": "string",
                "readOnly": true,
                "minLength": 3,
                "maxLength": 64,
                "pattern": "^[a-z]+[a-z0-9_]*[a-z0-9]+$"
              }
            },
            "example": {
              "configRef": {
                "id": 1234,
                "link": "https://api.ngenix.net/api/v3/config/1234"
              },
              "modelName": "ConfigServiceSettingsSsl",
              "serviceAbbreviation": "ssl",
              "enabled": true,
              "disableHttp": true,
              "forceHttps": true,
              "hsts": true,
              "hstsMaxAge": 10000,
              "tlsProfile": "min_10",
              "links": {
                "self": "https://api.ngenix.net/api/v3/config/1234/service/ssl"
              }
            }
          }
        ]
      },
      "CertificateValidity": {
        "properties": {
          "notBefore": {
            "description": "Дата-время начала действия сертификата",
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "notAfter": {
            "description": "Дата-время конца действия сертификата",
            "type": "string",
            "format": "date-time",
            "readOnly": true
          }
        }
      },
      "CertificateSubject": {
        "properties": {
          "canonicalName": {
            "description": "Common Name сертификата",
            "type": "string",
            "readOnly": true,
            "minLength": 1,
            "maxLength": 128
          }
        }
      },
      "CertificateIssuer": {
        "properties": {
          "organization": {
            "description": "Certificate Authority",
            "type": "string",
            "readOnly": true
          }
        }
      },
      "PublicKeyInfo": {
        "properties": {
          "algorithm": {
            "description": "Алгоритм формирования открытого ключа",
            "type": "string",
            "readOnly": true,
            "minLength": 1
          },
          "keySize": {
            "description": "Длина открытого ключа",
            "type": "integer",
            "readOnly": true,
            "minimum": 1
          }
        }
      },
      "CertificateInfo": {
        "description": "Информация об используемом SSL сертификате",
        "properties": {
          "validity": {
            "$ref": "#/components/schemas/CertificateValidity"
          },
          "subject": {
            "$ref": "#/components/schemas/CertificateSubject"
          },
          "issuer": {
            "$ref": "#/components/schemas/CertificateIssuer"
          },
          "fingerprint": {
            "type": "string",
            "minLength": 59,
            "maxLength": 59,
            "readOnly": true,
            "description": "Fingerprint сертификата"
          },
          "publicKeyInfo": {
            "$ref": "#/components/schemas/PublicKeyInfo"
          },
          "updatedAt": {
            "description": "Дата обновления сертификата",
            "type": "string",
            "format": "date-time",
            "readOnly": true
          }
        }
      },
      "CertificateWithPrivateKeyUpload": {
        "description": "Загружаемый SSL сертификат и приватный ключ",
        "writeOnly": true,
        "properties": {
          "certificate": {
            "description": "Содержимое сертификата",
            "type": "string",
            "nullable": true,
            "writeOnly": true,
            "minLength": 1
          },
          "privateKey": {
            "description": "Содержимое ключа",
            "type": "string",
            "nullable": true,
            "writeOnly": true,
            "minLength": 1
          }
        },
        "example": {
          "certificate": "-----BEGIN CERTIFICATE-----XXX-----END CERTIFICATE-----",
          "privateKey": "-----BEGIN RSA PRIVATE KEY-----XXX-----END RSA PRIVATE KEY-----"
        }
      },
      "Certificate": {
        "properties": {
          "autoRefresh": {
            "description": "Автопродление сертификата (в случае с Let's Encrypt от платформы)",
            "type": "boolean"
          },
          "fullValidation": {
            "description": "Если установлено в false, то при текущей и последующих загрузках для\nсертификата отключены следующие проверки:\n- Проверка что сертификат выдан доверенным центром\n- Проверка начала действия сертификата\n- Проверка окончания действия сертификата\n- Проверка связности цепочки сертификатов\nПримечание: Для ГОСТ сертификата проверка на то что сертификат выдан\nдоверенным центром не выполняется никогда\n",
            "type": "boolean"
          },
          "info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CertificateInfo"
              },
              {
                "readOnly": true
              }
            ]
          },
          "credentials": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CertificateWithPrivateKeyUpload"
              },
              {
                "writeOnly": true
              }
            ]
          }
        }
      },
      "Certificates": {
        "properties": {
          "rsa": {
            "$ref": "#/components/schemas/Certificate"
          },
          "gost": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Certificate"
              },
              {
                "properties": {
                  "autoRefresh": {
                    "readOnly": true
                  }
                }
              }
            ]
          }
        }
      },
      "ConfigServiceSettingsHsl": {
        "description": "Настройки сервиса HSL для конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigServiceSettings"
          },
          {
            "properties": {
              "certificates": {
                "$ref": "#/components/schemas/Certificates"
              }
            },
            "example": {
              "modelName": "ConfigServiceSettingsHsl",
              "serviceAbbreviation": "hsl",
              "enabled": true,
              "autoRefresh": true,
              "certificates": {
                "rsa": {
                  "autoRefresh": true,
                  "info": {
                    "validity": {
                      "notBefore": "2018-11-21T10:00:00",
                      "notAfter": "2019-11-21T10:00:00"
                    },
                    "subject": {
                      "canonicalName": "*.ngenix.net"
                    },
                    "issuer": {
                      "organization": "DigiCert Inc"
                    },
                    "fingerprint": "e1:12:85:0a:f3:c2:cf:e7:e8:e4:7a:e9:9d:5d:fc:e0:4a:64:ea:af",
                    "publicKeyInfo": {
                      "algorithm": "RSA",
                      "keySize": 2048
                    },
                    "updatedAt": "2018-11-21T10:00:00"
                  }
                },
                "gost": {
                  "autoRefresh": false,
                  "info": {
                    "validity": {
                      "notBefore": "2018-11-21T10:00:00",
                      "notAfter": "2019-11-21T10:00:00"
                    },
                    "subject": {
                      "canonicalName": "*.ngenix.net"
                    },
                    "issuer": {
                      "organization": "MinCifra"
                    },
                    "fingerprint": "e1:12:85:0a:f3:c2:cf:e7:e8:e4:7a:e9:9d:5d:fc:e0:4a:64:ea:af",
                    "publicKeyInfo": {
                      "algorithm": "GOST R 34.10-2001",
                      "keySize": 256
                    },
                    "updatedAt": "2018-11-21T10:00:00"
                  }
                }
              },
              "links": {
                "self": "https://api.ngenix.net/api/v3/config/1234/service/hsl"
              }
            }
          }
        ]
      },
      "ConfigServiceSettingsWal": {
        "description": "Настройки сервиса WAL для конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigServiceSettings"
          },
          {
            "properties": {
              "enabled": {
                "readOnly": true
              },
              "wallarmMode": {
                "type": "string",
                "description": "Тип работы Wallarm:\n```monitoring``` - режим мониторинга и обучения, блокировок не производится,\n```block``` - режим активной защиты при наличии атаки,\n```safe_blocking``` - блокирует запросы только из серого списка\n",
                "enum": [
                  "monitoring",
                  "block",
                  "safe_blocking"
                ]
              },
              "controlPanel": {
                "description": "Ссылка на личный кабинет Wallarm",
                "type": "string",
                "minLength": 1,
                "readOnly": true
              }
            },
            "example": {
              "modelName": "ConfigServiceSettingsWal",
              "serviceAbbreviation": "wal",
              "enabled": true,
              "wallarmMode": "block",
              "controlPanel": "https://wallarm.ngenix.net",
              "links": {
                "self": "https://api.ngenix.net/api/v3/config/1234/service/wal"
              }
            }
          }
        ]
      },
      "ConfigServiceSettingsDdpLinks": {
        "description": "Описание блока \"links\" для модели ConfigServiceSettingsDdp",
        "allOf": [
          {
            "$ref": "#/components/schemas/Links"
          },
          {
            "properties": {
              "availableCustomerWhitelists": {
                "description": "Ссылка на получение списков доступа аккаунта, доступных для использования в качестве белых списков\n",
                "type": "string",
                "format": "uri",
                "readOnly": true
              }
            },
            "example": {
              "self": "https://api.ngenix.net/api/v3/config/1234/service/ddp",
              "availableCustomerWhitelists": "https://api.ngenix.net/api/v3/traffic-pattern?customerId=8972&type=whitelist&source=customer"
            }
          }
        ]
      },
      "ConfigServiceSettingsDdp": {
        "description": "Настройки сервиса DDP для конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigServiceSettings"
          },
          {
            "properties": {
              "enabled": {
                "type": "boolean",
                "readOnly": true
              },
              "acls": {
                "$ref": "#/components/schemas/ConfigServiceSettingsDdpAcls"
              },
              "links": {
                "$ref": "#/components/schemas/ConfigServiceSettingsDdpLinks"
              },
              "mode": {
                "description": "Изменение режима запрещено, если включён режим \"Обучение\"",
                "type": "string",
                "enum": [
                  "blocking",
                  "monitoring",
                  "learning"
                ]
              },
              "enableTotalValidation": {
                "type": "boolean",
                "description": "Вкл\\выкл валидацию для всех запросов"
              },
              "enableValidationByList": {
                "type": "boolean",
                "description": "Вкл\\выкл валидацию по списку (filterlist)"
              }
            },
            "example": {
              "modelName": "ConfigServiceSettingsDdp",
              "serviceAbbreviation": "ddp",
              "acls": {
                "whitelistRef": {
                  "id": 7,
                  "link": "https://api.ngenix.net/api/v3/traffic-pattern/7"
                },
                "blacklistRef": {
                  "id": 8,
                  "link": "https://api.ngenix.net/api/v3/traffic-pattern/8"
                },
                "filterlistRef": {
                  "id": 9,
                  "link": "https://api.ngenix.net/api/v3/traffic-pattern/9"
                },
                "customerWhitelistRef": {
                  "id": 111
                },
                "enabled": true
              },
              "mode": "blocking",
              "enableTotalValidation": false,
              "enableValidationByList": true,
              "links": {
                "self": "https://api.ngenix.net/api/v3/config/1234/service/ddp",
                "availableCustomerWhitelists": "https://api.ngenix.net/api/v3/traffic-pattern?customerId=8972&type=whitelist&source=customer"
              }
            }
          }
        ]
      },
      "ConfigServiceSettingsDdpAcls": {
        "type": "object",
        "properties": {
          "customerWhitelistRef": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NullableReference"
              }
            ]
          },
          "whitelistRef": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Reference"
              },
              {
                "readOnly": true
              }
            ]
          },
          "blacklistRef": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Reference"
              },
              {
                "readOnly": true
              }
            ]
          },
          "filterlistRef": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Reference"
              },
              {
                "readOnly": true
              }
            ]
          }
        }
      },
      "AttackInfo": {
        "description": "Информация об атаке",
        "type": "object",
        "nullable": true,
        "properties": {
          "attackLevel": {
            "description": "Уровень атаки",
            "readOnly": true,
            "type": "string",
            "enum": [
              "low",
              "medium",
              "high"
            ],
            "example": "medium"
          },
          "attackTypes": {
            "description": "Тип атаки",
            "readOnly": true,
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            },
            "example": [
              "total",
              "icmp",
              "dns",
              "udp"
            ]
          },
          "startTime": {
            "description": "Дата/время начала атаки",
            "readOnly": true,
            "type": "string",
            "format": "date-time",
            "example": "2018-01-01T20:20:20"
          }
        }
      },
      "ConfigServiceSettingsOei": {
        "description": "Настройки сервиса OEI для конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigServiceSettings"
          },
          {
            "required": [
              "receiverType",
              "receiverSettings"
            ]
          },
          {
            "properties": {
              "enabled": {
                "type": "boolean",
                "readOnly": true
              },
              "password": {
                "description": "Пароль на отправку логов",
                "type": "string",
                "pattern": "^[a-zA-Z0-9]{16}$",
                "readOnly": true
              },
              "receiverType": {
                "description": "Формат получения логов",
                "type": "string",
                "readOnly": true,
                "enum": [
                  "syslog"
                ]
              },
              "receiverSettings": {
                "$ref": "#/components/schemas/ReceiverSyslogSettings"
              }
            },
            "example": {
              "configRef": {
                "id": 1234,
                "link": "https://api.ngenix.net/api/v3/config/1234"
              },
              "modelName": "ConfigServiceSettingsOei",
              "serviceAbbreviation": "oei",
              "enabled": true,
              "password": "AbCdEfGhHi012345",
              "receiverType": "syslog",
              "receiverSettings": {
                "hostname": "127.0.0.1",
                "port": 514,
                "transport": "udp"
              },
              "links": {
                "self": "https://api.ngenix.net/api/v3/config/1234/service/oei"
              }
            }
          }
        ]
      },
      "ReceiverSyslogSettings": {
        "description": "Настройки получателя данных типа syslog",
        "properties": {
          "hostname": {
            "description": "Доменное имя или IP адрес ресивера логов",
            "type": "string",
            "readOnly": true
          },
          "port": {
            "description": "Порт ресивера логов",
            "type": "integer",
            "readOnly": true
          },
          "transport": {
            "description": "Тип транспортного протокола",
            "type": "string",
            "readOnly": true,
            "enum": [
              "tcp",
              "udp"
            ]
          }
        },
        "example": {
          "hostname": "127.0.0.1",
          "port": 514,
          "transport": "udp"
        }
      },
      "ConfigServiceSettingsTrl": {
        "description": "Настройки сервиса TRL для конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigServiceSettings"
          },
          {
            "properties": {
              "enabled": {
                "type": "boolean",
                "readOnly": true
              },
              "timeout": {
                "description": "Время жизни токена, в секундах",
                "type": "integer",
                "minimum": 1,
                "maximum": 31536000
              },
              "signDirs": {
                "description": "Подпись директорий. false - подпись полного пути к файлу (/.../.../obj.png), true - подпись пути к файлу (/.../.../).",
                "type": "boolean"
              },
              "validationAlgorithm": {
                "description": "Алгоритм валидации токена",
                "type": "string",
                "enum": [
                  "uriOnly",
                  "uriAndStrictIp",
                  "uriAndMultipleIps"
                ]
              },
              "password": {
                "description": "Набор символов длиной от 8 до 32 с обязательным наличием строчного и прописного символа латиницы, а также цифры. (ограничения на допустимые символы не указаны в схеме для обеспечения совместимости с паролями, записанными в старых форматах)\n",
                "type": "string",
                "minLength": 8,
                "maxLength": 32
              }
            },
            "example": {
              "configRef": {
                "id": 1234,
                "link": "https://api.ngenix.net/api/v3/config/1234"
              },
              "modelName": "ConfigServiceSettingsTrl",
              "serviceAbbreviation": "trl",
              "enabled": true,
              "signDirs": true,
              "validationAlgorithm": "uriAndStrictIp",
              "timeout": 3600,
              "password": "Su4erPaZZw0rt",
              "links": {
                "self": "https://api.ngenix.net/api/v3/config/1234/service/trl"
              }
            }
          }
        ]
      },
      "ConfigServiceSettingsPaf": {
        "description": "Настройки сервиса PAF для конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigServiceSettings"
          },
          {
            "properties": {
              "enabled": {
                "type": "boolean",
                "readOnly": true
              },
              "ptafProtectionMode": {
                "type": "string",
                "readOnly": true,
                "description": "Режим работы PTAF. ```monitoring``` - работа в режиме мониторинга и обучения. ```protection``` - работа в режиме защиты.",
                "enum": [
                  "monitoring",
                  "protection"
                ]
              },
              "controlPanel": {
                "description": "Ссылка на личный кабинет PT AF.",
                "readOnly": true,
                "type": "string"
              }
            },
            "example": {
              "configRef": {
                "id": 1234,
                "link": "https://api.ngenix.net/api/v3/config/1234"
              },
              "modelName": "ConfigServiceSettingsPaf",
              "serviceAbbreviation": "paf",
              "enabled": true,
              "ptafProtectionMode": "monitoring",
              "controlPanel": "https://c10322-ptaf.cdn.ngenix.net",
              "links": {
                "self": "https://api.ngenix.net/api/v3/config/1234/service/paf"
              }
            }
          }
        ]
      },
      "ConfigServiceSettingsPrgLinks": {
        "description": "Описание блока \"links\" для модели ConfigServiceSettingsPrg",
        "allOf": [
          {
            "$ref": "#/components/schemas/Links"
          },
          {
            "properties": {
              "purgeTasks": {
                "description": "Ссылка на список заданий по очистке кэша данной конфигурации",
                "type": "string",
                "format": "uri"
              }
            },
            "example": {
              "self": "https://api.ngenix.net/api/v3/config/1234/prg",
              "purgeTasks": "https://api.ngenix.net/api/v3/purge-task?configId=1234"
            }
          }
        ]
      },
      "ConfigServiceSettingsPrg": {
        "description": "Настройки сервиса PRG для конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigServiceSettings"
          },
          {
            "properties": {
              "enabled": {
                "readOnly": true
              },
              "links": {
                "$ref": "#/components/schemas/ConfigServiceSettingsPrgLinks"
              }
            },
            "example": {
              "modelName": "ConfigServiceSettingsPrg",
              "serviceAbbreviation": "prg",
              "enabled": true,
              "configRef": {
                "id": 1234,
                "link": "https://api.ngenix.net/api/v3/config/1234"
              },
              "links": {
                "self": "https://api.ngenix.net/api/v3/config/1234/service/prg",
                "purgeTasks": "https://api.ngenix.net/api/v3/purge-task?configId=1234"
              }
            }
          }
        ]
      },
      "ConfigServiceSettingsRls": {
        "description": "Настройки сервиса RLS для конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigServiceSettings"
          },
          {
            "properties": {
              "enabled": {
                "readOnly": true
              },
              "syslogDestinations": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ConfigServiceSettingsRlsSyslogDestinations"
                }
              }
            },
            "example": {
              "configRef": {
                "id": 1234,
                "link": "https://api.ngenix.net/api/v3/config/1234"
              },
              "modelName": "ConfigServiceSettingsRls",
              "serviceAbbreviation": "rls",
              "enabled": true,
              "syslogDestinations": [
                {
                  "hostname": "127.0.0.1",
                  "port": 514,
                  "transport": "udp"
                },
                {
                  "hostname": "192.168.0.1",
                  "port": 514,
                  "transport": "udp"
                }
              ],
              "links": {
                "self": "https://api.ngenix.net/api/v3/config/1234/service/rls"
              }
            }
          }
        ]
      },
      "ConfigServiceSettingsRlsSyslogDestinations": {
        "type": "object",
        "properties": {
          "hostname": {
            "type": "string",
            "readOnly": true,
            "description": "Доменное имя или IP получателя клиентских логов"
          },
          "transport": {
            "description": "Тип транспортного протокола",
            "type": "string",
            "readOnly": true,
            "enum": [
              "udp",
              "tcp"
            ]
          },
          "port": {
            "description": "Порт получателя клиентских логов",
            "type": "integer",
            "readOnly": true
          }
        }
      },
      "ConfigServiceSettingsRts": {
        "description": "Настройки сервиса RTS для конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigServiceSettings"
          },
          {
            "properties": {
              "enabled": {
                "readOnly": true,
                "type": "boolean"
              },
              "domain": {
                "readOnly": true,
                "type": "string",
                "description": "Edge-domain конфигурации"
              },
              "path": {
                "readOnly": true,
                "type": "string",
                "description": "Путь до потоков"
              }
            },
            "example": {
              "configRef": {
                "id": 1234,
                "link": "https://api.ngenix.net/api/v3/config/1234"
              },
              "modelName": "ConfigServiceSettingsRts",
              "enabled": true,
              "domain": "s1234-rts.cdn.ngenix.net",
              "path": "/example/path",
              "links": {
                "self": "https://api.ngenix.net/api/v3/config/1234/service/rts"
              }
            }
          }
        ]
      },
      "ImageTransformPolicyCollectionView": {
        "description": "Краткое представление политики преобразования изображения",
        "allOf": [
          {
            "$ref": "#/components/schemas/Object"
          },
          {
            "required": [
              "customerRef"
            ]
          },
          {
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 255
              },
              "customerRef": {
                "$ref": "#/components/schemas/Reference"
              }
            },
            "example": {
              "id": 12345,
              "modelName": "ImageTransformPolicyCollectionView",
              "name": "Tiny",
              "customerRef": {
                "id": 8994,
                "link": "https://api.ngenix.net/api/v3/customer/8994"
              },
              "links": {
                "self": "https://api.ngenix.net/api/v3/image-transform-policy/12345"
              }
            }
          }
        ]
      },
      "ImageTransformPolicyCollection": {
        "description": "Коллекция политик преобразования изображений",
        "allOf": [
          {
            "$ref": "#/components/schemas/Collection"
          },
          {
            "properties": {
              "elements": {
                "items": {
                  "$ref": "#/components/schemas/ImageTransformPolicyCollectionView"
                }
              }
            },
            "example": {
              "modelName": "ImageTrasformPolicyCollection",
              "elements": [
                {
                  "id": 12345,
                  "modelName": "ImageTransformPolicyCollectionView",
                  "name": "Tiny",
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/image-transform-policy/12345"
                  }
                }
              ]
            }
          }
        ]
      },
      "ImageTransformPolicy": {
        "description": "Представление политики преобразования изображений",
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageTransformPolicyTemplate"
          },
          {
            "properties": {
              "customerRef": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Reference"
                  },
                  {
                    "readOnly": true
                  }
                ]
              }
            }
          }
        ]
      },
      "ImageTransformPolicyCreate": {
        "description": "Представление данных для создания политики преобразования изображений",
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageTransformPolicyTemplate"
          }
        ]
      },
      "ImageTransformProfile": {
        "description": "Профиль преобразования изображений",
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "pattern": "^[a-z0-9]+$",
            "minLength": 1,
            "maxLength": 255
          },
          "width": {
            "type": "integer",
            "minimum": 0
          },
          "height": {
            "type": "integer",
            "minimum": 0
          },
          "quality": {
            "type": "integer",
            "minimum": 10,
            "maximum": 100
          },
          "fit": {
            "type": "string",
            "enum": [
              "crop",
              "scale",
              "contain"
            ]
          },
          "blurRadius": {
            "type": "integer",
            "minimum": 0,
            "maximum": 80
          }
        }
      },
      "ImageTransformPolicyTemplate": {
        "description": "Представление данных для создания политики преобразования изображений",
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageTransformPolicyCollectionView"
          },
          {
            "properties": {
              "modifiedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "profiles": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ImageTransformProfile"
                }
              }
            },
            "example": {
              "id": 12345,
              "modelName": "ImageTransformPolicy",
              "name": "Tiny",
              "customerRef": {
                "id": 8994,
                "link": "https://api.ngenix.net/api/v3/customer/8994"
              },
              "modifiedAt": "2019-04-11T12:00:00Z",
              "createdAt": "2019-03-11T12:00:00Z",
              "profiles": [
                {
                  "name": "qvga",
                  "width": 320,
                  "height": 240,
                  "quality": 80,
                  "fit": "crop",
                  "blurRadius": 20
                },
                {
                  "name": "hd720",
                  "width": 1280,
                  "height": 720,
                  "quality": 90,
                  "fit": "contain",
                  "blurRadius": 40
                }
              ],
              "links": {
                "self": "https://api.ngenix.net/api/v3/image-transform-policy/12345"
              }
            }
          }
        ]
      },
      "ConfigServiceSettingsImo": {
        "description": "Настройки сервиса IMO для конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigServiceSettings"
          },
          {
            "properties": {
              "enabled": {
                "readOnly": true
              },
              "extensions": {
                "description": "Преобразуемые форматы",
                "type": "array",
                "maxItems": 2,
                "items": {
                  "type": "string",
                  "enum": [
                    "jpg",
                    "png"
                  ]
                }
              },
              "transformPolicyRef": {
                "$ref": "#/components/schemas/NullableReference"
              }
            },
            "example": {
              "configRef": {
                "id": 1234,
                "link": "https://api.ngenix.net/api/v3/config/1234"
              },
              "modelName": "ConfigServiceSettingsImo",
              "enabled": true,
              "extensions": [
                "jpg",
                "png"
              ],
              "transformPolicyRef": {
                "id": 12345,
                "link": "https://api.ngenix.net/api/v3/image-transform-policy/12345"
              },
              "links": {
                "self": "https://api.ngenix.net/api/v3/config/1234/service/imo"
              }
            }
          }
        ]
      },
      "ConfigServiceSettingsOsd": {
        "description": "Настройки сервиса OSD для конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigServiceSettings"
          },
          {
            "properties": {
              "enabled": {
                "type": "boolean",
                "example": true,
                "readOnly": true
              }
            },
            "example": {
              "configRef": {
                "id": 1234,
                "link": "https://api.ngenix.net/api/v3/config/1234"
              },
              "serviceAbbreviation": "osd",
              "modelName": "ConfigServiceSettingsOsd",
              "enabled": true,
              "links": {
                "self": "https://api.ngenix.net/api/v3/config/1234/service/osd"
              }
            }
          }
        ]
      },
      "ConfigServiceSettingsElr": {
        "description": "Настройки сервиса ELR для конфигурации",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigServiceSettings"
          },
          {
            "properties": {
              "rulesets": {
                "$ref": "#/components/schemas/ConfigServiceSettingsElrRulesets"
              }
            },
            "example": {
              "modelName": "ConfigServiceSettingsElr",
              "enabled": true,
              "rulesets": {
                "userRequestRulesetRef": {
                  "id": 123,
                  "link": "https://api.ngenix.net/api/v3/ruleset/123"
                }
              },
              "links": {
                "self": "https://api.ngenix.net/api/v3/config/1234/service/osd"
              }
            }
          }
        ]
      },
      "ConfigServiceSettingsElrRulesets": {
        "type": "object",
        "properties": {
          "userRequestRulesetRef": {
            "$ref": "#/components/schemas/NullableReference"
          }
        }
      },
      "PurgeTaskCollectionView": {
        "description": "Элемент коллекции заданий на очистку кэша",
        "type": "object",
        "required": [
          "configRef"
        ],
        "properties": {
          "uuid": {
            "type": "string",
            "format": "uuid",
            "minLength": 36,
            "maxLength": 36,
            "readOnly": true,
            "description": "Идентификатор задания на очистку кэша"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "Время создания задания на очистку кэша"
          },
          "startedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "Время начала процедуры очистки кэша"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "Время завершения выполнения задания"
          },
          "status": {
            "type": "string",
            "readOnly": true,
            "description": "Статус задания",
            "enum": [
              "created",
              "started",
              "completed"
            ]
          },
          "objectCount": {
            "description": "Количество удаляемых из кэша объектов",
            "type": "integer",
            "minimum": 1,
            "readOnly": true
          },
          "configRef": {
            "$ref": "#/components/schemas/Reference"
          },
          "links": {
            "$ref": "#/components/schemas/Links"
          }
        },
        "example": {
          "uuid": "b922f7d4-d74c-4d7f-ba37-4e9d804b0736",
          "createdAt": "2019-01-01T12:00:00Z",
          "startedAt": "2019-01-01T12:20:00Z",
          "completedAt": "2019-01-01T12:30:00Z",
          "status": "completed",
          "objectCount": 2,
          "configRef": {
            "id": 1234,
            "link": "https://api.ngenix.net/api/v3/config/1234"
          },
          "links": {
            "self": "https://api.ngenix.net/api/v3/purge-task/b922f7d4-d74c-4d7f-ba37-4e9d804b0736"
          }
        }
      },
      "PurgeTaskCollection": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Collection"
          },
          {
            "properties": {
              "elements": {
                "items": {
                  "$ref": "#/components/schemas/PurgeTaskCollectionView"
                }
              }
            }
          }
        ]
      },
      "PurgeTask": {
        "description": "Задание на очистку кэша",
        "allOf": [
          {
            "$ref": "#/components/schemas/PurgeTaskCollectionView"
          },
          {
            "properties": {
              "objects": {
                "type": "array",
                "minItems": 1,
                "maxItems": 10000,
                "description": "Список объектов на удаление",
                "items": {
                  "type": "string"
                }
              }
            },
            "example": {
              "uuid": "b922f7d4-d74c-4d7f-ba37-4e9d804b0736",
              "createdAt": "2019-01-01T12:00:00Z",
              "startedAt": "2019-01-01T12:20:00Z",
              "completedAt": "2019-01-01T12:30:00Z",
              "status": "completed",
              "objectCount": 2,
              "configRef": {
                "id": 1234,
                "link": "https://api.ngenix.net/api/v3/config/1234"
              },
              "objects": [
                "/path/to/file1",
                "/path/to/file2"
              ],
              "links": {
                "self": "https://api.ngenix.net/api/v3/purge-task/b922f7d4-d74c-4d7f-ba37-4e9d804b0736"
              }
            }
          }
        ]
      },
      "UserCollectionView": {
        "description": "Краткое представление данных пользователя",
        "allOf": [
          {
            "$ref": "#/components/schemas/Object"
          },
          {
            "properties": {
              "email": {
                "type": "string",
                "format": "email",
                "maxLength": 254,
                "minLength": 5,
                "example": "user@example.com",
                "description": "e-mail пользователя"
              },
              "firstName": {
                "type": "string",
                "minLength": 1,
                "maxLength": 255,
                "description": "Имя"
              },
              "lastName": {
                "type": "string",
                "minLength": 1,
                "maxLength": 255,
                "description": "Фамилия"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "expiresAt": {
                "type": "string",
                "format": "date-time"
              },
              "role": {
                "type": "string",
                "description": "Роль пользователя (возможные значения - accountAdministrator, accountUser, accountRobot и др.)"
              }
            },
            "example": {
              "modelName": "UserCollectionView",
              "email": "user@example.com",
              "createdAt": "2019-01-01T12:00:00Z",
              "expiresAt": "2020-01-01T12:00:00Z",
              "role": "accountAdministrator",
              "links": {
                "self": "https://api.ngenix.net/api/v3/user/543"
              }
            }
          }
        ]
      },
      "UserCollection": {
        "description": "Коллекция кратких представлений данных пользователей",
        "allOf": [
          {
            "$ref": "#/components/schemas/Collection"
          },
          {
            "properties": {
              "elements": {
                "items": {
                  "$ref": "#/components/schemas/UserCollectionView"
                }
              }
            },
            "example": {
              "modelName": "UserCollection",
              "elements": [
                {
                  "modelName": "UserCollectionView",
                  "id": 123,
                  "email": "user123@mail.srv",
                  "createdAt": "2019-01-01T12:00:00Z",
                  "role": "accountAdministrator",
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/user/123"
                  }
                },
                {
                  "modelName": "UserCollectionView",
                  "id": 234,
                  "email": "user234@mail.srv",
                  "createdAt": "2019-01-01T12:00:00Z",
                  "role": "accountUser",
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/user/234"
                  }
                },
                {
                  "modelName": "UserCollectionView",
                  "id": 345,
                  "createdAt": "2019-01-01T12:00:00Z",
                  "expiresAt": "2020-01-01T12:00:00Z",
                  "role": "accountRobot",
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/user/345"
                  }
                }
              ]
            }
          }
        ]
      },
      "UserUpdate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Object"
          },
          {
            "properties": {
              "firstName": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128,
                "example": "Виктор",
                "description": "Имя"
              },
              "lastName": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128,
                "example": "Пучеглазов",
                "description": "Фамилия"
              },
              "phone": {
                "type": "string",
                "nullable": true,
                "minLength": 8,
                "maxLength": 16,
                "example": "+79268887766",
                "description": "Телефон"
              },
              "role": {
                "type": "string",
                "description": "Роль пользователя (возможные значения - accountAdministrator, accountUser, accountRobot и др.)"
              },
              "twoFactorAuth": {
                "type": "boolean",
                "description": "Двухфакторная аутентификация"
              },
              "photoData": {
                "writeOnly": true,
                "type": "string",
                "nullable": true,
                "minLength": 1,
                "description": "Энкодированная фотография пользователя"
              }
            },
            "example": {
              "modelName": "UserUpdate",
              "firstName": "Виктор",
              "lastName": "Пучеглазов",
              "phone": "+79268887766",
              "role": "accountAdministrator",
              "twoFactorAuth": true,
              "photoData": "data:image/gif;base64,R0lGODdhMAAwAPAAAAAAAP///ywAAAAAMAAw AAAC8IyPqcvt3wCcDkiLc7C0qwyGHhSWpjQu5yqmCYsapyuvUUlvONmOZtfzgFz ByTB10QgxOR0TqBQejhRNzOfkVJ+5YiUqrXF5Y5lKh/DeuNcP5yLWGsEbtLiOSp a/TPg7JpJHxyendzWTBfX0cxOnKPjgBzi4diinWGdkF8kjdfnycQZXZeYGejmJl ZeGl9i2icVqaNVailT6F5iJ90m6mvuTS4OK05M0vDk0Q4XUtwvKOzrcd3iq9uis F81M1OIcR7lEewwcLp7tuNNkM3uNna3F2JQFo97Vriy/Xl4/f1cf5VWzXyym7PH hhx4dbgYKAAA7\n"
            }
          }
        ]
      },
      "UserLinks": {
        "description": "Описание блока \"links\" для модели User",
        "allOf": [
          {
            "$ref": "#/components/schemas/Links"
          },
          {
            "properties": {
              "permissions": {
                "type": "string",
                "nullable": true,
                "format": "uri",
                "example": "https://api.ngenix.net/api/v3/user/1234/permissions",
                "description": "Ссылка на права пользователя"
              },
              "managedCustomers": {
                "type": "string",
                "nullable": true,
                "format": "uri",
                "example": "https://api.ngenix.net/api/v3/customer?partnerId=1234",
                "description": "Ссылка на список клиентов"
              }
            }
          }
        ]
      },
      "PersonalDataProcessing": {
        "description": "Описание блока \"personalDataProcessing\" для модели User и UserCollectionView",
        "allOf": [
          {
            "type": "object"
          },
          {
            "properties": {
              "agreed": {
                "type": "boolean",
                "description": "Признак предоставления согласия на обработку персональных данных",
                "readOnly": true
              },
              "agreedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              }
            },
            "example": {
              "agreed": true,
              "agreedAt": "2019-03-11T12:00:00Z",
              "modelName": "PersonalDataProcessing"
            }
          }
        ]
      },
      "UserPermissionsLinks": {
        "description": "Описание блока \"links\" для модели UserPermissions",
        "allOf": [
          {
            "$ref": "#/components/schemas/Links"
          },
          {
            "required": [
              "user"
            ],
            "properties": {
              "user": {
                "type": "string",
                "format": "uri",
                "example": "https://api.ngenix.net/api/v3/user/1234",
                "description": "Ссылка на пользователя"
              }
            }
          }
        ]
      },
      "UserPreferencesLinks": {
        "description": "Описание блока \"links\" для модели UserPreferences",
        "allOf": [
          {
            "$ref": "#/components/schemas/Links"
          },
          {
            "required": [
              "user"
            ],
            "properties": {
              "user": {
                "type": "string",
                "format": "uri",
                "example": "https://api.ngenix.net/api/v3/user/1234/preferences",
                "description": "Ссылка на пользователя"
              }
            }
          }
        ]
      },
      "FavouriteConfigItem": {
        "description": "Элемент коллекции Избранных конфигураций Пользователя",
        "required": [
          "configRef"
        ],
        "properties": {
          "configRef": {
            "$ref": "#/components/schemas/Reference"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "example": "2026-03-03T12:30:00Z",
            "description": "Дата добавления конфигурации в избранное пользователя"
          }
        }
      },
      "User": {
        "description": "Полное представление данных пользователя",
        "allOf": [
          {
            "$ref": "#/components/schemas/UserCollectionView"
          },
          {
            "required": [
              "firstName",
              "role"
            ]
          },
          {
            "properties": {
              "links": {
                "$ref": "#/components/schemas/UserLinks"
              },
              "phone": {
                "type": "string",
                "nullable": true,
                "minLength": 8,
                "maxLength": 16,
                "description": "Телефон"
              },
              "customerRef": {
                "$ref": "#/components/schemas/Reference"
              },
              "photoData": {
                "type": "string",
                "writeOnly": true,
                "nullable": true,
                "minLength": 1,
                "description": "Энкодированная фотография пользователя"
              },
              "twoFactorAuth": {
                "type": "boolean",
                "description": "Двухфакторная аутентификация, статус"
              },
              "photoUrl": {
                "type": "string",
                "nullable": true,
                "minLength": 1,
                "format": "uri",
                "readOnly": true,
                "description": "Ссылка на фотографию пользователя"
              },
              "personalDataProcessing": {
                "$ref": "#/components/schemas/PersonalDataProcessing"
              }
            },
            "example": {
              "modelName": "User",
              "firstName": "Виктор",
              "lastName": "Пучеглазов",
              "phone": "+79268887766",
              "role": "accountUser",
              "createdAt": "2019-01-01T12:00:00Z",
              "customerRef": {
                "id": 1234,
                "link": "https://api.ngenix.net/api/v3/customer/1234"
              },
              "twoFactorAuth": true,
              "photoUrl": "https://avatars.cdn.ngenix.net/path/to/photo.jpg",
              "photoData": "data:image/gif;base64,R0lGODdhMAAwAPAAAAAAAP///ywAAAAAMAAw AAAC8IyPqcvt3wCcDkiLc7C0qwyGHhSWpjQu5yqmCYsapyuvUUlvONmOZtfzgFz ByTB10QgxOR0TqBQejhRNzOfkVJ+5YiUqrXF5Y5lKh/DeuNcP5yLWGsEbtLiOSp a/TPg7JpJHxyendzWTBfX0cxOnKPjgBzi4diinWGdkF8kjdfnycQZXZeYGejmJl ZeGl9i2icVqaNVailT6F5iJ90m6mvuTS4OK05M0vDk0Q4XUtwvKOzrcd3iq9uis F81M1OIcR7lEewwcLp7tuNNkM3uNna3F2JQFo97Vriy/Xl4/f1cf5VWzXyym7PH hhx4dbgYKAAA7\n",
              "personalDataProcessing": {
                "agreed": true,
                "agreedAt": "2019-03-11T12:00:00Z",
                "modelName": "PersonalDataProcessing"
              }
            }
          }
        ]
      },
      "UserRefRO": {
        "description": "Атрибут userRef типа Reference только для чтения",
        "type": "object",
        "properties": {
          "userRef": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Reference"
              },
              {
                "readOnly": true
              }
            ],
            "example": {
              "id": 4321,
              "link": "https://api.ngenix.net/api/v3/user/4321"
            }
          }
        }
      },
      "UserPermissionsItem": {
        "description": "Право пользователя",
        "type": "string",
        "enum": [
          "none",
          "ro",
          "rw"
        ]
      },
      "UserPermissions": {
        "description": "Права доступа пользователя",
        "allOf": [
          {
            "$ref": "#/components/schemas/Item"
          },
          {
            "required": [
              "permissions"
            ],
            "properties": {
              "links": {
                "$ref": "#/components/schemas/UserPermissionsLinks"
              },
              "permissions": {
                "type": "object",
                "properties": {
                  "service": {
                    "$ref": "#/components/schemas/UserPermissionsItem"
                  },
                  "user": {
                    "$ref": "#/components/schemas/UserPermissionsItem"
                  },
                  "analytics": {
                    "$ref": "#/components/schemas/UserPermissionsItem"
                  },
                  "support": {
                    "$ref": "#/components/schemas/UserPermissionsItem"
                  },
                  "storageBucket": {
                    "$ref": "#/components/schemas/UserPermissionsItem"
                  },
                  "dnsZone": {
                    "$ref": "#/components/schemas/UserPermissionsItem"
                  },
                  "purgeTask": {
                    "$ref": "#/components/schemas/UserPermissionsItem"
                  },
                  "trafficPattern": {
                    "$ref": "#/components/schemas/UserPermissionsItem"
                  },
                  "ruleset": {
                    "$ref": "#/components/schemas/UserPermissionsItem"
                  },
                  "config": {
                    "$ref": "#/components/schemas/UserPermissionsItem"
                  }
                }
              }
            },
            "example": {
              "modelName": "UserPermissions",
              "permissions": {
                "user": "none",
                "service": "none",
                "analytics": "ro",
                "support": "ro",
                "storageBucket": "rw",
                "dnsZone": "ro",
                "purgeTask": "ro",
                "trafficPattern": "ro",
                "ruleset": "none",
                "config": "ro"
              }
            }
          }
        ]
      },
      "UserToken": {
        "description": "Постоянный токен пользователя",
        "allOf": [
          {
            "$ref": "#/components/schemas/Item"
          },
          {
            "$ref": "#/components/schemas/UserRefRO"
          },
          {
            "properties": {
              "token": {
                "type": "string",
                "readOnly": true,
                "minLength": 40,
                "maxLength": 40,
                "description": "Полный токен пользователя"
              },
              "tokenPreview": {
                "type": "string",
                "readOnly": true,
                "minLength": 6,
                "maxLength": 6,
                "description": "6-ть первых байт токена"
              }
            },
            "example": {
              "modelName": "UserToken",
              "token": "f1Rst1et4ErORfu11T0kenOnpYt",
              "tokenPreview": "f1Rst1",
              "userRef": {
                "id": 1234,
                "link": "https://api.ngenix.net/api/v3/user/1234"
              },
              "links": {
                "self": "https://api.ngenix.net/api/v3/user/1234/token"
              }
            }
          }
        ]
      },
      "UserPreferences": {
        "description": "Персональные настройки и избранное Пользователя",
        "allOf": [
          {
            "$ref": "#/components/schemas/Item"
          },
          {
            "properties": {
              "links": {
                "$ref": "#/components/schemas/UserPreferencesLinks"
              },
              "favouriteConfigs": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/FavouriteConfigItem"
                }
              }
            },
            "example": {
              "modelName": "UserPreferences",
              "favouriteConfigs": [
                {
                  "configRef": [
                    {
                      "id": 12345,
                      "link": "https://api.ngenix.net/api/v3/config/12345"
                    }
                  ],
                  "createdAt": "2026-03-03T12:30:00Z"
                },
                {
                  "configRef": [
                    {
                      "id": 54321,
                      "link": "https://api.ngenix.net/api/v3/config/54321"
                    }
                  ],
                  "createdAt": "2026-02-02T12:30:00Z"
                }
              ]
            }
          }
        ]
      },
      "UserApiAccessPolicyAllowedRequestsItem": {
        "description": "Элемент списка дополнительных ограничений пользователя по URL",
        "required": [
          "uri",
          "method"
        ],
        "properties": {
          "uri": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          },
          "method": {
            "type": "string",
            "enum": [
              "GET",
              "POST",
              "PUT",
              "PATCH",
              "DELETE"
            ]
          },
          "bodyFilter": {
            "type": "object"
          }
        }
      },
      "UserApiAccessPolicy": {
        "description": "Настройки дополнительных ограничений пользователя",
        "allOf": [
          {
            "$ref": "#/components/schemas/Item"
          },
          {
            "$ref": "#/components/schemas/UserRefRO"
          },
          {
            "properties": {
              "allowedRequests": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/UserApiAccessPolicyAllowedRequestsItem"
                }
              },
              "allowedPrefixes": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "IP-префикс формата \"127.0.0.0/24\""
                }
              }
            },
            "example": {
              "modelName": "UserApiAccessPolicy",
              "allowedRequests": [
                {
                  "uri": "/api/v3/config",
                  "method": "POST",
                  "bodyFilter": {
                    "customerRef": {
                      "id": 100500
                    }
                  }
                },
                {
                  "uri": "/reports/v1/timeline/client-ips?customerId=100500",
                  "method": "GET"
                }
              ],
              "allowedPrefixes": [
                "192.168.0.1/32",
                "127.0.0.1/24"
              ],
              "userRef": {
                "id": 1234,
                "link": "https://api.ngenix.net/api/v3/user/1234"
              },
              "links": {
                "self": "https://api.ngenix.net/api/v3/user/1234/api-access-policy"
              }
            }
          }
        ]
      },
      "ManagedObjectCollectionView": {
        "description": "Краткое представление параметров профиля анализа",
        "allOf": [
          {
            "$ref": "#/components/schemas/Object"
          },
          {
            "required": [
              "name"
            ],
            "properties": {
              "name": {
                "type": "string",
                "pattern": "^[a-zA-Z0-9_]+$",
                "description": "Название профиля анализа"
              },
              "links": {
                "$ref": "#/components/schemas/Links"
              }
            },
            "example": {
              "id": 4321,
              "name": "cm_MSK_ManagedObject",
              "modelName": "ManagedObjectCollectionView"
            }
          }
        ]
      },
      "ManagedObjectLinks": {
        "description": "Описание блока \"links\" для модели ManagedObject",
        "allOf": [
          {
            "$ref": "#/components/schemas/Links"
          },
          {
            "properties": {
              "status": {
                "description": "Ссылка для получения статуса для Managed Object",
                "type": "string",
                "format": "uri",
                "readOnly": true
              }
            },
            "example": {
              "self": "https://api.ngenix.net/api/v3/managed-object/1234",
              "status": "https://api.ngenix.net/api/v3/managed-object/1234/status"
            }
          }
        ]
      },
      "ManagedObject": {
        "description": "Полное представление параметров профиля анализа",
        "allOf": [
          {
            "$ref": "#/components/schemas/ManagedObjectCollectionView"
          },
          {
            "$ref": "#/components/schemas/CustomerRefRO"
          },
          {
            "properties": {
              "controlPanel": {
                "description": "Ссылка на ЛК АПК Периметр.",
                "readOnly": true,
                "type": "string"
              },
              "links": {
                "$ref": "#/components/schemas/ManagedObjectLinks",
                "readOnly": true
              }
            }
          },
          {
            "example": {
              "id": 4321,
              "name": "cm_MSK_ManagedObject",
              "controlPanel": "https://perimeter.soc.rt.ru/",
              "modelName": "ManagedObject",
              "links": {
                "self": "https://api.ngenix.net/api/v3/managed-object/1234",
                "status": "https://api.ngenix.net/api/v3/managed-object/1234/status"
              }
            }
          }
        ]
      },
      "ManagedObjectStatus": {
        "description": "Статус атак по профилю анализа",
        "allOf": [
          {
            "$ref": "#/components/schemas/Item"
          },
          {
            "properties": {
              "underAttack": {
                "description": "Наличие атаки в данную минуту",
                "type": "boolean",
                "readOnly": true,
                "example": true
              },
              "attackInfo": {
                "$ref": "#/components/schemas/AttackInfo",
                "readOnly": true
              }
            },
            "example": {
              "id": 2342342,
              "underAttack": true,
              "attackInfo": {
                "attackLevel": "medium",
                "attackTypes": [
                  "total",
                  "icmp",
                  "dns",
                  "udp"
                ],
                "startTime": "2018-01-01T20:20:20"
              },
              "links": {
                "self": "https://api.ngenix.net/api/v3/managed-object/1234/status"
              }
            }
          }
        ]
      },
      "NotificationSettingsCollectionView": {
        "description": "Настройки оповещения",
        "allOf": [
          {
            "$ref": "#/components/schemas/Object"
          },
          {
            "properties": {
              "recipients": {
                "description": "Список получателей оповещения",
                "type": "array",
                "minItems": 1,
                "maxItems": 150,
                "items": {
                  "type": "string",
                  "format": "email",
                  "maxLength": 254,
                  "minLength": 5
                }
              },
              "enabled": {
                "description": "Активность оповещения",
                "type": "boolean"
              },
              "eventType": {
                "description": "Тип события",
                "type": "string",
                "enum": [
                  "ddos_attack_started",
                  "ssl_certificate_expiring"
                ]
              },
              "customerRef": {
                "$ref": "#/components/schemas/Reference"
              }
            }
          }
        ],
        "example": {
          "modelName": "NotificationSettingsCollectionView",
          "id": 1234,
          "recipients": [
            "hello@ngenix.net",
            "hello@mail.ru"
          ],
          "enabled": true,
          "eventType": "ddos_attack_started",
          "customerRef": {
            "id": 4321,
            "link": "https://api.ngenix.net/api/v3/customer/4321"
          },
          "links": {
            "self": "https://api.ngenix.net/api/v3/notification-settings/1234"
          }
        }
      },
      "NotificationSettings": {
        "description": "Настройки оповещения",
        "allOf": [
          {
            "$ref": "#/components/schemas/NotificationSettingsCollectionView"
          }
        ],
        "example": {
          "modelName": "NotificationSettings",
          "id": 1234,
          "recipients": [
            "hello@ngenix.net",
            "hello@mail.ru"
          ],
          "enabled": true,
          "eventType": "ddos_attack_started",
          "links": {
            "self": "https://api.ngenix.net/api/v3/notification-settings/1234"
          }
        }
      },
      "NotificationSettingsCollection": {
        "description": "Коллекция представлений настроек оповещений",
        "allOf": [
          {
            "$ref": "#/components/schemas/Collection"
          },
          {
            "properties": {
              "elements": {
                "items": {
                  "$ref": "#/components/schemas/NotificationSettingsCollectionView"
                }
              }
            }
          }
        ],
        "example": {
          "modelName": "NotificationSettingsCollection",
          "elements": [
            {
              "modelName": "NotificationSettings",
              "id": 1234,
              "recipients": [
                "hello@ngenix.net",
                "hello@mail.ru"
              ],
              "enabled": true,
              "eventType": "ddos_attack_started",
              "links": {
                "self": "https://api.ngenix.net/api/v3/notification-settings/1234"
              }
            }
          ]
        }
      },
      "NotificationSettingsCreate": {
        "description": "Создание настроек оповещения",
        "allOf": [
          {
            "$ref": "#/components/schemas/NotificationSettings"
          },
          {
            "required": [
              "eventType",
              "enabled",
              "recipients",
              "customerRef"
            ]
          }
        ],
        "example": {
          "recipients": [
            "hello@ngenix.net",
            "hello@mail.ru"
          ],
          "enabled": true,
          "eventType": "ddos_attack_started",
          "customerRef": {
            "id": 8994,
            "link": "https://api.ngenix.net/api/v3/customer/8994"
          }
        }
      },
      "NotificationSettingsUpdate": {
        "description": "Изменение настроек оповещения",
        "allOf": [
          {
            "$ref": "#/components/schemas/NotificationSettings"
          },
          {
            "properties": {
              "id": {
                "readOnly": true
              },
              "customerRef": {
                "readOnly": true
              },
              "eventType": {
                "readOnly": true
              }
            }
          }
        ],
        "example": {
          "recipients": [
            "hello@ngenix.net",
            "hello@mail.ru"
          ],
          "enabled": true
        }
      },
      "StubPageCollectionView": {
        "description": "Настройки страницы-заглушки, отображаемой при ответе на заблокированный запрос, в представлении для коллекции",
        "allOf": [
          {
            "$ref": "#/components/schemas/Object"
          },
          {
            "required": [
              "name"
            ]
          },
          {
            "properties": {
              "customerRef": {
                "$ref": "#/components/schemas/Reference"
              },
              "purpose": {
                "description": "Назначение страницы-заглушки",
                "type": "string",
                "enum": [
                  "ddosBlock",
                  "deny",
                  "botChallenge"
                ]
              },
              "contentType": {
                "description": "Тип контента в данной странице заглушке",
                "type": "string",
                "enum": [
                  "json",
                  "html"
                ]
              },
              "name": {
                "description": "Имя страницы-заглушки",
                "type": "string",
                "minLength": 1,
                "maxLength": 255
              },
              "explanation": {
                "description": "Пояснение",
                "type": "string",
                "minLength": 0,
                "maxLength": 1000,
                "nullable": true
              },
              "explanationColor": {
                "description": "Цвет в формате HEX для текста пояснения и заголовка",
                "type": "string",
                "pattern": "^[0-9A-Fa-f]{6}$",
                "default": "113A60",
                "nullable": true
              },
              "backgroundColor": {
                "description": "Цвет в формате HEX для фона",
                "type": "string",
                "pattern": "^[0-9A-Fa-f]{6}$",
                "default": "E5E5E5",
                "nullable": true
              },
              "logoUrl": {
                "description": "Ссылка на файл логотипа, рекомендуемый формат - SVG",
                "type": "string",
                "minLength": 1,
                "format": "uri",
                "nullable": true
              },
              "email": {
                "description": "Адрес электронной почты",
                "type": "string",
                "format": "email",
                "minLength": 3,
                "maxLength": 254,
                "nullable": true
              },
              "phone": {
                "description": "Номер телефона",
                "type": "string",
                "maxLength": 30,
                "nullable": true
              },
              "version": {
                "type": "integer",
                "readOnly": true,
                "description": "Версия (порядковый номер изменений)"
              },
              "type": {
                "description": "Тип страницы-заглушки",
                "type": "string",
                "enum": [
                  "predefined",
                  "custom"
                ],
                "default": "custom",
                "readOnly": true
              }
            }
          }
        ],
        "example": {
          "id": 100500,
          "customerRef": {
            "id": 1234,
            "link": "https://api.ngenix.net/api/v3/customer/1234"
          },
          "purpose": "ddosBlock",
          "contentType": "html",
          "name": "Страница-заглушка DDP",
          "explanation": "Если вы считаете, что произошла ошибка, свяжитесь с владельцем веб-ресурса.",
          "contentColor": "113A60",
          "backgroundColor": "E5E5E5",
          "logoUrl": "https://domain.ru/logo.svg",
          "email": "email@me.ru",
          "phone": 79876543210,
          "version": 12345,
          "type": "custom",
          "links": {
            "self": "https://api.ngenix.net/api/v3/stub-page/100500"
          },
          "modelName": "StubPageCollectionView"
        }
      },
      "StubPage": {
        "description": "Настройки страницы-заглушки, отображаемой при ответе на заблокированный запрос",
        "allOf": [
          {
            "$ref": "#/components/schemas/StubPageCollectionView"
          },
          {
            "properties": {
              "contentTemplate": {
                "description": "Шаблон ответа в формате base64, применяется для заглушек с типом deny и botChallenge",
                "type": "string",
                "format": "byte",
                "minLength": 0,
                "maxLength": 13657,
                "nullable": true
              }
            },
            "example": {
              "id": 100500,
              "customerRef": {
                "id": 1234,
                "link": "https://api.ngenix.net/api/v3/customer/1234"
              },
              "purpose": "ddosBlock",
              "contentType": "html",
              "name": "Страница-заглушка DDP",
              "explanation": "Если вы считаете, что произошла ошибка, свяжитесь с владельцем веб-ресурса.",
              "contentColor": "113A60",
              "backgroundColor": "E5E5E5",
              "logoUrl": "https://domain.ru/logo.svg",
              "email": "email@me.ru",
              "phone": 79876543210,
              "version": 12345,
              "type": "custom",
              "links": {
                "self": "https://api.ngenix.net/api/v3/stub-page/100500"
              },
              "modelName": "StubPageCollectionView"
            }
          }
        ]
      },
      "StubPageUpdate": {
        "description": "Настройки страницы-заглушки для обновления, отображаемой при ответе на заблокированный запрос",
        "allOf": [
          {
            "$ref": "#/components/schemas/StubPage"
          },
          {
            "properties": {
              "purpose": {
                "type": "string",
                "enum": [
                  "ddosBlock",
                  "deny",
                  "botChallenge"
                ],
                "readOnly": true
              },
              "contentType": {
                "readOnly": true,
                "type": "string",
                "enum": [
                  "json",
                  "html"
                ]
              }
            },
            "example": {
              "customerRef": {
                "id": 1234
              },
              "explanation": "Если вы считаете, что произошла ошибка, свяжитесь с владельцем веб-ресурса.",
              "contentColor": "113A60",
              "backgroundColor": "E5E5E5",
              "logoUrl": "https://domain.ru/logo.svg",
              "email": "email@me.ru",
              "phone": 79876543210
            }
          }
        ]
      },
      "StubPageCollection": {
        "description": "Коллекция данных для настроек страниц-заглушек",
        "allOf": [
          {
            "$ref": "#/components/schemas/Collection"
          },
          {
            "properties": {
              "elements": {
                "items": {
                  "$ref": "#/components/schemas/StubPageCollectionView"
                }
              }
            }
          }
        ]
      },
      "DnssecHint": {
        "description": "Информация о статусе DNSSEC",
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "Включен ли DNSSEC для зоны"
          }
        }
      },
      "DnsZoneHints": {
        "description": "Вспомогательная информация о DNS зоне",
        "allOf": [
          {
            "$ref": "#/components/schemas/Hints"
          },
          {
            "properties": {
              "dnssec": {
                "$ref": "#/components/schemas/DnssecHint"
              }
            }
          }
        ]
      },
      "DnsZoneCollectionView": {
        "description": "Краткое представление данных зоны DNS",
        "allOf": [
          {
            "$ref": "#/components/schemas/Object"
          },
          {
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 253,
                "description": "Адрес DNS-зоны"
              },
              "links": {
                "$ref": "#/components/schemas/Links"
              },
              "hints": {
                "$ref": "#/components/schemas/DnsZoneHints"
              }
            },
            "example": {
              "modelName": "DnsZoneCollectionView",
              "name": "client.ru",
              "links": {
                "self": "https://api.ngenix.net/api/v3/dns-zone/22"
              },
              "hints": {
                "dnssec": {
                  "enabled": false
                }
              }
            }
          }
        ]
      },
      "DnsZoneLinks": {
        "description": "Описание блока \"links\" для модели DnsZone",
        "allOf": [
          {
            "$ref": "#/components/schemas/Links"
          },
          {
            "required": [
              "config"
            ],
            "properties": {
              "config": {
                "description": "Список конфигураций аккаунта",
                "type": "string",
                "format": "uri",
                "example": "https://api.ngenix.net/api/v3/config?customer=4321"
              }
            }
          }
        ]
      },
      "DnsZoneTemplate": {
        "description": "Полное представление данных о зоне DNS",
        "allOf": [
          {
            "$ref": "#/components/schemas/DnsZoneCollectionView"
          },
          {
            "properties": {
              "records": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DnsRecord"
                }
              },
              "nameservers": {
                "readOnly": true,
                "description": "Список NS серверов",
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "hostname"
                }
              },
              "soa": {
                "$ref": "#/components/schemas/DnsZoneTemplateSoa"
              },
              "customerRef": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Reference"
                  },
                  {
                    "example": {
                      "id": 8994,
                      "link": "https://api.ngenix.net/api/v3/customer/8994"
                    }
                  }
                ]
              },
              "comment": {
                "type": "string",
                "maxLength": 250,
                "description": "Комментарий, описывающий последние изменения в зоне.\nКопируется в историю версий зоны.\n"
              },
              "links": {
                "$ref": "#/components/schemas/DnsZoneLinks"
              }
            }
          }
        ]
      },
      "DnsZoneTemplateSoa": {
        "type": "object",
        "readOnly": true,
        "description": "Формирование SOA записи",
        "properties": {
          "mname": {
            "type": "string"
          },
          "rname": {
            "type": "string"
          },
          "minimum": {
            "type": "integer",
            "minimum": 10,
            "maximum": 86400
          }
        }
      },
      "DnsZoneDnssec": {
        "description": "Настройки DNSSEC для DNS-зоны",
        "type": "object",
        "properties": {
          "enabled": {
            "description": "Управление опцией DNSSEC для DNS-зоны",
            "type": "boolean",
            "default": false
          },
          "dnssecKeyRef": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NullableReference"
              },
              {
                "description": "Атрибут dnssecKey ссылочного типа с указанием на активный публичный ключ DNSSEC"
              }
            ]
          }
        },
        "example": {
          "enabled": true,
          "dnssecKeyRef": {
            "id": 1234,
            "link": "https://api.ngenix.net/api/v3/dnssec-key/4321"
          }
        }
      },
      "DnsZoneDnssecReadOnly": {
        "description": "Настройки DNSSEC (для DNS-зоны), только для чтения",
        "type": "object",
        "properties": {
          "enabled": {
            "description": "Управление опцией DNSSEC для DNS-зоны",
            "type": "boolean",
            "readOnly": true
          },
          "dnssecKeyRef": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NullableReference"
              },
              {
                "readOnly": true
              },
              {
                "description": "Атрибут dnssecKey ссылочного типа с указанием на активный публичный ключ DNSSEC"
              }
            ]
          }
        },
        "example": {
          "enabled": false
        }
      },
      "DnsZone": {
        "description": "Полное представление данных о зоне DNS",
        "allOf": [
          {
            "$ref": "#/components/schemas/DnsZoneTemplate"
          },
          {
            "properties": {
              "name": {
                "type": "string",
                "readOnly": true
              },
              "customerRef": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Reference"
                  },
                  {
                    "readOnly": true
                  }
                ]
              },
              "dnssec": {
                "$ref": "#/components/schemas/DnsZoneDnssec"
              }
            },
            "example": {
              "modelName": "DnsZone",
              "name": "client.ru",
              "links": {
                "self": "https://api.ngenix.net/api/v3/dns-zone/22",
                "config": "https://api.ngenix.net/api/v3/config?customer=4321"
              },
              "customerRef": {
                "id": 4321,
                "link": "https://api.ngenix.net/api/v3/customer/4321"
              },
              "records": [
                {
                  "name": "www",
                  "type": "A",
                  "data": "195.230.64.13"
                },
                {
                  "name": "mail",
                  "type": "MX",
                  "data": "10 mail.client.ru."
                },
                {
                  "name": "cdn",
                  "type": "A",
                  "configRef": {
                    "id": 12,
                    "link": "https://api.ngenix.net/api/v3/config/12"
                  }
                }
              ],
              "nameservers": [
                "1.1.1.1",
                "2.2.2.2"
              ],
              "soa": {
                "mname": "example.com.",
                "rname": "noc.example.com.",
                "minimum": 1290980980
              },
              "dnssec": {
                "enabled": true,
                "dnssecKeyRef": {
                  "id": 1234,
                  "link": "https://api.ngenix.net/api/v3/dnssec-key/4321"
                }
              },
              "comment": "Комментарий, указанный при последнем редактировании зоны."
            }
          }
        ]
      },
      "DnsZoneCreate": {
        "description": "Представление DNS зоны для создания",
        "allOf": [
          {
            "$ref": "#/components/schemas/DnsZoneTemplate"
          },
          {
            "type": "object",
            "properties": {
              "dnssec": {
                "$ref": "#/components/schemas/DnsZoneDnssecReadOnly"
              }
            }
          },
          {
            "required": [
              "name",
              "customerRef"
            ],
            "example": {
              "name": "client.ru",
              "customerRef": {
                "id": 4321,
                "link": "https://api.ngenix.net/api/v3/customer/4321"
              },
              "records": [
                {
                  "name": "www",
                  "type": "A",
                  "data": "195.230.64.13"
                },
                {
                  "name": "mail",
                  "type": "MX",
                  "data": "10 mail.client.ru."
                },
                {
                  "name": "cdn",
                  "type": "A",
                  "configRef": {
                    "id": 12,
                    "link": "https://api.ngenix.net/api/v3/config/12"
                  }
                }
              ],
              "nameservers": [
                "1.1.1.1",
                "2.2.2.2"
              ],
              "soa": {
                "mname": "example.com.",
                "rname": "noc.example.com.",
                "minimum": 1290980980
              },
              "dnssec": {
                "enabled": true,
                "dnssecKeyRef": {
                  "id": 1234,
                  "link": "https://api.ngenix.net/api/v3/dnssec-key/4321"
                }
              }
            }
          }
        ]
      },
      "DnsZoneVersionCollection": {
        "description": "Список версий зоны DNS",
        "allOf": [
          {
            "$ref": "#/components/schemas/Collection"
          },
          {
            "properties": {
              "elements": {
                "items": {
                  "$ref": "#/components/schemas/DnsZoneVersionCollectionView"
                }
              }
            }
          }
        ]
      },
      "DnsZoneVersionCollectionView": {
        "description": "Краткое представление данных о версии зоны DNS",
        "allOf": [
          {
            "$ref": "#/components/schemas/Object"
          },
          {
            "properties": {
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "example": "2018-01-01T20:20:20",
                "readOnly": true
              },
              "createdByUserRef": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Reference"
                  },
                  {
                    "description": "Кем создана версия.\nВ случае если версия создана пользователем, не являющимся\nсотрудником аккаунта, владеющего зоной, апи не показывает\nданное поле в выдаче\n"
                  }
                ]
              },
              "comment": {
                "description": "Комментарий, описывающий обстоятельства создания версии",
                "type": "string",
                "maxLength": 250,
                "example": "Добавлена MX-запись"
              },
              "links": {
                "$ref": "#/components/schemas/Links"
              }
            },
            "example": {
              "modelName": "DnsZoneVersionCollectionView",
              "createdAt": "2018-01-01T20:20:20",
              "createdByUserRef": {
                "id": 3241989,
                "link": "https://api.ngenix.net/api/v3/user/3241989"
              },
              "comment": "Добавлена MX-запись",
              "links": {
                "self": "https://api.ngenix.net/api/v3/dns-zone/22/version/1"
              }
            }
          }
        ]
      },
      "DnsZoneVersion": {
        "description": "Полное представление данных о версии зоны DNS",
        "allOf": [
          {
            "$ref": "#/components/schemas/DnsZoneVersionCollectionView"
          },
          {
            "properties": {
              "zoneData": {
                "$ref": "#/components/schemas/DnsZoneVersionZoneData"
              }
            },
            "example": {
              "modelName": "DnsZoneVersion",
              "createdAt": "2018-01-01T20:20:20",
              "createdByUserRef": {
                "id": 3241989,
                "link": "https://api.ngenix.net/api/v3/user/3241989"
              },
              "comment": "Добавлена MX-запись",
              "zoneData": {
                "records": [
                  {
                    "name": "www",
                    "type": "A",
                    "data": "195.230.64.13"
                  },
                  {
                    "name": "mail",
                    "type": "MX",
                    "data": "10 mail.client.ru."
                  },
                  {
                    "name": "cdn",
                    "type": "A",
                    "configRef": {
                      "id": 12,
                      "link": "https://api.ngenix.net/api/v3/config/12"
                    }
                  }
                ],
                "soa": {
                  "mname": "example.com.",
                  "rname": "noc.example.com.",
                  "minimum": 1290980980
                },
                "defaultTtl": 300
              },
              "links": {
                "self": "https://api.ngenix.net/api/v3/dns-zone/22/version/1"
              }
            }
          }
        ]
      },
      "DnsZoneVersionZoneData": {
        "properties": {
          "records": {
            "description": "Список DNS-записей",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DnsRecord"
            }
          },
          "soa": {
            "$ref": "#/components/schemas/DnsZoneTemplateSoa"
          }
        }
      },
      "DnsRecord": {
        "description": "Настройки DNS записи.\nПоля 'data', 'configRef' и 'targetGroupRef' взаимоисключающие.\n'configRef' и 'targetGroupRef' можно использовать только если type == 'A'\n",
        "required": [
          "name",
          "type"
        ],
        "properties": {
          "configRef": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Reference"
              },
              {
                "description": "Атрибут config ссылочного типа"
              }
            ]
          },
          "targetGroupRef": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Reference"
              },
              {
                "description": "Ссылка на набор объектов для DNS-балансировки"
              }
            ]
          },
          "name": {
            "type": "string",
            "description": "Имя записи",
            "minLength": 1
          },
          "type": {
            "type": "string",
            "enum": [
              "A",
              "CNAME",
              "MX",
              "AAAA",
              "SRV",
              "NS",
              "TXT",
              "CAA",
              "NAPTR",
              "DS",
              "CDN"
            ],
            "description": "Тип записи"
          },
          "data": {
            "type": "string",
            "description": "Значение записи",
            "minLength": 1
          }
        },
        "example": {
          "name": "example.com",
          "type": "A",
          "data": "88.77.6.55"
        }
      },
      "DnssecKeyCollectionView": {
        "description": "Краткое представление данных публичных ключей DNSSEC",
        "allOf": [
          {
            "$ref": "#/components/schemas/Object"
          },
          {
            "required": [
              "id",
              "dnsZoneRef"
            ]
          },
          {
            "properties": {
              "dnsZoneRef": {
                "$ref": "#/components/schemas/Reference"
              }
            },
            "example": {
              "modelName": "DnssecKeyCollectionView",
              "id": 12345,
              "dnsZoneRef": {
                "id": 4321,
                "link": "https://api.ngenix.net/api/v3/dns-zone/4321"
              }
            }
          }
        ]
      },
      "DnssecKeyCollection": {
        "description": "Коллекция представлений данных публичных ключей DNSSEC",
        "allOf": [
          {
            "$ref": "#/components/schemas/Collection"
          },
          {
            "properties": {
              "elements": {
                "items": {
                  "$ref": "#/components/schemas/DnssecKeyCollectionView"
                }
              }
            }
          }
        ]
      },
      "DnssecKey": {
        "description": "Полное представление данных о публичном ключе DNSSEC для просмотра и изменения",
        "allOf": [
          {
            "$ref": "#/components/schemas/DnssecKeyCollectionView"
          },
          {
            "required": [
              "publicKeyData",
              "publicKeyDataHash"
            ]
          },
          {
            "properties": {
              "publicKeyData": {
                "description": "Открытая часть ключа, не редактируется",
                "type": "string",
                "maxLength": 512,
                "readOnly": true
              },
              "publicKeyDataHash": {
                "description": "Хэш открытой части ключа, не редактируется",
                "type": "string",
                "maxLength": 128,
                "readOnly": true
              }
            },
            "example": {
              "modelName": "DnssecKey",
              "id": 12345,
              "publicKeyData": "mdsswUyr3DPW132mOi8V9xESWE8jTo0dxCjjnopKl+GqJxpVXckHAeF+KkxLbxILfDLUT0rAK9iUzy1L53eKGQ==",
              "publicKeyDataHash": "32996839A6D808AFE3EB5A30A2C065B332EF6F5ED8C7D2B4DD3D3EBA0C55D56",
              "dnsZoneRef": {
                "id": 4321,
                "link": "https://api.ngenix.net/api/v3/dns-zone/4321"
              }
            }
          }
        ]
      },
      "DnssecKeyCreate": {
        "description": "Представление данных для создания нового публичного ключа DNSSEC",
        "allOf": [
          {
            "required": [
              "dnsZoneRef"
            ]
          },
          {
            "properties": {
              "dnsZoneRef": {
                "$ref": "#/components/schemas/Reference"
              }
            },
            "example": {
              "dnsZoneRef": {
                "id": 4321,
                "link": "https://api.ngenix.net/api/v3/dns-zone/4321"
              }
            }
          }
        ]
      },
      "TrafficPatternCollectionView": {
        "description": "Краткое представление списка значений для правил фильтрации",
        "allOf": [
          {
            "$ref": "#/components/schemas/Object"
          },
          {
            "properties": {
              "name": {
                "description": "Название списка",
                "type": "string"
              },
              "type": {
                "type": "string",
                "description": "Тип списка",
                "enum": [
                  "blacklist",
                  "whitelist",
                  "filterlist",
                  "commonlist"
                ]
              },
              "source": {
                "type": "string",
                "enum": [
                  "customer",
                  "antiddos",
                  "predefined",
                  "system"
                ],
                "default": "customer",
                "readOnly": true,
                "example": "customer",
                "description": "Источник списка доступа"
              },
              "contentType": {
                "type": "string",
                "enum": [
                  "addr",
                  "commonString",
                  "countryCode",
                  "httpMethod",
                  "asn",
                  "md5HashString"
                ],
                "default": "addr",
                "example": "addr"
              }
            }
          }
        ],
        "example": {
          "modelName": "TrafficPatternCollectionView",
          "name": "Белый список значений",
          "type": "whitelist",
          "source": "customer",
          "contentType": "addr",
          "links": {
            "self": "https://api.ngenix.net/api/v3/traffic-pattern/3"
          }
        }
      },
      "TrafficPatternCollection": {
        "description": "Коллекция списков значений для правил фильтрации",
        "allOf": [
          {
            "$ref": "#/components/schemas/Collection"
          },
          {
            "properties": {
              "elements": {
                "items": {
                  "$ref": "#/components/schemas/TrafficPatternCollectionView"
                }
              }
            },
            "example": {
              "modelName": "TrafficPatternCollection",
              "elements": [
                {
                  "modelName": "TrafficPatternCollectionView",
                  "id": 1,
                  "name": "White trafficpattern",
                  "type": "whitelist",
                  "source": "customer",
                  "contentType": "addr",
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/traffic-pattern/1"
                  }
                },
                {
                  "modelName": "TrafficPatternCollectionView",
                  "id": 2,
                  "name": "White trafficpattern",
                  "type": "whitelist",
                  "source": "customer",
                  "contentType": "addr",
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/traffic-pattern/2"
                  }
                }
              ]
            }
          }
        ]
      },
      "TrafficPattern": {
        "description": "Полное представление списка значений для правил фильтрации",
        "allOf": [
          {
            "$ref": "#/components/schemas/TrafficPatternCollectionView"
          },
          {
            "properties": {
              "customerRef": {
                "$ref": "#/components/schemas/Reference"
              },
              "modifiedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2018-01-01T20:20:20",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "example": "2018-01-01T20:20:20",
                "readOnly": true
              },
              "patterns": {
                "description": "Список активных значений для правил фильтрации",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TrafficPatternPatterns"
                }
              }
            },
            "example": {
              "modelName": "TrafficPattern",
              "customerRef": {
                "id": 8994,
                "link": "https://api.ngenix.net/api/v3/customer/8994"
              },
              "source": "customer",
              "contentType": "addr",
              "modifiedAt": "2018-01-01T20:20:20",
              "createdAt": "2018-01-01T20:20:20",
              "patterns": [
                {
                  "addr": "123.13.11.11/26",
                  "ttl": 1000
                },
                {
                  "addr": "123.13.11.11/26"
                },
                {
                  "addr": "124.13.11.11/26",
                  "expires": 1619432837
                }
              ]
            }
          }
        ]
      },
      "TrafficPatternPatterns": {
        "description": "Параметры addr, commonString, countryCode, httpMethod, asn и md5HashString взаимоисключающие",
        "type": "object",
        "properties": {
          "addr": {
            "type": "string",
            "description": "Подсеть в формате a.b.c.d/netmask"
          },
          "commonString": {
            "type": "string",
            "maxLength": 255,
            "description": "Данные о запросе"
          },
          "countryCode": {
            "type": "string",
            "description": "Код страны запроса согласно ISO 3166-2",
            "pattern": "^[A-Z]{2}$"
          },
          "httpMethod": {
            "type": "string",
            "enum": [
              "GET",
              "POST",
              "OPTIONS",
              "PUT",
              "PATCH",
              "DELETE",
              "HEAD",
              "PURGE"
            ],
            "description": "HTTP-метод запроса"
          },
          "asn": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295,
            "description": "Номер автономной системы (ASN)"
          },
          "md5HashString": {
            "type": "string",
            "description": "TLS fingerprint",
            "pattern": "^[a-fA-F0-9]{32}$"
          },
          "ttl": {
            "nullable": true,
            "type": "integer",
            "minimum": 0,
            "example": 3600,
            "description": "Время жизни элемента в списке в секундах. Поле взаимоисключающее с expires"
          },
          "expires": {
            "example": 1619432837,
            "type": "integer",
            "minimum": 1609448400,
            "description": "Дата и время инвалидации элемента списка в формате unix timestamp. Минимальное значение = current_timestamp + 60 секунд. Поле взаимоисключающее с ttl"
          },
          "comment": {
            "type": "string",
            "maxLength": 42,
            "description": "Комментарий к элементу списка"
          }
        }
      },
      "TrafficPatternCreate": {
        "description": "Представление данных для создания списка значений для правил фильтрации",
        "allOf": [
          {
            "$ref": "#/components/schemas/TrafficPattern"
          },
          {
            "required": [
              "customerRef"
            ]
          },
          {
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "commonlist"
                ]
              }
            }
          }
        ]
      },
      "TrafficPatternUpdate": {
        "description": "Представление данных для изменения списка значений для правил фильтрации",
        "allOf": [
          {
            "$ref": "#/components/schemas/TrafficPattern"
          },
          {
            "properties": {
              "customerRef": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Reference"
                  },
                  {
                    "readOnly": true
                  }
                ]
              },
              "type": {
                "type": "string",
                "readOnly": true
              }
            }
          }
        ]
      },
      "TrafficPatternTaskCollectionView": {
        "description": "Краткое представление списка значений для правил фильтрации",
        "allOf": [
          {
            "$ref": "#/components/schemas/Object"
          },
          {
            "properties": {
              "action": {
                "type": "string",
                "description": "Действие по изменению состава списка",
                "enum": [
                  "add",
                  "remove",
                  "replace"
                ]
              },
              "status": {
                "description": "Статус задания на изменение списка",
                "type": "string",
                "enum": [
                  "success",
                  "created",
                  "failed"
                ],
                "readOnly": true
              }
            }
          }
        ],
        "example": {
          "modelName": "TrafficPatternTaskCollectionView",
          "action": "add",
          "status": "success"
        }
      },
      "TrafficPatternTaskCollection": {
        "description": "Коллекция списков кратких задач по изменению значений правил фильтрации",
        "allOf": [
          {
            "$ref": "#/components/schemas/Collection"
          },
          {
            "properties": {
              "elements": {
                "items": {
                  "$ref": "#/components/schemas/TrafficPatternTaskCollectionView"
                }
              }
            },
            "example": {
              "modelName": "TrafficPatternTaskCollection",
              "elements": [
                {
                  "schema": "TrafficPatternTaskCollectionView",
                  "id": 1,
                  "action": "add",
                  "status": "success",
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/traffic-pattern/1/task/1"
                  }
                },
                {
                  "schema": "TrafficPatternTask",
                  "id": 2,
                  "action": "remove",
                  "status": "success",
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/traffic-pattern/1/task/2"
                  }
                }
              ]
            }
          }
        ]
      },
      "TrafficPatternTask": {
        "description": "Представление задачи по изменению значений для правил фильтрации",
        "allOf": [
          {
            "$ref": "#/components/schemas/TrafficPatternTaskCollectionView"
          },
          {
            "properties": {
              "modifiedAt": {
                "type": "string",
                "format": "date-time",
                "description": "Дата и время изменения списка",
                "example": "2018-01-01T20:20:20",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "Дата и время создания списка",
                "example": "2018-01-01T20:20:20",
                "readOnly": true
              },
              "patternsCount": {
                "type": "integer",
                "description": "Количество элементов в списке",
                "example": 25,
                "readOnly": true
              }
            },
            "example": {
              "modelName": "TrafficPatternTask",
              "modifiedAt": "2018-01-01T20:20:20",
              "createdAt": "2018-01-01T20:20:20",
              "patternsCount": 25,
              "action": "add"
            }
          }
        ]
      },
      "TrafficPatternTaskCreate": {
        "description": "Представление задачи по изменению значений для правил фильтрации",
        "allOf": [
          {
            "$ref": "#/components/schemas/TrafficPatternTask"
          },
          {
            "required": [
              "patterns",
              "action"
            ]
          },
          {
            "properties": {
              "patterns": {
                "description": "Список значений для задачи",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TrafficPatternPatterns"
                }
              }
            },
            "example": {
              "modelName": "TrafficPatternTaskCreate",
              "modifiedAt": "2018-01-01T20:20:20",
              "createdAt": "2018-01-01T20:20:20",
              "patternsCount": 25,
              "patterns": [
                {
                  "addr": "123.13.11.11/26",
                  "ttl": 10000
                },
                {
                  "addr": "124.13.11.11/26"
                },
                {
                  "addr": "124.13.11.11/26",
                  "comment": "Заблокирован из-за вредоносной активности."
                }
              ],
              "action": "add"
            }
          }
        ]
      },
      "RulesetHints": {
        "description": "Вспомогательная информация о наборе правил.",
        "allOf": [
          {
            "$ref": "#/components/schemas/Hints"
          },
          {
            "properties": {
              "stubPageAvailable": {
                "type": "boolean",
                "readOnly": true,
                "description": "Подсказка о доступности выбора страницы-заглушки для действия botChallenge, \nдля данного объекта\n"
              }
            }
          }
        ]
      },
      "RulesetCollectionView": {
        "description": "Краткое представление наборов правил",
        "allOf": [
          {
            "$ref": "#/components/schemas/Object"
          },
          {
            "required": [
              "name"
            ]
          },
          {
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 255
              },
              "enabled": {
                "type": "boolean"
              },
              "category": {
                "type": "string",
                "readOnly": true,
                "enum": [
                  "simple",
                  "universal",
                  "extended"
                ]
              },
              "hints": {
                "$ref": "#/components/schemas/RulesetHints"
              }
            }
          }
        ],
        "example": {
          "modelName": "RulesetCollectionView",
          "id": 36783,
          "name": "Набор правил для проверки заголовков",
          "enabled": true,
          "category": "simple",
          "links": {
            "self": "https://api.ngenix.net/api/v3/ruleset/36783"
          },
          "hints": {
            "stubPageAvailable": false
          }
        }
      },
      "RulesetCollection": {
        "description": "Коллекция наборов правил",
        "allOf": [
          {
            "$ref": "#/components/schemas/Collection"
          },
          {
            "properties": {
              "elements": {
                "items": {
                  "$ref": "#/components/schemas/RulesetCollectionView"
                }
              }
            },
            "example": {
              "modelName": "RulesetCollection",
              "elements": [
                {
                  "modelName": "RulesetCollectionView",
                  "id": 36783,
                  "name": "Набор правил для проверки заголовков",
                  "enabled": true,
                  "category": "simple",
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/ruleset/36783"
                  },
                  "hints": {
                    "stubPageAvailable": false
                  }
                },
                {
                  "modelName": "RulesetCollectionView",
                  "id": 56783,
                  "name": "Набор правил для проверки на ботов",
                  "enabled": true,
                  "category": "simple",
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/ruleset/56783"
                  },
                  "hints": {
                    "stubPageAvailable": false
                  }
                }
              ]
            }
          }
        ]
      },
      "RulesetRulesItem": {
        "type": "object",
        "required": [
          "conditions",
          "actions"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "label": {
            "type": "string",
            "maxLength": 255,
            "readOnly": true
          },
          "enabled": {
            "type": "boolean"
          },
          "conditions": {
            "type": "array",
            "maxItems": 5,
            "items": {
              "$ref": "#/components/schemas/RulesetRulesItemConditions"
            }
          },
          "actions": {
            "type": "array",
            "maxItems": 5,
            "items": {
              "$ref": "#/components/schemas/RulesetRulesItemActions"
            }
          }
        }
      },
      "RulesetRulesItemConditions": {
        "type": "object",
        "required": [
          "function"
        ],
        "properties": {
          "function": {
            "type": "string",
            "enum": [
              "in",
              "equals",
              "contains",
              "begins",
              "ends",
              "true",
              "exists"
            ]
          },
          "negation": {
            "type": "boolean",
            "default": false
          },
          "params": {
            "type": "array",
            "maxItems": 3,
            "items": {
              "$ref": "#/components/schemas/RulesetRulesItemParams"
            }
          }
        }
      },
      "RulesetRulesItemParams": {
        "type": "object",
        "properties": {
          "variable": {
            "type": "string",
            "maxLength": 254,
            "description": "Данная строка имеет следующие ограничения:\nДолжна начинаться только с буквы или цифры;\nСодержать буквы a-z, цифры 0-9, а также символы \"-\", \"_\" \n(но они не могут быть в начале или в конце строки);\nРазделителем служит символ \".\";\nНе может быть двух специальных символов подряд, например (\"_\", \".\", \"_\"- и т.д.);\nДля аргументов url (начинаются с http.request.args) \nвозможно использование символа \"_\" в любом месте аргумента.\n"
          },
          "value": {
            "oneOf": [
              {
                "type": "array",
                "minItems": 1,
                "maxItems": 11,
                "items": {
                  "type": "string",
                  "maxLength": 255
                }
              },
              {
                "type": "array",
                "minItems": 1,
                "maxItems": 3,
                "items": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 4294967295
                }
              },
              {
                "type": "array",
                "minItems": 1,
                "maxItems": 1,
                "items": {
                  "type": "boolean"
                }
              }
            ]
          },
          "trafficPatternRef": {
            "$ref": "#/components/schemas/NullableReference"
          },
          "option": {
            "oneOf": [
              {
                "type": "object",
                "required": [
                  "name",
                  "value"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "enum": [
                      "ignore_case"
                    ]
                  },
                  "value": {
                    "type": "boolean"
                  }
                }
              }
            ]
          }
        }
      },
      "RulesetRulesItemActions": {
        "type": "object",
        "required": [
          "action"
        ],
        "properties": {
          "action": {
            "type": "string",
            "enum": [
              "allow",
              "deny",
              "redirect",
              "setHeader",
              "delHeader",
              "jsChallenge",
              "botChallenge",
              "captchaChallenge",
              "continue"
            ]
          },
          "params": {
            "type": "array",
            "maxItems": 3,
            "items": {
              "type": "string",
              "maxLength": 1024
            }
          }
        }
      },
      "Ruleset": {
        "description": "Полное представление набора правил",
        "allOf": [
          {
            "$ref": "#/components/schemas/RulesetCollectionView"
          },
          {
            "properties": {
              "customerRef": {
                "$ref": "#/components/schemas/Reference"
              },
              "modifiedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2018-01-01T20:20:20",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "example": "2018-01-01T20:20:20",
                "readOnly": true
              },
              "rules": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RulesetRulesItem"
                }
              }
            },
            "example": {
              "modelName": "Ruleset",
              "customerRef": {
                "id": 8994,
                "link": "https://api.ngenix.net/api/v3/customer/8994"
              },
              "name": "Набор правил для проверки на ботов",
              "modifiedAt": "2018-01-01T20:20:20",
              "createdAt": "2018-01-01T20:20:20",
              "category": "universal",
              "rules": [
                {
                  "id": 1234567,
                  "name": "Ruleset for blocking bots",
                  "label": "for bots",
                  "enabled": true,
                  "conditions": [
                    {
                      "function": "begins",
                      "params": [
                        {
                          "variable": "http.request.method"
                        },
                        {
                          "trafficPatternRef": {
                            "id": 4533,
                            "link": "https://api.ngenix.net/api/v3/traffic-pattern/4533"
                          }
                        },
                        {
                          "option": {
                            "name": "ignore_case",
                            "value": true
                          }
                        }
                      ]
                    },
                    {
                      "function": "contains",
                      "params": [
                        {
                          "values'": [
                            "SuspiciousHeader"
                          ]
                        }
                      ]
                    }
                  ],
                  "actions": [
                    {
                      "action": "setHeader",
                      "params": [
                        "http.request.headers.x-bot-token",
                        "thisIsBot"
                      ]
                    },
                    {
                      "action": "deny",
                      "params": [
                        "403"
                      ]
                    }
                  ]
                }
              ]
            }
          }
        ]
      },
      "RulesetCreate": {
        "description": "Представление данных для изменения набора правил",
        "allOf": [
          {
            "$ref": "#/components/schemas/Ruleset"
          },
          {
            "required": [
              "customerRef"
            ]
          }
        ]
      },
      "RulesetUpdate": {
        "description": "Представление данных для изменения набора правил",
        "allOf": [
          {
            "$ref": "#/components/schemas/Ruleset"
          },
          {
            "properties": {
              "customerRef": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Reference"
                  },
                  {
                    "readOnly": true
                  }
                ]
              }
            }
          }
        ]
      },
      "CloudWafInstanceCollectionView": {
        "description": "Краткое представление настроек объекта \"Экземпляр ПО WAF\".",
        "allOf": [
          {
            "$ref": "#/components/schemas/Object"
          },
          {
            "properties": {
              "customerRef": {
                "$ref": "#/components/schemas/Reference"
              },
              "name": {
                "type": "string",
                "readOnly": true
              },
              "software": {
                "type": "string",
                "enum": [
                  "webmonitorx",
                  "ptaf"
                ],
                "readOnly": true
              },
              "controlPanel": {
                "description": "Ссылка на панель управления ПО WAF",
                "type": "string",
                "format": "uri",
                "readOnly": true
              },
              "links": {
                "$ref": "#/components/schemas/CloudWafsLink"
              }
            }
          }
        ]
      },
      "CloudWafInstanceCollection": {
        "description": "Коллекция настроек объектов \"Экземпляр ПО WAF\".",
        "allOf": [
          {
            "$ref": "#/components/schemas/Collection"
          },
          {
            "properties": {
              "elements": {
                "items": {
                  "$ref": "#/components/schemas/CloudWafInstanceCollectionView"
                }
              }
            },
            "example": {
              "modelName": "CloudWafInstanceCollection",
              "elements": [
                {
                  "modelName": "CloudWafInstanceCollectionView",
                  "id": 1,
                  "name": "webmonitorx",
                  "controlPanel": "webmonitorx.ngenix.net/123",
                  "software": "webmonitorx",
                  "customerRef": {
                    "id": 4321,
                    "link": "https://api.ngenix.net/api/v3/customer/4321"
                  },
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/cloud-waf-instance/1",
                    "cloudWafs": "https://api.ngenix.net/api/v3/cloud-waf?customerId=4321&cloudWafInstanceId=432"
                  }
                }
              ]
            }
          }
        ]
      },
      "CloudWafInstance": {
        "description": "Полное представление объекта \"Экземпляр ПО WAF\".",
        "allOf": [
          {
            "$ref": "#/components/schemas/CloudWafInstanceCollectionView"
          },
          {
            "example": {
              "modelName": "CloudWafInstance",
              "id": 1,
              "name": "webmonitorx",
              "controlPanel": "webmonitorx.ngenix.net/123",
              "software": "webmonitorx",
              "customerRef": {
                "id": 4321,
                "link": "https://api.ngenix.net/api/v3/customer/4321"
              },
              "links": {
                "self": "https://api.ngenix.net/api/v3/cloud-waf-instance/1",
                "cloudWafs": "https://api.ngenix.net/api/v3/cloud-waf?customerId=4321&cloudWafInstanceId=432"
              }
            }
          }
        ]
      },
      "CloudWafWebmonitorxSettings": {
        "type": "object",
        "description": "Настройки для ПО Webmonitorx",
        "properties": {
          "webmonitorxMode": {
            "type": "string",
            "description": "Тип работы Webmonitorx:\n```monitoring``` - режим мониторинга и обучения, блокировок не производится,\n```block``` - режим активной защиты при наличии атаки,\n```safe_blocking``` - блокирует запросы только из серого списка\n",
            "enum": [
              "monitoring",
              "block",
              "safe_blocking"
            ]
          }
        }
      },
      "CloudWafHints": {
        "description": "Вспомогательная информация о Cloud Waf.",
        "allOf": [
          {
            "$ref": "#/components/schemas/Hints"
          },
          {
            "properties": {
              "usedAsOriginCount": {
                "type": "integer",
                "readOnly": true,
                "description": "Количество сервисных конфигураций, использующих объект Cloud Waf\nв качестве оригинации.\nПолучить это значение можно так:\n1. Запросить список конфигураций:\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config/?customerId={customerId}'\n```\n2. Для каждой конфигурации запросить настройки базового сервиса:\n```\ncurl -u \"email@company.ru/token:****\"\n-X GET 'https://api.ngenix.net/api/v3/config/{config.id}/service/{config.type}'\n```\n3. посчитать все сервисные конфигурации, для которых нужный Cloud Waf\nуказан в поле `origin.settings.caf.cloudWafRef.id`\n"
              }
            }
          }
        ]
      },
      "CloudWafCollectionView": {
        "description": "Краткое представление настроек объекта Cloud WAF",
        "allOf": [
          {
            "required": [
              "cloudWafInstanceRef",
              "name"
            ]
          },
          {
            "$ref": "#/components/schemas/Object"
          },
          {
            "properties": {
              "cloudWafInstanceRef": {
                "$ref": "#/components/schemas/Reference"
              },
              "name": {
                "type": "string",
                "minLength": 1
              },
              "status": {
                "type": "string",
                "readOnly": true,
                "enum": [
                  "create_pending",
                  "update_pending",
                  "active"
                ]
              },
              "customSettings": {
                "description": "Наличие кастомных опций",
                "type": "boolean",
                "readOnly": true
              },
              "hints": {
                "$ref": "#/components/schemas/CloudWafHints"
              }
            }
          }
        ]
      },
      "CloudWafCollection": {
        "description": "Коллекция настроек объектов Cloud WAF",
        "allOf": [
          {
            "$ref": "#/components/schemas/Collection"
          },
          {
            "properties": {
              "elements": {
                "items": {
                  "$ref": "#/components/schemas/CloudWafCollectionView"
                }
              }
            },
            "example": {
              "modelName": "CloudWafCollection",
              "elements": [
                {
                  "modelName": "CloudWafCollectionView",
                  "id": 1,
                  "name": "some important origin",
                  "cloudWafInstanceRef": {
                    "id": 1,
                    "link": "https://api.ngenix.net/api/v3/cloud-waf-instance/1"
                  },
                  "status": "active",
                  "customSettings": true,
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/cloud-waf/1"
                  },
                  "hints": {
                    "usedAsOriginCount": 3
                  }
                }
              ]
            }
          }
        ]
      },
      "CloudWaf": {
        "description": "Полное представление настроек объекта Cloud WAF",
        "allOf": [
          {
            "$ref": "#/components/schemas/CloudWafCollectionView"
          },
          {
            "required": [
              "customerRef",
              "backends"
            ],
            "properties": {
              "customerRef": {
                "$ref": "#/components/schemas/Reference"
              },
              "settingsSourceConfigRefs": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Reference"
                }
              },
              "protocol": {
                "type": "string",
                "description": "Протокол взаимодействия с серверами оригинации",
                "enum": [
                  "http",
                  "https"
                ],
                "example": "http"
              },
              "balanceMethod": {
                "description": "Метод балансировки.",
                "type": "string",
                "enum": [
                  "round_robin",
                  "consistent_ip",
                  "consistent_uri"
                ]
              },
              "settings": {
                "type": "object",
                "properties": {
                  "webmonitorx": {
                    "$ref": "#/components/schemas/CloudWafWebmonitorxSettings"
                  }
                }
              },
              "backends": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "$ref": "#/components/schemas/CloudWafBackend"
                }
              }
            },
            "example": {
              "modelName": "CloudWaf",
              "id": 1,
              "name": "some important origin",
              "settingsSourceConfigRefs": [
                {
                  "id": 123,
                  "link": "https://api.ngenix.net/api/v3/config/123"
                },
                {
                  "id": 124,
                  "link": "https://api.ngenix.net/api/v3/config/124"
                }
              ],
              "cloudWafInstanceRef": {
                "id": 1,
                "link": "https://api.ngenix.net/api/v3/cloud-waf-instance/1"
              },
              "customerRef": {
                "id": 4321,
                "link": "https://api.ngenix.net/api/v3/customer/4321"
              },
              "status": "active",
              "protocol": "https",
              "balanceMethod": "round_robin",
              "settings": {
                "webmonitorx": {
                  "webmonitorxMode": "block"
                }
              },
              "customSettings": true,
              "backends": [
                {
                  "address": "95.108.160.1",
                  "port": 443,
                  "maxFails": 1,
                  "failTimeout": 10,
                  "backup": false
                },
                {
                  "address": "95.108.160.2",
                  "port": 443,
                  "maxFails": 1,
                  "failTimeout": 10,
                  "backup": false
                },
                {
                  "address": "95.108.160.3",
                  "maxFails": 1,
                  "failTimeout": 10,
                  "backup": false
                }
              ],
              "links": {
                "self": "https://api.ngenix.net/api/v3/cloud-waf/1"
              },
              "hints": {
                "usedAsOriginCount": 3
              }
            }
          }
        ]
      },
      "CacheSettingsKey": {
        "description": "Настройки ключа кэширования",
        "properties": {
          "path": {
            "type": "boolean",
            "readOnly": true
          },
          "arguments": {
            "type": "boolean"
          },
          "protocol": {
            "type": "boolean"
          },
          "domain": {
            "type": "boolean"
          },
          "httpHeaders": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^[a-zA-Z0-9-]+$",
              "example": "Save-data"
            },
            "example": [
              "Save-data",
              "origin"
            ]
          }
        }
      },
      "CacheSettings": {
        "description": "Настройки кэширования конфигурации",
        "properties": {
          "disableProxyCache": {
            "description": "Отключение кэширования на платформе",
            "type": "boolean"
          },
          "validity": {
            "$ref": "#/components/schemas/CacheSettingsValidity"
          },
          "disableClientSideCaching": {
            "type": "boolean"
          },
          "forceCaching": {
            "type": "boolean"
          },
          "key": {
            "$ref": "#/components/schemas/CacheSettingsKey",
            "readOnly": true
          }
        }
      },
      "SrsCacheSettings": {
        "description": "Настройки кэширования SRS конфигурации",
        "type": "object",
        "properties": {
          "disableProxyCache": {
            "type": "boolean",
            "readOnly": true
          },
          "key": {
            "$ref": "#/components/schemas/CacheSettingsKey",
            "readOnly": true
          }
        }
      },
      "TargetIp": {
        "description": "Объект DNS-балансировки IP-типа",
        "properties": {
          "ip": {
            "type": "string",
            "pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$",
            "example": "127.0.0.1"
          }
        }
      },
      "TargetConfig": {
        "description": "Объект DNS-балансировки Config-типа",
        "properties": {
          "configRef": {
            "$ref": "#/components/schemas/Reference"
          }
        }
      },
      "Target": {
        "description": "Объект DNS-балансировки.\nПоля 'targetIp' и 'targetConfig' взаимоисключающие, наличие одного из\nних определяется полем 'type'\n",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "config",
              "ip"
            ]
          },
          "targetIp": {
            "$ref": "#/components/schemas/TargetIp"
          },
          "targetConfig": {
            "$ref": "#/components/schemas/TargetConfig"
          }
        }
      },
      "TargetGroupCollectionView": {
        "description": "Краткое представление набора объектов для DNS-балансировки",
        "allOf": [
          {
            "$ref": "#/components/schemas/Object"
          },
          {
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 253,
                "pattern": "^[A-Za-z0-9_\\-]+[A-Za-z0-9_\\- ]*$"
              },
              "customerRef": {
                "$ref": "#/components/schemas/Reference"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              },
              "modifiedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true
              }
            }
          }
        ],
        "example": {
          "id": 123,
          "modelName": "TargetGroupCollectionView",
          "name": "My target group",
          "customerRef": {
            "id": 1,
            "link": "https://api.ngenix.net/api/v3/customer/1"
          },
          "createdAt": "2020-09-22T12:00:00",
          "modifiedAt": "2020-09-22T12:00:00",
          "links": {
            "self": "https://api.ngenix.net/api/v3/target-group/123"
          }
        }
      },
      "TargetGroup": {
        "description": "Полное представление набора объектов для DNS-балансировки",
        "allOf": [
          {
            "$ref": "#/components/schemas/TargetGroupCollectionView"
          },
          {
            "properties": {
              "targets": {
                "type": "array",
                "maxItems": 32,
                "items": {
                  "$ref": "#/components/schemas/Target"
                }
              }
            }
          }
        ],
        "example": {
          "id": 123,
          "modelName": "TargetGroup",
          "name": "My target group",
          "customerRef": {
            "id": 1,
            "link": "https://api.ngenix.net/api/v3/customer/1"
          },
          "targets": [
            {
              "type": "config",
              "targetConfig": {
                "configRef": {
                  "id": 1,
                  "link": "https://api.ngenix.net/api/v3/config/1"
                }
              }
            },
            {
              "type": "ip",
              "targetIp": {
                "ip": "192.168.0.1"
              }
            }
          ],
          "createdAt": "2020-09-22T12:00:00",
          "modifiedAt": "2020-09-22T12:00:00",
          "links": {
            "self": "https://api.ngenix.net/api/v3/target-group/123"
          }
        }
      },
      "TargetGroupCollection": {
        "description": "Коллекция наборов объектов для DNS-балансировки",
        "allOf": [
          {
            "$ref": "#/components/schemas/Collection"
          },
          {
            "properties": {
              "elements": {
                "items": {
                  "$ref": "#/components/schemas/TargetGroupCollectionView"
                }
              }
            }
          }
        ]
      },
      "IpPrefixCollection": {
        "description": "Коллекция префиксов IP адресов",
        "allOf": [
          {
            "$ref": "#/components/schemas/Collection"
          },
          {
            "properties": {
              "elements": {
                "items": {
                  "$ref": "#/components/schemas/IpPrefixCollectionView"
                }
              }
            }
          }
        ]
      },
      "IpPrefixCollectionView": {
        "description": "Краткое представление префикса IP адресов",
        "allOf": [
          {
            "$ref": "#/components/schemas/Object"
          },
          {
            "required": [
              "id",
              "cidr"
            ],
            "properties": {
              "cidr": {
                "description": "CIDR",
                "type": "string",
                "minLength": 9,
                "maxLength": 18,
                "readOnly": true
              }
            }
          }
        ],
        "example": {
          "id": 45,
          "cidr": "46.235.184.0/23",
          "links": {
            "self": "https://api.ngenix.net/api/v3/ip-prefix/45"
          }
        }
      },
      "IpPrefix": {
        "description": "Полное представление префикса IP адресов",
        "allOf": [
          {
            "$ref": "#/components/schemas/IpPrefixCollectionView"
          }
        ]
      },
      "StorageBucketS3Settings": {
        "type": "object",
        "required": [
          "endpoint",
          "bucket"
        ],
        "properties": {
          "endpoint": {
            "type": "string",
            "format": "uri",
            "readOnly": true
          },
          "bucket": {
            "type": "string",
            "readOnly": true
          }
        }
      },
      "StorageBucketCollectionView": {
        "description": "Краткое представление корзины хранения данных",
        "allOf": [
          {
            "$ref": "#/components/schemas/Object"
          },
          {
            "required": [
              "customerRef",
              "name",
              "status",
              "type",
              "s3Settings"
            ]
          },
          {
            "properties": {
              "name": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": [
                  "create_pending",
                  "active"
                ],
                "readOnly": true
              },
              "type": {
                "type": "string",
                "enum": [
                  "customer",
                  "system"
                ],
                "readOnly": true
              },
              "s3Settings": {
                "$ref": "#/components/schemas/StorageBucketS3Settings"
              },
              "customerRef": {
                "$ref": "#/components/schemas/Reference"
              }
            }
          }
        ],
        "example": {
          "id": 123,
          "modelName": "StorageBucketCollectionView",
          "name": "My storage bucket",
          "status": "active",
          "type": "customer",
          "s3Settings": {
            "endpoint": "https://cos.ngenix.net/b12345",
            "bucket": "b12345"
          },
          "customerRef": {
            "id": 8994,
            "link": "https://api.ngenix.net/api/v3/customer/8994"
          },
          "links": {
            "self": "https://api.ngenix.net/api/v3/storage-bucket/123"
          }
        }
      },
      "S3KeyPairCollectionView": {
        "description": "S3 Ключи для КХД, краткое представление",
        "allOf": [
          {
            "$ref": "#/components/schemas/S3KeyPair"
          }
        ],
        "example": {
          "id": null,
          "accessKey": "IE483D1V7HWQ32ED7V36",
          "links": {
            "self": "https://api.ngenix.net/api/v3/s3-key/54326"
          }
        }
      },
      "S3KeyPairCollection": {
        "description": "S3 keys для КХД",
        "allOf": [
          {
            "$ref": "#/components/schemas/Collection"
          },
          {
            "properties": {
              "elements": {
                "items": {
                  "$ref": "#/components/schemas/S3KeyPairCollectionView"
                }
              }
            }
          }
        ]
      },
      "S3KeyPair": {
        "description": "S3 Ключи для КХД, полное представление",
        "allOf": [
          {
            "$ref": "#/components/schemas/Object"
          },
          {
            "required": [
              "customerRef",
              "storageBucketRef",
              "userRef"
            ]
          },
          {
            "properties": {
              "accessKey": {
                "type": "string",
                "readOnly": true
              },
              "secretKey": {
                "type": "string",
                "readOnly": true,
                "nullable": true
              },
              "customerRef": {
                "$ref": "#/components/schemas/Reference"
              },
              "storageBucketRef": {
                "$ref": "#/components/schemas/Reference"
              },
              "userRef": {
                "$ref": "#/components/schemas/Reference"
              }
            }
          }
        ],
        "example": {
          "id": 54326,
          "accessKey": "IE483D1V7HWQ32ED7V36",
          "secretKey": "PIuO9m8a5BkBJMjjwVhf4B4NHc6OgHqp1zdPGHGF",
          "customerRef": {
            "id": 8994,
            "link": "https://api.ngenix.net/api/v3/customer/8994"
          },
          "storageBucketRef": {
            "id": 123,
            "link": "https://api.ngenix.net/api/v3/storage-bucket/123"
          },
          "userRef": {
            "id": 4321,
            "link": "https://api.ngenix.net/api/v3/user/4321"
          },
          "links": {
            "self": "https://api.ngenix.net/api/v3/s3-key/54326"
          }
        }
      },
      "StorageBucket": {
        "description": "Полное представление корзины хранения данных",
        "allOf": [
          {
            "$ref": "#/components/schemas/StorageBucketCollectionView"
          }
        ]
      },
      "StorageBucketCollection": {
        "description": "Коллекция корзин хранения данных",
        "allOf": [
          {
            "$ref": "#/components/schemas/Collection"
          },
          {
            "properties": {
              "elements": {
                "items": {
                  "$ref": "#/components/schemas/StorageBucketCollectionView"
                }
              }
            }
          }
        ]
      },
      "AvailabilityCheckRuleCollection": {
        "description": "Коллекция правил проверки доступности",
        "allOf": [
          {
            "$ref": "#/components/schemas/Collection"
          },
          {
            "properties": {
              "elements": {
                "items": {
                  "$ref": "#/components/schemas/AvailabilityCheckRuleCollectionView"
                }
              }
            },
            "example": {
              "modelName": "AvailabilityCheckRuleCollection",
              "elements": [
                {
                  "modelName": "AvailabilityCheckRuleCollectionView",
                  "links": {
                    "self": "https://api.ngenix.net/api/v3/availability-check-rule/65748"
                  },
                  "id": 65748,
                  "name": "Тестовое правило проверки доступности",
                  "httpChecksEnabled": true
                }
              ]
            }
          }
        ]
      },
      "AvailabilityCheckRuleCollectionView": {
        "description": "Краткое представление правила проверки доступности",
        "allOf": [
          {
            "$ref": "#/components/schemas/Object"
          },
          {
            "required": [
              "name"
            ]
          },
          {
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 50
              },
              "httpChecksEnabled": {
                "type": "boolean"
              },
              "verifyCertificate": {
                "type": "boolean",
                "default": false
              }
            },
            "example": {
              "modelName": "AvailabilityCheckRuleCollectionView",
              "links": {
                "self": "https://api.ngenix.net/api/v3/availability-check-rule/65748"
              },
              "id": 65748,
              "name": "Тестовое правило проверки доступности",
              "httpChecksEnabled": true,
              "verifyCertificate": false
            }
          }
        ]
      },
      "AvailabilityCheckRuleCreate": {
        "description": "Представление данных для создания правила проверки доступности",
        "allOf": [
          {
            "$ref": "#/components/schemas/AvailabilityCheckRule"
          },
          {
            "required": [
              "customerRef",
              "name",
              "destinations",
              "availabilitySettings"
            ]
          }
        ],
        "example": {
          "name": "Тестовое правило проверки доступности",
          "httpChecksEnabled": true,
          "verifyCertificate": false,
          "customerRef": {
            "id": 8994
          },
          "destinations": [
            {
              "host": "localhost",
              "scheme": "http",
              "port": 8080,
              "path": "/path/to",
              "headers": [
                {
                  "name": "Host",
                  "value": "example.com"
                }
              ]
            }
          ],
          "availabilitySettings": {
            "validStatusCodes": [200, 204],
            "method": "HEAD",
            "checkCount": 1,
            "successCount": 1
          }
        }
      },
      "AvailabilityCheckRuleUpdate": {
        "description": "Представление данных для изменения правила проверки доступности",
        "allOf": [
          {
            "$ref": "#/components/schemas/AvailabilityCheckRule"
          },
          {
            "properties": {
              "customerRef": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Reference"
                  },
                  {
                    "readOnly": true
                  }
                ]
              }
            }
          }
        ],
        "example": {
          "name": "Тестовое правило проверки доступности",
          "httpChecksEnabled": true,
          "verifyCertificate": false,
          "customerRef": {
            "id": 8994
          },
          "destinations": [
            {
              "host": "localhost",
              "scheme": "http",
              "port": 8080,
              "path": "/path/to",
              "headers": [
                {
                  "name": "Host",
                  "value": "example.com"
                }
              ]
            }
          ],
          "availabilitySettings": {
            "validStatusCodes": [200, 204],
            "method": "HEAD",
            "checkCount": 1,
            "successCount": 1
          }
        }
      },
      "AvailabilityCheckRule": {
        "description": "Полное представление правила проверки доступности",
        "allOf": [
          {
            "$ref": "#/components/schemas/AvailabilityCheckRuleCollectionView"
          },
          {
            "properties": {
              "customerRef": {
                "$ref": "#/components/schemas/Reference"
              },
              "modifiedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2018-01-01T20:20:20",
                "readOnly": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "example": "2018-01-01T20:20:20",
                "readOnly": true
              },
              "destinations": {
                "type": "array",
                "minItems": 1,
                "maxItems": 1,
                "items": {
                  "$ref": "#/components/schemas/AvailabilityCheckRuleDestination"
                }
              },
              "availabilitySettings": {
                "$ref": "#/components/schemas/AvailabilityCheckRuleSettings"
              }
            },
            "example": {
              "modelName": "AvailabilityCheckRule",
              "links": {
                "self": "https://api.ngenix.net/api/v3/availability-check-rule/65748"
              },
              "id": 65748,
              "name": "Тестовое правило проверки доступности",
              "httpChecksEnabled": true,
              "verifyCertificate": false,
              "customerRef": {
                "id": 8994,
                "link": "https://api.ngenix.net/api/v3/customer/8994"
              },
              "modifiedAt": "2018-01-01T20:20:20",
              "createdAt": "2018-01-01T20:20:20",
              "destinations": [
                {
                  "host": "localhost",
                  "scheme": "http",
                  "port": 8080,
                  "path": "/path/to",
                  "headers": [
                    {
                      "name": "Host",
                      "value": "example.com"
                    }
                  ]
                }
              ],
              "availabilitySettings": {
                "validStatusCodes": [200, 204],
                "method": "HEAD",
                "checkCount": 1,
                "successCount": 1
              }
            }
          }
        ]
      },
      "AvailabilityCheckRuleDestination": {
        "description": "Точка проверки доступности\n",
        "type": "object",
        "required": [
          "host",
          "headers",
          "path",
          "port",
          "scheme"
        ],
        "properties": {
          "scheme": {
            "type": "string",
            "enum": [
              "http",
              "https"
            ]
          },
          "host": {
            "type": "string",
            "description": "IPv4-адрес или доменное имя (FQDN)",
            "minLength": 3,
            "maxLength": 255
          },
          "port": {
            "type": "integer",
            "minimum": 1,
            "maximum": 65535
          },
          "path": {
            "type": "string",
            "minLength": 1,
            "description": "Должен начинаться на `/` и содержать только печатные ASCII символы",
            "pattern": "^/[!-~]*$"
          },
          "headers": {
            "type": "array",
            "minItems": 1,
            "maxItems": 1,
            "items": {
              "$ref": "#/components/schemas/AvailabilityCheckRuleHttpHeader"
            }
          }
        },
        "example": {
          "host": "8.8.8.8",
          "scheme": "http",
          "port": 8080,
          "path": "/path/to",
          "headers": [
            {
              "name": "Host",
              "value": "example.com"
            }
          ]
        }
      },
      "AvailabilityCheckRuleHttpHeader": {
        "type": "object",
        "description": "Описание HTTP заголовка для точки проверки доступности правила проверки доступности В настоящее время запрещено использование заголовков отличных от Host.\n",
        "required": [
          "name",
          "value"
        ],
        "properties": {
          "name": {
            "type": "string",
            "enum": [
              "Host"
            ]
          },
          "value": {
            "type": "string",
            "description": "Значение HTTP-заголовка Host.\nЗначение проверяется на то, что каждый домен не длиннее 63 символов и написан\nв правильном формате.\nПоддерживается internationalized domain names в punycode нотации.\nЗаглавные символы не разрешены.\n",
            "pattern": "^((xn--)?\\b[a-z0-9-]{1,63}\\b\\.)+((xn--)?\\b[a-z0-9-]{2,63}\\b)$"
          }
        },
        "example": {
          "name": "Host",
          "value": "example.com"
        }
      },
      "AvailabilityCheckRuleSettings": {
        "description": "Настраиваемые параметры правила проверки доступности.\n",
        "type": "object",
        "required": [
          "validStatusCodes",
          "method"
        ],
        "properties": {
          "validStatusCodes": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "integer",
              "minimum": 100,
              "maximum": 526
            }
          },
          "method": {
            "type": "string",
            "description": "Имя HTTP-метода",
            "enum": [
              "GET",
              "HEAD"
            ]
          },
          "checkCount": {
            "description": "Количество проверок, из которых будем делать выводы.",
            "type": "integer",
            "minimum": 1,
            "maximum": 9,
            "default": 3
          },
          "successCount": {
            "description": "Количество успешных проверок из общего числа проверок checkCount. Не может быть больше, чем checkCount.\n",
            "type": "integer",
            "minimum": 1,
            "maximum": 9,
            "default": 3
          }
        },
        "example": {
          "validStatusCodes": [200, 204],
          "method": "HEAD",
          "checkCount": 1,
          "successCount": 1
        }
      },
      "DirectConnectionCollectionView": {
        "description": "Краткое представление данных о прямом подключении к платформе",
        "allOf": [
          {
            "$ref": "#/components/schemas/Object"
          },
          {
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 255,
                "minLength": 1
              },
              "customerRef": {
                "$ref": "#/components/schemas/Reference"
              },
              "location": {
                "type": "string",
                "maxLength": 255,
                "minLength": 1
              },
              "ports": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "$ref": "#/components/schemas/DirectConnectionPort"
                }
              },
              "linkNetwork": {
                "$ref": "#/components/schemas/DirectConnectionLinkNetwork"
              },
              "bgpSession": {
                "$ref": "#/components/schemas/DirectConnectionBgpSession"
              }
            },
            "required": [
              "name",
              "customerRef",
              "location",
              "ports",
              "linkNetwork",
              "bgpSession"
            ],
            "example": {
              "id": 123,
              "modelName": "DirectConnectionCollectionView",
              "links": {
                "self": "https://api.ngenix.net/api/v3/direct-connection/123"
              },
              "name": "Client Connection in M9",
              "customerRef": {
                "id": 4321,
                "link": "https://api.ngenix.net/api/v3/customer/4321"
              },
              "location": "Москва, Бутлерова, д.7, М9",
              "ports": [
                {
                  "type": "lc",
                  "bandwidth": 1000
                },
                {
                  "type": "fc",
                  "bandwidth": 1000
                }
              ],
              "linkNetwork": {
                "network": "10.0.0.0/28",
                "platformIp": "10.0.0.2",
                "customerIp": "10.0.0.3"
              },
              "bgpSession": {
                "platformASN": 205312,
                "platformPrefixes": [
                  "195.208.78.0/23"
                ],
                "customerASN": 65001,
                "customerPrefixes": [
                  "195.208.80.0/23"
                ]
              }
            }
          }
        ]
      },
      "DirectConnectionPort": {
        "description": "Данные порта",
        "properties": {
          "type": {
            "type": "string",
            "maxLength": 255,
            "minLength": 1
          },
          "bandwidth": {
            "type": "integer",
            "description": "Пропускная способность порта, Мбит/с"
          }
        },
        "required": [
          "type",
          "bandwidth"
        ]
      },
      "DirectConnectionLinkNetwork": {
        "description": "Сетевые настройки прямого подключения",
        "properties": {
          "network": {
            "type": "string",
            "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/([1-9]|[12][0-9]|3[0-2]))?$"
          },
          "platformIp": {
            "type": "string",
            "format": "ipv4"
          },
          "customerIp": {
            "type": "string",
            "format": "ipv4"
          }
        },
        "required": [
          "network",
          "platformIp",
          "customerIp"
        ]
      },
      "DirectConnectionBgpSession": {
        "description": "Свойства BGP сессии прямого подключения",
        "properties": {
          "platformASN": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "platformPrefixes": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "string",
              "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/([1-9]|[12][0-9]|3[0-2]))?$"
            }
          },
          "customerASN": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4294967295
          },
          "customerPrefixes": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "string",
              "pattern": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(/([1-9]|[12][0-9]|3[0-2]))?$"
            }
          }
        },
        "required": [
          "platformASN",
          "platformPrefixes",
          "customerASN",
          "customerPrefixes"
        ]
      },
      "DirectConnectionCollection": {
        "description": "Коллекция данных по прямым подключениям",
        "allOf": [
          {
            "$ref": "#/components/schemas/Collection"
          },
          {
            "properties": {
              "elements": {
                "items": {
                  "$ref": "#/components/schemas/DirectConnectionCollectionView"
                }
              }
            }
          }
        ]
      },
      "DirectConnection": {
        "description": "Полное представление данных о прямом подключении к платформе",
        "allOf": [
          {
            "$ref": "#/components/schemas/DirectConnectionCollectionView"
          },
          {
            "example": {
              "id": 123,
              "modelName": "DirectConnection",
              "links": {
                "self": "https://api.ngenix.net/api/v3/direct-connection/123"
              },
              "name": "Client Connection in M9",
              "customerRef": {
                "id": 4321,
                "link": "https://api.ngenix.net/api/v3/customer/4321"
              },
              "location": "Москва, Бутлерова, д.7, М9",
              "ports": [
                {
                  "type": "lc",
                  "bandwidth": 1000
                },
                {
                  "type": "fc",
                  "bandwidth": 1000
                }
              ],
              "linkNetwork": {
                "network": "10.0.0.0/28",
                "platformIp": "10.0.0.2",
                "customerIp": "10.0.0.3"
              },
              "bgpSession": {
                "platformASN": 205312,
                "platformPrefixes": [
                  "195.208.78.0/23"
                ],
                "customerASN": 65001,
                "customerPrefixes": [
                  "195.208.80.0/23"
                ]
              }
            }
          }
        ]
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "x-bearerInfoFunc": "ncdn.auth.silent_id_token_decode"
      },
      "basicAuth": {
        "type": "http",
        "scheme": "basic",
        "x-basicInfoFunc": "ncdn.auth.silent_basic_auth"
      }
    }
  }
}
