Skip to content

Assets

Manage assets in the Threat & Asset Management (TAM) module.

Commands


assets list

List assets with optional filtering, searching, and sorting.

1
mysecutec assets list [flags]

Flags

Flag Type Default Description
--limit int 20 Maximum number of results
--offset int 0 Number of results to skip
--search string Search filter
--sort strings Sort fields (prefix - for descending)
--type strings Filter by asset type
--module strings Filter by license module
--public-facing bool Show only public-facing assets
--deleted bool Show deleted assets

Valid asset types: domain, hardware, ip, operating_system, person, service, software, subdomain, tenant, web_entity

Valid license modules: asm, dnm, lcm, m365

API

1
GET /tam/v1/assets/

Query Parameters:

Parameter Type Description
limit int Max results
offset int Skip results
search string Search filter
sort string Sort fields (comma-separated)
type string Asset type filter (comma-separated)
license_module string License module filter (comma-separated)
public_facing bool Public-facing filter
deleted bool Include deleted

Request Example

1
mysecutec assets list --limit 5 --type domain,ip --module asm --sort -created_at
1
2
3
GET /tam/v1/assets/?limit=5&offset=0&type=domain,ip&license_module=asm&sort=-created_at
Authorization: Bearer <token>
Accept: application/json

Response

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
{
  "pagination": {
    "limit": 5,
    "offset": 0,
    "total": 42,
    "unfiltered_total": 150,
    "next": "/tam/v1/assets/?limit=5&offset=5",
    "previous": null
  },
  "assets": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "type": "domain",
      "name": "example.com",
      "version": null,
      "note": "Primary domain",
      "public_facing": true,
      "business_value": 5,
      "identifying_properties": {
        "domain": "example.com"
      },
      "tech_solutions": [
        {
          "name": "ASM Scanner",
          "version": "1.0"
        }
      ],
      "threat_summaries": {
        "total": 12,
        "critical": 1,
        "high": 3,
        "medium": 5,
        "low": 2,
        "info": 1
      },
      "created_at": "2025-01-15T10:30:00Z",
      "updated_at": "2025-06-20T14:22:00Z",
      "deleted": false,
      "deleted_at": null
    }
  ]
}

Model: Asset

Field Type Description
id string (UUID) Asset identifier
type string Asset type
name string Asset name
version string Asset version (nullable)
note string User note (nullable)
public_facing bool Whether asset is public-facing
business_value int (0-5) Business value rating
identifying_properties map Key-value properties
tech_solutions []TechSolution Associated tech solutions
threat_summaries ThreatSummary Aggregated threat counts
created_at timestamp Creation timestamp
updated_at timestamp Last update timestamp
deleted bool Soft-delete flag
deleted_at timestamp Deletion timestamp (nullable)

assets get

Retrieve a single asset by ID.

1
mysecutec assets get <asset_id>

API

1
GET /tam/v1/assets/{id}

Request Example

1
mysecutec assets get a1b2c3d4-e5f6-7890-abcd-ef1234567890
1
2
3
GET /tam/v1/assets/a1b2c3d4-e5f6-7890-abcd-ef1234567890
Authorization: Bearer <token>
Accept: application/json

Response

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "type": "domain",
  "name": "example.com",
  "version": null,
  "note": "Primary domain",
  "public_facing": true,
  "business_value": 5,
  "identifying_properties": {
    "domain": "example.com"
  },
  "tech_solutions": [
    {
      "name": "ASM Scanner",
      "version": "1.0"
    }
  ],
  "threat_summaries": {
    "total": 12,
    "critical": 1,
    "high": 3,
    "medium": 5,
    "low": 2,
    "info": 1
  },
  "created_at": "2025-01-15T10:30:00Z",
  "updated_at": "2025-06-20T14:22:00Z",
  "deleted": false,
  "deleted_at": null
}

assets update

Update an asset's note, public-facing status, or business value.

1
mysecutec assets update <asset_id> [flags]

Flags

Flag Type Description
--note string Asset note
--public-facing string Public facing (true/false)
--business-value int Business value (1-5)

API

1
PATCH /tam/v1/assets/{id}

Request Example

1
mysecutec assets update a1b2c3d4 --note "Updated note" --business-value 4 --public-facing true
1
2
3
4
5
6
7
8
9
PATCH /tam/v1/assets/a1b2c3d4
Authorization: Bearer <token>
Content-Type: application/json

{
  "note": "Updated note",
  "public_facing": true,
  "business_value": 4
}

Model: AssetPatch

Field Type Description
note string Asset note
public_facing *bool Public-facing flag
business_value *int Business value (1-5)

Response

Returns the updated Asset object (same structure as assets get).


assets business-value

Bulk-set the business value (1-5) for many assets at once. Asset IDs may be passed as positional arguments, repeated --id flags, or piped on stdin (one ID per line) with --stdin.

Mutation

This command modifies data. It prompts for confirmation unless --yes is passed.

1
mysecutec assets business-value [asset_id...] [flags]

Flags

Flag Type Default Description
--id stringArray Asset ID (repeatable)
--value int Required. Business value to set (1-5)
--stdin bool Read asset IDs from stdin (one per line)
-y, --yes bool Skip the confirmation prompt

API

1
PUT /threat/v1/assets/business_value

Note

Unlike the other asset endpoints (which live under /tam/v1), this bulk endpoint is under /threat/v1.

Request Example

1
mysecutec assets business-value a1b2c3d4 e5f6g7h8 --value 5 --yes

Read IDs from stdin (e.g. piped from assets list):

1
mysecutec assets list --type domain -o json | jq -r '.assets[].id' | mysecutec assets business-value --stdin --value 4 --yes
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
PUT /threat/v1/assets/business_value
Authorization: Bearer <token>
Content-Type: application/json

{
  "asset_ids": [
    "a1b2c3d4",
    "e5f6g7h8"
  ],
  "business_value": 5
}

Model: AssetBusinessValueBulkUpdate

Field Type Description
asset_ids []string Asset identifiers to update
business_value int Business value (1-5)

assets delete

Soft-delete an asset.

1
mysecutec assets delete <asset_id>

API

1
DELETE /tam/v1/assets/{id}

Request Example

1
mysecutec assets delete a1b2c3d4-e5f6-7890-abcd-ef1234567890
1
2
DELETE /tam/v1/assets/a1b2c3d4-e5f6-7890-abcd-ef1234567890
Authorization: Bearer <token>

Response

Returns the deleted Asset object with deleted: true and deleted_at set.


assets restore

Restore a soft-deleted asset.

1
mysecutec assets restore <asset_id>

API

1
POST /tam/v1/assets/{id}/undelete

Request Example

1
mysecutec assets restore a1b2c3d4-e5f6-7890-abcd-ef1234567890
1
2
POST /tam/v1/assets/a1b2c3d4-e5f6-7890-abcd-ef1234567890/undelete
Authorization: Bearer <token>

Response

Returns the restored Asset object with deleted: false.


assets threats

List threats associated with a specific asset.

1
mysecutec assets threats <asset_id> [flags]

Flags

Flag Type Default Description
--limit int 20 Maximum number of results
--offset int 0 Number of results to skip
--search string Search filter
--sort strings Sort fields
--severity strings Filter by severity

Valid severities: critical, high, medium, low, info

API

1
GET /tam/v1/assets/{id}/threats

Request Example

1
mysecutec assets threats a1b2c3d4 --severity critical,high --limit 10
1
2
3
GET /tam/v1/assets/a1b2c3d4/threats?limit=10&severity=critical,high
Authorization: Bearer <token>
Accept: application/json

Response

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
{
  "pagination": {
    "limit": 10,
    "offset": 0,
    "total": 4
  },
  "threats": [
    {
      "id": "t1234-5678",
      "name": "CVE-2024-1234",
      "severity": "critical",
      "cvss_score": 9.8,
      "system_status": "unsolved",
      "first_seen_at": "2025-03-01T12:00:00Z"
    }
  ]
}

assets filter

Get available filter options for the assets list view.

1
mysecutec assets filter

API

1
GET /tam/v1/assets/filter

Request Example

1
mysecutec assets filter
1
2
3
GET /tam/v1/assets/filter
Authorization: Bearer <token>
Accept: application/json

Response

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
{
  "types": [
    {
      "label": "Domain",
      "value": "domain",
      "unfiltered_total": 25,
      "filtered_total": 25
    },
    {
      "label": "IP Address",
      "value": "ip",
      "unfiltered_total": 50,
      "filtered_total": 50
    }
  ],
  "public_facings": [
    {
      "label": "Yes",
      "value": true,
      "unfiltered_total": 30,
      "filtered_total": 30
    },
    {
      "label": "No",
      "value": false,
      "unfiltered_total": 45,
      "filtered_total": 45
    }
  ],
  "license_modules": [
    {
      "label": "ASM",
      "value": "asm",
      "unfiltered_total": 60,
      "filtered_total": 60
    }
  ]
}

Model: FilterOption

Field Type Description
label string Display label
value string or bool Filter value
unfiltered_total int Total count without filters
filtered_total int Count with current filters