External Interactions¶
This document describes external dependencies and prerequisites for this App to operate, including system requirements, API endpoints, interconnection or integrations to other applications or services, and similar topics.
External System Integrations¶
From the App to Other Systems¶
The Nautobot IGP Models app can export data to external systems through:
- REST API: External systems can query IGP configuration data via the Nautobot REST API
- GraphQL API: IGP models are accessible through Nautobot's GraphQL interface for flexible queries
- Webhooks: Nautobot's webhook functionality can notify external systems of changes to IGP configurations
From Other Systems to the App¶
External systems can interact with the app through:
- REST API: External automation tools can create, update, or delete IGP configurations
- Management Commands: Bulk import operations can be performed using custom management commands
- Nautobot Jobs: Custom Jobs can be created to import or sync IGP data from network devices or other sources
Nautobot REST API Endpoints¶
The app provides the following REST API endpoints:
IGP Routing Instances¶
GET /api/plugins/igp-models/igp-routing-instances/- List all routing instancesPOST /api/plugins/igp-models/igp-routing-instances/- Create a routing instanceGET /api/plugins/igp-models/igp-routing-instances/{id}/- Retrieve a specific routing instancePUT /api/plugins/igp-models/igp-routing-instances/{id}/- Update a routing instanceDELETE /api/plugins/igp-models/igp-routing-instances/{id}/- Delete a routing instance
ISIS Configurations¶
GET /api/plugins/igp-models/isis-configurations/- List all ISIS configurationsPOST /api/plugins/igp-models/isis-configurations/- Create an ISIS configurationGET /api/plugins/igp-models/isis-configurations/{id}/- Retrieve a specific ISIS configurationPUT /api/plugins/igp-models/isis-configurations/{id}/- Update an ISIS configurationDELETE /api/plugins/igp-models/isis-configurations/{id}/- Delete an ISIS configuration
ISIS Interface Configurations¶
GET /api/plugins/igp-models/isis-interface-configurations/- List all ISIS interface configurationsPOST /api/plugins/igp-models/isis-interface-configurations/- Create an ISIS interface configurationGET /api/plugins/igp-models/isis-interface-configurations/{id}/- Retrieve a specific ISIS interface configurationPUT /api/plugins/igp-models/isis-interface-configurations/{id}/- Update an ISIS interface configurationDELETE /api/plugins/igp-models/isis-interface-configurations/{id}/- Delete an ISIS interface configuration
OSPF Configurations¶
GET /api/plugins/igp-models/ospf-configurations/- List all OSPF configurationsPOST /api/plugins/igp-models/ospf-configurations/- Create an OSPF configurationGET /api/plugins/igp-models/ospf-configurations/{id}/- Retrieve a specific OSPF configurationPUT /api/plugins/igp-models/ospf-configurations/{id}/- Update an OSPF configurationDELETE /api/plugins/igp-models/ospf-configurations/{id}/- Delete an OSPF configuration
OSPF Interface Configurations¶
GET /api/plugins/igp-models/ospf-interface-configurations/- List all OSPF interface configurationsPOST /api/plugins/igp-models/ospf-interface-configurations/- Create an OSPF interface configurationGET /api/plugins/igp-models/ospf-interface-configurations/{id}/- Retrieve a specific OSPF interface configurationPUT /api/plugins/igp-models/ospf-interface-configurations/{id}/- Update an OSPF interface configurationDELETE /api/plugins/igp-models/ospf-interface-configurations/{id}/- Delete an OSPF interface configuration
API Usage Examples¶
Python Request Example¶
import requests
# Nautobot API configuration
NAUTOBOT_URL = "https://nautobot.example.com"
API_TOKEN = "your-api-token-here"
HEADERS = {
"Authorization": f"Token {API_TOKEN}",
"Content-Type": "application/json",
}
# Get all IGP routing instances
response = requests.get(
f"{NAUTOBOT_URL}/api/plugins/igp-models/igp-routing-instances/",
headers=HEADERS
)
routing_instances = response.json()
# Create a new ISIS configuration
isis_config = {
"routing_instance": "uuid-of-routing-instance",
"net_address": "49.0001.1234.5678.9012.00",
"area_authentication_mode": "md5",
"area_authentication_key": "secret123",
}
response = requests.post(
f"{NAUTOBOT_URL}/api/plugins/igp-models/isis-configurations/",
headers=HEADERS,
json=isis_config
)
cURL Example¶
# Get all OSPF configurations
curl -X GET \
https://nautobot.example.com/api/plugins/igp-models/ospf-configurations/ \
-H "Authorization: Token your-api-token-here" \
-H "Content-Type: application/json"
# Create a new routing instance
curl -X POST \
https://nautobot.example.com/api/plugins/igp-models/igp-routing-instances/ \
-H "Authorization: Token your-api-token-here" \
-H "Content-Type: application/json" \
-d '{
"device": "device-uuid",
"routing_protocol": "ISIS",
"routing_instance_name": "default"
}'
Integration with Network Automation Tools¶
The app integrates well with common network automation tools:
- Ansible: Use the
nautobot.nautobotcollection to interact with IGP models - Terraform: Use the Nautobot provider to manage IGP configurations as infrastructure-as-code
- Python Scripts: Use the
pynautobotlibrary for programmatic access - CI/CD Pipelines: Integrate API calls into your continuous integration workflows
Prerequisites¶
- Nautobot 2.0 or later
- Valid devices with interfaces defined in Nautobot
- Appropriate user permissions for creating and managing IGP configurations