### GET /admin/about Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Retrieves detailed information about the BMC Discovery appliance instance, including version information and installed packages. ```APIDOC ## GET /admin/about ### Description Retrieves detailed information about the BMC Discovery appliance instance, including version information and installed packages. ### Method GET ### Endpoint /api/v1.14/admin/about ### Request Example curl -X GET "https://discovery.example.com/api/v1.14/admin/about" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Accept: application/json" ### Response #### Success Response (200) - **api_versions** (array) - List of supported API versions - **component** (string) - Name of the component - **full_version** (string) - Current software version #### Response Example { "api_versions": ["1.0", "1.14"], "component": "BMC Discovery", "full_version": "12.5.0.1" } ``` -------------------------------- ### Execute Search Queries via API Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Perform data searches using GET and POST methods. Supports various output formats like objects or trees, and includes examples for pagination using results_id. ```bash curl -X GET "https://discovery.example.com/api/v1.14/data/search?query=search%20Host%20show%20name%2C%20os_type%2C%20os_version&limit=100" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Accept: application/json" curl -X POST "https://discovery.example.com/api/v1.14/data/search" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "query": "search Host where os_type = \"Windows\" show name, os_version, last_update_success" }' curl -X GET "https://discovery.example.com/api/v1.14/data/search?format=object&query=search%20SoftwareInstance%20show%20name%2C%20version&limit=50" \ -H "Authorization: Bearer YOUR_TOKEN" curl -X GET "https://discovery.example.com/api/v1.14/data/search?format=tree&query=search%20Host%20traverse%20ElementWithDetail%3ADetail%3ADetail%20show%20name&actual_spec=true" \ -H "Authorization: Bearer YOUR_TOKEN" curl -X GET "https://discovery.example.com/api/v1.14/data/search?query=search%20Host&offset=100&limit=100&results_id=abc123xyz" \ -H "Authorization: Bearer YOUR_TOKEN" ``` -------------------------------- ### Get Topology Data from Starting Nodes using cURL Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Retrieves topology data starting from specified node IDs, with options for focus and rule application. Requires an authorization token and JSON payload. ```bash curl -X POST "https://discovery.example.com/api/v1.14/topology/nodes" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "node_ids": ["node-uuid-1", "node-uuid-2"], "focus": "software-connected", "apply_rules": true }' ``` -------------------------------- ### GET /admin/licensing Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Retrieves licensing reports for compliance tracking and capacity planning in various formats. ```APIDOC ## GET /admin/licensing ### Description Retrieves signed licensing reports for compliance tracking and capacity planning. ### Method GET ### Endpoint /api/v1.14/admin/licensing ### Query Parameters - **type** (string) - Required - The type of license report (e.g., 'discovery', 'resource_unit') ### Request Example curl -X GET "https://discovery.example.com/api/v1.14/admin/licensing?type=discovery" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Accept: text/plain" ### Response #### Success Response (200) - **body** (text/plain) - Signed licensing report content ``` -------------------------------- ### Get Available Locales using cURL Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Fetches a list of all supported locales for taxonomy data. An authorization token is necessary. ```bash curl -X GET "https://discovery.example.com/api/v1.14/taxonomy/locales" \ -H "Authorization: Bearer YOUR_TOKEN" ``` -------------------------------- ### Get Taxonomy Sections using cURL Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Retrieves all available model sections from the taxonomy. Requires an authorization token. ```bash curl -X GET "https://discovery.example.com/api/v1.14/taxonomy/sections" \ -H "Authorization: Bearer YOUR_TOKEN" ``` -------------------------------- ### Admin - Get Instance Information (Bash) Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Retrieves information about the BMC Discovery appliance instance, including API versions, component name, full version, and package versions. This endpoint is useful for monitoring and inventory purposes. Requires HTTPS and an Authorization header. ```bash # Get basic instance information curl -X GET "https://discovery.example.com/api/v1.14/admin/about" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Accept: application/json" # Get detailed appliance/instance details (new in v1.13) curl -X GET "https://discovery.example.com/api/v1.14/admin/instance" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Accept: application/json" ``` -------------------------------- ### Get Model by Key using cURL Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Retrieves a specific model using its unique key. Requires an authorization token. ```bash curl -X GET "https://discovery.example.com/api/v1.14/models/model-key-123?expand_related=true" \ -H "Authorization: Bearer YOUR_TOKEN" ``` -------------------------------- ### Get Available Topology Focuses using cURL Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Retrieves a list of available focus types for topology data retrieval. Requires an authorization token. ```bash curl -X GET "https://discovery.example.com/api/v1.14/topology/focuses" \ -H "Authorization: Bearer YOUR_TOKEN" ``` -------------------------------- ### Get All Relationship Kinds using cURL Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Retrieves a list of all available relationship kinds in the taxonomy. Requires an authorization token. ```bash curl -X GET "https://discovery.example.com/api/v1.14/taxonomy/relkinds" \ -H "Authorization: Bearer YOUR_TOKEN" ``` -------------------------------- ### GET/PATCH /api/v1.14/discovery Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Retrieve the current status of the discovery service or update its state to start or stop the process. ```APIDOC ## GET /api/v1.14/discovery ### Description Get the current discovery status. ### Method GET ### Endpoint /api/v1.14/discovery ### Response #### Success Response (200) - **running** (boolean) - Current status of the discovery service - **status** (string) - Detailed status message ## PATCH /api/v1.14/discovery ### Description Control the discovery process by starting or stopping it. ### Method PATCH ### Endpoint /api/v1.14/discovery ### Request Body - **status** (string) - Required - The desired state ('running' or 'stopped') - **passphrase** (string) - Optional - Vault passphrase if required for starting ### Request Example { "status": "running", "passphrase": "vault_passphrase_if_required" } ``` -------------------------------- ### Get Relationship Kind Details using cURL Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Fetches detailed information for a specific relationship kind, including locale support. An authorization token is required. ```bash curl -X GET "https://discovery.example.com/api/v1.14/taxonomy/relkinds/HostedSoftware?locale=en" \ -H "Authorization: Bearer YOUR_TOKEN" ``` -------------------------------- ### Get Node Kinds with Info using cURL Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Fetches node kinds along with their display names and descriptions, allowing filtering by section and locale. Requires an authorization token. ```bash curl -X GET "https://discovery.example.com/api/v1.14/taxonomy/nodekinds?format=info§ion=inferred&locale=en" \ -H "Authorization: Bearer YOUR_TOKEN" ``` -------------------------------- ### Get All Node Kind Names using cURL Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Retrieves the names of all node kinds, optionally filtered by section. Requires an authorization token. ```bash curl -X GET "https://discovery.example.com/api/v1.14/taxonomy/nodekinds?section=inferred" \ -H "Authorization: Bearer YOUR_TOKEN" ``` -------------------------------- ### Get Field Lists for a Node Kind using cURL Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Fetches the available field lists associated with a specific node kind. Requires an authorization token. ```bash curl -X GET "https://discovery.example.com/api/v1.14/taxonomy/nodekinds/Host/fieldlists" \ -H "Authorization: Bearer YOUR_TOKEN" ``` -------------------------------- ### Get Model Topology using cURL Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Fetches the topology of a model specified by its node ID, with options to include specific attributes. Requires an authorization token. ```bash curl -X GET "https://discovery.example.com/api/v1.14/models/by_node_id/node-uuid-123/topology?attributes=name,os_type" \ -H "Authorization: Bearer YOUR_TOKEN" ``` -------------------------------- ### Search API Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Perform search queries on the BMC Discovery datastore using GET or POST requests. Supports various query parameters for filtering, formatting, and pagination. ```APIDOC ## GET /api/v1.14/data/search ### Description Performs a search query on the BMC Discovery datastore. Suitable for shorter queries. ### Method GET ### Endpoint `/api/v1.14/data/search` ### Query Parameters - **query** (string) - Required - The search query string. - **limit** (integer) - Optional - The maximum number of results to return. - **format** (string) - Optional - The desired output format (e.g., `object`, `tree`). - **offset** (integer) - Optional - The number of results to skip for pagination. - **results_id** (string) - Optional - An identifier for paginating results. - **actual_spec** (boolean) - Optional - Whether to apply actual specifications. ### Request Example ```bash curl -X GET "https://discovery.example.com/api/v1.14/data/search?query=search%20Host%20show%20name%2C%20os_type%2C%20os_version&limit=100" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Accept: application/json" ``` ### Response #### Success Response (200) - **results** (array) - An array of search results. #### Response Example ```json { "results": [ { "name": "server1.example.com", "os_type": "Linux", "os_version": "Ubuntu 20.04" } ] } ``` ## POST /api/v1.14/data/search ### Description Performs a search query on the BMC Discovery datastore. Suitable for long queries that may exceed URL length limits. ### Method POST ### Endpoint `/api/v1.14/data/search` ### Request Body - **query** (string) - Required - The search query string. ### Request Example ```bash curl -X POST "https://discovery.example.com/api/v1.14/data/search" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "query": "search Host where os_type = \"Windows\" show name, os_version, last_update_success" }' ``` ### Response #### Success Response (200) - **results** (array) - An array of search results. #### Response Example ```json { "results": [ { "name": "server2.example.com", "os_version": "Windows Server 2019", "last_update_success": "2023-10-27T10:00:00Z" } ] } ``` ``` -------------------------------- ### Get Nodes by Kind within a Model using cURL Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Fetches nodes of a specific kind within a model, with options for format and limit. Requires an authorization token. ```bash curl -X GET "https://discovery.example.com/api/v1.14/models/model-key-123/nodes/Host?format=object&limit=100" \ -H "Authorization: Bearer YOUR_TOKEN" ``` -------------------------------- ### Get Specific Node Kind Details using cURL Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Retrieves detailed information for a specific node kind, including locale support. An authorization token is required. ```bash curl -X GET "https://discovery.example.com/api/v1.14/taxonomy/nodekinds/Host?locale=en" \ -H "Authorization: Bearer YOUR_TOKEN" ``` -------------------------------- ### Get Topology Using a Search Query via cURL Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Retrieves topology data based on a search query, allowing for flexible filtering of nodes. Requires an authorization token and JSON payload. ```bash curl -X POST "https://discovery.example.com/api/v1.14/topology/nodes" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "query": "search Host where name matches \"web-server.*\"", "focus": "infrastructure" }' ``` -------------------------------- ### Get Service Information for Nodes using cURL Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Retrieves service information for a list of node IDs, including directly included, excluded, and indirectly impacted services. Requires an authorization token and JSON payload. ```bash curl -X POST "https://discovery.example.com/api/v1.14/topology/services" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "node_ids": ["node-uuid-1", "node-uuid-2"] }' ``` -------------------------------- ### Get Topology Data by Performing Traversals using cURL Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Retrieves topology data by performing specific traversals from given node IDs, defining the traversal path and depth. Requires an authorization token and JSON payload. ```bash curl -X POST "https://discovery.example.com/api/v1.14/topology/traversal" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "node_ids": ["node-uuid-1"], "traversals": [ {"spec": "Host:HostedSoftware:SoftwareInstance", "depth": 2} ] }' ``` -------------------------------- ### Perform Import and Write Operations Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Execute write operations to the datastore, including importing raw data, graph structures, creating partitions, and executing batch commands. ```bash curl -X POST "https://discovery.example.com/api/v1.14/data/import" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "source": "ExternalCMDB", "partition": "custom_partition", "records": [ { "kind": "Host", "key": "external_id_123", "attributes": { "name": "server01.example.com", "os_type": "Linux", "os_version": "RHEL 8.5" } } ] }' curl -X POST "https://discovery.example.com/api/v1.14/data/import/graph" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "source": "ExternalSource", "nodes": [...], "relationships": [...] }' curl -X POST "https://discovery.example.com/api/v1.14/data/partitions" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "custom_cmdb_data", "flags": ["maintain_history", "exclude_from_main_queries"] }' curl -X POST "https://discovery.example.com/api/v1.14/data/write" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "commands": [ {"operation": "create", "kind": "CustomNode", "attributes": {"name": "test"}}, {"operation": "relate", "from_id": "node1", "to_id": "node2", "relationship": "AssociatedWith"} ] }' ``` -------------------------------- ### Create and Manage Discovery Runs Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Operations for initiating IP or cloud-based discovery scans, monitoring their progress via UUID, and retrieving scan results or inferred data. ```bash # Create a new IP scan discovery run curl -X POST "https://discovery.example.com/api/v1.14/discovery/runs" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "ranges": ["192.168.1.0/24", "10.0.0.1-10.0.0.50"], "label": "Datacenter Network Scan", "scan_level": "Full Discovery" }' # Create a cloud discovery run (AWS example) curl -X POST "https://discovery.example.com/api/v1.14/discovery/runs" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "cloud": { "provider": "Amazon Web Services", "credential": "aws-cred-uuid" }, "label": "AWS Discovery" }' # Get status of a specific run curl -X GET "https://discovery.example.com/api/v1.14/discovery/runs/abc123-def456-ghi789" \ -H "Authorization: Bearer YOUR_TOKEN" # Cancel a discovery run curl -X PATCH "https://discovery.example.com/api/v1.14/discovery/runs/abc123-def456-ghi789" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{"cancelled": true}' # Get run results curl -X GET "https://discovery.example.com/api/v1.14/discovery/runs/abc123-def456-ghi789/results" \ -H "Authorization: Bearer YOUR_TOKEN" ``` -------------------------------- ### Admin - Licensing Reports (Bash) Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Retrieves licensing reports in various formats for compliance tracking and capacity planning. Supports different report types (discovery, resource_unit) and output formats including plain text and zip archives. Requires HTTPS and an Authorization header. ```bash # Get signed licensing report (plain text) curl -X GET "https://discovery.example.com/api/v1.14/admin/licensing?type=discovery" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Accept: text/plain" \ -o license_report.txt # Get resource unit license report (new in v1.14) curl -X GET "https://discovery.example.com/api/v1.14/admin/licensing?type=resource_unit" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Accept: text/plain" # Download license data as CSV zip file curl -X GET "https://discovery.example.com/api/v1.14/admin/licensing/csv?type=discovery" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Accept: application/zip" \ -o license_data.zip # Download encrypted raw license data for import to another instance curl -X GET "https://discovery.example.com/api/v1.14/admin/licensing/raw?type=discovery" \ -H "Authorization: Bearer YOUR_TOKEN" \ -o raw_license.zip ``` -------------------------------- ### Manage Kerberos Realms and Authentication Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Provides administrative operations for Kerberos realms used in Windows domain scanning. Includes endpoints for listing, creating, and deleting realms, as well as testing credentials and managing keytab files. ```bash # Get all Kerberos realms curl -X GET "https://discovery.example.com/api/v1.14/vault/kerberos/realms" \ -H "Authorization: Bearer YOUR_TOKEN" # Create a Kerberos realm curl -X POST "https://discovery.example.com/api/v1.14/vault/kerberos/realms/EXAMPLE.COM" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "kdcs": ["kdc1.example.com", "kdc2.example.com"], "admin_server": "kdc1.example.com" }' # Test Kerberos credentials curl -X POST "https://discovery.example.com/api/v1.14/vault/kerberos/realms/EXAMPLE.COM/test" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "username": "discovery_user", "password": "user_password" }' # Upload a keytab file curl -X POST "https://discovery.example.com/api/v1.14/vault/kerberos/realms/EXAMPLE.COM/keytabs" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: multipart/form-data" \ -F "username=discovery_user" \ -F "keytab=@/path/to/discovery_user.keytab" # List users with keytab files curl -X GET "https://discovery.example.com/api/v1.14/vault/kerberos/realms/EXAMPLE.COM/keytabs" \ -H "Authorization: Bearer YOUR_TOKEN" # Delete a keytab curl -X DELETE "https://discovery.example.com/api/v1.14/vault/kerberos/realms/EXAMPLE.COM/keytabs/discovery_user" \ -H "Authorization: Bearer YOUR_TOKEN" # Delete a realm curl -X DELETE "https://discovery.example.com/api/v1.14/vault/kerberos/realms/EXAMPLE.COM" \ -H "Authorization: Bearer YOUR_TOKEN" ``` -------------------------------- ### Kerberos - Realm Management Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Manage Kerberos realms and authentication resources for Windows domain scanning. This includes creating, testing, and deleting realms, as well as managing keytab files. ```APIDOC ## GET /api/v1.14/vault/kerberos/realms ### Description Retrieves a list of all configured Kerberos realms. ### Method GET ### Endpoint /api/v1.14/vault/kerberos/realms ### Parameters #### Query Parameters None ### Response #### Success Response (200) - **realms** (array) - A list of Kerberos realm names. #### Response Example ```json ["EXAMPLE.COM", "ANOTHER.REALM"] ``` ``` ```APIDOC ## POST /api/v1.14/vault/kerberos/realms/{realm_name} ### Description Creates a new Kerberos realm configuration. ### Method POST ### Endpoint /api/v1.14/vault/kerberos/realms/{realm_name} ### Parameters #### Path Parameters - **realm_name** (string) - Required - The name of the Kerberos realm to create (e.g., 'EXAMPLE.COM'). #### Query Parameters None #### Request Body - **kdcs** (array of strings) - Required - A list of Key Distribution Center (KDC) hostnames. - **admin_server** (string) - Required - The hostname of the Kerberos administration server. ### Request Example ```json { "kdcs": ["kdc1.example.com", "kdc2.example.com"], "admin_server": "kdc1.example.com" } ``` ### Response #### Success Response (200) - **message** (string) - Confirmation message of realm creation. #### Response Example ```json {"message": "Kerberos realm EXAMPLE.COM created successfully."} ``` ``` ```APIDOC ## POST /api/v1.14/vault/kerberos/realms/{realm_name}/test ### Description Tests Kerberos credentials against a specified realm. ### Method POST ### Endpoint /api/v1.14/vault/kerberos/realms/{realm_name}/test ### Parameters #### Path Parameters - **realm_name** (string) - Required - The name of the Kerberos realm to test against. #### Query Parameters None #### Request Body - **username** (string) - Required - The username for authentication. - **password** (string) - Required - The password for authentication. ### Request Example ```json { "username": "discovery_user", "password": "user_password" } ``` ### Response #### Success Response (200) - **status** (string) - The result of the test (e.g., 'success', 'failure'). #### Response Example ```json {"status": "success"} ``` ``` ```APIDOC ## POST /api/v1.14/vault/kerberos/realms/{realm_name}/keytabs ### Description Uploads a keytab file for a user in a specified Kerberos realm. ### Method POST ### Endpoint /api/v1.14/vault/kerberos/realms/{realm_name}/keytabs ### Parameters #### Path Parameters - **realm_name** (string) - Required - The name of the Kerberos realm. #### Query Parameters None #### Request Body - **username** (string) - Required - The username associated with the keytab file. - **keytab** (file) - Required - The keytab file to upload. Use multipart/form-data encoding. ### Request Example ``` curl -X POST "https://discovery.example.com/api/v1.14/vault/kerberos/realms/EXAMPLE.COM/keytabs" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: multipart/form-data" \ -F "username=discovery_user" \ -F "keytab=@/path/to/discovery_user.keytab" ``` ### Response #### Success Response (200) - **message** (string) - Confirmation message of keytab upload. #### Response Example ```json {"message": "Keytab for discovery_user uploaded successfully."} ``` ``` ```APIDOC ## GET /api/v1.14/vault/kerberos/realms/{realm_name}/keytabs ### Description Lists users who have keytab files uploaded for a specified Kerberos realm. ### Method GET ### Endpoint /api/v1.14/vault/kerberos/realms/{realm_name}/keytabs ### Parameters #### Path Parameters - **realm_name** (string) - Required - The name of the Kerberos realm. #### Query Parameters None ### Response #### Success Response (200) - **users** (array of strings) - A list of usernames with uploaded keytab files. #### Response Example ```json ["discovery_user", "another_user"] ``` ``` ```APIDOC ## DELETE /api/v1.14/vault/kerberos/realms/{realm_name}/keytabs/{username} ### Description Deletes the keytab file for a specific user in a Kerberos realm. ### Method DELETE ### Endpoint /api/v1.14/vault/kerberos/realms/{realm_name}/keytabs/{username} ### Parameters #### Path Parameters - **realm_name** (string) - Required - The name of the Kerberos realm. - **username** (string) - Required - The username whose keytab file should be deleted. #### Query Parameters None ### Response #### Success Response (200) - **message** (string) - Confirmation message of keytab deletion. #### Response Example ```json {"message": "Keytab for discovery_user deleted successfully."} ``` ``` ```APIDOC ## DELETE /api/v1.14/vault/kerberos/realms/{realm_name} ### Description Deletes a Kerberos realm configuration. ### Method DELETE ### Endpoint /api/v1.14/vault/kerberos/realms/{realm_name} ### Parameters #### Path Parameters - **realm_name** (string) - Required - The name of the Kerberos realm to delete. #### Query Parameters None ### Response #### Success Response (200) - **message** (string) - Confirmation message of realm deletion. #### Response Example ```json {"message": "Kerberos realm EXAMPLE.COM deleted successfully."} ``` ``` -------------------------------- ### POST/GET/PATCH /api/v1.14/discovery/runs Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Manage snapshot discovery runs including IP scans and cloud scans, and monitor their progress. ```APIDOC ## POST /api/v1.14/discovery/runs ### Description Create a new discovery run (IP scan or Cloud scan). ### Method POST ### Endpoint /api/v1.14/discovery/runs ### Request Body - **ranges** (array) - Optional - List of IP ranges for IP scan - **label** (string) - Required - Identifier for the run - **scan_level** (string) - Optional - Depth of discovery - **cloud** (object) - Optional - Cloud provider configuration ### Response #### Success Response (200) - **uuid** (string) - Unique identifier for the run - **uri** (string) - API endpoint to track the run ## GET /api/v1.14/discovery/runs/{uuid} ### Description Get status of a specific discovery run. ### Method GET ### Endpoint /api/v1.14/discovery/runs/{uuid} ### Parameters #### Path Parameters - **uuid** (string) - Required - The unique identifier of the run ``` -------------------------------- ### Get Model by Node ID using cURL Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Retrieves a model identified by its node ID. An authorization token is necessary for this operation. ```bash curl -X GET "https://discovery.example.com/api/v1.14/models/by_node_id/node-uuid-123" \ -H "Authorization: Bearer YOUR_TOKEN" ``` -------------------------------- ### Manage Outposts using BMC Discovery API Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Endpoints for managing outposts, including retrieving all outposts, obtaining instance tokens for registration, adding new outposts, and deleting existing ones. Requires an Authorization token. ```bash curl -X GET "https://discovery.example.com/api/v1.14/discovery/outposts" \ -H "Authorization: Bearer YOUR_TOKEN" ``` ```bash curl -X GET "https://discovery.example.com/api/v1.14/discovery/instance_token?service_address=discovery.example.com" \ -H "Authorization: Bearer YOUR_TOKEN" ``` ```bash curl -X POST "https://discovery.example.com/api/v1.14/discovery/outposts" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "token": "outpost_registration_token" }' ``` ```bash curl -X DELETE "https://discovery.example.com/api/v1.14/discovery/outposts" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{"id": "outpost-uuid-123"}' ``` -------------------------------- ### Admin - Cluster Management (Bash) Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Manages the BMC Discovery cluster state, allowing retrieval of cluster information with resource usage, and updating cluster configuration such as adding members or changing fault tolerance. Requires HTTPS and an Authorization header. ```bash # Get cluster information with resource usage curl -X GET "https://discovery.example.com/api/v1.14/admin/cluster?usage=true&departed=false" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Accept: application/json" # Update cluster state (add members, change fault tolerance) curl -X PATCH "https://discovery.example.com/api/v1.14/admin/cluster" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "members": ["192.168.1.10", "192.168.1.11"], "fault_tolerance": 1 }' ``` -------------------------------- ### Find Nodes by Kind Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Retrieve collections of nodes based on their kind. Includes filtering by attributes, formatting results, and querying distinct values for specific attributes. ```bash curl -X GET "https://discovery.example.com/api/v1.14/data/kinds/Host?limit=100" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Accept: application/json" curl -X GET "https://discovery.example.com/api/v1.14/data/kinds/Host?os_type=Windows&limit=100" \ -H "Authorization: Bearer YOUR_TOKEN" curl -X GET "https://discovery.example.com/api/v1.14/data/kinds/Host?format=object&attributes=name,os_type,os_version" \ -H "Authorization: Bearer YOUR_TOKEN" curl -X GET "https://discovery.example.com/api/v1.14/data/kinds/Host/values/os_type?limit=50" \ -H "Authorization: Bearer YOUR_TOKEN" ``` -------------------------------- ### Get Related Nodes by Kind using cURL Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Fetches related nodes of specified kinds for given node IDs. Requires an authorization token and JSON payload. ```bash curl -X POST "https://discovery.example.com/api/v1.14/topology/nodes/kinds" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "node_ids": ["node-uuid-1"], "kinds": ["SoftwareInstance", "NetworkInterface"] }' ``` -------------------------------- ### Manage Service and Application Models using BMC Discovery API Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Endpoint for retrieving all service and application models within BMC Discovery. Models are used to group discovered infrastructure components. Requires an Authorization token. ```bash curl -X GET "https://discovery.example.com/api/v1.14/models" \ -H "Authorization: Bearer YOUR_TOKEN" ``` -------------------------------- ### Get Node Count for a Model using cURL Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Retrieves the total count of nodes within a specified model, identified by its node ID. An authorization token is required. ```bash curl -X GET "https://discovery.example.com/api/v1.14/models/by_node_id/node-uuid-123/nodecount" \ -H "Authorization: Bearer YOUR_TOKEN" ``` -------------------------------- ### Import and Write Operations API Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Import data into BMC Discovery and perform write operations such as creating, updating, or relating nodes. ```APIDOC ## POST /api/v1.14/data/import ### Description Imports data into the BMC Discovery datastore from a specified source and partition. ### Method POST ### Endpoint `/api/v1.14/data/import` ### Request Body - **source** (string) - Required - The name of the data source. - **partition** (string) - Required - The name of the partition to import data into. - **records** (array) - Required - An array of records to import. - **kind** (string) - Required - The kind of the node. - **key** (string) - Required - A unique key for the record. - **attributes** (object) - Required - Key-value pairs of the node's attributes. ### Request Example ```bash curl -X POST "https://discovery.example.com/api/v1.14/data/import" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "source": "ExternalCMDB", "partition": "custom_partition", "records": [ { "kind": "Host", "key": "external_id_123", "attributes": { "name": "server01.example.com", "os_type": "Linux", "os_version": "RHEL 8.5" } } ] }' ``` ### Response #### Success Response (200) - **import_id** (string) - An identifier for the import operation. #### Response Example ```json { "import_id": "import_xyz789" } ``` ## POST /api/v1.14/data/import/graph ### Description Imports graph data, including nodes and relationships, into BMC Discovery. (New in v1.10). ### Method POST ### Endpoint `/api/v1.14/data/import/graph` ### Request Body - **source** (string) - Required - The name of the data source. - **nodes** (array) - Required - An array of node objects to import. - **relationships** (array) - Required - An array of relationship objects to import. ### Request Example ```bash curl -X POST "https://discovery.example.com/api/v1.14/data/import/graph" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "source": "ExternalSource", "nodes": [...], "relationships": [...] }' ``` ### Response #### Success Response (200) - **import_id** (string) - An identifier for the import operation. #### Response Example ```json { "import_id": "graph_import_abc123" } ``` ## POST /api/v1.14/data/partitions ### Description Creates a new partition in the BMC Discovery datastore. ### Method POST ### Endpoint `/api/v1.14/data/partitions` ### Request Body - **name** (string) - Required - The name of the new partition. - **flags** (array) - Optional - An array of flags for the partition (e.g., `["maintain_history", "exclude_from_main_queries"]`). ### Request Example ```bash curl -X POST "https://discovery.example.com/api/v1.14/data/partitions" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "custom_cmdb_data", "flags": ["maintain_history", "exclude_from_main_queries"] }' ``` ### Response #### Success Response (200) - **partition_id** (string) - The identifier of the newly created partition. #### Response Example ```json { "partition_id": "partition_def456" } ``` ## POST /api/v1.14/data/write ### Description Performs write operations on the datastore, such as creating, updating, or relating nodes, using a list of commands. ### Method POST ### Endpoint `/api/v1.14/data/write` ### Request Body - **commands** (array) - Required - An array of commands to execute. - **operation** (string) - Required - The operation to perform (e.g., `create`, `update`, `relate`, `delete`). - **kind** (string) - Required for `create` operation - The kind of the node to create. - **attributes** (object) - Required for `create` and `update` operations - Key-value pairs of attributes. - **from_id** (string) - Required for `relate` operation - The ID of the source node. - **to_id** (string) - Required for `relate` operation - The ID of the target node. - **relationship** (string) - Required for `relate` operation - The type of relationship. ### Request Example ```bash curl -X POST "https://discovery.example.com/api/v1.14/data/write" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "commands": [ {"operation": "create", "kind": "CustomNode", "attributes": {"name": "test"}}, {"operation": "relate", "from_id": "node1", "to_id": "node2", "relationship": "AssociatedWith"} ] }' ``` ### Response #### Success Response (200) - **results** (array) - An array of results for each command executed. #### Response Example ```json [ {"status": "success", "id": "new_node_id_789"}, {"status": "success"} ] ``` ``` -------------------------------- ### Get Fields in a Specific Field List using cURL Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Retrieves the fields within a particular field list for a node kind, supporting locale specification. An authorization token is necessary. ```bash curl -X GET "https://discovery.example.com/api/v1.14/taxonomy/nodekinds/Host/fieldlists/summary?locale=en" \ -H "Authorization: Bearer YOUR_TOKEN" ``` -------------------------------- ### Manage Scheduled Discovery Runs Source: https://context7.com/cshuttle/01d704747c97025604055aa05aba17dc/llms.txt Endpoints to automate discovery tasks by creating, updating, or deleting recurring scan schedules. ```bash # Create a scheduled run curl -X POST "https://discovery.example.com/api/v1.14/discovery/runs/scheduled" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "ranges": ["192.168.1.0/24"], "label": "Nightly Datacenter Scan", "schedule": { "type": "daily", "time": "02:00", "timezone": "UTC" }, "scan_level": "Full Discovery" }' # Delete a scheduled run curl -X DELETE "https://discovery.example.com/api/v1.14/discovery/runs/scheduled/sched-uuid-123" \ -H "Authorization: Bearer YOUR_TOKEN" ```