Power On Auto Provisioning (POAP)
The following are the Power On Auto Provisioning (POAP) REST APIs:
Status
The following table details the API Response code, status and, the HTTPS methods.
|
|
|
200 |
OK |
GET |
202 |
Accepted |
POST PUT DELETE |
400 |
Bad Request |
GET POST PUT DELETE |
401 |
Unauthorized |
GET POST PUT DELETE |
403 |
Forbidden |
GET POST PUT DELETE |
404 |
Not Found |
GET POST PUT DELETE |
405 |
Method Not Allowed |
GET POST PUT DELETE |
500 |
Internal Server Error |
GET POST PUT DELETE |
Resource Name
/poap/servers
Description
List POAP image/config servers
URL
https://dcnm-ip/rest/poap/servers
https://dcnm-ip/rest/poap/servers?detail=true
Return Value
Format: JSON
Type: Object
|
|
|
poap-servers |
|
By default, a list of POAP image/config server names is displayed. If "detail=true"a list of POAP image/config server-objects including server-name and URI is displayed. |
Resource Name
/poap/servers
Description
Create a new POAP image/config server
URL
https://dcnm-ip/rest/poap/servers
Parameter
|
|
|
poap-servers |
|
POAP image/config server-object includingserver-name,URI,hostname/ipaddress, path,username and password. |
Return Value
Format: JSON
Type: Object
|
|
|
poap-server-name |
|
POAP image/config server name. |
Resource Name
/poap/servers/server-name
Description
Get the POAP image/config servers
URL
https://dcnm-ip/rest/poap/servers/server-name
Return Value
Format: JSON
Type: Object
|
|
|
poap-server |
|
POAP image/config server-object including server-name and URI. |
Resource Name
/poap/servers/server-name
Description
Update the POAP image/config servers
URL
https://dcnm-ip/rest/poap/servers/server-name
Parameter
|
|
|
poap-server |
|
POAP image/configserver-object including server-name,hostname/ipaddress, path,username and password. |
Return Value
Format: JSON
Type: Object
Resource Name
/poap/servers/server-name
Description
Delete the POAP image/config servers
URL
https://dcnm-ip/rest/poap/servers/server-name
Return Value
Format: JSON
Type: Object
Resource Name
/poap/switch-definitions
Description
List the POAP switch definitions
URL
https://dcnm-ip/rest/poap/switch-definitions
https://dcnm-ip/rest/poap/switch-definitions?detail=true https://dcnm-ip/rest/poap/switch-definitions?search-string=<search-string>&start-index=<start-index>&size=<size>
Return Value
Format: JSON
Type: Object
|
|
|
Switch-definitions |
|
By default, a list of serial- numbers is displayed. If "detail=true", then a list of switch-definition objects including serial-numbers, status(saved and publish later/published/saved and publishing/error), system-image, kick-start-image, image-server-uri, config-server-uri, template-name, parameter-values with a list of name, type, value corresponding to the template is displayed. |
Create Switch Definitions
Resource Name
/poap/switch-definitions
Description
Create POAP switch definitions
URL
https://dcnm-ip/rest/poap/switch-definitions
Parameter
|
|
|
Switch-definitions |
|
Displays a list of serial-numbers, system-image, kick-start-image, image-server-uri, config-server-uri, template-name, poap-settings-name, parameter-values with a list of name, type, value corresponding to the template, and publish=true/false. |
Return Value
Format: JSON
Type: Object
|
|
|
switch-numbers |
|
List of serial numbers. |
Publish Switch Definitions
Resource Name
/poap/published-switch-definitions/{serial-number}
Description
Publish list of switch-definitions to the Repository server.
URL
https://dcnm-ip/rest/poap/published-switch-definitions/{serial-number}
Return Value
Format: JSON
Type: Object
Resource Name
/poap/switch-definitions/{serial-number}
Description
Get a switch definition.
URL
https://dcnm-ip/rest/poap/switch-definitions/{serial-number}
Return Value
Format: JSON
Type: Object
|
|
|
switch-definition |
|
Displays a list of serial-numbers, system-image, kick-start-image, image-server-uri, config-server-uri, template-name and parameter-values with a list of name, type, value corresponding to the template. |
Update a Switch Definition
Resource Name
/poap/switch-definitions/serial-number
Description
Update a switch-definition.
URL
https://dcnm-ip/rest/poap/switch-definitions/{serial-number}
Parameter
|
|
|
switch-definition |
|
Displays a list of serial-numbers, system-image, kick-start-image, image-server-uri, config-server-uri, template-name and parameter-values with a list of name, type, value corresponding to the template, and publish=true/false. |
Return Value
Format: JSON
Type: Object
Delete a Switch Definition
Resource Name
/poap/switch-definitions/serial-number
Description
Delete a switch-definition.
URL
https://dcnm-ip/rest/poap/switch-definitions/{serial-number}
Return Value
Format: JSON
Type: Object
Resource Name
/poap/templates/{template-name}
Description
Get a POAP template.
URL
https://dcnm-ip/rest/poap/templates/{template-name}
Parameter
|
|
|
Serial-number |
S |
Device serial-number |
Return Value
Format: JSON
Type: Object
|
|
|
Poap-template |
O |
Poap template object |
Resource Name
/poap/templates
Description
Create a POAP template.
URL
https://dcnm-ip/rest/poap/templates
Parameter
|
|
|
Poap-template |
O |
Poap template object |
Return Value
Format: JSON
Type: Object
|
|
|
Poap-template-name |
O |
Poap template name |
Resource Name
/poap/templates/{template-name}
Description
Update a POAP template.
URL
https://dcnm-ip/rest/poap/templates/{template-name}
Parameter
|
|
|
Poap-template |
O |
Poap template object |
Return Value
Format: JSON
Type: Object
Resource Name
/poap/templates/{template-name}
Description
Delete a POAP template.
URL
https://dcnm-ip/rest/poap/templates/{template-name}
Parameter
|
|
|
Poap-template-name |
S |
Poap template name |
Return Value
Format: JSON
Type: Object
Get All Published Templates
Resource Name
/poap/templates?published=true
Description
Get all the published templates.
URL
https://dcnm-ip/rest/templates?published=true
Return Value
Format: JSON
Type: Object
|
|
|
templates |
O |
Returns all the published template names, if published=true. Returns all the templates if published=false. |
Generate Template Startup Config
Resource Name
/templates/populate-template/{template-name}
Description
Generates template for startup config.
URL
https://dcnm-ip/rest/templates/populate-template/{template-name}
Example
Request Body:
"ADMIN_USERNAME":"admin",
"ADMIN_PASSWORD":"test123",
"DEFAULT_GATEWAY":"10.0.0.1",
Response Body:
"startupConfig":"hostname r-123\n\nno password strength-check\nusername admin password test123 role network-admin\n\nsnmp-server user admin network-admin auth md5 test123 priv test123 \n\nvrf context management\n ip route 0.0.0.0/0 10.0.0.1\n\ninterface mgmt0\n vrf member management\n no cdp enable\n no lldp transmit \n no lldp receive \n ip address 10.0.0.0/24\n no shutdown\n\nline console\n\n exec-timeout 0\n"
Parameter
|
|
|
templateParams |
O |
Template parameters with values. You will get the templateParams in get template data API response. It returns the template parameters with default values. The object should contain key-value pairs whose keys align with the Parameters field in the Get Configuration Template method. |
Return Value
Format: JSON
Type: Object
|
|
|
startupConfig |
S |
Return startup config |
Resource Name
/templates/groups
Description
Get all the groups.
URL
https://dcnm-ip/rest/templates/groups
Return Value
Format: JSON
Type: Object
|
|
|
memDbId, name, navType |
S |
Return group/scope details |
Perform Shallow Discovery
Resource Name
/templates/perform-shallow-discovery
Description
All the devices provided in payload will be discovered into DCNM.
URL
https://dcnm-ip/rest/templates/perform-shallow-discovery
Parameter
|
|
|
POAP |
A |
Serial Number, Management IP, Lan Group, User Name and Password need to provide in payload. |
Return Value
Format: JSON
Type: Object
Create Multiple POAP Definitions
Resource Name
/poap/definitions
Description
Simple and Single API to create multiple POAP definitions w/ discovery.
if you use this single API, the following separate APIs are not required.
- Create the switch definition without template— /rest/poap/switch-definitions (POST)
- Generate the startup configuration— /rest/templates/populate-template/<template-name> (POST)
- Associate the template and startup configuration with the switch definition— /rest/poap/templates (POST)
- Publish the switch definition— /rest/poap/published-switch-definitions/<serial-number> (POST)
- Discover the switch in Cisco DCNM— /rest/templates/perform-shallow-discovery (POST)
URL
https://dcnm-ip/rest/poap/definitions
Parameter
|
|
|
Request Payload |
A |
Array of switchDetails and templateDetails. |
Return Value
Format: JSON
Type: Object
|
|
|
Response Object |
O |
POAP Device Serial Number and the Status |
Example
The following example shows how to create two POAP definitions using this API:
Request: {
"serialNumber":"SerialNo1",
"systemImageName":"sys.bin",
"kickstartImageName":"kick.bin",
"serialNumber":"SerialNo2",
"systemImageName":"sys.bin",
"kickstartImageName":"kick.bin",
"SWITCH_NAME":"Switch-1",
"ADMIN_USERNAME":"admin",
"ADMIN_PASSWORD":"cisco123",
"DEFAULT_GATEWAY":"80.0.0.1",
"templateName":"Example_Simple_v6"
"SWITCH_NAME":"Switch-2",
"ADMIN_USERNAME":"admin",
"ADMIN_PASSWORD":"cisco123",
"DEFAULT_GATEWAY":"80.0.0.1",
"templateName":"Example_Simple_v6"
Response: