Общие сведения

Продукт «Служба управления конфигурациями "Осмакс"» предоставляет RESTful API для:

  • логического модуля «Каталог конфигураций» — реализует управление конфигурациями и формулами модуля координации;

  • логического модуля «Инвентаризация» — реализует управление инвентаризацией устройств.

Авторизация

Для доступа к конечным точкам (endpoints) API необходимо в заголовке HTTP-запроса Authorization предоставить билет (ticket) Kerberos.

Чтобы получить билет (ticket) Kerberos, выполните шаги:

  1. Убедитесь, что на машине, с которой вы будете выполнять вызов API-методов, настроено окружение для аутентификации Kerberos — установлен и настроен Kerberos-клиент.

  1. Получите билет (ticket) Kerberos, используя команду kinit.

    kinit -v <имя пользователя>@<имя домена>

    Пример команды:

    kinit -v vivanov@LCM.TERRA.INNO.TECH

    Пример вывода:

    Placing tickets for `vivanov@LCM.TERRA.INNO.TECH` in cache `API:AS8FAF0V-AS4S-V39T-T4ZE-12DE34N4N77JA`
  2. Для проверки валидности полученного билета (ticket) отобразите список кэшированных билетов (tickets) Kerberos, выполнив команду klist.

    Пример вывода:

    Credentials cache: API:EC59A7DE-43A4-43E3-A349-56F92E31A71D
            Principal: aarshavin@LCM.TERRA.INNO.TECH
    
      Issued                Expires               Principal
    Feb 13 12:51:40 2024  Feb 13 22:51:40 2024  krbtgt/LCM.TERRA.INNO.TECH@LCM.TERRA.INNO.TECH
    Feb 13 12:51:47 2024  Feb 13 22:51:40 2024  HTTP/staging-lcm.terra.inno.tech@LCM.TERRA.INNO.TECHH

Чтобы подставить значение полученного билета (ticket) в заголовок Authorization при вызове API-метода, используйте утилиту cURL.

Ниже рассмотрен вызов API-метода на примере getConfigurationList — получение списка конфигураций:

curl -x POST --location "https://"staging-lcm-terra-inno-tech/api/v1/configurations/search"
-Н "Content-type: application/json" --negotiate --user : | jq

Где:

  • curl — утилита командной строки, которая позволяет отправлять HTTP-запросы на сервер и получать ответы;

  • -x POST — флаг, указывающий метод запроса, который используется для отправки данных на сервер;

  • --location — флаг, указывающий curl на необходимость следовать перенаправлениям, если сервер возвращает HTTP-код 3xx;

  • https://staging-rt-terra-inno-tech — URL-адрес сервера, на который будет отправлен запрос;

  • -H "Content-type: application/json" — флаг, который добавляет заголовок к запросу. В данном примере заголовок Content-type устанавливается в значение application/json, что указывает на то, что тело запроса будет передано в формате JSON;

  • --negotiate — флаг, указывающий на использование аутентификации по протоколу Kerberos (Negotiate);

  • --user : — флаг, который определяет имя пользователя для аутентификации. Двоеточие в сочетании с флагом --negotiate указывает curl, что необходимо получить билет (ticket) для указанного хоста от имени данного пользователя и подставить в заголовок Authorization.

Пример ответа:

{
  "configurations": [
    {
      "id": 5467,
      "displayName": "Яндекс браузер",
      "description": "Браузер от компании Яндекс",
      "fullDescription": "Браузер от компании Яндекс.(...)",
      "guide": "Если вы не сделали его основным, при его запуске может появляться окно Сделать этот браузер основным?  Чтобы окно больше не показывалось, включите опцию Больше не спрашивать и нажмите Не сейчас.",
      "isApplication": true,
      "tags": [
        "Браузер"
      ],
      "categories": [
        "Сеть"
      ],
      "createdAt": "2023-08-27T09:37:40.000Z",
      "updatedAt": "2023-08-27T09:37:40.000Z",
      "createdBy": "vivanov@domain.local",
      "updatedBy": "vivanov@domain.local",
      "iconPath": "icons/123321-7cb06ef0-87ab-4a60-b20e-33c2d9725a09-open-office.png",
      "imagesPaths": [
        "images/123321-7cb06ef0-87ab-4a60-b20e-33c2d9725a09-open-office-screen03.jpg"
      ],
      "defaultVersion": 1234,
      "isActive": true
    }
  ],
  "meta": {
    "totalRecords": 1729,
    "pageSize": 20,
    "totalPages": 87,
    "currentPage": 2,
    "hasNext": true,
    "hasPrev": true
  }
}

Если при установке продукта в конфигурационном файле бэкенда application.properties каталога /opt/inno-lcm-core задан параметр lcm.authorization.user-groups-white-list, доступ будет разрешен только пользователям, входящим в указанные группы (см. раздел «Предварительная конфигурация бэкенда. Параметры настройки авторизации и аутентификация»).

API логического модуля «Каталог конфигураций»

API-интерфейс модуля «Каталог конфигураций» разбит на несколько библиотек согласно назначению операций:

Управление конфигурациями

Для управления конфигурациями используются методы:

Метод getConfigurationById

Получение конфигурации по идентификатору.

GET /v1/configurations/{configurationId}
Параметр пути
Имя Описание Обязательный Тип Пример

configurationId

Идентификатор конфигурации

Да

integer(int64)

5467

Ответы
Код Сообщение Тип данных / объект схемы (DTO) Пример

200

Набор параметров конфигурации

{
  "updatedBy": "vivanov@domain.local",
  "displayName": "Яндекс браузер",
  "packageId": "5af2573a-f848-4db3-91e2-8b416d9cd833",
  "description": "Браузер от компании Яндекс",
  "fullDescription": "Браузер от компании Яндекс.(...)",
  "type": null,
  "isActive": true,
  "actualVersion": {
    "displayName": "23.5.0",
    "id": 1234
  },
  "tags": [
    "Браузер"
  ],
  "createdAt": "2023-08-27T09:37:40.000Z",
  "createdBy": "vivanov@domain.local",
  "imagesPaths": [
    "images/123321-4cb06ef0-87ab-4a60-b20e-67c2dm95ra09-open-office-screen03.jpg",
    "images/127681-1cb06ef0-84ab-2f80-b20e-33cdn4dbva04-open-office-screen03.jpg",
    "images/164301-9cbh0yy0-97ab-9g60-f20e-85c2d9725a09-open-office-screen06.jpg",
    "images/173343-4cb06ef0-77ab-8a90-b20e-23c2duy85a75-open-office-screen09.jpg",
    "images/183526-5cb06ef0-81ab-3a50-j20e-98c2d972lg61-open-office-screen01.jpg"
  ],
  "id": 5467,
  "categories":  [
    "Сеть"
  ],
  "iconPath": "icons/123321-7cb06ef0-87ab-4a60-b20e-33c2d9725a09-open-office.png",
  "guide": "Если вы не сделали его основным, при его запуске может появляться окно Сделать этот браузер основным? Чтобы окно больше не показывалось, включите опцию Больше не спрашивать и нажмите Не сейчас.",
  "isApplication": true,
  "defaultVersion": 1234,
  "updatedAt": "2023-08-27T09:37:40.000Z"
}

400

Incorrect request params (некорректные параметры запроса)

{
  "code": "validation_failed",
  "message": "getConfigurationById.configurationId: must be a valid UUID"
}

401

Auth exception (ошибка аутентификации)

404

Object not found (объект не найден)

{
  "code": "object_not_found",
  "message": "Configuration with id=7cb06ef0-87ab-4a60-b20e-33c2d9725a09 not found"
}

500

Internal error (внутренняя ошибка)

{
  "code": "internal_error",
  "message": "Database is unavailable"
}

Метод updateConfigurationById

Изменение конфигурации по идентификатору.

PUT /v1/configurations/{configurationId}
Параметр пути
Имя Описание Обязательный Тип Пример

configurationId

Идентификатор конфигурации

Да

integer(int64)

5467

Параметры тела запроса
Пример запроса
{
  "displayName": "Яндекс браузер",
  "imagesPaths": [
    "images/123321-4cb06ef0-87ab-4a60-b20e-67c2dm95ra09-open-office-screen03.jpg",
    "images/127681-1cb06ef0-84ab-2f80-b20e-33cdn4dbva04-open-office-screen03.jpg",
    "images/164301-9cbh0yy0-97ab-9g60-f20e-85c2d9725a09-open-office-screen06.jpg",
    "images/173343-4cb06ef0-77ab-8a90-b20e-23c2duy85a75-open-office-screen09.jpg",
    "images/183526-5cb06ef0-81ab-3a50-j20e-98c2d972lg61-open-office-screen01.jpg"
  ],
  "description": "Браузер от компании Яндекс",
  "categories":  [
    "Сеть"
  ],
  "fullDescription": "Браузер от компании Яндекс.(...)",
  "type": null,
  "iconPath": "icons/123321-7cb06ef0-87ab-4a60-b20e-33c2d9725a09-open-office.png",
  "guide": "Если вы не сделали его основным, при его запуске может появляться окно Сделать этот браузер основным? Чтобы окно больше не показывалось, включите опцию Больше не спрашивать и нажмите Не сейчас.",
  "isApplication": true,
  "defaultVersion": 1234,
  "tags": [
    "Браузер"
  ]
}
Тип контента

application/json

Ответы
Код Сообщение Тип данных / объект схемы (DTO) Пример

200

Перечень параметров конфигурации

{
  "updatedBy": "vivanov@domain.local",
  "displayName": "Яндекс браузер",
  "packageId": "5af2573a-f848-4db3-91e2-8b416d9cd833",
  "description": "Браузер от компании Яндекс",
  "fullDescription": "Браузер от компании Яндекс.(...)",
  "type": null,
  "isActive": true,
  "actualVersion": {
    "displayName": "23.5.0",
    "id": 1234
  },
  "tags": [
    "Браузер"
  ],
  "createdAt": "2023-08-27T09:37:40.000Z",
  "createdBy": "vivanov@domain.local",
  "imagesPaths": [
    "images/123321-4cb06ef0-87ab-4a60-b20e-67c2dm95ra09-open-office-screen03.jpg",
    "images/127681-1cb06ef0-84ab-2f80-b20e-33cdn4dbva04-open-office-screen03.jpg",
    "images/164301-9cbh0yy0-97ab-9g60-f20e-85c2d9725a09-open-office-screen06.jpg",
    "images/173343-4cb06ef0-77ab-8a90-b20e-23c2duy85a75-open-office-screen09.jpg",
    "images/183526-5cb06ef0-81ab-3a50-j20e-98c2d972lg61-open-office-screen01.jpg"
  ],
  "id": 5467,
  "categories":  [
    "Сеть"
  ],
  "iconPath": "icons/123321-7cb06ef0-87ab-4a60-b20e-33c2d9725a09-open-office.png",
  "guide": "Если вы не сделали его основным, при его запуске может появляться окно Сделать этот браузер основным? Чтобы окно больше не показывалось, включите опцию Больше не спрашивать и нажмите Не сейчас.",
  "isApplication": true,
  "defaultVersion": 1234,
  "updatedAt": "2023-08-27T09:37:40.000Z"
}

400

Incorrect request params (некорректные параметры запроса)

{
  "code": "validation_failed",
  "message": "updateConfigurationById.configurationId: must be a valid UUID"
}

401

Auth exception (ошибка аутентификации)

404

Object not found (объект не найден)

{
  "code": "object_not_found",
  "message": "Configuration with id=7cb06ef0-87ab-4a60-b20e-33c2d9725a09 not found"
}

500

Internal error (внутренняя ошибка)

{
  "code": "internal_error",
  "message": "Database is unavailable"
}

Метод getConfigurationList

Получение списка конфигураций.

POST /v1/configurations/search

Параметры запроса
Имя Описание Обязательный Тип Пример

page

Общее количество страниц

Нет

integer

2

pageSize

Количество элементов, возвращаемых в запросе

Нет

integer

20

Параметры тела запроса
Пример запроса
{
  "updatedBy": "vivanov@domain.local",
  "createdAtEndDate": "2023-08-27T09:37:40.000Z",
  "createdBy": "vivanov@domain.local",
  "displayName": "Яндекс браузер",
  "showOnlyActive": true,
  "createdAtStartDate": "2023-08-27T09:37:40.000Z",
  "description": "Браузер от компании Яндекс",
  "tags": [
    "Браузер"
  ],
  "categories":  [
    "Сеть"
  ],
  "type": null,
  "isApplication": true
}
Тип контента

application/json

Ответы
Код Сообщение Тип данных / объект схемы (DTO) Пример

200

Список конфигураций

{
  "configurations": [
    {
      "updatedBy": "vivanov@domain.local",
      "displayName": "Яндекс браузер",
      "packageId": "5af2573a-f848-4db3-91e2-8b416d9cd833",
      "description": "Браузер от компании Яндекс",
      "fullDescription": "Браузер от компании Яндекс.(...)",
      "type": null,
      "isActive": true,
      "actualVersion": {
        "displayName": "23.5.0",
        "id": 1234
      },
      "tags": [
        "Браузер"
      ],
      "createdAt": "2023-08-27T09:37:40.000Z",
      "createdBy": "vivanov@domain.local",
      "imagesPaths": [
        "images/123321-4cb06ef0-87ab-4a60-b20e-67c2dm95ra09-open-office-screen03.jpg",
        "images/127681-1cb06ef0-84ab-2f80-b20e-33cdn4dbva04-open-office-screen03.jpg",
        "images/164301-9cbh0yy0-97ab-9g60-f20e-85c2d9725a09-open-office-screen06.jpg",
        "images/173343-4cb06ef0-77ab-8a90-b20e-23c2duy85a75-open-office-screen09.jpg",
        "images/183526-5cb06ef0-81ab-3a50-j20e-98c2d972lg61-open-office-screen01.jpg"
      ],
      "id": 5467,
      "categories":  [
         "Сеть"
      ],
      "iconPath": "icons/123321-7cb06ef0-87ab-4a60-b20e-33c2d9725a09-open-office.png",
      "guide": "Если вы не сделали его основным, при его запуске может появляться окно Сделать этот браузер основным? Чтобы окно больше не показывалось, включите опцию Больше не спрашивать и нажмите Не сейчас.",
      "isApplication": true,
      "defaultVersion": 1234,
      "updatedAt": "2023-08-27T09:37:40.000Z"
    },
    {
      "updatedBy": "vivanov@domain.local",
      "displayName": "Яндекс браузер",
      "packageId": "5af2573a-f848-4db3-91e2-8b416d9cd833",
      "description": "Браузер от компании Яндекс",
      "fullDescription": "Браузер от компании Яндекс.(...)",
      "type": null,
      "isActive": true,
      "actualVersion": {
        "displayName": "23.5.0",
        "id": 1234
      },
      "tags": [
        "Браузер"
      ],
      "createdAt": "2023-08-27T09:37:40.000Z",
      "createdBy": "vivanov@domain.local",
      "imagesPaths": [
        "images/123321-4cb06ef0-87ab-4a60-b20e-67c2dm95ra09-open-office-screen03.jpg",
        "images/127681-1cb06ef0-84ab-2f80-b20e-33cdn4dbva04-open-office-screen03.jpg",
        "images/164301-9cbh0yy0-97ab-9g60-f20e-85c2d9725a09-open-office-screen06.jpg",
        "images/173343-4cb06ef0-77ab-8a90-b20e-23c2duy85a75-open-office-screen09.jpg",
        "images/183526-5cb06ef0-81ab-3a50-j20e-98c2d972lg61-open-office-screen01.jpg"
      ],
      "id": 5467,
      "categories":  [
        "Сеть"
      ],
      "iconPath": "icons/123321-7cb06ef0-87ab-4a60-b20e-33c2d9725a09-open-office.png",
      "guide": "Если вы не сделали его основным, при его запуске может появляться окно Сделать этот браузер основным? Чтобы окно больше не показывалось, включите опцию Больше не спрашивать и нажмите Не сейчас.",

      "isApplication": true,
      "defaultVersion": 1234,
      "updatedAt": "2023-08-27T09:37:40.000Z"
    }
  ],
  "meta": "{}"
}

400

Incorrect request params (некорректные параметры запроса)

{
  "code": "validation_failed",
  "message": "getConfigurationsList.pageSize: must be greater than or equal to 1"
}

401

Auth exception (ошибка аутентификации)

500

Internal error (внутренняя ошибка)

{
  "code": "internal_error",
  "message": "Database is unavailable"
}

Метод createConfiguration

Создание конфигурации.

POST /v1/configurations

Параметры тела запроса
Пример запроса
{
  "displayName": "Яндекс браузер",
  "imagesPaths": [
    "images/123321-4cb06ef0-87ab-4a60-b20e-67c2dm95ra09-open-office-screen03.jpg",
    "images/127681-1cb06ef0-84ab-2f80-b20e-33cdn4dbva04-open-office-screen03.jpg",
    "images/164301-9cbh0yy0-97ab-9g60-f20e-85c2d9725a09-open-office-screen06.jpg",
    "images/173343-4cb06ef0-77ab-8a90-b20e-23c2duy85a75-open-office-screen09.jpg",
    "images/183526-5cb06ef0-81ab-3a50-j20e-98c2d972lg61-open-office-screen01.jpg"
  ],
  "description": "Браузер от компании Яндекс",
  "categories":  [
    "Сеть"
  ],
  "fullDescription": "Браузер от компании Яндекс.(...)",
  "type": null,
  "iconPath": "icons/123321-7cb06ef0-87ab-4a60-b20e-33c2d9725a09-open-office.png",
  "guide": "Если вы не сделали его основным, при его запуске может появляться окно Сделать этот браузер основным? Чтобы окно больше не показывалось, включите опцию Больше не спрашивать и нажмите Не сейчас.",
  "isApplication": true,
  "tags": [
    "Браузер"
  ]
}
Тип контента

application/json

Ответы
Код Сообщение Тип данных / объект схемы (DTO) Пример

200

Набор параметров конфигурации

{
  "updatedBy": "vivanov@domain.local",
  "displayName": "Яндекс браузер",
  "packageId": "5af2573a-f848-4db3-91e2-8b416d9cd833",
  "description": "Браузер от компании Яндекс",
  "fullDescription": "Браузер от компании Яндекс.(...)",
  "type": null,
  "isActive": true,
  "actualVersion": {
    "displayName": "23.5.0",
    "id": 1234
  },
  "tags": [
    "Браузер"
  ],
  "createdAt": "2023-08-27T09:37:40.000Z",
  "createdBy": "vivanov@domain.local",
  "imagesPaths": [
    "images/123321-4cb06ef0-87ab-4a60-b20e-67c2dm95ra09-open-office-screen03.jpg",
    "images/127681-1cb06ef0-84ab-2f80-b20e-33cdn4dbva04-open-office-screen03.jpg",
    "images/164301-9cbh0yy0-97ab-9g60-f20e-85c2d9725a09-open-office-screen06.jpg",
    "images/173343-4cb06ef0-77ab-8a90-b20e-23c2duy85a75-open-office-screen09.jpg",
    "images/183526-5cb06ef0-81ab-3a50-j20e-98c2d972lg61-open-office-screen01.jpg"
  ],
  "id": 5467,
  "categories":  [
    "Сеть"
  ],
  "iconPath": "icons/123321-7cb06ef0-87ab-4a60-b20e-33c2d9725a09-open-office.png",
  "guide": "Если вы не сделали его основным, при его запуске может появляться окно Сделать этот браузер основным? Чтобы окно больше не показывалось, включите опцию Больше не спрашивать и нажмите Не сейчас.",
  "isApplication": true,
  "defaultVersion": 1234,
  "updatedAt": "2023-08-27T09:37:40.000Z"
}

400

Incorrect request params (некорректные параметры запроса)

{
  "code": "validation_failed",
  "message": "createConfiguration.configurationCreateRequest.displayName: : size must be between 3 and 256"
}

401

Auth exception (ошибка аутентификации)

500

Internal error (внутренняя ошибка)

{
  "code": "internal_error",
  "message": "Database is unavailable"
}

Метод getConfigurationsReport

Экспорт списка конфигураций.

GET /v1/configurations/report

Параметры запроса
Имя Описание Обязательный Тип Пример

displayName

Название конфигурации, которое отображается в пользовательском интерфейсе

Нет

string

Яндекс браузер

description

Описание конфигурации

Нет

string

Браузер от компании Яндекс

category

Категория конфигурации

Нет

string

Сеть

tag

Тэг конфигурации

Нет

string

Браузер

isApplication

Флаг, который определяет, является ли конфигурация приложением для отображения в магазине ПО. Возможные значения: true, false

Нет

string

true

type

Тип конфигурации. Возможные значения: application, package, default

Нет

string

application

createdAtStartDate

Дата создания, начало интервала, включительно

Нет

string($date-time)

2023-08-27T09:37:40.000Z

createdAtEndDate

Дата создания, конец интервала, включительно

Нет

string($date-time)

2023-08-27T09:37:40.000Z

createdBy

Автор создания

Нет

string

vivanov@domain.local

updatedBy

Автор последнего изменения

Нет

string

vivanov@domain.local

showOnlyActive

Флаг отображения неактивных версий конфигураций. Возможные значения: true, false

Нет

boolean

true

_fields

Список столбцов для добавления в отчет. Возможные значения: displayName, defaultVersion, actualVersionId, actualVersionDisplayName, description, createdBy, createdAt, updatedAt

Нет

array[string]

displayName

_titles

Список заголовков полей, разделенный запятыми. Количество заголовков должно совпадать с количеством столбцов в связанном параметре _fields. Если заголовок задавать не нужно, вместо него укажите пустую строку

Нет

array[string]

Заданы все заголовки

Ответы
Код Сообщение Тип данных / объект схемы (DTO) Пример

200

CSV-файл с информацией о конфигурациях

text/csv

Название,Автор,Дата создания,Актуальная версия
Ark,petrov@my.domain.ru,2024-03-29T12:21:41.335Z,22.12.3
Яндекс Браузер,ivanov@my.domain.ru,2024-03-29T12:02:32.771Z,23.9.1.1023

400

Incorrect request params (некорректные параметры запроса)

{
  "code": "validation_failed",
  "message": "getConfigurationsReport.displayName: : size must be between 3 and 256"
}

401

Auth exception (ошибка аутентификации)

Управление формулами

Для управления формулами используются методы:

  • importFormulas — импорт Salt-формулы в S3-совместимое хранилище;

  • deleteFormula — удаление Salt-формулы из S3-совместимого хранилища.

Метод importFormulas

Импорт формулы в S3-совместимое хранилище.

POST /v1/formulas

Параметр тела запроса
Имя Описание Обязательный

formula

Файл с формулой в формате base64.

Контент архива должен соответствовать структуре формулы, которая задана в модуле координации, поэтому файл должен быть в формате <name>-formula.tar.gz

Да

Тип контента

multipart/form-data

Ответы
Код Сообщение Тип данных / объект схемы (DTO) Пример

200

Формула добавлена в S3-совместимое хранилище

{
  "ignoredFilesCount": 3,
  "errors": [
    "errors",
    "errors"
  ]
}

401

Auth exception (ошибка аутентификации)

500

Internal error (внутренняя ошибка)

{
  "code": "internal_error",
  "message": "Database is unavailable"
}

Метод deleteFormula

Удаление формулы из S3-совместимого хранилища.

DELETE /v1/formulas{formulaName}
Параметр пути
Имя Описание Обязательный Тип

formulaName

Имя формулы

Да

string

Ответы
Код Сообщение Тип данных / объект схемы (DTO) Пример

204

Формула удалена из S3-совместимого хранилища

401

Auth exception (ошибка аутентификации)

500

Internal error (внутренняя ошибка)

{
  "code": "internal_error",
  "message": "Database is unavailable"
}

Управление категориями конфигураций

Для управления категориями конфигураций используются методы:

  • getCategoryById — получение категории конфигурации по идентификатору;

  • updateCategoryById — изменение категории конфигурации по идентификатору;

  • deleteCategoryById — удаление категории конфигурации по идентификатору;

  • createCategory — создание категории конфигурации;

  • getCategoriesList — получение списка категорий.

Метод getCategoryById

Получение категории конфигураций по идентификатору.

GET /v1/categories/{categoryId}
Параметр пути
Имя Описание Обязательный Тип Пример

categoryId

Идентификатор категории конфигурации

Да

string

Сеть

Ответы
Код Сообщение Тип данных / объект схемы (DTO) Пример

200

Перечень параметров категории конфигурации

{
  "id": "office",
  "name": "Офис",
  "description": "Категория программ для работы в сети Интернет",
  "color": "00ff00",
  "iconCode": "ms_office_icon",
  "createdAt": "2023-08-27T09:37:40.000Z",
  "updatedAt": "2023-08-27T09:37:40.000Z"
}

400

Incorrect request params (некорректные параметры запроса)

{
  "code": "validation_failed",
  "message": "getCategoryById.categoryId: size must be between 3 and 64"
}

401

Auth exception (ошибка аутентификации)

404

Object not found (объект не найден)

{
  "code": "object_not_found",
  "message": "Category with id=officeCategory not found"
}

500

Internal error (внутренняя ошибка)

{
  "code": "internal_error",
  "message": "Database is unavailable"
}

Метод updateCategoryById

Изменение категории конфигураций по идентификатору.

PUT /v1/categories/{categoryId}
Параметр пути
Имя Описание Обязательный Тип Пример

categoryId

Идентификатор категории конфигурации

Да

string

Сеть

Параметры тела запроса
Пример запроса
{
  "name": "Офис",
  "description": "Категория программ для работы в сети Интернет",
  "color": "00ff00",
  "iconCode": "ms_office_icon"
}
Тип контента

application/json

Ответы
Код Сообщение Тип данных / объект схемы (DTO) Пример

200

Представление категории конфигурации

{
  "id": "office",
  "name": "Офис",
  "description": "Категория программ для работы в сети Интернет",
  "color": "00ff00",
  "iconCode": "ms_office_icon",
  "createdAt": "2023-08-27T09:37:40.000Z",
  "updatedAt": "2023-08-27T09:37:40.000Z"
}

400

Incorrect request params (некорректные параметры запроса)

{
  "code": "validation_failed",
  "message": "updateCategoryById.categoryUpdateRequest.color: must match `[A-Fa-f0-9]+`"
}

401

Auth exception (ошибка аутентификации)

404

Object not found (объект не найден)

{
  "code": "object_not_found",
  "message": "Category with id=officeCategory not found"
}

500

Internal error (внутренняя ошибка)

{
  "code": "internal_error",
  "message": "Database is unavailable"
}

Метод deleteCategoryById

Удаление категории конфигурации по идентификатору.

DELETE /v1/categories/{categoryId}
Параметр пути
Имя Описание Обязательный Тип Пример

categoryId

Идентификатор категории конфигурации

Да

string

Сеть

Ответы
Код Сообщение Тип данных / объект схемы (DTO) Пример

204

Категория удалена

400

Incorrect request params (некорректные параметры запроса)

{
  "code": "validation_failed",
  "message": "deleteCategoryById.categoryId: size must be between 3 and 64"
}

401

Auth exception (ошибка аутентификации)

404

Object not found (объект не найден)

{
  "code": "object_not_found",
  "message": "Category with id=officeCategory not found"
}

500

Internal error (внутренняя ошибка)

{
  "code": "internal_error",
  "message": "Database is unavailable"
}

Метод createCategory

Создание категории конфигурации.

POST /v1/categories

Параметры тела запроса
Пример запроса
{
  "id": "office",
  "name": "Офис",
  "description": "Категория программ для работы в сети Интернет",
  "color": "00ff00",
  "iconCode": "ms_office_icon"
}
Тип контента

application/json

Ответы
Код Сообщение Тип данных / объект схемы (DTO) Пример

200

Набор параметров созданной категории конфигурации

{
  "id": "office",
  "name": "Офис",
  "description": "Категория программ для работы в сети Интернет",
  "color": "00ff00",
  "iconCode": "ms_office_icon",
  "createdAt": "2023-08-27T09:37:40.000Z",
  "updatedAt": "2023-08-27T09:37:40.000Z"
}

400

Incorrect request params (некорректные параметры запроса)

{
  "code": "validation_failed",
  "message": "createCategory.createCategoryRequest.color: must match `[A-Fa-f0-9]+`"
}

401

Auth exception (ошибка аутентификации)

500

Internal error (внутренняя ошибка)

{
  "code": "internal_error",
  "message": "Database is unavailable"
}

Метод getCategoryList

Получение списка категорий конфигураций.

POST /v1/categories/search

Параметры запроса
Имя Описание Обязательный Тип Пример

page

Общее количество страниц

Нет

integer

2

pageSize

Количество элементов, возвращаемых в запросе

Нет

integer

20

Ответы
Код Сообщение Тип данных / объект схемы (DTO) Пример

200

Список категорий

{
  "categories": [
    {
      "id": "office",
      "name": "Офис",
      "description": "Категория программ для работы в сети Интернет",
      "color": "00ff00",
      "iconCode": "ms_office_icon",
      "createdAt": "2023-08-27T09:37:40.000Z",
      "updatedAt": "2023-08-27T09:37:40.000Z"
    }
  ],
  "meta": {
    "totalRecords": 1729,
    "pageSize": 20,
    "totalPages": 87,
    "currentPage": 2,
    "hasNext": true,
    "hasPrev": true
  }
}

400

Incorrect request params (некорректные параметры запроса)

{
  "code": "validation_failed",
  "message": "getCategoriesList.page: must be greater than or equal to 1"
}

401

Auth exception (ошибка аутентификации)

500

Internal error (внутренняя ошибка)

{
  "code": "internal_error",
  "message": "Database is unavailable"
}

Описание параметров схемы

BasicError

Информация об ошибке.

Имя поля Обязательное Тип Описание Пример

code

Да

string

Код ошибки. Включает параметр ErrorCode. Допустимые значения:

  • object_already_exists — объект уже существует;

  • object_not_found — объект не найден;

  • validation_failed — ошибка валидации;

  • authorization_failed — ошибка авторизации;

  • internal_error — внутренняя ошибка

validation_failed

message

Да

string

Сообщение об ошибке

Template contains not resolved variables

CategoryCreateRequest

Параметры для создания категории конфигураций.

Имя поля Обязательное Тип Описание Пример

id

Да

string

Идентификатор категории конфигураций (макс. длина: 64). Включает параметр CategoryId

Сеть

name

Да

string

Название категории конфигураций (макс. длина: 255). Включает параметр CategoryName

Офис

description

Нет

string

Описание категории конфигураций (макс. длина: 64). Включает параметр CategoryDescription

Категория программ для работы в сети Интернет

color

Да

string

Цвет в формате HEX (макс. длина: 6). Включает параметр HexColor

00ff00

iconCode

Да

string

Код изображения для категории (макс. длина: 255). Включает параметр IconCode

ms_office_icon

CategoryDescription

Описание категории конфигураций.

Тип: string.

Пример: Категория программ для работы в сети Интернет.

CategoryId

Идентификатор категории конфигураций (макс. длина: 64).

Тип: string.

Шаблон: [A-Za-z0-9_\-]+.

Пример: Сеть.

CategoriesListResponse

Список категорий конфигураций.

Имя поля Обязательное Тип Описание Пример

categories

Да

Список категорий конфигураций. Включает параметры CategoryResponse

meta

Да

Категории конфигураций. Включает параметры PaginationMetadata

CategoryName

Название категории конфигураций (макс. длина: 255).

Тип: string.

Пример: Офис.

CategoryResponse

Перечень параметров категории конфигураций.

Имя поля Обязательное Тип Описание Пример

id

Да

string

Идентификатор категории конфигураций (макс. длина: 64). Шаблон: [A-Za-z0-9_\-]+. Включает параметр CategoryId

Сеть

name

Да

string

Название категории конфигураций (макс. длина: 255). Включает параметр CategoryName

Офис

description

Нет

string

Описание категории конфигураций (макс. длина: 64). Включает параметр CategoryDescription

Категория программ для работы в сети Интернет

color

Да

string

Цвет в формате HEX. Шаблон: [A-Fa-f0-9]+. Включает параметр HexColor

00ff00

iconCode

Да

string

Код изображения для категории (макс. длина: 255). Включает параметр IconCode

ms_office_icon

createdAt

Нет

string

Дата создания

2023-08-27T09:37:40.000Z

updatedAt

Нет

string

Дата последнего изменения

2023-08-27T09:37:40.000Z

CategoryUpdateRequest

Параметры для обновления категории конфигураций.

Имя поля Обязательное Тип Описание Пример

name

Да

string

Название категории конфигураций (макс. длина: 255). Включает параметр CategoryName

Офис

description

Нет

string

Описание категории конфигураций (макс. длина: 64). Включает параметр CategoryDescription

Категория программ для работы в сети Интернет

color

Да

string

Цвет в формате HEX. Шаблон: [A-Fa-f0-9]+ (макс. длина: 6). Включает параметр HexColor

00ff00

iconCode

Да

string

Код изображения для категории (макс. длина: 255). Включает параметр IconCode

ms_office_icon

ConfigurationIconPath

Путь/ссылка на изображение иконки относительно сервиса хранения мультимедиа-контента.

Тип: string.

Пример: icons/123321-7cb06ef0-87ab-4a60-b20e-33c2d9725a09-open-office.png.

ConfigurationImagesPaths

Список путей/ссылок на прикрепленные к ПО изображения относительно сервиса хранения мультимедиа-контента.

Тип: string.

Пример: images/123321-7cb06ef0-87ab-4a60-b20e-33c2d9725a09-open-office-screen03.jpg.

ConfigVersionChangelog

Описание обновления.

Тип: string.

Пример: Changelog 23-5-0:.

ConfigVersionCreteRequest

Тело запроса на создание версии конфигурации.

Имя поля Обязательное Тип Описание Пример

displayName

Да

string

Имя версии, которое отображается в пользовательском интерфейсе. Включает параметр ConfigVersionDisplayName

23.5.0

releaseDate

Да

string

Дата релиза версии. Включает параметр ConfigVersionReleaseDate

Рекомендуется указывать дату, не совпадающую с датами других выпущенных версий. При совпадении дат система может не определить создаваемую версию как более новую, и в магазине приложений не предложит обновить версию для данного ПО (см. главу «Установка/обновление/удаление ПО» документа «Руководство пользователя»)

2023-05-19

softwareRequirements

Да

string

Системные требования для установки версии. Включает параметр ConfigVersionSoftwareRequirements

Оперативная память - Минимум 512 МБ

formulaName

Да

string

Имя формулы. Включает параметр ConfigVersionFormulaName

yandex-browser

pillarProperty

Нет

Конфигурация (pillar) с переопределяемыми параметрами формулы в JSON-формате. Включает параметры pillarProperty

features

Нет

string

Особенности установки — информационное сообщение, которое пользователь должен увидеть в окне подтверждения установки. Включает параметр ConfigVersionFeatures

Яндекс браузер 23.5.0

changelog

Нет

string

Описание обновления. Включает параметр ConfigVersionChangelog

yandex-browser

ConfigVersionDisplayName

Имя версии, которое отображается в пользовательском интерфейсе (мин. длина: 1; макс. длина: 255).

Тип: string.

Пример: 23.5.0.

ConfigVersionFeatures

Особенности установки — информационное сообщение, которое пользователь должен увидеть в окне подтверждения установки.

Тип: string.

Пример: Яндекс браузер 23.5.0.

ConfigVersionFilterRequest

Фильтры для запроса на получение версий конфигураций.

Имя поля Обязательное Тип Описание Пример

name

Нет

string

Фильтр для контекстного поиска по имени версии

23.5

createdBy

Нет

string

Автор создания. Включает параметр CreatedBy

vivanov@domain.local

updatedBy

Нет

string

Автор последнего изменения. Включает параметр UpdatedBy

vivanov@domain.local

showOnlyActive

Нет

boolean

Флаг отображения неактивных версий конфигураций при выводе списка

true

ConfigVersionFormulaName

Имя формулы (мин. длина: 1; макс. длина: 255).

Тип: string.

Пример: yandex-browser.

ConfigVersionListResponse

Список версий конфигурации.

Имя поля Обязательное Тип Описание Пример

versions

Да

Список версий конфигурации. Включает параметры ConfigVersionResponse

meta

Да

Метаданные постраничной навигации. Включает параметры PaginationMetadata

ConfigVersionReleaseDate

Дата релиза версии.

Тип: string(date).

Пример: 2023-05-19.

ConfigVersionResponse

Версия конфигурации.

Имя поля Обязательное Тип Описание Пример

id

Да

integer(int64)

Идентификатор версии конфигурации

1234

createdAt

Нет

string

Дата создания. Включает параметр CreatedDate

2023-08-27T09:37:40.000Z

updatedAt

Нет

string

Дата последнего изменения. Включает параметр UpdatedDate

2023-08-27T09:37:40.000Z

createdBy

Нет

string

Автор создания. Включает параметр CreatedBy

vivanov@domain.local

updatedBy

Нет

string

Автор последнего изменения. Включает параметр UpdatedBy

vivanov@domain.local

configurationId

Да

string

Идентификатор конфигурации (макс. длина: 255). Включает параметр ConfigurationId

5467

displayName

Да

string

Имя версии, которое отображается в пользовательском интерфейсе (мин. длина: 1; макс. длина: 255). Включает параметр ConfigVersionDisplayName

23.5.0

releaseDate

Да

string

Дата релиза версии. Включает параметр ConfigVersionReleaseDate

2023-05-19

softwareRequirements

Да

string

Системные требования для установки версии (мин. длина: 1; макс. длина: 2048). Включает параметр ConfigVersionSoftwareRequirements

Оперативная память - Минимум 512 МБ

formulaName

Да

string

Имя формулы (мин. длина: 1; макс. длина: 255). Включает параметр ConfigVersionFormulaName

yandex-browser

pillarProperty

Нет

Конфигурация (pillar) с переопределяемыми параметрами формулы в JSON-формате. Включает параметры pillarProperty

features

Нет

string

Особенности установки — информационное сообщение, которое пользователь должен увидеть в окне подтверждения установки. Включает параметр ConfigVersionFeatures

Яндекс браузер 23.5.0

changelog

Нет

string

Описание обновления. Включает параметр ConfigVersionChangelog

yandex-browser

isActive

Нет

boolean

Флаг активности версии конфигурации

true

ConfigVersionSoftwareRequirements

Системные требования для установки версии — минимум 512 МБ (мин. длина: 1; макс. длина: 2048).

Тип: string.

Пример: Оперативная память.

ConfigVersionUpdateRequest

Тело запроса на обновление версии конфигурации.

Имя поля Обязательное Тип Описание Пример

displayName

Да

string

Имя версии, которое отображается в пользовательском интерфейсе (мин. длина: 1; макс. длина: 255). Включает параметр ConfigVersionDisplayName

23.5.0

releaseDate

Да

string

Дата релиза версии. Включает параметр ConfigVersionReleaseDate

2023-05-19

softwareRequirements

Да

string

Системные требования для установки версии (мин. длина: 1; макс. длина: 2048). Включает параметр ConfigVersionSoftwareRequirements

Оперативная память — минимум 512 МБ

formulaName

Да

string

Имя формулы (мин. длина: 1; макс. длина: 255). Включает параметр ConfigVersionFormulaName

yandex-browser

pillarProperty

Нет

Конфигурация (pillar) с переопределяемыми параметрами формулы в JSON-формате. Включает параметры pillarProperty

features

Нет

string

Особенности установки — информационное сообщение, которое пользователь должен увидеть в окне подтверждения установки. Включает параметр ConfigVersionFeatures

Яндекс браузер 23.5.0

changelog

Нет

string

Описание обновления. Включает параметр ConfigVersionChangelog

yandex-browser

CreatedBy

Автор создания.

Тип: string.

Пример: vivanov@domain.local.

СreatedDate

Дата создания.

Тип: string.

Пример: 2023-08-27T09:37:40.000Z.

DefaultVersion

Идентификатор актуальной версии (версии по умолчанию) данного ПО.

Тип: integer(int64).

Мин. знаение: 1.

Пример: 1234.

Description

Описание конфигурации.

Тип: string.

Пример: Браузер от компании Яндекс

ConfigurationDisplayName

Название конфигурации, которое отображается в пользовательском интерфейсе (макс. длина: 255).

Тип: string.

Пример: Яндекс браузер.

ErrorCode

Код ошибки.

Тип: string.

Допустимые значения:

  • object_already_exists — объект уже существует;

  • object_not_found — объект не найден;

  • validation_failed — ошибка валидации;

  • authorization_failed — ошибка авторизации;

  • internal_error — внутренняя ошибка.

ExtendedError

Подробное сообщение об ошибке.

Имя поля Обязательное Тип Описание Пример

code

Да

Код ошибки. Включает параметр ErrorCode. Допустимые значения:

  • object_already_exists — объект уже существует;

  • object_not_found — объект не найден;

  • validation_failed — ошибка валидации;

  • authorization_failed — ошибка авторизации;

  • internal_error — внутренняя ошибка

validation_failed

message

Да

string

Сообщение об ошибке

Template contains not resolved variables

FileUrl

Относительный URL для загрузки файла.

Тип: string (макс. длина: 255).

Пример: images/open_office_aa-bb-00-11-ee.jpg.

FileSize

Размер загруженного файла в байтах.

Тип: integer(int32).

Пример: 512000.

FormulaImportResult

Результат импорта формулы.

Имя поля Обязательное Тип Описание Пример

ignoredFilesCount

Да

integer

Количество файлов, которые не удалось загрузить

3

errors

Да

string

FormulaName

Название формулы (макс. длина: 255).

Тип: string.

Пример: yandex-browser.

FullDescription

Подробное описание конфигурации.

Тип: string.

Пример: Браузер от компании Яндекс.(…​).

Guide

Инструкция.

Тип: string.

Пример: Если вы не сделали его основным, при его запуске может появляться окно Сделать этот браузер основным? Чтобы окно больше не показывалось, включите опцию Больше не спрашивать и нажмите Не сейчас.

HexColor

Цвет в формате HEX (макс. длина: 6).

Тип: string.

Шаблон: [A-Fa-f0-9]+.

Пример: 00ff00.

IconCode

Код изображения для категории (макс. длина: 255).

Тип: string.

Пример: ms_office_icon.

IsApplication

Флаг, который определяет, является ли конфигурация приложением для отображения в магазине ПО.

Тип: boolean.

Пример: true.

PaginationMetadata

Метаданные постраничной навигации.

Имя поля Обязательное Тип Описание Пример

totalRecords

Да

integer

Общее количество записей

1729

pageSize

Да

integer

Количество возвращаемых элементов в запросе

20

totalPages

Да

integer

Общее количество страниц

87

currentPage

Да

integer

Номер текущей страницы

2

hasNext

Да

boolean

Признак наличия следующей страницы

true

hasPrev

Да

boolean

Признак наличия предыдущей страницы

true

PillarProperty

Конфигурация (pillar) с переопределяемыми параметрами формулы в JSON-формате.

ConfigurationCreateRequest

Параметры для создания конфигурации.

Имя поля Обязательное Тип Описание Пример

displayName

Да

Имя, которое отображается в пользовательском интерфейсе (макс. длина: 255). Включает параметр ConfigurationDisplayName

Яндекс браузер

description

Нет

string

Описание конфигурации. Включает параметр Description

Браузер от компании Яндекс

fullDescription

Нет

string

Подробное описание конфигурации. Включает параметр FullDescription

Браузер от компании Яндекс.(…​)

guide

Нет

string

Инструкция. Включает параметр Guide

Если вы не сделали его основным, при его запуске может появляться окно Сделать этот браузер основным? Чтобы окно больше не отображалось, включите опцию Больше не спрашивать и нажмите Не сейчас.

isApplication

Да

Флаг, который указывает, является ли конфигурация приложением для отображения в магазине ПО. Включает параметр IsApplication

tags

Нет

string

Тэг конфигурации для классификации и быстрого поиска (макс. длина: 255). Включает параметр Tag

Браузер

categories

Нет

string

Категории конфигураций. Включает параметр CategoryId

Сеть

iconPath

Нет

string

Путь/ссылка на изображение иконки относительно сервиса хранения мультимедиа-контента. Включает параметр ConfigurationIconPath

icons/123321-7cb06ef0-87ab-4a60-b20e-33c2d9725a09-open-office.png

imagesPaths

Нет

string

Список путей/ссылок на прикрепленные к ПО изображения относительно сервиса хранения мультимедиа-контента. Включает параметр ConfigurationImagesPaths

images/123321-7cb06ef0-87ab-4a60-b20e-33c2d9725a09-open-office-screen03.jpg]

ConfigurationsFilterRequest

Список фильтров для конфигураций.

Имя поля Обязательное Тип Описание Пример

displayName

Нет

string

Имя, которое отображается в пользовательском интерфейсе (макс. длина: 255). Включает параметр ConfigurationDisplayName

Яндекс браузер

description

Нет

string

Описание формулы. Включает параметр Description

Formula to install web browser developed by Yandex.

category

Нет

string

Идентификатор категории конфигураций (макс. длина: 64). Шаблон: [A-Za-z0-9_\-]+

Сеть

tag

Нет

string

Тэг конфигурации для классификации и быстрого поиска (макс. длина: 255). Включает параметр Tag

Браузер

isApplication

Нет

Флаг, который указывает, является ли конфигурация приложением для отображения в магазине ПО. Включает параметр IsApplication

createdAtStartDate

Нет

string

Дата создания, начало интервала, включительно

2023-08-27T09:37:40.000Z

createdAtEndDate

Нет

string

Дата создания, конец интервала, включительно

2023-08-27T09:37:40.000Z

createdBy

Нет

string

Автор создания. Включает параметр CreatedBy

vivanov@domain.local

updatedBy

Нет

string

Автор последнего изменения. Включает параметр UpdatedBy

vivanov@domain.local

showOnlyActive

Нет

boolean

Флаг отображения неактивных версий конфигураций при выводе списка

true

ConfigurationId

Идентификатор конфигурации.

Макс. длина: 255.

Тип: integer(int64).

Пример: 5467.

ConfigurationListResponse

Список конфигураций.

Имя поля Обязательное Тип Описание Пример

configurations

Да

Список конфигураций. Включает параметры ConfigurationResponse

meta

Да

Метаданные постраничной навигации. Включает параметры meta

ConfigurationResponse

Перечень параметров конфигурации.

Имя поля Обязательное Тип Описание Пример

id

Да

integer(int64)

Идентификатор конфигурации (макс. длина: 255). Включает параметр ConfigurationId

5467

displayName

Да

string

Имя, которое отображается в пользовательском интерфейсе (макс. длина: 255). Включает параметр ConfigurationDisplayName

Яндекс браузер

description

Нет

string

Описание формулы. Включает параметр Description

Formula to install web browser developed by Yandex.

fullDescription

Нет

string

Подробное описание конфигурации. Включает параметр FullDescription

Браузер от компании Яндекс.(…​)

guide

Нет

string

Инструкция. Включает параметр Guide

Если вы не сделали его основным, при его запуске может появляться окно Сделать этот браузер основным? Чтобы окно больше не отображалось, включите опцию Больше не спрашивать и нажмите Не сейчас.

isApplication

Да

Флаг, который указывает, является ли конфигурация приложением для отображения в магазине ПО. Включает параметр IsApplication

tags

Нет

string

Тэг конфигурации для классификации и быстрого поиска (макс. длина: 255). Включает параметр Tag

Браузер

categories

Нет

категории конфигураций. Включает параметр CategoryId

createdAt

Нет

string

Дата создания

2023-08-27T09:37:40.000Z

updatedAt

Нет

string

Дата последнего изменения

2023-08-27T09:37:40.000Z

createdBy

Нет

string

Автор создания. Включает параметр CreatedBy

vivanov@domain.local

updatedBy

Нет

string

Автор последнего изменения. Включает параметр UpdatedBy

vivanov@domain.local

iconPath

Нет

Путь/ссылка на изображение иконки относительно сервиса хранения мультимедиа контента Включает параметры ConfigurationIconPath

imagesPaths

Нет

Список путей/ссылок на прикрепленные к ПО изображения относительно сервиса хранения мультимедиа-контента. Включает параметры ConfigurationImagesPaths

defaultVersion

Нет

integer(int64)

Идентификатор актуальной версии (версии по умолчанию) данного ПО (мин. значение: 1). Включает параметры DefaultVersion

isActive

Нет

boolean

Флаг активности версии конфигурации

true

ConfigurationUpdateRequest

Параметры для обновления конфигурации.

Имя поля Обязательное Тип Описание Пример

displayName

Да

string

Имя, которое отображается в пользовательском интерфейсе (макс. длина: 255). Включает параметр ConfigurationDisplayName

Яндекс браузер

description

Нет

string

Описание формулы. Включает параметр Description

Formula to install web browser developed by Yandex.

fullDescription

Нет

string

Подробное описание конфигурации. Включает параметр FullDescription

Браузер от компании Яндекс.(…​)

guide

Нет

string

Инструкция. Включает параметр Guide

Если вы не сделали его основным, при его запуске может появляться окно Сделать этот браузер основным? Чтобы окно больше не отображалось, включите опцию Больше не спрашивать и нажмите Не сейчас.

isApplication

Да

Флаг, который указывает, является ли конфигурация приложением для отображения в магазине ПО. Включает параметр IsApplication

tags

Нет

string

Тэг конфигурации для классификации и быстрого поиска (макс. длина: 255). Включает параметр Tag

Браузер

categories

Да

категории конфигураций. Включает параметр CategoryId

iconPath

Нет

Путь/ссылка на изображение иконки относительно сервиса хранения мультимедиа контента Включает параметры ConfigurationIconPath

imagesPaths

Нет

Список путей/ссылок на прикрепленные к ПО изображения относительно сервиса хранения мультимедиа-контента. Включает параметры ConfigurationImagesPaths

defaultVersion

Нет

integer(int64)

Идентификатор актуальной версии (версии по умолчанию) данного ПО (мин. значение: 1). Включает параметры DefaultVersion

Tag

Тэг конфигурации для классификации и быстрого поиска (макс. длина: 255).

Тип: string.

Пример: Браузер.

TagsListResponse

Список тегов конфигураций.

Имя поля Обязательное Тип Описание Пример

tags

Нет

string

Тэг конфигурации для классификации и быстрого поиска (макс. длина: 255). Включает параметр Tag

Браузер

meta

Да

Категории конфигураций. Включает параметры PaginationMetadata

UpdatedBy

Автор последнего изменения.

Тип: string.

Пример: vivanov@domain.local.

UpdatedDate

Дата последнего изменения.

Тип: string.

Пример: 2023-08-27T09:37:40.000Z.

UploadMultimediaResponse

Результат успешной загрузки файла.

Имя поля Обязательное Тип Описание Пример

fileUrl

Да

string

Относительный URL для загрузки файла (макс. длина: 255). Включает параметр FileUrl

images/open_office_aa-bb-00-11-ee.jpg

fileSize

Да

integer(int32)

Размер загруженного файла в байтах. Включает параметр FileSize

512000

Управление версиями конфигураций

Для управления версиями конфигураций используются методы:

  • getVersionByConfigurationId  — получение версии конфигурации по идентификатору;

  • updateVersionById — изменение версии конфигурации по идентификатору;

  • deleteVersionById — удаление версии конфигураций по идентификатору;

  • getVersionsByConfigurationId — получение доступных версий для конфигурации по идентификатору;

  • createSpecificationVersion — создание версии конфигурации.

Метод getVersionByConfigurationId

Получение версии конфигурации по идентификатору.

GET /v1/configurations/{configurationId}/versions/{versionId}

Параметры пути

Имя Описание Обязательный Тип Пример

configurationId

Идентификатор конфигурации

Да

integer(int64)

5467

versionId

Идентификатор версии конфигурации

Да

integer(int64)

1234

Ответы

Код Сообщение Тип данных / объект схемы (DTO) Пример

200

Параметры запрашиваемой версии конфигурации

{
  "id": "1234",
  "createdAt": "2023-08-27T09:37:40.000Z",
  "updatedAt": "2023-08-27T09:37:40.000Z",
  "createdBy": "vivanov@domain.local",
  "updatedBy": "vivanov@domain.local",
  "configurationId": "5467",
  "displayName": "23.5.0",
  "releaseDate": "2023-05-19",
  "softwareRequirements": "Оперативная память - Минимум 512 МБ",
  "formulaName": "yandex-browser",
  "pillarProperty": {
    "additionalProp1": {},
    "additionalProp2": {},
    "additionalProp3": {}
  },
  "features": "Яндекс браузер 23.5.0",
  "changelog": "Changelog 23-5-0:"
}

400

Incorrect request params (некорректные параметры запроса)

{
  "code": "validation_failed",
  "message": "getVersionByConfigurationId.versionId: must be a valid UUID"
}

401

Auth exception (ошибка аутентификации)

404

Object not found (объект не найден)

{
  "code": "object_not_found",
  "message": "Configuration version with id=7cb06ef0-87ab-4a60-b20e-33c2d9725a09 not found"
}

500

Internal error (внутренняя ошибка)

{
  "code": "internal_error",
  "message": "Database is unavailable"
}

Метод updateVersionById

Изменение версии конфигурации по идентификатору.

PUT /v1/configurations/{configurationId}/versions/{versionId}

Параметры пути

Имя Описание Обязательный Тип Пример

configurationId

Идентификатор конфигурации

Да

integer(int64)

5467

versionId

Идентификатор версии конфигурации

Да

integer(int64)

1234

Параметры тела запроса

Пример запроса

{
  "displayName": "23.5.0",
  "releaseDate": "2023-05-19",
  "softwareRequirements": "Оперативная память - Минимум 512 МБ",
  "formulaName": "yandex-browser",
  "pillarProperty": {
    "additionalProp1": {},
    "additionalProp2": {},
    "additionalProp3": {}
  },
  "features": "Яндекс браузер 23.5.0",
  "changelog": "Changelog 23-5-0:"
}

Тип контента

application/json

Ответы

Код Сообщение Тип данных / объект схемы (DTO) Пример

200

Перечень параметров версии конфигурации

{
  "id": "1234",
  "createdAt": "2023-08-27T09:37:40.000Z",
  "updatedAt": "2023-08-27T09:37:40.000Z",
  "createdBy": "vivanov@domain.local",
  "updatedBy": "vivanov@domain.local",
  "configurationId": "5467",
  "displayName": "23.5.0",
  "releaseDate": "2023-05-19",
  "softwareRequirements": "Оперативная память - Минимум 512 МБ",
  "formulaName": "yandex-browser",
  "pillarProperty": {
    "additionalProp1": {},
    "additionalProp2": {},
    "additionalProp3": {}
  },
  "features": "Яндекс браузер 23.5.0",
  "changelog": "Changelog 23-5-0:"
}

400

Incorrect request params (некорректные параметры запроса)

{
  "code": "validation_failed",
  "message": "updateVersionById.versionId: must be a valid UUID"
}

401

Auth exception (ошибка аутентификации)

404

Object not found (объект не найден)

{
  "code": "object_not_found",
  "message": "Configuration version with id=7cb06ef0-87ab-4a60-b20e-33c2d9725a09 not found"
}

500

Internal error (внутренняя ошибка)

{
  "code": "internal_error",
  "message": "Database is unavailable"
}

Метод deleteVersionById

Удаление версии конфигураций по идентификатору.

DELETE /v1/configurations/{configurationId}/versions/{versionId}

Параметры пути

Имя Описание Обязательный Тип Пример

configurationId

Идентификатор конфигурации

Да

integer(int64)

5467

versionId

Идентификатор версии конфигурации

Да

integer(int64)

1234

Ответы

Код Сообщение Тип данных / объект схемы (DTO) Пример

204

Версия удалена

400

Incorrect request params (некорректные параметры запроса)

{
  "code": "validation_failed",
  "message": "deleteVersionById.versionId: must be a valid UUID"
}

401

Auth exception (ошибка аутентификации)

404

Object not found (объект не найден)

{
  "code": "object_not_found",
  "message": "Configuration version with id=7cb06ef0-87ab-4a60-b20e-33c2d9725a09 not found"
}

422

Невозможно обработать запрос

{
  "code": "object_not_found",
  "message": "Cannot delete configuration version with id = 7cb06ef0-87ab-4a60-b20e-33c2d9725a09 since it is used by collections with ids = [6cb06ef0-87ab-4a60-b20e-33c2d9725a10,8cb06ef0-87ab-4a60-b20e-33c2d9725a11]"
}

500

Internal error (внутренняя ошибка)

{
  "code": "internal_error",
  "message": "Database is unavailable"
}

Метод getVersionsByConfigurationId

Получение доступных версий для конфигурации по идентификатору.

POST /v1/configurations/{configurationId}/versions/search

Параметр пути

Имя Описание Обязательный Тип Пример

configurationId

Идентификатор конфигурации

Да

integer($int64)

5467

Параметры запроса

Имя Описание Обязательный Тип Пример

page

Общее количество страниц

Нет

integer

2

pageSize

Количество возвращаемых элементов в запросе

Нет

integer

20

Параметры тела запроса

Пример запроса

{
  "name": "23.5",
  "createdBy": "vivanov@domain.local",
  "updatedBy": "vivanov@domain.local",
  "showOnlyActive": true
}

Тип контента

application/json

Ответы

Код Сообщение Тип данных / объект схемы (DTO) Пример

200

Список версий конфигурации

{
  "versions": [
    {
      "id": 1234,
      "createdAt": "2023-08-27T09:37:40.000Z",
      "updatedAt": "2023-08-27T09:37:40.000Z",
      "createdBy": "vivanov@domain.local",
      "updatedBy": "vivanov@domain.local",
      "configurationId": 5467,
      "displayName": "23.5.0",
      "releaseDate": "2023-05-19",
      "softwareRequirements": "Оперативная память - Минимум 512 МБ",
      "formulaName": "yandex-browser",
      "pillarProperty": {
        "additionalProp1": {},
        "additionalProp2": {},
        "additionalProp3": {}
      },
      "features": "Яндекс браузер 23.5.0",
      "changelog": "Changelog 23-5-0:",
      "isActive": true
    }
  ],
  "meta": {
    "totalRecords": 1729,
    "pageSize": 20,
    "totalPages": 87,
    "currentPage": 2,
    "hasNext": true,
    "hasPrev": true
  }
}

400

Incorrect request params (некорректные параметры запроса)

{
  "code": "validation_failed",
  "message": "getVersionsByConfigurationId.configurationId: must be a valid int64"
}

401

Auth exception (ошибка аутентификации)

404

Object not found (объект не найден)

{
  "code": "object_not_found",
  "message": "Configuration with id=7cb06ef0-87ab-4a60-b20e-33c2d9725a09 not found"
}

500

Internal error (внутренняя ошибка)

{
  "code": "internal_error",
  "message": "Database is unavailable"
}

Метод createConfigurationVersion

Создание версии конфигурации.

POST /v1/configurations/{configurationId}/versions/

Параметр пути

Имя Описание Обязательный Тип Пример

configurationId

Идентификатор конфигурации

Да

integer(int64)

5467

Параметры тела запроса

Пример запроса

{
  "displayName": "23.5.0",
  "releaseDate": "2023-05-19",
  "softwareRequirements": "Оперативная память - Минимум 512 МБ",
  "formulaName": "yandex-browser",
  "pillarProperty": {
    "additionalProp1": {},
    "additionalProp2": {},
    "additionalProp3": {}
  },
  "features": "Яндекс браузер 23.5.0",
  "changelog": "Changelog 23-5-0:"
}

Тип контента

application/json

Ответы

Код Сообщение Тип данных / объект схемы (DTO) Пример

200

Представление версии конфигурации

{
  "id": "1234",
  "createdAt": "2023-08-27T09:37:40.000Z",
  "updatedAt": "2023-08-27T09:37:40.000Z",
  "createdBy": "vivanov@domain.local",
  "updatedBy": "vivanov@domain.local",
  "configurationId": "5467",
  "displayName": "23.5.0",
  "releaseDate": "2023-05-19",
  "softwareRequirements": "Оперативная память - Минимум 512 МБ",
  "formulaName": "yandex-browser",
  "pillarProperty": {
    "additionalProp1": {},
    "additionalProp2": {},
    "additionalProp3": {}
  },
  "features": "Яндекс браузер 23.5.0",
  "changelog": "Changelog 23-5-0:"
}

400

Incorrect request params (некорректные параметры запроса)

{
  "code": "validation_failed",
  "message": "createConfigurationVersion.displayName: size must be between 3 and 256"
}

401

Auth exception (ошибка аутентификации)

404

Object not found (объект не найден)

{
  "code": "object_not_found",
  "message": "Configuration with id=7cb06ef0-87ab-4a60-b20e-33c2d9725a09 not found"
}

500

Internal error (внутренняя ошибка)

{
  "code": "internal_error",
  "message": "Database is unavailable"
}

Управление мультимедиа-контентом

Перед началом работы с мультимедиа-контентом убедитесь, что в хранилище S3 создана как минимум одна корзина:

  • для хранения картинок и скриншотов с именем, соответствующим параметру конфигурации lcm.multimedia.s3.images-buсket-name;

  • для хранения иконок с именем, соответствующим параметру конфигурации lcm.multimedia.s3.icons-buсket-name;

  • для хранения прочего контента с именем, соответствующим параметру конфигурации lcm.multimedia.s3.others-buсket-name.

Подробнее см. раздел «Настройка бэкенда продукта» документа «Руководство по установке».

Для управления мультимедиа-контентом используются методы:

Метод uploadMultimediaContent

Загрузка файла в S3-совместимое хранилище.

POST /v1/multimedia

Параметры тела запроса

Имя Описание Тип Обязательный

searchKey

Неуникальный ключ для поиска файлов в хранилище. Например, идентификатор конфигурации ПО для поиска связанных с ней изображений

string

Да

originalFileName

Исходное имя загружаемого файла

string

Да

fileCategory

Категория файла. Возможные значения: icons, images, others

string

Да

contentData

Содержимое одного файла. Должен быть заполнен Content-type

string($binary)

Да

Тип контента

multipart/form-data

Ответы

Код Сообщение Тип данных / объект схемы (DTO) Пример

200

Файл загружен

{
  "fileUrl": "images/open_office_aa-bb-00-11-ee.jpg",
  "fileSize": 512000
}

400

Incorrect request params (неверные параметры запроса)

{
  "code": "validation_failed",
  "message": "Content of the data file is null or empty"
}

401

Auth exception (ошибка аутентификации)

500

Internal error (внутренняя ошибка)

{
  "code": "internal_error",
  "message": "Database is unavailable"
}

Метод downloadMultimediaContent

Получение файла из S3-совместимого хранилища.

GET /v1/multimedia/{fileCategory}/{fileId}

Параметры пути

Имя Описание Обязательный Тип Пример

fileCategory

Категория файла

Да

string

icons

fileId

Идентификатор файла

Да

string

open_office_aa-bb-00-11-ee.jpg

Ответы

Код Сообщение Тип данных / объект схемы (DTO) Пример

200

Содержимое файла

400

Incorrect request params (неверные параметры запроса)

{
  "code": "validation_failed",
  "message": "Content of the data file is null or empty"
}

401

Auth exception (ошибка аутентификации)

404

Object not found (объект не найден)

{
  "code": "object_not_found",
  "message": "File with ID=my_file-123.jpg isn't found"
}

500

Internal error (внутренняя ошибка)

{
  "code": "internal_error",
  "message": "Database is unavailable"
}

Управление тегами конфигураций

Для управления тегами конфигураций используется метод getTagsList — получение списка тегов конфигураций.

Метод getTagsList

Получение списка тегов конфигураций.

POST /v1/tags/search

Параметры запроса

Имя Описание Обязательный Тип Пример

page

Общее количество страниц

Нет

integer

2

pageSize

Количество элементов, возвращаемых в запросе

Нет

integer

20

Тип контента

application/json

Пример запроса

"Сертиф"

Ответы

Код Сообщение Тип данных / объект схемы (DTO) Пример

200

Список тегов конфигураций

{
  "tags": [
    "Браузер"
  ],
  "meta": {
    "totalRecords": 1729,
    "pageSize": 20,
    "totalPages": 87,
    "currentPage": 2,
    "hasNext": true,
    "hasPrev": true
  }
}

400

Incorrect request params (некорректные параметры запроса)

{
  "code": "validation_failed",
  "message": "getTagList.getTagListRequest.mask: size must be between 3 and 256"
}

401

Auth exception (ошибка аутентификации)

500

Internal error (внутренняя ошибка)

{
  "code": "internal_error",
  "message": "Database is unavailable"
}

API логического модуля «Инвентаризация»

API-интерфейс модуля «Инвентаризация» разбит на несколько библиотек согласно назначению операций:

Управление настройками продукта

Для управления настройками продукта используются группы API-методов:

  • getSaltScheduleSettings — получение настроек расписания синхронизации агентов (minions) с сервером управления (master);

  • updateSaltScheduleSettings — изменение настроек расписания синхронизации агентов (minions) с сервером управления (master).

Группа методов getSaltScheduleSettings

Получение настроек расписания синхронизации агентов (minions) с сервером управления (master) в SaltStack.

В зависимости от типа операции вы можете отдельно получить настройки (интервал времени и допустимую задержку выполнения операции) для каждой из них, используя следующие методы:

  • GET /v1/app/settings/salt/schedules/highstate — применение назначенных конфигураций на устройствах;

  • GET /v1/app/settings/salt/schedules/grains — инвентаризация устройств;

  • GET /v1/app/settings/salt/schedules/grains_sync — синхронизация параметров Grains;

  • GET /v1/app/settings/salt/schedules/refresh_pillar — синхронизация файлов Pillar;

  • GET /v1/app/settings/salt/schedules/user_session_history — синхронизация данных о сессиях пользователей.

Все вышеперечисленные API-методы построены по единому принципу, поэтому ниже приведено общее описание, применимое ко всей группе GET /v1/app/settings/salt/schedules/{scheduleType}.

Параметр пути
Имя Описание Обязательный Тип Пример

scheduleType

Тип операции. Возможные значения: highstate, grains, grains_sync, refresh_pillar

Да

string

highstate

Ответы
Код Сообщение Тип данных / объект схемы (DTO) Пример

200

Текущие настройки расписаний для SaltStack

{
  "seconds": 3600,
  "minutes": 60,
  "hours": 24,
  "days": 14,
  "range": {
    "start": "09:00",
    "end": "18:00"
  },
  "splay": 10,
  "createdAt": "2023-08-27T09:37:40.000Z",
  "updatedAt": "2023-08-27T09:37:40.000Z",
  "updatedBy": "author"
}

401

Auth exception (ошибка аутентификации)

500

Внутренняя ошибка

{
  "code": "internal_error",
  "message": "DB property with name salt.schedule.highstate.seconds required, but not found"
}

Группа методов updateSaltScheduleSettings

Изменение настроек расписания синхронизации агентов (minions) с сервером управления (master) в SaltStack.

В зависимости от типа операции вы можете отдельно изменить настройки (интервал времени и допустимую задержку выполнения операции) для каждой из них, используя следующие методы:

  • PUT /v1/app/settings/salt/schedules/highstate — применение назначенных конфигураций на устройствах;

  • PUT /v1/app/settings/salt/schedules/grains — инвентаризация устройств;

  • PUT /v1/app/settings/salt/schedules/grains_sync — синхронизация параметров Grains;

  • PUT /v1/app/settings/salt/schedules/refresh_pillar — синхронизация файлов Pillar;

  • PUT /v1/app/settings/salt/schedules/user_session_history — синхронизация данных о сессиях пользователей.

Все вышеперечисленные API-методы построены по единому принципу, поэтому ниже приведено общее описание, применимое ко всей группе PUT /v1/app/settings/salt/schedules/{scheduleType}.

Параметр пути
Имя Описание Обязательный Тип Пример

scheduleType

Тип операции. Возможные значения: highstate, grains, grains_sync, refresh_pillar

Да

string

highstate

Параметры тела запроса
Пример запроса
{
  "seconds": 3600,
  "minutes": 60,
  "hours": 24,
  "days": 14,
  "range": {
    "start": "09:00",
    "end": "18:00"
  },
  "splay": 10
}
Тип контента

application/json

Ответы
Код Сообщение Тип данных / объект схемы (DTO) Пример

204

Успешное применение настроек

400

Incorrect request params (некорректные параметры запроса)

{
  "code": "validation_failed",
  "message": "One field of 'seconds', 'minutes', 'hours' or 'days' should be filled"
}

401

Auth exception (ошибка аутентификации)

500

Внутренняя ошибка

{
  "code": "internal_error",
  "message": "DB property with name salt.schedule.highstate.seconds required, but not found"
}

Управление параметрами истории активности пользователей

Для просмотра параметров истории активности пользователей используется API-метод getUserSessionsSettings.

Метод getUserSessionsSettings

Получение настроек сбора истории активности пользователей.

GET /v1/app/settings/user_sessions

Ответы
Код Сообщение Тип данных / объект схемы (DTO) Пример

200

Текущие настройки сбора истории активности пользователей

{
  "storageDaysCount": 1,
  "sessionHistoryCleanupCron": "0 0 0 */1 * *"
}

500

Internal error (внутренняя ошибка)

{
    "code": "internal_error",
    "message": "some description of the problem"
}

Описание параметров схемы

BasicError

Описание ошибки.

Имя поля Обязательное Тип Описание Пример

code

Да

string

Код ошибки. Включает параметр ErrorCode. Допустимые значения:

  • object_already_exists — объект уже существует;

  • object_not_found — объект не найден;

  • validation_failed — ошибка валидации;

  • authorization_failed — ошибка авторизации;

  • internal_error — внутренняя ошибка

validation_failed

message

Да

String

Сообщение об ошибке

Template contains not resolved variables

ErrorCode

Код ошибки.

Тип: string.

Допустимые значения:

  • object_already_exists — объект уже существует;

  • object_not_found — объект не найден;

  • validation_failed — ошибка валидации;

  • authorization_failed — ошибка авторизации;

  • internal_error — внутренняя ошибка.

SaltScheduleSettingsResponse

Текущие настройки расписаний для SaltStack.

Имя поля Обязательное Тип Описание Пример

seconds

Нет

integer

Определяет временной промежуток в секундах, через который будет выполняться операция. Минимальное значение: 1

3600

minutes

Нет

integer

Определяет временной промежуток в минутах, через который будет выполняться операция. Минимальное значение: 1

60

hours

Нет

integer

Определяет временной промежуток в часах, через который будет выполняться операция. Минимальное значение: 1

24

days

Нет

integer

Определяет временной промежуток в днях, через который будет выполняться операция. Минимальное значение: 1

14

range

Нет

string

Временной интервал от 00:00 до 23:59, в рамках которого будет выполняться операция согласно расписанию. Включает параметры TimeRange:

  • start — начало временного интервала в формате HH:MM (24 часа). Шаблон: ^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$;

  • end — окончание временного интервала в формате HH:MM (24 часа). Шаблон: ^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$

  • 09:00

  • 18:00

splay

Нет

integer

Определяет верхнюю границу случайной задержки перед запланированным выполнением в секундах. Например, если splay=10, ко времени следующего выполнения операции будет добавлен случайный промежуток от 0 до 10 секунд. Минимальное значение: 0. Максимальное значение: 10

5

SaltUpdateScheduleSettingsRequest

Запрос на изменение настроек расписаний для SaltStack.

Имя поля Обязательное Тип Описание Пример

seconds

Нет

integer

Определяет временной промежуток в секундах, через который будет выполняться операция. Минимальное значение: 1

3600

minutes

Нет

integer

Определяет временной промежуток в минутах, через который будет выполняться операция. Минимальное значение: 1

60

hours

Нет

integer

Определяет временной промежуток в часах, через который будет выполняться операция. Минимальное значение: 1

24

days

Нет

integer

Определяет временной промежуток в днях, через который будет выполняться операция. Минимальное значение: 1

14

range

Нет

string

Временной интервал от 00:00 до 23:59, в рамках которого будет выполняться операция согласно расписанию. Включает параметры TimeRange:

  • start — начало временного интервала в формате HH:MM (24 часа). Шаблон: ^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$;

  • end — окончание временного интервала в формате HH:MM (24 часа). Шаблон: ^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$

  • 09:00

  • 18:00

splay

Нет

integer

Определяет верхнюю границу случайной задержки перед запланированным выполнением в секундах. Например, если splay=10, ко времени следующего выполнения операции будет добавлен случайный промежуток от 0 до 10 секунд. Минимальное значение: 0. Максимальное значение: 10

5

createdAt

Да

string

Дата и время создания параметра

2023-08-27T09:37:40.000Z

updatedAt

Да

string

Дата и время последнего обновления параметра

2023-08-27T09:37:40.000Z

updatedBy

Нет

string

Автор последнего изменения параметра

author

TimeRange

Временной интервал от 00:00 до 23:59.

Имя поля Обязательное Тип Описание Пример

start

Да

string

Начало временного интервала в формате HH:MM (24 часа). Шаблон: ^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$

09:00

end

Да

string

Окончание временного интервала в формате HH:MM (24 часа). Шаблон: ^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$

18:00

UserSessionsSettingsResponse

Текущие настройки хранения истории активности пользователей.

Имя поля Обязательное Тип Описание Пример

storageDaysCount

Да

integer

Максимальное количество дней, в течение которых хранятся записи о сессиях. Минимальное значение: 1

1

sessionHistoryCleanupCron

Да

``

Cron-выражение в формате quartz, , задающее расписание автоматического удаления истории сессий, которые хранятся более, чем указано в параметре storageDaysCount (см. описание формата в разделе «Cron-выражение формата Quartz» документа «Руководство по эксплуатации»)

example: 0 0 0 */1 * *