Import assets

POST /api/v1/assets/import

Mass creation or updating of assets. If the asset FQDN is specified, then it acts as a unique ID for the asset within the tenant. If no FQDN is specified, then the first IP address from the specified array of addresses is used to identify the asset. If the asset name is not specified, then it is filled with either the FQDN value or the value of the first IP address. Assets imported from Kaspersky Security Center cannot be updated. Therefore, during the import process, FQDN conflicts may occur if a Kaspersky Security Center asset with the same FQDN already exists in the tenant. The occurrence of such a conflict prevents the processing of the conflicting asset, but does not prevent the processing of other assets specified in the request body.

Access: administrator and analyst.

Request body

Format: 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"`

}

 

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

}

Request mandatory fields

Name

Data type

Mandatory

Description

Value example

tenantID

string

Yes

Tenant ID

00000000-0000-0000-0000-000000000000

assets

[]Asset

Yes

Array of imported assets

 

Asset mandatory fields

Name

Data type

Mandatory

Description

Value example

fqdn

string

If the ipAddresses array is not specified

Asset FQDN. It is recommended that you specify the FQDN and not just the host name. Priority feature for asset identification.

my-asset-1.example.com

my-asset-1

ipAddresses

[]string

If FQDN is not specified

Array of IP addresses for the asset. IPv4 or IPv6. The first element of the array is used as a secondary feature for asset identification.

["192.168.1.1", "192.168.2.2"]

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

Response

HTTP code: 200

Format: 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"`

}

Possible errors

HTTP code

Description

message field value

details field value

400

Tenant ID is not specified

tenantID required

 

400

Attempt to import assets to the shared tenant

import into shared tenant not allowed

 

400

Not a single asset was specified in the request body

at least one asset required

 

400

None of the mandatory fields is specified

one of fields required

asset[<index>]: fqdn, ipAddresses

400

Invalid FQDN

invalid value

asset[<index>].fqdn

400

Invalid IP address

invalid value

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

400

IP address is repeated

duplicated value

asset[<index>].ipAddresses

400

Invalid MAC address

invalid value

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

400

MAC address is repeated

duplicated value

asset[<index>].macAddresses

403

The user does not have the required role in the specified tenant

access denied

 

404

The specified tenant was not found

tenant not found

 

406

The specified tenant was disabled

tenant disabled

 

500

Any other internal errors

variable

variable

Page top