---
canonical: https://docs.ideco.ru/v22/ru/ngfw/api/reports-designer-api
---



# Конструктор отчетов

::: page-constructor
blocks:
  - type: content-layout-block
    textContent:
      buttons:
        - text: Классический VCE
          theme: action
          width: 'auto'
        - text: Высокопроизводительный VCE
          theme: outlined
          url: https://docs.ideco.ru/api/vpp-v22/ru/ngfw/stat-api/report-designer/
          width: 'auto'
        - text: Документация
          theme: outlined
          url: https://docs.ideco.ru/v22/ru/ngfw/settings/reports/report-designer
          width: 'auto'
    resetPaddings: false
    textWidth: l
    size: m
    centered: false
:::

### Управление отправкой через SMTP-сервера

{% cut "Получение настроек SMTP-сервера" %}{#poluchenie-nastroek-smtp-servera}

```
GET /reports/custom_smtp_settings
```

**Ответ на успешный запрос:**

```json5
{
    "mail_delivery_method": "default" | "custom_smtp",
    "smtp_server": "string",
    "port": "integer" | null,
    "use_tls": "none" | "tls" | "starttls",
    "auth_enabled": "bool",
    "username": "string",
    "password": "string",
    "mail_from": "string",
    "ehlo": "string",
    "cert": "string"
}
```

* `mail_delivery_method` - метод отправки отчетов. Может быть `default` или `custom_smtp`;
* `smtp_server` - IP-адрес SMTP-сервера или его домен;
* `port` - порт SMTP-сервера;
* `use_tls` - протокол шифрования. Допустимые значения:
  * `tls` - сразу устанавливает шифрованное соединение;
  * `starttls` - начинает без шифрования, затем переключается на шифрованное соединение;
  * `none` - без шифрования.
* `auth_enabled` - статус аутентификации SMTP-сервера:
  * `true` - включен;
  * `false` - выключен.
* `username` - имя пользователя, максимальная длина - 254 символа. Используется, если `auth_enabled` равен `true`. Может быть пустой;
* `password` - пароль пользователя, максимальная длина - 254 символа. Используется, если `auth_enabled` равен `true`. Может быть пустой;
* `mail_from` - адрес, от имени которого будут отправляться письма. Максимальная длина - 254 символа;
* `ehlo` - домен или адрес, которые устройство указывает SMTP-серверу в команде EHLO. Максимальная длина - 254 символа, может быть пустой;
* `cert` - сертификат SMTP-сервера. Строка не ограничена по длине, может быть пустой.

{% endcut %}

{% cut "Изменение настроек SMTP-сервера" %}{#izmenenie-nastroek-smtp-servera}

```
PATCH /reports/custom_smtp_settings
```

**Json-тело запроса:**

```json5
{
    "mail_delivery_method": "default" | "custom_smtp",
    "smtp_server": "string",
    "port": "integer" | null,
    "use_tls": "none" | "tls" | "starttls",
    "auth_enabled": "bool",
    "username": "string",
    "password": "string",
    "mail_from": "string",
    "ehlo": "string",
    "cert": "string"
}
```

* `mail_delivery_method` - метод отправки отчетов. Может быть `default` или `custom_smtp`;
* `smtp_server` - IP-адрес SMTP-сервера или его домен;
* `port` - порт SMTP-сервера;
* `use_tls` - протокол шифрования. Допустимые значения:
  * `tls` - сразу устанавливает шифрованное соединение;
  * `starttls` - начинает без шифрования, затем переключается на шифрованное соединение;
  * `none` - без шифрования.
* `auth_enabled` - статус аутентификации SMTP-сервера:
  * `true` - включен;
  * `false` - выключен.
* `username` - имя пользователя, максимальная длина - 254 символа. Используется, если `auth_enabled` равен `true`. Может быть пустой;
* `password` - пароль пользователя, максимальная длина - 254 символа. Используется, если `auth_enabled` равен `true`. Может быть пустой;
* `mail_from` - адрес, от имени которого будут отправляться письма. Максимальная длина - 254 символа;
* `ehlo` - домен или адрес, которые устройство указывает SMTP-серверу в команде EHLO. Максимальная длина - 254 символа, может быть пустой;
* `cert` - сертификат SMTP-сервера. Строка не ограничена по длине, может быть пустой.

**Ответ на успешный запрос:** 200 OK

{% endcut %}

{% cut "Проверка настройки и отправка тестового письма" %}{#proverka-nastroyki-i-otpravka-testovogo-pisma}

```
POST /reports/send_test_email
```

**Json-тело запроса:**

```json5
{
    "address": "string"
}
```

* `address` - e-mail получателя.

**Ответ на успешный запрос:**

```json5
{
    "error": true | false,
    "info": "string"
}
```

* `error` - статус ошибки:
  * `true` - ошибка при проверке;
  * `false` - нет ошибок.
* `info` - текст ошибки, полученный при проверке настроек SMTP-сервера. Возможные варианты:
  * `"Задача отправки письма уже запущена."` - задача отправки письма запущена, но еще не успела завершиться;
  * `"Настройки корректны."` - ошибок нет;
  * `"Ошибка EHLO: {error_message}"` - сообщение об ошибке EHLO;
  * `"Ошибка STARTTLS: {error_message}"`- сообщение об ошибке STARTTLS;
  * `"Ошибка аутентификации: {error_message}"` - сообщение об ошибке аутентификации.

{% endcut %}

### Управление шаблонами отчетов

{% cut "Получение списка диапазонов" %}{#poluchenie-spiska-diapazonov}

```
GET /reports/scopes
```

**Ответ на успешный запрос:**

```json5
[
    {
        "id": "string",
        "title": "string"
    },
    ...
]
```

* `id` - идентификатор диапазона. Допустимые значения:
  * `all_users` - всем пользователям;
  * `match_users` - определенным пользователям;
  * `all_groups` - всем группам;
  * `match_groups` - определенным группам;
  * `all_protocols` - всем протоколам;
  * `match_protocols` - определенным протоколам;
  * `all_categories` - всем категориям;
  * `match_categories` - определенным категориям;
  * `all_sites` - всем сайтам;
  * `match_sites` - определенным сайтам;
  * `match_ldap_filters` - определенным LDAP-фильтрам.
* `title` - название диапазона на языке, выбранном администратором в качестве общесистемного.

{% endcut %}

{% cut "Получение списка виджетов" %}{#poluchenie-spiska-vidzhetov}

```
GET /reports/widgets/<scope>
```

* `scope` - идентификатор диапазона отчета. Допустимые значения:
  * `all_users` - всем пользователям;
  * `match_users` - определенным пользователям;
  * `all_groups` - всем группам;
  * `match_groups` - определенным группам;
  * `all_protocols` - всем протоколам;
  * `match_protocols` - определенным протоколам;
  * `all_categories` - всем категориям;
  * `match_categories` - определенным категориям;
  * `all_sites` - всем сайтам;
  * `match_sites` - определенным сайтам;
  * `match_ldap_filters` - определенным LDAP-фильтрам.

**Ответ на успешный запрос:**

```json5
[
    {
        "id": "string",
        "title": "string"
    },
    ...
]
```

* `id` - идентификатор виджета. Набор доступных виджетов зависит от значения `scope`:
  * для `all_users`:
    * `top_users_by_traffic` - топ пользователей по трафику;
    * `top_users_by_requests` - топ пользователей по запросам;
    * `auth_journal` - журнал авторизации;
    * `traffic_amount` - количество трафика;
    * `requests_count` - количество запросов;
    * `top_categories_by_traffic` - топ категорий по трафику;
    * `top_categories_by_requests` - топ категорий по запросам;
    * `top_protocols_by_traffic` - топ протоколов по трафику;
    * `top_protocols_by_requests` - топ протоколов по запросам;
    * `top_sites_by_traffic` - топ сайтов по трафику;
    * `top_sites_by_requests` - топ сайтов по запросам;
    * `top_blocked_sites` - топ заблокированных сайтов;
    * `top_blocked_protocols` - топ заблокированных протоколов;
    * `top_blocked_categories` - топ заблокированных категорий.
  * для `match_users`:
    * `auth_journal` - журнал авторизации;
    * `traffic_amount` - количество трафика;
    * `requests_count` - количество запросов;
    * `top_categories_by_traffic` - топ категорий по трафику;
    * `top_categories_by_requests` - топ категорий по запросам;
    * `top_protocols_by_traffic` - топ протоколов по трафику;
    * `top_protocols_by_requests` - топ протоколов по запросам;
    * `top_sites_by_traffic` - топ сайтов по трафику;
    * `top_sites_by_requests` - топ сайтов по запросам;
    * `top_blocked_sites` - топ заблокированных сайтов;
    * `top_blocked_protocols` - топ заблокированных протоколов;
    * `top_blocked_categories` - топ заблокированных категорий;
    * `visited_addresses` - список посещенных адресов.
  * для `all_groups` и `match_groups`:
    * `traffic_amount` - количество трафика;
    * `requests_count` - количество запросов;
    * `top_users_by_traffic` - топ пользователей по трафику;
    * `top_users_by_requests` - топ пользователей по запросам;
    * `top_categories_by_traffic` - топ категорий по трафику;
    * `top_categories_by_requests` - топ категорий по запросам;
    * `top_protocols_by_traffic` - топ протоколов по трафику;
    * `top_protocols_by_requests` - топ протоколов по запросам;
    * `top_sites_by_traffic` - топ сайтов по трафику;
    * `top_sites_by_requests` - топ сайтов по запросам;
    * `top_blocked_sites` - топ заблокированных сайтов;
    * `top_blocked_protocols` - топ заблокированных протоколов;
    * `top_blocked_categories` - топ заблокированных категорий.
  * для `all_protocols`, `match_protocols`, `all_categories`, `match_categories`, `all_sites` и `match_sites`:
    * `traffic_amount` - количество трафика;
    * `requests_count` - количество запросов;
    * `top_users_by_traffic` - топ пользователей по трафику;
    * `top_users_by_requests` - топ пользователей по запросам;
    * `blocks_count` - блокировки.
* `title` - название виджета на языке, выбранном администратором в качестве общесистемного.

{% endcut %}

{% cut "Получение списка шаблонов" %}{#poluchenie-spiska-shablonov}

```
GET /reports/templates
```

**Ответ на успешный запрос:**

```json5
[
    {
        "id": "string",
        "title": "string",
        "interval": {
            "type": "relative" | "absolute",
            "relative_params": {
                "period": "today" | "yesterday" | "cur_week" | "prev_week" | "cur_month" | "prev_month"
            },
            "absolute_params": {
                "start": "YYYYmmddHHMMSS",
                "end": "YYYYmmddHHMMSS"
            },
            "span_params": {
                "span_unit": "hour" | "day" | "week" | "month" | "quarter" | "year",
                "span_value": "integer"
            }
        },
        "widgets": [
            {
                "scope": "string",
                "widget": "string",
                "items": ["string"],
                "style": {
                    "style": "table" | "chart",
                    "table_params": {
                        "lines": "5" | "10" | "20" | "50" | "100" | "-1"
                    },
                    "chart_params": {
                        "segments": "5" | "10"
                    },
                    "units": null | "kb" | "mb" | "gb"
                }
            },
            ...
        ]
    },
    ...
]
```

* `id` - идентификатор шаблона;
* `title` - название шаблона. Максимальная длина - 42 символа;
* `interval` - настройка интервала времени отчета:
  * `type` - тип временного диапазона:
    * `relative` - относительный (относительно текущего момента времени);
    * `absolute` - абсолютный (строго заданный диапазон времени).
  * `relative_params` - настройки относительного временного диапазона, если `type` равен `relative`, в противном случае `null`:
    * `period` - размерность периода диапазона:
      * `today` - сегодняшний день (от 00:00 включительно текущего дня по настоящее время);
      * `yesterday` - вчерашний день (с 00:00 включительно прошлого дня до 00:00 настоящего дня);
      * `cur_week` - текущая неделя (с 00:00 включительно понедельника настоящей недели по настоящее время);
      * `prev_week` - прошлая неделя (с 00:00 включительно понедельника прошлой недели по 00:00 понедельника настоящей недели);
      * `cur_month` - текущий месяц (с 00:00 включительно 01-го числа настоящего месяца по настоящее время);
      * `prev_month` - прошлый месяц (с 00:00 включительно 01-го числа прошлого месяца по 00:00 01-го числа настоящего месяца).
  * `absolute_params` - настройки абсолютного временного диапазона, если `type` равен `absolute`, в противном случае `null`:
    * `start` - начало временного диапазона, целое положительное число в формате `YYYYmmddHHMMSS`;
    * `end` - конец временного диапазона, целое положительное число в формате `YYYYmmddHHMMSS`.
  * `span_params` - параметры временного интервала для группировки данных (необязательный параметр):
    * `span_unit` - размерность периода временного интервала для группировки данных. Допустимые значения: `hour`, `day`, `week`, `month`, `quarter`, `year`;
    * `span_value` - величина временного интервала для группировки данных в указанных единицах.
* `widgets` - список виджетов в шаблоне отчета:
  * `scope` - идентификатор диапазона. Допустимые значения:
    * `all_users` - всем пользователям;
    * `match_users` - определенным пользователям;
    * `all_groups` - всем группам;
    * `match_groups` - определенным группам;
    * `all_protocols` - всем протоколам;
    * `match_protocols` - определенным протоколам;
    * `all_categories` - всем категориям;
    * `match_categories` - определенным категориям;
    * `all_sites` - всем сайтам;
    * `match_sites` - определенным сайтам;
    * `match_ldap_filters` - определенным LDAP-фильтрам.
  * `widget` - идентификатор виджета. Набор доступных виджетов зависит от значения `scope`:
    * для `all_users`:
      * `top_users_by_traffic` - топ пользователей по трафику;
      * `top_users_by_requests` - топ пользователей по запросам;
      * `auth_journal` - журнал авторизации;
      * `traffic_amount` - количество трафика;
      * `requests_count` - количество запросов;
      * `top_categories_by_traffic` - топ категорий по трафику;
      * `top_categories_by_requests` - топ категорий по запросам;
      * `top_protocols_by_traffic` - топ протоколов по трафику;
      * `top_protocols_by_requests` - топ протоколов по запросам;
      * `top_sites_by_traffic` - топ сайтов по трафику;
      * `top_sites_by_requests` - топ сайтов по запросам;
      * `top_blocked_sites` - топ заблокированных сайтов;
      * `top_blocked_protocols` - топ заблокированных протоколов;
      * `top_blocked_categories` - топ заблокированных категорий.
    * для `match_users`:
      * `auth_journal` - журнал авторизации;
      * `traffic_amount` - количество трафика;
      * `requests_count` - количество запросов;
      * `top_categories_by_traffic` - топ категорий по трафику;
      * `top_categories_by_requests` - топ категорий по запросам;
      * `top_protocols_by_traffic` - топ протоколов по трафику;
      * `top_protocols_by_requests` - топ протоколов по запросам;
      * `top_sites_by_traffic` - топ сайтов по трафику;
      * `top_sites_by_requests` - топ сайтов по запросам;
      * `top_blocked_sites` - топ заблокированных сайтов;
      * `top_blocked_protocols` - топ заблокированных протоколов;
      * `top_blocked_categories` - топ заблокированных категорий;
      * `visited_addresses` - список посещенных адресов.
    * для `all_groups` и `match_groups`:
      * `traffic_amount` - количество трафика;
      * `requests_count` - количество запросов;
      * `top_users_by_traffic` - топ пользователей по трафику;
      * `top_users_by_requests` - топ пользователей по запросам;
      * `top_categories_by_traffic` - топ категорий по трафику;
      * `top_categories_by_requests` - топ категорий по запросам;
      * `top_protocols_by_traffic` - топ протоколов по трафику;
      * `top_protocols_by_requests` - топ протоколов по запросам;
      * `top_sites_by_traffic` - топ сайтов по трафику;
      * `top_sites_by_requests` - топ сайтов по запросам;
      * `top_blocked_sites` - топ заблокированных сайтов;
      * `top_blocked_protocols` - топ заблокированных протоколов;
      * `top_blocked_categories` - топ заблокированных категорий.
    * для `all_protocols`, `match_protocols`, `all_categories`, `match_categories`, `all_sites` и `match_sites`:
      * `traffic_amount` - количество трафика;
      * `requests_count` - количество запросов;
      * `top_users_by_traffic` - топ пользователей по трафику;
      * `top_users_by_requests` - топ пользователей по запросам;
      * `blocks_count` - блокировки.
  * `items` - список уникальных идентификаторов объектов, входящих в отчет. Тип идентификатора зависит от значения `scope`:
    * `all_users`, `all_groups`, `all_protocols`, `all_categories`, `all_sites` - объект **Любой**;
    * `match_users` - объект **Пользователь**;
    * `match_groups` - объект **Группа**;
    * `match_protocols` - идентификатор протокола;
    * `match_categories` - идентификатор группы;
    * `match_sites` - идентификатор сайта.
  * `style` - настройка отображения виджета. Принимает значение `null` для виджета `auth_journal` и `events_journal` при `scope` равном `all_users` или `match_users`. Для всех остальных комбинаций `scope` и `widget` является объектом:
    * `style` - стиль отображения:
      * `table` - таблица;
      * `chart` - диаграмма.
    * `table_params` - настройки таблицы, если `style` равен `table`, в противном случае `null`:
      * `lines` - количество строк в таблице, число. Значение `-1` - все.
    * `chart_params` - настройки диаграммы, если `style` равен `chart`, в противном случае `null`:
      * `segments` - количество сегментов в диаграмме, число.
    * `units` - единицы измерения. Поле может быть равно `null`, если неприменимо к виджету:
      * `kb` - килобайты;
      * `mb` - мегабайты;
      * `gb` - гигабайты.

{% endcut %}

{% cut "Создание шаблона" %}{#sozdanie-shablona}

```
POST /reports/templates
```

**Json-тело запроса:**

* `title` - название шаблона. Максимальная длина - 42 символа;
* `interval` - настройка интервала времени отчета:
  * `type` - тип временного диапазона:
    * `relative` - относительный (относительно текущего момента времени);
    * `absolute` - абсолютный (строго заданный диапазон времени).
  * `relative_params` - настройки относительного временного диапазона, если `type` равен `relative`, в противном случае `null`:
    * `period` - размерность периода диапазона:
      * `today` - сегодняшний день (от 00:00 включительно текущего дня по настоящее время);
      * `yesterday` - вчерашний день (с 00:00 включительно прошлого дня до 00:00 настоящего дня);
      * `cur_week` - текущая неделя (с 00:00 включительно понедельника настоящей недели по настоящее время);
      * `prev_week` - прошлая неделя (с 00:00 включительно понедельника прошлой недели по 00:00 понедельника настоящей недели);
      * `cur_month` - текущий месяц (с 00:00 включительно 01-го числа настоящего месяца по настоящее время);
      * `prev_month` - прошлый месяц (с 00:00 включительно 01-го числа прошлого месяца по 00:00 01-го числа настоящего месяца).
  * `absolute_params` - настройки абсолютного временного диапазона, если `type` равен `absolute`, в противном случае `null`:
    * `start` - начало временного диапазона, целое положительное число в формате `YYYYmmddHHMMSS`;
    * `end` - конец временного диапазона, целое положительное число в формате `YYYYmmddHHMMSS`.
  * `span_params` - параметры временного интервала для группировки данных (необязательный параметр):
    * `span_unit` - размерность периода временного интервала для группировки данных. Допустимые значения: `hour`, `day`, `week`, `month`, `quarter`, `year`;
    * `span_value` - величина временного интервала для группировки данных в указанных единицах.
* `widgets` - список виджетов в шаблоне отчета:
  * `scope` - идентификатор диапазона. Допустимые значения:
    * `all_users` - всем пользователям;
    * `match_users` - определенным пользователям;
    * `all_groups` - всем группам;
    * `match_groups` - определенным группам;
    * `all_protocols` - всем протоколам;
    * `match_protocols` - определенным протоколам;
    * `all_categories` - всем категориям;
    * `match_categories` - определенным категориям;
    * `all_sites` - всем сайтам;
    * `match_sites` - определенным сайтам;
    * `match_ldap_filters` - определенным LDAP-фильтрам.
  * `widget` - идентификатор виджета. Набор доступных виджетов зависит от значения `scope`:
    * для `all_users`:
      * `top_users_by_traffic` - топ пользователей по трафику;
      * `top_users_by_requests` - топ пользователей по запросам;
      * `auth_journal` - журнал авторизации;
      * `traffic_amount` - количество трафика;
      * `requests_count` - количество запросов;
      * `top_categories_by_traffic` - топ категорий по трафику;
      * `top_categories_by_requests` - топ категорий по запросам;
      * `top_protocols_by_traffic` - топ протоколов по трафику;
      * `top_protocols_by_requests` - топ протоколов по запросам;
      * `top_sites_by_traffic` - топ сайтов по трафику;
      * `top_sites_by_requests` - топ сайтов по запросам;
      * `top_blocked_sites` - топ заблокированных сайтов;
      * `top_blocked_protocols` - топ заблокированных протоколов;
      * `top_blocked_categories` - топ заблокированных категорий.
    * для `match_users`:
      * `auth_journal` - журнал авторизации;
      * `traffic_amount` - количество трафика;
      * `requests_count` - количество запросов;
      * `top_categories_by_traffic` - топ категорий по трафику;
      * `top_categories_by_requests` - топ категорий по запросам;
      * `top_protocols_by_traffic` - топ протоколов по трафику;
      * `top_protocols_by_requests` - топ протоколов по запросам;
      * `top_sites_by_traffic` - топ сайтов по трафику;
      * `top_sites_by_requests` - топ сайтов по запросам;
      * `top_blocked_sites` - топ заблокированных сайтов;
      * `top_blocked_protocols` - топ заблокированных протоколов;
      * `top_blocked_categories` - топ заблокированных категорий;
      * `visited_addresses` - список посещенных адресов.
    * для `all_groups` и `match_groups`:
      * `traffic_amount` - количество трафика;
      * `requests_count` - количество запросов;
      * `top_users_by_traffic` - топ пользователей по трафику;
      * `top_users_by_requests` - топ пользователей по запросам;
      * `top_categories_by_traffic` - топ категорий по трафику;
      * `top_categories_by_requests` - топ категорий по запросам;
      * `top_protocols_by_traffic` - топ протоколов по трафику;
      * `top_protocols_by_requests` - топ протоколов по запросам;
      * `top_sites_by_traffic` - топ сайтов по трафику;
      * `top_sites_by_requests` - топ сайтов по запросам;
      * `top_blocked_sites` - топ заблокированных сайтов;
      * `top_blocked_protocols` - топ заблокированных протоколов;
      * `top_blocked_categories` - топ заблокированных категорий.
    * для `all_protocols`, `match_protocols`, `all_categories`, `match_categories`, `all_sites` и `match_sites`:
      * `traffic_amount` - количество трафика;
      * `requests_count` - количество запросов;
      * `top_users_by_traffic` - топ пользователей по трафику;
      * `top_users_by_requests` - топ пользователей по запросам;
      * `blocks_count` - блокировки.
  * `items` - список уникальных идентификаторов объектов, входящих в отчет. Тип идентификатора зависит от значения `scope`:
    * `all_users`, `all_groups`, `all_protocols`, `all_categories`, `all_sites` - объект **Любой**;
    * `match_users` - объект **Пользователь**;
    * `match_groups` - объект **Группа**;
    * `match_protocols` - идентификатор протокола;
    * `match_categories` - идентификатор группы;
    * `match_sites` - идентификатор сайта.
  * `style` - настройка отображения виджета. Принимает значение `null` для виджета `auth_journal` и `events_journal` при `scope` равном `all_users` или `match_users`. Для всех остальных комбинаций `scope` и `widget` является объектом:
    * `style` - стиль отображения:
      * `table` - таблица;
      * `chart` - диаграмма.
    * `table_params` - настройки таблицы, если `style` равен `table`, в противном случае `null`:
      * `lines` - количество строк в таблице, число. Значение `-1` - все.
    * `chart_params` - настройки диаграммы, если `style` равен `chart`, в противном случае `null`:
      * `segments` - количество сегментов в диаграмме, число.
    * `units` - единицы измерения. Поле может быть равно `null`, если неприменимо к виджету:
      * `kb` - килобайты;
      * `mb` - мегабайты;
      * `gb` - гигабайты.

**Ответ на успешный запрос:**

```json5
{
    "id": "string"
}
```

* `id` - идентификатор созданного шаблона.

{% endcut %}

{% cut "Изменение настроек шаблона" %}{#izmenenie-nastroek-shablona}

```
PATCH /reports/templates/<id шаблона>
```

* `id` - идентификатор шаблона.

**Json-тело запроса (все или некоторые поля):**

* `title` - название шаблона. Максимальная длина - 42 символа;
* `interval` - настройка интервала времени отчета:
  * `type` - тип временного диапазона:
    * `relative` - относительный (относительно текущего момента времени);
    * `absolute` - абсолютный (строго заданный диапазон времени).
  * `relative_params` - настройки относительного временного диапазона, если `type` равен `relative`, в противном случае `null`:
    * `period` - размерность периода диапазона:
      * `today` - сегодняшний день (от 00:00 включительно текущего дня по настоящее время);
      * `yesterday` - вчерашний день (с 00:00 включительно прошлого дня до 00:00 настоящего дня);
      * `cur_week` - текущая неделя (с 00:00 включительно понедельника настоящей недели по настоящее время);
      * `prev_week` - прошлая неделя (с 00:00 включительно понедельника прошлой недели по 00:00 понедельника настоящей недели);
      * `cur_month` - текущий месяц (с 00:00 включительно 01-го числа настоящего месяца по настоящее время);
      * `prev_month` - прошлый месяц (с 00:00 включительно 01-го числа прошлого месяца по 00:00 01-го числа настоящего месяца).
  * `absolute_params` - настройки абсолютного временного диапазона, если `type` равен `absolute`, в противном случае `null`:
    * `start` - начало временного диапазона, целое положительное число в формате `YYYYmmddHHMMSS`;
    * `end` - конец временного диапазона, целое положительное число в формате `YYYYmmddHHMMSS`.
  * `span_params` - параметры временного интервала для группировки данных (необязательный параметр):
    * `span_unit` - размерность периода временного интервала для группировки данных. Допустимые значения: `hour`, `day`, `week`, `month`, `quarter`, `year`;
    * `span_value` - величина временного интервала для группировки данных в указанных единицах.
* `widgets` - список виджетов в шаблоне отчета:
  * `scope` - идентификатор диапазона. Допустимые значения:
    * `all_users` - всем пользователям;
    * `match_users` - определенным пользователям;
    * `all_groups` - всем группам;
    * `match_groups` - определенным группам;
    * `all_protocols` - всем протоколам;
    * `match_protocols` - определенным протоколам;
    * `all_categories` - всем категориям;
    * `match_categories` - определенным категориям;
    * `all_sites` - всем сайтам;
    * `match_sites` - определенным сайтам;
    * `match_ldap_filters` - определенным LDAP-фильтрам.
  * `widget` - идентификатор виджета. Набор доступных виджетов зависит от значения `scope`:
    * для `all_users`:
      * `top_users_by_traffic` - топ пользователей по трафику;
      * `top_users_by_requests` - топ пользователей по запросам;
      * `auth_journal` - журнал авторизации;
      * `traffic_amount` - количество трафика;
      * `requests_count` - количество запросов;
      * `top_categories_by_traffic` - топ категорий по трафику;
      * `top_categories_by_requests` - топ категорий по запросам;
      * `top_protocols_by_traffic` - топ протоколов по трафику;
      * `top_protocols_by_requests` - топ протоколов по запросам;
      * `top_sites_by_traffic` - топ сайтов по трафику;
      * `top_sites_by_requests` - топ сайтов по запросам;
      * `top_blocked_sites` - топ заблокированных сайтов;
      * `top_blocked_protocols` - топ заблокированных протоколов;
      * `top_blocked_categories` - топ заблокированных категорий.
    * для `match_users`:
      * `auth_journal` - журнал авторизации;
      * `traffic_amount` - количество трафика;
      * `requests_count` - количество запросов;
      * `top_categories_by_traffic` - топ категорий по трафику;
      * `top_categories_by_requests` - топ категорий по запросам;
      * `top_protocols_by_traffic` - топ протоколов по трафику;
      * `top_protocols_by_requests` - топ протоколов по запросам;
      * `top_sites_by_traffic` - топ сайтов по трафику;
      * `top_sites_by_requests` - топ сайтов по запросам;
      * `top_blocked_sites` - топ заблокированных сайтов;
      * `top_blocked_protocols` - топ заблокированных протоколов;
      * `top_blocked_categories` - топ заблокированных категорий;
      * `visited_addresses` - список посещенных адресов.
    * для `all_groups` и `match_groups`:
      * `traffic_amount` - количество трафика;
      * `requests_count` - количество запросов;
      * `top_users_by_traffic` - топ пользователей по трафику;
      * `top_users_by_requests` - топ пользователей по запросам;
      * `top_categories_by_traffic` - топ категорий по трафику;
      * `top_categories_by_requests` - топ категорий по запросам;
      * `top_protocols_by_traffic` - топ протоколов по трафику;
      * `top_protocols_by_requests` - топ протоколов по запросам;
      * `top_sites_by_traffic` - топ сайтов по трафику;
      * `top_sites_by_requests` - топ сайтов по запросам;
      * `top_blocked_sites` - топ заблокированных сайтов;
      * `top_blocked_protocols` - топ заблокированных протоколов;
      * `top_blocked_categories` - топ заблокированных категорий.
    * для `all_protocols`, `match_protocols`, `all_categories`, `match_categories`, `all_sites` и `match_sites`:
      * `traffic_amount` - количество трафика;
      * `requests_count` - количество запросов;
      * `top_users_by_traffic` - топ пользователей по трафику;
      * `top_users_by_requests` - топ пользователей по запросам;
      * `blocks_count` - блокировки.
  * `items` - список уникальных идентификаторов объектов, входящих в отчет. Тип идентификатора зависит от значения `scope`:
    * `all_users`, `all_groups`, `all_protocols`, `all_categories`, `all_sites` - объект **Любой**;
    * `match_users` - объект **Пользователь**;
    * `match_groups` - объект **Группа**;
    * `match_protocols` - идентификатор протокола;
    * `match_categories` - идентификатор группы;
    * `match_sites` - идентификатор сайта.
  * `style` - настройка отображения виджета. Принимает значение `null` для виджета `auth_journal` и `events_journal` при `scope` равном `all_users` или `match_users`. Для всех остальных комбинаций `scope` и `widget` является объектом:
    * `style` - стиль отображения:
      * `table` - таблица;
      * `chart` - диаграмма.
    * `table_params` - настройки таблицы, если `style` равен `table`, в противном случае `null`:
      * `lines` - количество строк в таблице, число. Значение `-1` - все.
    * `chart_params` - настройки диаграммы, если `style` равен `chart`, в противном случае `null`:
      * `segments` - количество сегментов в диаграмме, число.
    * `units` - единицы измерения. Поле может быть равно `null`, если неприменимо к виджету:
      * `kb` - килобайты;
      * `mb` - мегабайты;
      * `gb` - гигабайты.

**Ответ на успешный запрос:** 200 OK

{% endcut %}

{% cut "Удаление шаблона" %}{#udalenie-shablona}

```
DELETE /reports/templates/<id шаблона>
```

* `id` - идентификатор шаблона.

**Ответ на успешный запрос:** 200 OK

{% endcut %}

{% cut "Просмотр отчета, сформированного из шаблона" %}{#prosmotr-otcheta-sformirovannogo-iz-shablona}

```
GET /reports/templates/<id шаблона>/view
```

* `id` - идентификатор шаблона.

**Ответ на успешный запрос:** PDF-файл отчета.

{% endcut %}

{% cut "Скачивание отчета, сформированного из шаблона" %}{#skachivanie-otcheta-sformirovannogo-iz-shablona}

```
GET /reports/templates/<id шаблона>/download?format_type=PDF|CSVWithNames
```

* `id` - идентификатор шаблона;
* `format_type` - формат данных. Поддерживается `CSVWithNames` и `PDF`, по умолчанию `PDF`. Если указано значение `CSVWithNames`, то каждая отдельная таблица в отчете сохраняется в формате `.csv`, и все они упаковываются в архив `.zip`. В архив также добавляется файл `index.txt` с описанием таблиц в файлах.

**Ответ на успешный запрос:** файл отчета в формате `.pdf` или формате `.zip` в зависимости от параметра `format_type`.

{% endcut %}

{% cut "Отправка отчета по email" %}{#otpravka-otcheta-po-email}

```
POST /reports/templates/<id шаблона>/send
```

* `id` - идентификатор шаблона.

**Json-тело запроса:**

```json5
{
    "address": "string"
}
```

* `address` - адрес электронной почты для отправки отчета.

**Ответ на успешный запрос:** 200 OK

{% endcut %}
