Download OpenAPI specification:Download
The tenant service allow you to programmatically create a tenant, add the networks to the tenant, configure network parameters, and configure switches with the tenant network's specific configurations.
Get all portchannels configured with tenant service.
tenant_name required | string tenant to which this port channel belongs. |
OK
Authorization information is missing or invalid.
Unexpected error
Unexpected error
Get specified Port-channel details.
name | string Unique name of the Port-channel to be fetched. |
tenant_name | string tenant to which this port channel belongs. |
po_id | string filter by port-channel id allocated on device. This should be combined with device_ip param. |
device_ip | string device ip to which the po_id belongs |
OK
Authorization information is missing or invalid.
Port-channel with the specified ID or number is not found.
Unexpected error
Unexpected error
Create a new Port-channel.
Create Port-channel parameter.
name required | string Identifier of the Port-channel unique to the tenant service. |
speed required | string Enum: "100Mbps" "1Gbps" "10Gbps" "25Gbps" "40Gbps" "100Gbps" Configure speed for the Port-channel and its Member ports. |
negotiation required | string Enum: "active" "passive" "static" Configure LACP negotiation mode for Port-channel. |
memberinterfaces required | Array of objects (Device) |
tenantName required | string Name of tenant to which this Port-channel belongs. |
OK
Authorization information is missing or invalid.
Port-channel with the specified Number already exists.
Unexpected error.
Unexpected error
{- "name": "po101",
- "speed": "<100Mbps|1Gbps|10Gbps|25Gbps|40Gbps|100Gbps>",
- "negotiation": "<active|passive|static>",
- "memberinterfaces": [
- {
- "mgmt-ip": "10.37.18.222",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "tenantName": "Tenant-1"
}
Delete the given Port-channel.
name required | string Unique name of the Port-channel unique to a device to be deleted. |
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 port channel belongs. |
OK
Authorization information is missing or invalid.
Port-channel with the specified ID or number is not found.
Unexpected error
Unexpected error
Update the parameters of Port-channel.
Update the Port-channel parameter.
name required | string Identifier of the Port-channel unique to the tenant service. |
operation required | string Enum: "port-add" "port-delete" "po-speed" Add or Delete these member-ports from the Port-channel. |
speed | string Enum: "100Mbps" "1Gbps" "10Gbps" "25Gbps" "40Gbps" "100Gbps" Configure speed for the Port-channel and its Member ports. |
memberinterfaces required | Array of objects (Device) |
tenantName required | string Tenant to which this Port-channel belongs. |
OK
Authorization information is missing or invalid.
Port-channel with the specified ID or number is not found.
Unexpected error
Unexpected error
{- "name": "Po101",
- "operation": "port-add | port-delete | po-speed",
- "speed": "<100Mbps|1Gbps|10Gbps|25Gbps|40Gbps|100Gbps>",
- "memberinterfaces": [
- {
- "mgmt-ip": "10.37.18.222",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "tenantName": "Tenant-1"
}
Get all routers configured with tenant service.
tenant_name required | string tenant to which these routers belongs. |
OK
Authorization information is missing or invalid.
Unexpected error.
Unexpected error
Get Vrf details by name.
name required | string Vrf name to be deleted. |
tenant_name required | string tenant to which this router belongs. |
OK
Authorization information is missing or invalid.
Vrf with the specified name is not found.
Unexpected error.
Unexpected error
Create a new router for a tenant.
Create Vrf.
tenant-name required | string Tenant Name. |
vrf-list | Array of objects (Vrf) |
OK
Authorization information is missing or invalid.
Vrf with name already exists.
Unexpected error.
Unexpected error
{- "tenant-name": "Tenant-A",
- "vrf-list": [
- {
- "name": "vrf-red",
- "route-target": [
- {
- "route-target": "100:100",
- "route-target-type": "<both | imoprt | export>"
}
]
}
]
}
Delete a Vrf by name.
Delete Vrf.
tenant-name | string Tenant Name |
vrf-name-list | Array of strings List of VRFs. |
OK
Authorization information is missing or invalid.
Vrf with the specified name is not found.
Unexpected error.
Unexpected error
{- "tenant-name": "Tenant-A",
- "vrf-name-list": [
- "VRF-GREEN",
- "VRF-RED"
]
}
This api will fetch the configured details like l2VNI, l3VNI and its assets.
name required | string Name of the tenant to retrieve |
OK
Authorization information is missing or invalid.
A tenant with the specified name is not found.
Unexpected error.
Unexpected error
This API will 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. While creating a tenant for an underlay fabric, VNI parameters are not required and will be considered as invalid rquest.
Add 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 be reserved for the tenant. |
num-of-vrf | integer Number of VRFs reserved for the tenant. |
enable-bd | boolean Enable bridge-domain so that overlapping vlans can be supported. |
port-list | Array of objects (Device) |
OK
Authorization information is missing or invalid.
A tenant with the specified name already exists.
Unexpected error.
Unexpected error
{- "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,
- "port-list": [
- {
- "mgmt-ip": "10.37.18.222",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
]
}
This API will 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.
name required | string Name of the tenant to be deleted. |
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. |
OK
ACCEPTED
Authorization information is missing or invalid.
A tenant with the specified name is not found.
Unexpected error.
Unexpected error
This API will update an existing tenant for non-conflicting changes of its resources like L2VNI, L3VNI, vlan range etc for the tenant. Update request to delete ports from the tenant with Networks configured on ports is not allowed without force parameter. Update with operation port_delete will deconfigure networks and port-property configured on that port. Port delete request if determined as long running job, a job id will be returned to caller which can be used to monitor the progress of the job.
tenant_name required | string name of the tenant that needs update. |
Update Tenant Settings can be done by name.
operation required | string Enum: "desc-update" "vni-update" "port-add" "port-delete" "vlan-update" "num-vrf-update" "enable-bd-update" Add or Delete these ports from the port group. |
force | boolean Use force parameter to delete the assets forcefully. Valid only when operation is set to port-delete |
tenant | object (Tenant) |
OK
ACCEPTED
Authorization information is missing or invalid.
Tenant not found.
Unexpected error.
Unexpected error
{- "operation": "desc-update | vni-update | port-add | port-delete | vlan-update | num-vrf-update | enable-bd-update",
- "force": true,
- "tenant": {
- "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,
- "port-list": [
- {
- "mgmt-ip": "10.37.18.222",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
]
}
}
Get all Endpoint Groups configured with tenant service.
tenant_name | string tenant to which this epg belongs. |
all_data | boolean Use all_data parameter to get the detailed list of all Endpoint Groups. |
OK
Authorization information is missing or invalid.
Unexpected error.
Unexpected error
An Endpoint Group is a collection of ports and port-channels 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.
Create an End point Group.
tenant-name required | string Tenant Name. |
endpoint-group-list | Array of objects (EndpointGroup) |
OK
ACCEPTED
Authorization information is missing or invalid.
EndpointGroup with name already exists.
Unexpected error.
Unexpected error
{- "tenant-name": "Tenant-A",
- "endpoint-group-list": [
- {
- "name": "EndpointGroup-1",
- "description": "EndpointGroup-Sales",
- "port-group": {
- "physical-port": [
- {
- "mgmt-ip": "10.37.18.222",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "port-channel": [
- "po-1",
- "po-2"
]
}, - "port-property": {
- "switchport-mode": "trunk",
- "enable-switchport-native-vlan": false
}, - "network-policy": {
- "ctag-range": "101-102",
- "vrf": "VRF-GREEN",
- "l3-vni": 201,
- "network-property": [
- {
- "ctag": 101,
- "is-native-vlan": true,
- "l2-vni": 101,
- "bridge-domain-name": "BD-101-201",
- "anycast": {
- "ipv4-address": "10.10.10.1/24"
}
}
]
}, - "error": [
- {
- "mgmt-ip": "string",
- "network-policy-error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "port-property-error-list": [
- {
- "code": 1000,
- "message": "string"
}
]
}
]
}
]
}
This api will fetch the configured details and not the operational state of the ports belonging to this EndpointGroup.
name required | string Name of the EndpointGroup to retrieve |
tenant_name required | string tenant to which this epg belongs. |
OK
Authorization information is missing or invalid.
An EndpointGroup with the specified name is not found.
Unexpected error.
Unexpected error
This API will 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 endpoint. The delete request with force parameter will trigger a delete operation for the network to which this EndpointGroup was attached.
tenant-name required | string Tenant Name |
force | boolean Set to true if EPG delete will require deconfiguring networks also. |
endpoint-group-list required | Array of objects (EndpointGroupName) |
OK
ACCEPTED
Authorization information is missing or invalid.
An EndpointGroup with the specified name is not found.
Unexpected error.
Unexpected error
{- "tenant-name": "Tenant-A",
- "force": true,
- "endpoint-group-list": [
- {
- "name": "EPG-1"
}
]
}
Update operation supports addition of new port(s) and/or port-channel(s) to EndpointGroup or deletion of port(s) and/or port-channel(s) from EndpointGroup. If the EndpointGroup is linked to any tenant network, the newly added port or port-channel will become the part of the tenant network and its appropriate L2/L3 configurations will be applied on the newly added port and port-channel and record will be updated with tenant automation service. For deleted port and/or port-channel from EndpointGroup, appropriate configurations will be removed from the device and record will be updated with tenant automation service.
Update Endpoint Group.
tenant-name | string Tenant Name |
operation required | string Enum: "port-group-add" "port-group-delete" Add or Delete these ports from the port group. To delete/add device provide mgmt-ip with empty port to it. |
endpoint-group-list | Array of objects (EndpointGroupPortGroup) |
OK
ACCEPTED
Authorization information is missing or invalid.
EndpointGroup not found.
Unexpected error.
Unexpected error
{- "tenant-name": "Tenant-A",
- "operation": "port-group-add | port-group-delete",
- "endpoint-group-list": [
- {
- "name": "EndpointGroup-1",
- "port-group": {
- "physical-port": [
- {
- "mgmt-ip": "10.37.18.222",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "port-channel": [
- "po-1",
- "po-2"
]
}, - "port-property": {
- "switchport-mode": "trunk",
- "enable-switchport-native-vlan": false
}
}
]
}
Update operation supports updating networks belonging to these Endpoint Groups. Below operation are supported -
Update Endpoint Group.
tenant-name | string Tenant Name |
operation | string Enum: "ctag-range-add" "ctag-range-delete" "vrf-add" "vrf-delete" These operations are allowed on endpoint group |
endpoint-group-list | Array of objects (EndpointGroupNetworkPolicy) |
OK
ACCEPTED
Authorization information is missing or invalid.
EndpointGroup not found.
Unexpected error.
Unexpected error
{- "tenant-name": "Tenant-A",
- "operation": "ctag-range-add | ctag-range-delete | vrf-add | vrf-delete",
- "endpoint-group-list": [
- {
- "name": "EndpointGroup-1",
- "network-policy": {
- "ctag-range": "101-102",
- "vrf": "VRF-GREEN",
- "l3-vni": 201,
- "network-property": [
- {
- "ctag": 101,
- "is-native-vlan": true,
- "l2-vni": 101,
- "bridge-domain-name": "BD-101-201",
- "anycast": {
- "ipv4-address": "10.10.10.1/24"
}
}
]
}
}
]
}
This API helps user to split network or range of networks from the endpoint group into another endpoint group for allowing user to do operations on the newly created endpoint group.
Create an End point Group.
tenant-name required | string Name of tenant to which this EndpointGroup belongs. |
from-epg required | string Unique name of the endpoint group. |
to-epg required | string A new endpoint group name on which these network(s) will be created. |
to-epg-description | string Description about end point group to be created. |
ctag-range | string Range of CTags to be detached. |
OK
Authorization information is missing or invalid.
EndpointGroup with name already exists.
Unexpected error.
Unexpected error
{- "tenant-name": "Tenant-1",
- "from-epg": "EndpointGroup-1",
- "to-epg": "EndpointGroup-2",
- "to-epg-description": "EndpointGroup-Finance",
- "ctag-range": "2-30"
}
Set Debug Level for modules.
debug_level | string Set debug level. If empty reset to default level (ERROR). |
OK
Authorization information is missing or invalid.
Unexpected error.
Unexpected error
This api will fetch EndpointGroup errors
name required | string Name of the EndpointGroup to retrieve |
tenant_name required | string tenant to which this epg belongs. |
OK
Authorization information is missing or invalid.
An EndpointGroup with the specified name is not found.
Unexpected error.
Unexpected error
Get the list of all the previous executions
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) |
OK
Authorization information is missing or invalid.
Unexpected error.
Unexpected error