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.
This API helps to get all tenants configured with tenant service
object (SearchQuery) {"group_by":"name"} Responses grouped by name {"filter":[{"name":"name","value":"Tenant1"},{"name":"id',"value":"1"}] Responses searched by name="Tenant1" and id="1" {"fuzzy":"tenant"} Responses searched using fuzzy search "tenant" | |
object (PaginationQuery) {"sort_by":"asc|desc"} Responses with id in ascending or descending order {"offset" : "lt:30"} Responses searched with id less than 30 {"page_size":20} Responses searched with limit of 20 entries | |
include | Array of strings Items Value: "utilization" include parameters that needs to be shown with output |
{- "paginationResponse": {
- "remaining_count": 0,
- "first_id": 0,
- "last_id": 0
}, - "tenant": [
- {
- "id": 1,
- "name": "Tenant-A",
- "type": "shared | private",
- "description": "Tenant-A's Description",
- "enable-bd": true,
- "vlan-range": "10-20,50-60",
- "l2-vni-range": "1-100",
- "num-of-vrf": 20,
- "l3-vni-range": "4096-5000",
- "l2-vni-capacity": 100,
- "l3-vni-capacity": 100,
- "fabric-list": [
- "string"
], - "port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "mirror-destination-port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "port-channel-list": [
- "string"
], - "vrf-list": [
- "string"
], - "epg-list": [
- "string"
], - "bgp-peer-group-list": [
- "string"
], - "bgp-peer-list": [
- "string"
], - "mirror-session-list": [
- "string"
], - "tenant-utilization": {
- "port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "mirror-destination-port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "l2-vni-list": [
- 201,
- 202,
- 203
], - "l3-vni-list": [
- 101,
- 102,
- 103
]
}, - "fabric": [
- {
- "name": "string",
- "type": "string",
- "stage": 0
}
], - "DeviceDetails": [
- {
- "mgmt-ip": "10.25.25.100",
- "id": 3,
- "role": "Leaf",
- "host-name": "NHF-Leaf1",
- "chassis-name": "SLX9150-48Y",
- "multihomed-neighbour": "10.20.240.1",
- "PortDetails": [
- {
- "int-type": "ethernet",
- "name": "0/1",
- "port-type": "fabric-icl",
- "admin-status": "up,down",
- "oper-status": "down,up",
- "actual-line-speed": "auto, unknown, 10Gbps"
}
]
}
], - "bgp-peer-group": [
- {
- "mgmt-ip": "10.25.25.100",
- "peer-group-name": "bgp-peer-group-1",
- "remote-as": 65000,
- "bfd-enable": true
}
], - "vrf": [
- {
- "name": "vrf-1",
- "target-device": [
- "string"
]
}
]
}
]
}
This API helps to get the specified Tenant details
name required | string Name of the tenant to retrieve details |
include | Array of strings Items Value: "utilization" include parameters that needs to be shown with output |
{- "id": 1,
- "name": "Tenant-A",
- "type": "shared | private",
- "description": "Tenant-A's Description",
- "enable-bd": true,
- "vlan-range": "10-20,50-60",
- "l2-vni-range": "1-100",
- "num-of-vrf": 20,
- "l3-vni-range": "4096-5000",
- "l2-vni-capacity": 100,
- "l3-vni-capacity": 100,
- "fabric-list": [
- "string"
], - "port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "mirror-destination-port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "port-channel-list": [
- "string"
], - "vrf-list": [
- "string"
], - "epg-list": [
- "string"
], - "bgp-peer-group-list": [
- "string"
], - "bgp-peer-list": [
- "string"
], - "mirror-session-list": [
- "string"
], - "tenant-utilization": {
- "port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "mirror-destination-port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "l2-vni-list": [
- 201,
- 202,
- 203
], - "l3-vni-list": [
- 101,
- 102,
- 103
]
}, - "fabric": [
- {
- "name": "string",
- "type": "string",
- "stage": 0
}
], - "DeviceDetails": [
- {
- "mgmt-ip": "10.25.25.100",
- "id": 3,
- "role": "Leaf",
- "host-name": "NHF-Leaf1",
- "chassis-name": "SLX9150-48Y",
- "multihomed-neighbour": "10.20.240.1",
- "PortDetails": [
- {
- "int-type": "ethernet",
- "name": "0/1",
- "port-type": "fabric-icl",
- "admin-status": "up,down",
- "oper-status": "down,up",
- "actual-line-speed": "auto, unknown, 10Gbps"
}
]
}
], - "bgp-peer-group": [
- {
- "mgmt-ip": "10.25.25.100",
- "peer-group-name": "bgp-peer-group-1",
- "remote-as": 65000,
- "bfd-enable": true
}
], - "vrf": [
- {
- "name": "vrf-1",
- "target-device": [
- "string"
]
}
]
}
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.
Create a new tenant
name required | string Unique name of the tenant |
type | string Enum: "shared" "private" POs or VRFs of shared tenant are available to other tenants. Default tenant type is private. |
description | string Description about tenant |
enable-bd | boolean Enable bridge-domain so that overlapping vlans can be supported |
vlan-range | string Range of VLANs to reserve for the 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. |
num-of-vrf | integer Number of VRFs to reserve for the tenant |
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. |
l2-vni-capacity | integer l2 vni capacity |
l3-vni-capacity | integer l3 vni capacity |
fabric-list | Array of strings unique |
Array of objects (Device) unique | |
Array of objects (Device) unique | |
port-channel-list | Array of strings unique |
vrf-list | Array of strings unique |
epg-list | Array of strings unique |
bgp-peer-group-list | Array of strings unique |
bgp-peer-list | Array of strings unique |
mirror-session-list | Array of strings unique |
object (TenantUtilization) |
{- "name": "Tenant-A",
- "type": "shared | private",
- "description": "Tenant-A's Description",
- "enable-bd": true,
- "vlan-range": "10-20,50-60",
- "l2-vni-range": "1-100",
- "num-of-vrf": 20,
- "l3-vni-range": "4096-5000",
- "l2-vni-capacity": 100,
- "l3-vni-capacity": 100,
- "fabric-list": [
- "string"
], - "port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "mirror-destination-port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "port-channel-list": [
- "string"
], - "vrf-list": [
- "string"
], - "epg-list": [
- "string"
], - "bgp-peer-group-list": [
- "string"
], - "bgp-peer-list": [
- "string"
], - "mirror-session-list": [
- "string"
], - "tenant-utilization": {
- "port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "mirror-destination-port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "l2-vni-list": [
- 201,
- 202,
- 203
], - "l3-vni-list": [
- 101,
- 102,
- 103
]
}
}
{- "id": 1,
- "name": "Tenant-A",
- "type": "shared | private",
- "description": "Tenant-A's Description",
- "enable-bd": true,
- "vlan-range": "10-20,50-60",
- "l2-vni-range": "1-100",
- "num-of-vrf": 20,
- "l3-vni-range": "4096-5000",
- "l2-vni-capacity": 100,
- "l3-vni-capacity": 100,
- "fabric-list": [
- "string"
], - "port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "mirror-destination-port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "port-channel-list": [
- "string"
], - "vrf-list": [
- "string"
], - "epg-list": [
- "string"
], - "bgp-peer-group-list": [
- "string"
], - "bgp-peer-list": [
- "string"
], - "mirror-session-list": [
- "string"
], - "tenant-utilization": {
- "port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "mirror-destination-port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "l2-vni-list": [
- 201,
- 202,
- 203
], - "l3-vni-list": [
- 101,
- 102,
- 103
]
}, - "fabric": [
- {
- "name": "string",
- "type": "string",
- "stage": 0
}
], - "DeviceDetails": [
- {
- "mgmt-ip": "10.25.25.100",
- "id": 3,
- "role": "Leaf",
- "host-name": "NHF-Leaf1",
- "chassis-name": "SLX9150-48Y",
- "multihomed-neighbour": "10.20.240.1",
- "PortDetails": [
- {
- "int-type": "ethernet",
- "name": "0/1",
- "port-type": "fabric-icl",
- "admin-status": "up,down",
- "oper-status": "down,up",
- "actual-line-speed": "auto, unknown, 10Gbps"
}
]
}
], - "bgp-peer-group": [
- {
- "mgmt-ip": "10.25.25.100",
- "peer-group-name": "bgp-peer-group-1",
- "remote-as": 65000,
- "bfd-enable": true
}
], - "vrf": [
- {
- "name": "vrf-1",
- "target-device": [
- "string"
]
}
]
}
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.
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. |
{- "id": 1,
- "name": "Tenant-A",
- "type": "shared | private",
- "description": "Tenant-A's Description",
- "enable-bd": true,
- "vlan-range": "10-20,50-60",
- "l2-vni-range": "1-100",
- "num-of-vrf": 20,
- "l3-vni-range": "4096-5000",
- "l2-vni-capacity": 100,
- "l3-vni-capacity": 100,
- "fabric-list": [
- "string"
], - "port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "mirror-destination-port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "port-channel-list": [
- "string"
], - "vrf-list": [
- "string"
], - "epg-list": [
- "string"
], - "bgp-peer-group-list": [
- "string"
], - "bgp-peer-list": [
- "string"
], - "mirror-session-list": [
- "string"
], - "tenant-utilization": {
- "port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "mirror-destination-port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "l2-vni-list": [
- 201,
- 202,
- 203
], - "l3-vni-list": [
- 101,
- 102,
- 103
]
}, - "fabric": [
- {
- "name": "string",
- "type": "string",
- "stage": 0
}
], - "DeviceDetails": [
- {
- "mgmt-ip": "10.25.25.100",
- "id": 3,
- "role": "Leaf",
- "host-name": "NHF-Leaf1",
- "chassis-name": "SLX9150-48Y",
- "multihomed-neighbour": "10.20.240.1",
- "PortDetails": [
- {
- "int-type": "ethernet",
- "name": "0/1",
- "port-type": "fabric-icl",
- "admin-status": "up,down",
- "oper-status": "down,up",
- "actual-line-speed": "auto, unknown, 10Gbps"
}
]
}
], - "bgp-peer-group": [
- {
- "mgmt-ip": "10.25.25.100",
- "peer-group-name": "bgp-peer-group-1",
- "remote-as": 65000,
- "bfd-enable": true
}
], - "vrf": [
- {
- "name": "vrf-1",
- "target-device": [
- "string"
]
}
]
}
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.
tenant_name required | string Name of the tenant to update parameter |
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" "mirror-destination-port-add" "mirror-destination-port-delete" Add, delete or update tenant configuration |
force | boolean Force option which is valid only for port-delete operation is deprecated. |
object (Tenant) |
{- "operation": "desc-update | vni-update | port-add | port-delete | vlan-add | vlan-delete | vlan-update | num-vrf-update | enable-bd-update | mirror-destination-port-add | mirror-destination-port-delete",
- "force": true,
- "tenant": {
- "name": "Tenant-A",
- "type": "shared | private",
- "description": "Tenant-A's Description",
- "enable-bd": true,
- "vlan-range": "10-20,50-60",
- "l2-vni-range": "1-100",
- "num-of-vrf": 20,
- "l3-vni-range": "4096-5000",
- "l2-vni-capacity": 100,
- "l3-vni-capacity": 100,
- "fabric-list": [
- "string"
], - "port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "mirror-destination-port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "port-channel-list": [
- "string"
], - "vrf-list": [
- "string"
], - "epg-list": [
- "string"
], - "bgp-peer-group-list": [
- "string"
], - "bgp-peer-list": [
- "string"
], - "mirror-session-list": [
- "string"
], - "tenant-utilization": {
- "port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "mirror-destination-port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "l2-vni-list": [
- 201,
- 202,
- 203
], - "l3-vni-list": [
- 101,
- 102,
- 103
]
}
}
}
{- "id": 1,
- "name": "Tenant-A",
- "type": "shared | private",
- "description": "Tenant-A's Description",
- "enable-bd": true,
- "vlan-range": "10-20,50-60",
- "l2-vni-range": "1-100",
- "num-of-vrf": 20,
- "l3-vni-range": "4096-5000",
- "l2-vni-capacity": 100,
- "l3-vni-capacity": 100,
- "fabric-list": [
- "string"
], - "port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "mirror-destination-port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "port-channel-list": [
- "string"
], - "vrf-list": [
- "string"
], - "epg-list": [
- "string"
], - "bgp-peer-group-list": [
- "string"
], - "bgp-peer-list": [
- "string"
], - "mirror-session-list": [
- "string"
], - "tenant-utilization": {
- "port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "mirror-destination-port-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "l2-vni-list": [
- 201,
- 202,
- 203
], - "l3-vni-list": [
- 101,
- 102,
- 103
]
}, - "fabric": [
- {
- "name": "string",
- "type": "string",
- "stage": 0
}
], - "DeviceDetails": [
- {
- "mgmt-ip": "10.25.25.100",
- "id": 3,
- "role": "Leaf",
- "host-name": "NHF-Leaf1",
- "chassis-name": "SLX9150-48Y",
- "multihomed-neighbour": "10.20.240.1",
- "PortDetails": [
- {
- "int-type": "ethernet",
- "name": "0/1",
- "port-type": "fabric-icl",
- "admin-status": "up,down",
- "oper-status": "down,up",
- "actual-line-speed": "auto, unknown, 10Gbps"
}
]
}
], - "bgp-peer-group": [
- {
- "mgmt-ip": "10.25.25.100",
- "peer-group-name": "bgp-peer-group-1",
- "remote-as": 65000,
- "bfd-enable": true
}
], - "vrf": [
- {
- "name": "vrf-1",
- "target-device": [
- "string"
]
}
]
}
This API helps to get all Portchannels configured with Tenant service
tenant_name required | string Tenant to which this Portchannel belongs |
object (SearchQuery) {"group_by":"state"} Responses grouped by state {"filter":[{"name":"name","value":"samplePO"}] Responses searched by name="samplePO" {"fuzzy":"Port channel"} Responses searched using fuzzy search "Port channel" | |
object (PaginationQuery) {"sort_by":"asc|desc"} Responses with id in ascending or descending order {"offset" : "lt:30"} Responses searched with id less than 30 {"page_size":20} Responses searched with limit of 20 entries |
{- "paginationResponse": {
- "remaining_count": 0,
- "first_id": 0,
- "last_id": 0
}, - "portchannel": [
- {
- "id": 1,
- "number": 1,
- "name": "po101",
- "description": "po101",
- "speed": "100Mbps | 1Gbps | 10Gbps | 25Gbps | 40Gbps | 100Gbps",
- "negotiation": "active | passive | static",
- "memberinterfaces": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "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": [
- {
- "mgmt-ip": "string",
- "error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "rollback-error-list": [
- {
- "code": 1000,
- "message": "string"
}
]
}
]
}
]
}
This API helps to get the specified Portchannel details
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 |
{- "id": 1,
- "number": 1,
- "name": "po101",
- "description": "po101",
- "speed": "100Mbps | 1Gbps | 10Gbps | 25Gbps | 40Gbps | 100Gbps",
- "negotiation": "active | passive | static",
- "memberinterfaces": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "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": [
- {
- "mgmt-ip": "string",
- "error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "rollback-error-list": [
- {
- "code": 1000,
- "message": "string"
}
]
}
]
}
This API helps to create a new Portchannel
Create Port-channel parameter
number | string Portchannel interface number generated by the service |
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 |
required | Array of objects (Device) unique |
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 |
{- "number": 1,
- "name": "po101",
- "description": "po101",
- "speed": "100Mbps | 1Gbps | 10Gbps | 25Gbps | 40Gbps | 100Gbps",
- "negotiation": "active | passive | static",
- "memberinterfaces": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "tenantName": "Tenant-1",
- "lacpTimeout": "short | long",
- "minLinkCount": 2,
- "mtu": 9100
}
{- "id": 1,
- "number": 1,
- "name": "po101",
- "description": "po101",
- "speed": "100Mbps | 1Gbps | 10Gbps | 25Gbps | 40Gbps | 100Gbps",
- "negotiation": "active | passive | static",
- "memberinterfaces": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "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": [
- {
- "mgmt-ip": "string",
- "error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "rollback-error-list": [
- {
- "code": 1000,
- "message": "string"
}
]
}
]
}
This API helps to delete the given Portchannel
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 |
{- "id": 1,
- "number": 1,
- "name": "po101",
- "description": "po101",
- "speed": "100Mbps | 1Gbps | 10Gbps | 25Gbps | 40Gbps | 100Gbps",
- "negotiation": "active | passive | static",
- "memberinterfaces": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "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": [
- {
- "mgmt-ip": "string",
- "error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "rollback-error-list": [
- {
- "code": 1000,
- "message": "string"
}
]
}
]
}
This API helps to update the parameters of the Portchannel
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 |
required | Array of objects (Device) unique |
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 |
{- "name": "po101",
- "operation": "port-add | port-delete | lacp-timeout | description | min-link-count | mtu-add | mtu-delete",
- "memberinterfaces": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "tenantName": "Tenant-1",
- "lacpTimeout": "short | long",
- "description": "po101",
- "minLinkCount": 2,
- "mtu": 9100
}
{- "id": 1,
- "number": 1,
- "name": "po101",
- "description": "po101",
- "speed": "100Mbps | 1Gbps | 10Gbps | 25Gbps | 40Gbps | 100Gbps",
- "negotiation": "active | passive | static",
- "memberinterfaces": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "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": [
- {
- "mgmt-ip": "string",
- "error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "rollback-error-list": [
- {
- "code": 1000,
- "message": "string"
}
]
}
]
}
This API helps to configure the given Portchannel
name required | string Name of the Portchannel to configure |
tenant_name required | string Tenant to which this Portchannel belongs |
{- "id": 1,
- "number": 1,
- "name": "po101",
- "description": "po101",
- "speed": "100Mbps | 1Gbps | 10Gbps | 25Gbps | 40Gbps | 100Gbps",
- "negotiation": "active | passive | static",
- "memberinterfaces": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "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": [
- {
- "mgmt-ip": "string",
- "error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "rollback-error-list": [
- {
- "code": 1000,
- "message": "string"
}
]
}
]
}
This API helps to get all Vrfs configured with tenant service
tenant_name required | string Tenant to which this Vrf belongs |
object (SearchQuery) {"group_by":"routing-type"} Responses grouped by routing-type centralized or distributed {"filter":[{"name":"name","value":"VRF"}]} Responses searched by name="VRF" {"fuzzy":"VRF"} Responses searched using fuzzy search "VRF" | |
object (PaginationQuery) {"sort_by":"asc|desc"} Responses with id in ascending or descending order {"offset" : "lt:30"} Responses searched with id less than 30 {"page_size":20} Responses searched with limit of 20 entries |
{- "tenant_name": "Tenant-A",
- "paginationResponse": {
- "remaining_count": 0,
- "first_id": 0,
- "last_id": 0
}, - "vrf-list": [
- {
- "id": 1,
- "name": "vrf-red",
- "tenantName": "Tenant-1",
- "routing-type": "distributed",
- "centralized-router": [
- {
- "mgmt-ip": "10.25.25.100"
}
], - "layer3-extension-enable": "true | false",
- "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": [
- {
- "route-target-type": "both | import | export",
- "route-target": "100:100"
}
], - "static-route": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-route-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "afi": "ipv4 | ipv6",
- "network": "20.0.0.0/24 | 2001:1::/64",
- "nexthopIP": "16.0.0.2 | 3001::2",
- "distance": 3,
- "metric": 2
}
]
}
], - "static-route-bfd": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-route-bfd-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "afi": "ipv4 | ipv6",
- "DestIPAddr": "16.0.0.2 | 3001::2",
- "SrcIPAddr": "16.0.0.2 | 3001::2",
- "interval": 300,
- "minRx": 300,
- "multiplier": 3
}
]
}
], - "max-path": 8,
- "redistribute": [
- "static | connected"
], - "rh-max-path": 8,
- "rh-ecmp-enable": true,
- "graceful-restart-enable": true,
- "next-hop-recursion-enable": "true | false",
- "default-information-originate-enable": "true | false",
- "network": [
- {
- "mgmt-ip": "10.25.25.100",
- "network-list": [
- {
- "afi": "ipv4 | ipv6",
- "network": "20.0.0.0/24 | 2001:1::/64",
- "backdoor": "true | false",
- "route_map": "rm1",
- "weight": 30
}
]
}
], - "static-network": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-network-list": [
- {
- "afi": "ipv4",
- "network": "11.20.30.40/30",
- "distance": 3
}
]
}
], - "aggregate-address": [
- {
- "mgmt-ip": "10.25.25.100",
- "aggregate-address-list": [
- {
- "afi": "ipv4 | ipv6",
- "aggregated-address": "20.0.0.0/24 | 2001:1::/64",
- "summary-only": "true | false",
- "as-set": "true | false",
- "addvertise-map": "routeMap1",
- "suppress-map": "routeMap1"
}
]
}
], - "error": [
- {
- "mgmt-ip": "string",
- "error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "rollback-error-list": [
- {
- "code": 1000,
- "message": "string"
}
]
}
]
}
]
}
This API helps to get specified static routes for VRF
object (SearchQuery) {"group_by":"network"} Responses grouped by network {"filter":[{"name":"network","value":"20.0.0.0/24"}] Responses searched by network="20.0.0.0/24" {"fuzzy":"20.0.0.0/24"} Responses searched using fuzzy search "20.0.0.0/24" | |
object (PaginationQuery) {"sort_by":"asc|desc"} Responses with id in ascending or descending order {"offset" : "lt:30"} Responses searched with id less than 30 {"page_size":20} Responses searched with limit of 20 entries | |
name required | string Vrf name to get |
tenant_name required | string Tenant to which this Vrf belongs |
{- "paginationResponse": {
- "remaining_count": 0,
- "first_id": 0,
- "last_id": 0
}, - "id": 1,
- "name": "vrf-red",
- "tenant_name": "Tenant-1",
- "static-route": [
- {
- "mgmt-ip": "10.25.25.100",
- "afi": "ipv4 | ipv6",
- "network": "20.0.0.0/24 | 2001:1::/64",
- "nexthopIP": "16.0.0.2 | 3001::2",
- "distance": 3,
- "metric": 2
}
]
}
This API helps to get specified Vrf details
name required | string Vrf name to delete |
tenant_name required | string Tenant to which this Vrf belongs |
{- "id": 1,
- "name": "vrf-red",
- "tenantName": "Tenant-1",
- "routing-type": "distributed",
- "centralized-router": [
- {
- "mgmt-ip": "10.25.25.100"
}
], - "layer3-extension-enable": "true | false",
- "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": [
- {
- "route-target-type": "both | import | export",
- "route-target": "100:100"
}
], - "static-route": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-route-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "afi": "ipv4 | ipv6",
- "network": "20.0.0.0/24 | 2001:1::/64",
- "nexthopIP": "16.0.0.2 | 3001::2",
- "distance": 3,
- "metric": 2
}
]
}
], - "static-route-bfd": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-route-bfd-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "afi": "ipv4 | ipv6",
- "DestIPAddr": "16.0.0.2 | 3001::2",
- "SrcIPAddr": "16.0.0.2 | 3001::2",
- "interval": 300,
- "minRx": 300,
- "multiplier": 3
}
]
}
], - "max-path": 8,
- "redistribute": [
- "static | connected"
], - "rh-max-path": 8,
- "rh-ecmp-enable": true,
- "graceful-restart-enable": true,
- "next-hop-recursion-enable": "true | false",
- "default-information-originate-enable": "true | false",
- "network": [
- {
- "mgmt-ip": "10.25.25.100",
- "network-list": [
- {
- "afi": "ipv4 | ipv6",
- "network": "20.0.0.0/24 | 2001:1::/64",
- "backdoor": "true | false",
- "route_map": "rm1",
- "weight": 30
}
]
}
], - "static-network": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-network-list": [
- {
- "afi": "ipv4",
- "network": "11.20.30.40/30",
- "distance": 3
}
]
}
], - "aggregate-address": [
- {
- "mgmt-ip": "10.25.25.100",
- "aggregate-address-list": [
- {
- "afi": "ipv4 | ipv6",
- "aggregated-address": "20.0.0.0/24 | 2001:1::/64",
- "summary-only": "true | false",
- "as-set": "true | false",
- "addvertise-map": "routeMap1",
- "suppress-map": "routeMap1"
}
]
}
], - "error": [
- {
- "mgmt-ip": "string",
- "error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "rollback-error-list": [
- {
- "code": 1000,
- "message": "string"
}
]
}
]
}
This API helps to create a new Vrf for a tenant
Create Vrf
tenant_name required | string Tenant Name |
object (PaginationResponse) | |
Array of objects (Vrf) |
{- "tenant_name": "Tenant-A",
- "paginationResponse": {
- "remaining_count": 0,
- "first_id": 0,
- "last_id": 0
}, - "vrf-list": [
- {
- "name": "vrf-red",
- "tenantName": "Tenant-1",
- "routing-type": "distributed",
- "centralized-router": [
- {
- "mgmt-ip": "10.25.25.100"
}
], - "layer3-extension-enable": "true | false",
- "vrf-type": "shared | private",
- "dev-state": "provisioned | provisioning-failed | not-provisioned",
- "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err",
- "local-asn": 1024,
- "route-target": [
- {
- "route-target-type": "both | import | export",
- "route-target": "100:100"
}
], - "static-route": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-route-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "afi": "ipv4 | ipv6",
- "network": "20.0.0.0/24 | 2001:1::/64",
- "nexthopIP": "16.0.0.2 | 3001::2",
- "distance": 3,
- "metric": 2
}
]
}
], - "static-route-bfd": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-route-bfd-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "afi": "ipv4 | ipv6",
- "DestIPAddr": "16.0.0.2 | 3001::2",
- "SrcIPAddr": "16.0.0.2 | 3001::2",
- "interval": 300,
- "minRx": 300,
- "multiplier": 3
}
]
}
], - "max-path": 8,
- "redistribute": [
- "static | connected"
], - "rh-max-path": 8,
- "rh-ecmp-enable": true,
- "graceful-restart-enable": true,
- "next-hop-recursion-enable": "true | false",
- "default-information-originate-enable": "true | false",
- "network": [
- {
- "mgmt-ip": "10.25.25.100",
- "network-list": [
- {
- "afi": "ipv4 | ipv6",
- "network": "20.0.0.0/24 | 2001:1::/64",
- "backdoor": "true | false",
- "route_map": "rm1",
- "weight": 30
}
]
}
], - "static-network": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-network-list": [
- {
- "afi": "ipv4",
- "network": "11.20.30.40/30",
- "distance": 3
}
]
}
], - "aggregate-address": [
- {
- "mgmt-ip": "10.25.25.100",
- "aggregate-address-list": [
- {
- "afi": "ipv4 | ipv6",
- "aggregated-address": "20.0.0.0/24 | 2001:1::/64",
- "summary-only": "true | false",
- "as-set": "true | false",
- "addvertise-map": "routeMap1",
- "suppress-map": "routeMap1"
}
]
}
]
}
]
}
{- "tenant_name": "Tenant-A",
- "paginationResponse": {
- "remaining_count": 0,
- "first_id": 0,
- "last_id": 0
}, - "vrf-list": [
- {
- "id": 1,
- "name": "vrf-red",
- "tenantName": "Tenant-1",
- "routing-type": "distributed",
- "centralized-router": [
- {
- "mgmt-ip": "10.25.25.100"
}
], - "layer3-extension-enable": "true | false",
- "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": [
- {
- "route-target-type": "both | import | export",
- "route-target": "100:100"
}
], - "static-route": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-route-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "afi": "ipv4 | ipv6",
- "network": "20.0.0.0/24 | 2001:1::/64",
- "nexthopIP": "16.0.0.2 | 3001::2",
- "distance": 3,
- "metric": 2
}
]
}
], - "static-route-bfd": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-route-bfd-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "afi": "ipv4 | ipv6",
- "DestIPAddr": "16.0.0.2 | 3001::2",
- "SrcIPAddr": "16.0.0.2 | 3001::2",
- "interval": 300,
- "minRx": 300,
- "multiplier": 3
}
]
}
], - "max-path": 8,
- "redistribute": [
- "static | connected"
], - "rh-max-path": 8,
- "rh-ecmp-enable": true,
- "graceful-restart-enable": true,
- "next-hop-recursion-enable": "true | false",
- "default-information-originate-enable": "true | false",
- "network": [
- {
- "mgmt-ip": "10.25.25.100",
- "network-list": [
- {
- "afi": "ipv4 | ipv6",
- "network": "20.0.0.0/24 | 2001:1::/64",
- "backdoor": "true | false",
- "route_map": "rm1",
- "weight": 30
}
]
}
], - "static-network": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-network-list": [
- {
- "afi": "ipv4",
- "network": "11.20.30.40/30",
- "distance": 3
}
]
}
], - "aggregate-address": [
- {
- "mgmt-ip": "10.25.25.100",
- "aggregate-address-list": [
- {
- "afi": "ipv4 | ipv6",
- "aggregated-address": "20.0.0.0/24 | 2001:1::/64",
- "summary-only": "true | false",
- "as-set": "true | false",
- "addvertise-map": "routeMap1",
- "suppress-map": "routeMap1"
}
]
}
], - "error": [
- {
- "mgmt-ip": "string",
- "error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "rollback-error-list": [
- {
- "code": 1000,
- "message": "string"
}
]
}
]
}
]
}
This API helps to delete the given Vrf
Delete Vrf.
tenant_name | string Tenant Name |
vrf-name-list | Array of strings List of VRFs. |
{- "tenant_name": "Tenant-A",
- "vrf-name-list": [
- "VRF-GREEN",
- "VRF-RED"
]
}
{- "tenant_name": "Tenant-A",
- "paginationResponse": {
- "remaining_count": 0,
- "first_id": 0,
- "last_id": 0
}, - "vrf-list": [
- {
- "id": 1,
- "name": "vrf-red",
- "tenantName": "Tenant-1",
- "routing-type": "distributed",
- "centralized-router": [
- {
- "mgmt-ip": "10.25.25.100"
}
], - "layer3-extension-enable": "true | false",
- "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": [
- {
- "route-target-type": "both | import | export",
- "route-target": "100:100"
}
], - "static-route": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-route-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "afi": "ipv4 | ipv6",
- "network": "20.0.0.0/24 | 2001:1::/64",
- "nexthopIP": "16.0.0.2 | 3001::2",
- "distance": 3,
- "metric": 2
}
]
}
], - "static-route-bfd": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-route-bfd-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "afi": "ipv4 | ipv6",
- "DestIPAddr": "16.0.0.2 | 3001::2",
- "SrcIPAddr": "16.0.0.2 | 3001::2",
- "interval": 300,
- "minRx": 300,
- "multiplier": 3
}
]
}
], - "max-path": 8,
- "redistribute": [
- "static | connected"
], - "rh-max-path": 8,
- "rh-ecmp-enable": true,
- "graceful-restart-enable": true,
- "next-hop-recursion-enable": "true | false",
- "default-information-originate-enable": "true | false",
- "network": [
- {
- "mgmt-ip": "10.25.25.100",
- "network-list": [
- {
- "afi": "ipv4 | ipv6",
- "network": "20.0.0.0/24 | 2001:1::/64",
- "backdoor": "true | false",
- "route_map": "rm1",
- "weight": 30
}
]
}
], - "static-network": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-network-list": [
- {
- "afi": "ipv4",
- "network": "11.20.30.40/30",
- "distance": 3
}
]
}
], - "aggregate-address": [
- {
- "mgmt-ip": "10.25.25.100",
- "aggregate-address-list": [
- {
- "afi": "ipv4 | ipv6",
- "aggregated-address": "20.0.0.0/24 | 2001:1::/64",
- "summary-only": "true | false",
- "as-set": "true | false",
- "addvertise-map": "routeMap1",
- "suppress-map": "routeMap1"
}
]
}
], - "error": [
- {
- "mgmt-ip": "string",
- "error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "rollback-error-list": [
- {
- "code": 1000,
- "message": "string"
}
]
}
]
}
]
}
This API helps to update the parameters of the Vrf
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-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" "next-hop-recursion-update" "default-information-originate-update" "network-add" "network-delete" "static-network-add" "static-network-delete" "aggregate-address-add" "aggregate-address-delete" Below operations are supported -
|
localAsn | integer <int64> Local Asn for Vrf |
tenantName required | string Tenant to which this Vrf belongs |
Array of objects (StaticRouteBfd) | |
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 |
Array of objects[ items unique ] 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 |
next-hop-recursion-enable | string Enum: "true" "false" Enable/disable next hop recursion for Vrf |
default-information-originate-enable | string Enum: "true" "false" Enable/disable default information originate for Vrf |
Array of objects (BgpNetworkRoute) List of bgp networks to be advertised to the BGP peers. | |
Array of objects (BgpStaticNetwork) List of static networks to be advertised to the BGP peers | |
Array of objects (BgpAggregateAddress) List of BGP aggregate-address to be advertised to the BGP peers. |
{- "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 | next-hop-recursion-update | default-information-originate-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": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-route-bfd-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "afi": "ipv4 | ipv6",
- "DestIPAddr": "16.0.0.2 | 3001::2",
- "SrcIPAddr": "16.0.0.2 | 3001::2",
- "interval": 300,
- "minRx": 300,
- "multiplier": 3
}
]
}
], - "static-route": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-route-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "afi": "ipv4 | ipv6",
- "network": "20.0.0.0/24 | 2001:1::/64",
- "nexthopIP": "16.0.0.2 | 3001::2",
- "distance": 3,
- "metric": 2
}
]
}
], - "max-path": 8,
- "redistribute": [
- "static | connected"
], - "rh-max-path": 8,
- "rh-ecmp-enable": true,
- "centralized-router": [
- {
- "mgmt-ip": "10.25.25.100"
}
], - "graceful-restart-enable": true,
- "next-hop-recursion-enable": "true | false",
- "default-information-originate-enable": "true | false",
- "network": [
- {
- "mgmt-ip": "10.25.25.100",
- "network-list": [
- {
- "afi": "ipv4 | ipv6",
- "network": "20.0.0.0/24 | 2001:1::/64",
- "backdoor": "true | false",
- "route_map": "rm1",
- "weight": 30
}
]
}
], - "static-network": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-network-list": [
- {
- "afi": "ipv4",
- "network": "11.20.30.40/30",
- "distance": 3
}
]
}
], - "aggregate-address": [
- {
- "mgmt-ip": "10.25.25.100",
- "aggregate-address-list": [
- {
- "afi": "ipv4 | ipv6",
- "aggregated-address": "20.0.0.0/24 | 2001:1::/64",
- "summary-only": "true | false",
- "as-set": "true | false",
- "addvertise-map": "routeMap1",
- "suppress-map": "routeMap1"
}
]
}
]
}
{- "id": 1,
- "name": "vrf-red",
- "tenantName": "Tenant-1",
- "routing-type": "distributed",
- "centralized-router": [
- {
- "mgmt-ip": "10.25.25.100"
}
], - "layer3-extension-enable": "true | false",
- "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": [
- {
- "route-target-type": "both | import | export",
- "route-target": "100:100"
}
], - "static-route": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-route-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "afi": "ipv4 | ipv6",
- "network": "20.0.0.0/24 | 2001:1::/64",
- "nexthopIP": "16.0.0.2 | 3001::2",
- "distance": 3,
- "metric": 2
}
]
}
], - "static-route-bfd": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-route-bfd-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "afi": "ipv4 | ipv6",
- "DestIPAddr": "16.0.0.2 | 3001::2",
- "SrcIPAddr": "16.0.0.2 | 3001::2",
- "interval": 300,
- "minRx": 300,
- "multiplier": 3
}
]
}
], - "max-path": 8,
- "redistribute": [
- "static | connected"
], - "rh-max-path": 8,
- "rh-ecmp-enable": true,
- "graceful-restart-enable": true,
- "next-hop-recursion-enable": "true | false",
- "default-information-originate-enable": "true | false",
- "network": [
- {
- "mgmt-ip": "10.25.25.100",
- "network-list": [
- {
- "afi": "ipv4 | ipv6",
- "network": "20.0.0.0/24 | 2001:1::/64",
- "backdoor": "true | false",
- "route_map": "rm1",
- "weight": 30
}
]
}
], - "static-network": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-network-list": [
- {
- "afi": "ipv4",
- "network": "11.20.30.40/30",
- "distance": 3
}
]
}
], - "aggregate-address": [
- {
- "mgmt-ip": "10.25.25.100",
- "aggregate-address-list": [
- {
- "afi": "ipv4 | ipv6",
- "aggregated-address": "20.0.0.0/24 | 2001:1::/64",
- "summary-only": "true | false",
- "as-set": "true | false",
- "addvertise-map": "routeMap1",
- "suppress-map": "routeMap1"
}
]
}
], - "error": [
- {
- "mgmt-ip": "string",
- "error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "rollback-error-list": [
- {
- "code": 1000,
- "message": "string"
}
]
}
]
}
This API helps to configure the given Vrf
name required | string Name of the Vrf to configure |
tenant_name required | string Tenant to which this Vrf belongs |
{- "id": 1,
- "name": "vrf-red",
- "tenantName": "Tenant-1",
- "routing-type": "distributed",
- "centralized-router": [
- {
- "mgmt-ip": "10.25.25.100"
}
], - "layer3-extension-enable": "true | false",
- "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": [
- {
- "route-target-type": "both | import | export",
- "route-target": "100:100"
}
], - "static-route": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-route-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "afi": "ipv4 | ipv6",
- "network": "20.0.0.0/24 | 2001:1::/64",
- "nexthopIP": "16.0.0.2 | 3001::2",
- "distance": 3,
- "metric": 2
}
]
}
], - "static-route-bfd": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-route-bfd-list": [
- {
- "mgmt-ip": "10.25.25.100",
- "afi": "ipv4 | ipv6",
- "DestIPAddr": "16.0.0.2 | 3001::2",
- "SrcIPAddr": "16.0.0.2 | 3001::2",
- "interval": 300,
- "minRx": 300,
- "multiplier": 3
}
]
}
], - "max-path": 8,
- "redistribute": [
- "static | connected"
], - "rh-max-path": 8,
- "rh-ecmp-enable": true,
- "graceful-restart-enable": true,
- "next-hop-recursion-enable": "true | false",
- "default-information-originate-enable": "true | false",
- "network": [
- {
- "mgmt-ip": "10.25.25.100",
- "network-list": [
- {
- "afi": "ipv4 | ipv6",
- "network": "20.0.0.0/24 | 2001:1::/64",
- "backdoor": "true | false",
- "route_map": "rm1",
- "weight": 30
}
]
}
], - "static-network": [
- {
- "mgmt-ip": "10.25.25.100",
- "static-network-list": [
- {
- "afi": "ipv4",
- "network": "11.20.30.40/30",
- "distance": 3
}
]
}
], - "aggregate-address": [
- {
- "mgmt-ip": "10.25.25.100",
- "aggregate-address-list": [
- {
- "afi": "ipv4 | ipv6",
- "aggregated-address": "20.0.0.0/24 | 2001:1::/64",
- "summary-only": "true | false",
- "as-set": "true | false",
- "addvertise-map": "routeMap1",
- "suppress-map": "routeMap1"
}
]
}
], - "error": [
- {
- "mgmt-ip": "string",
- "error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "rollback-error-list": [
- {
- "code": 1000,
- "message": "string"
}
]
}
]
}
This API helps to get specified route targets for VRF
object (SearchQuery) {"group_by":"route-target"} Responses grouped by route-target {"filter":[{"name":"route-target","value":"100::100"}] Responses searched by route-target="100::100" {"fuzzy":"20.0.0.0/24"} Responses searched using fuzzy search "20.0.0.0/24" | |
object (PaginationQuery) {"sort_by":"asc|desc"} Responses with id in ascending or descending order {"offset" : "lt:30"} Responses searched with id less than 30 {"page_size":20} Responses searched with limit of 20 entries | |
name required | string Vrf name to get |
tenant_name required | string Tenant to which this Vrf belongs |
{- "paginationResponse": {
- "remaining_count": 0,
- "first_id": 0,
- "last_id": 0
}, - "name": "vrf-red",
- "tenantName": "Tenant-1",
- "route-target": [
- {
- "afi": "ipv4 | ipv6",
- "route-target-type": "both | import | export",
- "route-target": "100:100"
}
]
}
This API helps to get specified static routes BFD for VRF
object (SearchQuery) {"group_by":"network"} Responses grouped by network {"filter":[{"name":"network","value":"20.0.0.0/24"}] Responses searched by network="20.0.0.0/24" {"fuzzy":"20.0.0.0/24"} Responses searched using fuzzy search "20.0.0.0/24" | |
object (PaginationQuery) {"sort_by":"asc|desc"} Responses with id in ascending or descending order {"offset" : "lt:30"} Responses searched with id less than 30 {"page_size":20} Responses searched with limit of 20 entries | |
name required | string Vrf name to get |
tenant_name required | string Tenant to which this Vrf belongs |
{- "paginationResponse": {
- "remaining_count": 0,
- "first_id": 0,
- "last_id": 0
}, - "id": 1,
- "name": "vrf-red",
- "tenantName": "Tenant-1",
- "static-route-bfd": [
- {
- "mgmt-ip": "10.25.25.100",
- "afi": "ipv4 | ipv6",
- "DestIPAddr": "16.0.0.2 | 3001::2",
- "SrcIPAddr": "16.0.0.2 | 3001::2",
- "interval": 300,
- "minRx": 300,
- "multiplier": 3
}
]
}
This API helps to fetch Vrf errors
name required | string Name of the Vrf to retrieve errors |
tenant_name required | string Tenant to which this Vrf belongs |
{- "name": "VRF-1",
- "error": [
- {
- "mgmt-ip": "string",
- "error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "rollback-error-list": [
- {
- "code": 1000,
- "message": "string"
}
]
}
]
}
This API helps to get all EndpointGroups configured with tenant service
tenant_name | string Tenant to which this EndpointGroup belongs |
object (SearchQuery) {"group_by":"name"} Responses grouped by name {"filter":[{"name":"type","value":"port-profile"}] Responses searched by type="port-profile" {"fuzzy":"20.0.0.0/24"} Responses searched using fuzzy search "20.0.0.0/24" | |
object (PaginationQuery) {"sort_by":"asc|desc"} Responses with id in ascending or descending order {"offset" : "lt:30"} Responses searched with id less than 30 {"page_size":20} Responses searched with limit of 20 entries |
{- "paginationResponse": {
- "remaining_count": 0,
- "first_id": 0,
- "last_id": 0
}, - "epg": [
- {
- "id": 1,
- "name": "EndpointGroup-1",
- "description": "EndpointGroup-Sales",
- "type": "l3-hand-off | extension | port-profile",
- "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": {
- "physical-port": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "port-channel": "po101 | po102",
- "port-channel-states": [
- {
- "po": "po101",
- "po-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"
}
], - "physical-port-states": [
- {
- "port": "10.10.10.1[0/1]",
- "dev-state": "provisioned | provisioning-failed | not-provisioned",
- "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err"
}
]
}, - "port-property": {
- "switchport-mode": "trunk | access | trunk-no-default-native",
- "enable-switchport-native-vlan": false,
- "single-homed-bfd-session-type": "auto | hardware | software",
- "access-list": [
- {
- "name": "ext-mac-permit-any-mirror-acl | ext-ip-permit-any-mirror-acl | ext-ipv6-permit-any-mirror-acl",
- "type": "mac | ip | ipv6",
- "direction": "in | out"
}
]
}, - "network-policy": {
- "ctag-range": "101-102",
- "vrf": "VRF-GREEN",
- "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": 201,
- "network-property": [
- {
- "ctag": 101,
- "is-native-vlan": true,
- "l2-vni": 101,
- "bridge-domain-name": "BD-101-201",
- "ctag-description": "Tenant L3 Hand-off VLAN | Tenant L3 Hand-off BD | Tenant L2 Extended VLAN | Tenant L3 Extended VLAN | Tenant L2 Extended BD | Tenant L3 Extended BD | Tenant L3 Hand-off BR BD | Tenant L3 Hand-off IRB BD | Tenant L3 Extended BR BD | Tenant L3 Extended IRB BD",
- "access-list": [
- {
- "name": "ext-mac-permit-any-mirror-acl | ext-ip-permit-any-mirror-acl | ext-ipv6-permit-any-mirror-acl",
- "type": "mac | ip | ipv6",
- "direction": "in | out"
}
], - "suppress-arp": true,
- "suppress-nd": true,
- "ip-mtu": 9100,
- "icmp": [
- {
- "ip_version": "ipv4/ipv6",
- "redirect": true
}
], - "anycast": {
- "ipv4-address": "20.0.0.0/24",
- "ipv6-address": "2000:1::/64"
}, - "anycast-ip-address": [
- {
- "ip-address": [
- {
- "afi": null,
- "ip-address": null
}
]
}
], - "local-ip-address": [
- {
- "mgmt-ip": "10.10.10.10",
- "ip-address": [
- {
- "afi": null,
- "ip-address": null
}
]
}
], - "dhcp-relay": [
- {
- "mgmt-ip": "10.10.10.10",
- "DhcpRelayServerIp": [
- {
- "afi": null,
- "ip-address": null,
- "vrf": null,
- "interfaceType": null,
- "interfaceName": null
}
], - "DhcpRelayGatewayIp": [
- {
- "afi": null,
- "ip-address": null,
- "interfaceType": null,
- "interfaceName": null
}
]
}
], - "ipv6-nd": {
- "ipv6-nd-mtu": 101,
- "ipv6-nd-managed-config": true,
- "ipv6-nd-other-config": true,
- "ipv6-nd-prefix": [
- {
- "ipv6-address": "2000:1::/64",
- "valid-lifetime": 259200,
- "preferred-lifetime": 259200,
- "no-advertise": true,
- "config-type": "no-autoconfig | no-onlink | off-link"
}
]
}, - "dev-state": "provisioned | provisioning-failed | not-provisioned",
- "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err"
}
]
}
}
]
}
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.
Create EndpointGroup
tenant_name required | string Tenant Name |
Array of objects (EndpointGroup) |
{- "tenant_name": "Tenant-A",
- "endpoint-group-list": [
- {
- "name": "EndpointGroup-1",
- "description": "EndpointGroup-Sales",
- "type": "l3-hand-off | extension | port-profile",
- "port-group": {
- "physical-port": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "port-channel": "po101 | po102"
}, - "port-property": {
- "switchport-mode": "trunk | access | trunk-no-default-native",
- "enable-switchport-native-vlan": false,
- "single-homed-bfd-session-type": "auto | hardware | software",
- "access-list": [
- {
- "name": "ext-mac-permit-any-mirror-acl | ext-ip-permit-any-mirror-acl | ext-ipv6-permit-any-mirror-acl",
- "type": "mac | ip | ipv6",
- "direction": "in | out"
}
]
}, - "network-policy": {
- "ctag-range": "101-102",
- "vrf": "VRF-GREEN",
- "dev-state": "provisioned | provisioning-failed | not-provisioned",
- "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err",
- "l3-vni": 201,
- "network-property": [
- {
- "ctag": 101,
- "is-native-vlan": true,
- "l2-vni": 101,
- "bridge-domain-name": "BD-101-201",
- "ctag-description": "Tenant L3 Hand-off VLAN | Tenant L3 Hand-off BD | Tenant L2 Extended VLAN | Tenant L3 Extended VLAN | Tenant L2 Extended BD | Tenant L3 Extended BD | Tenant L3 Hand-off BR BD | Tenant L3 Hand-off IRB BD | Tenant L3 Extended BR BD | Tenant L3 Extended IRB BD",
- "access-list": [
- {
- "name": "ext-mac-permit-any-mirror-acl | ext-ip-permit-any-mirror-acl | ext-ipv6-permit-any-mirror-acl",
- "type": "mac | ip | ipv6",
- "direction": "in | out"
}
], - "suppress-arp": true,
- "suppress-nd": true,
- "ip-mtu": 9100,
- "icmp": [
- {
- "ip_version": "ipv4/ipv6",
- "redirect": true
}
], - "anycast": {
- "ipv4-address": "20.0.0.0/24",
- "ipv6-address": "2000:1::/64"
}, - "anycast-ip-address": [
- {
- "ip-address": [
- {
- "afi": null,
- "ip-address": null
}
]
}
], - "local-ip-address": [
- {
- "mgmt-ip": "10.10.10.10",
- "ip-address": [
- {
- "afi": null,
- "ip-address": null
}
]
}
], - "dhcp-relay": [
- {
- "mgmt-ip": "10.10.10.10",
- "DhcpRelayServerIp": [
- {
- "afi": null,
- "ip-address": null,
- "vrf": null,
- "interfaceType": null,
- "interfaceName": null
}
], - "DhcpRelayGatewayIp": [
- {
- "afi": null,
- "ip-address": null,
- "interfaceType": null,
- "interfaceName": null
}
]
}
], - "ipv6-nd": {
- "ipv6-nd-mtu": 101,
- "ipv6-nd-managed-config": true,
- "ipv6-nd-other-config": true,
- "ipv6-nd-prefix": [
- {
- "ipv6-address": "2000:1::/64",
- "valid-lifetime": 259200,
- "preferred-lifetime": 259200,
- "no-advertise": true,
- "config-type": "no-autoconfig | no-onlink | off-link"
}
]
}
}
]
}
}
]
}
{- "tenant_name": "Tenant-A",
- "endpoint-group-list": [
- {
- "id": 1,
- "name": "EndpointGroup-1",
- "description": "EndpointGroup-Sales",
- "type": "l3-hand-off | extension | port-profile",
- "port-group": {
- "physical-port": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "port-channel": "po101 | po102",
- "port-channel-states": [
- {
- "po": "po101",
- "po-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"
}
], - "physical-port-states": [
- {
- "port": "10.10.10.1[0/1]",
- "dev-state": "provisioned | provisioning-failed | not-provisioned",
- "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err"
}
]
}, - "port-property": {
- "switchport-mode": "trunk | access | trunk-no-default-native",
- "enable-switchport-native-vlan": false,
- "single-homed-bfd-session-type": "auto | hardware | software",
- "access-list": [
- {
- "name": "ext-mac-permit-any-mirror-acl | ext-ip-permit-any-mirror-acl | ext-ipv6-permit-any-mirror-acl",
- "type": "mac | ip | ipv6",
- "direction": "in | out"
}
]
}, - "network-policy": {
- "ctag-range": "101-102",
- "vrf": "VRF-GREEN",
- "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": 201,
- "network-property": [
- {
- "ctag": 101,
- "is-native-vlan": true,
- "l2-vni": 101,
- "bridge-domain-name": "BD-101-201",
- "ctag-description": "Tenant L3 Hand-off VLAN | Tenant L3 Hand-off BD | Tenant L2 Extended VLAN | Tenant L3 Extended VLAN | Tenant L2 Extended BD | Tenant L3 Extended BD | Tenant L3 Hand-off BR BD | Tenant L3 Hand-off IRB BD | Tenant L3 Extended BR BD | Tenant L3 Extended IRB BD",
- "access-list": [
- {
- "name": "ext-mac-permit-any-mirror-acl | ext-ip-permit-any-mirror-acl | ext-ipv6-permit-any-mirror-acl",
- "type": "mac | ip | ipv6",
- "direction": "in | out"
}
], - "suppress-arp": true,
- "suppress-nd": true,
- "ip-mtu": 9100,
- "icmp": [
- {
- "ip_version": "ipv4/ipv6",
- "redirect": true
}
], - "anycast": {
- "ipv4-address": "20.0.0.0/24",
- "ipv6-address": "2000:1::/64"
}, - "anycast-ip-address": [
- {
- "ip-address": [
- {
- "afi": null,
- "ip-address": null
}
]
}
], - "local-ip-address": [
- {
- "mgmt-ip": "10.10.10.10",
- "ip-address": [
- {
- "afi": null,
- "ip-address": null
}
]
}
], - "dhcp-relay": [
- {
- "mgmt-ip": "10.10.10.10",
- "DhcpRelayServerIp": [
- {
- "afi": null,
- "ip-address": null,
- "vrf": null,
- "interfaceType": null,
- "interfaceName": null
}
], - "DhcpRelayGatewayIp": [
- {
- "afi": null,
- "ip-address": null,
- "interfaceType": null,
- "interfaceName": null
}
]
}
], - "ipv6-nd": {
- "ipv6-nd-mtu": 101,
- "ipv6-nd-managed-config": true,
- "ipv6-nd-other-config": true,
- "ipv6-nd-prefix": [
- {
- "ipv6-address": "2000:1::/64",
- "valid-lifetime": 259200,
- "preferred-lifetime": 259200,
- "no-advertise": true,
- "config-type": "no-autoconfig | no-onlink | off-link"
}
]
}, - "dev-state": "provisioned | provisioning-failed | not-provisioned",
- "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err"
}
]
}, - "error": [
- {
- "mgmt-ip": "string",
- "network-policy-error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "port-property-error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "rollback-error-list": [
- {
- "code": 1000,
- "message": "string"
}
]
}
]
}
]
}
This API helps to 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 EndpointGroup belongs |
{- "id": 1,
- "name": "EndpointGroup-1",
- "description": "EndpointGroup-Sales",
- "type": "l3-hand-off | extension | port-profile",
- "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": {
- "physical-port": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "port-channel": "po101 | po102",
- "port-channel-states": [
- {
- "po": "po101",
- "po-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"
}
], - "physical-port-states": [
- {
- "port": "10.10.10.1[0/1]",
- "dev-state": "provisioned | provisioning-failed | not-provisioned",
- "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err"
}
]
}, - "port-property": {
- "switchport-mode": "trunk | access | trunk-no-default-native",
- "enable-switchport-native-vlan": false,
- "single-homed-bfd-session-type": "auto | hardware | software",
- "access-list": [
- {
- "name": "ext-mac-permit-any-mirror-acl | ext-ip-permit-any-mirror-acl | ext-ipv6-permit-any-mirror-acl",
- "type": "mac | ip | ipv6",
- "direction": "in | out"
}
]
}, - "network-policy": {
- "ctag-range": "101-102",
- "vrf": "VRF-GREEN",
- "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": 201,
- "network-property": [
- {
- "ctag": 101,
- "is-native-vlan": true,
- "l2-vni": 101,
- "bridge-domain-name": "BD-101-201",
- "ctag-description": "Tenant L3 Hand-off VLAN | Tenant L3 Hand-off BD | Tenant L2 Extended VLAN | Tenant L3 Extended VLAN | Tenant L2 Extended BD | Tenant L3 Extended BD | Tenant L3 Hand-off BR BD | Tenant L3 Hand-off IRB BD | Tenant L3 Extended BR BD | Tenant L3 Extended IRB BD",
- "access-list": [
- {
- "name": "ext-mac-permit-any-mirror-acl | ext-ip-permit-any-mirror-acl | ext-ipv6-permit-any-mirror-acl",
- "type": "mac | ip | ipv6",
- "direction": "in | out"
}
], - "suppress-arp": true,
- "suppress-nd": true,
- "ip-mtu": 9100,
- "icmp": [
- {
- "ip_version": "ipv4/ipv6",
- "redirect": true
}
], - "anycast": {
- "ipv4-address": "20.0.0.0/24",
- "ipv6-address": "2000:1::/64"
}, - "anycast-ip-address": [
- {
- "ip-address": [
- {
- "afi": "ipv4",
- "ip-address": "20.0.0.0/24 | 2001:1::/64"
}
]
}
], - "local-ip-address": [
- {
- "mgmt-ip": "10.10.10.10",
- "ip-address": [
- {
- "afi": "ipv4",
- "ip-address": "20.0.0.0/24 | 2001:1::/64"
}
]
}
], - "dhcp-relay": [
- {
- "mgmt-ip": "10.10.10.10",
- "DhcpRelayServerIp": [
- {
- "afi": "ipv4 | ipv6",
- "ip-address": "10.10.10.1 | 2001::1",
- "vrf": "vrf1",
- "interfaceType": "eth | port-channel",
- "interfaceName": "0/21 | po1"
}
], - "DhcpRelayGatewayIp": [
- {
- "afi": "ipv4 | ipv6",
- "ip-address": "10.10.10.1 | 3::3",
- "interfaceType": "eth",
- "interfaceName": "0/21 | 8096"
}
]
}
], - "ipv6-nd": {
- "ipv6-nd-mtu": 101,
- "ipv6-nd-managed-config": true,
- "ipv6-nd-other-config": true,
- "ipv6-nd-prefix": [
- {
- "ipv6-address": "2000:1::/64",
- "valid-lifetime": 259200,
- "preferred-lifetime": 259200,
- "no-advertise": true,
- "config-type": "no-autoconfig | no-onlink | off-link"
}
]
}, - "dev-state": "provisioned | provisioning-failed | not-provisioned",
- "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err"
}
]
}
}
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.
Delete end point group.
tenant_name required | string Tenant Name |
force | boolean Set to true if EndpointGroup delete will require deconfiguring networks also |
required | Array of objects (EndpointGroupName) |
{- "tenant_name": "Tenant-A",
- "force": true,
- "endpoint-group-list": [
- {
- "name": "EPG-1"
}
]
}
{- "tenant_name": "Tenant-A",
- "force": true,
- "endpoint-group-list": [
- {
- "name": "EPG-1"
}
]
}
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.
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 |
Array of objects (EndpointGroupPortGroup) |
{- "tenant_name": "Tenant-A",
- "operation": "port-group-add | port-group-delete",
- "endpoint-group-list": [
- {
- "name": "EndpointGroup-1",
- "port-group": {
- "physical-port": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "port-channel": "po101 | po102"
}, - "port-property": {
- "switchport-mode": "trunk | access | trunk-no-default-native",
- "enable-switchport-native-vlan": false,
- "single-homed-bfd-session-type": "auto | hardware | software",
- "access-list": [
- {
- "name": "ext-mac-permit-any-mirror-acl | ext-ip-permit-any-mirror-acl | ext-ipv6-permit-any-mirror-acl",
- "type": "mac | ip | ipv6",
- "direction": "in | out"
}
]
}
}
]
}
{- "epg": [
- {
- "id": 1,
- "name": "EndpointGroup-1",
- "description": "EndpointGroup-Sales",
- "type": "l3-hand-off | extension | port-profile",
- "port-group": {
- "physical-port": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "port-channel": "po101 | po102",
- "port-channel-states": [
- {
- "po": "po101",
- "po-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"
}
], - "physical-port-states": [
- {
- "port": "10.10.10.1[0/1]",
- "dev-state": "provisioned | provisioning-failed | not-provisioned",
- "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err"
}
]
}, - "port-property": {
- "switchport-mode": "trunk | access | trunk-no-default-native",
- "enable-switchport-native-vlan": false,
- "single-homed-bfd-session-type": "auto | hardware | software",
- "access-list": [
- {
- "name": "ext-mac-permit-any-mirror-acl | ext-ip-permit-any-mirror-acl | ext-ipv6-permit-any-mirror-acl",
- "type": "mac | ip | ipv6",
- "direction": "in | out"
}
]
}, - "network-policy": {
- "ctag-range": "101-102",
- "vrf": "VRF-GREEN",
- "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": 201,
- "network-property": [
- {
- "ctag": 101,
- "is-native-vlan": true,
- "l2-vni": 101,
- "bridge-domain-name": "BD-101-201",
- "ctag-description": "Tenant L3 Hand-off VLAN | Tenant L3 Hand-off BD | Tenant L2 Extended VLAN | Tenant L3 Extended VLAN | Tenant L2 Extended BD | Tenant L3 Extended BD | Tenant L3 Hand-off BR BD | Tenant L3 Hand-off IRB BD | Tenant L3 Extended BR BD | Tenant L3 Extended IRB BD",
- "access-list": [
- {
- "name": "ext-mac-permit-any-mirror-acl | ext-ip-permit-any-mirror-acl | ext-ipv6-permit-any-mirror-acl",
- "type": "mac | ip | ipv6",
- "direction": "in | out"
}
], - "suppress-arp": true,
- "suppress-nd": true,
- "ip-mtu": 9100,
- "icmp": [
- {
- "ip_version": "ipv4/ipv6",
- "redirect": true
}
], - "anycast": {
- "ipv4-address": "20.0.0.0/24",
- "ipv6-address": "2000:1::/64"
}, - "anycast-ip-address": [
- {
- "ip-address": [
- {
- "afi": null,
- "ip-address": null
}
]
}
], - "local-ip-address": [
- {
- "mgmt-ip": "10.10.10.10",
- "ip-address": [
- {
- "afi": null,
- "ip-address": null
}
]
}
], - "dhcp-relay": [
- {
- "mgmt-ip": "10.10.10.10",
- "DhcpRelayServerIp": [
- {
- "afi": null,
- "ip-address": null,
- "vrf": null,
- "interfaceType": null,
- "interfaceName": null
}
], - "DhcpRelayGatewayIp": [
- {
- "afi": null,
- "ip-address": null,
- "interfaceType": null,
- "interfaceName": null
}
]
}
], - "ipv6-nd": {
- "ipv6-nd-mtu": 101,
- "ipv6-nd-managed-config": true,
- "ipv6-nd-other-config": true,
- "ipv6-nd-prefix": [
- {
- "ipv6-address": "2000:1::/64",
- "valid-lifetime": 259200,
- "preferred-lifetime": 259200,
- "no-advertise": true,
- "config-type": "no-autoconfig | no-onlink | off-link"
}
]
}, - "dev-state": "provisioned | provisioning-failed | not-provisioned",
- "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err"
}
]
}, - "error": [
- {
- "mgmt-ip": "string",
- "network-policy-error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "port-property-error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "rollback-error-list": [
- {
- "code": 1000,
- "message": "string"
}
]
}
]
}
]
}
This API helps to add, delete and update port property belonging to the EndpointGroups.
Update the EndpointGroup Port Property
tenant_name required | string Tenant Name |
operation required | string Enum: "port-property-add" "port-property-delete" "port-property-update" Add, delete or update property of port |
Array of objects (EndpointGroupUpdatePortProperty) |
{- "tenant_name": "Tenant-A",
- "operation": "port-property-add | port-property-delete | port-property-update",
- "endpoint-group-list": [
- {
- "name": "EndpointGroup-1",
- "port-property": {
- "switchport-mode": "trunk | access | trunk-no-default-native",
- "enable-switchport-native-vlan": false,
- "single-homed-bfd-session-type": "auto | hardware | software",
- "access-list": [
- {
- "name": "ext-mac-permit-any-mirror-acl | ext-ip-permit-any-mirror-acl | ext-ipv6-permit-any-mirror-acl",
- "type": "mac | ip | ipv6",
- "direction": "in | out"
}
]
}
}
]
}
{- "epg": [
- {
- "id": 1,
- "name": "EndpointGroup-1",
- "description": "EndpointGroup-Sales",
- "type": "l3-hand-off | extension | port-profile",
- "port-group": {
- "physical-port": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "port-channel": "po101 | po102",
- "port-channel-states": [
- {
- "po": "po101",
- "po-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"
}
], - "physical-port-states": [
- {
- "port": "10.10.10.1[0/1]",
- "dev-state": "provisioned | provisioning-failed | not-provisioned",
- "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err"
}
]
}, - "port-property": {
- "switchport-mode": "trunk | access | trunk-no-default-native",
- "enable-switchport-native-vlan": false,
- "single-homed-bfd-session-type": "auto | hardware | software",
- "access-list": [
- {
- "name": "ext-mac-permit-any-mirror-acl | ext-ip-permit-any-mirror-acl | ext-ipv6-permit-any-mirror-acl",
- "type": "mac | ip | ipv6",
- "direction": "in | out"
}
]
}, - "network-policy": {
- "ctag-range": "101-102",
- "vrf": "VRF-GREEN",
- "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": 201,
- "network-property": [
- {
- "ctag": 101,
- "is-native-vlan": true,
- "l2-vni": 101,
- "bridge-domain-name": "BD-101-201",
- "ctag-description": "Tenant L3 Hand-off VLAN | Tenant L3 Hand-off BD | Tenant L2 Extended VLAN | Tenant L3 Extended VLAN | Tenant L2 Extended BD | Tenant L3 Extended BD | Tenant L3 Hand-off BR BD | Tenant L3 Hand-off IRB BD | Tenant L3 Extended BR BD | Tenant L3 Extended IRB BD",
- "access-list": [
- {
- "name": "ext-mac-permit-any-mirror-acl | ext-ip-permit-any-mirror-acl | ext-ipv6-permit-any-mirror-acl",
- "type": "mac | ip | ipv6",
- "direction": "in | out"
}
], - "suppress-arp": true,
- "suppress-nd": true,
- "ip-mtu": 9100,
- "icmp": [
- {
- "ip_version": "ipv4/ipv6",
- "redirect": true
}
], - "anycast": {
- "ipv4-address": "20.0.0.0/24",
- "ipv6-address": "2000:1::/64"
}, - "anycast-ip-address": [
- {
- "ip-address": [
- {
- "afi": null,
- "ip-address": null
}
]
}
], - "local-ip-address": [
- {
- "mgmt-ip": "10.10.10.10",
- "ip-address": [
- {
- "afi": null,
- "ip-address": null
}
]
}
], - "dhcp-relay": [
- {
- "mgmt-ip": "10.10.10.10",
- "DhcpRelayServerIp": [
- {
- "afi": null,
- "ip-address": null,
- "vrf": null,
- "interfaceType": null,
- "interfaceName": null
}
], - "DhcpRelayGatewayIp": [
- {
- "afi": null,
- "ip-address": null,
- "interfaceType": null,
- "interfaceName": null
}
]
}
], - "ipv6-nd": {
- "ipv6-nd-mtu": 101,
- "ipv6-nd-managed-config": true,
- "ipv6-nd-other-config": true,
- "ipv6-nd-prefix": [
- {
- "ipv6-address": "2000:1::/64",
- "valid-lifetime": 259200,
- "preferred-lifetime": 259200,
- "no-advertise": true,
- "config-type": "no-autoconfig | no-onlink | off-link"
}
]
}, - "dev-state": "provisioned | provisioning-failed | not-provisioned",
- "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err"
}
]
}, - "error": [
- {
- "mgmt-ip": "string",
- "network-policy-error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "port-property-error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "rollback-error-list": [
- {
- "code": 1000,
- "message": "string"
}
]
}
]
}
]
}
This API helps in updating networks belonging to EndpointGroups. Below operations are supported -
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 |
Array of objects (EndpointGroupNetworkPolicy) |
{- "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",
- "dev-state": "provisioned | provisioning-failed | not-provisioned",
- "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err",
- "l3-vni": 201,
- "network-property": [
- {
- "ctag": 101,
- "is-native-vlan": true,
- "l2-vni": 101,
- "bridge-domain-name": "BD-101-201",
- "ctag-description": "Tenant L3 Hand-off VLAN | Tenant L3 Hand-off BD | Tenant L2 Extended VLAN | Tenant L3 Extended VLAN | Tenant L2 Extended BD | Tenant L3 Extended BD | Tenant L3 Hand-off BR BD | Tenant L3 Hand-off IRB BD | Tenant L3 Extended BR BD | Tenant L3 Extended IRB BD",
- "access-list": [
- {
- "name": "ext-mac-permit-any-mirror-acl | ext-ip-permit-any-mirror-acl | ext-ipv6-permit-any-mirror-acl",
- "type": "mac | ip | ipv6",
- "direction": "in | out"
}
], - "suppress-arp": true,
- "suppress-nd": true,
- "ip-mtu": 9100,
- "icmp": [
- {
- "ip_version": "ipv4/ipv6",
- "redirect": true
}
], - "anycast": {
- "ipv4-address": "20.0.0.0/24",
- "ipv6-address": "2000:1::/64"
}, - "anycast-ip-address": [
- {
- "ip-address": [
- {
- "afi": null,
- "ip-address": null
}
]
}
], - "local-ip-address": [
- {
- "mgmt-ip": "10.10.10.10",
- "ip-address": [
- {
- "afi": null,
- "ip-address": null
}
]
}
], - "dhcp-relay": [
- {
- "mgmt-ip": "10.10.10.10",
- "DhcpRelayServerIp": [
- {
- "afi": null,
- "ip-address": null,
- "vrf": null,
- "interfaceType": null,
- "interfaceName": null
}
], - "DhcpRelayGatewayIp": [
- {
- "afi": null,
- "ip-address": null,
- "interfaceType": null,
- "interfaceName": null
}
]
}
], - "ipv6-nd": {
- "ipv6-nd-mtu": 101,
- "ipv6-nd-managed-config": true,
- "ipv6-nd-other-config": true,
- "ipv6-nd-prefix": [
- {
- "ipv6-address": "2000:1::/64",
- "valid-lifetime": 259200,
- "preferred-lifetime": 259200,
- "no-advertise": true,
- "config-type": "no-autoconfig | no-onlink | off-link"
}
]
}
}
]
}
}
]
}
{- "id": 1,
- "name": "EndpointGroup-1",
- "description": "EndpointGroup-Sales",
- "type": "l3-hand-off | extension | port-profile",
- "port-group": {
- "physical-port": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "port-channel": "po101 | po102",
- "port-channel-states": [
- {
- "po": "po101",
- "po-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"
}
], - "physical-port-states": [
- {
- "port": "10.10.10.1[0/1]",
- "dev-state": "provisioned | provisioning-failed | not-provisioned",
- "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err"
}
]
}, - "port-property": {
- "switchport-mode": "trunk | access | trunk-no-default-native",
- "enable-switchport-native-vlan": false,
- "single-homed-bfd-session-type": "auto | hardware | software",
- "access-list": [
- {
- "name": "ext-mac-permit-any-mirror-acl | ext-ip-permit-any-mirror-acl | ext-ipv6-permit-any-mirror-acl",
- "type": "mac | ip | ipv6",
- "direction": "in | out"
}
]
}, - "network-policy": {
- "ctag-range": "101-102",
- "vrf": "VRF-GREEN",
- "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": 201,
- "network-property": [
- {
- "ctag": 101,
- "is-native-vlan": true,
- "l2-vni": 101,
- "bridge-domain-name": "BD-101-201",
- "ctag-description": "Tenant L3 Hand-off VLAN | Tenant L3 Hand-off BD | Tenant L2 Extended VLAN | Tenant L3 Extended VLAN | Tenant L2 Extended BD | Tenant L3 Extended BD | Tenant L3 Hand-off BR BD | Tenant L3 Hand-off IRB BD | Tenant L3 Extended BR BD | Tenant L3 Extended IRB BD",
- "access-list": [
- {
- "name": "ext-mac-permit-any-mirror-acl | ext-ip-permit-any-mirror-acl | ext-ipv6-permit-any-mirror-acl",
- "type": "mac | ip | ipv6",
- "direction": "in | out"
}
], - "suppress-arp": true,
- "suppress-nd": true,
- "ip-mtu": 9100,
- "icmp": [
- {
- "ip_version": "ipv4/ipv6",
- "redirect": true
}
], - "anycast": {
- "ipv4-address": "20.0.0.0/24",
- "ipv6-address": "2000:1::/64"
}, - "anycast-ip-address": [
- {
- "ip-address": [
- {
- "afi": "ipv4",
- "ip-address": "20.0.0.0/24 | 2001:1::/64"
}
]
}
], - "local-ip-address": [
- {
- "mgmt-ip": "10.10.10.10",
- "ip-address": [
- {
- "afi": "ipv4",
- "ip-address": "20.0.0.0/24 | 2001:1::/64"
}
]
}
], - "dhcp-relay": [
- {
- "mgmt-ip": "10.10.10.10",
- "DhcpRelayServerIp": [
- {
- "afi": "ipv4 | ipv6",
- "ip-address": "10.10.10.1 | 2001::1",
- "vrf": "vrf1",
- "interfaceType": "eth | port-channel",
- "interfaceName": "0/21 | po1"
}
], - "DhcpRelayGatewayIp": [
- {
- "afi": "ipv4 | ipv6",
- "ip-address": "10.10.10.1 | 3::3",
- "interfaceType": "eth",
- "interfaceName": "0/21 | 8096"
}
]
}
], - "ipv6-nd": {
- "ipv6-nd-mtu": 101,
- "ipv6-nd-managed-config": true,
- "ipv6-nd-other-config": true,
- "ipv6-nd-prefix": [
- {
- "ipv6-address": "2000:1::/64",
- "valid-lifetime": 259200,
- "preferred-lifetime": 259200,
- "no-advertise": true,
- "config-type": "no-autoconfig | no-onlink | off-link"
}
]
}, - "dev-state": "provisioned | provisioning-failed | not-provisioned",
- "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err"
}
]
}, - "error": [
- {
- "mgmt-ip": "string",
- "network-policy-error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "port-property-error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "rollback-error-list": [
- {
- "code": 1000,
- "message": "string"
}
]
}
]
}
This API helps in updating properties of the networks belonging to the EndpointGroups. Below operation are supported -
Update the EndpointGroup NetworkProperty
tenant_name | string Tenant Name |
operation | string Enum: "local-ip-add" "local-ip-delete" "anycast-ip-add" "anycast-ip-delete" "dhcp-relay-address-ip-add" "dhcp-relay-address-ip-delete" "dhcp-relay-gateway-ip-add" "dhcp-relay-gateway-ip-delete" Add or delete local-ip and/or anycast-ip and/or dhcp-relay-address-ip and/or dhcp-relay-gateway-ip |
Array of objects (EndpointGroupNetworkProperty) |
{- "tenant_name": "Tenant-A",
- "operation": "local-ip-add | local-ip-delete | anycast-ip-add | anycast-ip-delete | dhcp-relay-address-ip-add | dhcp-relay-address-ip-delete | dhcp-relay-gateway-ip-add | dhcp-relay-gateway-ip-delete",
- "endpoint-group-list": [
- {
- "name": "EndpointGroup-1",
- "network-property": [
- {
- "ctag": 101,
- "suppress-arp": true,
- "suppress-nd": true,
- "ip-mtu": 9100,
- "anycast": {
- "ipv4-address": "20.0.0.0/24",
- "ipv6-address": "2000:1::/64"
}, - "anycast-ip-address": [
- {
- "ip-address": [
- {
- "afi": "ipv4",
- "ip-address": "20.0.0.0/24 | 2001:1::/64"
}
]
}
], - "local-ip-address": [
- {
- "mgmt-ip": "10.10.10.10",
- "ip-address": [
- {
- "afi": "ipv4",
- "ip-address": "20.0.0.0/24 | 2001:1::/64"
}
]
}
], - "dhcp-relay": [
- {
- "mgmt-ip": "10.10.10.10",
- "DhcpRelayServerIp": [
- {
- "afi": "ipv4 | ipv6",
- "ip-address": "10.10.10.1 | 2001::1",
- "vrf": "vrf1",
- "interfaceType": "eth | port-channel",
- "interfaceName": "0/21 | po1"
}
], - "DhcpRelayGatewayIp": [
- {
- "afi": "ipv4 | ipv6",
- "ip-address": "10.10.10.1 | 3::3",
- "interfaceType": "eth",
- "interfaceName": "0/21 | 8096"
}
]
}
], - "ipv6-nd": {
- "ipv6-nd-mtu": 101,
- "ipv6-nd-managed-config": true,
- "ipv6-nd-other-config": true,
- "ipv6-nd-prefix": [
- {
- "ipv6-address": "2000:1::/64",
- "valid-lifetime": 259200,
- "preferred-lifetime": 259200,
- "no-advertise": true,
- "config-type": "no-autoconfig | no-onlink | off-link"
}
]
}
}
]
}
]
}
{- "id": 1,
- "name": "EndpointGroup-1",
- "description": "EndpointGroup-Sales",
- "type": "l3-hand-off | extension | port-profile",
- "port-group": {
- "physical-port": [
- {
- "mgmt-ip": "10.25.25.100",
- "port": [
- {
- "int-type": "ethernet",
- "name": "0/1"
}
]
}
], - "port-channel": "po101 | po102",
- "port-channel-states": [
- {
- "po": "po101",
- "po-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"
}
], - "physical-port-states": [
- {
- "port": "10.10.10.1[0/1]",
- "dev-state": "provisioned | provisioning-failed | not-provisioned",
- "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err"
}
]
}, - "port-property": {
- "switchport-mode": "trunk | access | trunk-no-default-native",
- "enable-switchport-native-vlan": false,
- "single-homed-bfd-session-type": "auto | hardware | software",
- "access-list": [
- {
- "name": "ext-mac-permit-any-mirror-acl | ext-ip-permit-any-mirror-acl | ext-ipv6-permit-any-mirror-acl",
- "type": "mac | ip | ipv6",
- "direction": "in | out"
}
]
}, - "network-policy": {
- "ctag-range": "101-102",
- "vrf": "VRF-GREEN",
- "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": 201,
- "network-property": [
- {
- "ctag": 101,
- "is-native-vlan": true,
- "l2-vni": 101,
- "bridge-domain-name": "BD-101-201",
- "ctag-description": "Tenant L3 Hand-off VLAN | Tenant L3 Hand-off BD | Tenant L2 Extended VLAN | Tenant L3 Extended VLAN | Tenant L2 Extended BD | Tenant L3 Extended BD | Tenant L3 Hand-off BR BD | Tenant L3 Hand-off IRB BD | Tenant L3 Extended BR BD | Tenant L3 Extended IRB BD",
- "access-list": [
- {
- "name": "ext-mac-permit-any-mirror-acl | ext-ip-permit-any-mirror-acl | ext-ipv6-permit-any-mirror-acl",
- "type": "mac | ip | ipv6",
- "direction": "in | out"
}
], - "suppress-arp": true,
- "suppress-nd": true,
- "ip-mtu": 9100,
- "icmp": [
- {
- "ip_version": "ipv4/ipv6",
- "redirect": true
}
], - "anycast": {
- "ipv4-address": "20.0.0.0/24",
- "ipv6-address": "2000:1::/64"
}, - "anycast-ip-address": [
- {
- "ip-address": [
- {
- "afi": "ipv4",
- "ip-address": "20.0.0.0/24 | 2001:1::/64"
}
]
}
], - "local-ip-address": [
- {
- "mgmt-ip": "10.10.10.10",
- "ip-address": [
- {
- "afi": "ipv4",
- "ip-address": "20.0.0.0/24 | 2001:1::/64"
}
]
}
], - "dhcp-relay": [
- {
- "mgmt-ip": "10.10.10.10",
- "DhcpRelayServerIp": [
- {
- "afi": "ipv4 | ipv6",
- "ip-address": "10.10.10.1 | 2001::1",
- "vrf": "vrf1",
- "interfaceType": "eth | port-channel",
- "interfaceName": "0/21 | po1"
}
], - "DhcpRelayGatewayIp": [
- {
- "afi": "ipv4 | ipv6",
- "ip-address": "10.10.10.1 | 3::3",
- "interfaceType": "eth",
- "interfaceName": "0/21 | 8096"
}
]
}
], - "ipv6-nd": {
- "ipv6-nd-mtu": 101,
- "ipv6-nd-managed-config": true,
- "ipv6-nd-other-config": true,
- "ipv6-nd-prefix": [
- {
- "ipv6-address": "2000:1::/64",
- "valid-lifetime": 259200,
- "preferred-lifetime": 259200,
- "no-advertise": true,
- "config-type": "no-autoconfig | no-onlink | off-link"
}
]
}, - "dev-state": "provisioned | provisioning-failed | not-provisioned",
- "app-state": "cfg-ready | cfg-in-sync | cfg-refreshed | cfg-refresh-err"
}
]
}, - "error": [
- {
- "mgmt-ip": "string",
- "network-policy-error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "port-property-error-list": [
- {
- "code": 1000,
- "message": "string"
}
], - "rollback-error-list": [
- {
- "code": 1000,
- "message": "string"
}
]
}
]
}
This API helps to add, delete and update network property belonging to the EndpointGroups.
Update EndpointGroup Network Policy Network Property
tenant_name required | string Tenant Name |
operation required | string Enum: "network-property-add" "network-property-delete" "network-property-update" Add, delete or update property of network |
Array of objects (EndpointGroupUpdateNetworkProperty) |
{- "tenant_name": "Tenant-A",
- "operation": "network-property-add | network-property-delete | network-property-update",
- "endpoint-group-list": [
- {
- "name": "EndpointGroup-1",
- "network-property": [
- {
- "ctag": 101,
- "is-native-vlan": true,
- "l2-vni": 101,
- "bridge-domain-name": "BD-101-201",
- "ctag-description": "Tenant L3 Hand-off VLAN | Tenant L3 Hand-off BD | Tenant L2 Extended VLAN | Tenant L3 Extended VLAN | Tenant L2 Extended BD | Tenant L3 Extended BD | Tenant L3 Hand-off BR BD | Tenant L3 Hand-off IRB BD | Tenant L3 Extended BR BD | Tenant L3 Extended IRB BD",
- "access-list": [
- {
- "name": "ext-mac-permit-any-mirror-acl | ext-ip-permit-any-mirror-acl | ext-ipv6-permit-any-mirror-acl",
- "type": "mac | ip | ipv6",
- "direction": "in | out"
}
], - "suppress-arp": true,
- "suppress-nd": true,
- "ip-mtu": 9100,
- "icmp": [
- {
- "ip_version": "ipv4/ipv6",
- "redirect": true
}
], - "anycast": {
- "ipv4-address": "20.0.0.0/24",
- "ipv6-address": "2000:1::/64"
}, - "anycast-ip-address": [
- {
- "ip-address": [
- {
- "afi": "ipv4",
- "ip-address": "20.0.0.0/24 | 2001:1::/64"
}
]
}
], - "local-ip-address": [
- {
- "mgmt-ip": "10.10.10.10",
- "ip-address": [
- {