Fabric Service (3.1.0)

Download OpenAPI specification:Download

This is the spec that defines the API provided by the application to register devices to a fabric, configure fabric parameters, validate all the devices in the fabric and configure switches for IP Fabric with/without overlay

Authentication

bearerAuth

Security Scheme Type HTTP
HTTP Authorization Scheme bearer
Bearer format "JWT"

Fabric

getFabrics

Get All fabric details configured in the application

Authorizations:
query Parameters
object

{"group_by":"fabric-type"} Responses grouped by fabric-type {"filter":[{"name":"fabric-name","value":"Fabric1"},{"name":"fabric-type',"value":"non-clos"}] Responses searched by fabric-name="Fabric1" and fabric-type="non-clos" {"fuzzy":"Fabric1"} Responses searched using fuzzy search "Fabric1"

object

{"sort_by":"asc|desc"} Responses with id in ascending or descending order {"offset" : "lt:30"} Responses searched with id less than 30 {"page_size":20} Responses searched with limit of 20 entries

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

getFabric

Get only specified fabric details. The fabric can be identified by id or name

Authorizations:
query Parameters
name
required
string

Name of the fabric to retrieve

Responses

Response samples

Content type
application/json
{
  • "fabric-name": "BLR-FABRIC",
  • "number-of-super-spine-nodes": "2",
  • "fabric-description": "Bengaluru Fabric",
  • "fabric-stage": 5,
  • "fabric-type": "clos",
  • "fabric-status": "provisioned",
  • "fabric-setting-updated": "BGP-LL,BGP-MD5",
  • "number-of-not-provisioned-nodes": "3",
  • "number-of-provisioned-nodes": "9",
  • "number-of-provisioned-failed-nodes": "9",
  • "number-of-config-gen-error-nodes": "3",
  • "number-of-config-ready-nodes": "3",
  • "number-of-config-refreshed-nodes": "3",
  • "number-of-config-in-sync-nodes": "3",
  • "number-of-multi-homed-leaf-nodes": "10",
  • "fabric-settings": {
    },
  • "fabric-id": 1,
  • "fabric-devices": "",
  • "number-of-pods": "5",
  • "numer-of-racks": "4",
  • "number-of-single-homed-leaf-nodes": "0",
  • "number-of-spine-nodes": "4",
  • "number-of-single-homed-border-leaf-nodes": "4",
  • "number-of-multi-homed-border-leaf-nodes": "4"
}

createFabric

Authorizations:
Request Body schema: application/json

Create a new Fabric

name
required
string
description
string
stage
integer <int32>
Enum: 3 5 7
type
string
Enum: "clos" "non-clos"

Responses

Request samples

Content type
application/json
{
  • "stage": 5,
  • "type": "clos",
  • "name": "BLR-FABRIC",
  • "description": "Bengaluru DC IP Fabric"
}

Response samples

Content type
application/json
{
  • "fabric-name": "BLR-FABRIC",
  • "number-of-super-spine-nodes": "2",
  • "fabric-description": "Bengaluru Fabric",
  • "fabric-stage": 5,
  • "fabric-type": "clos",
  • "fabric-status": "provisioned",
  • "fabric-setting-updated": "BGP-LL,BGP-MD5",
  • "number-of-not-provisioned-nodes": "3",
  • "number-of-provisioned-nodes": "9",
  • "number-of-provisioned-failed-nodes": "9",
  • "number-of-config-gen-error-nodes": "3",
  • "number-of-config-ready-nodes": "3",
  • "number-of-config-refreshed-nodes": "3",
  • "number-of-config-in-sync-nodes": "3",
  • "number-of-multi-homed-leaf-nodes": "10",
  • "fabric-settings": {
    },
  • "fabric-id": 1,
  • "fabric-devices": "",
  • "number-of-pods": "5",
  • "numer-of-racks": "4",
  • "number-of-single-homed-leaf-nodes": "0",
  • "number-of-spine-nodes": "4",
  • "number-of-single-homed-border-leaf-nodes": "4",
  • "number-of-multi-homed-border-leaf-nodes": "4"
}

deleteFabric

Delete an existing fabric by fabric name

Authorizations:
query Parameters
name
required
string

Name of the fabric to be deleted

force
boolean
Default: false

Value true implies forced deletion of the fabric

Responses

Response samples

Content type
application/json
{
  • "fabric-name": "BLR-FABRIC",
  • "number-of-super-spine-nodes": "2",
  • "fabric-description": "Bengaluru Fabric",
  • "fabric-stage": 5,
  • "fabric-type": "clos",
  • "fabric-status": "provisioned",
  • "fabric-setting-updated": "BGP-LL,BGP-MD5",
  • "number-of-not-provisioned-nodes": "3",
  • "number-of-provisioned-nodes": "9",
  • "number-of-provisioned-failed-nodes": "9",
  • "number-of-config-gen-error-nodes": "3",
  • "number-of-config-ready-nodes": "3",
  • "number-of-config-refreshed-nodes": "3",
  • "number-of-config-in-sync-nodes": "3",
  • "number-of-multi-homed-leaf-nodes": "10",
  • "fabric-settings": {
    },
  • "fabric-id": 1,
  • "fabric-devices": "",
  • "number-of-pods": "5",
  • "numer-of-racks": "4",
  • "number-of-single-homed-leaf-nodes": "0",
  • "number-of-spine-nodes": "4",
  • "number-of-single-homed-border-leaf-nodes": "4",
  • "number-of-multi-homed-border-leaf-nodes": "4"
}

cloneFabric

Authorizations:
query Parameters
source-fabric
required
string

Fabric to be cloned from

destination-fabric
required
string

Fabric to be cloned to

Responses

Response samples

Content type
application/json
{
  • "fabric-name": "BLR-FABRIC",
  • "number-of-super-spine-nodes": "2",
  • "fabric-description": "Bengaluru Fabric",
  • "fabric-stage": 5,
  • "fabric-type": "clos",
  • "fabric-status": "provisioned",
  • "fabric-setting-updated": "BGP-LL,BGP-MD5",
  • "number-of-not-provisioned-nodes": "3",
  • "number-of-provisioned-nodes": "9",
  • "number-of-provisioned-failed-nodes": "9",
  • "number-of-config-gen-error-nodes": "3",
  • "number-of-config-ready-nodes": "3",
  • "number-of-config-refreshed-nodes": "3",
  • "number-of-config-in-sync-nodes": "3",
  • "number-of-multi-homed-leaf-nodes": "10",
  • "fabric-settings": {
    },
  • "fabric-id": 1,
  • "fabric-devices": "",
  • "number-of-pods": "5",
  • "numer-of-racks": "4",
  • "number-of-single-homed-leaf-nodes": "0",
  • "number-of-spine-nodes": "4",
  • "number-of-single-homed-border-leaf-nodes": "4",
  • "number-of-multi-homed-border-leaf-nodes": "4"
}

validateFabric

Validate CLOS topology of an input fabric

Authorizations:
query Parameters
fabric-name
required
string

Name of the fabric

Responses

Response samples

Content type
application/json
{
  • "fabric_name": "default",
  • "fabric_id": 1,
  • "missing_links": [
    ],
  • "missing_spines": true,
  • "fabric_settings": {
    },
  • "missing_leaves": true,
  • "redundant_links": [
    ],
  • "leaf_leaf_links": [
    ],
  • "configuration_drifts": "{}",
  • "spine_spine_links": [
    ]
}

FabricErrors

Get Fabric Error For an input fabric

Authorizations:
query Parameters
fabric-name
required
string

Name of the fabric

Responses

Response samples

Content type
application/json
{
  • "fabric_name": "default",
  • "fabric_id": 1,
  • "deviceErrorResponse": [
    ]
}

migrateFabric

Migrate a 3-stage CLOS fabric to 5-stage CLOS fabric.

Authorizations:
query Parameters
type
required
string
Value: "3-to-5-stage"

Type of migration [3-to-5-stage] (default 3-to-5-stage)

source-fabric
required
string

Name of the 3-stage CLOS fabric to be migrated

destination-3-stage-leaf-spine-pod
required
string

Name of the 3-stage POD into which the leaf and spine devices (of the 3-stage CLOS fabric) need to be moved during migrate.

destination-3-stage-border-leaf-pod
string

Name of the 3-stage POD into which the border-leaf devices (of the 3-stage CLOS fabric) need to be moved during migrate.

super-spine-asn-block
string

ASN block to be used by the super-spine devices of the migrated 5-stage CLOS fabric.

super-spine-peer-group
string

Peer Group to be used by the spine devices of the migrated 5-stage CLOS fabric.

Responses

Response samples

Content type
application/json
{
  • "fabric-name": "BLR-FABRIC",
  • "fabric-id": 1,
  • "status": "Successful"
}

configureFabric

Configure IP Fabric underlay/overlay on all devices of a fabric

Authorizations:
query Parameters
fabric-name
required
string

Name of the fabric

force
boolean
Default: false

Force the fabric configure operation on all devices of the fabric

validate-topology
boolean
Default: true

Option to validate topology before configure

Responses

Response samples

Content type
application/json
{
  • "fabric-name": "BLR-FABRIC",
  • "fabric-id": 1,
  • "status": "Successful"
}

Fabric Health

getFabricHealth

Get fabric health details of the specified fabric. The fabric is identified by name.

Authorizations:
query Parameters
name
required
string

Name of the fabric to retrieve

Responses

Response samples

Content type
application/json
{
  • "fabric-name": "BLR-FABRIC",
  • "fabric-type": "clos",
  • "fabric-stage": 5,
  • "fabric-status": "provisioned",
  • "fabric-health": "healthy"
}

getFabricsHealth

Get fabric health details of all the fabrics.

Authorizations:

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Fabric Setting

getFabricSetting

Authorizations:
query Parameters
name
required
string

Name of the fabric to retrieve

Responses

Response samples

Content type
application/json
{
  • "fabric-settings": {
    }
}

updateFabricSetting

Authorizations:
Request Body schema: application/json

Update Fabric Settings.

name
required
string
required
Array of objects (FabricParameter)

Responses

Request samples

Content type
application/json
{
  • "name": "name",
  • "keyval": [
    ]
}

Response samples

Content type
application/json
{
  • "fabric-name": "BLR-FABRIC",
  • "number-of-super-spine-nodes": "2",
  • "fabric-description": "Bengaluru Fabric",
  • "fabric-stage": 5,
  • "fabric-type": "clos",
  • "fabric-status": "provisioned",
  • "fabric-setting-updated": "BGP-LL,BGP-MD5",
  • "number-of-not-provisioned-nodes": "3",
  • "number-of-provisioned-nodes": "9",
  • "number-of-provisioned-failed-nodes": "9",
  • "number-of-config-gen-error-nodes": "3",
  • "number-of-config-ready-nodes": "3",
  • "number-of-config-refreshed-nodes": "3",
  • "number-of-config-in-sync-nodes": "3",
  • "number-of-multi-homed-leaf-nodes": "10",
  • "fabric-settings": {
    },
  • "fabric-id": 1,
  • "fabric-devices": "",
  • "number-of-pods": "5",
  • "numer-of-racks": "4",
  • "number-of-single-homed-leaf-nodes": "0",
  • "number-of-spine-nodes": "4",
  • "number-of-single-homed-border-leaf-nodes": "4",
  • "number-of-multi-homed-border-leaf-nodes": "4"
}

Fabric Topology

getFabricPhysicalTopology

Get fabric physical topology for a specified fabric.

Authorizations:
query Parameters
fabric-name
required
string

Name of the fabric

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "errors": [
    ]
}

getFabricUnderlayTopology

Get fabric underlay topology for a specified fabric

Authorizations:
query Parameters
fabric-name
required
string

Name of the fabric

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "errors": [
    ]
}

getFabricOverlayTopology

Get fabric overlay topology for a specified fabric

Authorizations:
query Parameters
fabric-name
required
string

Name of the fabric

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "errors": [
    ]
}

Fabric Device

getDevicesByFabricName

Get All Devices in the specified fabric.

Authorizations:
query Parameters
fabric-name
required
string

Fabric name

object

{"group_by":"role"} Responses grouped by role {"filter":[{"name":"ip-address","value":"10.20.241.1"},{"name":"role',"value":"Leaf"}] Responses searched by ip-address="10.20.241.1" and role="Leaf" {"fuzzy":"lea"} Responses searched using fuzzy search "lea"

object

{"sort_by":"asc|desc"} Responses with id in ascending or descending order {"offset" : "lt:30"} Responses searched with id less than 30 {"page_size":20} Responses searched with limit of 20 entries

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

addDevicesToFabric

Authorizations:
Request Body schema: application/json

Add new devices to the specified fabric

fabric-name
string

Name of the fabric

Array of objects (FabricDeviceAddRequest) unique

Responses

Request samples

Content type
application/json
{
  • "fabric-name": "BLR-FABRIC",
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "items": [
    ]
}

removeDevicesFromFabric

Remove devices from the specific fabric

Authorizations:
Request Body schema: application/json

Details of the devices to be removed

fabric-name
string

Name of the fabric

Array of objects (FabricDeviceRemoveRequest) unique

Responses

Request samples

Content type
application/json
{
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "items": [
    ]
}

deviceConfigDriftAndReconcile

This API helps user to generate the drift between the EFA intended config and actual Device config. If reconcile flag is set then generated drift will be pushed to the device

Authorizations:
query Parameters
name
required
string

Name of the fabric

deviceip
required
string

Device IP

reconcile
boolean
Default: false

Reconcile flag

Responses

Response samples

Content type
application/json
{
  • "mgmt-ip": "10.10.10.10",
  • "config-drift": {
    },
  • "reconciliation-status": [
    ],
  • "error": [
    ]
}

Debug

clearDeviceConfiguration

Clear configurations from a list of devices

Authorizations:
Request Body schema: application/json

One or More Devices where configs are to be cleared.

reference_fabric_name
string
ip_address
Array of strings

Responses

Request samples

Content type
application/json
{
  • "ip_address": [
    ],
  • "reference_fabric_name": [
    ]
}

Response samples

Content type
application/json
{
  • "status": "Successful"
}

Reasons For App generating configs

Get configurations Reason for a devices

Authorizations:
Request Body schema: application/json

Get Configs Generate Reasons for One Devices

name
string
ip_address
string

Responses

Request samples

Content type
application/json
{
  • "ip_address": [
    ],
  • "name": [
    ]
}

Response samples

Content type
application/json
{
  • "lldp_config_generate_reason": [
    ]
}

enableSmartDrcConfiguration

Enable Smart Drc for fabric Service

Authorizations:
query Parameters
enable
required
boolean
Default: false

Enable flag

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "message",
  • "errors": [
    ]
}

LockStatus

Get lock statuses

Get lock statuses

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Trouble Shooting

getExecutionDetail

Get the detailed output of the given execution ID

Authorizations:
query Parameters
id
required
string

Detailed output of the given execution ID

Responses

Response samples

Content type
application/json
{
  • "start_time": "2000-01-23T04:56:07.000Z",
  • "end_time": "2000-01-23T04:56:07.000Z",
  • "id": "id",
  • "parameters": "configure add",
  • "logs": "logs",
  • "command": "configure add",
  • "status": "Failed, Succeeded",
  • "user_name": "admin"
}

getExecutionList

Get the list of all the previous executions

Authorizations:
query Parameters
limit
required
integer
Default: 10

Limit the number of executions that will be sent in the response. Default is 10

status
string
Default: "all"

Filter the executions based on the status(failed/succeeded/all)

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

deleteExecutions

This API will delete the execution older than specific number of days

Authorizations:
query Parameters
days_older_by
required
integer
Default: 30

Deletes execution entries older than specified number of days

Responses

Response samples

Content type
application/json
{
  • "code": 0,
  • "message": "message",
  • "errors": [
    ]
}

getEventHistoryList

Get the list of all the event Histories

Authorizations:
query Parameters
execution_uuid
string

Execution UUID for filtering

device_ip
string

Device IP for filtering

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

GetRunningConfig

Get the list of all CLIs in Running Config

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "items": [
    ]
}

Config Show

getConfigShow

Get the Configuration of Devices in a Fabric

Authorizations:
query Parameters
fabricName
required
string

Name of the fabric to retrieve

role
required
string
Default: "all"
Enum: "spine" "leaf" "border-leaf" "all"

role of the devices for which config needs to be fetched

ip
required
string

ip of the devices for which config needs to be fetched

Responses

Response samples

Content type
application/json
{
  • "Response": "Response"
}

Health

getHealth

Get the health of the Fabric service.

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "Service": "string",
  • "MessageBus": "string"
}