Импорт активов

Особенности идентификации, создания и обновления активов

Активы импортируются в соответствии с правилами слияния данных об активах.

POST /api/v1/assets/import

Массовое создание или обновление активов.

Доступ: администратор, аналитик.

Тело запроса

Формат: JSON

type Request struct {

   TenantID string  `json:"tenantID"`

    Assets   []Asset `json:"assets"`

}

 

type Asset struct {

    Name            string          `json:"name"`

    FQDN            string          `json:"fqdn"`

    IPAddresses     []string        `json:"ipAddresses"`

    MACAddresses    []string        `json:"macAddresses"`

    Owner           string          `json:"owner"`

    OS              *OS             `json:"os"`

    Software        []Software      `json:"software"`

    Vulnerabilities []Vulnerability `json:"vulnerabilities"`

    CustomFields    []Software      `json:"customFields"`

}

 

type OS struct {

    Name    string `json:"name"`

    Version uint64 `json:"version"`

}

 

type Software struct {

    Name    string `json:"name"`

    Version string `json:"version"`

    Vendor  string `json:"vendor"`

}

 

type Vulnerability struct {

    KasperskyID           string   `json:"kasperskyID"`

    ProductName           string   `json:"productName"`

    DescriptionURL        string   `json:"descriptionURL"`

    RecommendedMajorPatch string   `json:"recommendedMajorPatch"`

    RecommendedMinorPatch string   `json:"recommendedMinorPatch"`

    SeverityStr           string   `json:"severityStr"`

    Severity              uint64   `json:"severity"`

    CVE                   []string `json:"cve"`

    ExploitExists         bool     `json:"exploitExists"`

    MalwareExists         bool     `json:"malwareExists"`

}

 

type CustomFields struct {

    ID           string   `json:"id"`

    Name         string   `json:"name"`

    Value        string   `json:"value"`

}

Обязательные поля Request

Имя

Тип данных

Обязательный

Описание

Пример значения

tenantID

string

Да

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

00000000-0000-0000-0000-000000000000

assets

[]Asset

Да

Массив импортируемых активов

 

Обязательные поля Asset

Имя

Тип данных

Обязательный

Описание

Пример значения

fqdn

string

Если не указан ipAddresses

FQDN актива. Рекомендуется указывать именно FQDN, а не просто имя хоста. Приоритетный признак для идентификации актива.

my-asset-1.example.com

my-asset-1

ipAddresses

[]string

Если не указан fqdn

Массив IP-адресов актива. IPv4 или IPv6. Первый элемент массива используется как второстепенный признак для идентификации актива.

["192.168.1.1", "192.168.2.2"]

["2001:0db8:85a3:0000:0000:8a2e:0370:7334"]

Ответ

HTTP-код: 200

Формат: JSON

type Response struct {

    InsertedIDs  map[int64]interface{} `json:"insertedIDs"`

    UpdatedCount uint64                `json:"updatedCount"`

    Errors       []ImportError         `json:"errors"`

}

 

type ImportError struct {

    Index   uint64 `json:"index"`

    Message string `json:"message"`

}

Возможные ошибки

HTTP-код

Описание

Значение поля message

Значение поля details

400

Не указан идентификатор тенанта (tenantID)

tenantID required

 

400

Попытка импорта активов в общий тенант

import into shared tenant not allowed

 

400

В теле запроса не указан ни один актив

at least one asset required

 

400

Не указано ни одно из обязательных полей

one of fields required

asset[<index>]: fqdn, ipAddresses

400

Неверный FQDN

invalid value

asset[<index>].fqdn

400

Неверный IP address

invalid value

asset[<index>].ipAddresses[<index>]

400

Дублируется IP адрес

duplicated value

asset[<index>].ipAddresses

400

Неверный MAC адрес

invalid value

asset[<index>].macAddresses[<index>]

400

Дублируется MAC адрес

duplicated value

asset[<index>].macAddresses

403

Пользователь не имеет необходимой роли в указанном тенанте

access denied

 

404

Указанный тенант не найден

tenant not found

 

406

Указанный тенант отключен

tenant disabled

 

500

Любые другие внутренние ошибки

вариативное

вариативное

В начало