Служба управления конфигурациями "Осмакс"

Описание API

Версия 1.11.0

Содержание

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

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

    Авторизация

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

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

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

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

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

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

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

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

      Placing tickets for `vivanov@OSMAX.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@OSMAX.TERRA.INNO.TECH
      
        Issued                Expires               Principal
      Feb 13 12:51:40 2024  Feb 13 22:51:40 2024  krbtgt/OSMAX.TERRA.INNO.TECH@OSMAX.TERRA.INNO.TECH
      Feb 13 12:51:47 2024  Feb 13 22:51:40 2024  HTTP/staging-osmax.terra.inno.tech@OSMAX.TERRA.INNO.TECHH

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

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

    curl -x POST --location "https://"staging-osmax-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/osmax-core задан параметр osmax.authorization.user-groups-white-list, доступ будет разрешен только пользователям, входящим в указанные группы (см. раздел «Предварительная конфигурация бэкенда. Параметры настройки авторизации и аутентификация»).

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

    В разделе описаны методы API-интерфейса модуля «Каталог конфигураций», предназначенные для управления формулами SaltStack и управления конфигурациями:

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

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

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

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

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

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

    Метод deleteFormula

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

    DELETE /v2/formulas/{formulaName}

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

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

    formulaName

    Имя формулы

    Да

    string

    Ответы

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

    200

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

    {
      "importResult": [
        {
          "server": "http://localhost:9000",
          "description": "Сообщение о результате выполнения операции",
          "status": "imported"
        },
        {
          "server": "http://localhost:9000",
          "description": "Сообщение о результате выполнения операции",
          "status": "imported"
        }
      ],
      "status": "imported"
    }

    401

    Ошибка аутентификации

    422

    Ошибка операции над сущностью пакета из-за связи с активными версиями

    {
      "code": "validation_failed",
      "message": "Cannot reload formula with name ark since it is used by active versions",
      "versions": [
        {
          "versionId": 1234,
          "versionDisplayName": "23.5.0",
          "configurationId": 5467,
          "configurationDisplayName": "Яндекс браузер"
        }
      ]
    }

    500

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

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

    Метод getCategoryById

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

    GET /v1/categories/{categoryId}

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

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

    categoryId

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

    Да

    string

    Сеть

    Ответы

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

    200

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

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

    400

    Некорректные параметры запроса

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

    401

    Ошибка аутентификации

    404

    Объект не найден

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

    500

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

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

    Метод updateCategoryById

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

    PUT /v1/categories/{categoryId}

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

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

    categoryId

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

    Да

    string

    Сеть

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

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

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

    Тип контента

    application/json

    Ответы

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

    200

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

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

    400

    Некорректные параметры запроса

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

    401

    Ошибка аутентификации

    404

    Объект не найден

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

    500

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

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

    Метод deleteCategoryById

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

    DELETE /v1/categories/{categoryId}

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

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

    categoryId

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

    Да

    string

    Сеть

    Ответы

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

    204

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

    400

    Некорректные параметры запроса

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

    401

    Ошибка аутентификации

    404

    Объект не найден

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

    500

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

    {
      "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

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

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

    400

    Некорректные параметры запроса

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

    401

    Ошибка аутентификации

    500

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

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

    Метод getCategoryList

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

    POST /v1/categories/search

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

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

    page

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

    Нет

    integer

    2

    pageSize

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

    Нет

    integer

    20

    Ответы

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

    200

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

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

    400

    Некорректные параметры запроса

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

    401

    Ошибка аутентификации

    500

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

    {
      "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

    ErrorCode

    Код ошибки.

    Тип: string.

    Возможные значения:

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

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

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

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

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

    HexColor

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

    Тип: string.

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

    Пример: 00ff00.

    IconCode

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

    Тип: string.

    Пример: ms_office_icon.

    PaginationMetadata

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

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

    totalRecords

    Да

    integer

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

    1729

    pageSize

    Да

    integer

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

    20

    totalPages

    Да

    integer

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

    87

    currentPage

    Да

    integer

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

    2

    hasNext

    Да

    boolean

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

    true

    hasPrev

    Да

    boolean

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

    true

    RelatedActiveVersionsInfo S3ObjectDeleteResult S3ObjectImportStatus

    Информация об активной версии.

    S3ObjectDeleteResult

    Результат удаления объекта.

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

    status

    Да

    string

    Статус нахождения объекта в хранилище. Включает параметр S3ObjectImportStatus. Возможные значения:

    • failed — не загружен;

    • imported — успешно загружен;

    • partially_imported — частично загружен;

    • deleted — удален

    imported

    importResult

    Список результатов загрузки/удаления объекта. Включает параметр S3ObjectImportResult

    S3ObjectImportResult

    Результат загрузки/удаления объекта.

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

    server

    Нет

    string

    Имя/URI сервера

    http://localhost:9000

    description

    Нет

    string

    Сообщение о результате выполнения операции

    Операция выполнена успешно

    status

    Нет

    string

    Статус нахождения объекта на сервере. Включает параметр S3ServerObjectImportStatus. Возможные значения:

    • error — ошибка выполнения операции;

    • imported — успешно загружен;

    • deleted — удален

    imported

    S3ObjectImportStatus

    Статус нахождения объекта в хранилище.

    Тип: string.

    Возможные значения:

    • failed — не загружен;

    • imported — успешно загружен;

    • partially_imported — частично загружен;

    • deleted — удален.

    S3ServerObjectImportStatus

    Статус нахождения объекта на сервере.

    Тип: string.

    Возможные значения:

    • error — ошибка выполнения операции;

    • imported — успешно загружен;

    • deleted — удален.

    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 — синхронизация данных о сессиях пользователей;

    • GET /v1/app/settings/salt/schedules/user_agent_installation — сбор данных об установке агента (minion);

    • GET /v1/app/settings/salt/schedules/software_inventory_sync — инвентаризация устройств с помощью модулей выполнения (execution modules), при которой собираются только измененные данные;

    • GET /v1/app/settings/salt/schedules/software_inventory_full_sync — полная инвентаризация устройств с помощью модулей выполнения (execution modules).

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

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

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

    scheduleType

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

    Да

    string

    highstate

    Ответы

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

    200

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

    {
      "seconds": 3600,
      "hours": 24,
      "minutes": 60,
      "days": 14,
      "range": "{}",
      "splay": 10
    }

    401

    Ошибка аутентификации

    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 — синхронизация данных о сессиях пользователей;

    • GET /v1/app/settings/salt/schedules/user_agent_installation — сбор данных об установке агента (minion);

    • GET /v1/app/settings/salt/schedules/software_inventory_sync — инвентаризация устройств с помощью модулей выполнения (execution modules), во время которой собираются только измененные данные;

    • GET /v1/app/settings/salt/schedules/software_inventory_full_sync — полная инвентаризация устройств с помощью модулей выполнения (execution modules).

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

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

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

    scheduleType

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

    Да

    string

    highstate

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

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

    {
      "seconds": 3600,
      "hours": 24,
      "minutes": 60,
      "days": 14,
      "range": "{}",
      "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

    Ошибка аутентификации

    500

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

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

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

    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 — внутренняя ошибка.

    LastExecutionStatus

    Статус последнего запуска задания на удаление данных.

    Тип: string.

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

    • ERROR — задание выполнено с ошибкой;

    • SUCCESS — задание успешно выполнено.

    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

    API модуля установки ОС

    В разделе описаны методы API-интерфейса модуля установки ОС, предназначенные для выполнения операций по поддержке хода процесса установки ОС.

    getBootLoaderConfigurationFile

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

    GET /v1/boot_loaders/{bootloaderId}/config

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

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

    bootloaderId

    Уникальный внутренний идентификатор программы-загрузчика

    Да

    string

    ipxe

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

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

    mac

    MAC-адрес устройства

    Нет

    string

    00:1b:63:84:45:e6

    templateSlug

    Cистемное наименование шаблона

    Нет

    string

    ipxe_initial

    Ответы

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

    200

    Сформированный конфигурационный файл для программы-загрузчика

    404

    Объект не найден

    {
      "code": "object_not_found",
      "message": "string"
    }

    422

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

    {
      "code": "object_not_found",
      "message": "string"
    }

    500

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

    {
      "code": "internal_error",
      "message": "string"
    }

    getPostInstallScriptFile

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

    GET /v1/provisioning_scripts

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

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

    machineId

    Уникальный внутренний идентификатор устройства

    Да

    string($uuid)

    75e291ec-83fe-4fd4-bd2e-6d327801c71f

    Ответы

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

    200

    Файл пост-установочного скрипта

    401

    Ошибка аутентификации

    404

    Объект не найден

    {
      "code": "object_not_found",
      "message": "string"
    }

    500

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

    {
      "code": "internal_error",
      "message": "string"
    }

    getUnattendedInstallFile

    Получение назначенного на устройство файла автоответов, заполненного параметрами согласно шаблону, который определяется по MAC-адресу, передаваемому в запросе.

    GET /v1/unattended_install_files

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

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

    mac

    MAC-адрес устройства

    Да

    string

    00:1b:63:84:45:e6

    Ответы

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

    200

    Файл автоответов

    401

    Ошибка аутентификации

    404

    Объект не найден

    {
      "code": "object_not_found",
      "message": "string"
    }

    500

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

    {
      "code": "internal_error",
      "message": "string"
    }

    updateInstallationProcessStatus

    Фиксация состояния процесса установки ОС на новое устройство.

    POST /v1/unprovisioned_machines/{unprovisionedMachineId}/installation_process/status

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

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

    unprovisionedMachineId

    Уникальный внутренний идентификатор устройства

    Да

    string($uuid)

    75e291ec-83fe-4fd4-bd2e-6d327801c71f

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

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

    status

    Статусы этапов установки ОС. Возможные значения:

    • PRESTART — подготовка к установке;

    • IN_PROCESS — в процессе установки;

    • INSTALL_ERROR — ошибка установки;

    • FINISHED — завершение установки

    Да

    string

    IN_PROCESS

    step

    Название текущего шага установки ОС

    Да

    string

    additionalInfo

    Дополнительная информация, например при ошибке установки код ответа или описание причины

    Нет

    string

    Description

    Ответы

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

    204

    Статус успешно изменен

    404

    Объект не найден

    {
      "code": "object_not_found",
      "message": "string"
    }

    422

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

    {
      "code": "invalid_entity",
      "message": "string"
    }

    500

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

    {
      "code": "internal_error",
      "message": "string"
    }

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

    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 — внутренняя ошибка.