Network Services Schemas Reference
Complete schema documentation for network services extracted from mtsDeviceAPI source code.
Source: /home/jreiss/Workspace/aep/mtsDeviceAPI/json/strict/
Table of Contents
SNMP
Simple Network Management Protocol configuration.
Source: snmp.schema.json
Endpoints:
GET /api?fields=snmp- Get SNMP configurationPUT /api/snmp- Update SNMP configuration
Schema
{
"__v": 2,
"server": {
"enabled": false,
"sysName": "",
"sysLocation": "",
"sysContact": "",
"users": [],
"allowedAddresses": []
},
"traps": {
"enabled": false,
"engineId": "0x0102030405",
"engineIdDefault": "0x...",
"receivers": []
}
}
Server Properties
| Property | Type | Required | Constraints | Description |
|---|---|---|---|---|
server.enabled |
boolean | Yes | - | Enable SNMP server |
server.sysName |
string | Yes | max 255, printable ASCII | SNMP sysName object |
server.sysLocation |
string | Yes | max 255, printable ASCII | SNMP sysLocation object |
server.sysContact |
string | Yes | max 255, printable ASCII | SNMP sysContact object |
server.users |
array | Yes | max 5 items | SNMP users |
server.allowedAddresses |
array | Yes | - | Allowed IP addresses (v1/v2c) |
SNMP User Object
{
"enabled": true,
"label": "user1",
"version": "v3",
"username": "admin",
"authProto": "SHA1",
"authPass": "authpassword",
"privProto": "AES-128",
"privPass": "privpassword",
"community": ""
}
| Property | Type | Constraints | Description |
|---|---|---|---|
enabled |
boolean | - | Enable user |
label |
string | 1-31 chars | Unique configuration name |
version |
string | v1, v2c, v1v2c, v3 |
SNMP version |
username |
string | max 250, min 5 for v3 | SNMPv3 username |
authProto |
string | ``, MD5, SHA1 |
Authentication protocol |
authPass |
string | max 250, min 8 if auth enabled, no " |
Auth password |
privProto |
string | ``, DES, AES-128 |
Encryption protocol |
privPass |
string | max 250, 8-128 if priv enabled, no " |
Encryption password |
community |
string | max 250, 1-128 if v1/v2c, no " |
Community string |
Traps Configuration
| Property | Type | Required | Constraints | Description |
|---|---|---|---|---|
traps.enabled |
boolean | Yes | - | Enable SNMP traps |
traps.engineId |
string | Yes | hex, 5-32 octets when enabled | Authoritative Engine ID |
traps.engineIdDefault |
string | Yes | - | Default Engine ID (read-only) |
traps.receivers |
array | Yes | max 5 | Trap destinations |
Trap Receiver Object
{
"enabled": true,
"label": "trap1",
"address": "192.168.2.100",
"version": "v3",
"username": "trapuser",
"authProto": "SHA1",
"authPass": "authpassword",
"privProto": "AES-128",
"privPass": "privpassword",
"community": ""
}
Example - Configure SNMPv3
curl -X PUT http://192.168.2.1/api/snmp \
-H "Content-Type: application/json" \
-d '{
"__v": 2,
"server": {
"enabled": true,
"sysName": "Gateway-01",
"sysLocation": "Building A, Floor 2",
"sysContact": "admin@example.com",
"users": [
{
"enabled": true,
"label": "admin-user",
"version": "v3",
"username": "snmpadmin",
"authProto": "SHA1",
"authPass": "AuthPassword123",
"privProto": "AES-128",
"privPass": "PrivPassword123",
"community": ""
}
],
"allowedAddresses": []
},
"traps": {
"enabled": true,
"engineId": "0x8000000001020304",
"receivers": [
{
"enabled": true,
"label": "nms-server",
"address": "192.168.2.200",
"version": "v3",
"username": "trapuser",
"authProto": "SHA1",
"authPass": "TrapAuth123",
"privProto": "AES-128",
"privPass": "TrapPriv123",
"community": ""
}
]
}
}' \
-b cookies.txt
Example - Configure SNMPv2c
curl -X PUT http://192.168.2.1/api/snmp \
-H "Content-Type: application/json" \
-d '{
"__v": 2,
"server": {
"enabled": true,
"sysName": "Gateway-01",
"sysLocation": "Data Center",
"sysContact": "noc@example.com",
"users": [
{
"enabled": true,
"label": "readonly",
"version": "v2c",
"username": "",
"authProto": "",
"authPass": "",
"privProto": "",
"privPass": "",
"community": "public"
}
],
"allowedAddresses": [
{ "address": "192.168.2.0", "prefix": 24 }
]
},
"traps": {
"enabled": false,
"engineId": "",
"receivers": []
}
}' \
-b cookies.txt
SNTP (NTP)
Network Time Protocol client configuration.
Source: sntp.schema.json
Endpoints:
GET /api?fields=sntp- Get NTP configurationPUT /api/sntp- Update NTP configuration
Schema
{
"enabled": false,
"minpoll": 6,
"maxpoll": 10,
"pool": {
"enabled": true,
"server": "north-america.pool.ntp.org"
},
"servers": [],
"timeZone": "UTC"
}
Properties
| Property | Type | Required | Default | Constraints | Description |
|---|---|---|---|---|---|
enabled |
boolean | Yes | false |
- | Enable NTP client |
minpoll |
integer | Yes | - | 3-17 | Min polling interval (2^n seconds) |
maxpoll |
integer | Yes | - | 3-17 | Max polling interval (2^n seconds) |
pool.enabled |
boolean | Yes | - | - | Use NTP pool |
pool.server |
string | Yes | north-america.pool.ntp.org |
hostname/IP, required if pool enabled | Pool server address |
servers |
array | Yes | - | - | List of NTP servers (used if pool disabled) |
timeZone |
string | Yes | UTC |
max 250 | Timezone (zoneinfo path) |
Polling Intervals
The polling interval is calculated as 2^n seconds:
| Value | Interval |
|---|---|
| 3 | 8 seconds |
| 6 | 64 seconds |
| 10 | ~17 minutes |
| 14 | ~4.5 hours |
| 17 | ~36 hours |
Business Rules
- If
enabledis true, eitherpool.enabledmust be true ORserversmust have at least one entry - If
pool.enabledis true,pool.servermust not be empty
Example - Configure NTP with Pool
curl -X PUT http://192.168.2.1/api/sntp \
-H "Content-Type: application/json" \
-d '{
"enabled": true,
"minpoll": 6,
"maxpoll": 10,
"pool": {
"enabled": true,
"server": "pool.ntp.org"
},
"servers": [],
"timeZone": "America/Chicago"
}' \
-b cookies.txt
Example - Configure NTP with Specific Servers
curl -X PUT http://192.168.2.1/api/sntp \
-H "Content-Type: application/json" \
-d '{
"enabled": true,
"minpoll": 6,
"maxpoll": 10,
"pool": {
"enabled": false,
"server": ""
},
"servers": [
"time.google.com",
"time.cloudflare.com",
"time.windows.com"
],
"timeZone": "America/New_York"
}' \
-b cookies.txt
SMTP
Simple Mail Transfer Protocol configuration for email notifications.
Source: smtp.schema.json
Endpoints:
GET /api?fields=smtp- Get SMTP configurationPUT /api/smtp- Update SMTP configuration
Schema
{
"enabled": false,
"serverAddress": "",
"serverPort": 587,
"tls": {
"enabled": true,
"startTls": true,
"certCheck": false
},
"authEnabled": false,
"username": "",
"password": "",
"sourceEmailAddress": "",
"maxNumberOfEntries": 50
}
Properties
| Property | Type | Required | Default | Constraints | Description |
|---|---|---|---|---|---|
enabled |
boolean | Yes | false |
- | Enable SMTP |
serverAddress |
string | Yes | - | hostname/IP, required if enabled | SMTP server address |
serverPort |
string/int | Yes | - | 0-65535 | SMTP server port |
tls.enabled |
boolean | Yes | true |
- | Enable TLS |
tls.startTls |
boolean | Yes | true |
- | Use STARTTLS |
tls.certCheck |
boolean | Yes | false |
- | Verify server certificate |
authEnabled |
boolean | Yes | - | - | Enable authentication |
username |
string | Yes | - | max 250, required if authEnabled | SMTP username |
password |
string | Yes | - | max 250 | SMTP password |
sourceEmailAddress |
string | Yes | - | email format, required if enabled | From address |
maxNumberOfEntries |
integer | Yes | - | 10-100 | Email queue size |
Example - Configure SMTP with TLS
curl -X PUT http://192.168.2.1/api/smtp \
-H "Content-Type: application/json" \
-d '{
"enabled": true,
"serverAddress": "smtp.gmail.com",
"serverPort": 587,
"tls": {
"enabled": true,
"startTls": true,
"certCheck": true
},
"authEnabled": true,
"username": "alerts@example.com",
"password": "app-specific-password",
"sourceEmailAddress": "alerts@example.com",
"maxNumberOfEntries": 100
}' \
-b cookies.txt
Example - Configure SMTP without TLS (Internal Server)
curl -X PUT http://192.168.2.1/api/smtp \
-H "Content-Type: application/json" \
-d '{
"enabled": true,
"serverAddress": "mail.internal.local",
"serverPort": 25,
"tls": {
"enabled": false,
"startTls": false,
"certCheck": false
},
"authEnabled": false,
"username": "",
"password": "",
"sourceEmailAddress": "gateway@internal.local",
"maxNumberOfEntries": 50
}' \
-b cookies.txt
Network Interfaces (NI)
Network interface configuration.
Source: ni.schema.json
Endpoints:
GET /api?fields=ni- Get all network interfacesPUT /api/ni- Update network interfaces
Schema
{
"__v": 3,
"nis": [
{
"name": "br0",
"type": "LAN",
"nitype": "BRIDGE",
"available": true,
"bridge": "--",
"vlanId": -1,
"vlans": [],
"ipv4": {
"mode": "STATIC",
"ip": "192.168.2.1",
"mask": "255.255.255.0",
"gateway": "",
"dns1": "",
"dns2": "",
"wanMasquerade": true
},
"ipv6": {
"enabled": false,
"mode": "STATIC",
"ip": [],
"fixedIp": [],
"linkLocalIp": [],
"prefixDelegationEnabled": false,
"delegatedPrefixLength": 64,
"gateway": "",
"dns1": "",
"dns2": ""
},
"dot1x": {
"enabled": false,
"authType": "",
"status": "",
"params": {
"identity": "",
"password": "",
"anonymousIdentity": "",
"caCertificate": "",
"clientCertificate": "",
"privateKey": "",
"privateKeyPassword": "",
"domainMatch": "",
"subjectMatch": "",
"innerAuthType": "",
"peapVersion": -1
}
}
}
]
}
Interface Object Properties
| Property | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Interface name (e.g., eth0, br0, wlan0) |
type |
string | Yes | LAN or WAN |
nitype |
string | Yes | ETHER, PPP, WIFI_AS_WAN, WIFI_AP, BRIDGE |
available |
boolean | Yes | Interface is available |
bridge |
string | Yes | Bridge connection (-- if not bridged) |
vlanId |
integer | No | VLAN ID (-1 if not VLAN) |
vlans |
array | No | VLAN configurations |
ipv4 |
object | Yes | IPv4 configuration |
ipv6 |
object | Yes | IPv6 configuration |
dot1x |
object | No | 802.1X authentication |
MAC |
string | No | MAC address |
IPv4 Configuration
| Property | Type | Default | Description |
|---|---|---|---|
mode |
string | - | STATIC, DHCP, DHCP-ADDRESSES-ONLY, PPP, PPP-ADDRESSES-ONLY |
ip |
string | - | IP address |
mask |
string | - | Subnet mask |
gateway |
string | - | Default gateway |
dns1 |
string | - | Primary DNS |
dns2 |
string | - | Secondary DNS |
wanMasquerade |
boolean | true |
Enable IP masquerading (WAN mode) |
IPv6 Configuration
| Property | Type | Default | Description |
|---|---|---|---|
enabled |
boolean | false |
Enable IPv6 |
mode |
string | - | LAN: STATIC, DELEGATED; WAN: AUTO, AUTO-ADDRESSES-ONLY |
ip |
array | - | Current IPv6 addresses (read-only) |
fixedIp |
array | - | Static IPv6 addresses |
linkLocalIp |
array | - | Link-local addresses (read-only) |
prefixDelegationEnabled |
boolean | false |
Enable DHCPv6-PD (WAN only) |
delegatedPrefixLength |
integer | 64 |
Prefix length (0-128) |
gateway |
string | - | Default IPv6 gateway |
dns1 |
string | - | Primary IPv6 DNS |
dns2 |
string | - | Secondary IPv6 DNS |
802.1X Authentication
| Property | Type | Description |
|---|---|---|
enabled |
boolean | Enable 802.1X |
authType |
string | EAP-PWD, EAP-TLS, EAP-TTLS, EAP-PEAP |
status |
string | Current status (read-only) |
params.identity |
string | Username |
params.password |
string | Password (EAP-PWD, TTLS, PEAP) |
params.caCertificate |
string | CA certificate (max 20480) |
params.clientCertificate |
string | Client certificate (EAP-TLS) |
params.privateKey |
string | Private key (EAP-TLS) |
params.innerAuthType |
string | EAP-MSCHAPV2 (TTLS), MSCHAPV2 (PEAP) |
Example - Configure Static LAN
curl -X PUT http://192.168.2.1/api/ni \
-H "Content-Type: application/json" \
-d '{
"__v": 3,
"nis": [
{
"name": "br0",
"type": "LAN",
"nitype": "BRIDGE",
"available": true,
"bridge": "--",
"ipv4": {
"mode": "STATIC",
"ip": "192.168.100.1",
"mask": "255.255.255.0",
"gateway": "",
"dns1": "8.8.8.8",
"dns2": "8.8.4.4",
"wanMasquerade": true
},
"ipv6": {
"enabled": false,
"mode": "STATIC",
"ip": [],
"fixedIp": [],
"linkLocalIp": [],
"prefixDelegationEnabled": false,
"delegatedPrefixLength": 64,
"gateway": "",
"dns1": "",
"dns2": ""
}
}
]
}' \
-b cookies.txt
Example - Configure WAN with DHCP
curl -X PUT http://192.168.2.1/api/ni \
-H "Content-Type: application/json" \
-d '{
"__v": 3,
"nis": [
{
"name": "eth0",
"type": "WAN",
"nitype": "ETHER",
"available": true,
"bridge": "--",
"ipv4": {
"mode": "DHCP",
"ip": "",
"mask": "",
"gateway": "",
"dns1": "",
"dns2": "",
"wanMasquerade": true
},
"ipv6": {
"enabled": true,
"mode": "AUTO",
"ip": [],
"fixedIp": [],
"linkLocalIp": [],
"prefixDelegationEnabled": true,
"delegatedPrefixLength": 56,
"gateway": "",
"dns1": "",
"dns2": ""
}
}
]
}' \
-b cookies.txt
Related Documentation
- API Schemas Reference - Complete schema reference
- Available Resources - Resource endpoints
- VPN Schemas - VPN configuration
Document Version: 1.0.0
Source Version: mtsDeviceAPI (analyzed February 2026)
Last Updated: February 10, 2026