Network Discovery REST API - Adaptive Applications - BlueCat Gateway - 23.1

Network Discovery Administration Guide

Locale
English
Product name
BlueCat Gateway
Version
23.1

Network Discovery includes a REST API to allow for futher customized integrations and functionality. Network discovery uses a Swagger API specification to simplify development, documentation, and use of RESTful API endpoints.

This workflow uses four main HTTP methods for interacting with different objects:

HTTP Method Description
GET Retrieve data.
PUT Upload data, modifying a single resource that is aready part of the resources collection. PUT replaces the resource in its entirety.
POST Upload data, creating a new resource in the resources collection. POST specifies the resource in its entirety.
PATCH Upload data, modifying a resource by replacing only specific fields of data and leaving the rest as-is.
DELETE Delete data.

Endpoint

When working with the workflow of this API, you can invoke different methods by appending the API endpoint to the BlueCat Gateway URL. For example, the following GET API call retrieves the device resource with a specific device name from a specific configuration:
GET http://<Gateway_url>/network-discovery/api/v1/<configuration_name>/devices/<device_name>
Note: Note the spelling of <URL>/network-discovery with a hyphen. This spelling is different than that of the Network Discovery UI, <URL>/network_discovery/network_discovery_endpoint.

Authentication

The Network Discovery API endpoints require an authorization token to be passed in the header to successfully execute. For more information on the API that retrieves an authorization token, refer to the REST API Swagger documentation

Swagger documentation

The Network Discovery REST API includes Swagger documentation for details and testing. To open Swagger to view and test the API endpoints, go to the following URL:

<URL>/network-discovery/api/v1

Where <URL> is the URL or IP address for the system hosting Network Discovery, either Network Discovery's Management service or a Discovery Probe.

Note: Note the spelling of <URL>/network-discovery with a hyphen. This spelling is different than that of the Network Discovery UI, <URL>/network_discovery/network_discovery_endpoint.

List of Network Discovery API endpoints

Endpoint Description
Management devices
POST .../configurations/{configuration_name}/create_networks Create IP Networks.
GET .../configurations/{configuration_name}/devices/{device_name} Get the selected device from the Configuration.
PATCH .../configurations/{configuration_name}/devices/{device_name} Update the selected device.
POST .../configurations/{configuration_name}/devices/{device_name} Add a device.
GET .../configurations/{configuration_name}/devices/{device_name}/discover_status Get the latest discovery status of a device.
GET .../configurations/{configuration_name}/devices/{device_name}/discovery_configuration/{disc_probe_label} Get the Discivery_Device UDF of a device.
PUT .../configurations/{configuration_name}/devices/{device_name}/linked Create and assign a UDF for IPv4 and IPv6 addresses.
GET .../devices Get all devices in a Configuration.
POST .../devices Discover devices.
DELETE .../devices Delete devices.
Management installation
GET .../installation

Get installation information

PUT .../installation/bam_mgmt_credential Update management credentials.
PUT .../installation/bam_udf Update UDFs in Address Manager.
PUT .../installation/bam_v6_udf Update UDFs in Address Manager.
POST .../installation/block_network_udf Create the UDF for a Block Network in Address Manager.
PUT .../installation/config_discovery_probes Update the configuration for discovery probes.
POST .../installation/device_udf Create the UDF for a device in Address Manager
POST .../installation/device_udl Create the UDL for a device in Address Manager
GET .../installation/discovery_probe Get the credentials of discovery probes.
PUT .../installation/discovery_probe Update credentials of discovery probes.
DELETE .../installation/discovery_probe Delete credentials of a discovery probe.
POST .../installation/encrypt-password Encrypt a password.
PUT .../installation/mgmt_credential Update the management credentials.
Management IPv4 reconciliation policies
PUT .../configurations/{configuration_name}/ipv4_recon_policies Update an IPv4 reconcilation policy
POST .../configurations/{configuration_name}/ipv4_recon_policies Add an IPv4 reconciliation policy.
GET .../configurations/{configuration_name}/ipv4_recon_policies/discovery_configuration/{disc_probe_label} Get the Discovery Configuration UDF of an IPv4 reconciliation policy.
GET .../configurations/{configuration_name}/ipv4_recon_policies/run-now Get the latest Run-Now status of a scheduled policy.
POST .../configurations/{configuration_name}/ipv4_recon_policies/run-now Run an IPv4 reconciliation policy now.
PUT .../configurations/{configuration_name}/ipv4_recon_policies/schedule Update the scheduled time for an IPv4 reconciliation policy.
GET .../configurations/{configuration_name}/ipv4_recon_policies/scheduled Get the latest discovery status of a scheduled policy.
GET .../ipv4_recon_policies Get IPv4 reconcilation policies.
DELETE .../ipv4_recon_policies Delete IPv4 reconciliation policies.
Management IPv6 reconciliation policies
PUT .../configurations/{configuration_name}/ipv6_recon_policies Update an IPV6 reconciliation policy.
POST .../configurations/{configuration_name}/ipv6_recon_policies Add an IPv6 reconciliation policy.
GET .../configurations/{configuration_name}/ipv6_recon_policies/discovery_configuration/{disc_probe_label} Get the Discovery Configuration UDF of an IPv6 reconciliation policy.
GET .../configurations/{configuration_name}/ipv6_recon_policies/run-now Get the latest Run-Now status of a scheduled policy.
POST .../configurations/{configuration_name}/ipv6_recon_policies/run-now Run an IPv6 reconciliation policy now.
PUT .../configurations/{configuration_name}/ipv6_recon_policies/schedule-now Update the scheduled time for an IPv6 reconciliation policy.
GET .../configurations/{configuration_name}/ipv6_recon_policies/scheduled Get the latest discovery status of a scheduled policy.
GET .../ipv6_recon_policies Get IPv6 reconciliation policies.
DELETE .../ipv6_recon_policies Delete multiple IPv6 reconciliation policies of a Block or Network.
Management logger
GET .../configurations/{configuration_name}/logger/download/{disc_probe_label} Download logs from a specific probe.
GET .../configurations/{configuration_name}/logger/latest/{disc_probe_label} Get the latest logs.
GET .../logger/count-error Get the total errors.
PUT .../logger/count-error Reset the total errors to 0.
GET .../logger/discovery-log-level/{disc_probe_label} Get the log level for a discovery probe.
PUT .../logger/discovery-log-level/{disc_probe_label} Set the log level for a discovery probe.
GET .../logger/download Download the logs.
GET .../logger/latest Get the latest logs.
GET .../logger/log-level Get the log level.
PUT .../logger/log-level Update the log level.
Upload file
PUT .../upload_discovery_file Upload results from a discovery job to Address Manager.
Management IP spaces
GET .../configurations/{configuration_name}/ip4_spaces Get a list of IPv4 spaces (networks).
GET .../configurations/{configuration_name}/ipv6_spaces Get the first 10 known IPv6 Blocks and Networks from a Configuration.
Management configurations
GET .../configurations Get all known Configurations.
Default
GET .../configuration/{configuration_name}/ipv4_recon_policies Get a set of IPv4 reconciliation policies.
GET .../configuration/{configuration_name}/ipv6_recon_policies Get a set of IPv6 reconciliation policies.
GET .../job_id/{job_id} Get a specific reconciliation policy (job).
Discovery probe
GET .../discovery_probe Get all scheduled jobs.
PUT .../discovery_probe Update a scheduled job.
POST .../discovery_probe Add a scheduled job.
GET .../discovery_probe/discovery-log-level Get the log level for discovery.
PUT .../discovery_probe/discovery-log-level Update the log level for discovery.
GET .../discovery_probe/discovery-probe-logger/latest Get the latest successful logs.
PUT .../discovery_probe/discovery-probe-logger/latest Reset the total errors to 0.
GET .../discovery_probe/health Get the health of a discovery probe.
POST .../discovery_probe/installation Update discovery probe information.
GET .../discovery_probe/log-level Get the log level.
PUT .../discovery_probe/log-level Update the log level.
POST .../discovery_probe/start Start the scheduler.
GET .../discovery_probe/status Get the status of the discovery probe.
POST .../discovery_probe/stop Stop the discovery probe.
POST .../discovery_probe/{job_id} Run a discovery probe job now.
DELETE .../discovery_probe/{job_id} Delete a scheduled discovery probe job.
GET .../discovery_probe/{job_id}/log Get the latest status of a scheduled job.
GET .../discovery_probe/{job_id}/run-now Get the latest Run-Now status of a scheduled job.
GET .../discovery_probe/{job_id}/scheduled Get the latest discovery status of a scheduled job.