# Network services APIs
> NOTE: Please ping me when you read it. :D
[TOC]
## Services API
### Get services
- Path
```POST /api/services/services ```
- Header
```
Cookie: JSESSIONID=...; accessToken=...
Content-Type: application/json
```
- Body
```
{
"reqData": {
<svc-type>: [<tunnelId>]
}
}
```
- `<svc-type>`: `spb`, `vxlan`, `l2gre`.
- `<tunnelId>`: is `isid`/`vnid`/`vpnid` if `svc-type` is `spb`/`vxlan`/`l2gre` respectively.
> Note: `vxlan` and `l2gre` are not supported now.
- Examples:
- Get all `spb` services
```
{
"reqData": {
"spb": []
}
}
```
- Get all `spb` services having `isid` = `10` or `20`
```
{
"reqData": {
"spb": [10, 20]
}
}
```
### Delete services
- Path:
``` DELETE /api/services/services```
- Header
```
Cookie: JSESSIONID=...; accessToken=...
Content-Type: application/json
```
- Body
```
{
"reqData": {
<svc-type>: [
{
"deviceId": <device-id>,
"tunnelIds": [<tunnelId>]
}
]
}
}
```
- `<svc-type>`: `spb`, `vxlan`, `l2gre`
- `<device-id>`: the id of device in the database. Ex: `5fbc903ae4b03d5e05617538`
- `<tunnelId>`: is `isid`/`vnid`/`vpnid` if `svc-type` is `spb`/`vxlan`/`l2gre` respectively.
- Examples:
- Detele all `spb` services of the device `5fbc903ae4b03d5e05617538`
```
{
"reqData": {
"spb": [
{
"deviceId": "5fbc903ae4b03d5e05617538",
"tunnelIds": []
}
]
}
}
```
- Delete some `spb` services of the device `5fbc903ae4b03d5e05617538`
```
{
"reqData": {
"spb": [
{
"deviceId": "5fbc903ae4b03d5e05617538",
"tunnelIds": [10, 20]
}
]
}
}
```
- Delete `spb` services of multi devices.
```
{
"reqData": {
"spb": [
{
"deviceId": "5fbc903ae4b03d5e05617538",
"tunnelIds": []
},
{
"deviceId": "5fb77442e4b07b18ef0d88dd",
"tunnelIds": []
}
]
}
}
```
---
## Services Profile API
### Create service
- Path
```POST /api/services/service-profile ```
- Header
```
Cookie: JSESSIONID=...; accessToken=...
Content-Type: application/json
```
- Body
```
{
"svcInfo": {
"svcId": 4000,
"svcType": "spb",
"tunnelId": 4000,
"bVlan": 4001,
"vlanTranslation": "YES",
"adminState": "DOWN",
"mCastMode": "HEADEND",
"description": "testing from postman 111111",
"stats": "YES",
"l3VpnMtu": 1514,
"removeIngressTag": "YES"
},
"deviceIds": {
"added": [
{"deviceId": "5f7592dbe4b0d79d3006cba4"}
]
},
"sapInfos": [
{
"description": "testing from postman",
"outerInnerVlan": "40.20",
"adminState": "UP",
"stats": "YES",
"priority": "Trusted",
"priorityNumber": 0
}
],
"sapPorts": {
"added": [
{
"deviceId": "5f7592dbe4b0d79d3006cba4",
"ports": [
{"portId": "1006"}
]
}
]
},
"accessInterfaceInfo": {
"vlanTranslation": "YES",
"l2Profile": "def-access-profile",
"description": "testing from postman"
},
"accessRoleMapping": {
"accessRoleProfileId": "5f8d55e70cf20be1e28cd995"
},
"unpPorts": {
"added": [
{
"deviceId": "5f7592dbe4b0d79d3006cba4",
"ports": [
{"portId": "1016"}
]
}
]
},
"unpAccessAuthInfo": {
"accessAuthProfileId": "5f8813e90cf20098444230d6"
}
}
```
### Edit single service or Edit multiple service with same tunnelId
- Path:
``` PUT /api/services/services```
- Header
```
Cookie: JSESSIONID=...; accessToken=...
Content-Type: application/json
```
- Body
```
{
"svcInfo": {
"svcId": 4000,
"svcType": "spb",
"tunnelId": 4000,
"bVlan": 4001,
"vlanTranslation": "YES",
"adminState": "DOWN",
"mCastMode": "HEADEND",
"description": "testing from postman abc",
"stats": "YES",
"l3VpnMtu": 1514,
"removeIngressTag": "YES"
},
"deviceIds": {
"added": [
{"deviceId": "5f7592dbe4b0d79d3006cba4"}
],
"selected": [
{"deviceId": "5fb77442e4b07b18ef0d88dd"}
]
},
"sapInfos": [
{
"description": "testing from postman",
"outerInnerVlan": "40.10",
"adminState": "UP",
"stats": "YES",
"priority": "Trusted",
"priorityNumber": 0
}
],
"sapPorts": {
"selected": [
{
"deviceId": "5f7592dbe4b0d79d3006cba4",
"ports": [
{"portId": "1006", "outerInnerVlan": "40.20"}
]
}
],
"added": [
{
"deviceId": "5f7592dbe4b0d79d3006cba4",
"ports": [
{"portId": "1006"}
]
}
],
"removed": [
{
"deviceId": "5f7592dbe4b0d79d3006cba4",
"ports": [
{"portId": "1006", "outerInnerVlan": "40.20"}
]
}
]
},
"accessInterfaceInfo": {
"vlanTranslation": "YES",
"l2Profile": "l2-switch",
"description": "testing from postman"
},
"unpPorts": {
"added": [
{
"deviceId": "device-id-3",
"ports": [
{"portId": "1003"},
{"portId": "1004"}
]
}
]
}
}
```
### Edit multiple service with different tunnelId
- Path:
``` PUT /api/services/services```
- Header
```
Cookie: JSESSIONID=...; accessToken=...
Content-Type: application/json
```
- Body
```
{
"svcInfo": {
"svcId": 4200,
"svcType": "spb",
"tunnelId": 4200,
"bVlan": 4001,
"vlanTranslation": "YES",
"adminState": "DOWN",
"mCastMode": "HEADEND",
"description": "testing from postman 33333",
"stats": "YES",
"l3VpnMtu": 1700,
"removeIngressTag": "YES"
},
"deviceIds":{
"removed": [
{"deviceId": "5f75866be4b0d79d3006be3c"},
{ "deviceId": "5f7592cde4b0d79d3006ca9e", "tunnelIds": [4100, 4200]}
]
"selected":[
{ "deviceId": "5f7592dbe4b0d79d3006cba4", "tunnelIds": [4100, 4200]},
{ "deviceId": "5f75866be4b0d79d3006be3c"}
],
"added": [
{"deviceId": "5f75866be4b0d79d3006be3c"}
]
},
"sapPorts": {
"selected": [
{
"deviceId": "5f7592dbe4b0d79d3006cba4",
"tunnelId": 4100,
"ports": [
{"portId": "1006", "outerInnerVlan": "40.20"}
]
}
],
"added": [
{
"deviceId": "5f7592dbe4b0d79d3006cba4",
"ports": [
{"portId": "1006"}
]
}
],
"removed": [
{
"deviceId": "5f7592dbe4b0d79d3006cba4",
"tunnelId": 4200,
"ports": [
{"portId": "1006", "outerInnerVlan": "40.20"}
]
}
]
},
"patchSvcInfo": {
"description": "patched description 2"
}
}
```