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

Описание API

Версия 1.1.0

Содержание

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

    Модуль «Сервисный каталог» продукта «Служба управления конфигурациями» предоставляет RESTful API для управления спецификациями политик и ПО в «Кабинете администратора», а также управления Salt-формулами.

    API модуля «Сервисный каталог»

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

    • Specifications — API для управления спецификациями конфигураций;

    • Formulas — API для управления формулами SaltStack.

    Каталог Specifications

    Каталог включает методы:

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

    • getFormulaList — получение списка спецификаций;

    • createFormula — создание (импорт) спецификации;

    Метод getSpecificationById

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

    GET /v1/specifications/{specificationId}

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

    specificationId

    Идентификатор спецификации

    Да

    null

    Тип контента
    • application/json

    Ответы
    Код Сообщение Тип данных Пример

    200

    Представление спецификации

    {
      "id": "5467",
      "formulaName": "yandex-browser",
      "displayName": "Яндекс браузер",
      "description": "Formula to install web browser developed by Yandex.",
      "stagesToComplete": [
        ""
      ],
      "pillarConfigName": "Formula to install web browser developed by Yandex.",
      "pillarProperties": [
        {
          "key": "yandex-browser.lookup.pkg.version",
          "value": "23.5.4.685-1",
          "description": "The specific version of the package. If value is an empty string, then will be used the latest version."
        }
      ]
    }

    400

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

    {
      "code": "validation_failed",
      "message": "Template contains not resolved variables"
    }

    401

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

    404

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

    {
      "code": "validation_failed",
      "message": "Template contains not resolved variables"
    }

    500

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

    {
      "code": "validation_failed",
      "message": "Template contains not resolved variables"
    }

    Метод getSpecificationList

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

    POST /v1/specifications/search

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

    page

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

    Нет

    2

    pageSize

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

    Нет

    20

    Пример запроса
    {
      "displayName": "Яндекс браузер",
      "description": "Formula to install web browser developed by Yandex."
    }
    Тип контента
    • application/json

    Ответы
    Код Сообщение Тип данных Пример

    200

    Список спецификаций

    {
      "formulaSpecifications": [
        {
          "id": "5467",
          "formulaName": "yandex-browser",
          "displayName": "Яндекс браузер",
          "description": "Formula to install web browser developed by Yandex.",
          "stagesToComplete": [
            ""
          ],
          "pillarConfigName": "Formula to install web browser developed by Yandex.",
          "pillarProperties": [
            {
              "key": "yandex-browser.lookup.pkg.version",
              "value": "23.5.4.685-1",
              "description": "The specific version of the package. If value is an empty string, then will be used the latest version."
            }
          ]
        }
      ],
      "meta": {
        "totalRecords": 1729,
        "pageSize": 20,
        "totalPages": 87,
        "currentPage": 2,
        "hasNext": true,
        "hasPrev": true
      }
    }

    400

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

    {
      "code": "validation_failed",
      "message": "Template contains not resolved variables"
    }

    401

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

    500

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

    {
      "code": "validation_failed",
      "message": "Template contains not resolved variables"
    }

    Метод createSpecification

    Создание спецификации.

    POST /v1/specifications

    Пример запроса
    {
      "formulaName": "yandex-browser",
      "displayName": "Яндекс браузер",
      "description": "Formula to install web browser developed by Yandex.",
      "stagesToComplete": [
        ""
      ],
      "pillarConfigName": "Formula to install web browser developed by Yandex.",
      "pillarProperties": [
        {
          "key": "yandex-browser.lookup.pkg.version",
          "value": "23.5.4.685-1",
          "description": "The specific version of the package. If value is an empty string, then will be used the latest version."
        }
      ]
    }
    Тип контента
    • application/json

    Ответы
    Код Сообщение Тип данных Пример

    200

    Представление спецификации

    {
      "id": "5467",
      "formulaName": "yandex-browser",
      "displayName": "Яндекс браузер",
      "description": "Formula to install web browser developed by Yandex.",
      "stagesToComplete": [
        ""
      ],
      "pillarConfigName": "Formula to install web browser developed by Yandex.",
      "pillarProperties": [
        {
          "key": "yandex-browser.lookup.pkg.version",
          "value": "23.5.4.685-1",
          "description": "The specific version of the package. If value is an empty string, then will be used the latest version."
        }
      ]
    }

    400

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

    {
      "code": "validation_failed",
      "message": "Template contains not resolved variables"
    }

    401

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

    404

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

    {
      "code": "validation_failed",
      "message": "Template contains not resolved variables"
    }

    500

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

    {
      "code": "validation_failed",
      "message": "Template contains not resolved variables"
    }

    Каталог Formulas

    Каталог включает метод:

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

    Метод importFormulas

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

    POST /v1/formulas

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

    formula

    Файл с формулой

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

    Да

    Тип контента
    • multipart/form-data

    Ответы
    Код Сообщение Тип данных Пример

    200

    Формула добавлена в S3

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

    401

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

    404

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

    {
      "code": "validation_failed",
      "message": "Template contains not resolved variables"
    }

    500

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

    {
      "code": "validation_failed",
      "message": "Template contains not resolved variables"
    }