Intel471Ex.Tprm (intel471_ex v0.2.0)

Copy Markdown

Functions for working with the Intel 471 Verity Third-Party Risk Management (TPRM) API.

Service path: integrations/tprm/v1

Provides monitor CRUD, scan data endpoints, and configuration management.

Summary

Functions

Create a TPRM monitor.

Delete a TPRM monitor by ID.

Edit a TPRM monitor.

Get the current configuration for a section.

Get the default configuration for a section.

Get the configuration schema.

Get the user configuration for a section.

Get a TPRM monitor by ID.

Get scans for a TPRM monitor.

Get scan data for a TPRM scan.

Get a specific scan data element.

Get children of a scan data element.

Get discovery data for a scan data element.

Get events for a scan data element.

Get relationships for a scan data element.

Get scan data graph for a TPRM scan.

Get scan data tree for a TPRM scan.

List TPRM monitors.

Update the user configuration for a section.

Run a TPRM monitor.

Functions

create_monitor(body)

@spec create_monitor(map()) :: {:ok, map()} | {:error, any()}

Create a TPRM monitor.

Parameters

  • body: Monitor creation request body
    • :name — Monitor name
    • :targets — List of target domains
    • :labels — List of labels
    • :frequency — Scan frequency
    • :impact — Impact level
    • :collection_method — Collection method (default: "passive")
    • Additional optional fields

Examples

{:ok, monitor} = Intel471Ex.Tprm.create_monitor(%{
  name: "vendor.example.com",
  targets: ["vendor.example.com"],
  labels: ["third-party"],
  frequency: "weekly",
  impact: "major",
  collection_method: "passive"
})

delete_monitor(id)

@spec delete_monitor(String.t()) :: {:ok, map()} | {:error, any()}

Delete a TPRM monitor by ID.

Examples

{:ok, _} = Intel471Ex.Tprm.delete_monitor("monitor-id")

edit_monitor(id, body)

@spec edit_monitor(String.t(), map()) :: {:ok, map()} | {:error, any()}

Edit a TPRM monitor.

Parameters

  • id: Monitor ID
  • body: Updated monitor fields (all optional)

Examples

{:ok, _} = Intel471Ex.Tprm.edit_monitor("monitor-id", %{name: "updated-name", impact: "critical"})

get_config_current(section)

@spec get_config_current(String.t()) :: {:ok, map()} | {:error, any()}

Get the current configuration for a section.

Examples

{:ok, config} = Intel471Ex.Tprm.get_config_current("passive")

get_config_defaults(section)

@spec get_config_defaults(String.t()) :: {:ok, map()} | {:error, any()}

Get the default configuration for a section.

Examples

{:ok, defaults} = Intel471Ex.Tprm.get_config_defaults("passive")

get_config_schema()

@spec get_config_schema() :: {:ok, map()} | {:error, any()}

Get the configuration schema.

Examples

{:ok, schema} = Intel471Ex.Tprm.get_config_schema()

get_config_user(section)

@spec get_config_user(String.t()) :: {:ok, map()} | {:error, any()}

Get the user configuration for a section.

Examples

{:ok, user_config} = Intel471Ex.Tprm.get_config_user("passive")

get_monitor(id)

@spec get_monitor(String.t()) :: {:ok, map()} | {:error, any()}

Get a TPRM monitor by ID.

Examples

{:ok, monitor} = Intel471Ex.Tprm.get_monitor("monitor-id")

get_monitor_logs(id, params \\ %{})

@spec get_monitor_logs(String.t(), map()) :: {:ok, map()} | {:error, any()}

Get monitor logs.

Parameters

  • id: Monitor ID
  • params: Query parameters (:limit, :search_text, :cursor, :backward, :log_type)

Examples

{:ok, logs} = Intel471Ex.Tprm.get_monitor_logs("monitor-id")
{:ok, logs} = Intel471Ex.Tprm.get_monitor_logs("monitor-id", %{limit: 50, log_type: "scan"})

get_monitor_scans(id, params \\ %{})

@spec get_monitor_scans(String.t(), map()) :: {:ok, map()} | {:error, any()}

Get scans for a TPRM monitor.

Parameters

  • id: Monitor ID
  • params: Query parameters (:status filter)

Examples

{:ok, scans} = Intel471Ex.Tprm.get_monitor_scans("monitor-id")
{:ok, scans} = Intel471Ex.Tprm.get_monitor_scans("monitor-id", %{status: "completed"})

get_scan_data(scan_id, params \\ %{})

@spec get_scan_data(String.t(), map()) :: {:ok, map()} | {:error, any()}

Get scan data for a TPRM scan.

Parameters

  • scan_id: Scan ID
  • params: Query parameters (:category, :type, :source, :annotated, :starred, :text, :sort, :descending, :limit, :cursor, :backward)

Examples

{:ok, data} = Intel471Ex.Tprm.get_scan_data("scan-id")
{:ok, data} = Intel471Ex.Tprm.get_scan_data("scan-id", %{category: "domain", limit: 50})

get_scan_data_element(scan_id, element_id)

@spec get_scan_data_element(String.t(), String.t()) :: {:ok, map()} | {:error, any()}

Get a specific scan data element.

Examples

{:ok, element} = Intel471Ex.Tprm.get_scan_data_element("scan-id", "element-id")

get_scan_data_element_children(scan_id, element_id)

@spec get_scan_data_element_children(String.t(), String.t()) ::
  {:ok, map()} | {:error, any()}

Get children of a scan data element.

Examples

{:ok, children} = Intel471Ex.Tprm.get_scan_data_element_children("scan-id", "element-id")

get_scan_data_element_discovery(scan_id, element_id)

@spec get_scan_data_element_discovery(String.t(), String.t()) ::
  {:ok, map()} | {:error, any()}

Get discovery data for a scan data element.

Examples

{:ok, discovery} = Intel471Ex.Tprm.get_scan_data_element_discovery("scan-id", "element-id")

get_scan_data_element_events(scan_id, element_id)

@spec get_scan_data_element_events(String.t(), String.t()) ::
  {:ok, map()} | {:error, any()}

Get events for a scan data element.

Examples

{:ok, events} = Intel471Ex.Tprm.get_scan_data_element_events("scan-id", "element-id")

get_scan_data_element_relationships(scan_id, element_id)

@spec get_scan_data_element_relationships(String.t(), String.t()) ::
  {:ok, map()} | {:error, any()}

Get relationships for a scan data element.

Examples

{:ok, rels} = Intel471Ex.Tprm.get_scan_data_element_relationships("scan-id", "element-id")

get_scan_data_graph(scan_id, params \\ %{})

@spec get_scan_data_graph(String.t(), map()) :: {:ok, map()} | {:error, any()}

Get scan data graph for a TPRM scan.

Parameters

  • scan_id: Scan ID
  • params: Query parameters (:category, :type, :source, :annotated, :starred, :text)

Examples

{:ok, graph} = Intel471Ex.Tprm.get_scan_data_graph("scan-id")

get_scan_data_tree(scan_id, params \\ %{})

@spec get_scan_data_tree(String.t(), map()) :: {:ok, map()} | {:error, any()}

Get scan data tree for a TPRM scan.

Parameters

  • scan_id: Scan ID
  • params: Query parameters (:category, :type, :source, :annotated, :starred, :text)

Examples

{:ok, tree} = Intel471Ex.Tprm.get_scan_data_tree("scan-id")

list_monitors(params \\ %{})

@spec list_monitors(map()) :: {:ok, map()} | {:error, any()}

List TPRM monitors.

Parameters

  • params: A map of query parameters
    • :last_run_after / :last_run_before — Filter by last run time

Examples

{:ok, monitors} = Intel471Ex.Tprm.list_monitors()

patch_scan_data_element(scan_id, element_id, body)

@spec patch_scan_data_element(String.t(), String.t(), map()) ::
  {:ok, map()} | {:error, any()}

Patch a scan data element.

Examples

{:ok, _} = Intel471Ex.Tprm.patch_scan_data_element("scan-id", "element-id", %{starred: true})

put_config_user(section, config, token)

@spec put_config_user(String.t(), map(), String.t()) :: {:ok, map()} | {:error, any()}

Update the user configuration for a section.

Uses Bearer token auth instead of Basic auth (unique to TPRM config writes).

Parameters

  • section: Configuration section ("base", "passive", "essential", "full")
  • config: Configuration body
  • token: Bearer token for authorization

Examples

{:ok, _} = Intel471Ex.Tprm.put_config_user("passive", %{key: "value"}, "your-bearer-token")

run_monitor(id, body \\ nil)

@spec run_monitor(String.t(), map() | nil) :: {:ok, map()} | {:error, any()}

Run a TPRM monitor.

Parameters

  • id: Monitor ID
  • body: Optional body with :at timestamp

Examples

{:ok, _} = Intel471Ex.Tprm.run_monitor("monitor-id")
{:ok, _} = Intel471Ex.Tprm.run_monitor("monitor-id", %{at: "2026-01-01T00:00:00Z"})