Tenant Service (2.6.0)

Download OpenAPI specification:Download

This is the spec that defines the APIs provided by the tenant service to create a tenant and add the networks to the tenant, configure network parameters and configure switches with the tenant network's specific configurations.

Port Channel

getPortchannels

This API helps to get all Portchannels configured with Tenant service

query Parameters
tenant_name
required
string

Tenant to which this Portchannel belongs

Responses

200

OK

401

Authorization information is missing or invalid

500

Unexpected error

default

Unexpected error

get/portchannels
http://gotenant-service:8083/v1/tenant/portchannels

Response samples

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

getPortchannel

This API helps to get the specified Portchannel details

query Parameters
name
string

Unique name of the Portchannel to fetch

tenant_name
string

Tenant to which this Portchannel belongs

po_id
string

Filter by Portchannel id allocated on device. This should be combined with device_ip param.

device_ip
string

Device Management IP Address to which the po_id belongs

Responses

200

OK

401

Authorization information is missing or invalid

404

Portchannel with the specified ID or number is not found

500

Unexpected error

default

Unexpected error

get/portchannel
http://gotenant-service:8083/v1/tenant/portchannel

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "number": 1,
  • "name": "po101",
  • "description": "po101",
  • "speed": "100Mbps | 1Gbps | 10Gbps | 25Gbps | 40Gbps | 100Gbps",
  • "negotiation": "active | passive | static",
  • "memberinterfaces":
    [
    ],
  • "tenantName": "Tenant-1",
  • "lacpTimeout": "short | long",
  • "minLinkCount": 2,
  • "mtu": 9100,
  • "state": "po-init | po-created | po-port-delete-pending | po-delete-pending | po-lacp-timeout-set-pending | po-description-set-pending | po-min-links-count-set-pending | po-mtu-delete-pending",
  • "dev-state": "provisioned | provisioning-failed | not-provisioned",
  • "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err",
  • "error":
    [
    ]
}

createPortchannel

This API helps to create a new Portchannel

Request Body schema: application/json

Create Port-channel parameter

name
required
string

Identifier of the Portchannel unique to the tenant service

description
string

Description of the Portchannel

speed
required
string
Enum: "100Mbps" "1Gbps" "10Gbps" "25Gbps" "40Gbps" "100Gbps"

Configure speed for the Portchannel and its Member ports

negotiation
required
string
Enum: "active" "passive" "static"

Configure LACP negotiation mode for Portchannel

memberinterfaces
required
Array of objects (Device)
tenantName
required
string

Name of the tenant to which this Portchannel belongs

lacpTimeout
required
string
Enum: "short" "long"

Configure LACP timeout for Portchannel

minLinkCount
string

Minimum number of links provided for a Portchannel

mtu
integer

MTU for a Portchannel

Responses

200

OK

400

Request has invalid input parameters.

401

Authorization information is missing or invalid

409

Portchannel with the specified Number already exists

500

Unexpected error

default

Unexpected error

post/portchannel
http://gotenant-service:8083/v1/tenant/portchannel

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "name": "po101",
  • "description": "po101",
  • "speed": "100Mbps | 1Gbps | 10Gbps | 25Gbps | 40Gbps | 100Gbps",
  • "negotiation": "active | passive | static",
  • "memberinterfaces":
    [
    ],
  • "tenantName": "Tenant-1",
  • "lacpTimeout": "short | long",
  • "minLinkCount": 2,
  • "mtu": 9100
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "number": 1,
  • "name": "po101",
  • "description": "po101",
  • "speed": "100Mbps | 1Gbps | 10Gbps | 25Gbps | 40Gbps | 100Gbps",
  • "negotiation": "active | passive | static",
  • "memberinterfaces":
    [
    ],
  • "tenantName": "Tenant-1",
  • "lacpTimeout": "short | long",
  • "minLinkCount": 2,
  • "mtu": 9100,
  • "state": "po-init | po-created | po-port-delete-pending | po-delete-pending | po-lacp-timeout-set-pending | po-description-set-pending | po-min-links-count-set-pending | po-mtu-delete-pending",
  • "dev-state": "provisioned | provisioning-failed | not-provisioned",
  • "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err",
  • "error":
    [
    ]
}

deletePortchannel

This API helps to delete the given Portchannel

query Parameters
name
required
string

Unique name of the Portchannel to delete

force
boolean

Use force parameter to remove the tenant network forcefully. This will remove the relevant configurations from the devices in this tenant network and update the record with tenant service.

tenant_name
required
string

Tenant to which this Portchannel belongs

Responses

200

OK

401

Authorization information is missing or invalid

404

Portchannel with the specified ID or number is not found

409

Portchannel with the specified Number already exists

500

Unexpected error

default

Unexpected error

delete/portchannel
http://gotenant-service:8083/v1/tenant/portchannel

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "number": 1,
  • "name": "po101",
  • "description": "po101",
  • "speed": "100Mbps | 1Gbps | 10Gbps | 25Gbps | 40Gbps | 100Gbps",
  • "negotiation": "active | passive | static",
  • "memberinterfaces":
    [
    ],
  • "tenantName": "Tenant-1",
  • "lacpTimeout": "short | long",
  • "minLinkCount": 2,
  • "mtu": 9100,
  • "state": "po-init | po-created | po-port-delete-pending | po-delete-pending | po-lacp-timeout-set-pending | po-description-set-pending | po-min-links-count-set-pending | po-mtu-delete-pending",
  • "dev-state": "provisioned | provisioning-failed | not-provisioned",
  • "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err",
  • "error":
    [
    ]
}

updatePortchannel

This API helps to update the parameters of the Portchannel

Request Body schema: application/json

Update the Port-channel parameter

name
required
string

Identifier of the Portchannel unique to the tenant service

operation
required
string
Enum: "port-add" "port-delete" "lacp-timeout" "description" "min-link-count" "mtu-add" "mtu-delete"

Add ports, Delete ports, modify lacp-timeout, description, minimum links, add mtu and delete mtu for Portchannel

memberinterfaces
required
Array of objects (Device)
tenantName
required
string

Tenant to which this Portchannel belongs

lacpTimeout
string
Enum: "short" "long"

Configure LACP timeout for Portchannel

description
string

Description of the Portchannel

minLinkCount
string

Minimum number of links provided for a Portchannel

mtu
integer

MTU for a Portchannel

Responses

200

OK

400

Request has invalid input parameters.

401

Authorization information is missing or invalid.

404

Port-channel with the specified ID or number is not found.

409

Portchannel with the specified Number already exists

500

Unexpected error

default

Unexpected error

put/portchannel
http://gotenant-service:8083/v1/tenant/portchannel

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "name": "po101",
  • "operation": "port-add | port-delete | lacp-timeout | description | min-link-count | mtu-add | mtu-delete",
  • "memberinterfaces":
    [
    ],
  • "tenantName": "Tenant-1",
  • "lacpTimeout": "short | long",
  • "description": "po101",
  • "minLinkCount": 2,
  • "mtu": 9100
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "number": 1,
  • "name": "po101",
  • "description": "po101",
  • "speed": "100Mbps | 1Gbps | 10Gbps | 25Gbps | 40Gbps | 100Gbps",
  • "negotiation": "active | passive | static",
  • "memberinterfaces":
    [
    ],
  • "tenantName": "Tenant-1",
  • "lacpTimeout": "short | long",
  • "minLinkCount": 2,
  • "mtu": 9100,
  • "state": "po-init | po-created | po-port-delete-pending | po-delete-pending | po-lacp-timeout-set-pending | po-description-set-pending | po-min-links-count-set-pending | po-mtu-delete-pending",
  • "dev-state": "provisioned | provisioning-failed | not-provisioned",
  • "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err",
  • "error":
    [
    ]
}

configurePortchannel

This API helps to configure the given Portchannel

query Parameters
name
required
string

Name of the Portchannel to configure

tenant_name
required
string

Tenant to which this Portchannel belongs

Responses

200

OK

400

Request has invalid input parameters.

401

Authorization information is missing or invalid

404

Portchannel with the specified Name is not found

409

Portchannel with the specified Number already exists

500

Unexpected error

default

Unexpected error

post/portchannel/configure
http://gotenant-service:8083/v1/tenant/portchannel/configure

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "number": 1,
  • "name": "po101",
  • "description": "po101",
  • "speed": "100Mbps | 1Gbps | 10Gbps | 25Gbps | 40Gbps | 100Gbps",
  • "negotiation": "active | passive | static",
  • "memberinterfaces":
    [
    ],
  • "tenantName": "Tenant-1",
  • "lacpTimeout": "short | long",
  • "minLinkCount": 2,
  • "mtu": 9100,
  • "state": "po-init | po-created | po-port-delete-pending | po-delete-pending | po-lacp-timeout-set-pending | po-description-set-pending | po-min-links-count-set-pending | po-mtu-delete-pending",
  • "dev-state": "provisioned | provisioning-failed | not-provisioned",
  • "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err",
  • "error":
    [
    ]
}

Vrf

getVrfs

This API helps to get all Vrfs configured with tenant service

query Parameters
tenant_name
required
string

Tenant to which this Vrf belongs

Responses

200

OK

401

Authorization information is missing or invalid

500

Unexpected error

default

Unexpected error

get/vrfs
http://gotenant-service:8083/v1/tenant/vrfs

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "tenant_name": "Tenant-A",
  • "vrf-list":
    [
    ]
}

getVrf

This API helps to get specified Vrf details

query Parameters
name
required
string

Vrf name to delete

tenant_name
required
string

Tenant to which this Vrf belongs

Responses

200

OK

400

Request has invalid input parameters.

401

Authorization information is missing or invalid

404

Vrf with the specified Name is not found

409

Vrf with the specified Number already exists

500

Unexpected error.

default

Unexpected error

get/vrf
http://gotenant-service:8083/v1/tenant/vrf

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "name": "vrf-red",
  • "tenantName": "Tenant-1",
  • "routing-type": "distributed",
  • "centralized-router":
    [
    ],
  • "vrf-type": "shared | private",
  • "vrf-state": "vrf-init | vrf-created | vrf-device-created | vrf-device-static-route-delete-pending | vrf-device-static-route-bfd-delete-pending",
  • "dev-state": "provisioned | provisioning-failed | not-provisioned",
  • "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err",
  • "l3-vni": 1024,
  • "irb-bd": 1024,
  • "irb-ve": 1024,
  • "br-bd": 1024,
  • "br-ve": 1024,
  • "br-vni": 1025,
  • "local-asn": 1024,
  • "route-target":
    [
    ],
  • "static-route":
    [
    ],
  • "static-route-bfd":
    [
    ],
  • "max-path": 8,
  • "redistribute":
    [
    ],
  • "rh-max-path": 8,
  • "rh-ecmp-enable": true,
  • "graceful-restart-enable": true,
  • "network":
    [
    ],
  • "static-network":
    [
    ],
  • "aggregate-address":
    [
    ],
  • "error":
    [
    ]
}

createVrf

This API helps to create a new Vrf for a tenant

Request Body schema: application/json

Create Vrf

tenant_name
required
string

Tenant Name

vrf-list
Array of objects (Vrf)

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

409

Vrf with the specified Name already exists

500

Unexpected error

default

Unexpected error

post/vrf
http://gotenant-service:8083/v1/tenant/vrf

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "tenant_name": "Tenant-A",
  • "vrf-list":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "tenant_name": "Tenant-A",
  • "vrf-list":
    [
    ]
}

deleteVrf

This API helps to delete the given Vrf

Request Body schema: application/json

Delete Vrf.

tenant_name
string

Tenant Name

vrf-name-list
Array of strings

List of VRFs.

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

404

Vrf with the specified Name is not found

409

Vrf with the specified Name already exists

500

Unexpected error

default

Unexpected error

delete/vrf
http://gotenant-service:8083/v1/tenant/vrf

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "tenant_name": "Tenant-A",
  • "vrf-name-list":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "tenant_name": "Tenant-A",
  • "vrf-list":
    [
    ]
}

updateVrf

This API helps to update the parameters of the Vrf

Request Body schema: application/json

Update the Vrf parameter

name
required
string

Identifier of the Vrf unique to the tenant service

operation
required
string
Enum: "local-asn-add" "local-asn-delete" "static-route-bfd-add" "static-route-bfd-delte" "static-route-add" "static-route-delete" "max-path-add" "max-path-delete" "redistribute-add" "redistribute-delete" "rh-max-path-add" "rh-max-path-delete" "centralized-router-add" "centralized-router-delete" "rh-ecmp-update" "graceful-restart-update" "network-add" "network-delete" "static-network-add" "static-network-delete" "aggregate-address-add" "aggregate-address-delete"

Below operations are supported -

  1. local-asn-add: Add local-asn in Vrf.
  2. local-asn-delete: Delete local-asn from Vrf.
  3. static-route-bfd-add: Add static-route-bfd in Vrf.
  4. static-route-bfd-delete: Delete static-route-bfd from Vrf.
  5. static-route-add: Add static-route in Vrf.
  6. static-route-delete: Delete static-route from Vrf.
  7. max-path-add: Add max-path in Vrf.
  8. max-path-delete: Delete max-path from Vrf.
  9. redistribute-add: Add redistribute in Vrf.
  10. redistribute-delete: Delete redistribute from Vrf.
  11. rh-max-path-add: Add rh-max-path in Vrf.
  12. rh-max-path-delete: Delete rh-max-path from Vrf.
  13. centralized-router-add: Add centralized-router devices to Vrf.
  14. centralized-router-delete: Delete centralized-router devices from Vrf.
  15. rh-ecmp-update: Update rh-ecmp for Vrf.
  16. graceful-restart-update: Update graceful-restart for Vrf.
  17. network-add: Add network route.
  18. network-delete: Delete network route.
  19. static-network-add: Add static-network to Vrf.
  20. static-network-delete: Delete static-network from Vrf.
  21. aggregate-address-add: Add aggregate-address in Vrf.
  22. aggregate-address-delete: Delete aggregate-address from vrf.
localAsn
integer <int64>

Local Asn for Vrf

tenantName
required
string

Tenant to which this Vrf belongs

static-route-bfd
Array of objects (StaticRouteBfd)
static-route
Array of objects (StaticRoute)
max-path
integer <int>

Maximum-path for Vrf

redistribute
Array of strings
Items Enum: "static" "connected"
rh-max-path
integer <int>

Resilient hashing maximum-path for Vrf

rh-ecmp-enable
boolean

Enable/disable resilient hashing for Vrf

centralized-router
Array of objects

Users can provide only one multi-homed BL pair or one single-homed BL device as centralized-routers

graceful-restart-enable
boolean

Enable/disable graceful restart for Vrf

network
Array of objects (BgpNetworkRoute)

List of bgp networks to be advertised to the BGP peers.

static-network
Array of objects (BgpStaticNetwork)

List of static networks to be advertised to the BGP peers

aggregate-address
Array of objects (BgpAggregateAddress)

List of BGP aggregate-address to be advertised to the BGP peers.

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

404

Vrf with specified Name is not found

409

Vrf with the specified Number already exists

500

Unexpected error

default

Unexpected error

put/vrf
http://gotenant-service:8083/v1/tenant/vrf

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "name": "vrf-red",
  • "operation": "local-asn-add | local-asn-delete | static-route-bfd-add | static-route-bfd-delete | static-route-add | static-route-delete | | max-path-add | max-path-delete | redistribute-add | redistribute-delete | rh-max-path-add | rh-max-path-delete | centralized-router-add | centralized-router-delete | rh-ecmp-update | graceful-restart-update | network-add | network-delete | static-network-add | static-network-delete | aggregate-address-add | aggregate-address-delete ",
  • "localAsn": 1024,
  • "tenantName": "Tenant-1",
  • "static-route-bfd":
    [
    ],
  • "static-route":
    [
    ],
  • "max-path": 8,
  • "redistribute":
    [
    ],
  • "rh-max-path": 8,
  • "rh-ecmp-enable": true,
  • "centralized-router":
    [
    ],
  • "graceful-restart-enable": true,
  • "network":
    [
    ],
  • "static-network":
    [
    ],
  • "aggregate-address":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "name": "vrf-red",
  • "tenantName": "Tenant-1",
  • "routing-type": "distributed",
  • "centralized-router":
    [
    ],
  • "vrf-type": "shared | private",
  • "vrf-state": "vrf-init | vrf-created | vrf-device-created | vrf-device-static-route-delete-pending | vrf-device-static-route-bfd-delete-pending",
  • "dev-state": "provisioned | provisioning-failed | not-provisioned",
  • "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err",
  • "l3-vni": 1024,
  • "irb-bd": 1024,
  • "irb-ve": 1024,
  • "br-bd": 1024,
  • "br-ve": 1024,
  • "br-vni": 1025,
  • "local-asn": 1024,
  • "route-target":
    [
    ],
  • "static-route":
    [
    ],
  • "static-route-bfd":
    [
    ],
  • "max-path": 8,
  • "redistribute":
    [
    ],
  • "rh-max-path": 8,
  • "rh-ecmp-enable": true,
  • "graceful-restart-enable": true,
  • "network":
    [
    ],
  • "static-network":
    [
    ],
  • "aggregate-address":
    [
    ],
  • "error":
    [
    ]
}

Tenant

getTenants

This API helps to get all tenants configured with tenant service

Responses

200

OK

401

Authorization information is missing or invalid

500

Unexpected error

default

Unexpected error

get/tenants
http://gotenant-service:8083/v1/tenant/tenants

Response samples

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

getTenant

This API helps to get the specified Tenant details

query Parameters
name
required
string

Name of the tenant to retrieve details

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

404

Tenant with the specified Name is not found

409

Tenant with the specified Name already exists

500

Unexpected error

default

Unexpected error

get/tenant
http://gotenant-service:8083/v1/tenant/tenant

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "name": "Tenant-A",
  • "description": "Tenant-A's Description",
  • "l2-vni-range": "1-100",
  • "l3-vni-range": "4096-5000",
  • "vlan-range": "10-20,50-60",
  • "num-of-vrf": 20,
  • "enable-bd": true,
  • "type": "shared | private",
  • "port-list":
    [
    ]
}

createTenant

This API helps to create a tenant and reserve resources like Physical Ports, L2VNI, L3VNI, VLAN and Number of VRFs for the tenant. Tenant Name must be a unique key while creating a tenant with the tenant service.

Request Body schema: application/json

Create a new tenant

name
required
string

Unique name of the tenant

description
string

Description about tenant

l2-vni-range
string

Contiguous Range of L2 VNIs in ascending order will be reserved for the tenant within the scope of a fabric. L2 networks will consume the VNIs from this range.

l3-vni-range
string

Contiguous Range of L3 VNIs in ascending order will be reserved for the tenant within the scope of a fabric. L3 networks will consume the VNIs from this range.

vlan-range
string

Range of VLANs to reserve for the tenant

num-of-vrf
integer

Number of VRFs to reserve for the tenant

enable-bd
boolean

Enable bridge-domain so that overlapping vlans can be supported

type
string
Enum: "shared" "private"

POs or VRFs of shared tenant are available to other tenants. Default tenant type is private.

port-list
Array of objects (Device)

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

409

Tenant with the specified Name already exists

500

Unexpected error

default

Unexpected error

post/tenant
http://gotenant-service:8083/v1/tenant/tenant

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "name": "Tenant-A",
  • "description": "Tenant-A's Description",
  • "l2-vni-range": "1-100",
  • "l3-vni-range": "4096-5000",
  • "vlan-range": "10-20,50-60",
  • "num-of-vrf": 20,
  • "enable-bd": true,
  • "type": "shared | private",
  • "port-list":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "name": "Tenant-A",
  • "description": "Tenant-A's Description",
  • "l2-vni-range": "1-100",
  • "l3-vni-range": "4096-5000",
  • "vlan-range": "10-20,50-60",
  • "num-of-vrf": 20,
  • "enable-bd": true,
  • "type": "shared | private",
  • "port-list":
    [
    ]
}

deleteTenant

This API helps to delete the tenant if no tenant network is created by this tenant. If it has any tenant network, a force option is required to delete this tenant. The delete request with force parameter will trigger a delete operation for all its networks.

query Parameters
name
required
string

Name of the tenant to delete

force
boolean

Use force parameter to remove the tenant forcefully. This will remove the relevant configurations from the devices for its tenant network and delete the relevant record with tenant service.

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

404

Tenant with the specified Name is not found

409

Tenant with the specified Name already exists

500

Unexpected error

default

Unexpected error

delete/tenant
http://gotenant-service:8083/v1/tenant/tenant

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "name": "Tenant-A",
  • "description": "Tenant-A's Description",
  • "l2-vni-range": "1-100",
  • "l3-vni-range": "4096-5000",
  • "vlan-range": "10-20,50-60",
  • "num-of-vrf": 20,
  • "enable-bd": true,
  • "type": "shared | private",
  • "port-list":
    [
    ]
}

updateTenant

This API helps to update existing tenant for non-conflicting changes of its resources like L2VNI, L3VNI, vlan range, port, number of vrf, description, type etc for the tenant.

path Parameters
tenant_name
required
string

Name of the tenant to update parameter

Request Body schema: application/json

Update the Tenant parameter

operation
required
string
Enum: "desc-update" "vni-update" "port-add" "port-delete" "vlan-add" "vlan-delete" "vlan-update" "num-vrf-update" "enable-bd-update"

Add, delete or update tenant configuration

force
boolean

Force option which is valid only for port-delete operation is deprecated.

tenant
object (Tenant)

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

404

Tenant with the specified Name is not found

409

Tenant with the specified Name already exists

500

Unexpected error

default

Unexpected error

put/tenant/{tenant_name}
http://gotenant-service:8083/v1/tenant/tenant/{tenant_name}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "operation": "desc-update | vni-update | port-add | port-delete | vlan-add | vlan-delete | vlan-update | num-vrf-update | enable-bd-update",
  • "force": true,
  • "tenant":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "name": "Tenant-A",
  • "description": "Tenant-A's Description",
  • "l2-vni-range": "1-100",
  • "l3-vni-range": "4096-5000",
  • "vlan-range": "10-20,50-60",
  • "num-of-vrf": 20,
  • "enable-bd": true,
  • "type": "shared | private",
  • "port-list":
    [
    ]
}

Endpoint Group

getEndpointGroups

This API helps to get all EndpointGroups configured with tenant service

query Parameters
tenant_name
string

Tenant to which this EndpointGroup belongs

Responses

200

OK

401

Authorization information is missing or invalid

500

Unexpected error

default

Unexpected error

get/endpointgroups
http://gotenant-service:8083/v1/tenant/endpointgroups

Response samples

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

createEndpointGroup

This API helps to create EndpointGroup which is a collection of ports and Portchannels on which a tenant can apply policies - port-property and network-policy. The validation includes that the port should belong to only one fabric. The parameters like ctag, swithport mode must be non-conflicting.

Request Body schema: application/json

Create EndpointGroup

tenant_name
required
string

Tenant Name

endpoint-group-list
Array of objects (EndpointGroup)

Responses

200

OK

400

Request has invalid input parameters.

401

Authorization information is missing or invalid

409

EndpointGroup with the specified Name already exists

500

Unexpected error

default

Unexpected error

post/endpointgroup
http://gotenant-service:8083/v1/tenant/endpointgroup

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "tenant_name": "Tenant-A",
  • "endpoint-group-list":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "tenant_name": "Tenant-A",
  • "endpoint-group-list":
    [
    ]
}

getEndpointGroup

This API helps to fetch the configured details and not the operational state of the ports belonging to this EndpointGroup

query Parameters
name
required
string

Name of the EndpointGroup to retrieve

tenant_name
required
string

Tenant to which this EndpointGroup belongs

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

404

EndpointGroup with the specified Name is not found

409

EndpointGroup with the specified Name already exists

500

Unexpected error

default

Unexpected error

get/endpointgroup
http://gotenant-service:8083/v1/tenant/endpointgroup

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "name": "EndpointGroup-1",
  • "description": "EndpointGroup-Sales",
  • "type": "l3-hand-off | extension",
  • "tenantName": "Tenant-1",
  • "state": "epg-empty | epg-with-port-group | epg-with-ctag-range | epg-with-port-group-and-ctag-range | epg-port-group-delete-pending | epg-ctag-range-delete-pending | epg-vrf-delete-pending | epg-delete-pending | epg-migration-pending | epg-local-ip-delete-pending | epg-anycast-ip-delete-pending",
  • "port-group":
    {
    },
  • "port-property":
    {
    },
  • "network-policy":
    {
    }
}

deleteEndpointGroup

This API helps to delete the endpoint if EndpointGroup is not attached to a tenant network. If it is attached to a tenant network then a force option is required to delete this EndpointGroup. The delete request with force parameter will trigger a delete operation for the network to which this EndpointGroup was attached.

Request Body schema: application/json

Delete end point group.

tenant_name
required
string

Tenant Name

force
boolean

Set to true if EndpointGroup delete will require deconfiguring networks also

endpoint-group-list
required
Array of objects (EndpointGroupName)

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

404

EndpointGroup with the specified Name is not found

409

EndpointGroup with the specified Name already exists

500

Unexpected error.

default

Unexpected error

delete/endpointgroup
http://gotenant-service:8083/v1/tenant/endpointgroup

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "tenant_name": "Tenant-A",
  • "force": true,
  • "endpoint-group-list":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "tenant_name": "Tenant-A",
  • "force": true,
  • "endpoint-group-list":
    [
    ]
}

updateEndpointGroupPortGroup

This API helps in addition of new port(s) and/or Portchannel(s) to EndpointGroup or deletion of port(s) and/or Portchannel(s) from EndpointGroup. If the EndpointGroup is linked to any tenant network, the newly added port or Portchannel will become the part of the tenant network and its appropriate L2/L3 configurations will be applied on the newly added port, Portchannel and record will be updated with tenant automation service. For deleted port and/or Portchannel from EndpointGroup, appropriate configurations will be removed from the device and record will be updated with tenant automation service.

Request Body schema: application/json

Update the EndpointGroup PortGroup

tenant_name
string

Tenant Name

operation
required
string
Enum: "port-group-add" "port-group-delete"

Add or delete ports from the port group

endpoint-group-list
Array of objects (EndpointGroupPortGroup)

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

404

EndpointGroup with the specified Name is not found

409

EndpointGroup with the specified Name already exists

500

Unexpected error

default

Unexpected error

patch/endpointgroup/port-group
http://gotenant-service:8083/v1/tenant/endpointgroup/port-group

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "tenant_name": "Tenant-A",
  • "operation": "port-group-add | port-group-delete",
  • "endpoint-group-list":
    [
    ]
}

Response samples

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

updateEndpointGroupNetworkPolicy

This API helps in updating networks belonging to EndpointGroups. Below operations are supported -

  1. ctag-range-add: Add provided l2/l3 network(s) to EndpointGroup.
  2. ctag-range-delete: Delete provided l2/l3 network(s) from the EndpointGroup.
  3. vrf-add: Attach the networks to the provided Vrf. Required parameters like anycast for each network should be provided in network-properties block.
  4. vrf-delete: Migrate L3 networks to L2 networks. This operation doesn't expect any other parameters other than operation itself.
Request Body schema: application/json

Update the EndpointGroup NetworkPolicy

tenant_name
string

Tenant Name

operation
string
Enum: "ctag-range-add" "ctag-range-delete" "vrf-add" "vrf-delete"

Add or delete ctag-range and/or vrf

endpoint-group-list
Array of objects (EndpointGroupNetworkPolicy)

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

404

EndpointGroup with the specified Name is not found

409

EndpointGroup with the specified Name already exists

500

Unexpected error

default

Unexpected error

patch/endpointgroup/network-policy
http://gotenant-service:8083/v1/tenant/endpointgroup/network-policy

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "tenant_name": "Tenant-A",
  • "operation": "ctag-range-add | ctag-range-delete | vrf-add | vrf-delete",
  • "endpoint-group-list":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "name": "EndpointGroup-1",
  • "description": "EndpointGroup-Sales",
  • "type": "l3-hand-off | extension",
  • "port-group":
    {
    },
  • "port-property":
    {
    },
  • "network-policy":
    {
    },
  • "error":
    [
    ]
}

updateEndpointGroupNetworkProperty

This API helps in updating properties of the networks belonging to the EndpointGroups. Below operation are supported -

  1. local-ip-add: Configure local ip v4/v6 to Ve Interface of the network.
  2. local-ip-delete: De-Configure local ip v4/v6 from Ve Interface of the network. For local-ip-delete without specifying payload will deconfigure local-ip from all the nodes which has local-ip configured.
  3. anycast-ip-add: Configure anycast ip v4/v6 to Ve Interface of the network.
  4. anycast-ip-delete: De-Configure anycast ip v4/v6 from Ve Interface of the network.
Request Body schema: application/json

Update the EndpointGroup NetworkProperty

tenant_name
string

Tenant Name

operation
string
Enum: "local-ip-add" "local-ip-delete" "anycast-ip-add" "anycast-ip-delete"

Add or delete local-ip and/or anycast-ip

endpoint-group-list
Array of objects (EndpointGroupNetworkProperty)

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

404

EndpointGroup with the specified Name is not found

409

EndpointGroup with the specified Name already exists

500

Unexpected error

default

Unexpected error

patch/endpointgroup/network-policy/network-property
http://gotenant-service:8083/v1/tenant/endpointgroup/network-policy/network-property

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "tenant_name": "Tenant-A",
  • "operation": "local-ip-add | local-ip-delete | anycast-ip-add | anycast-ip-delete",
  • "endpoint-group-list":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "name": "EndpointGroup-1",
  • "description": "EndpointGroup-Sales",
  • "type": "l3-hand-off | extension",
  • "port-group":
    {
    },
  • "port-property":
    {
    },
  • "network-policy":
    {
    },
  • "error":
    [
    ]
}

detachNetworkFromEndpointGroup

This API helps user to split network or range of networks from the EndpointGroup into another EndpointGroup for allowing user to do operations on the newly created EndpointGroup

Request Body schema: application/json

Detach EndpointGroup

tenant_name
required
string

Name of the tenant to which this EndpointGroup belongs

from-epg
required
string

Unique name of the EndpointGroup

to-epg
required
string

New EndpointGroup name on which these network(s) will be created

to-epg-description
string

Description about EndpointGroup

ctag-range
string

Range of Ctags to detach

Responses

200

OK

400

Request has invalid input parameters.

401

Authorization information is missing or invalid

409

EndpointGroup with the specified Name already exists

500

Unexpected error.

default

Unexpected error

post/endpointgroup/detach-network
http://gotenant-service:8083/v1/tenant/endpointgroup/detach-network

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "tenant_name": "Tenant-1",
  • "from-epg": "EndpointGroup-1",
  • "to-epg": "EndpointGroup-2",
  • "to-epg-description": "EndpointGroup-Finance",
  • "ctag-range": "2-30"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "name": "EndpointGroup-1",
  • "description": "EndpointGroup-Sales",
  • "type": "l3-hand-off | extension",
  • "port-group":
    {
    },
  • "port-property":
    {
    },
  • "network-policy":
    {
    },
  • "error":
    [
    ]
}

configureEndpointGroup

This API helps to configure EndpointGroup

query Parameters
name
required
string

Name of the EndpointGroup to configure

tenant_name
required
string

Tenant to which this EndpointGroup belongs

Responses

200

OK

400

Request has invalid input parameters.

401

Authorization information is missing or invalid

404

EndpointGroup with the specified Name is not found

409

EndpointGroup with the specified Name already exists

500

Unexpected error

default

Unexpected error

post/endpointgroup/configure
http://gotenant-service:8083/v1/tenant/endpointgroup/configure

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "name": "EndpointGroup-1",
  • "error":
    [
    ]
}

Debug

setDebug

This API helps to set Debug Level for modules

query Parameters
debug_level
string

Set debug level. If empty reset to default level (info).

Responses

200

OK

401

Authorization information is missing or invalid

500

Unexpected error

default

Unexpected error

post/debug
http://gotenant-service:8083/v1/tenant/debug

Response samples

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

deviceInventorySync

This API helps to sync devices for the given Device IP Addresses with inventory

query Parameters
device_ips
required
Array of strings non-empty

Device Management IP Addresses to sync with inventory

Responses

200

OK

207

Partial success

401

Authorization information is missing or invalid

404

Devices with the specified IP Address is not found

500

Unexpected error

default

Unexpected error

post/debug/device/config/sync
http://gotenant-service:8083/v1/tenant/debug/device/config/sync

Response samples

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

deviceConfigDriftReconcile

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

query Parameters
device_ip
required
string

Device Management IP Address for which config drift will be generated

reconcile
boolean

If flag is set to true, then generated config-drift will be pushed to the device

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

409

Configuration to reconcile with specified drift already exists

500

Unexpected error

default

Unexpected error

post/debug/device/config/drift
http://gotenant-service:8083/v1/tenant/debug/device/config/drift

Response samples

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

Get lock detail

This API helps user to get lock details

query Parameters
type
string
Enum: "service" "device" "port" "vlan" "vrf" "epg"

Object type for locks to show

Responses

200

OK

401

Authorization information is missing or invalid

409

Locks with object type not exists

500

Unexpected error

default

Unexpected error

get/debug/lock
http://gotenant-service:8083/v1/tenant/debug/lock

Response samples

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

Vrf Error

getVrfError

This API helps to fetch Vrf errors

query Parameters
name
required
string

Name of the Vrf to retrieve errors

tenant_name
required
string

Tenant to which this Vrf belongs

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

404

Vrf with the specified Name is not found

409

Vrf with the specified Name already exists

500

Unexpected error

default

Unexpected error

get/vrf/errors
http://gotenant-service:8083/v1/tenant/vrf/errors

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "name": "VRF-1",
  • "error":
    [
    ]
}

Endpoint Group Error

getEndpointGroupError

This API helps to fetch EndpointGroup errors

query Parameters
name
required
string

Name of the EndpointGroup to retrieve errors

tenant_name
required
string

Tenant to which this EndpointGroup belongs

Responses

200

OK

400

Request has invalid input parameters.

401

Authorization information is missing or invalid.

404

EndpointGroup with the specified Name is not found

409

EndpointGroup with the specified Name already exists

500

Unexpected error.

default

Unexpected error

get/endpointgroup/errors
http://gotenant-service:8083/v1/tenant/endpointgroup/errors

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "name": "EndpointGroup-1",
  • "error":
    [
    ]
}

Trouble Shooting

getExecutionDetail

This API helps to 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

Request has invalid input parameters

401

Authorization information is missing or invalid.

409

Conflict

500

Unexpected error

default

Unexpected error

get/execution
http://gotenant-service:8083/v1/tenant/execution

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "id",
  • "entity": "Tenant",
  • "command": "Create",
  • "status": "Completed",
  • "start_time": "2000-01-23T04:56:07.000+00:00",
  • "end_time": "2000-01-23T04:56:09.000+00:00",
  • "user_name": "root",
  • "parameters": "{\"description\":\"Tenant1\",\"l2-vni-range\":\"10002-14190\",\"name\":\"tenant1\", \"num-of-vrf\":10,\"port-list\":[{\"mgmt-ip\":\"10.25.25.100\",\"port\":[{\"int-type\": \"ethernet\",\"name\":\"0/30\"}]},{\"mgmt-ip\":\"10.25.25.101\",\"port\": [{\"int-type\":\"ethernet\",\"name\":\"0/30\"},\"vlan-range\":\"2-4090\"}",
  • "error": "Error message"
}

getExecutionList

This API helps to 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

Request has invalid input parameters

401

Authorization information is missing or invalid

409

Conflict

500

Unexpected error

default

Unexpected error

get/executions
http://gotenant-service:8083/v1/tenant/executions

Response samples

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

deleteExecutions

This API helps to 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

400

Request has invalid input parameters

401

Authorization information is missing or invalid

404

Execution logs with the specified dates is not found

409

Conflict

500

Unexpected error

default

Unexpected error

delete/executions
http://gotenant-service:8083/v1/tenant/executions

Response samples

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

GetRunningConfig

This API helps to get the list of all CLIs in Running Config

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

409

Conflict

500

Unexpected error

default

Unexpected error

get/runningConfig
http://gotenant-service:8083/v1/tenant/runningConfig

Response samples

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

getEventHistoryList

This API helps to 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

Request has invalid input parameters

401

Authorization information is missing or invalid

409

Conflict

500

Unexpected error

default

Unexpected error

get/eventhistories
http://gotenant-service:8083/v1/tenant/eventhistories

Response samples

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

BGP Service

getBgpServicePeerGroups

This API helps to get all BGP Peer-Group configured with tenant service

query Parameters
tenant_name
string

Tenant to which this BGP Peer-Group belongs

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

409

BGP with name already exists

500

Unexpected error

default

Unexpected error

get/bgp/service/peer-groups
http://gotenant-service:8083/v1/tenant/bgp/service/peer-groups

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "tenant_name": "Tenant-A",
  • "bgp-service-peer-group-list":
    [
    ]
}

createBgpServicePeerGroup

This API helps to create BGP Peer-Group which is a collection of BGP Peer-Group configuration done on router bgp instance of a device

Request Body schema: application/json

Create BGP Peer-Group

tenant_name
required
string

Tenant Name

bgp-service-peer-group-list
Array of objects (BgpServicePeerGroup)

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

409

BGP Peer-Group with the specified Name already exists

500

Validation or Device Config error

default

Unexpected error

post/bgp/service/peer-group
http://gotenant-service:8083/v1/tenant/bgp/service/peer-group

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "tenant_name": "Tenant-A",
  • "bgp-service-peer-group-list":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "tenant_name": "Tenant-A",
  • "bgp-service-peer-group-list":
    [
    ]
}

updateBgpServicePeerGroup

This API helps to add and delete of BGP Peer-Group config on router bgp instance on device(s). Below operation are supported -

  1. peer-group-add: Add Peer-Group configuration on router bgp instance of the device.
  2. peer-group-delete: Delete Peer-Group configuration for the specified router bgp instance from the device.
  3. desc-update: Update the description BGP Peer-Group.
Request Body schema: application/json

Update BGP Service.

tenant_name
required
string

Tenant Name

operation
required
string
Enum: "peer-group-add" "peer-group-delete" "desc-update"
bgp-service-peer-group-update
object (BgpServicePeerGroup)

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

404

BGP Peer-Group with the specified Name is not found

409

BGP Peer-Group with name already exists

500

Unexpected error

default

Unexpected error

patch/bgp/service/peer-group
http://gotenant-service:8083/v1/tenant/bgp/service/peer-group

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "tenant_name": "Tenant-A",
  • "operation": "peer-group-add | peer-group-delete | desc-update",
  • "bgp-service-peer-group-update":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "name": "bgp-peer-group-1",
  • "state": "bgp-pg-init | bgp-pg-created | bgp-pg-delete-pending | bgp-pg-peer-group-delete-pending",
  • "description": "bgp-peer-group-ext-gw1",
  • "bgp-service-peer-group":
    [
    ],
  • "error":
    [
    ]
}

deleteBgpServicePeerGroup

This API helps to delete the BGP Peer-Group

query Parameters
name
required
string

Name of the BGP Peer-Group to delete

tenant_name
required
string

Tenant to which this BGP Peer-Group belongs

force
boolean

Use force parameter to remove the BGP Peer-Group forcefully. This will remove the relevant configurations from the devices by ignoring errors during deletion or in case of device is not reachable. Some configuration can be left on the device if force de-configuration fails.

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

404

BGP Peer-Group with the specified Name is not found

409

BGP Peer-Group with name already exists

500

Unexpected error

default

Unexpected error

delete/bgp/service/peer-group
http://gotenant-service:8083/v1/tenant/bgp/service/peer-group

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "name": "bgp-peer-group-1",
  • "state": "bgp-pg-init | bgp-pg-created | bgp-pg-delete-pending | bgp-pg-peer-group-delete-pending",
  • "description": "bgp-peer-group-ext-gw1",
  • "bgp-service-peer-group":
    [
    ],
  • "error":
    [
    ]
}

getBgpServicePeerGroup

This API helps to fetch the configured details of the peer-config belonging to this BGP Service

query Parameters
name
required
string

Name of the BGP Peer-Group to retrieve

tenant_name
required
string

Tenant to which this BGP Peer-Group belongs

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

404

BGP Peer-Group with the specified Name is not found

409

BGP Peer-Group with name already exists

500

Unexpected error

default

Unexpected error

get/bgp/service/peer-group
http://gotenant-service:8083/v1/tenant/bgp/service/peer-group

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "name": "bgp-peer-group-1",
  • "state": "bgp-pg-init | bgp-pg-created | bgp-pg-delete-pending | bgp-pg-peer-group-delete-pending",
  • "description": "bgp-peer-group-ext-gw1",
  • "bgp-service-peer-group":
    [
    ],
  • "error":
    [
    ]
}

configureBgpServicePeerGroup

This API helps to configure BGP Peer-Group

query Parameters
name
required
string

Name of the BGP Peer-Group to configure

tenant_name
required
string

Tenant to which this BGP Peer-Group belongs

Responses

200

OK

400

Request has invalid input parameters.

401

Authorization information is missing or invalid

404

BGP Peer-Group with the specified Name is not found

409

BGP Peer-Group with name already exists

500

Unexpected error

default

Unexpected error

post/bgp/service/peer-group/configure
http://gotenant-service:8083/v1/tenant/bgp/service/peer-group/configure

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "name": "bgp-peer-group-1",
  • "state": "bgp-pg-init | bgp-pg-created | bgp-pg-delete-pending | bgp-pg-peer-group-delete-pending",
  • "description": "bgp-peer-group-ext-gw1",
  • "bgp-service-peer-group":
    [
    ],
  • "error":
    [
    ]
}

getBgpPeers

This API helps to get all BGP Peer configured with tenant service

query Parameters
tenant_name
string

Tenant to which this BGP Peer-Group belongs

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

409

BGP Peer with name already exists

500

Unexpected error

default

Unexpected error

get/bgp/service/peers
http://gotenant-service:8083/v1/tenant/bgp/service/peers

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "tenant_name": "Tenant-A",
  • "peer-list":
    [
    ]
}

creatBgpPeer

This API helps to create BGP Peer which is a collection of BGP Peer configuration done on router bgp instance of a device for a provided Vrf. This provides the means to extend networks created by EndpointGroup to establish bgp session with its peer towards the external gateway and compute.

Request Body schema: application/json

Create BGP Peer

tenant_name
required
string

Tenant Name

peer-list
Array of objects (BgpPeer)

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

409

BGP Peer with the specified Name already exists

500

Validation or Device Config error

default

Unexpected error

post/bgp/service/peer
http://gotenant-service:8083/v1/tenant/bgp/service/peer

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "tenant_name": "Tenant-A",
  • "peer-list":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "tenant_name": "Tenant-A",
  • "peer-list":
    [
    ]
}

updateBgpPeer

This API helps to add and delete of BGP Peer config on a Vrf for device(s). Below operation are supported -

  1. peer-add: Add neighbor configuration for the specified Vrf on device of BGP Peer.
  2. peer-delete: Add neighbor configuration for the specified Vrf on device of BGP Peer.
  3. desc-update: Update the description BGP Peer.
Request Body schema: application/json

Update the BGP Peer

tenant_name
required
string

Tenant Name

operation
required
string
Enum: "peer-add" "peer-delete" "desc-update"
peer-list
object (BgpPeer)

Responses

200

OK

400

Request has invalid input parameters

401

Authorization information is missing or invalid

404

BGP Peer with the specified Name is not found

409

BGP Peer with the specified Name already exists

500

Unexpected error

default

Unexpected error

patch/bgp/service/peer
http://gotenant-service:8083/v1/tenant/bgp/service/peer

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "tenant_name": "Tenant-A",
  • "operation": "peer-add | peer-delete | desc-update",
  • "peer-list":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "name": "bgp-peer-1",
  • "tenantName": "Tenant-1",
  • "state": "bgp-peer-init | bgp-peer-created | bgp-peer-delete-pending | bgp-peer-peer-delete-pending",
  • "description": "bgp-peer-ext-gw1",
  • "peer":
    [
    ],
  • "error":
    [
    ]
}

deleteBgpPeer

This API helps to delete the BGP Peer

query Parameters
name
required
string

Name of the BGP Peer to delete

tenant_name
required
string

Tenant to which this BGP Peer belongs

force
boolean

Use force parameter to remove the BGP Peer forcefully. This will remove the relevant configurations from the devices by ignoring errors during deletion or in case of device is not reachable. Some configuration can be left on the device if force de-configuration fails.

Responses

200

OK

400

Request has invalid input params

401

Authorization information is missing or invalid

404

BGP Peer with the specified Name is not found

409

BGP Peer with the specified Name already exists

500

Unexpected error

default

Unexpected error

delete/bgp/service/peer
http://gotenant-service:8083/v1/tenant/bgp/service/peer

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "name": "bgp-peer-1",
  • "tenantName": "Tenant-1",
  • "state": "bgp-peer-init | bgp-peer-created | bgp-peer-delete-pending | bgp-peer-peer-delete-pending",
  • "description": "bgp-peer-ext-gw1",
  • "peer":
    [
    ],
  • "error":
    [
    ]
}

getBgpPeer

This API helps to fetch the configured details state of the peer-config belonging to this BGP Service

query Parameters
name
required
string

Name of the BGP Peer to retrieve

tenant_name
required
string

Tenant to which this BGP Peer belongs

Responses

200

OK

400

Request has invalid input params

401

Authorization information is missing or invalid

404

BGP Peer with the specified Name is not found

409

BGP Peer with the specified Name already exists

500

Unexpected error

default

Unexpected error

get/bgp/service/peer
http://gotenant-service:8083/v1/tenant/bgp/service/peer

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "name": "bgp-peer-1",
  • "tenantName": "Tenant-1",
  • "state": "bgp-peer-init | bgp-peer-created | bgp-peer-delete-pending | bgp-peer-peer-delete-pending",
  • "description": "bgp-peer-ext-gw1",
  • "peer":
    [
    ],
  • "error":
    [
    ]
}

configureBgpPeer

This API helps to configure BGP Peer

query Parameters
name
required
string

Name of the BGP Peer to configure

tenant_name
required
string

Tenant to which this BGP Peer belongs

Responses

200

OK

400

Request has invalid input param

401

Authorization information is missing or invalid

404

BGP Peer with the specified Name is not found

409

BGP Peer with the specified Name already exists

500

Unexpected error

default

Unexpected error

post/bgp/service/peer/configure
http://gotenant-service:8083/v1/tenant/bgp/service/peer/configure

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": 1,
  • "name": "bgp-peer-1",
  • "tenantName": "Tenant-1",
  • "state": "bgp-peer-init | bgp-peer-created | bgp-peer-delete-pending | bgp-peer-peer-delete-pending",
  • "description": "bgp-peer-ext-gw1",
  • "peer":
    [
    ],
  • "error":
    [
    ]
}

getOperationalBgpPeer

This API helps to fetch the operational details state of the peer-config belonging to this BGP Service

query Parameters
tenant_name
required
string

Tenant to which this BGP Peer belongs

vrf_name
string

Name of the Vrf

Responses

200

OK

400

Bad Request

401

Authorization information is missing or invalid

404

BGP Peer details with the specified Device IP Address is not found

500

Unexpected error

default

Unexpected error

get/bgp/service/peer/operational
http://gotenant-service:8083/v1/tenant/bgp/service/peer/operational

Response samples

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

Health

getHealth

This API helps to get the health of the Tenant service

Responses

200

OK

get/health
http://gotenant-service:8083/v1/tenant/health

Response samples

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