Fabric Service (2.6.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

Fabric

getFabrics

Get All fabric details configured in the application

Responses

200

OK

400

Bad Request.

401

Authorization information is missing or invalid.

404

No fabrics found in the system

409

Conflict.

500

Unexpected error

default

Unexpected error

get/fabrics
http://gofabric-service:80/v1/fabric/fabrics

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ]
}

getFabric

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

query Parameters
name
required
string

Name of the fabric to retrieve

Responses

200

OK

400

Bad Request.

401

Authorization information is missing or invalid.

404

A fabric with the specified name was not found.

409

Conflict Request.

500

Unexpected error.

default

Unexpected error

get/fabric
http://gofabric-service:80/v1/fabric/fabric

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "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

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

200

OK

400

Bad Request.

401

Authorization information is missing or invalid.

404

Not Found.

409

A fabric with the specified name already exists.

500

Unexpected error.

default

Unexpected error

post/fabric
http://gofabric-service:80/v1/fabric/fabric

Request samples

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

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "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

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

200

OK

400

Bad Request.

401

Authorization information is missing or invalid.

404

A fabric with the specified name was not found.

409

Conflict Request.

500

Unexpected error.

default

Unexpected error

delete/fabric
http://gofabric-service:80/v1/fabric/fabric

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "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

query Parameters
source-fabric
required
string

Fabric to be cloned from

destination-fabric
required
string

Fabric to be cloned to

Responses

200

OK

400

Bad Request.

401

Authorization information is missing or invalid.

404

Not Found.

409

A fabric with the specified name already exists.

500

Unexpected error.

default

Unexpected error

post/clone
http://gofabric-service:80/v1/fabric/clone

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "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

query Parameters
fabric-name
required
string

Name of the fabric

Responses

200

OK

400

Bad Request.

401

Authorization information is missing or invalid.

404

A fabric with the specified name was not found.

409

Conflict Request.

500

Unexpected error.

get/validate
http://gofabric-service:80/v1/fabric/validate

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "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

query Parameters
fabric-name
required
string

Name of the fabric

Responses

200

OK

400

Bad Request.

401

Authorization information is missing or invalid.

404

A fabric with the specified name was not found.

409

Conflict Request.

500

Unexpected error.

get/errors
http://gofabric-service:80/v1/fabric/errors

Response samples

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

configureFabric

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

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

Responses

200

OK

400

Bad Request.

401

Authorization information is missing or invalid.

404

Not Found.

409

Conflict Request.

500

Unexpected error.

default

Unexpected error

post/configure
http://gofabric-service:80/v1/fabric/configure

Response samples

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

Fabric Setting

getFabricSetting

query Parameters
name
required
string

Name of the fabric to retrieve

Responses

200

OK

400

Incorrect values specified for Fabric setting

401

Authorization information is missing or invalid.

404

A fabric with the specified name was not found.

409

A fabric settings already exist and cannot be updated.

500

Unexpected error.

default

Unexpected error

get/setting
http://gofabric-service:80/v1/fabric/setting

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "fabric-settings":
    {
    }
}

updateFabricSetting

Request Body schema: application/json

Update Fabric Settings.

name
required
string
keyval
required
Array of objects (FabricParameter)

Responses

200

OK

400

Incorrect values specified for Fabric setting

401

Authorization information is missing or invalid.

404

A fabric with the specified name was not found.

409

A fabric settings already exist and cannot be updated.

500

Unexpected error.

default

Unexpected error

put/setting
http://gofabric-service:80/v1/fabric/setting

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "name": "name",
  • "keyval":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "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.

query Parameters
fabric-name
required
string

Name of the fabric

Responses

200

OK

400

Bad Request.

401

Authorization information is missing or invalid.

404

A device with the specified IP was not found.

409

Conflict.

500

Unexpected error

default

Unexpected error

get/topology/physical
http://gofabric-service:80/v1/fabric/topology/physical

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ]
}

getFabricUnderlayTopology

Get fabric underlay topology for a specified fabric

query Parameters
fabric-name
required
string

Name of the fabric

Responses

200

OK

400

Bad Request.

401

Authorization information is missing or invalid

404

A device with the specified IP was not found

409

Conflict.

500

Unexpected error

default

Unexpected error

get/topology/underlay
http://gofabric-service:80/v1/fabric/topology/underlay

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ]
}

getFabricOverlayTopology

Get fabric overlay topology for a specified fabric

query Parameters
fabric-name
required
string

Name of the fabric

Responses

200

OK

400

Bad Request.

401

Authorization information is missing or invalid

404

A device with the specified IP was not found

409

Conflict.

500

Unexpected error

default

Unexpected error

get/topology/overlay
http://gofabric-service:80/v1/fabric/topology/overlay

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ]
}

Fabric Device

getDevicesByFabricName

Get All Devices in the specified fabric.

query Parameters
fabric-name
required
string

Fabric name

Responses

200

OK

404

No Devices found for the specified fabric.

422

Specified Fabric not found.

500

Unexpected error.

default

Unexpected error

get/devices
http://gofabric-service:80/v1/fabric/devices

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ]
}

addDevicesToFabric

Request Body schema: application/json

Add new devices to the specified fabric

fabric-name
string

Name of the fabric

items
Array of objects (FabricDeviceAddRequest)

Responses

200

OK

400

Bad request

401

Authorization Error.

404

Not Found.

409

Conflict

410

Specified fabric doesnt exist

500

Unexpected error.

default

CLOS topology validation error

post/devices
http://gofabric-service:80/v1/fabric/devices

Request samples

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

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ]
}

removeDevicesFromFabric

Remove devices from the specific fabric

Request Body schema: application/json

Details of the devices to be removed

fabric-name
string

Name of the fabric

items
Array of objects (FabricDeviceRemoveRequest)

Responses

200

OK

400

Bad Request.

401

Authorization information is missing or invalid.

404

A Device with the specified IP Address was not found.

409

Conflict.

500

Unexpected error.

default

Unexpected error

delete/devices
http://gofabric-service:80/v1/fabric/devices

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ]
}

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

query Parameters
name
required
string

Name of the fabric

deviceip
required
string

Device IP

reconcile
boolean
Default: false

Reconcile flag

Responses

200

OK

400

Bad Request.

401

Authorization information is missing or invalid.

404

Not Found.

409

EndpointGroup with name already exists

500

Unexpected error

default

Unexpected error

post/device/config/drift
http://gofabric-service:80/v1/fabric/device/config/drift

Response samples

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

Debug

clearDeviceConfiguration

Clear configurations from a list of devices

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

200

OK

400

Bad Request.

401

Authorization information is missing or invalid.

404

Not Found.

409

Conflict.

500

Unexpected error.

default

Unexpected error

post/debug/device/clear
http://gofabric-service:80/v1/fabric/debug/device/clear

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "ip_address":
    [
    ],
  • "reference_fabric_name":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status": "Successful"
}

Reasons For App generating configs

Get configurations Reason for a devices

Request Body schema: application/json

Get Configs Generate Reasons for One Devices

name
string
ip_address
string

Responses

200

OK

400

Bad Request.

401

Authorization information is missing or invalid.

404

Not Found.

409

Conflict.

500

Unexpected error.

default

Unexpected error

post/debug/device/configGenerateReason
http://gofabric-service:80/v1/fabric/debug/device/configGenerateReason

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "ip_address":
    [
    ],
  • "name":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "lldp_config_generate_reason":
    [
    ]
}

pushConfig

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

query Parameters
fabric-name
required
string

Name of the fabric

device
required
string

ip of the devices whose Device State is provisioned and App State is cfg in-sync for which config needs to be pushed

Responses

200

OK

400

Bad Request.

401

Authorization information is missing or invalid.

404

Not Found.

409

Conflict.

500

Unexpected error.

default

Unexpected error

post/debug/device/pushConfig
http://gofabric-service:80/v1/fabric/debug/device/pushConfig

Response samples

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

LockStatus

Get lock statuses

Get lock statuses

Responses

200

OK

401

Authorization information is missing or invalid.

404

A device with the specified IP was not found.

500

Unexpected error.

default

Unexpected error

get/debug/service/lock
http://gofabric-service:80/v1/fabric/debug/service/lock

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ]
}

Trouble Shooting

getExecutionDetail

Get the detailed output of the given execution ID

query Parameters
id
required
string

Detailed output of the given execution ID

Responses

200

OK

400

Bad Request.

401

Authorization information is missing or invalid.

404

Not Found.

409

Conflict.

500

Unexpected error.

default

Unexpected error

get/execution
http://gofabric-service:80/v1/fabric/execution

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "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

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

200

OK

400

Bad Request.

401

Authorization information is missing or invalid.

404

Not Found.

409

Conflict.

500

Unexpected error.

default

Unexpected error

get/executions
http://gofabric-service:80/v1/fabric/executions

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ]
}

deleteExecutions

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

query Parameters
days_older_by
required
integer
Default: 30

Deletes execution entries older than specified number of days

Responses

200

OK

202

ACCEPTED

400

Bad Request.

401

Authorization information is missing or invalid.

404

Not Found.

409

Conflict.

500

Unexpected error.

default

Unexpected error

delete/executions
http://gofabric-service:80/v1/fabric/executions

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "code": 0,
  • "message": "message"
}

getEventHistoryList

Get the list of all the event Histories

query Parameters
execution_uuid
string

Execution UUID for filtering

device_ip
string

Device IP for filtering

Responses

200

OK

400

Bad Request.

401

Authorization information is missing or invalid.

404

Not Found.

409

Conflict.

500

Unexpected error.

default

Unexpected error

get/eventhistories
http://gofabric-service:80/v1/fabric/eventhistories

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ]
}

GetRunningConfig

Get the list of all CLIs in Running Config

Responses

200

OK

400

Bad Request.

401

Authorization information is missing or invalid.

404

Not Found.

409

Conflict.

500

Unexpected error.

default

Unexpected error

get/runningConfig
http://gofabric-service:80/v1/fabric/runningConfig

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "items":
    [
    ]
}

Config Show

getConfigShow

Get the Configuration of Devices in a Fabric

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

200

OK

400

Bad Request.

401

Authorization information is missing or invalid.

404

Not Found.

409

Conflict.

500

Unexpected error.

default

Unexpected error

get/config
http://gofabric-service:80/v1/fabric/config

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "Response": "Response"
}

Health

getHealth

Get the health of the Fabric service.

Responses

200

OK

get/health
http://gofabric-service:80/v1/fabric/health

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "Service": "string",
  • "MessageBus": "string"
}