11.3 RESTCONF API Operations & Cisco Catalyst Center Intent APIs
Key Takeaways
- RESTCONF (RFC 8040) exposes YANG data models over HTTP/HTTPS (TCP 443), mapping CRUD operations to standard HTTP methods (GET, POST, PUT, PATCH, DELETE) and supporting JSON alongside XML.
- The RESTCONF URI schema standardizes entry points under /restconf/data/ for configuration and operational datastores, and /restconf/operations/ for Remote Procedure Call (RPC) execution, utilizing media type application/yang-data+json.
- HTTP method semantics on RESTCONF endpoints strictly define datastore mutation: PUT replaces an entire resource or creates it if absent, POST creates child list entries or invokes RPCs, while PATCH executes partial merges of specific attributes without disturbing siblings.
- Cisco Catalyst Center northbound Intent APIs govern campus-wide wireless lifecycle operations across Site Design, Device Onboarding (Plug and Play), and Assurance, utilizing a token authentication lifecycle via POST /dna/system/api/v1/auth/token with the X-Auth-Token header.
- Catalyst Center Assurance APIs—particularly /dna/intent/api/v1/client-health and /dna/intent/api/v1/network-device—enable proactive health scoring (1–10) across client onboarding latency, RSSI, SNR, and AP connectivity without polling individual controllers.
11.3 RESTCONF API Operations & Cisco Catalyst Center Intent APIs
Core Blueprint Focus: Domain 7.0 (Automation and AI) evaluates candidate expertise across two levels of programmability: direct device-level interaction via RESTCONF and centralized controller orchestration via Cisco Catalyst Center. While NETCONF is ideal for stateful, transactional automation over SSH, web developers and cloud orchestration pipelines favor a RESTful, HTTP-native interface consuming JSON payloads. RFC 8040 defines RESTCONF to provide this capability on the Cisco Catalyst 9800 WLC. At the enterprise orchestration layer, Cisco Catalyst Center exposes Intent-Based Networking APIs for campus-wide wireless lifecycle management.
1. RESTCONF Protocol Fundamentals (RFC 8040)
RESTCONF is an IETF standard protocol (RFC 8040) that provides an HTTP-based interface for applications to access and manipulate configuration and operational data defined in YANG data models. It adopts the architectural principles of Representational State Transfer (REST) while enforcing the rigorous schema validation of YANG.
Architectural Comparison: RESTCONF vs. NETCONF
| Feature | NETCONF (RFC 6241) | RESTCONF (RFC 8040) |
|---|---|---|
| Transport Protocol | SSH (TCP Port 830) or TLS | HTTPS (TCP Port 443) |
| Data Encodings | XML exclusively | JSON (application/yang-data+json) and XML |
| Operations Protocol | XML RPCs (<get>, <edit-config>, <commit>) | Standard HTTP Methods (GET, POST, PUT, PATCH, DELETE) |
| Session State | Stateful (Maintains session ID, capabilities, locks) | Stateless (Each HTTP request is completely independent) |
| Datastore Concept | Explicit datastores: <running/>, <startup/>, <candidate/> | Accesses single conceptual running/operational datastore directly |
| Framing Mechanism | Chunked framing (Base 1.1) or ]]>]]> (Base 1.0) | Standard HTTP chunked transfer encoding / Content-Length |
| Security & Auth | SSH keys or PAM authentication | TLS encryption with HTTP Basic or Token-based authentication |
2. RESTCONF Architecture & URI Structure
RESTCONF maps YANG schema hierarchies directly into predictable Uniform Resource Identifier (URI) paths:
https://<wlc-ip>:<port>/restconf/<root-resource>/<yang-module>:<container>/<list>=<key>
Standard Root Resources
Under the top-level /restconf/ path, the protocol exposes three standardized root entry points:
- /restconf/data/: Access point for all configuration and operational state data modeled in YANG. To query or configure a resource, append the YANG container path to this URI.
- /restconf/operations/: Access point for invoking Remote Procedure Calls (RPCs) defined within YANG modules (e.g., triggering an AP reboot or manual channel reset).
- /restconf/yang-library-version: Returns the version of the IETF YANG library implemented by the wireless controller.
HTTP Method Mapping to Wireless Datastore Operations
RESTCONF maps standard HTTP verbs to network datastore modifications:
GET(Read Resource): Retrieves configuration data or live operational telemetry from/restconf/data/. Equivalent to NETCONF<get>or<get-config>. Returns200 OK.POST(Create Resource or Invoke RPC): Creates a child data node within a parent list or container. Also used under/restconf/operations/to execute an RPC command. If successful, returns201 Createdwith aLocationheader indicating the URI of the new resource.PUT(Replace or Create): Creates or completely replaces the target resource at the specified URI. If the resource exists, it is overwritten entirely; if it does not exist, it is created. Returns200 OKor201 Created.PATCH(Partial Update / Merge): Modifies specific attributes of an existing resource without altering other properties. Equivalent to NETCONF<edit-config>withdefault-operation='merge'. Returns200 OKor204 No Content.DELETE(Remove Resource): Deletes the target resource identified by the URI. Equivalent to NETCONF<edit-config>withoperation='delete'. Returns204 No Content.
Query Parameters for Telemetry Filtering
RESTCONF supports standardized URL query parameters to refine queries:
?content=config: Retrieves configuration data only (ignoring operational telemetry).?content=nonconfig: Retrieves operational state telemetry only.?depth=N: Limits the depth of nested child containers returned (e.g.,?depth=1returns top-level container leaves only).?fields=leaf1;leaf2: Returns only the specified attributes, reducing network bandwidth.
3. Cisco Catalyst Center Intent APIs
While RESTCONF manages individual wireless controllers, Cisco Catalyst Center provides centralized intent-based network management. Its northbound Intent APIs allow network engineers to manage policies, provision campus sites, automate device onboarding, and monitor client assurance across hundreds of WLCs and thousands of Access Points.
Northbound Intent API Architecture
Catalyst Center organizes its APIs into functional architectural domains:
- Authentication: Manages session tokens via
/dna/system/api/v1/auth/token. - Site Design & Hierarchy: Defines geographic areas, buildings, and floors (
/dna/intent/api/v1/site) and manages wireless network profiles (/dna/intent/api/v1/wireless/profile). - Device Onboarding (Plug and Play): Automates initial device claiming and Day-0 configuration push (
/dna/intent/api/v1/onboarding/pnp-device). - Assurance & Telemetry: Exposes health scores (1–10), client connection latency, and RF telemetry (
/dna/intent/api/v1/client-health,/dna/intent/api/v1/network-device).
Token Authentication Workflow
Catalyst Center enforces a token-based authentication lifecycle for all northbound API requests:
- Authentication Request: The client sends an HTTP
POSTrequest tohttps://<catalyst-center-fqdn>/dna/system/api/v1/auth/token. - Credentials: The request includes HTTP Basic Authentication in the
Authorizationheader containing the Base64-encoded username and password (Authorization: Basic <base64-string>). - Token Issuance: Catalyst Center verifies credentials and returns a JSON payload containing a
Tokenstring (valid for 1 hour by default):{ "Token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..." } - Subsequent API Invocations: For all subsequent requests, the client omits the Basic Auth header and instead passes the token in a custom header:
X-Auth-Token: <token>.
Core Wireless Intent API Endpoints
| Endpoint Path | HTTP Method | Description and Operational Usage |
|---|---|---|
/dna/system/api/v1/auth/token | POST | Authenticates using HTTP Basic Auth and returns the mandatory X-Auth-Token. |
/dna/intent/api/v1/network-device | GET | Retrieves managed network devices. Supports ?family=Wireless Controller or ?family=Unified AP. |
/dna/intent/api/v1/site | GET / POST | Retrieves or creates site hierarchy structures (Global, Area, Building, Floor). |
/dna/intent/api/v1/wireless/profile | GET / POST | Provisions wireless network profiles, binding SSIDs and interface VLANs to campus sites. |
/dna/intent/api/v1/onboarding/pnp-device | GET / POST | Discovers and claims unprovisioned APs and switches via Network Plug and Play (PnP). |
/dna/intent/api/v1/client-health | GET | Queries Catalyst Center Assurance telemetry, returning real-time health scores (1–10), onboarding latency, SNR, and RSSI. |
4. Secure Python Automation: Catalyst Center Token & Client Health Query
Use an authenticated session, retrieve secrets from an approved external source, verify TLS with the enterprise CA, set timeouts, check status codes, and keep the token out of logs.
import os
import requests
from requests.auth import HTTPBasicAuth
BASE = os.environ['CATALYST_CENTER_URL'].rstrip('/')
CA_BUNDLE = os.environ['NETWORK_CA_BUNDLE']
USER = os.environ['CATALYST_CENTER_USERNAME']
PASSWORD = os.environ['CATALYST_CENTER_PASSWORD']
with requests.Session() as session:
session.verify = CA_BUNDLE
auth_reply = session.post(
f'{BASE}/dna/system/api/v1/auth/token',
auth=HTTPBasicAuth(USER, PASSWORD),
timeout=(5, 30),
)
auth_reply.raise_for_status()
token = auth_reply.json()['Token']
headers = {'X-Auth-Token': token, 'Accept': 'application/json'}
devices_reply = session.get(
f'{BASE}/dna/intent/api/v1/network-device',
headers=headers,
params={'family': 'Wireless Controller'},
timeout=(5, 30),
)
devices_reply.raise_for_status()
wireless_controllers = devices_reply.json().get('response', [])
health_reply = session.get(
f'{BASE}/dna/intent/api/v1/client-health',
headers=headers,
timeout=(5, 30),
)
health_reply.raise_for_status()
client_health = health_reply.json().get('response', [])
A private enterprise CA is not a reason to disable verification; supply its CA bundle. Handle authentication, authorization, timeout, schema, and server failures separately in production, and avoid printing passwords or tokens.
A network engineer needs to update an existing WLAN configuration on a Cisco Catalyst 9800 WLC using RESTCONF. Specifically, the engineer needs to modify the broadcast-ssid attribute to false without overwriting or resetting any other existing security parameters, radio policies, or description fields in the WLAN profile. Which HTTP method should the engineer execute against the RESTCONF URI?
An automation script is being deployed to interact with Cisco Catalyst Center to retrieve real-time wireless client health scores. The script successfully posts credentials to /dna/system/api/v1/auth/token and obtains an authentication token. How must this token be passed in subsequent requests to the Catalyst Center Intent API endpoints?
A DevOps engineer is developing a CI/CD pipeline script to validate wireless configurations against a Cisco Catalyst 9800 WLC using RESTCONF. When querying the URI 'https://10.10.20.50/restconf/data/Cisco-IOS-XE-wireless-wlan-cfg:wlan-cfg-data', which HTTP header pair must be specified to ensure the client correctly negotiates JSON formatted data according to the underlying YANG schema?
An enterprise wireless operations team uses Cisco Catalyst Center to monitor network performance across multiple campus locations. Which northbound Intent API endpoint should an automated script invoke to retrieve real-time wireless client health scores ranging from 1 to 10 along with onboarding latency and connection failure metrics?