Skip to content

Instantly share code, notes, and snippets.

@91pavan
Created November 21, 2022 18:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 91pavan/9e865a4f0c91d564ff90f6e52960ba38 to your computer and use it in GitHub Desktop.
Save 91pavan/9e865a4f0c91d564ff90f6e52960ba38 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
{
"swagger": "2.0",
"info": {
"version": "1.0.0-streaming",
"title": "Meraki Dashboard API",
"description": "The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification.\n\n> Date: 21 November, 2022\n>\n> [Recent Updates](https://meraki.io/whats-new/)\n\n---\n\n[API Documentation](https://meraki.io/api)\n\n[Community Support](https://meraki.io/community)\n\n[Meraki Homepage](https://www.meraki.com)\n",
"contact": {
"name": "Meraki Developer Community",
"url": "https://meraki.io/community"
}
},
"host": "api.meraki.com",
"basePath": "/api/v1",
"schemes": [
"https"
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"securityDefinitions": {
"meraki_api_key": {
"type": "apiKey",
"name": "X-Cisco-Meraki-API-Key",
"in": "header"
}
},
"security": [
{
"meraki_api_key": [
]
}
],
"paths": {
"/administered/identities/me": {
"get": {
"description": "Returns the identity of the current user.",
"operationId": "getAdministeredIdentitiesMe",
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Username"
},
"email": {
"type": "string",
"description": "User email"
},
"lastUsedDashboardAt": {
"type": "string",
"format": "date-time",
"description": "Last seen active on Dashboard UI"
},
"authentication": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"description": "Authentication mode"
},
"api": {
"type": "object",
"properties": {
"key": {
"type": "object",
"properties": {
"created": {
"type": "boolean",
"description": "If API key is created for this user"
}
},
"description": "API key"
}
},
"description": "API authentication"
},
"twoFactor": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "If twoFactor authentication is enabled for this user"
}
},
"description": "TwoFactor authentication"
},
"saml": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "If SAML authentication is enabled for this user"
}
},
"description": "SAML authentication"
}
},
"description": "Authentication info"
}
}
},
"examples": {
"application/json": {
"name": "Miles Meraki",
"email": "miles@meraki.com",
"lastUsedDashboardAt": "2018-02-11T00:00:00.090210Z",
"authentication": {
"mode": "email",
"api": {
"key": {
"created": true
}
},
"twoFactor": {
"enabled": false
},
"saml": {
"enabled": false
}
}
}
}
}
},
"summary": "Returns the identity of the current user.",
"tags": [
"administered",
"monitor",
"identities",
"me"
]
}
},
"/devices/{serial}": {
"get": {
"description": "Return a single device",
"operationId": "getDevice",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"name": "My AP",
"lat": 37.4180951010362,
"lng": -122.098531723022,
"serial": "Q234-ABCD-5678",
"mac": "00:11:22:33:44:55",
"model": "MR34",
"address": "1600 Pennsylvania Ave",
"notes": "My AP's note",
"lanIp": "1.2.3.4",
"tags": [
"recently-added"
],
"networkId": "N_24329156",
"beaconIdParams": {
"uuid": "00000000-0000-0000-0000-000000000000",
"major": 5,
"minor": 3
},
"firmware": "wireless-25-14",
"floorPlanId": "g_1234567"
}
}
}
},
"summary": "Return a single device",
"tags": [
"devices",
"configure"
]
},
"put": {
"description": "Update the attributes of a device",
"operationId": "updateDevice",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateDevice",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of a device"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of tags of a device"
},
"lat": {
"type": "number",
"format": "float",
"description": "The latitude of a device"
},
"lng": {
"type": "number",
"format": "float",
"description": "The longitude of a device"
},
"address": {
"type": "string",
"description": "The address of a device"
},
"notes": {
"type": "string",
"description": "The notes for the device. String. Limited to 255 characters."
},
"moveMapMarker": {
"type": "boolean",
"description": "Whether or not to set the latitude and longitude of a device based on the new address. Only applies when lat and lng are not specified."
},
"switchProfileId": {
"type": "string",
"description": "The ID of a switch profile to bind to the device (for available switch profiles, see the 'Switch Profiles' endpoint). Use null to unbind the switch device from the current profile. For a device to be bindable to a switch profile, it must (1) be a switch, and (2) belong to a network that is bound to a configuration template."
},
"floorPlanId": {
"type": "string",
"description": "The floor plan to associate to this device. null disassociates the device from the floorplan."
}
},
"example": {
"name": "My AP",
"lat": 37.4180951010362,
"lng": -122.098531723022,
"serial": "Q234-ABCD-5678",
"mac": "00:11:22:33:44:55",
"tags": [
"recently-added"
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"name": "My AP",
"lat": 37.4180951010362,
"lng": -122.098531723022,
"serial": "Q234-ABCD-5678",
"mac": "00:11:22:33:44:55",
"model": "MR34",
"address": "1600 Pennsylvania Ave",
"notes": "My AP's note",
"lanIp": "1.2.3.4",
"tags": [
"recently-added"
],
"networkId": "N_24329156",
"beaconIdParams": {
"uuid": "00000000-0000-0000-0000-000000000000",
"major": 5,
"minor": 3
},
"firmware": "wireless-25-14",
"floorPlanId": "g_1234567"
}
}
}
},
"summary": "Update the attributes of a device",
"tags": [
"devices",
"configure"
]
}
},
"/devices/{serial}/appliance/dhcp/subnets": {
"get": {
"description": "Return the DHCP subnet information for an appliance",
"operationId": "getDeviceApplianceDhcpSubnets",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"subnet": "192.168.1.0/24",
"vlanId": 100,
"usedCount": 2,
"freeCount": 251
}
]
}
}
},
"summary": "Return the DHCP subnet information for an appliance",
"tags": [
"appliance",
"monitor",
"dhcp",
"subnets"
]
}
},
"/devices/{serial}/appliance/performance": {
"get": {
"description": "Return the performance score for a single MX. Only primary MX devices supported. If no data is available, a 204 error code is returned.",
"operationId": "getDeviceAppliancePerformance",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"perfScore": 10
}
}
}
},
"summary": "Return the performance score for a single MX",
"tags": [
"appliance",
"monitor",
"performance"
]
}
},
"/devices/{serial}/appliance/prefixes/delegated": {
"get": {
"description": "Return current delegated IPv6 prefixes on an appliance.",
"operationId": "getDeviceAppliancePrefixesDelegated",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"origin": {
"interface": "wan1"
},
"prefix": "2001:db8:3c4d:15::/64",
"counts": {
"assigned": 2,
"available": 253
},
"method": "auto",
"description": "My ISP provider",
"isPreferred": true,
"expiresAt": "2018-05-12T00:00:00Z"
}
]
}
}
},
"summary": "Return current delegated IPv6 prefixes on an appliance.",
"tags": [
"appliance",
"monitor",
"prefixes",
"delegated"
]
}
},
"/devices/{serial}/appliance/prefixes/delegated/vlanAssignments": {
"get": {
"description": "Return prefixes assigned to all IPv6 enabled VLANs on an appliance.",
"operationId": "getDeviceAppliancePrefixesDelegatedVlanAssignments",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"vlan": {
"id": 100,
"name": "My VLAN"
},
"origin": {
"interface": "wan1",
"prefix": "2001:db8:3c4d:15::/64"
},
"status": "Active",
"ipv6": {
"prefix": "2001:db8:3c4d:15::/64",
"address": "2001:db8:3c4d:15::1",
"linkLocal": {
"address": "2001:db8:3c4d:15::1"
},
"solicitedNodeMulticast": {
"address": "2001:db8:3c4d:15::1"
}
}
}
]
}
}
},
"summary": "Return prefixes assigned to all IPv6 enabled VLANs on an appliance.",
"tags": [
"appliance",
"monitor",
"prefixes",
"delegated",
"vlanAssignments"
]
}
},
"/devices/{serial}/appliance/uplinks/settings": {
"get": {
"description": "Return the uplink settings for an MX appliance",
"operationId": "getDeviceApplianceUplinksSettings",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"interfaces": {
"type": "object",
"properties": {
"wan1": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable or disable the interface."
},
"vlanTagging": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether VLAN tagging is enabled."
},
"vlanId": {
"type": "integer",
"description": "The ID of the VLAN to use for VLAN tagging."
}
},
"description": "VLAN tagging settings."
},
"svis": {
"type": "object",
"properties": {
"ipv4": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"static",
"dynamic"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "IP address and subnet mask when in static mode."
},
"gateway": {
"type": "string",
"description": "Gateway IP address when in static mode."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv4 settings for static/dynamic mode."
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"static",
"dynamic"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "Static address that will override the one(s) received by SLAAC."
},
"gateway": {
"type": "string",
"description": "Static gateway that will override the one received by autoconf."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv6 settings for static/dynamic mode."
}
},
"description": "SVI settings by protocol."
},
"pppoe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE is enabled."
},
"authentication": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE authentication is enabled."
},
"username": {
"type": "string",
"description": "Username for PPPoE authentication."
}
},
"description": "Settings for PPPoE Authentication."
}
},
"description": "Configuration options for PPPoE."
}
},
"description": "WAN 1 settings."
},
"wan2": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable or disable the interface."
},
"vlanTagging": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether VLAN tagging is enabled."
},
"vlanId": {
"type": "integer",
"description": "The ID of the VLAN to use for VLAN tagging."
}
},
"description": "VLAN tagging settings."
},
"svis": {
"type": "object",
"properties": {
"ipv4": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"static",
"dynamic"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "IP address and subnet mask when in static mode."
},
"gateway": {
"type": "string",
"description": "Gateway IP address when in static mode."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv4 settings for static/dynamic mode."
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"static",
"dynamic"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "Static address that will override the one(s) received by SLAAC."
},
"gateway": {
"type": "string",
"description": "Static gateway that will override the one received by autoconf."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv6 settings for static/dynamic mode."
}
},
"description": "SVI settings by protocol."
},
"pppoe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE is enabled."
},
"authentication": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE authentication is enabled."
},
"username": {
"type": "string",
"description": "Username for PPPoE authentication."
}
},
"description": "Settings for PPPoE Authentication."
}
},
"description": "Configuration options for PPPoE."
}
},
"description": "WAN 2 settings."
}
},
"description": "Interface settings."
}
}
},
"examples": {
"application/json": {
"interfaces": {
"wan1": {
"enabled": true,
"vlanTagging": {
"enabled": true,
"vlanId": 1
},
"svis": {
"ipv4": {
"assignmentMode": "static",
"address": "9.10.11.10/16",
"gateway": "13.14.15.16",
"nameservers": {
"addresses": [
"1.2.3.4"
]
}
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3::4",
"gateway": "1:2:3::5",
"nameservers": {
"addresses": [
"1001:4860:4860::8888",
"1001:4860:4860::8844"
]
}
}
},
"pppoe": {
"enabled": true,
"authentication": {
"enabled": true,
"username": "username"
}
}
},
"wan2": {
"enabled": true,
"vlanTagging": {
"enabled": true,
"vlanId": 1
},
"svis": {
"ipv4": {
"assignmentMode": "static",
"address": "9.10.11.10/16",
"gateway": "13.14.15.16",
"nameservers": {
"addresses": [
"1.2.3.4"
]
}
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3::4",
"gateway": "1:2:3::5",
"nameservers": {
"addresses": [
"1001:4860:4860::8888",
"1001:4860:4860::8844"
]
}
}
},
"pppoe": {
"enabled": true,
"authentication": {
"enabled": true,
"username": "username"
}
}
}
}
}
}
}
},
"summary": "Return the uplink settings for an MX appliance",
"tags": [
"appliance",
"configure",
"uplinks",
"settings"
]
},
"put": {
"description": "Update the uplink settings for an MX appliance",
"operationId": "updateDeviceApplianceUplinksSettings",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateDeviceApplianceUplinksSettings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"interfaces": {
"type": "object",
"properties": {
"wan1": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable or disable the interface."
},
"vlanTagging": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether VLAN tagging is enabled."
},
"vlanId": {
"type": "integer",
"description": "The ID of the VLAN to use for VLAN tagging."
}
},
"description": "VLAN tagging settings."
},
"svis": {
"type": "object",
"properties": {
"ipv4": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"static",
"dynamic"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "IP address and subnet mask when in static mode."
},
"gateway": {
"type": "string",
"description": "Gateway IP address when in static mode."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv4 settings for static/dynamic mode."
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"static",
"dynamic"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "Static address that will override the one(s) received by SLAAC."
},
"gateway": {
"type": "string",
"description": "Static gateway that will override the one received by autoconf."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv6 settings for static/dynamic mode."
}
},
"description": "SVI settings by protocol."
},
"pppoe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE is enabled."
},
"authentication": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE authentication is enabled."
},
"username": {
"type": "string",
"description": "Username for PPPoE authentication."
},
"password": {
"type": "string",
"description": "Password for PPPoE authentication. This parameter is not returned."
}
},
"description": "Settings for PPPoE Authentication."
}
},
"description": "Configuration options for PPPoE."
}
},
"description": "WAN 1 settings."
},
"wan2": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable or disable the interface."
},
"vlanTagging": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether VLAN tagging is enabled."
},
"vlanId": {
"type": "integer",
"description": "The ID of the VLAN to use for VLAN tagging."
}
},
"description": "VLAN tagging settings."
},
"svis": {
"type": "object",
"properties": {
"ipv4": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"static",
"dynamic"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "IP address and subnet mask when in static mode."
},
"gateway": {
"type": "string",
"description": "Gateway IP address when in static mode."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv4 settings for static/dynamic mode."
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"static",
"dynamic"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "Static address that will override the one(s) received by SLAAC."
},
"gateway": {
"type": "string",
"description": "Static gateway that will override the one received by autoconf."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv6 settings for static/dynamic mode."
}
},
"description": "SVI settings by protocol."
},
"pppoe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE is enabled."
},
"authentication": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE authentication is enabled."
},
"username": {
"type": "string",
"description": "Username for PPPoE authentication."
},
"password": {
"type": "string",
"description": "Password for PPPoE authentication. This parameter is not returned."
}
},
"description": "Settings for PPPoE Authentication."
}
},
"description": "Configuration options for PPPoE."
}
},
"description": "WAN 2 settings."
}
},
"description": "Interface settings."
}
},
"example": {
"interfaces": {
"wan1": {
"enabled": true,
"vlanTagging": {
"enabled": true,
"vlanId": 1
},
"svis": {
"ipv4": {
"assignmentMode": "static",
"address": "9.10.11.10/16",
"gateway": "13.14.15.16",
"nameservers": {
"addresses": [
"1.2.3.4"
]
}
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3::4",
"gateway": "1:2:3::5",
"nameservers": {
"addresses": [
"1001:4860:4860::8888",
"1001:4860:4860::8844"
]
}
}
},
"pppoe": {
"enabled": true,
"authentication": {
"enabled": true,
"username": "username",
"password": "password"
}
}
},
"wan2": {
"enabled": true,
"vlanTagging": {
"enabled": true,
"vlanId": 1
},
"svis": {
"ipv4": {
"assignmentMode": "static",
"address": "9.10.11.10/16",
"gateway": "13.14.15.16",
"nameservers": {
"addresses": [
"1.2.3.4"
]
}
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3::4",
"gateway": "1:2:3::5",
"nameservers": {
"addresses": [
"1001:4860:4860::8888",
"1001:4860:4860::8844"
]
}
}
},
"pppoe": {
"enabled": true,
"authentication": {
"enabled": true,
"username": "username",
"password": "password"
}
}
}
}
},
"required": [
"interfaces"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"interfaces": {
"type": "object",
"properties": {
"wan1": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable or disable the interface."
},
"vlanTagging": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether VLAN tagging is enabled."
},
"vlanId": {
"type": "integer",
"description": "The ID of the VLAN to use for VLAN tagging."
}
},
"description": "VLAN tagging settings."
},
"svis": {
"type": "object",
"properties": {
"ipv4": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"static",
"dynamic"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "IP address and subnet mask when in static mode."
},
"gateway": {
"type": "string",
"description": "Gateway IP address when in static mode."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv4 settings for static/dynamic mode."
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"static",
"dynamic"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "Static address that will override the one(s) received by SLAAC."
},
"gateway": {
"type": "string",
"description": "Static gateway that will override the one received by autoconf."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv6 settings for static/dynamic mode."
}
},
"description": "SVI settings by protocol."
},
"pppoe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE is enabled."
},
"authentication": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE authentication is enabled."
},
"username": {
"type": "string",
"description": "Username for PPPoE authentication."
}
},
"description": "Settings for PPPoE Authentication."
}
},
"description": "Configuration options for PPPoE."
}
},
"description": "WAN 1 settings."
},
"wan2": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable or disable the interface."
},
"vlanTagging": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether VLAN tagging is enabled."
},
"vlanId": {
"type": "integer",
"description": "The ID of the VLAN to use for VLAN tagging."
}
},
"description": "VLAN tagging settings."
},
"svis": {
"type": "object",
"properties": {
"ipv4": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"static",
"dynamic"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "IP address and subnet mask when in static mode."
},
"gateway": {
"type": "string",
"description": "Gateway IP address when in static mode."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv4 settings for static/dynamic mode."
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"static",
"dynamic"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "Static address that will override the one(s) received by SLAAC."
},
"gateway": {
"type": "string",
"description": "Static gateway that will override the one received by autoconf."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv6 settings for static/dynamic mode."
}
},
"description": "SVI settings by protocol."
},
"pppoe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE is enabled."
},
"authentication": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE authentication is enabled."
},
"username": {
"type": "string",
"description": "Username for PPPoE authentication."
}
},
"description": "Settings for PPPoE Authentication."
}
},
"description": "Configuration options for PPPoE."
}
},
"description": "WAN 2 settings."
}
},
"description": "Interface settings."
}
}
},
"examples": {
"application/json": {
"interfaces": {
"wan1": {
"enabled": true,
"vlanTagging": {
"enabled": true,
"vlanId": 1
},
"svis": {
"ipv4": {
"assignmentMode": "static",
"address": "9.10.11.10/16",
"gateway": "13.14.15.16",
"nameservers": {
"addresses": [
"1.2.3.4"
]
}
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3::4",
"gateway": "1:2:3::5",
"nameservers": {
"addresses": [
"1001:4860:4860::8888",
"1001:4860:4860::8844"
]
}
}
},
"pppoe": {
"enabled": true,
"authentication": {
"enabled": true,
"username": "username"
}
}
},
"wan2": {
"enabled": true,
"vlanTagging": {
"enabled": true,
"vlanId": 1
},
"svis": {
"ipv4": {
"assignmentMode": "static",
"address": "9.10.11.10/16",
"gateway": "13.14.15.16",
"nameservers": {
"addresses": [
"1.2.3.4"
]
}
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3::4",
"gateway": "1:2:3::5",
"nameservers": {
"addresses": [
"1001:4860:4860::8888",
"1001:4860:4860::8844"
]
}
}
},
"pppoe": {
"enabled": true,
"authentication": {
"enabled": true,
"username": "username"
}
}
}
}
}
}
}
},
"summary": "Update the uplink settings for an MX appliance",
"tags": [
"appliance",
"configure",
"uplinks",
"settings"
]
}
},
"/devices/{serial}/appliance/vmx/authenticationToken": {
"post": {
"description": "Generate a new vMX authentication token",
"operationId": "createDeviceApplianceVmxAuthenticationToken",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "The newly generated authentication token for the vMX instance"
},
"expiresAt": {
"type": "string",
"description": "The expiration time for the token, in ISO 8601 format"
}
}
},
"examples": {
"application/json": {
"token": "ffc0b7b578b61be5bd1d172132c78044/9af03bd84d474",
"expiresAt": "2021-06-18T12:40:10Z"
}
}
}
},
"summary": "Generate a new vMX authentication token",
"tags": [
"appliance",
"configure",
"vmx",
"authenticationToken"
]
}
},
"/devices/{serial}/blinkLeds": {
"post": {
"description": "Blink the LEDs on a device",
"operationId": "blinkDeviceLeds",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "blinkDeviceLeds",
"in": "body",
"schema": {
"type": "object",
"properties": {
"duration": {
"type": "integer",
"description": "The duration in seconds. Must be between 5 and 120. Default is 20 seconds"
},
"period": {
"type": "integer",
"description": "The period in milliseconds. Must be between 100 and 1000. Default is 160 milliseconds"
},
"duty": {
"type": "integer",
"description": "The duty cycle as the percent active. Must be between 10 and 90. Default is 50."
}
},
"example": {
"duration": 20,
"period": 160,
"duty": 50
}
}
}
],
"responses": {
"202": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"duration": 20,
"period": 160,
"duty": 50
}
}
}
},
"summary": "Blink the LEDs on a device",
"tags": [
"devices",
"liveTools"
]
}
},
"/devices/{serial}/camera/analytics/live": {
"get": {
"description": "Returns live state from camera of analytics zones",
"operationId": "getDeviceCameraAnalyticsLive",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"ts": "2018-08-15T18:32:38.123Z",
"zones": {
"0": {
"person": 0
}
}
}
}
}
},
"summary": "Returns live state from camera of analytics zones",
"tags": [
"camera",
"monitor",
"analytics",
"live"
]
}
},
"/devices/{serial}/camera/analytics/overview": {
"get": {
"description": "Returns an overview of aggregate analytics data for a timespan",
"operationId": "getDeviceCameraAnalyticsOverview",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 365 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 7 days after t0."
},
{
"type": "number",
"format": "float",
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 7 days. The default is 1 hour."
},
{
"type": "string",
"enum": [
"person",
"vehicle"
],
"name": "objectType",
"in": "query",
"description": "[optional] The object type for which analytics will be retrieved. The default object type is person. The available types are [person, vehicle]."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"startTs": "2018-08-15T18:32:38.123Z",
"endTs": "2018-08-15T18:33:38.123Z",
"zoneId": 0,
"entrances": 254,
"averageCount": 5
}
]
}
}
},
"summary": "Returns an overview of aggregate analytics data for a timespan",
"tags": [
"camera",
"monitor",
"analytics",
"overview"
]
}
},
"/devices/{serial}/camera/analytics/recent": {
"get": {
"description": "Returns most recent record for analytics zones",
"operationId": "getDeviceCameraAnalyticsRecent",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"type": "string",
"enum": [
"person",
"vehicle"
],
"name": "objectType",
"in": "query",
"description": "[optional] The object type for which analytics will be retrieved. The default object type is person. The available types are [person, vehicle]."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"startTs": "2018-08-15T18:32:38.123Z",
"endTs": "2018-08-15T18:33:38.123Z",
"zoneId": 0,
"entrances": 10,
"averageCount": 2.54
}
]
}
}
},
"summary": "Returns most recent record for analytics zones",
"tags": [
"camera",
"monitor",
"analytics",
"recent"
]
}
},
"/devices/{serial}/camera/analytics/zones": {
"get": {
"description": "Returns all configured analytic zones for this camera",
"operationId": "getDeviceCameraAnalyticsZones",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"id": "0",
"type": "occupancy",
"label": "Full Frame",
"regionOfInterest": {
"x0": "0.00",
"y0": "0.00",
"x1": "1.00",
"y1": "1.00"
}
}
]
}
}
},
"summary": "Returns all configured analytic zones for this camera",
"tags": [
"camera",
"monitor",
"analytics",
"zones"
]
}
},
"/devices/{serial}/camera/analytics/zones/{zoneId}/history": {
"get": {
"description": "Return historical records for analytic zones",
"operationId": "getDeviceCameraAnalyticsZoneHistory",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "zoneId",
"in": "path",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 365 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 14 hours after t0."
},
{
"type": "number",
"format": "float",
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 14 hours. The default is 1 hour."
},
{
"type": "integer",
"name": "resolution",
"in": "query",
"description": "The time resolution in seconds for returned data. The valid resolutions are: 60. The default is 60."
},
{
"type": "string",
"enum": [
"person",
"vehicle"
],
"name": "objectType",
"in": "query",
"description": "[optional] The object type for which analytics will be retrieved. The default object type is person. The available types are [person, vehicle]."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"startTs": "2018-08-15T18:32:38.123Z",
"endTs": "2018-08-15T18:33:38.123Z",
"entrances": 5,
"averageCount": 1.5
}
]
}
}
},
"summary": "Return historical records for analytic zones",
"tags": [
"camera",
"monitor",
"analytics",
"zones",
"history"
]
}
},
"/devices/{serial}/camera/customAnalytics": {
"get": {
"description": "Return custom analytics settings for a camera",
"operationId": "getDeviceCameraCustomAnalytics",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"enabled": true,
"artifactId": "1",
"parameters": [
{
"name": "detection_threshold",
"value": 0.5
}
]
}
}
}
},
"summary": "Return custom analytics settings for a camera",
"tags": [
"camera",
"configure",
"customAnalytics"
]
},
"put": {
"description": "Update custom analytics settings for a camera",
"operationId": "updateDeviceCameraCustomAnalytics",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateDeviceCameraCustomAnalytics",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable custom analytics"
},
"artifactId": {
"type": "string",
"description": "The ID of the custom analytics artifact"
},
"parameters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the parameter"
},
"value": {
"type": "string",
"description": "Value of the parameter"
}
},
"required": [
"name",
"value"
]
},
"description": "Parameters for the custom analytics workload"
}
},
"example": {
"enabled": true,
"artifactId": "1",
"parameters": [
{
"name": "detection_threshold",
"value": "0.5"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"enabled": true,
"artifactId": "1",
"parameters": [
{
"name": "detection_threshold",
"value": 0.5
}
]
}
}
}
},
"summary": "Update custom analytics settings for a camera",
"tags": [
"camera",
"configure",
"customAnalytics"
]
}
},
"/devices/{serial}/camera/generateSnapshot": {
"post": {
"description": "Generate a snapshot of what the camera sees at the specified time and return a link to that image.",
"operationId": "generateDeviceCameraSnapshot",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "generateDeviceCameraSnapshot",
"in": "body",
"schema": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"format": "date-time",
"description": "[optional] The snapshot will be taken from this time on the camera. The timestamp is expected to be in ISO 8601 format. If no timestamp is specified, we will assume current time."
},
"fullframe": {
"type": "boolean",
"description": "[optional] If set to \"true\" the snapshot will be taken at full sensor resolution. This will error if used with timestamp."
}
},
"example": {
"timestamp": "2021-04-30T15:18:08Z",
"fullframe": false
}
}
}
],
"responses": {
"202": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"url": "https://spn4.meraki.com/stream/jpeg/snapshot/b2d123asdf423qd22d2",
"expiry": "Access to the image will expire at 2018-12-11T03:12:39Z."
}
}
}
},
"summary": "Generate a snapshot of what the camera sees at the specified time and return a link to that image.",
"tags": [
"camera",
"monitor"
]
}
},
"/devices/{serial}/camera/qualityAndRetention": {
"get": {
"description": "Returns quality and retention settings for the given camera",
"operationId": "getDeviceCameraQualityAndRetention",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"motionBasedRetentionEnabled": false,
"audioRecordingEnabled": false,
"restrictedBandwidthModeEnabled": false,
"profileId": "1234",
"quality": "Standard",
"motionDetectorVersion": 2,
"resolution": "1280x720"
}
}
}
},
"summary": "Returns quality and retention settings for the given camera",
"tags": [
"camera",
"configure",
"qualityAndRetention"
]
},
"put": {
"description": "Update quality and retention settings for the given camera",
"operationId": "updateDeviceCameraQualityAndRetention",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateDeviceCameraQualityAndRetention",
"in": "body",
"schema": {
"type": "object",
"properties": {
"profileId": {
"type": "string",
"description": "The ID of a quality and retention profile to assign to the camera. The profile's settings will override all of the per-camera quality and retention settings. If the value of this parameter is null, any existing profile will be unassigned from the camera."
},
"motionBasedRetentionEnabled": {
"type": "boolean",
"description": "Boolean indicating if motion-based retention is enabled(true) or disabled(false) on the camera."
},
"audioRecordingEnabled": {
"type": "boolean",
"description": "Boolean indicating if audio recording is enabled(true) or disabled(false) on the camera"
},
"restrictedBandwidthModeEnabled": {
"type": "boolean",
"description": "Boolean indicating if restricted bandwidth is enabled(true) or disabled(false) on the camera. This setting does not apply to MV2 cameras."
},
"quality": {
"type": "string",
"enum": [
"Standard",
"High",
"Enhanced"
],
"description": "Quality of the camera. Can be one of 'Standard', 'High' or 'Enhanced'. Not all qualities are supported by every camera model."
},
"resolution": {
"type": "string",
"enum": [
"1280x720",
"1920x1080",
"1080x1080",
"2058x2058",
"2112x2112",
"2880x2880",
"2688x1512",
"3840x2160"
],
"description": "Resolution of the camera. Can be one of '1280x720', '1920x1080', '1080x1080', '2058x2058', '2112x2112', '2880x2880', '2688x1512' or '3840x2160'.Not all resolutions are supported by every camera model."
},
"motionDetectorVersion": {
"type": "integer",
"enum": [
1,
2
],
"description": "The version of the motion detector that will be used by the camera. Only applies to Gen 2 cameras. Defaults to v2."
}
},
"example": {
"motionBasedRetentionEnabled": false,
"audioRecordingEnabled": false,
"restrictedBandwidthModeEnabled": false,
"profileId": "1234",
"quality": "Standard",
"motionDetectorVersion": 2,
"resolution": "1280x720"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"motionBasedRetentionEnabled": false,
"audioRecordingEnabled": false,
"restrictedBandwidthModeEnabled": false,
"profileId": "1234",
"quality": "Standard",
"motionDetectorVersion": 2,
"resolution": "1280x720"
}
}
}
},
"summary": "Update quality and retention settings for the given camera",
"tags": [
"camera",
"configure",
"qualityAndRetention"
]
}
},
"/devices/{serial}/camera/sense": {
"get": {
"description": "Returns sense settings for a given camera",
"operationId": "getDeviceCameraSense",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"senseEnabled": true,
"audioDetection": {
"enabled": false
},
"mqttBrokerId": "1234",
"mqttTopics": [
"/merakimv/Q2AA-AAAA-1111/raw_detections",
"/merakimv/Q2AA-AAAA-1111/light"
]
}
}
}
},
"summary": "Returns sense settings for a given camera",
"tags": [
"camera",
"configure",
"sense"
]
},
"put": {
"description": "Update sense settings for the given camera",
"operationId": "updateDeviceCameraSense",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateDeviceCameraSense",
"in": "body",
"schema": {
"type": "object",
"properties": {
"senseEnabled": {
"type": "boolean",
"description": "Boolean indicating if sense(license) is enabled(true) or disabled(false) on the camera"
},
"mqttBrokerId": {
"type": "string",
"description": "The ID of the MQTT broker to be enabled on the camera. A value of null will disable MQTT on the camera"
},
"audioDetection": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Boolean indicating if audio detection is enabled(true) or disabled(false) on the camera"
}
},
"description": "The details of the audio detection config."
},
"detectionModelId": {
"type": "string",
"description": "The ID of the object detection model"
}
},
"example": {
"senseEnabled": true,
"audioDetection": {
"enabled": false
},
"mqttBrokerId": "1234"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"senseEnabled": true,
"audioDetection": {
"enabled": false
},
"mqttBrokerId": "1234",
"mqttTopics": [
"/merakimv/Q2AA-AAAA-1111/raw_detections",
"/merakimv/Q2AA-AAAA-1111/light"
]
}
}
}
},
"summary": "Update sense settings for the given camera",
"tags": [
"camera",
"configure",
"sense"
]
}
},
"/devices/{serial}/camera/sense/objectDetectionModels": {
"get": {
"description": "Returns the MV Sense object detection model list for the given camera",
"operationId": "getDeviceCameraSenseObjectDetectionModels",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"id": "0",
"description": "Model A"
}
]
}
}
},
"summary": "Returns the MV Sense object detection model list for the given camera",
"tags": [
"camera",
"configure",
"sense",
"objectDetectionModels"
]
}
},
"/devices/{serial}/camera/video/settings": {
"get": {
"description": "Returns video settings for the given camera",
"operationId": "getDeviceCameraVideoSettings",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"externalRtspEnabled": true,
"rtspUrl": "rtsp://10.0.0.1:9000/live"
}
}
}
},
"summary": "Returns video settings for the given camera",
"tags": [
"camera",
"configure",
"video",
"settings"
]
},
"put": {
"description": "Update video settings for the given camera",
"operationId": "updateDeviceCameraVideoSettings",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateDeviceCameraVideoSettings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"externalRtspEnabled": {
"type": "boolean",
"description": "Boolean indicating if external rtsp stream is exposed"
}
},
"example": {
"externalRtspEnabled": true
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"externalRtspEnabled": true,
"rtspUrl": "rtsp://10.0.0.1:9000/live"
}
}
}
},
"summary": "Update video settings for the given camera",
"tags": [
"camera",
"configure",
"video",
"settings"
]
}
},
"/devices/{serial}/camera/videoLink": {
"get": {
"description": "Returns video link to the specified camera. If a timestamp is supplied, it links to that timestamp.",
"operationId": "getDeviceCameraVideoLink",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"type": "string",
"format": "date-time",
"name": "timestamp",
"in": "query",
"description": "[optional] The video link will start at this time. The timestamp should be a string in ISO8601 format. If no timestamp is specified, we will assume current time."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"url": "https://nxx.meraki.com/office-cameras/n/bs0a1k/manage/nodes/new_list/29048243992402?timestamp=1535732570077"
}
}
}
},
"summary": "Returns video link to the specified camera",
"tags": [
"camera",
"configure",
"videoLink"
]
}
},
"/devices/{serial}/camera/wirelessProfiles": {
"get": {
"description": "Returns wireless profile assigned to the given camera",
"operationId": "getDeviceCameraWirelessProfiles",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"ids": {
"primary": "3",
"secondary": "2",
"backup": "1"
}
}
}
}
},
"summary": "Returns wireless profile assigned to the given camera",
"tags": [
"camera",
"configure",
"wirelessProfiles"
]
},
"put": {
"description": "Assign wireless profiles to the given camera. Incremental updates are not supported, all profile assignment need to be supplied at once.",
"operationId": "updateDeviceCameraWirelessProfiles",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateDeviceCameraWirelessProfiles",
"in": "body",
"schema": {
"type": "object",
"properties": {
"ids": {
"type": "object",
"properties": {
"primary": {
"type": "string",
"description": "The id of the primary wireless profile"
},
"secondary": {
"type": "string",
"description": "The id of the secondary wireless profile"
},
"backup": {
"type": "string",
"description": "The id of the backup wireless profile"
}
},
"description": "The ids of the wireless profile to assign to the given camera"
}
},
"example": {
"ids": {
"primary": "3",
"secondary": "2",
"backup": "1"
}
},
"required": [
"ids"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"ids": {
"primary": "3",
"secondary": "2",
"backup": "1"
}
}
}
}
},
"summary": "Assign wireless profiles to the given camera",
"tags": [
"camera",
"configure",
"wirelessProfiles"
]
}
},
"/devices/{serial}/cellular/sims": {
"get": {
"description": "Return the SIM and APN configurations for a cellular device.",
"operationId": "getDeviceCellularSims",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"sims": [
{
"slot": "sim1",
"isPrimary": true,
"apns": [
{
"name": "internet",
"allowedIpTypes": [
"ipv4",
"ipv6"
],
"authentication": {
"type": "pap",
"username": "milesmeraki"
}
}
]
}
]
}
}
}
},
"summary": "Return the SIM and APN configurations for a cellular device.",
"tags": [
"devices",
"configure",
"cellular",
"sims"
]
},
"put": {
"description": "Updates the SIM and APN configurations for a cellular device.",
"operationId": "updateDeviceCellularSims",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateDeviceCellularSims",
"in": "body",
"schema": {
"type": "object",
"properties": {
"sims": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slot": {
"type": "string",
"enum": [
"sim1",
"sim2"
],
"description": "SIM slot being configured. Must be 'sim1' on single-sim devices."
},
"isPrimary": {
"type": "boolean",
"description": "If true, this SIM is used for boot. Must be true on single-sim devices.",
"default": false
},
"apns": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "APN name."
},
"allowedIpTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "IP versions to support (permitted values include 'ipv4', 'ipv6')."
},
"authentication": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"pap",
"chap",
"none"
],
"description": "APN auth type.",
"default": "none"
},
"username": {
"type": "string",
"description": "APN username, if type is set."
},
"password": {
"type": "string",
"description": "APN password, if type is set (if APN password is not supplied, the password is left unchanged)."
}
},
"description": "APN authentication configurations."
}
},
"required": [
"name",
"allowedIpTypes"
]
},
"description": "APN configurations. If empty, the default APN will be used.",
"default": [
]
}
}
},
"description": "List of SIMs. If a SIM was previously configured and not specified in this request, it will remain unchanged."
},
"simFailover": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Failover to secondary SIM (optional)"
}
},
"description": "SIM Failover settings."
}
},
"example": {
"slot": "sim1",
"isPrimary": true,
"apns": [
{
"name": "internet",
"allowedIpTypes": [
"ipv4",
"ipv6"
],
"authentication": {
"type": "pap",
"username": "milesmeraki",
"password": "secret"
}
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"sims": [
{
"slot": "sim1",
"isPrimary": true,
"apns": [
{
"name": "internet",
"allowedIpTypes": [
"ipv4",
"ipv6"
],
"authentication": {
"type": "pap",
"username": "milesmeraki"
}
}
]
}
]
}
}
}
},
"summary": "Updates the SIM and APN configurations for a cellular device.",
"tags": [
"devices",
"configure",
"cellular",
"sims"
]
}
},
"/devices/{serial}/cellularGateway/lan": {
"get": {
"description": "Show the LAN Settings of a MG",
"operationId": "getDeviceCellularGatewayLan",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"deviceName": "name of the MG",
"deviceLanIp": "192.168.0.33",
"deviceSubnet": "192.168.0.32/27",
"fixedIpAssignments": [
{
"mac": "0b:00:00:00:00:ac",
"name": "server 1",
"ip": "192.168.0.10"
},
{
"mac": "0b:00:00:00:00:ab",
"name": "server 2",
"ip": "192.168.0.20"
}
],
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
]
}
}
}
},
"summary": "Show the LAN Settings of a MG",
"tags": [
"cellularGateway",
"configure",
"lan"
]
},
"put": {
"description": "Update the LAN Settings for a single MG.",
"operationId": "updateDeviceCellularGatewayLan",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateDeviceCellularGatewayLan",
"in": "body",
"schema": {
"type": "object",
"properties": {
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "Starting IP included in the reserved range of IPs"
},
"end": {
"type": "string",
"description": "Ending IP included in the reserved range of IPs"
},
"comment": {
"type": "string",
"description": "Comment explaining the reserved IP range"
}
},
"required": [
"start",
"end",
"comment"
]
},
"description": "list of all reserved IP ranges for a single MG"
},
"fixedIpAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A descriptive name of the assignment"
},
"ip": {
"type": "string",
"description": "The IP address you want to assign to a specific server or device"
},
"mac": {
"type": "string",
"description": "The MAC address of the server or device that hosts the internal resource that you wish to receive the specified IP address"
}
},
"required": [
"ip",
"mac"
]
},
"description": "list of all fixed IP assignments for a single MG"
}
},
"example": {
"deviceName": "name of the MG",
"deviceLanIp": "192.168.0.33",
"deviceSubnet": "192.168.0.32/27",
"fixedIpAssignments": [
{
"mac": "0b:00:00:00:00:ac",
"name": "server 1",
"ip": "192.168.0.10"
},
{
"mac": "0b:00:00:00:00:ab",
"name": "server 2",
"ip": "192.168.0.20"
}
],
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"deviceName": "name of the MG",
"deviceLanIp": "192.168.0.33",
"deviceSubnet": "192.168.0.32/27",
"fixedIpAssignments": [
{
"mac": "0b:00:00:00:00:ac",
"name": "server 1",
"ip": "192.168.0.10"
},
{
"mac": "0b:00:00:00:00:ab",
"name": "server 2",
"ip": "192.168.0.20"
}
],
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
]
}
}
}
},
"summary": "Update the LAN Settings for a single MG.",
"tags": [
"cellularGateway",
"configure",
"lan"
]
}
},
"/devices/{serial}/cellularGateway/portForwardingRules": {
"get": {
"description": "Returns the port forwarding rules for a single MG.",
"operationId": "getDeviceCellularGatewayPortForwardingRules",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"lanIp": "172.31.128.5",
"name": "test",
"access": "any",
"publicPort": "11-12",
"localPort": "4",
"uplink": "both",
"protocol": "tcp"
},
{
"lanIp": "172.31.128.5",
"name": "test 2",
"access": "restricted",
"allowedIps": [
"10.10.10.10",
"10.10.10.11"
],
"publicPort": "99",
"localPort": "5",
"uplink": "both",
"protocol": "tcp"
}
]
}
}
}
},
"summary": "Returns the port forwarding rules for a single MG.",
"tags": [
"cellularGateway",
"configure",
"portForwardingRules"
]
},
"put": {
"description": "Updates the port forwarding rules for a single MG.",
"operationId": "updateDeviceCellularGatewayPortForwardingRules",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateDeviceCellularGatewayPortForwardingRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A descriptive name for the rule"
},
"lanIp": {
"type": "string",
"description": "The IP address of the server or device that hosts the internal resource that you wish to make available on the WAN"
},
"publicPort": {
"type": "string",
"description": "A port or port ranges that will be forwarded to the host on the LAN"
},
"localPort": {
"type": "string",
"description": "A port or port ranges that will receive the forwarded traffic from the WAN"
},
"allowedIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of ranges of WAN IP addresses that are allowed to make inbound connections on the specified ports or port ranges."
},
"protocol": {
"type": "string",
"description": "TCP or UDP"
},
"access": {
"type": "string",
"description": "`any` or `restricted`. Specify the right to make inbound connections on the specified ports or port ranges. If `restricted`, a list of allowed IPs is mandatory."
}
},
"required": [
"lanIp",
"publicPort",
"localPort",
"protocol",
"access"
]
},
"description": "An array of port forwarding params"
}
},
"example": {
"rules": [
{
"lanIp": "172.31.128.5",
"name": "test",
"access": "any",
"publicPort": "11-12",
"localPort": "4",
"uplink": "both",
"protocol": "tcp"
},
{
"lanIp": "172.31.128.5",
"name": "test 2",
"access": "restricted",
"allowedIps": [
"10.10.10.10",
"10.10.10.11"
],
"publicPort": "99",
"localPort": "5",
"uplink": "both",
"protocol": "tcp"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"lanIp": "172.31.128.5",
"name": "test",
"access": "any",
"publicPort": "11-12",
"localPort": "4",
"uplink": "both",
"protocol": "tcp"
},
{
"lanIp": "172.31.128.5",
"name": "test 2",
"access": "restricted",
"allowedIps": [
"10.10.10.10",
"10.10.10.11"
],
"publicPort": "99",
"localPort": "5",
"uplink": "both",
"protocol": "tcp"
}
]
}
}
}
},
"summary": "Updates the port forwarding rules for a single MG.",
"tags": [
"cellularGateway",
"configure",
"portForwardingRules"
]
}
},
"/devices/{serial}/clients": {
"get": {
"description": "List the clients of a device, up to a maximum of a month ago. The usage of each client is returned in kilobytes. If the device is a switch, the switchport is returned; otherwise the switchport field is null.",
"operationId": "getDeviceClients",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"type": "number",
"format": "float",
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameter t0. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"usage": {
"sent": 138.0,
"recv": 61.0
},
"id": "k74272e",
"description": "Miles's phone",
"mac": "22:33:44:55:66:77",
"ip": "1.2.3.4",
"user": "milesmeraki",
"vlan": "255",
"namedVlan": "Named Vlan",
"switchport": null,
"adaptivePolicyGroup": null,
"mdnsName": "Miles's phone",
"dhcpHostname": "MilesPhone"
}
]
}
}
},
"summary": "List the clients of a device, up to a maximum of a month ago",
"tags": [
"devices",
"monitor",
"clients"
]
}
},
"/devices/{serial}/liveTools/ping": {
"post": {
"description": "Enqueue a job to ping a target host from the device",
"operationId": "createDeviceLiveToolsPing",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "createDeviceLiveToolsPing",
"in": "body",
"schema": {
"type": "object",
"properties": {
"target": {
"type": "string",
"description": "FQDN, IPv4 or IPv6 address"
},
"count": {
"type": "integer",
"description": "Count parameter to pass to ping. [1..5], default 5"
}
},
"example": {
"target": "75.75.75.75",
"count": 2
},
"required": [
"target"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"pingId": {
"type": "string",
"description": "Id to check the status of your ping request."
},
"url": {
"type": "string",
"description": "GET this url to check the status of your ping request."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
},
"target": {
"type": "string",
"description": "IP address or FQDN to ping"
},
"count": {
"type": "integer",
"description": "Number of pings to send"
}
},
"description": "Ping request parameters"
},
"status": {
"type": "string",
"description": "Status of the ping request."
}
}
},
"examples": {
"application/json": {
"pingId": "1284392014819",
"url": "/devices/SERIAL/liveTools/ping/1284392014819",
"request": {
"serial": "Q234-ABCD-5678",
"target": "75.75.75.75",
"count": 2
},
"status": "complete"
}
}
}
},
"summary": "Enqueue a job to ping a target host from the device",
"tags": [
"devices",
"liveTools",
"ping"
]
}
},
"/devices/{serial}/liveTools/ping/{id}": {
"get": {
"description": "Return a ping job. Latency unit in response is in milliseconds. Size is in bytes.",
"operationId": "getDeviceLiveToolsPing",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"pingId": {
"type": "string",
"description": "Id to check the status of your ping request."
},
"url": {
"type": "string",
"description": "GET this url to check the status of your ping request."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
},
"target": {
"type": "string",
"description": "IP address or FQDN to ping"
},
"count": {
"type": "integer",
"description": "Number of pings to send"
}
},
"description": "Ping request parameters"
},
"status": {
"type": "string",
"description": "Status of the ping request."
},
"results": {
"type": "object",
"properties": {
"sent": {
"type": "integer",
"description": "Number of packets sent"
},
"received": {
"type": "integer",
"description": "Number of packets received"
},
"loss": {
"type": "object",
"properties": {
"percentage": {
"type": "number",
"format": "float",
"description": "Percentage of packets lost"
}
},
"description": "Lost packets"
},
"latencies": {
"type": "object",
"properties": {
"minimum": {
"type": "number",
"format": "float",
"description": "Minimum latency"
},
"average": {
"type": "number",
"format": "float",
"description": "Average latency"
},
"maximum": {
"type": "number",
"format": "float",
"description": "Maximum latency"
}
},
"description": "Packet latency stats"
},
"replies": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sequenceId": {
"type": "integer",
"description": "Sequence ID of the packet"
},
"size": {
"type": "integer",
"description": "Size of the packet in bytes"
},
"latency": {
"type": "number",
"format": "float",
"description": "Latency of the packet in milliseconds"
}
}
},
"description": "Received packets"
}
},
"description": "Results of the ping request."
}
}
},
"examples": {
"application/json": {
"pingId": "1284392014819",
"url": "/devices/SERIAL/liveTools/ping/1284392014819",
"request": {
"serial": "Q234-ABCD-5678",
"target": "75.75.75.75",
"count": 2
},
"status": "complete",
"results": {
"sent": 5,
"received": 5,
"loss": {
"percentage": 0.0
},
"latencies": {
"minimum": 15.8,
"average": 15.8,
"maximum": 15.9
},
"replies": [
{
"sequenceId": 1,
"size": 84,
"latency": 15.7
}
]
}
}
}
}
},
"summary": "Return a ping job",
"tags": [
"devices",
"liveTools",
"ping"
]
}
},
"/devices/{serial}/liveTools/pingDevice": {
"post": {
"description": "Enqueue a job to check connectivity status to the device",
"operationId": "createDeviceLiveToolsPingDevice",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "createDeviceLiveToolsPingDevice",
"in": "body",
"schema": {
"type": "object",
"properties": {
"count": {
"type": "integer",
"description": "Count parameter to pass to ping. [1..5], default 5"
}
},
"example": {
"count": 3
}
}
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"pingId": {
"type": "string",
"description": "Id to check the status of your ping request."
},
"url": {
"type": "string",
"description": "GET this url to check the status of your ping request."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
},
"target": {
"type": "string",
"description": "IP address or FQDN to ping"
},
"count": {
"type": "integer",
"description": "Number of pings to send"
}
},
"description": "Ping request parameters"
},
"status": {
"type": "string",
"description": "Status of the ping request."
}
}
},
"examples": {
"application/json": {
"pingId": "1284392014819",
"url": "/devices/SERIAL/liveTools/ping/1284392014819",
"request": {
"serial": "Q234-ABCD-5678",
"target": "75.75.75.75",
"count": 2
},
"status": "complete"
}
}
}
},
"summary": "Enqueue a job to check connectivity status to the device",
"tags": [
"devices",
"liveTools",
"pingDevice"
]
}
},
"/devices/{serial}/liveTools/pingDevice/{id}": {
"get": {
"description": "Return a ping device job. Latency unit in response is in milliseconds. Size is in bytes.",
"operationId": "getDeviceLiveToolsPingDevice",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"pingId": {
"type": "string",
"description": "Id to check the status of your ping request."
},
"url": {
"type": "string",
"description": "GET this url to check the status of your ping request."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
},
"target": {
"type": "string",
"description": "IP address or FQDN to ping"
},
"count": {
"type": "integer",
"description": "Number of pings to send"
}
},
"description": "Ping request parameters"
},
"status": {
"type": "string",
"description": "Status of the ping request."
},
"results": {
"type": "object",
"properties": {
"sent": {
"type": "integer",
"description": "Number of packets sent"
},
"received": {
"type": "integer",
"description": "Number of packets received"
},
"loss": {
"type": "object",
"properties": {
"percentage": {
"type": "number",
"format": "float",
"description": "Percentage of packets lost"
}
},
"description": "Lost packets"
},
"latencies": {
"type": "object",
"properties": {
"minimum": {
"type": "number",
"format": "float",
"description": "Minimum latency"
},
"average": {
"type": "number",
"format": "float",
"description": "Average latency"
},
"maximum": {
"type": "number",
"format": "float",
"description": "Maximum latency"
}
},
"description": "Packet latency stats"
},
"replies": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sequenceId": {
"type": "integer",
"description": "Sequence ID of the packet"
},
"size": {
"type": "integer",
"description": "Size of the packet in bytes"
},
"latency": {
"type": "number",
"format": "float",
"description": "Latency of the packet in milliseconds"
}
}
},
"description": "Received packets"
}
},
"description": "Results of the ping request."
}
}
},
"examples": {
"application/json": {
"pingId": "1284392014819",
"url": "/devices/SERIAL/liveTools/ping/1284392014819",
"request": {
"serial": "Q234-ABCD-5678",
"target": "75.75.75.75",
"count": 2
},
"status": "complete",
"results": {
"sent": 5,
"received": 5,
"loss": {
"percentage": 0.0
},
"latencies": {
"minimum": 15.8,
"average": 15.8,
"maximum": 15.9
},
"replies": [
{
"sequenceId": 1,
"size": 84,
"latency": 15.7
}
]
}
}
}
}
},
"summary": "Return a ping device job",
"tags": [
"devices",
"liveTools",
"pingDevice"
]
}
},
"/devices/{serial}/lldpCdp": {
"get": {
"description": "List LLDP and CDP information for a device",
"operationId": "getDeviceLldpCdp",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"sourceMac": "00:11:22:33:44:55",
"ports": {
"8": {
"cdp": {
"deviceId": "e0553d8cdf53",
"portId": "Port 10",
"address": "00:11:22:33:44:55",
"sourcePort": "8"
}
},
"12": {
"cdp": {
"deviceId": "e0553d8cdf53",
"portId": "Port 11",
"address": "00:11:22:33:44:55",
"sourcePort": "12"
},
"lldp": {
"systemName": "Meraki MS350-24X - Phineas",
"portId": "11",
"managementAddress": "00:11:22:33:44:55",
"sourcePort": "12"
}
}
}
}
}
}
},
"summary": "List LLDP and CDP information for a device",
"tags": [
"devices",
"monitor",
"lldpCdp"
]
}
},
"/devices/{serial}/lossAndLatencyHistory": {
"get": {
"description": "Get the uplink loss percentage and latency in milliseconds, and goodput in kilobits per second for a wired network device.",
"operationId": "getDeviceLossAndLatencyHistory",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 60 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 31 days after t0."
},
{
"type": "number",
"format": "float",
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
},
{
"type": "integer",
"name": "resolution",
"in": "query",
"description": "The time resolution in seconds for returned data. The valid resolutions are: 60, 600, 3600, 86400. The default is 60."
},
{
"type": "string",
"enum": [
"wan1",
"wan2",
"cellular"
],
"name": "uplink",
"in": "query",
"description": "The WAN uplink used to obtain the requested stats. Valid uplinks are wan1, wan2, cellular. The default is wan1."
},
{
"type": "string",
"name": "ip",
"in": "query",
"required": true,
"description": "The destination IP used to obtain the requested stats. This is required."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"startTime": "2018-10-09T22:18:27Z",
"endTime": "2018-10-09T22:19:27Z",
"lossPercent": 5.23,
"latencyMs": 324.12,
"goodput": 1493,
"jitter": 11.2
},
{
"startTime": "2018-10-09T22:19:27Z",
"endTime": "2018-10-09T22:20:27Z",
"lossPercent": 1.0,
"latencyMs": 43.0,
"goodput": 2567,
"jitter": 3.4
},
{
"startTime": "2018-10-09T22:20:27Z",
"endTime": "2018-10-09T22:21:27Z",
"lossPercent": 0.01,
"latencyMs": 44.02,
"goodput": 7899,
"jitter": 1.0
}
]
}
}
},
"summary": "Get the uplink loss percentage and latency in milliseconds, and goodput in kilobits per second for a wired network device.",
"tags": [
"devices",
"monitor",
"uplinks",
"lossAndLatencyHistory"
]
}
},
"/devices/{serial}/managementInterface": {
"get": {
"description": "Return the management interface settings for a device",
"operationId": "getDeviceManagementInterface",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"ddnsHostnames": {
"activeDdnsHostname": "mx1-sample.dynamic-m.com",
"ddnsHostnameWan1": "mx1-sample-1.dynamic-m.com",
"ddnsHostnameWan2": "mx1-sample-2.dynamic-m.com"
},
"wan1": {
"wanEnabled": "not configured",
"usingStaticIp": true,
"staticIp": "1.2.3.4",
"staticSubnetMask": "255.255.255.0",
"staticGatewayIp": "1.2.3.1",
"staticDns": [
"1.2.3.2",
"1.2.3.3"
],
"vlan": 7
},
"wan2": {
"wanEnabled": "enabled",
"usingStaticIp": false,
"vlan": 2
}
}
}
}
},
"summary": "Return the management interface settings for a device",
"tags": [
"devices",
"configure",
"managementInterface"
]
},
"put": {
"description": "Update the management interface settings for a device",
"operationId": "updateDeviceManagementInterface",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateDeviceManagementInterface",
"in": "body",
"schema": {
"type": "object",
"properties": {
"wan1": {
"type": "object",
"properties": {
"wanEnabled": {
"type": "string",
"enum": [
"enabled",
"disabled",
"not configured"
],
"description": "Enable or disable the interface (only for MX devices). Valid values are 'enabled', 'disabled', and 'not configured'."
},
"usingStaticIp": {
"type": "boolean",
"description": "Configure the interface to have static IP settings or use DHCP."
},
"staticIp": {
"type": "string",
"description": "The IP the device should use on the WAN."
},
"staticGatewayIp": {
"type": "string",
"description": "The IP of the gateway on the WAN."
},
"staticSubnetMask": {
"type": "string",
"description": "The subnet mask for the WAN."
},
"staticDns": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to two DNS IPs."
},
"vlan": {
"type": "integer",
"description": "The VLAN that management traffic should be tagged with. Applies whether usingStaticIp is true or false."
}
},
"description": "WAN 1 settings"
},
"wan2": {
"type": "object",
"properties": {
"wanEnabled": {
"type": "string",
"enum": [
"enabled",
"disabled",
"not configured"
],
"description": "Enable or disable the interface (only for MX devices). Valid values are 'enabled', 'disabled', and 'not configured'."
},
"usingStaticIp": {
"type": "boolean",
"description": "Configure the interface to have static IP settings or use DHCP."
},
"staticIp": {
"type": "string",
"description": "The IP the device should use on the WAN."
},
"staticGatewayIp": {
"type": "string",
"description": "The IP of the gateway on the WAN."
},
"staticSubnetMask": {
"type": "string",
"description": "The subnet mask for the WAN."
},
"staticDns": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to two DNS IPs."
},
"vlan": {
"type": "integer",
"description": "The VLAN that management traffic should be tagged with. Applies whether usingStaticIp is true or false."
}
},
"description": "WAN 2 settings (only for MX devices)"
}
},
"example": {
"wan1": {
"wanEnabled": "not configured",
"usingStaticIp": true,
"staticIp": "1.2.3.4",
"staticSubnetMask": "255.255.255.0",
"staticGatewayIp": "1.2.3.1",
"staticDns": [
"1.2.3.2",
"1.2.3.3"
],
"vlan": 7
},
"wan2": {
"wanEnabled": "enabled",
"usingStaticIp": false,
"vlan": 2
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"wan1": {
"wanEnabled": "not configured",
"usingStaticIp": true,
"staticIp": "1.2.3.4",
"staticSubnetMask": "255.255.255.0",
"staticGatewayIp": "1.2.3.1",
"staticDns": [
"1.2.3.2",
"1.2.3.3"
],
"vlan": 7
},
"wan2": {
"wanEnabled": "enabled",
"usingStaticIp": false,
"vlan": 2
}
}
}
}
},
"summary": "Update the management interface settings for a device",
"tags": [
"devices",
"configure",
"managementInterface"
]
}
},
"/devices/{serial}/reboot": {
"post": {
"description": "Reboot a device",
"operationId": "rebootDevice",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"202": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"success": true
}
}
}
},
"summary": "Reboot a device",
"tags": [
"devices",
"liveTools"
]
}
},
"/devices/{serial}/switch/ports": {
"get": {
"description": "List the switch ports for a switch",
"operationId": "getDeviceSwitchPorts",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"portId": {
"type": "string",
"description": "The identifier of the switch port."
},
"name": {
"type": "string",
"description": "The name of the switch port."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of tags of the switch port."
},
"enabled": {
"type": "boolean",
"description": "The status of the switch port."
},
"poeEnabled": {
"type": "boolean",
"description": "The PoE status of the switch port."
},
"type": {
"type": "string",
"enum": [
"trunk",
"access"
],
"description": "The type of the switch port ('trunk' or 'access')."
},
"vlan": {
"type": "integer",
"description": "The VLAN of the switch port. A null value will clear the value set for trunk ports."
},
"voiceVlan": {
"type": "integer",
"description": "The voice VLAN of the switch port. Only applicable to access ports."
},
"allowedVlans": {
"type": "string",
"description": "The VLANs allowed on the switch port. Only applicable to trunk ports."
},
"isolationEnabled": {
"type": "boolean",
"description": "The isolation status of the switch port."
},
"rstpEnabled": {
"type": "boolean",
"description": "The rapid spanning tree protocol status."
},
"stpGuard": {
"type": "string",
"enum": [
"disabled",
"root guard",
"bpdu guard",
"loop guard"
],
"description": "The state of the STP guard ('disabled', 'root guard', 'bpdu guard' or 'loop guard')."
},
"linkNegotiation": {
"type": "string",
"description": "The link speed for the switch port."
},
"linkNegotiationCapabilities": {
"type": "array",
"items": {
"type": "string"
},
"description": "Available link speeds for the switch port."
},
"portScheduleId": {
"type": "string",
"description": "The ID of the port schedule. A value of null will clear the port schedule."
},
"udld": {
"type": "string",
"enum": [
"Alert only",
"Enforce"
],
"description": "The action to take when Unidirectional Link is detected (Alert only, Enforce). Default configuration is Alert only."
},
"accessPolicyType": {
"type": "string",
"enum": [
"Open",
"Custom access policy",
"MAC allow list",
"Sticky MAC allow list"
],
"description": "The type of the access policy of the switch port. Only applicable to access ports. Can be one of 'Open', 'Custom access policy', 'MAC allow list' or 'Sticky MAC allow list'."
},
"accessPolicyNumber": {
"type": "integer",
"description": "The number of a custom access policy to configure on the switch port. Only applicable when 'accessPolicyType' is 'Custom access policy'."
},
"macAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only devices with MAC addresses specified in this list will have access to this port. Up to 20 MAC addresses can be defined. Only applicable when 'accessPolicyType' is 'MAC allow list'."
},
"stickyMacAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "The initial list of MAC addresses for sticky Mac allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stickyMacAllowListLimit": {
"type": "integer",
"description": "The maximum number of MAC addresses for sticky MAC allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stormControlEnabled": {
"type": "boolean",
"description": "The storm control status of the switch port."
},
"adaptivePolicyGroupId": {
"type": "string",
"description": "The adaptive policy group ID that will be used to tag traffic through this switch port. This ID must pre-exist during the configuration, else needs to be created using adaptivePolicy/groups API. Cannot be applied to a port on a switch bound to profile."
},
"peerSgtCapable": {
"type": "boolean",
"description": "If true, Peer SGT is enabled for traffic through this switch port. Applicable to trunk port only, not access port. Cannot be applied to a port on a switch bound to profile."
},
"flexibleStackingEnabled": {
"type": "boolean",
"description": "For supported switches (e.g. MS420/MS425), whether or not the port has flexible stacking enabled."
}
}
}
},
"examples": {
"application/json": [
{
"portId": "1",
"name": "My switch port",
"tags": [
"tag1",
"tag2"
],
"enabled": true,
"poeEnabled": true,
"type": "access",
"vlan": 10,
"voiceVlan": 20,
"allowedVlans": "1,3,5-10",
"isolationEnabled": false,
"rstpEnabled": true,
"stpGuard": "disabled",
"linkNegotiation": "Auto negotiate",
"linkNegotiationCapabilities": [
"Auto negotiate",
"1 Gigabit full duplex (auto)"
],
"portScheduleId": "1234",
"udld": "Alert only",
"accessPolicyType": "Sticky MAC allow list",
"accessPolicyNumber": 2,
"macAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowListLimit": 5,
"stormControlEnabled": true,
"adaptivePolicyGroupId": "123",
"peerSgtCapable": false,
"flexibleStackingEnabled": true
}
]
}
}
},
"summary": "List the switch ports for a switch",
"tags": [
"switch",
"configure",
"ports"
]
}
},
"/devices/{serial}/switch/ports/cycle": {
"post": {
"description": "Cycle a set of switch ports",
"operationId": "cycleDeviceSwitchPorts",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "cycleDeviceSwitchPorts",
"in": "body",
"schema": {
"type": "object",
"properties": {
"ports": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of switch ports. Example: [1, 2-5, 1_MA-MOD-8X10G_1, 1_MA-MOD-8X10G_2-1_MA-MOD-8X10G_8]"
}
},
"example": {
"ports": [
"1",
"2-5",
"1_MA-MOD-8X10G_1",
"1_MA-MOD-8X10G_2-1_MA-MOD-8X10G_8"
]
},
"required": [
"ports"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"ports": [
"1",
"2-5",
"1_MA-MOD-8X10G_1",
"1_MA-MOD-8X10G_2-1_MA-MOD-8X10G_8"
]
}
}
}
},
"summary": "Cycle a set of switch ports",
"tags": [
"switch",
"liveTools",
"ports"
]
}
},
"/devices/{serial}/switch/ports/statuses": {
"get": {
"description": "Return the status for all the ports of a switch",
"operationId": "getDeviceSwitchPortsStatuses",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"type": "number",
"format": "float",
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameter t0. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"portId": "1",
"enabled": true,
"status": "Connected",
"isUplink": false,
"errors": [
"PoE overload",
"Very high proportion of CRC errors"
],
"warnings": [
"SecureConnect authentication in progress",
"PoE port was denied power",
"High proportion of CRC errors"
],
"speed": "10 Gbps",
"duplex": "full",
"usageInKb": {
"total": 40867,
"sent": 23008,
"recv": 17859
},
"cdp": {
"systemName": "",
"platform": "MS350-24X",
"deviceId": "0c8ddbddee:ff",
"portId": "Port 20",
"nativeVlan": 1,
"address": "10.0,0.1",
"managementAddress": "10.0.0.100",
"version": "1",
"vtpManagementDomain": "",
"capabilities": "Switch"
},
"lldp": {
"systemName": "MS350-24X - Test",
"systemDescription": "MS350-24X Cloud Managed PoE Switch",
"portId": "20",
"portDescription": "Port 20",
"chassisId": "0c:8d:db:dd:ee:ff",
"managementVlan": 1,
"portVlan": 1,
"managementAddress": "10.0.0.100",
"systemCapabilities": "switch"
},
"clientCount": 10,
"powerUsageInWh": 55.9,
"trafficInKbps": {
"total": 2.2,
"sent": 1.2,
"recv": 1.0
},
"securePort": {
"enabled": true,
"active": true,
"authenticationStatus": "Authentication in progress",
"configOverrides": {
"type": "trunk",
"allowedVlans": "all",
"vlan": 12,
"voiceVlan": null
}
}
}
]
}
}
},
"summary": "Return the status for all the ports of a switch",
"tags": [
"switch",
"monitor",
"ports",
"statuses"
]
}
},
"/devices/{serial}/switch/ports/statuses/packets": {
"get": {
"description": "Return the packet counters for all the ports of a switch",
"operationId": "getDeviceSwitchPortsStatusesPackets",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 1 day from today."
},
{
"type": "number",
"format": "float",
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameter t0. The value must be in seconds and be less than or equal to 1 day. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"portId": "1",
"packets": [
{
"desc": "Total",
"total": 112081,
"sent": 104135,
"recv": 7946,
"ratePerSec": {
"total": 1,
"sent": 1,
"recv": 0
}
},
{
"desc": "Broadcast",
"total": 30884,
"sent": 30370,
"recv": 514,
"ratePerSec": {
"total": 0,
"sent": 0,
"recv": 0
}
},
{
"desc": "Multicast",
"total": 67620,
"sent": 66849,
"recv": 771,
"ratePerSec": {
"total": 0,
"sent": 0,
"recv": 0
}
},
{
"desc": "CRC align errors",
"total": 0,
"sent": 0,
"recv": 0,
"ratePerSec": {
"total": 0,
"sent": 0,
"recv": 0
}
}
]
}
]
}
}
},
"summary": "Return the packet counters for all the ports of a switch",
"tags": [
"switch",
"monitor",
"ports",
"statuses",
"packets"
]
}
},
"/devices/{serial}/switch/ports/{portId}": {
"get": {
"description": "Return a switch port",
"operationId": "getDeviceSwitchPort",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "portId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"portId": {
"type": "string",
"description": "The identifier of the switch port."
},
"name": {
"type": "string",
"description": "The name of the switch port."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of tags of the switch port."
},
"enabled": {
"type": "boolean",
"description": "The status of the switch port."
},
"poeEnabled": {
"type": "boolean",
"description": "The PoE status of the switch port."
},
"type": {
"type": "string",
"enum": [
"trunk",
"access"
],
"description": "The type of the switch port ('trunk' or 'access')."
},
"vlan": {
"type": "integer",
"description": "The VLAN of the switch port. A null value will clear the value set for trunk ports."
},
"voiceVlan": {
"type": "integer",
"description": "The voice VLAN of the switch port. Only applicable to access ports."
},
"allowedVlans": {
"type": "string",
"description": "The VLANs allowed on the switch port. Only applicable to trunk ports."
},
"isolationEnabled": {
"type": "boolean",
"description": "The isolation status of the switch port."
},
"rstpEnabled": {
"type": "boolean",
"description": "The rapid spanning tree protocol status."
},
"stpGuard": {
"type": "string",
"enum": [
"disabled",
"root guard",
"bpdu guard",
"loop guard"
],
"description": "The state of the STP guard ('disabled', 'root guard', 'bpdu guard' or 'loop guard')."
},
"linkNegotiation": {
"type": "string",
"description": "The link speed for the switch port."
},
"linkNegotiationCapabilities": {
"type": "array",
"items": {
"type": "string"
},
"description": "Available link speeds for the switch port."
},
"portScheduleId": {
"type": "string",
"description": "The ID of the port schedule. A value of null will clear the port schedule."
},
"udld": {
"type": "string",
"enum": [
"Alert only",
"Enforce"
],
"description": "The action to take when Unidirectional Link is detected (Alert only, Enforce). Default configuration is Alert only."
},
"accessPolicyType": {
"type": "string",
"enum": [
"Open",
"Custom access policy",
"MAC allow list",
"Sticky MAC allow list"
],
"description": "The type of the access policy of the switch port. Only applicable to access ports. Can be one of 'Open', 'Custom access policy', 'MAC allow list' or 'Sticky MAC allow list'."
},
"accessPolicyNumber": {
"type": "integer",
"description": "The number of a custom access policy to configure on the switch port. Only applicable when 'accessPolicyType' is 'Custom access policy'."
},
"macAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only devices with MAC addresses specified in this list will have access to this port. Up to 20 MAC addresses can be defined. Only applicable when 'accessPolicyType' is 'MAC allow list'."
},
"stickyMacAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "The initial list of MAC addresses for sticky Mac allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stickyMacAllowListLimit": {
"type": "integer",
"description": "The maximum number of MAC addresses for sticky MAC allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stormControlEnabled": {
"type": "boolean",
"description": "The storm control status of the switch port."
},
"adaptivePolicyGroupId": {
"type": "string",
"description": "The adaptive policy group ID that will be used to tag traffic through this switch port. This ID must pre-exist during the configuration, else needs to be created using adaptivePolicy/groups API. Cannot be applied to a port on a switch bound to profile."
},
"peerSgtCapable": {
"type": "boolean",
"description": "If true, Peer SGT is enabled for traffic through this switch port. Applicable to trunk port only, not access port. Cannot be applied to a port on a switch bound to profile."
},
"flexibleStackingEnabled": {
"type": "boolean",
"description": "For supported switches (e.g. MS420/MS425), whether or not the port has flexible stacking enabled."
}
}
},
"examples": {
"application/json": {
"portId": "1",
"name": "My switch port",
"tags": [
"tag1",
"tag2"
],
"enabled": true,
"poeEnabled": true,
"type": "access",
"vlan": 10,
"voiceVlan": 20,
"allowedVlans": "1,3,5-10",
"isolationEnabled": false,
"rstpEnabled": true,
"stpGuard": "disabled",
"linkNegotiation": "Auto negotiate",
"linkNegotiationCapabilities": [
"Auto negotiate",
"1 Gigabit full duplex (auto)"
],
"portScheduleId": "1234",
"udld": "Alert only",
"accessPolicyType": "Sticky MAC allow list",
"accessPolicyNumber": 2,
"macAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowListLimit": 5,
"stormControlEnabled": true,
"adaptivePolicyGroupId": "123",
"peerSgtCapable": false,
"flexibleStackingEnabled": true
}
}
}
},
"summary": "Return a switch port",
"tags": [
"switch",
"configure",
"ports"
]
},
"put": {
"description": "Update a switch port",
"operationId": "updateDeviceSwitchPort",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "portId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateDeviceSwitchPort",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the switch port."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of tags of the switch port."
},
"enabled": {
"type": "boolean",
"description": "The status of the switch port."
},
"poeEnabled": {
"type": "boolean",
"description": "The PoE status of the switch port."
},
"type": {
"type": "string",
"enum": [
"trunk",
"access"
],
"description": "The type of the switch port ('trunk' or 'access')."
},
"vlan": {
"type": "integer",
"description": "The VLAN of the switch port. A null value will clear the value set for trunk ports."
},
"voiceVlan": {
"type": "integer",
"description": "The voice VLAN of the switch port. Only applicable to access ports."
},
"allowedVlans": {
"type": "string",
"description": "The VLANs allowed on the switch port. Only applicable to trunk ports."
},
"isolationEnabled": {
"type": "boolean",
"description": "The isolation status of the switch port."
},
"rstpEnabled": {
"type": "boolean",
"description": "The rapid spanning tree protocol status."
},
"stpGuard": {
"type": "string",
"enum": [
"disabled",
"root guard",
"bpdu guard",
"loop guard"
],
"description": "The state of the STP guard ('disabled', 'root guard', 'bpdu guard' or 'loop guard')."
},
"linkNegotiation": {
"type": "string",
"description": "The link speed for the switch port."
},
"portScheduleId": {
"type": "string",
"description": "The ID of the port schedule. A value of null will clear the port schedule."
},
"udld": {
"type": "string",
"enum": [
"Alert only",
"Enforce"
],
"description": "The action to take when Unidirectional Link is detected (Alert only, Enforce). Default configuration is Alert only."
},
"accessPolicyType": {
"type": "string",
"enum": [
"Open",
"Custom access policy",
"MAC allow list",
"Sticky MAC allow list"
],
"description": "The type of the access policy of the switch port. Only applicable to access ports. Can be one of 'Open', 'Custom access policy', 'MAC allow list' or 'Sticky MAC allow list'."
},
"accessPolicyNumber": {
"type": "integer",
"description": "The number of a custom access policy to configure on the switch port. Only applicable when 'accessPolicyType' is 'Custom access policy'."
},
"macAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only devices with MAC addresses specified in this list will have access to this port. Up to 20 MAC addresses can be defined. Only applicable when 'accessPolicyType' is 'MAC allow list'."
},
"stickyMacAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "The initial list of MAC addresses for sticky Mac allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stickyMacAllowListLimit": {
"type": "integer",
"description": "The maximum number of MAC addresses for sticky MAC allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stormControlEnabled": {
"type": "boolean",
"description": "The storm control status of the switch port."
},
"adaptivePolicyGroupId": {
"type": "string",
"description": "The adaptive policy group ID that will be used to tag traffic through this switch port. This ID must pre-exist during the configuration, else needs to be created using adaptivePolicy/groups API. Cannot be applied to a port on a switch bound to profile."
},
"peerSgtCapable": {
"type": "boolean",
"description": "If true, Peer SGT is enabled for traffic through this switch port. Applicable to trunk port only, not access port. Cannot be applied to a port on a switch bound to profile."
},
"flexibleStackingEnabled": {
"type": "boolean",
"description": "For supported switches (e.g. MS420/MS425), whether or not the port has flexible stacking enabled."
}
},
"example": {
"name": "My switch port",
"tags": [
"tag1",
"tag2"
],
"enabled": true,
"poeEnabled": true,
"type": "access",
"vlan": 10,
"voiceVlan": 20,
"allowedVlans": "1,3,5-10",
"isolationEnabled": false,
"rstpEnabled": true,
"stpGuard": "disabled",
"linkNegotiation": "Auto negotiate",
"portScheduleId": "1234",
"udld": "Alert only",
"accessPolicyType": "Sticky MAC allow list",
"accessPolicyNumber": 2,
"macAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowListLimit": 5,
"stormControlEnabled": true,
"adaptivePolicyGroupId": "123",
"peerSgtCapable": false,
"flexibleStackingEnabled": true
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"portId": {
"type": "string",
"description": "The identifier of the switch port."
},
"name": {
"type": "string",
"description": "The name of the switch port."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of tags of the switch port."
},
"enabled": {
"type": "boolean",
"description": "The status of the switch port."
},
"poeEnabled": {
"type": "boolean",
"description": "The PoE status of the switch port."
},
"type": {
"type": "string",
"enum": [
"trunk",
"access"
],
"description": "The type of the switch port ('trunk' or 'access')."
},
"vlan": {
"type": "integer",
"description": "The VLAN of the switch port. A null value will clear the value set for trunk ports."
},
"voiceVlan": {
"type": "integer",
"description": "The voice VLAN of the switch port. Only applicable to access ports."
},
"allowedVlans": {
"type": "string",
"description": "The VLANs allowed on the switch port. Only applicable to trunk ports."
},
"isolationEnabled": {
"type": "boolean",
"description": "The isolation status of the switch port."
},
"rstpEnabled": {
"type": "boolean",
"description": "The rapid spanning tree protocol status."
},
"stpGuard": {
"type": "string",
"enum": [
"disabled",
"root guard",
"bpdu guard",
"loop guard"
],
"description": "The state of the STP guard ('disabled', 'root guard', 'bpdu guard' or 'loop guard')."
},
"linkNegotiation": {
"type": "string",
"description": "The link speed for the switch port."
},
"linkNegotiationCapabilities": {
"type": "array",
"items": {
"type": "string"
},
"description": "Available link speeds for the switch port."
},
"portScheduleId": {
"type": "string",
"description": "The ID of the port schedule. A value of null will clear the port schedule."
},
"udld": {
"type": "string",
"enum": [
"Alert only",
"Enforce"
],
"description": "The action to take when Unidirectional Link is detected (Alert only, Enforce). Default configuration is Alert only."
},
"accessPolicyType": {
"type": "string",
"enum": [
"Open",
"Custom access policy",
"MAC allow list",
"Sticky MAC allow list"
],
"description": "The type of the access policy of the switch port. Only applicable to access ports. Can be one of 'Open', 'Custom access policy', 'MAC allow list' or 'Sticky MAC allow list'."
},
"accessPolicyNumber": {
"type": "integer",
"description": "The number of a custom access policy to configure on the switch port. Only applicable when 'accessPolicyType' is 'Custom access policy'."
},
"macAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only devices with MAC addresses specified in this list will have access to this port. Up to 20 MAC addresses can be defined. Only applicable when 'accessPolicyType' is 'MAC allow list'."
},
"stickyMacAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "The initial list of MAC addresses for sticky Mac allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stickyMacAllowListLimit": {
"type": "integer",
"description": "The maximum number of MAC addresses for sticky MAC allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stormControlEnabled": {
"type": "boolean",
"description": "The storm control status of the switch port."
},
"adaptivePolicyGroupId": {
"type": "string",
"description": "The adaptive policy group ID that will be used to tag traffic through this switch port. This ID must pre-exist during the configuration, else needs to be created using adaptivePolicy/groups API. Cannot be applied to a port on a switch bound to profile."
},
"peerSgtCapable": {
"type": "boolean",
"description": "If true, Peer SGT is enabled for traffic through this switch port. Applicable to trunk port only, not access port. Cannot be applied to a port on a switch bound to profile."
},
"flexibleStackingEnabled": {
"type": "boolean",
"description": "For supported switches (e.g. MS420/MS425), whether or not the port has flexible stacking enabled."
}
}
},
"examples": {
"application/json": {
"portId": "1",
"name": "My switch port",
"tags": [
"tag1",
"tag2"
],
"enabled": true,
"poeEnabled": true,
"type": "access",
"vlan": 10,
"voiceVlan": 20,
"allowedVlans": "1,3,5-10",
"isolationEnabled": false,
"rstpEnabled": true,
"stpGuard": "disabled",
"linkNegotiation": "Auto negotiate",
"linkNegotiationCapabilities": [
"Auto negotiate",
"1 Gigabit full duplex (auto)"
],
"portScheduleId": "1234",
"udld": "Alert only",
"accessPolicyType": "Sticky MAC allow list",
"accessPolicyNumber": 2,
"macAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowListLimit": 5,
"stormControlEnabled": true,
"adaptivePolicyGroupId": "123",
"peerSgtCapable": false,
"flexibleStackingEnabled": true
}
}
}
},
"summary": "Update a switch port",
"tags": [
"switch",
"configure",
"ports"
]
}
},
"/devices/{serial}/switch/routing/interfaces": {
"get": {
"description": "List layer 3 interfaces for a switch. Those for a stack may be found under switch stack routing.",
"operationId": "getDeviceSwitchRoutingInterfaces",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"interfaceId": {
"type": "string",
"description": "The id"
},
"name": {
"type": "string",
"description": "The name"
},
"subnet": {
"type": "string",
"description": "IPv4 subnet"
},
"interfaceIp": {
"type": "string",
"description": "IPv4 address"
},
"multicastRouting": {
"type": "string",
"description": "Multicast routing status"
},
"vlanId": {
"type": "integer",
"description": "VLAN id"
},
"defaultGateway": {
"type": "string",
"description": "IPv4 default gateway"
},
"ospfSettings": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv4 area"
}
},
"description": "IPv4 OSPF Settings"
},
"ospfV3": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv6 area"
}
},
"description": "IPv6 OSPF Settings"
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"description": "Assignment mode"
},
"address": {
"type": "string",
"description": "IPv6 address"
},
"prefix": {
"type": "string",
"description": "IPv6 subnet"
},
"gateway": {
"type": "string",
"description": "IPv6 gateway"
}
},
"description": "IPv6 addressing"
}
}
}
},
"examples": {
"application/json": [
{
"interfaceId": "1234",
"name": "L3 interface",
"subnet": "192.168.1.0/24",
"interfaceIp": "192.168.1.2",
"multicastRouting": "disabled",
"vlanId": 100,
"defaultGateway": "192.168.1.1",
"ospfSettings": {
"area": "0",
"cost": 1,
"isPassiveEnabled": true
},
"ospfV3": {
"area": "1",
"cost": 2,
"isPassiveEnabled": true
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3:4::1",
"prefix": "1:2:3:4::/48",
"gateway": "1:2:3:4::2"
}
}
]
}
}
},
"summary": "List layer 3 interfaces for a switch",
"tags": [
"switch",
"configure",
"routing",
"interfaces"
]
},
"post": {
"description": "Create a layer 3 interface for a switch",
"operationId": "createDeviceSwitchRoutingInterface",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "createDeviceSwitchRoutingInterface",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A friendly name or description for the interface or VLAN."
},
"subnet": {
"type": "string",
"description": "The network that this routed interface is on, in CIDR notation (ex. 10.1.1.0/24)."
},
"interfaceIp": {
"type": "string",
"description": "The IP address this switch will use for layer 3 routing on this VLAN or subnet. This cannot be the same as the switch's management IP."
},
"multicastRouting": {
"type": "string",
"enum": [
"disabled",
"enabled",
"IGMP snooping querier"
],
"description": "Enable multicast support if, multicast routing between VLANs is required. Options are: 'disabled', 'enabled' or 'IGMP snooping querier'. Default is 'disabled'."
},
"vlanId": {
"type": "integer",
"description": "The VLAN this routed interface is on. VLAN must be between 1 and 4094."
},
"defaultGateway": {
"type": "string",
"description": "The next hop for any traffic that isn't going to a directly connected subnet or over a static route. This IP address must exist in a subnet with a routed interface. Required if this is the first IPv4 interface."
},
"ospfSettings": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "The OSPF area to which this interface should belong. Can be either 'disabled' or the identifier of an existing OSPF area. Defaults to 'disabled'."
},
"cost": {
"type": "integer",
"description": "The path cost for this interface. Defaults to 1, but can be increased up to 65535 to give lower priority."
},
"isPassiveEnabled": {
"type": "boolean",
"description": "When enabled, OSPF will not run on the interface, but the subnet will still be advertised."
}
},
"description": "The OSPF routing settings of the interface."
},
"ospfV3": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "The OSPFv3 area to which this interface should belong. Can be either 'disabled' or the identifier of an existing OSPFv3 area. Defaults to 'disabled'."
},
"cost": {
"type": "integer",
"description": "The path cost for this interface. Defaults to 1, but can be increased up to 65535 to give lower priority."
},
"isPassiveEnabled": {
"type": "boolean",
"description": "When enabled, OSPFv3 will not run on the interface, but the subnet will still be advertised."
}
},
"description": "The OSPFv3 routing settings of the interface."
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"description": "The IPv6 assignment mode for the interface. Can be either 'eui-64' or 'static'."
},
"prefix": {
"type": "string",
"description": "The IPv6 prefix of the interface. Required if IPv6 object is included."
},
"address": {
"type": "string",
"description": "The IPv6 address of the interface. Required if assignmentMode is 'static'. Must not be included if assignmentMode is 'eui-64'."
},
"gateway": {
"type": "string",
"description": "The IPv6 default gateway of the interface. Required if prefix is defined and this is the first interface with IPv6 configured for the switch."
}
},
"description": "The IPv6 settings of the interface."
}
},
"example": {
"name": "L3 interface",
"subnet": "192.168.1.0/24",
"interfaceIp": "192.168.1.2",
"multicastRouting": "disabled",
"vlanId": 100,
"defaultGateway": "192.168.1.1",
"ospfSettings": {
"area": "0",
"cost": 1,
"isPassiveEnabled": true
},
"ospfV3": {
"area": "1",
"cost": 2,
"isPassiveEnabled": true
},
"ipv6": {
"assignmentMode": "static",
"prefix": "1:2:3:4::/48",
"address": "1:2:3:4::1",
"gateway": "1:2:3:4::2"
}
}
}
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"interfaceId": {
"type": "string",
"description": "The id"
},
"name": {
"type": "string",
"description": "The name"
},
"subnet": {
"type": "string",
"description": "IPv4 subnet"
},
"interfaceIp": {
"type": "string",
"description": "IPv4 address"
},
"multicastRouting": {
"type": "string",
"description": "Multicast routing status"
},
"vlanId": {
"type": "integer",
"description": "VLAN id"
},
"defaultGateway": {
"type": "string",
"description": "IPv4 default gateway"
},
"ospfSettings": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv4 area"
}
},
"description": "IPv4 OSPF Settings"
},
"ospfV3": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv6 area"
}
},
"description": "IPv6 OSPF Settings"
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"description": "Assignment mode"
},
"address": {
"type": "string",
"description": "IPv6 address"
},
"prefix": {
"type": "string",
"description": "IPv6 subnet"
},
"gateway": {
"type": "string",
"description": "IPv6 gateway"
}
},
"description": "IPv6 addressing"
}
}
},
"examples": {
"application/json": {
"interfaceId": "1234",
"name": "L3 interface",
"subnet": "192.168.1.0/24",
"interfaceIp": "192.168.1.2",
"multicastRouting": "disabled",
"vlanId": 100,
"defaultGateway": "192.168.1.1",
"ospfSettings": {
"area": "0",
"cost": 1,
"isPassiveEnabled": true
},
"ospfV3": {
"area": "1",
"cost": 2,
"isPassiveEnabled": true
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3:4::1",
"prefix": "1:2:3:4::/48",
"gateway": "1:2:3:4::2"
}
}
}
}
},
"summary": "Create a layer 3 interface for a switch",
"tags": [
"switch",
"configure",
"routing",
"interfaces"
]
}
},
"/devices/{serial}/switch/routing/interfaces/{interfaceId}": {
"get": {
"description": "Return a layer 3 interface for a switch",
"operationId": "getDeviceSwitchRoutingInterface",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "interfaceId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"interfaceId": {
"type": "string",
"description": "The id"
},
"name": {
"type": "string",
"description": "The name"
},
"subnet": {
"type": "string",
"description": "IPv4 subnet"
},
"interfaceIp": {
"type": "string",
"description": "IPv4 address"
},
"multicastRouting": {
"type": "string",
"description": "Multicast routing status"
},
"vlanId": {
"type": "integer",
"description": "VLAN id"
},
"defaultGateway": {
"type": "string",
"description": "IPv4 default gateway"
},
"ospfSettings": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv4 area"
}
},
"description": "IPv4 OSPF Settings"
},
"ospfV3": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv6 area"
}
},
"description": "IPv6 OSPF Settings"
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"description": "Assignment mode"
},
"address": {
"type": "string",
"description": "IPv6 address"
},
"prefix": {
"type": "string",
"description": "IPv6 subnet"
},
"gateway": {
"type": "string",
"description": "IPv6 gateway"
}
},
"description": "IPv6 addressing"
}
}
},
"examples": {
"application/json": {
"interfaceId": "1234",
"name": "L3 interface",
"subnet": "192.168.1.0/24",
"interfaceIp": "192.168.1.2",
"multicastRouting": "disabled",
"vlanId": 100,
"defaultGateway": "192.168.1.1",
"ospfSettings": {
"area": "0",
"cost": 1,
"isPassiveEnabled": true
},
"ospfV3": {
"area": "1",
"cost": 2,
"isPassiveEnabled": true
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3:4::1",
"prefix": "1:2:3:4::/48",
"gateway": "1:2:3:4::2"
}
}
}
}
},
"summary": "Return a layer 3 interface for a switch",
"tags": [
"switch",
"configure",
"routing",
"interfaces"
]
},
"put": {
"description": "Update a layer 3 interface for a switch",
"operationId": "updateDeviceSwitchRoutingInterface",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "interfaceId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateDeviceSwitchRoutingInterface",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A friendly name or description for the interface or VLAN."
},
"subnet": {
"type": "string",
"description": "The network that this routed interface is on, in CIDR notation (ex. 10.1.1.0/24)."
},
"interfaceIp": {
"type": "string",
"description": "The IP address this switch will use for layer 3 routing on this VLAN or subnet. This cannot be the same as the switch's management IP."
},
"multicastRouting": {
"type": "string",
"enum": [
"disabled",
"enabled",
"IGMP snooping querier"
],
"description": "Enable multicast support if, multicast routing between VLANs is required. Options are: 'disabled', 'enabled' or 'IGMP snooping querier'. Default is 'disabled'."
},
"vlanId": {
"type": "integer",
"description": "The VLAN this routed interface is on. VLAN must be between 1 and 4094."
},
"defaultGateway": {
"type": "string",
"description": "The next hop for any traffic that isn't going to a directly connected subnet or over a static route. This IP address must exist in a subnet with a routed interface. Required if this is the first IPv4 interface."
},
"ospfSettings": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "The OSPF area to which this interface should belong. Can be either 'disabled' or the identifier of an existing OSPF area. Defaults to 'disabled'."
},
"cost": {
"type": "integer",
"description": "The path cost for this interface. Defaults to 1, but can be increased up to 65535 to give lower priority."
},
"isPassiveEnabled": {
"type": "boolean",
"description": "When enabled, OSPF will not run on the interface, but the subnet will still be advertised."
}
},
"description": "The OSPF routing settings of the interface."
},
"ospfV3": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "The OSPFv3 area to which this interface should belong. Can be either 'disabled' or the identifier of an existing OSPFv3 area. Defaults to 'disabled'."
},
"cost": {
"type": "integer",
"description": "The path cost for this interface. Defaults to 1, but can be increased up to 65535 to give lower priority."
},
"isPassiveEnabled": {
"type": "boolean",
"description": "When enabled, OSPFv3 will not run on the interface, but the subnet will still be advertised."
}
},
"description": "The OSPFv3 routing settings of the interface."
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"description": "The IPv6 assignment mode for the interface. Can be either 'eui-64' or 'static'."
},
"prefix": {
"type": "string",
"description": "The IPv6 prefix of the interface. Required if IPv6 object is included."
},
"address": {
"type": "string",
"description": "The IPv6 address of the interface. Required if assignmentMode is 'static'. Must not be included if assignmentMode is 'eui-64'."
},
"gateway": {
"type": "string",
"description": "The IPv6 default gateway of the interface. Required if prefix is defined and this is the first interface with IPv6 configured for the switch."
}
},
"description": "The IPv6 settings of the interface."
}
},
"example": {
"name": "L3 interface",
"subnet": "192.168.1.0/24",
"interfaceIp": "192.168.1.2",
"multicastRouting": "disabled",
"vlanId": 100,
"defaultGateway": "192.168.1.1",
"ospfSettings": {
"area": "0",
"cost": 1,
"isPassiveEnabled": true
},
"ospfV3": {
"area": "1",
"cost": 2,
"isPassiveEnabled": true
},
"ipv6": {
"assignmentMode": "static",
"prefix": "1:2:3:4::/48",
"address": "1:2:3:4::1",
"gateway": "1:2:3:4::2"
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"interfaceId": {
"type": "string",
"description": "The id"
},
"name": {
"type": "string",
"description": "The name"
},
"subnet": {
"type": "string",
"description": "IPv4 subnet"
},
"interfaceIp": {
"type": "string",
"description": "IPv4 address"
},
"multicastRouting": {
"type": "string",
"description": "Multicast routing status"
},
"vlanId": {
"type": "integer",
"description": "VLAN id"
},
"defaultGateway": {
"type": "string",
"description": "IPv4 default gateway"
},
"ospfSettings": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv4 area"
}
},
"description": "IPv4 OSPF Settings"
},
"ospfV3": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv6 area"
}
},
"description": "IPv6 OSPF Settings"
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"description": "Assignment mode"
},
"address": {
"type": "string",
"description": "IPv6 address"
},
"prefix": {
"type": "string",
"description": "IPv6 subnet"
},
"gateway": {
"type": "string",
"description": "IPv6 gateway"
}
},
"description": "IPv6 addressing"
}
}
},
"examples": {
"application/json": {
"interfaceId": "1234",
"name": "L3 interface",
"subnet": "192.168.1.0/24",
"interfaceIp": "192.168.1.2",
"multicastRouting": "disabled",
"vlanId": 100,
"defaultGateway": "192.168.1.1",
"ospfSettings": {
"area": "0",
"cost": 1,
"isPassiveEnabled": true
},
"ospfV3": {
"area": "1",
"cost": 2,
"isPassiveEnabled": true
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3:4::1",
"prefix": "1:2:3:4::/48",
"gateway": "1:2:3:4::2"
}
}
}
}
},
"summary": "Update a layer 3 interface for a switch",
"tags": [
"switch",
"configure",
"routing",
"interfaces"
]
},
"delete": {
"description": "Delete a layer 3 interface from the switch",
"operationId": "deleteDeviceSwitchRoutingInterface",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "interfaceId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a layer 3 interface from the switch",
"tags": [
"switch",
"configure",
"routing",
"interfaces"
]
}
},
"/devices/{serial}/switch/routing/interfaces/{interfaceId}/dhcp": {
"get": {
"description": "Return a layer 3 interface DHCP configuration for a switch",
"operationId": "getDeviceSwitchRoutingInterfaceDhcp",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "interfaceId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"dhcpMode": "dhcpServer",
"dhcpLeaseTime": "1 day",
"dnsNameserversOption": "custom",
"dnsCustomNameservers": [
"8.8.8.8, 8.8.4.4"
],
"bootOptionsEnabled": true,
"bootNextServer": "1.2.3.4",
"bootFileName": "home_boot_file",
"dhcpOptions": [
{
"code": "5",
"type": "text",
"value": "five"
}
],
"reservedIpRanges": [
{
"start": "192.168.1.1",
"end": "192.168.1.10",
"comment": "A reserved IP range"
}
],
"fixedIpAssignments": [
{
"mac": "22:33:44:55:66:77",
"name": "Cisco Meraki valued client",
"ip": "192.168.1.12"
}
]
}
}
}
},
"summary": "Return a layer 3 interface DHCP configuration for a switch",
"tags": [
"switch",
"configure",
"routing",
"interfaces",
"dhcp"
]
},
"put": {
"description": "Update a layer 3 interface DHCP configuration for a switch",
"operationId": "updateDeviceSwitchRoutingInterfaceDhcp",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "interfaceId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateDeviceSwitchRoutingInterfaceDhcp",
"in": "body",
"schema": {
"type": "object",
"properties": {
"dhcpMode": {
"type": "string",
"enum": [
"dhcpDisabled",
"dhcpRelay",
"dhcpServer"
],
"description": "The DHCP mode options for the switch interface ('dhcpDisabled', 'dhcpRelay' or 'dhcpServer')"
},
"dhcpRelayServerIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "The DHCP relay server IPs to which DHCP packets would get relayed for the switch interface"
},
"dhcpLeaseTime": {
"type": "string",
"enum": [
"30 minutes",
"1 hour",
"4 hours",
"12 hours",
"1 day",
"1 week"
],
"description": "The DHCP lease time config for the dhcp server running on switch interface ('30 minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1 week')"
},
"dnsNameserversOption": {
"type": "string",
"enum": [
"googlePublicDns",
"openDns",
"custom"
],
"description": "The DHCP name server option for the dhcp server running on the switch interface ('googlePublicDns', 'openDns' or 'custom')"
},
"dnsCustomNameservers": {
"type": "array",
"items": {
"type": "string"
},
"description": "The DHCP name server IPs when DHCP name server option is 'custom'"
},
"bootOptionsEnabled": {
"type": "boolean",
"description": "Enable DHCP boot options to provide PXE boot options configs for the dhcp server running on the switch interface"
},
"bootNextServer": {
"type": "string",
"description": "The PXE boot server IP for the DHCP server running on the switch interface"
},
"bootFileName": {
"type": "string",
"description": "The PXE boot server filename for the DHCP server running on the switch interface"
},
"dhcpOptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "The code for DHCP option which should be from 2 to 254"
},
"type": {
"type": "string",
"enum": [
"text",
"ip",
"integer",
"hex"
],
"description": "The type of the DHCP option which should be one of ('text', 'ip', 'integer' or 'hex')"
},
"value": {
"type": "string",
"description": "The value of the DHCP option"
}
},
"required": [
"code",
"type",
"value"
]
},
"description": "Array of DHCP options consisting of code, type and value for the DHCP server running on the switch interface"
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "The starting IP address of the reserved IP range"
},
"end": {
"type": "string",
"description": "The ending IP address of the reserved IP range"
},
"comment": {
"type": "string",
"description": "The comment for the reserved IP range"
}
},
"required": [
"start",
"end"
]
},
"description": "Array of DHCP reserved IP assignments for the DHCP server running on the switch interface"
},
"fixedIpAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the client which has fixed IP address"
},
"mac": {
"type": "string",
"description": "The MAC address of the client which has fixed IP address"
},
"ip": {
"type": "string",
"description": "The IP address of the client which has fixed IP address assigned to it"
}
},
"required": [
"name",
"mac",
"ip"
]
},
"description": "Array of DHCP fixed IP assignments for the DHCP server running on the switch interface"
}
},
"example": {
"dhcpMode": "dhcpServer",
"dhcpLeaseTime": "1 day",
"dnsNameserversOption": "custom",
"dnsCustomNameservers": [
"8.8.8.8, 8.8.4.4"
],
"bootOptionsEnabled": true,
"bootNextServer": "1.2.3.4",
"bootFileName": "home_boot_file",
"dhcpOptions": [
{
"code": "5",
"type": "text",
"value": "five"
}
],
"reservedIpRanges": [
{
"start": "192.168.1.1",
"end": "192.168.1.10",
"comment": "A reserved IP range"
}
],
"fixedIpAssignments": [
{
"mac": "22:33:44:55:66:77",
"name": "Cisco Meraki valued client",
"ip": "192.168.1.12"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"dhcpMode": "dhcpServer",
"dhcpLeaseTime": "1 day",
"dnsNameserversOption": "custom",
"dnsCustomNameservers": [
"8.8.8.8, 8.8.4.4"
],
"bootOptionsEnabled": true,
"bootNextServer": "1.2.3.4",
"bootFileName": "home_boot_file",
"dhcpOptions": [
{
"code": "5",
"type": "text",
"value": "five"
}
],
"reservedIpRanges": [
{
"start": "192.168.1.1",
"end": "192.168.1.10",
"comment": "A reserved IP range"
}
],
"fixedIpAssignments": [
{
"mac": "22:33:44:55:66:77",
"name": "Cisco Meraki valued client",
"ip": "192.168.1.12"
}
]
}
}
}
},
"summary": "Update a layer 3 interface DHCP configuration for a switch",
"tags": [
"switch",
"configure",
"routing",
"interfaces",
"dhcp"
]
}
},
"/devices/{serial}/switch/routing/staticRoutes": {
"get": {
"description": "List layer 3 static routes for a switch",
"operationId": "getDeviceSwitchRoutingStaticRoutes",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"staticRouteId": "1234",
"name": "My route",
"subnet": "192.168.1.0/24",
"nextHopIp": "1.2.3.4",
"advertiseViaOspfEnabled": false,
"preferOverOspfRoutesEnabled": false
}
]
}
}
},
"summary": "List layer 3 static routes for a switch",
"tags": [
"switch",
"configure",
"routing",
"staticRoutes"
]
},
"post": {
"description": "Create a layer 3 static route for a switch",
"operationId": "createDeviceSwitchRoutingStaticRoute",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "createDeviceSwitchRoutingStaticRoute",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name or description for layer 3 static route"
},
"subnet": {
"type": "string",
"description": "The subnet which is routed via this static route and should be specified in CIDR notation (ex. 1.2.3.0/24)"
},
"nextHopIp": {
"type": "string",
"description": "IP address of the next hop device to which the device sends its traffic for the subnet"
},
"advertiseViaOspfEnabled": {
"type": "boolean",
"description": "Option to advertise static route via OSPF"
},
"preferOverOspfRoutesEnabled": {
"type": "boolean",
"description": "Option to prefer static route over OSPF routes"
}
},
"example": {
"name": "My route",
"subnet": "192.168.1.0/24",
"nextHopIp": "1.2.3.4",
"advertiseViaOspfEnabled": false,
"preferOverOspfRoutesEnabled": false
},
"required": [
"subnet",
"nextHopIp"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"staticRouteId": "1234",
"name": "My route",
"subnet": "192.168.1.0/24",
"nextHopIp": "1.2.3.4",
"advertiseViaOspfEnabled": false,
"preferOverOspfRoutesEnabled": false
}
}
}
},
"summary": "Create a layer 3 static route for a switch",
"tags": [
"switch",
"configure",
"routing",
"staticRoutes"
]
}
},
"/devices/{serial}/switch/routing/staticRoutes/{staticRouteId}": {
"get": {
"description": "Return a layer 3 static route for a switch",
"operationId": "getDeviceSwitchRoutingStaticRoute",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "staticRouteId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"staticRouteId": "1234",
"name": "My route",
"subnet": "192.168.1.0/24",
"nextHopIp": "1.2.3.4",
"advertiseViaOspfEnabled": false,
"preferOverOspfRoutesEnabled": false
}
}
}
},
"summary": "Return a layer 3 static route for a switch",
"tags": [
"switch",
"configure",
"routing",
"staticRoutes"
]
},
"put": {
"description": "Update a layer 3 static route for a switch",
"operationId": "updateDeviceSwitchRoutingStaticRoute",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "staticRouteId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateDeviceSwitchRoutingStaticRoute",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name or description for layer 3 static route"
},
"subnet": {
"type": "string",
"description": "The subnet which is routed via this static route and should be specified in CIDR notation (ex. 1.2.3.0/24)"
},
"nextHopIp": {
"type": "string",
"description": "IP address of the next hop device to which the device sends its traffic for the subnet"
},
"advertiseViaOspfEnabled": {
"type": "boolean",
"description": "Option to advertise static route via OSPF"
},
"preferOverOspfRoutesEnabled": {
"type": "boolean",
"description": "Option to prefer static route over OSPF routes"
}
},
"example": {
"name": "My route",
"subnet": "192.168.1.0/24",
"nextHopIp": "1.2.3.4",
"advertiseViaOspfEnabled": false,
"preferOverOspfRoutesEnabled": false
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"staticRouteId": "1234",
"name": "My route",
"subnet": "192.168.1.0/24",
"nextHopIp": "1.2.3.4",
"advertiseViaOspfEnabled": false,
"preferOverOspfRoutesEnabled": false
}
}
}
},
"summary": "Update a layer 3 static route for a switch",
"tags": [
"switch",
"configure",
"routing",
"staticRoutes"
]
},
"delete": {
"description": "Delete a layer 3 static route for a switch",
"operationId": "deleteDeviceSwitchRoutingStaticRoute",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "staticRouteId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a layer 3 static route for a switch",
"tags": [
"switch",
"configure",
"routing",
"staticRoutes"
]
}
},
"/devices/{serial}/switch/warmSpare": {
"get": {
"description": "Return warm spare configuration for a switch",
"operationId": "getDeviceSwitchWarmSpare",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"enabled": true,
"primarySerial": "Q234-ABCD-0001",
"spareSerial": "Q234-ABCD-0002"
}
}
}
},
"summary": "Return warm spare configuration for a switch",
"tags": [
"switch",
"configure",
"warmSpare"
]
},
"put": {
"description": "Update warm spare configuration for a switch. The spare will use the same L3 configuration as the primary. Note that this will irreversibly destroy any existing L3 configuration on the spare.",
"operationId": "updateDeviceSwitchWarmSpare",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateDeviceSwitchWarmSpare",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable or disable warm spare for a switch"
},
"spareSerial": {
"type": "string",
"description": "Serial number of the warm spare switch"
}
},
"example": {
"enabled": true,
"spareSerial": "Q234-ABCD-0002"
},
"required": [
"enabled"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"enabled": true,
"primarySerial": "Q234-ABCD-0001",
"spareSerial": "Q234-ABCD-0002"
}
}
}
},
"summary": "Update warm spare configuration for a switch",
"tags": [
"switch",
"configure",
"warmSpare"
]
}
},
"/devices/{serial}/wireless/bluetooth/settings": {
"put": {
"description": "Update the bluetooth settings for a wireless device",
"operationId": "updateDeviceWirelessBluetoothSettings",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateDeviceWirelessBluetoothSettings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Desired UUID of the beacon. If the value is set to null it will reset to Dashboard's automatically generated value."
},
"major": {
"type": "integer",
"description": "Desired major value of the beacon. If the value is set to null it will reset to Dashboard's automatically generated value."
},
"minor": {
"type": "integer",
"description": "Desired minor value of the beacon. If the value is set to null it will reset to Dashboard's automatically generated value."
}
},
"example": {
"uuid": "00000000-0000-0000-000-000000000000",
"major": 13,
"minor": 125
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Desired UUID of the beacon. If the value is set to null it will reset to Dashboard's automatically generated value."
},
"major": {
"type": "integer",
"description": "Desired major value of the beacon. If the value is set to null it will reset to Dashboard's automatically generated value."
},
"minor": {
"type": "integer",
"description": "Desired minor value of the beacon. If the value is set to null it will reset to Dashboard's automatically generated value."
}
}
},
"examples": {
"application/json": {
"uuid": "00000000-0000-0000-000-000000000000",
"major": 13,
"minor": 125
}
}
}
},
"summary": "Update the bluetooth settings for a wireless device",
"tags": [
"wireless",
"configure",
"bluetooth",
"settings"
]
},
"get": {
"description": "Return the bluetooth settings for a wireless device",
"operationId": "getDeviceWirelessBluetoothSettings",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Desired UUID of the beacon. If the value is set to null it will reset to Dashboard's automatically generated value."
},
"major": {
"type": "integer",
"description": "Desired major value of the beacon. If the value is set to null it will reset to Dashboard's automatically generated value."
},
"minor": {
"type": "integer",
"description": "Desired minor value of the beacon. If the value is set to null it will reset to Dashboard's automatically generated value."
}
}
},
"examples": {
"application/json": {
"uuid": "00000000-0000-0000-000-000000000000",
"major": 13,
"minor": 125
}
}
}
},
"summary": "Return the bluetooth settings for a wireless device",
"tags": [
"wireless",
"configure",
"bluetooth",
"settings"
]
}
},
"/devices/{serial}/wireless/connectionStats": {
"get": {
"description": "Aggregated connectivity info for a given AP on this network",
"operationId": "getDeviceWirelessConnectionStats",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 180 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 7 days after t0."
},
{
"type": "number",
"format": "float",
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 7 days."
},
{
"type": "string",
"enum": [
"2.4",
"5",
"6"
],
"name": "band",
"in": "query",
"description": "Filter results by band (either '2.4', '5' or '6'). Note that data prior to February 2020 will not have band information."
},
{
"type": "integer",
"name": "ssid",
"in": "query",
"description": "Filter results by SSID"
},
{
"type": "integer",
"name": "vlan",
"in": "query",
"description": "Filter results by VLAN"
},
{
"type": "string",
"name": "apTag",
"in": "query",
"description": "Filter results by AP Tag"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "The serial number for the device"
},
"connectionStats": {
"type": "object",
"properties": {
"assoc": {
"type": "integer",
"description": "The number of failed association attempts"
},
"auth": {
"type": "integer",
"description": "The number of failed authentication attempts"
},
"dhcp": {
"type": "integer",
"description": "The number of failed DHCP attempts"
},
"dns": {
"type": "integer",
"description": "The number of failed DNS attempts"
},
"success": {
"type": "integer",
"description": "The number of successful connection attempts"
}
},
"description": "The connection stats of the device"
}
}
},
"examples": {
"application/json": {
"serial": "Q234-ABCD-5678",
"connectionStats": {
"assoc": 0,
"auth": 1,
"dhcp": 0,
"dns": 0,
"success": 43
}
}
}
}
},
"summary": "Aggregated connectivity info for a given AP on this network",
"tags": [
"wireless",
"monitor",
"connectionStats"
]
}
},
"/devices/{serial}/wireless/latencyStats": {
"get": {
"description": "Aggregated latency info for a given AP on this network",
"operationId": "getDeviceWirelessLatencyStats",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 180 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 7 days after t0."
},
{
"type": "number",
"format": "float",
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 7 days."
},
{
"type": "string",
"enum": [
"2.4",
"5",
"6"
],
"name": "band",
"in": "query",
"description": "Filter results by band (either '2.4', '5' or '6'). Note that data prior to February 2020 will not have band information."
},
{
"type": "integer",
"name": "ssid",
"in": "query",
"description": "Filter results by SSID"
},
{
"type": "integer",
"name": "vlan",
"in": "query",
"description": "Filter results by VLAN"
},
{
"type": "string",
"name": "apTag",
"in": "query",
"description": "Filter results by AP Tag"
},
{
"type": "string",
"name": "fields",
"in": "query",
"description": "Partial selection: If present, this call will return only the selected fields of [\"rawDistribution\", \"avg\"]. All fields will be returned by default. Selected fields must be entered as a comma separated string."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"serial": "Q2JC-2MJM-FHRD",
"latencyStats": {
"backgroundTraffic": {
"rawDistribution": {
"0": 1234,
"1": 2345,
"2": 3456,
"4": 4567,
"8": 5678,
"16": 6789,
"32": 7890,
"64": 8901,
"128": 9012,
"256": 83,
"512": 1234,
"1024": 2345,
"2048": 9999
},
"avg": 606.52
},
"bestEffortTraffic": "same shape as backgroundTraffic",
"videoTraffic": "same shape as backgroundTraffic",
"voiceTraffic": "same shape as backgroundTraffic"
}
}
}
}
},
"summary": "Aggregated latency info for a given AP on this network",
"tags": [
"wireless",
"monitor",
"latencyStats"
]
}
},
"/devices/{serial}/wireless/radio/settings": {
"get": {
"description": "Return the radio settings of a device",
"operationId": "getDeviceWirelessRadioSettings",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"serial": "Q234-ABCD-5678",
"rfProfileId": "1234",
"twoFourGhzSettings": {
"channel": 11,
"targetPower": 21
},
"fiveGhzSettings": {
"channel": 149,
"channelWidth": 20,
"targetPower": 15
}
}
}
}
},
"summary": "Return the radio settings of a device",
"tags": [
"wireless",
"configure",
"radio",
"settings"
]
},
"put": {
"description": "Update the radio settings of a device",
"operationId": "updateDeviceWirelessRadioSettings",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateDeviceWirelessRadioSettings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rfProfileId": {
"type": "string",
"description": "The ID of an RF profile to assign to the device. If the value of this parameter is null, the appropriate basic RF profile (indoor or outdoor) will be assigned to the device. Assigning an RF profile will clear ALL manually configured overrides on the device (channel width, channel, power)."
},
"twoFourGhzSettings": {
"type": "object",
"properties": {
"channel": {
"type": "integer",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14
],
"description": "Sets a manual channel for 2.4 GHz. Can be '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13' or '14' or null for using auto channel."
},
"targetPower": {
"type": "integer",
"description": "Set a manual target power for 2.4 GHz. Can be between '5' or '30' or null for using auto power range."
}
},
"description": "Manual radio settings for 2.4 GHz."
},
"fiveGhzSettings": {
"type": "object",
"properties": {
"channel": {
"type": "integer",
"enum": [
36,
40,
44,
48,
52,
56,
60,
64,
100,
104,
108,
112,
116,
120,
124,
128,
132,
136,
140,
144,
149,
153,
157,
161,
165,
169,
173,
177
],
"description": "Sets a manual channel for 5 GHz. Can be '36', '40', '44', '48', '52', '56', '60', '64', '100', '104', '108', '112', '116', '120', '124', '128', '132', '136', '140', '144', '149', '153', '157', '161', '165', '169', '173' or '177' or null for using auto channel."
},
"channelWidth": {
"type": "integer",
"enum": [
0,
20,
40,
80,
160
],
"description": "Sets a manual channel for 5 GHz. Can be '0', '20', '40', '80' or '160' or null for using auto channel width."
},
"targetPower": {
"type": "integer",
"description": "Set a manual target power for 5 GHz. Can be between '8' or '30' or null for using auto power range."
}
},
"description": "Manual radio settings for 5 GHz."
}
},
"example": {
"rfProfileId": "1234",
"twoFourGhzSettings": {
"channel": 11,
"targetPower": 21
},
"fiveGhzSettings": {
"channel": 149,
"channelWidth": 20,
"targetPower": 15
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"serial": "Q234-ABCD-5678",
"rfProfileId": "1234",
"twoFourGhzSettings": {
"channel": 11,
"targetPower": 21
},
"fiveGhzSettings": {
"channel": 149,
"channelWidth": 20,
"targetPower": 15
}
}
}
}
},
"summary": "Update the radio settings of a device",
"tags": [
"wireless",
"configure",
"radio",
"settings"
]
}
},
"/devices/{serial}/wireless/status": {
"get": {
"description": "Return the SSID statuses of an access point",
"operationId": "getDeviceWirelessStatus",
"parameters": [
{
"name": "serial",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"basicServiceSets": [
{
"ssidName": "My SSID",
"ssidNumber": 0,
"enabled": true,
"band": "2.4 GHz",
"bssid": "8A:15:04:00:00:00",
"channel": 11,
"channelWidth": "20 MHz",
"power": "18 dBm",
"visible": true,
"broadcasting": true
},
{
"ssidName": "My SSID",
"ssidNumber": 0,
"enabled": true,
"band": "5 GHz",
"bssid": "8A:15:14:00:00:00",
"channel": 64,
"channelWidth": "40 MHz",
"power": "18 dBm",
"visible": true,
"broadcasting": true
},
{
"ssidName": "My SSID",
"ssidNumber": 0,
"enabled": true,
"band": "6 GHz",
"bssid": "8A:15:24:00:00:00",
"channel": 145,
"channelWidth": "80 MHz",
"power": "18 dBm",
"visible": true,
"broadcasting": true
}
]
}
}
}
},
"summary": "Return the SSID statuses of an access point",
"tags": [
"wireless",
"monitor",
"status"
]
}
},
"/networks/{networkId}": {
"get": {
"description": "Return a network",
"operationId": "getNetwork",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network ID"
},
"organizationId": {
"type": "string",
"description": "Organization ID"
},
"name": {
"type": "string",
"description": "Network name"
},
"productTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of the product types that the network supports"
},
"timeZone": {
"type": "string",
"description": "Timezone of the network"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Network tags"
},
"enrollmentString": {
"type": "string",
"description": "Enrollment string for the network"
},
"url": {
"type": "string",
"description": "URL to the network Dashboard UI"
},
"notes": {
"type": "string",
"description": "Notes for the network"
},
"isBoundToConfigTemplate": {
"type": "boolean",
"description": "If the network is bound to a config template"
}
}
},
"examples": {
"application/json": {
"id": "N_24329156",
"organizationId": "2930418",
"name": "Main Office",
"productTypes": [
"appliance",
"switch",
"wireless"
],
"timeZone": "America/Los_Angeles",
"tags": [
"tag1",
"tag2"
],
"enrollmentString": "my-enrollment-string",
"url": "https://n1.meraki.com//n//manage/nodes/list",
"notes": "Additional description of the network",
"isBoundToConfigTemplate": false
}
}
}
},
"summary": "Return a network",
"tags": [
"networks",
"configure"
]
},
"put": {
"description": "Update a network",
"operationId": "updateNetwork",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetwork",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the network"
},
"timeZone": {
"type": "string",
"description": "The timezone of the network. For a list of allowed timezones, please see the 'TZ' column in the table in <a target='_blank' href='https://en.wikipedia.org/wiki/List_of_tz_database_time_zones'>this article.</a>"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of tags to be applied to the network"
},
"enrollmentString": {
"type": "string",
"description": "A unique identifier which can be used for device enrollment or easy access through the Meraki SM Registration page or the Self Service Portal. Please note that changing this field may cause existing bookmarks to break."
},
"notes": {
"type": "string",
"description": "Add any notes or additional information about this network here."
}
},
"example": {
"name": "Main Office",
"timeZone": "America/Los_Angeles",
"tags": [
"tag1",
"tag2"
],
"enrollmentString": "my-enrollment-string",
"notes": "Additional description of the network"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network ID"
},
"organizationId": {
"type": "string",
"description": "Organization ID"
},
"name": {
"type": "string",
"description": "Network name"
},
"productTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of the product types that the network supports"
},
"timeZone": {
"type": "string",
"description": "Timezone of the network"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Network tags"
},
"enrollmentString": {
"type": "string",
"description": "Enrollment string for the network"
},
"url": {
"type": "string",
"description": "URL to the network Dashboard UI"
},
"notes": {
"type": "string",
"description": "Notes for the network"
},
"isBoundToConfigTemplate": {
"type": "boolean",
"description": "If the network is bound to a config template"
}
}
},
"examples": {
"application/json": {
"id": "N_24329156",
"organizationId": "2930418",
"name": "Main Office",
"productTypes": [
"appliance",
"switch",
"wireless"
],
"timeZone": "America/Los_Angeles",
"tags": [
"tag1",
"tag2"
],
"enrollmentString": "my-enrollment-string",
"url": "https://n1.meraki.com//n//manage/nodes/list",
"notes": "Additional description of the network",
"isBoundToConfigTemplate": false
}
}
}
},
"summary": "Update a network",
"tags": [
"networks",
"configure"
]
},
"delete": {
"description": "Delete a network",
"operationId": "deleteNetwork",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a network",
"tags": [
"networks",
"configure"
]
}
},
"/networks/{networkId}/alerts/history": {
"get": {
"description": "Return the alert history for this network",
"operationId": "getNetworkAlertsHistory",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 30."
},
{
"type": "string",
"name": "startingAfter",
"in": "query",
"description": "A token used by the server to indicate the start of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it."
},
{
"type": "string",
"name": "endingBefore",
"in": "query",
"description": "A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"occurredAt": {
"type": "string",
"description": "time when the event that caused the alert occurred"
},
"alertTypeId": {
"type": "string",
"description": "type of alert"
},
"alertType": {
"type": "string",
"description": "user friendly alert type"
},
"device": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "device serial"
}
},
"description": "info related to the device that caused the alert"
},
"destinations": {
"type": "object",
"properties": {
"email": {
"type": "object",
"properties": {
"sentAt": {
"type": "string",
"description": "time when the alert was sent to the user(s) for this channel"
}
},
"description": "email destinations for this alert"
},
"push": {
"type": "object",
"properties": {
"sentAt": {
"type": "string",
"description": "time when the alert was sent to the user(s) for this channel"
}
},
"description": "push destinations for this alert"
},
"sms": {
"type": "object",
"properties": {
"sentAt": {
"type": "string",
"description": "time when the alert was sent to the user(s) for this channel"
}
},
"description": "sms destinations for this alert"
},
"webhook": {
"type": "object",
"properties": {
"sentAt": {
"type": "string",
"description": "time when the alert was sent to the user(s) for this channel"
}
},
"description": "webhook destinations for this alert"
}
},
"description": "the destinations this alert is configured to be delivered to"
},
"alertData": {
"type": "object",
"properties": {
},
"description": "relevant data about the event that caused the alert"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"occurredAt": "2022-07-11T22:35:34Z",
"alertTypeId": "settings_changed",
"alertType": "Settings changed",
"device": {
"serial": "Q2KN-6CN7-EC4X"
},
"destinations": {
"email": {
"sentAt": "2022-07-11T22:40:34Z"
},
"push": {
"sentAt": "2022-07-11T22:40:34Z"
},
"sms": {
"sentAt": "2022-07-11T22:40:34Z"
},
"webhook": {
"sentAt": "2022-07-11T22:40:34Z"
}
}
}
]
}
}
},
"summary": "Return the alert history for this network",
"tags": [
"networks",
"monitor",
"alerts",
"history"
]
}
},
"/networks/{networkId}/alerts/settings": {
"get": {
"description": "Return the alert configuration for this network",
"operationId": "getNetworkAlertsSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"defaultDestinations": {
"emails": [
"miles@meraki.com"
],
"allAdmins": true,
"snmp": true,
"httpServerIds": [
"aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
]
},
"alerts": [
{
"type": "gatewayDown",
"enabled": true,
"alertDestinations": {
"emails": [
"miles@meraki.com"
],
"allAdmins": false,
"snmp": false,
"httpServerIds": [
"aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
]
},
"filters": {
"timeout": 60
}
}
]
}
}
}
},
"summary": "Return the alert configuration for this network",
"tags": [
"networks",
"configure",
"alerts",
"settings"
]
},
"put": {
"description": "Update the alert configuration for this network",
"operationId": "updateNetworkAlertsSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkAlertsSettings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"defaultDestinations": {
"type": "object",
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of emails that will recieve the alert(s)."
},
"allAdmins": {
"type": "boolean",
"description": "If true, then all network admins will receive emails."
},
"snmp": {
"type": "boolean",
"description": "If true, then an SNMP trap will be sent if there is an SNMP trap server configured for this network."
},
"httpServerIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of HTTP server IDs to send a Webhook to"
}
},
"description": "The network-wide destinations for all alerts on the network."
},
"alerts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The type of alert"
},
"enabled": {
"type": "boolean",
"description": "A boolean depicting if the alert is turned on or off"
},
"alertDestinations": {
"type": "object",
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of emails that will receive information about the alert"
},
"allAdmins": {
"type": "boolean",
"description": "If true, then all network admins will receive emails for this alert"
},
"snmp": {
"type": "boolean",
"description": "If true, then an SNMP trap will be sent for this alert if there is an SNMP trap server configured for this network"
},
"httpServerIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of HTTP server IDs to send a Webhook to for this alert"
}
},
"description": "A hash of destinations for this specific alert"
},
"filters": {
"type": "object",
"properties": {
},
"description": "A hash of specific configuration data for the alert. Only filters specific to the alert will be updated."
}
},
"required": [
"type"
]
},
"description": "Alert-specific configuration for each type. Only alerts that pertain to the network can be updated."
}
},
"example": {
"defaultDestinations": {
"emails": [
"miles@meraki.com"
],
"allAdmins": true,
"snmp": true,
"httpServerIds": [
"aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
]
},
"alerts": [
{
"type": "gatewayDown",
"enabled": true,
"alertDestinations": {
"emails": [
"miles@meraki.com"
],
"allAdmins": false,
"snmp": false,
"httpServerIds": [
"aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
]
},
"filters": {
"timeout": 60
}
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"defaultDestinations": {
"emails": [
"miles@meraki.com"
],
"allAdmins": true,
"snmp": true,
"httpServerIds": [
"aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
]
},
"alerts": [
{
"type": "gatewayDown",
"enabled": true,
"alertDestinations": {
"emails": [
"miles@meraki.com"
],
"allAdmins": false,
"snmp": false,
"httpServerIds": [
"aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
]
},
"filters": {
"timeout": 60
}
}
]
}
}
}
},
"summary": "Update the alert configuration for this network",
"tags": [
"networks",
"configure",
"alerts",
"settings"
]
}
},
"/networks/{networkId}/appliance/clients/{clientId}/security/events": {
"get": {
"description": "List the security events for a client. Clients can be identified by a client key or either the MAC or IP depending on whether the network uses Track-by-IP.",
"operationId": "getNetworkApplianceClientSecurityEvents",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "clientId",
"in": "path",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. Data is gathered after the specified t0 value. The maximum lookback period is 791 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 791 days after t0."
},
{
"type": "number",
"format": "float",
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 791 days. The default is 31 days."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 100."
},
{
"type": "string",
"name": "startingAfter",
"in": "query",
"description": "A token used by the server to indicate the start of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it."
},
{
"type": "string",
"name": "endingBefore",
"in": "query",
"description": "A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it."
},
{
"type": "string",
"enum": [
"ascending",
"descending"
],
"name": "sortOrder",
"in": "query",
"description": "Sorted order of security events based on event detection time. Order options are 'ascending' or 'descending'. Default is ascending order."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"ts": "2020-03-20T16:00:10.144989Z",
"eventType": "File Scanned",
"clientName": "COMPUTER-M-V78J",
"clientMac": "10:dd:b1:eb:88:f8",
"clientIp": "192.168.128.2",
"srcIp": "192.168.128.2",
"destIp": "119.192.233.48",
"protocol": "http",
"uri": "http://www.favorite-icons.com/program/FavoriteIconsUninstall.exe",
"canonicalName": "PUA.Win.Dropper.Kraddare::1201",
"destinationPort": 80,
"fileHash": "3ec1b9a95fe62aa25fc959643a0f227b76d253094681934daaf628d3574b3463",
"fileType": "MS_EXE",
"fileSizeBytes": 193688,
"disposition": "Malicious",
"action": "Blocked"
},
{
"ts": "2018-02-11T00:00:00.090210Z",
"eventType": "IDS Alert",
"deviceMac": "00:18:0a:01:02:03",
"clientMac": "A1:B2:C3:D4:E5:F6",
"srcIp": "1.2.3.4:34195",
"destIp": "10.20.30.40:80",
"protocol": "tcp/ip",
"priority": "2",
"classification": "4",
"blocked": true,
"message": "SERVER-WEBAPP JBoss JMX console access attempt",
"signature": "1:21516:9",
"sigSource": "",
"ruleId": "meraki:intrusion/snort/GID/1/SID/26267"
},
{
"ts": "2018-02-11T00:00:00.090210Z",
"eventType": "IDS Alert",
"deviceMac": "00:18:0a:01:02:03",
"clientMac": "A1:B2:C3:D4:E5:F6",
"srcIp": "1.2.3.4:56023",
"destIp": "10.20.30.40:80",
"protocol": "tcp/ip",
"priority": "1",
"classification": "33",
"blocked": true,
"message": "POLICY-OTHER Adobe ColdFusion admin interface access attempt",
"signature": "1:25975:2",
"sigSource": "",
"ruleId": "meraki:intrusion/snort/GID/1/SID/26267"
}
]
}
}
},
"summary": "List the security events for a client",
"tags": [
"appliance",
"monitor",
"clients",
"security",
"events"
]
}
},
"/networks/{networkId}/appliance/connectivityMonitoringDestinations": {
"get": {
"description": "Return the connectivity testing destinations for an MX network",
"operationId": "getNetworkApplianceConnectivityMonitoringDestinations",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"destinations": [
{
"ip": "8.8.8.8",
"description": "Google",
"default": false
},
{
"ip": "1.23.45.67",
"description": "test description",
"default": true
},
{
"ip": "9.8.7.6",
"description": null,
"default": false
}
]
}
}
}
},
"summary": "Return the connectivity testing destinations for an MX network",
"tags": [
"appliance",
"configure",
"connectivityMonitoringDestinations"
]
},
"put": {
"description": "Update the connectivity testing destinations for an MX network",
"operationId": "updateNetworkApplianceConnectivityMonitoringDestinations",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceConnectivityMonitoringDestinations",
"in": "body",
"schema": {
"type": "object",
"properties": {
"destinations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "The IP address to test connectivity with"
},
"description": {
"type": "string",
"description": "Description of the testing destination. Optional, defaults to null"
},
"default": {
"type": "boolean",
"description": "Boolean indicating whether this is the default testing destination (true) or not (false). Defaults to false. Only one default is allowed"
}
},
"required": [
"ip"
]
},
"description": "The list of connectivity monitoring destinations"
}
},
"example": {
"destinations": [
{
"ip": "8.8.8.8",
"description": "Google",
"default": false
},
{
"ip": "1.23.45.67",
"description": "test description",
"default": true
},
{
"ip": "9.8.7.6"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"destinations": [
{
"ip": "8.8.8.8",
"description": "Google",
"default": false
},
{
"ip": "1.23.45.67",
"description": "test description",
"default": true
},
{
"ip": "9.8.7.6",
"description": null,
"default": false
}
]
}
}
}
},
"summary": "Update the connectivity testing destinations for an MX network",
"tags": [
"appliance",
"configure",
"connectivityMonitoringDestinations"
]
}
},
"/networks/{networkId}/appliance/contentFiltering": {
"get": {
"description": "Return the content filtering settings for an MX network",
"operationId": "getNetworkApplianceContentFiltering",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"allowedUrlPatterns": [
"http://www.example.org",
"http://help.com.au"
],
"blockedUrlPatterns": [
"http://www.example.com",
"http://www.betting.com"
],
"blockedUrlCategories": [
{
"id": "meraki:contentFiltering/category/1",
"name": "Real Estate"
},
{
"id": "meraki:contentFiltering/category/7",
"name": "Shopping"
}
],
"urlCategoryListSize": "topSites"
}
}
}
},
"summary": "Return the content filtering settings for an MX network",
"tags": [
"appliance",
"configure",
"contentFiltering"
]
},
"put": {
"description": "Update the content filtering settings for an MX network",
"operationId": "updateNetworkApplianceContentFiltering",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceContentFiltering",
"in": "body",
"schema": {
"type": "object",
"properties": {
"allowedUrlPatterns": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL patterns that are allowed"
},
"blockedUrlPatterns": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL patterns that are blocked"
},
"blockedUrlCategories": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL categories to block"
},
"urlCategoryListSize": {
"type": "string",
"enum": [
"topSites",
"fullList"
],
"description": "URL category list size which is either 'topSites' or 'fullList'"
}
},
"example": {
"allowedUrlPatterns": [
"http://www.example.org",
"http://help.com.au"
],
"blockedUrlPatterns": [
"http://www.example.com",
"http://www.betting.com"
],
"blockedUrlCategories": [
"meraki:contentFiltering/category/1",
"meraki:contentFiltering/category/7"
],
"urlCategoryListSize": "topSites"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"allowedUrlPatterns": [
"http://www.example.org",
"http://help.com.au"
],
"blockedUrlPatterns": [
"http://www.example.com",
"http://www.betting.com"
],
"blockedUrlCategories": [
{
"id": "meraki:contentFiltering/category/1",
"name": "Real Estate"
},
{
"id": "meraki:contentFiltering/category/7",
"name": "Shopping"
}
],
"urlCategoryListSize": "topSites"
}
}
}
},
"summary": "Update the content filtering settings for an MX network",
"tags": [
"appliance",
"configure",
"contentFiltering"
]
}
},
"/networks/{networkId}/appliance/contentFiltering/categories": {
"get": {
"description": "List all available content filtering categories for an MX network",
"operationId": "getNetworkApplianceContentFilteringCategories",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"categories": [
{
"id": "meraki:contentFiltering/category/1",
"name": "Real Estate"
},
{
"id": "meraki:contentFiltering/category/3",
"name": "Financial Services"
},
"...",
{
"id": "meraki:contentFiltering/category/11",
"name": "Adult and Pornography"
}
]
}
}
}
},
"summary": "List all available content filtering categories for an MX network",
"tags": [
"appliance",
"configure",
"contentFiltering",
"categories"
]
}
},
"/networks/{networkId}/appliance/firewall/cellularFirewallRules": {
"get": {
"description": "Return the cellular firewall rules for an MX network",
"operationId": "getNetworkApplianceFirewallCellularFirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"srcPort": "Any",
"srcCidr": "Any",
"syslogEnabled": false
}
]
}
}
}
},
"summary": "Return the cellular firewall rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"cellularFirewallRules"
]
},
"put": {
"description": "Update the cellular firewall rules of an MX network",
"operationId": "updateNetworkApplianceFirewallCellularFirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceFirewallCellularFirewallRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"enum": [
"allow",
"deny"
],
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"enum": [
"tcp",
"udp",
"icmp",
"icmp6",
"any"
],
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"srcPort": {
"type": "string",
"description": "Comma-separated list of source port(s) (integer in the range 1-65535), or 'any'"
},
"srcCidr": {
"type": "string",
"description": "Comma-separated list of source IP address(es) (in IP or CIDR notation), or 'any' (note: FQDN not supported for source addresses)"
},
"destPort": {
"type": "string",
"description": "Comma-separated list of destination port(s) (integer in the range 1-65535), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Comma-separated list of destination IP address(es) (in IP or CIDR notation), fully-qualified domain names (FQDN) or 'any'"
},
"syslogEnabled": {
"type": "boolean",
"description": "Log this rule to syslog (true or false, boolean value) - only applicable if a syslog has been configured (optional)"
}
},
"required": [
"policy",
"protocol",
"srcCidr",
"destCidr"
]
},
"description": "An ordered array of the firewall rules (not including the default rule)"
}
},
"example": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"srcPort": "Any",
"srcCidr": "Any",
"syslogEnabled": false
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"srcPort": "Any",
"srcCidr": "Any",
"syslogEnabled": false
}
]
}
}
}
},
"summary": "Update the cellular firewall rules of an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"cellularFirewallRules"
]
}
},
"/networks/{networkId}/appliance/firewall/firewalledServices": {
"get": {
"description": "List the appliance services and their accessibility rules",
"operationId": "getNetworkApplianceFirewallFirewalledServices",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"service": "web",
"access": "restricted",
"allowedIps": [
"123.123.123.1"
]
}
]
}
}
},
"summary": "List the appliance services and their accessibility rules",
"tags": [
"appliance",
"configure",
"firewall",
"firewalledServices"
]
}
},
"/networks/{networkId}/appliance/firewall/firewalledServices/{service}": {
"get": {
"description": "Return the accessibility settings of the given service ('ICMP', 'web', or 'SNMP')",
"operationId": "getNetworkApplianceFirewallFirewalledService",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "service",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"service": "web",
"access": "restricted",
"allowedIps": [
"123.123.123.1"
]
}
}
}
},
"summary": "Return the accessibility settings of the given service ('ICMP', 'web', or 'SNMP')",
"tags": [
"appliance",
"configure",
"firewall",
"firewalledServices"
]
},
"put": {
"description": "Updates the accessibility settings for the given service ('ICMP', 'web', or 'SNMP')",
"operationId": "updateNetworkApplianceFirewallFirewalledService",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "service",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceFirewallFirewalledService",
"in": "body",
"schema": {
"type": "object",
"properties": {
"access": {
"type": "string",
"enum": [
"blocked",
"restricted",
"unrestricted"
],
"description": "A string indicating the rule for which IPs are allowed to use the specified service. Acceptable values are \"blocked\" (no remote IPs can access the service), \"restricted\" (only allowed IPs can access the service), and \"unrestriced\" (any remote IP can access the service). This field is required"
},
"allowedIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of allowed IPs that can access the service. This field is required if \"access\" is set to \"restricted\". Otherwise this field is ignored"
}
},
"example": {
"access": "restricted",
"allowedIps": [
"123.123.123.1"
]
},
"required": [
"access"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"service": "web",
"access": "restricted",
"allowedIps": [
"123.123.123.1"
]
}
}
}
},
"summary": "Updates the accessibility settings for the given service ('ICMP', 'web', or 'SNMP')",
"tags": [
"appliance",
"configure",
"firewall",
"firewalledServices"
]
}
},
"/networks/{networkId}/appliance/firewall/inboundCellularFirewallRules": {
"get": {
"description": "Return the inbound cellular firewall rules for an MX network",
"operationId": "getNetworkApplianceFirewallInboundCellularFirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"srcPort": "Any",
"srcCidr": "Any",
"syslogEnabled": false
}
]
}
}
},
"summary": "Return the inbound cellular firewall rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"inboundCellularFirewallRules"
]
},
"put": {
"description": "Update the inbound cellular firewall rules of an MX network",
"operationId": "updateNetworkApplianceFirewallInboundCellularFirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceFirewallInboundCellularFirewallRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"enum": [
"allow",
"deny"
],
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"enum": [
"tcp",
"udp",
"icmp",
"icmp6",
"any"
],
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"srcPort": {
"type": "string",
"description": "Comma-separated list of source port(s) (integer in the range 1-65535), or 'any'"
},
"srcCidr": {
"type": "string",
"description": "Comma-separated list of source IP address(es) (in IP or CIDR notation), or 'any' (note: FQDN not supported for source addresses)"
},
"destPort": {
"type": "string",
"description": "Comma-separated list of destination port(s) (integer in the range 1-65535), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Comma-separated list of destination IP address(es) (in IP or CIDR notation), fully-qualified domain names (FQDN) or 'any'"
},
"syslogEnabled": {
"type": "boolean",
"description": "Log this rule to syslog (true or false, boolean value) - only applicable if a syslog has been configured (optional)"
}
},
"required": [
"policy",
"protocol",
"srcCidr",
"destCidr"
]
},
"description": "An ordered array of the firewall rules (not including the default rule)"
}
},
"example": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"srcPort": "Any",
"srcCidr": "Any",
"syslogEnabled": false
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"srcPort": "Any",
"srcCidr": "Any",
"syslogEnabled": false
}
]
}
}
},
"summary": "Update the inbound cellular firewall rules of an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"inboundCellularFirewallRules"
]
}
},
"/networks/{networkId}/appliance/firewall/inboundFirewallRules": {
"get": {
"description": "Return the inbound firewall rules for an MX network",
"operationId": "getNetworkApplianceFirewallInboundFirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"srcPort": "Any",
"srcCidr": "Any",
"syslogEnabled": false
}
],
"syslogDefaultRule": true
}
}
}
},
"summary": "Return the inbound firewall rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"inboundFirewallRules"
]
},
"put": {
"description": "Update the inbound firewall rules of an MX network",
"operationId": "updateNetworkApplianceFirewallInboundFirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceFirewallInboundFirewallRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"enum": [
"allow",
"deny"
],
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"enum": [
"tcp",
"udp",
"icmp",
"icmp6",
"any"
],
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"srcPort": {
"type": "string",
"description": "Comma-separated list of source port(s) (integer in the range 1-65535), or 'any'"
},
"srcCidr": {
"type": "string",
"description": "Comma-separated list of source IP address(es) (in IP or CIDR notation), or 'any' (note: FQDN not supported for source addresses)"
},
"destPort": {
"type": "string",
"description": "Comma-separated list of destination port(s) (integer in the range 1-65535), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Comma-separated list of destination IP address(es) (in IP or CIDR notation), fully-qualified domain names (FQDN) or 'any'"
},
"syslogEnabled": {
"type": "boolean",
"description": "Log this rule to syslog (true or false, boolean value) - only applicable if a syslog has been configured (optional)"
}
},
"required": [
"policy",
"protocol",
"srcCidr",
"destCidr"
]
},
"description": "An ordered array of the firewall rules (not including the default rule)"
},
"syslogDefaultRule": {
"type": "boolean",
"description": "Log the special default rule (boolean value - enable only if you've configured a syslog server) (optional)"
}
},
"example": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"srcPort": "Any",
"srcCidr": "Any",
"syslogEnabled": false
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"srcPort": "Any",
"srcCidr": "Any",
"syslogEnabled": false
}
],
"syslogDefaultRule": true
}
}
}
},
"summary": "Update the inbound firewall rules of an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"inboundFirewallRules"
]
}
},
"/networks/{networkId}/appliance/firewall/l3FirewallRules": {
"get": {
"description": "Return the L3 firewall rules for an MX network",
"operationId": "getNetworkApplianceFirewallL3FirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"srcPort": "Any",
"srcCidr": "Any",
"syslogEnabled": false
}
]
}
}
}
},
"summary": "Return the L3 firewall rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"l3FirewallRules"
]
},
"put": {
"description": "Update the L3 firewall rules of an MX network",
"operationId": "updateNetworkApplianceFirewallL3FirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceFirewallL3FirewallRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"enum": [
"allow",
"deny"
],
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"enum": [
"tcp",
"udp",
"icmp",
"icmp6",
"any"
],
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"srcPort": {
"type": "string",
"description": "Comma-separated list of source port(s) (integer in the range 1-65535), or 'any'"
},
"srcCidr": {
"type": "string",
"description": "Comma-separated list of source IP address(es) (in IP or CIDR notation), or 'any' (note: FQDN not supported for source addresses)"
},
"destPort": {
"type": "string",
"description": "Comma-separated list of destination port(s) (integer in the range 1-65535), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Comma-separated list of destination IP address(es) (in IP or CIDR notation), fully-qualified domain names (FQDN) or 'any'"
},
"syslogEnabled": {
"type": "boolean",
"description": "Log this rule to syslog (true or false, boolean value) - only applicable if a syslog has been configured (optional)"
}
},
"required": [
"policy",
"protocol",
"srcCidr",
"destCidr"
]
},
"description": "An ordered array of the firewall rules (not including the default rule)"
},
"syslogDefaultRule": {
"type": "boolean",
"description": "Log the special default rule (boolean value - enable only if you've configured a syslog server) (optional)"
}
},
"example": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"srcPort": "Any",
"srcCidr": "Any",
"syslogEnabled": false
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"srcPort": "Any",
"srcCidr": "Any",
"syslogEnabled": false
}
]
}
}
}
},
"summary": "Update the L3 firewall rules of an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"l3FirewallRules"
]
}
},
"/networks/{networkId}/appliance/firewall/l7FirewallRules": {
"get": {
"description": "List the MX L7 firewall rules for an MX network",
"operationId": "getNetworkApplianceFirewallL7FirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"policy": "deny",
"type": "host",
"value": "google.com"
},
{
"policy": "deny",
"type": "port",
"value": "23"
},
{
"policy": "deny",
"type": "ipRange",
"value": "10.11.12.00/24"
},
{
"policy": "deny",
"type": "ipRange",
"value": "10.11.12.00/24:5555"
}
]
}
}
}
},
"summary": "List the MX L7 firewall rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"l7FirewallRules"
]
},
"put": {
"description": "Update the MX L7 firewall rules for an MX network",
"operationId": "updateNetworkApplianceFirewallL7FirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceFirewallL7FirewallRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"policy": {
"type": "string",
"enum": [
"deny"
],
"description": "'Deny' traffic specified by this rule"
},
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"host",
"port",
"ipRange"
],
"description": "Type of the L7 rule. One of: 'application', 'applicationCategory', 'host', 'port', 'ipRange'"
},
"value": {
"type": "string",
"description": "The 'value' of what you want to block. Format of 'value' varies depending on type of the rule. The application categories and application ids can be retrieved from the the 'MX L7 application categories' endpoint. The countries follow the two-letter ISO 3166-1 alpha-2 format."
}
}
},
"description": "An ordered array of the MX L7 firewall rules"
}
},
"example": {
"rules": [
{
"policy": "deny",
"type": "host",
"value": "google.com"
},
{
"policy": "deny",
"type": "port",
"value": "23"
},
{
"policy": "deny",
"type": "ipRange",
"value": "10.11.12.00/24"
},
{
"policy": "deny",
"type": "ipRange",
"value": "10.11.12.00/24:5555"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"policy": "deny",
"type": "host",
"value": "google.com"
},
{
"policy": "deny",
"type": "port",
"value": "23"
},
{
"policy": "deny",
"type": "ipRange",
"value": "10.11.12.00/24"
},
{
"policy": "deny",
"type": "ipRange",
"value": "10.11.12.00/24:5555"
}
]
}
}
}
},
"summary": "Update the MX L7 firewall rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"l7FirewallRules"
]
}
},
"/networks/{networkId}/appliance/firewall/l7FirewallRules/applicationCategories": {
"get": {
"description": "Return the L7 firewall application categories and their associated applications for an MX network",
"operationId": "getNetworkApplianceFirewallL7FirewallRulesApplicationCategories",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"applicationCategories": [
{
"id": "meraki:layer7/category/24",
"name": "Advertising",
"applications": [
{
"id": "meraki:layer7/application/5",
"name": "Advertising.com"
},
{
"id": "meraki:layer7/application/0",
"name": "AppNexus"
},
{
"id": "meraki:layer7/application/1",
"name": "Brightroll"
}
]
}
]
}
}
}
},
"summary": "Return the L7 firewall application categories and their associated applications for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"l7FirewallRules",
"applicationCategories"
]
}
},
"/networks/{networkId}/appliance/firewall/oneToManyNatRules": {
"get": {
"description": "Return the 1:Many NAT mapping rules for an MX network",
"operationId": "getNetworkApplianceFirewallOneToManyNatRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"publicIp": "146.11.11.13",
"uplink": "internet1",
"portRules": [
{
"name": "Rule 1",
"protocol": "tcp",
"publicPort": "9443",
"localIp": "192.168.128.1",
"localPort": "443",
"allowedIps": [
"any"
]
},
{
"name": "Rule 2",
"protocol": "tcp",
"publicPort": "8080",
"localIp": "192.168.128.1",
"localPort": "80",
"allowedIps": [
"10.82.110.0/24",
"10.82.111.0/24"
]
}
]
}
]
}
}
}
},
"summary": "Return the 1:Many NAT mapping rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"oneToManyNatRules"
]
},
"put": {
"description": "Set the 1:Many NAT mapping rules for an MX network",
"operationId": "updateNetworkApplianceFirewallOneToManyNatRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceFirewallOneToManyNatRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"publicIp": {
"type": "string",
"description": "The IP address that will be used to access the internal resource from the WAN"
},
"uplink": {
"type": "string",
"enum": [
"internet1",
"internet2"
],
"description": "The physical WAN interface on which the traffic will arrive ('internet1' or, if available, 'internet2')"
},
"portRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A description of the rule"
},
"protocol": {
"type": "string",
"enum": [
"tcp",
"udp"
],
"description": "'tcp' or 'udp'"
},
"publicPort": {
"type": "string",
"description": "Destination port of the traffic that is arriving on the WAN"
},
"localIp": {
"type": "string",
"description": "Local IP address to which traffic will be forwarded"
},
"localPort": {
"type": "string",
"description": "Destination port of the forwarded traffic that will be sent from the MX to the specified host on the LAN. If you simply wish to forward the traffic without translating the port, this should be the same as the Public port"
},
"allowedIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "Remote IP addresses or ranges that are permitted to access the internal resource via this port forwarding rule, or 'any'"
}
}
},
"description": "An array of associated forwarding rules"
}
},
"required": [
"publicIp",
"uplink",
"portRules"
]
},
"description": "An array of 1:Many nat rules"
}
},
"example": {
"rules": [
{
"publicIp": "146.11.11.13",
"uplink": "internet1",
"portRules": [
{
"name": "Rule 1",
"protocol": "tcp",
"publicPort": "9443",
"localIp": "192.168.128.1",
"localPort": "443",
"allowedIps": [
"any"
]
},
{
"name": "Rule 2",
"protocol": "tcp",
"publicPort": "8080",
"localIp": "192.168.128.1",
"localPort": "80",
"allowedIps": [
"10.82.110.0/24",
"10.82.111.0/24"
]
}
]
}
]
},
"required": [
"rules"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"publicIp": "146.11.11.13",
"uplink": "internet1",
"portRules": [
{
"name": "Rule 1",
"protocol": "tcp",
"publicPort": "9443",
"localIp": "192.168.128.1",
"localPort": "443",
"allowedIps": [
"any"
]
},
{
"name": "Rule 2",
"protocol": "tcp",
"publicPort": "8080",
"localIp": "192.168.128.1",
"localPort": "80",
"allowedIps": [
"10.82.110.0/24",
"10.82.111.0/24"
]
}
]
}
]
}
}
}
},
"summary": "Set the 1:Many NAT mapping rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"oneToManyNatRules"
]
}
},
"/networks/{networkId}/appliance/firewall/oneToOneNatRules": {
"get": {
"description": "Return the 1:1 NAT mapping rules for an MX network",
"operationId": "getNetworkApplianceFirewallOneToOneNatRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"name": "Service behind NAT",
"lanIp": "192.168.128.22",
"publicIp": "146.12.3.33",
"uplink": "internet1",
"allowedInbound": [
{
"protocol": "tcp",
"destinationPorts": [
"80"
],
"allowedIps": [
"10.82.112.0/24",
"10.82.0.0/16"
]
},
{
"protocol": "udp",
"destinationPorts": [
"8080"
],
"allowedIps": [
"10.81.110.5",
"10.81.0.0/16"
]
}
]
}
]
}
}
}
},
"summary": "Return the 1:1 NAT mapping rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"oneToOneNatRules"
]
},
"put": {
"description": "Set the 1:1 NAT mapping rules for an MX network",
"operationId": "updateNetworkApplianceFirewallOneToOneNatRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceFirewallOneToOneNatRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A descriptive name for the rule"
},
"publicIp": {
"type": "string",
"description": "The IP address that will be used to access the internal resource from the WAN"
},
"lanIp": {
"type": "string",
"description": "The IP address of the server or device that hosts the internal resource that you wish to make available on the WAN"
},
"uplink": {
"type": "string",
"enum": [
"internet1",
"internet2"
],
"description": "The physical WAN interface on which the traffic will arrive ('internet1' or, if available, 'internet2')"
},
"allowedInbound": {
"type": "array",
"items": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"enum": [
"tcp",
"udp",
"icmp-ping",
"any"
],
"description": "Either of the following: 'tcp', 'udp', 'icmp-ping' or 'any'"
},
"destinationPorts": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of ports or port ranges that will be forwarded to the host on the LAN"
},
"allowedIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of ranges of WAN IP addresses that are allowed to make inbound connections on the specified ports or port ranges, or 'any'"
}
}
},
"description": "The ports this mapping will provide access on, and the remote IPs that will be allowed access to the resource"
}
},
"required": [
"lanIp"
]
},
"description": "An array of 1:1 nat rules"
}
},
"example": {
"rules": [
{
"name": "Service behind NAT",
"lanIp": "192.168.128.22",
"publicIp": "146.12.3.33",
"uplink": "internet1",
"allowedInbound": [
{
"protocol": "tcp",
"destinationPorts": [
"80"
],
"allowedIps": [
"10.82.112.0/24",
"10.82.0.0/16"
]
},
{
"protocol": "udp",
"destinationPorts": [
"8080"
],
"allowedIps": [
"10.81.110.5",
"10.81.0.0/16"
]
}
]
}
]
},
"required": [
"rules"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"name": "Service behind NAT",
"lanIp": "192.168.128.22",
"publicIp": "146.12.3.33",
"uplink": "internet1",
"allowedInbound": [
{
"protocol": "tcp",
"destinationPorts": [
"80"
],
"allowedIps": [
"10.82.112.0/24",
"10.82.0.0/16"
]
},
{
"protocol": "udp",
"destinationPorts": [
"8080"
],
"allowedIps": [
"10.81.110.5",
"10.81.0.0/16"
]
}
]
}
]
}
}
}
},
"summary": "Set the 1:1 NAT mapping rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"oneToOneNatRules"
]
}
},
"/networks/{networkId}/appliance/firewall/portForwardingRules": {
"get": {
"description": "Return the port forwarding rules for an MX network",
"operationId": "getNetworkApplianceFirewallPortForwardingRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"lanIp": "192.168.128.1",
"allowedIps": [
"any"
],
"name": "Description of Port Forwarding Rule",
"protocol": "tcp",
"publicPort": "8100-8101",
"localPort": "442-443",
"uplink": "both"
}
]
}
}
}
},
"summary": "Return the port forwarding rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"portForwardingRules"
]
},
"put": {
"description": "Update the port forwarding rules for an MX network",
"operationId": "updateNetworkApplianceFirewallPortForwardingRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceFirewallPortForwardingRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A descriptive name for the rule"
},
"lanIp": {
"type": "string",
"description": "The IP address of the server or device that hosts the internal resource that you wish to make available on the WAN"
},
"uplink": {
"type": "string",
"enum": [
"internet1",
"internet2",
"both"
],
"description": "The physical WAN interface on which the traffic will arrive ('internet1' or, if available, 'internet2' or 'both')"
},
"publicPort": {
"type": "string",
"description": "A port or port ranges that will be forwarded to the host on the LAN"
},
"localPort": {
"type": "string",
"description": "A port or port ranges that will receive the forwarded traffic from the WAN"
},
"allowedIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of ranges of WAN IP addresses that are allowed to make inbound connections on the specified ports or port ranges (or any)"
},
"protocol": {
"type": "string",
"enum": [
"tcp",
"udp"
],
"description": "TCP or UDP"
}
},
"required": [
"lanIp",
"publicPort",
"localPort",
"allowedIps",
"protocol"
]
},
"description": "An array of port forwarding params"
}
},
"example": {
"rules": [
{
"lanIp": "192.168.128.1",
"allowedIps": [
"any"
],
"name": "Description of Port Forwarding Rule",
"protocol": "tcp",
"publicPort": "8100-8101",
"localPort": "442-443",
"uplink": "both"
}
]
},
"required": [
"rules"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"lanIp": "192.168.128.1",
"allowedIps": [
"any"
],
"name": "Description of Port Forwarding Rule",
"protocol": "tcp",
"publicPort": "8100-8101",
"localPort": "442-443",
"uplink": "both"
}
]
}
}
}
},
"summary": "Update the port forwarding rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"portForwardingRules"
]
}
},
"/networks/{networkId}/appliance/firewall/settings": {
"get": {
"description": "Return the firewall settings for this network",
"operationId": "getNetworkApplianceFirewallSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"spoofingProtection": {
"ipSourceGuard": {
"mode": "block"
}
}
}
}
}
},
"summary": "Return the firewall settings for this network",
"tags": [
"appliance",
"configure",
"firewall",
"settings"
]
},
"put": {
"description": "Update the firewall settings for this network",
"operationId": "updateNetworkApplianceFirewallSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceFirewallSettings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"spoofingProtection": {
"type": "object",
"properties": {
"ipSourceGuard": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"block",
"log"
],
"description": "Mode of protection"
}
},
"description": "IP source address spoofing settings"
}
},
"description": "Spoofing protection settings"
}
},
"example": {
"spoofingProtection": {
"ipSourceGuard": {
"mode": "block"
}
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"spoofingProtection": {
"ipSourceGuard": {
"mode": "block"
}
}
}
}
}
},
"summary": "Update the firewall settings for this network",
"tags": [
"appliance",
"configure",
"firewall",
"settings"
]
}
},
"/networks/{networkId}/appliance/ports": {
"get": {
"description": "List per-port VLAN settings for all ports of a MX.",
"operationId": "getNetworkAppliancePorts",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"description": "Number of the port"
},
"enabled": {
"type": "boolean",
"description": "The status of the port"
},
"type": {
"type": "string",
"description": "The type of the port: 'access' or 'trunk'."
},
"dropUntaggedTraffic": {
"type": "boolean",
"description": "Whether the trunk port can drop all untagged traffic."
},
"vlan": {
"type": "integer",
"description": "Native VLAN when the port is in Trunk mode. Access VLAN when the port is in Access mode."
},
"allowedVlans": {
"type": "string",
"description": "Comma-delimited list of the VLAN ID's allowed on the port, or 'all' to permit all VLAN's on the port."
},
"accessPolicy": {
"type": "string",
"description": "The name of the policy. Only applicable to Access ports."
}
}
}
},
"examples": {
"application/json": [
{
"number": 1,
"enabled": true,
"type": "access",
"dropUntaggedTraffic": false,
"vlan": 3,
"allowedVlans": "all",
"accessPolicy": "open"
}
]
}
}
},
"summary": "List per-port VLAN settings for all ports of a MX.",
"tags": [
"appliance",
"configure",
"ports"
]
}
},
"/networks/{networkId}/appliance/ports/{portId}": {
"get": {
"description": "Return per-port VLAN settings for a single MX port.",
"operationId": "getNetworkAppliancePort",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "portId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"description": "Number of the port"
},
"enabled": {
"type": "boolean",
"description": "The status of the port"
},
"type": {
"type": "string",
"description": "The type of the port: 'access' or 'trunk'."
},
"dropUntaggedTraffic": {
"type": "boolean",
"description": "Whether the trunk port can drop all untagged traffic."
},
"vlan": {
"type": "integer",
"description": "Native VLAN when the port is in Trunk mode. Access VLAN when the port is in Access mode."
},
"allowedVlans": {
"type": "string",
"description": "Comma-delimited list of the VLAN ID's allowed on the port, or 'all' to permit all VLAN's on the port."
},
"accessPolicy": {
"type": "string",
"description": "The name of the policy. Only applicable to Access ports."
}
}
},
"examples": {
"application/json": {
"number": 1,
"enabled": true,
"type": "access",
"dropUntaggedTraffic": false,
"vlan": 3,
"allowedVlans": "all",
"accessPolicy": "open"
}
}
}
},
"summary": "Return per-port VLAN settings for a single MX port.",
"tags": [
"appliance",
"configure",
"ports"
]
},
"put": {
"description": "Update the per-port VLAN settings for a single MX port.",
"operationId": "updateNetworkAppliancePort",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "portId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkAppliancePort",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "The status of the port"
},
"dropUntaggedTraffic": {
"type": "boolean",
"description": "Trunk port can Drop all Untagged traffic. When true, no VLAN is required. Access ports cannot have dropUntaggedTraffic set to true."
},
"type": {
"type": "string",
"description": "The type of the port: 'access' or 'trunk'."
},
"vlan": {
"type": "integer",
"description": "Native VLAN when the port is in Trunk mode. Access VLAN when the port is in Access mode."
},
"allowedVlans": {
"type": "string",
"description": "Comma-delimited list of the VLAN ID's allowed on the port, or 'all' to permit all VLAN's on the port."
},
"accessPolicy": {
"type": "string",
"description": "The name of the policy. Only applicable to Access ports. Valid values are: 'open', '8021x-radius', 'mac-radius', 'hybris-radius' for MX64 or Z3 or any MX supporting the per port authentication feature. Otherwise, 'open' is the only valid value and 'open' is the default value if the field is missing."
}
},
"example": {
"enabled": true,
"dropUntaggedTraffic": false,
"type": "access",
"vlan": 3,
"allowedVlans": "all",
"accessPolicy": "open"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"description": "Number of the port"
},
"enabled": {
"type": "boolean",
"description": "The status of the port"
},
"type": {
"type": "string",
"description": "The type of the port: 'access' or 'trunk'."
},
"dropUntaggedTraffic": {
"type": "boolean",
"description": "Whether the trunk port can drop all untagged traffic."
},
"vlan": {
"type": "integer",
"description": "Native VLAN when the port is in Trunk mode. Access VLAN when the port is in Access mode."
},
"allowedVlans": {
"type": "string",
"description": "Comma-delimited list of the VLAN ID's allowed on the port, or 'all' to permit all VLAN's on the port."
},
"accessPolicy": {
"type": "string",
"description": "The name of the policy. Only applicable to Access ports."
}
}
},
"examples": {
"application/json": {
"number": 1,
"enabled": true,
"type": "access",
"dropUntaggedTraffic": false,
"vlan": 3,
"allowedVlans": "all",
"accessPolicy": "open"
}
}
}
},
"summary": "Update the per-port VLAN settings for a single MX port.",
"tags": [
"appliance",
"configure",
"ports"
]
}
},
"/networks/{networkId}/appliance/prefixes/delegated/statics": {
"get": {
"description": "List static delegated prefixes for a network",
"operationId": "getNetworkAppliancePrefixesDelegatedStatics",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"staticDelegatedPrefixId": {
"type": "string",
"description": "Static delegated prefix id."
},
"prefix": {
"type": "string",
"description": "IPv6 prefix/prefix length."
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Origin type"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Uplink provided or independent"
}
},
"description": "WAN1/WAN2/Independent prefix."
},
"description": {
"type": "string",
"description": "Identifying description for the prefix."
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Prefix creation time."
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Prefix Updated time."
}
}
}
},
"examples": {
"application/json": [
{
"staticDelegatedPrefixId": "1284392014819",
"prefix": "2001:db8:3c4d:15::/64",
"origin": {
"type": "internet",
"interfaces": [
"wan1"
]
},
"description": "Prefix on WAN 1 of Long Island Office network",
"createdAt": "2018-05-12T00:00:00Z",
"updatedAt": "2018-05-12T00:00:00Z"
}
]
}
}
},
"summary": "List static delegated prefixes for a network",
"tags": [
"appliance",
"configure",
"prefixes",
"delegated",
"statics"
]
},
"post": {
"description": "Add a static delegated prefix from a network",
"operationId": "createNetworkAppliancePrefixesDelegatedStatic",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "createNetworkAppliancePrefixesDelegatedStatic",
"in": "body",
"schema": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"description": "A static IPv6 prefix"
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"internet",
"independent"
],
"description": "Type of the origin"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Interfaces associated with the prefix"
}
},
"description": "The origin of the prefix"
},
"description": {
"type": "string",
"description": "A name or description for the prefix"
}
},
"example": {
"prefix": "2001:db8:3c4d:15::/64",
"origin": {
"type": "internet",
"interfaces": [
"wan1"
]
},
"description": "Prefix on WAN 1 of Long Island Office network"
},
"required": [
"prefix",
"origin"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"staticDelegatedPrefixId": "1284392014819",
"prefix": "2001:db8:3c4d:15::/64",
"origin": {
"type": "internet",
"interfaces": [
"wan1"
]
},
"description": "Prefix on WAN 1 of Long Island Office network",
"createdAt": "2018-05-12T00:00:00Z",
"updatedAt": "2018-05-12T00:00:00Z"
}
}
}
},
"summary": "Add a static delegated prefix from a network",
"tags": [
"appliance",
"configure",
"prefixes",
"delegated",
"statics"
]
}
},
"/networks/{networkId}/appliance/prefixes/delegated/statics/{staticDelegatedPrefixId}": {
"get": {
"description": "Return a static delegated prefix from a network",
"operationId": "getNetworkAppliancePrefixesDelegatedStatic",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "staticDelegatedPrefixId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"staticDelegatedPrefixId": {
"type": "string",
"description": "Static delegated prefix id."
},
"prefix": {
"type": "string",
"description": "IPv6 prefix/prefix length."
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Origin type"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Uplink provided or independent"
}
},
"description": "WAN1/WAN2/Independent prefix."
},
"description": {
"type": "string",
"description": "Identifying description for the prefix."
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Prefix creation time."
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Prefix Updated time."
}
}
},
"examples": {
"application/json": {
"staticDelegatedPrefixId": "1284392014819",
"prefix": "2001:db8:3c4d:15::/64",
"origin": {
"type": "internet",
"interfaces": [
"wan1"
]
},
"description": "Prefix on WAN 1 of Long Island Office network",
"createdAt": "2018-05-12T00:00:00Z",
"updatedAt": "2018-05-12T00:00:00Z"
}
}
}
},
"summary": "Return a static delegated prefix from a network",
"tags": [
"appliance",
"configure",
"prefixes",
"delegated",
"statics"
]
},
"put": {
"description": "Update a static delegated prefix from a network",
"operationId": "updateNetworkAppliancePrefixesDelegatedStatic",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "staticDelegatedPrefixId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkAppliancePrefixesDelegatedStatic",
"in": "body",
"schema": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"description": "A static IPv6 prefix"
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"internet",
"independent"
],
"description": "Type of the origin"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Interfaces associated with the prefix"
}
},
"description": "The origin of the prefix"
},
"description": {
"type": "string",
"description": "A name or description for the prefix"
}
},
"example": {
"prefix": "2001:db8:3c4d:15::/64",
"origin": {
"type": "internet",
"interfaces": [
"wan1"
]
},
"description": "Prefix on WAN 1 of Long Island Office network"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"staticDelegatedPrefixId": "1284392014819",
"prefix": "2001:db8:3c4d:15::/64",
"origin": {
"type": "internet",
"interfaces": [
"wan1"
]
},
"description": "Prefix on WAN 1 of Long Island Office network",
"createdAt": "2018-05-12T00:00:00Z",
"updatedAt": "2018-05-12T00:00:00Z"
}
}
}
},
"summary": "Update a static delegated prefix from a network",
"tags": [
"appliance",
"configure",
"prefixes",
"delegated",
"statics"
]
},
"delete": {
"description": "Delete a static delegated prefix from a network",
"operationId": "deleteNetworkAppliancePrefixesDelegatedStatic",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "staticDelegatedPrefixId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a static delegated prefix from a network",
"tags": [
"appliance",
"configure",
"prefixes",
"delegated",
"statics"
]
}
},
"/networks/{networkId}/appliance/security/events": {
"get": {
"description": "List the security events for a network",
"operationId": "getNetworkApplianceSecurityEvents",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. Data is gathered after the specified t0 value. The maximum lookback period is 365 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 365 days after t0."
},
{
"type": "number",
"format": "float",
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 365 days. The default is 31 days."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 100."
},
{
"type": "string",
"name": "startingAfter",
"in": "query",
"description": "A token used by the server to indicate the start of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it."
},
{
"type": "string",
"name": "endingBefore",
"in": "query",
"description": "A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it."
},
{
"type": "string",
"enum": [
"ascending",
"descending"
],
"name": "sortOrder",
"in": "query",
"description": "Sorted order of security events based on event detection time. Order options are 'ascending' or 'descending'. Default is ascending order."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"ts": "2020-03-20T16:00:10.144989Z",
"eventType": "File Scanned",
"clientName": "COMPUTER-M-V78J",
"clientMac": "10:dd:b1:eb:88:f8",
"clientIp": "192.168.128.2",
"srcIp": "192.168.128.2",
"destIp": "119.192.233.48",
"protocol": "http",
"uri": "http://www.favorite-icons.com/program/FavoriteIconsUninstall.exe",
"canonicalName": "PUA.Win.Dropper.Kraddare::1201",
"destinationPort": 80,
"fileHash": "3ec1b9a95fe62aa25fc959643a0f227b76d253094681934daaf628d3574b3463",
"fileType": "MS_EXE",
"fileSizeBytes": 193688,
"disposition": "Malicious",
"action": "Blocked"
},
{
"ts": "2018-02-11T00:00:00.090210Z",
"eventType": "IDS Alert",
"deviceMac": "00:18:0a:01:02:03",
"clientMac": "A1:B2:C3:D4:E5:F6",
"srcIp": "1.2.3.4:34195",
"destIp": "10.20.30.40:80",
"protocol": "tcp/ip",
"priority": "2",
"classification": "4",
"blocked": true,
"message": "SERVER-WEBAPP JBoss JMX console access attempt",
"signature": "1:21516:9",
"sigSource": "",
"ruleId": "meraki:intrusion/snort/GID/1/SID/26267"
},
{
"ts": "2018-02-11T00:00:00.090210Z",
"eventType": "IDS Alert",
"deviceMac": "00:18:0a:01:02:03",
"clientMac": "A1:B2:C3:D4:E5:F6",
"srcIp": "1.2.3.4:56023",
"destIp": "10.20.30.40:80",
"protocol": "tcp/ip",
"priority": "1",
"classification": "33",
"blocked": true,
"message": "POLICY-OTHER Adobe ColdFusion admin interface access attempt",
"signature": "1:25975:2",
"sigSource": "",
"ruleId": "meraki:intrusion/snort/GID/1/SID/26267"
}
]
}
}
},
"summary": "List the security events for a network",
"tags": [
"appliance",
"monitor",
"security",
"events"
]
}
},
"/networks/{networkId}/appliance/security/intrusion": {
"get": {
"description": "Returns all supported intrusion settings for an MX network",
"operationId": "getNetworkApplianceSecurityIntrusion",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"mode": "prevention",
"idsRulesets": "balanced",
"protectedNetworks": {
"useDefault": false,
"includedCidr": [
"10.0.0.0/8",
"127.0.0.0/8",
"169.254.0.0/16",
"172.16.0.0/12"
],
"excludedCidr": [
"10.0.0.0/8",
"127.0.0.0/8"
]
}
}
}
}
},
"summary": "Returns all supported intrusion settings for an MX network",
"tags": [
"appliance",
"configure",
"security",
"intrusion"
]
},
"put": {
"description": "Set the supported intrusion settings for an MX network",
"operationId": "updateNetworkApplianceSecurityIntrusion",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceSecurityIntrusion",
"in": "body",
"schema": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"prevention",
"detection",
"disabled"
],
"description": "Set mode to 'disabled'/'detection'/'prevention' (optional - omitting will leave current config unchanged)"
},
"idsRulesets": {
"type": "string",
"enum": [
"connectivity",
"balanced",
"security"
],
"description": "Set the detection ruleset 'connectivity'/'balanced'/'security' (optional - omitting will leave current config unchanged). Default value is 'balanced' if none currently saved"
},
"protectedNetworks": {
"type": "object",
"properties": {
"useDefault": {
"type": "boolean",
"description": "true/false whether to use special IPv4 addresses: https://tools.ietf.org/html/rfc5735 (required). Default value is true if none currently saved"
},
"includedCidr": {
"type": "array",
"items": {
"type": "string"
},
"description": "list of IP addresses or subnets being protected (required if 'useDefault' is false)"
},
"excludedCidr": {
"type": "array",
"items": {
"type": "string"
},
"description": "list of IP addresses or subnets being excluded from protection (required if 'useDefault' is false)"
}
},
"description": "Set the included/excluded networks from the intrusion engine (optional - omitting will leave current config unchanged). This is available only in 'passthrough' mode"
}
},
"example": {
"mode": "prevention",
"idsRulesets": "balanced",
"protectedNetworks": {
"useDefault": false,
"includedCidr": [
"10.0.0.0/8",
"127.0.0.0/8",
"169.254.0.0/16",
"172.16.0.0/12"
],
"excludedCidr": [
"10.0.0.0/8",
"127.0.0.0/8"
]
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"mode": "prevention",
"idsRulesets": "balanced",
"protectedNetworks": {
"useDefault": false,
"includedCidr": [
"10.0.0.0/8",
"127.0.0.0/8",
"169.254.0.0/16",
"172.16.0.0/12"
],
"excludedCidr": [
"10.0.0.0/8",
"127.0.0.0/8"
]
}
}
}
}
},
"summary": "Set the supported intrusion settings for an MX network",
"tags": [
"appliance",
"configure",
"security",
"intrusion"
]
}
},
"/networks/{networkId}/appliance/security/malware": {
"get": {
"description": "Returns all supported malware settings for an MX network",
"operationId": "getNetworkApplianceSecurityMalware",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"mode": "enabled",
"allowedUrls": [
{
"url": "example.org",
"comment": "allow example.org"
},
{
"url": "help.com.au",
"comment": "allow help.com.au"
}
],
"allowedFiles": [
{
"sha256": "e82c5f7d75004727e1f3b94426b9a11c8bc4c312a9170ac9a73abace40aef503",
"comment": "allow ZIP file"
}
]
}
}
}
},
"summary": "Returns all supported malware settings for an MX network",
"tags": [
"appliance",
"configure",
"security",
"malware"
]
},
"put": {
"description": "Set the supported malware settings for an MX network",
"operationId": "updateNetworkApplianceSecurityMalware",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceSecurityMalware",
"in": "body",
"schema": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"enabled",
"disabled"
],
"description": "Set mode to 'enabled' to enable malware prevention, otherwise 'disabled'"
},
"allowedUrls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The url to allow"
},
"comment": {
"type": "string",
"description": "Comment about the allowed entity"
}
},
"required": [
"url",
"comment"
]
},
"description": "The urls that should be permitted by the malware detection engine. If omitted, the current config will remain unchanged. This is available only if your network supports AMP allow listing"
},
"allowedFiles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sha256": {
"type": "string",
"description": "The file sha256 hash to allow"
},
"comment": {
"type": "string",
"description": "Comment about the allowed entity"
}
},
"required": [
"sha256",
"comment"
]
},
"description": "The sha256 digests of files that should be permitted by the malware detection engine. If omitted, the current config will remain unchanged. This is available only if your network supports AMP allow listing"
}
},
"example": {
"mode": "enabled",
"allowedUrls": [
{
"url": "example.org",
"comment": "allow example.org"
},
{
"url": "help.com.au",
"comment": "allow help.com.au"
}
],
"allowedFiles": [
{
"sha256": "e82c5f7d75004727e1f3b94426b9a11c8bc4c312a9170ac9a73abace40aef503",
"comment": "allow ZIP file"
}
]
},
"required": [
"mode"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"mode": "enabled",
"allowedUrls": [
{
"url": "example.org",
"comment": "allow example.org"
},
{
"url": "help.com.au",
"comment": "allow help.com.au"
}
],
"allowedFiles": [
{
"sha256": "e82c5f7d75004727e1f3b94426b9a11c8bc4c312a9170ac9a73abace40aef503",
"comment": "allow ZIP file"
}
]
}
}
}
},
"summary": "Set the supported malware settings for an MX network",
"tags": [
"appliance",
"configure",
"security",
"malware"
]
}
},
"/networks/{networkId}/appliance/settings": {
"get": {
"description": "Return the appliance settings for a network",
"operationId": "getNetworkApplianceSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"clientTrackingMethod": "MAC address",
"deploymentMode": "routed",
"dynamicDns": {
"enabled": true,
"prefix": "test",
"url": "test-adfgnnhjea.meraki.com"
}
}
}
}
},
"summary": "Return the appliance settings for a network",
"tags": [
"appliance",
"configure",
"settings"
]
},
"put": {
"description": "Update the appliance settings for a network",
"operationId": "updateNetworkApplianceSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceSettings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"clientTrackingMethod": {
"type": "string",
"enum": [
"IP address",
"MAC address",
"Unique client identifier"
],
"description": "Client tracking method of a network"
},
"deploymentMode": {
"type": "string",
"enum": [
"routed",
"passthrough"
],
"description": "Deployment mode of a network"
},
"dynamicDns": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"description": "Dynamic DNS url prefix. DDNS must be enabled to update"
},
"enabled": {
"type": "boolean",
"description": "Dynamic DNS enabled"
}
},
"description": "Dynamic DNS settings for a network"
}
},
"example": {
"clientTrackingMethod": "MAC address",
"deploymentMode": "routed",
"dynamicDns": {
"prefix": "default-hostname",
"enabled": true
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"clientTrackingMethod": "MAC address",
"deploymentMode": "routed",
"dynamicDns": {
"enabled": true,
"prefix": "test",
"url": "test-adfgnnhjea.meraki.com"
}
}
}
}
},
"summary": "Update the appliance settings for a network",
"tags": [
"appliance",
"configure",
"settings"
]
}
},
"/networks/{networkId}/appliance/singleLan": {
"get": {
"description": "Return single LAN configuration",
"operationId": "getNetworkApplianceSingleLan",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"subnet": {
"type": "string",
"description": "The subnet of the single LAN"
},
"applianceIp": {
"type": "string",
"description": "The local IP of the appliance on the single LAN"
},
"mandatoryDhcp": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable Mandatory DHCP on single LAN."
}
},
"description": "Mandatory DHCP will enforce that clients connecting to this single LAN must use the IP address assigned by the DHCP server. Clients who use a static IP address won't be able to associate. Only available on firmware versions 17.0 and above"
},
"ipv6": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable IPv6 on single LAN"
},
"prefixAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"autonomous": {
"type": "boolean",
"description": "Auto assign a /64 prefix from the origin to the single LAN"
},
"staticPrefix": {
"type": "string",
"description": "Manual configuration of a /64 prefix on the single LAN"
},
"staticApplianceIp6": {
"type": "string",
"description": "Manual configuration of the IPv6 Appliance IP"
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"internet",
"independent"
],
"description": "Type of the origin"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Interfaces associated with the prefix"
}
},
"description": "The origin of the prefix"
}
}
},
"description": "Prefix assignments on the single LAN"
}
},
"description": "IPv6 configuration on the single LAN"
}
}
},
"examples": {
"application/json": {
"subnet": "192.168.1.0/24",
"applianceIp": "192.168.1.2",
"mandatoryDhcp": {
"enabled": true
},
"ipv6": {
"enabled": true,
"prefixAssignments": [
{
"autonomous": false,
"staticPrefix": "2001:db8:3c4d:15::/64",
"staticApplianceIp6": "2001:db8:3c4d:15::1",
"origin": {
"type": "internet",
"interfaces": [
"wan0"
]
}
}
]
}
}
}
}
},
"summary": "Return single LAN configuration",
"tags": [
"appliance",
"configure",
"singleLan"
]
},
"put": {
"description": "Update single LAN configuration",
"operationId": "updateNetworkApplianceSingleLan",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceSingleLan",
"in": "body",
"schema": {
"type": "object",
"properties": {
"subnet": {
"type": "string",
"description": "The subnet of the single LAN configuration"
},
"applianceIp": {
"type": "string",
"description": "The appliance IP address of the single LAN"
},
"ipv6": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable IPv6 on VLAN."
},
"prefixAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"autonomous": {
"type": "boolean",
"description": "Auto assign a /64 prefix from the origin to the VLAN"
},
"staticPrefix": {
"type": "string",
"description": "Manual configuration of a /64 prefix on the VLAN"
},
"staticApplianceIp6": {
"type": "string",
"description": "Manual configuration of the IPv6 Appliance IP"
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"internet",
"independent"
],
"description": "Type of the origin"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Interfaces associated with the prefix"
}
},
"required": [
"type"
],
"description": "The origin of the prefix"
}
}
},
"description": "Prefix assignments on the VLAN"
}
},
"description": "IPv6 configuration on the VLAN"
},
"mandatoryDhcp": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable Mandatory DHCP on LAN."
}
},
"description": "Mandatory DHCP will enforce that clients connecting to this LAN must use the IP address assigned by the DHCP server. Clients who use a static IP address won't be able to associate. Only available on firmware versions 17.0 and above"
}
},
"example": {
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"subnet": {
"type": "string",
"description": "The subnet of the single LAN"
},
"applianceIp": {
"type": "string",
"description": "The local IP of the appliance on the single LAN"
},
"mandatoryDhcp": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable Mandatory DHCP on single LAN."
}
},
"description": "Mandatory DHCP will enforce that clients connecting to this single LAN must use the IP address assigned by the DHCP server. Clients who use a static IP address won't be able to associate. Only available on firmware versions 17.0 and above"
},
"ipv6": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable IPv6 on single LAN"
},
"prefixAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"autonomous": {
"type": "boolean",
"description": "Auto assign a /64 prefix from the origin to the single LAN"
},
"staticPrefix": {
"type": "string",
"description": "Manual configuration of a /64 prefix on the single LAN"
},
"staticApplianceIp6": {
"type": "string",
"description": "Manual configuration of the IPv6 Appliance IP"
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"internet",
"independent"
],
"description": "Type of the origin"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Interfaces associated with the prefix"
}
},
"description": "The origin of the prefix"
}
}
},
"description": "Prefix assignments on the single LAN"
}
},
"description": "IPv6 configuration on the single LAN"
}
}
},
"examples": {
"application/json": {
"subnet": "192.168.1.0/24",
"applianceIp": "192.168.1.2",
"mandatoryDhcp": {
"enabled": true
},
"ipv6": {
"enabled": true,
"prefixAssignments": [
{
"autonomous": false,
"staticPrefix": "2001:db8:3c4d:15::/64",
"staticApplianceIp6": "2001:db8:3c4d:15::1",
"origin": {
"type": "internet",
"interfaces": [
"wan0"
]
}
}
]
}
}
}
}
},
"summary": "Update single LAN configuration",
"tags": [
"appliance",
"configure",
"singleLan"
]
}
},
"/networks/{networkId}/appliance/ssids": {
"get": {
"description": "List the MX SSIDs in a network",
"operationId": "getNetworkApplianceSsids",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"description": "The number of the SSID."
},
"name": {
"type": "string",
"description": "The name of the SSID."
},
"enabled": {
"type": "boolean",
"description": "Whether or not the SSID is enabled."
},
"defaultVlanId": {
"type": "integer",
"description": "The VLAN ID of the VLAN associated to this SSID."
},
"authMode": {
"type": "string",
"description": "The association control method for the SSID."
},
"radiusServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "The IP address of your RADIUS server."
},
"port": {
"type": "integer",
"description": "The UDP port your RADIUS servers listens on for Access-requests."
}
}
},
"description": "The RADIUS 802.1x servers to be used for authentication."
},
"encryptionMode": {
"type": "string",
"description": "The psk encryption mode for the SSID."
},
"wpaEncryptionMode": {
"type": "string",
"description": "WPA encryption mode for the SSID."
},
"visible": {
"type": "boolean",
"description": "Boolean indicating whether the MX should advertise or hide this SSID."
}
}
}
},
"examples": {
"application/json": [
{
"number": 1,
"name": "My SSID",
"enabled": true,
"defaultVlanId": 1,
"authMode": "8021x-radius",
"radiusServers": [
{
"host": "0.0.0.0",
"port": 1000
}
],
"encryptionMode": "wpa",
"wpaEncryptionMode": "WPA2 only",
"visible": true
}
]
}
}
},
"summary": "List the MX SSIDs in a network",
"tags": [
"appliance",
"configure",
"ssids"
]
}
},
"/networks/{networkId}/appliance/ssids/{number}": {
"get": {
"description": "Return a single MX SSID",
"operationId": "getNetworkApplianceSsid",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"description": "The number of the SSID."
},
"name": {
"type": "string",
"description": "The name of the SSID."
},
"enabled": {
"type": "boolean",
"description": "Whether or not the SSID is enabled."
},
"defaultVlanId": {
"type": "integer",
"description": "The VLAN ID of the VLAN associated to this SSID."
},
"authMode": {
"type": "string",
"description": "The association control method for the SSID."
},
"radiusServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "The IP address of your RADIUS server."
},
"port": {
"type": "integer",
"description": "The UDP port your RADIUS servers listens on for Access-requests."
}
}
},
"description": "The RADIUS 802.1x servers to be used for authentication."
},
"encryptionMode": {
"type": "string",
"description": "The psk encryption mode for the SSID."
},
"wpaEncryptionMode": {
"type": "string",
"description": "WPA encryption mode for the SSID."
},
"visible": {
"type": "boolean",
"description": "Boolean indicating whether the MX should advertise or hide this SSID."
}
}
},
"examples": {
"application/json": {
"number": 1,
"name": "My SSID",
"enabled": true,
"defaultVlanId": 1,
"authMode": "8021x-radius",
"radiusServers": [
{
"host": "0.0.0.0",
"port": 1000
}
],
"encryptionMode": "wpa",
"wpaEncryptionMode": "WPA2 only",
"visible": true
}
}
}
},
"summary": "Return a single MX SSID",
"tags": [
"appliance",
"configure",
"ssids"
]
},
"put": {
"description": "Update the attributes of an MX SSID",
"operationId": "updateNetworkApplianceSsid",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceSsid",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the SSID."
},
"enabled": {
"type": "boolean",
"description": "Whether or not the SSID is enabled."
},
"defaultVlanId": {
"type": "integer",
"description": "The VLAN ID of the VLAN associated to this SSID. This parameter is only valid if the network is in routed mode."
},
"authMode": {
"type": "string",
"enum": [
"open",
"psk",
"8021x-meraki",
"8021x-radius"
],
"description": "The association control method for the SSID ('open', 'psk', '8021x-meraki' or '8021x-radius')."
},
"psk": {
"type": "string",
"description": "The passkey for the SSID. This param is only valid if the authMode is 'psk'."
},
"radiusServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "The IP address of your RADIUS server."
},
"port": {
"type": "integer",
"description": "The UDP port your RADIUS servers listens on for Access-requests."
},
"secret": {
"type": "string",
"description": "The RADIUS client shared secret."
}
}
},
"description": "The RADIUS 802.1x servers to be used for authentication. This param is only valid if the authMode is '8021x-radius'."
},
"encryptionMode": {
"type": "string",
"enum": [
"wep",
"wpa"
],
"description": "The psk encryption mode for the SSID ('wep' or 'wpa'). This param is only valid if the authMode is 'psk'."
},
"wpaEncryptionMode": {
"type": "string",
"enum": [
"WPA1 and WPA2",
"WPA2 only",
"WPA3 Transition Mode",
"WPA3 only"
],
"description": "The types of WPA encryption. ('WPA1 and WPA2', 'WPA2 only', 'WPA3 Transition Mode' or 'WPA3 only'). This param is only valid if (1) the authMode is 'psk' & the encryptionMode is 'wpa' OR (2) the authMode is '8021x-meraki' OR (3) the authMode is '8021x-radius'"
},
"visible": {
"type": "boolean",
"description": "Boolean indicating whether the MX should advertise or hide this SSID."
},
"dhcpEnforcedDeauthentication": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable DCHP Enforced Deauthentication on the SSID."
}
},
"description": "DHCP Enforced Deauthentication enables the disassociation of wireless clients in addition to Mandatory DHCP. This param is only valid on firmware versions >= MX 17.0 where the associated LAN has Mandatory DHCP Enabled "
}
},
"example": {
"name": "My SSID",
"enabled": true,
"defaultVlanId": 1,
"authMode": "8021x-radius",
"psk": "psk",
"radiusServers": [
{
"host": "0.0.0.0",
"port": 1000,
"secret": "secret"
}
],
"encryptionMode": "wpa",
"wpaEncryptionMode": "WPA2 only",
"visible": true,
"dhcpEnforcedDeauthentication": {
"enabled": true
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"description": "The number of the SSID."
},
"name": {
"type": "string",
"description": "The name of the SSID."
},
"enabled": {
"type": "boolean",
"description": "Whether or not the SSID is enabled."
},
"defaultVlanId": {
"type": "integer",
"description": "The VLAN ID of the VLAN associated to this SSID."
},
"authMode": {
"type": "string",
"description": "The association control method for the SSID."
},
"radiusServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "The IP address of your RADIUS server."
},
"port": {
"type": "integer",
"description": "The UDP port your RADIUS servers listens on for Access-requests."
}
}
},
"description": "The RADIUS 802.1x servers to be used for authentication."
},
"encryptionMode": {
"type": "string",
"description": "The psk encryption mode for the SSID."
},
"wpaEncryptionMode": {
"type": "string",
"description": "WPA encryption mode for the SSID."
},
"visible": {
"type": "boolean",
"description": "Boolean indicating whether the MX should advertise or hide this SSID."
}
}
},
"examples": {
"application/json": {
"number": 1,
"name": "My SSID",
"enabled": true,
"defaultVlanId": 1,
"authMode": "8021x-radius",
"radiusServers": [
{
"host": "0.0.0.0",
"port": 1000
}
],
"encryptionMode": "wpa",
"wpaEncryptionMode": "WPA2 only",
"visible": true
}
}
}
},
"summary": "Update the attributes of an MX SSID",
"tags": [
"appliance",
"configure",
"ssids"
]
}
},
"/networks/{networkId}/appliance/staticRoutes": {
"get": {
"description": "List the static routes for an MX or teleworker network",
"operationId": "getNetworkApplianceStaticRoutes",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"id": "d7fa4948-7921-4dfa-af6b-ae8b16c20c39",
"ipVersion": 4,
"networkId": "N_24329156",
"enabled": true,
"name": "My route",
"subnet": "192.168.1.0/24",
"gatewayIp": "1.2.3.5",
"fixedIpAssignments": {
"22:33:44:55:66:77": {
"ip": "1.2.3.4",
"name": "Some client name"
}
},
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
]
}
]
}
}
},
"summary": "List the static routes for an MX or teleworker network",
"tags": [
"appliance",
"configure",
"staticRoutes"
]
},
"post": {
"description": "Add a static route for an MX or teleworker network",
"operationId": "createNetworkApplianceStaticRoute",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "createNetworkApplianceStaticRoute",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the new static route"
},
"subnet": {
"type": "string",
"description": "The subnet of the static route"
},
"gatewayIp": {
"type": "string",
"description": "The gateway IP (next hop) of the static route"
},
"gatewayVlanId": {
"type": "string",
"description": "The gateway IP (next hop) VLAN ID of the static route"
}
},
"example": {
"name": "My route",
"subnet": "192.168.1.0/24",
"gatewayIp": "1.2.3.5"
},
"required": [
"name",
"subnet",
"gatewayIp"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"id": "d7fa4948-7921-4dfa-af6b-ae8b16c20c39",
"ipVersion": 4,
"networkId": "N_24329156",
"enabled": true,
"name": "My route",
"subnet": "192.168.1.0/24",
"gatewayIp": "1.2.3.5",
"fixedIpAssignments": {
},
"reservedIpRanges": [
],
"gatewayVlanId": 100
}
}
}
},
"summary": "Add a static route for an MX or teleworker network",
"tags": [
"appliance",
"configure",
"staticRoutes"
]
}
},
"/networks/{networkId}/appliance/staticRoutes/{staticRouteId}": {
"get": {
"description": "Return a static route for an MX or teleworker network",
"operationId": "getNetworkApplianceStaticRoute",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "staticRouteId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"id": "d7fa4948-7921-4dfa-af6b-ae8b16c20c39",
"ipVersion": 4,
"networkId": "N_24329156",
"enabled": true,
"name": "My route",
"subnet": "192.168.1.0/24",
"gatewayIp": "1.2.3.5",
"fixedIpAssignments": {
"22:33:44:55:66:77": {
"ip": "1.2.3.4",
"name": "Some client name"
}
},
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
]
}
}
}
},
"summary": "Return a static route for an MX or teleworker network",
"tags": [
"appliance",
"configure",
"staticRoutes"
]
},
"put": {
"description": "Update a static route for an MX or teleworker network",
"operationId": "updateNetworkApplianceStaticRoute",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "staticRouteId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceStaticRoute",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the static route"
},
"subnet": {
"type": "string",
"description": "The subnet of the static route"
},
"gatewayIp": {
"type": "string",
"description": "The gateway IP (next hop) of the static route"
},
"gatewayVlanId": {
"type": "string",
"description": "The gateway IP (next hop) VLAN ID of the static route"
},
"enabled": {
"type": "boolean",
"description": "The enabled state of the static route"
},
"fixedIpAssignments": {
"type": "object",
"properties": {
},
"description": "The DHCP fixed IP assignments on the static route. This should be an object that contains mappings from MAC addresses to objects that themselves each contain \"ip\" and \"name\" string fields. See the sample request/response for more details."
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "The first IP in the reserved range"
},
"end": {
"type": "string",
"description": "The last IP in the reserved range"
},
"comment": {
"type": "string",
"description": "A text comment for the reserved range"
}
},
"required": [
"start",
"end",
"comment"
]
},
"description": "The DHCP reserved IP ranges on the static route"
}
},
"example": {
"name": "My route",
"subnet": "192.168.1.0/24",
"fixedIpAssignments": {
"22:33:44:55:66:77": {
"ip": "1.2.3.4",
"name": "Some client name"
}
},
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"id": "d7fa4948-7921-4dfa-af6b-ae8b16c20c39",
"ipVersion": 4,
"networkId": "N_24329156",
"enabled": true,
"name": "My route",
"subnet": "192.168.1.0/24",
"gatewayIp": "1.2.3.5",
"fixedIpAssignments": {
"22:33:44:55:66:77": {
"ip": "1.2.3.4",
"name": "Some client name"
}
},
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
]
}
}
}
},
"summary": "Update a static route for an MX or teleworker network",
"tags": [
"appliance",
"configure",
"staticRoutes"
]
},
"delete": {
"description": "Delete a static route from an MX or teleworker network",
"operationId": "deleteNetworkApplianceStaticRoute",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "staticRouteId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a static route from an MX or teleworker network",
"tags": [
"appliance",
"configure",
"staticRoutes"
]
}
},
"/networks/{networkId}/appliance/trafficShaping": {
"get": {
"description": "Display the traffic shaping settings for an MX network",
"operationId": "getNetworkApplianceTrafficShaping",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"globalBandwidthLimits": {
"limitUp": 2048,
"limitDown": 5120
}
}
}
}
},
"summary": "Display the traffic shaping settings for an MX network",
"tags": [
"appliance",
"configure",
"trafficShaping"
]
},
"put": {
"description": "Update the traffic shaping settings for an MX network",
"operationId": "updateNetworkApplianceTrafficShaping",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceTrafficShaping",
"in": "body",
"schema": {
"type": "object",
"properties": {
"globalBandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The upload bandwidth limit in Kbps. (0 represents no limit.)"
},
"limitDown": {
"type": "integer",
"description": "The download bandwidth limit in Kbps. (0 represents no limit.)"
}
},
"description": "Global per-client bandwidth limit"
}
},
"example": {
"globalBandwidthLimits": {
"limitUp": 2048,
"limitDown": 5120
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"globalBandwidthLimits": {
"limitUp": 2048,
"limitDown": 5120
}
}
}
}
},
"summary": "Update the traffic shaping settings for an MX network",
"tags": [
"appliance",
"configure",
"trafficShaping"
]
}
},
"/networks/{networkId}/appliance/trafficShaping/customPerformanceClasses": {
"get": {
"description": "List all custom performance classes for an MX network",
"operationId": "getNetworkApplianceTrafficShapingCustomPerformanceClasses",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"customPerformanceClassId": "123",
"name": "myCustomPerformanceClass",
"maxLatency": 100,
"maxJitter": 100,
"maxLossPercentage": 5
}
]
}
}
},
"summary": "List all custom performance classes for an MX network",
"tags": [
"appliance",
"configure",
"trafficShaping",
"customPerformanceClasses"
]
},
"post": {
"description": "Add a custom performance class for an MX network",
"operationId": "createNetworkApplianceTrafficShapingCustomPerformanceClass",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "createNetworkApplianceTrafficShapingCustomPerformanceClass",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the custom performance class"
},
"maxLatency": {
"type": "integer",
"description": "Maximum latency in milliseconds"
},
"maxJitter": {
"type": "integer",
"description": "Maximum jitter in milliseconds"
},
"maxLossPercentage": {
"type": "integer",
"description": "Maximum percentage of packet loss"
}
},
"example": {
"name": "myCustomPerformanceClass",
"maxLatency": 100,
"maxJitter": 100,
"maxLossPercentage": 5
},
"required": [
"name"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"customPerformanceClassId": "123",
"name": "myCustomPerformanceClass",
"maxLatency": 100,
"maxJitter": 100,
"maxLossPercentage": 5
}
}
}
},
"summary": "Add a custom performance class for an MX network",
"tags": [
"appliance",
"configure",
"trafficShaping",
"customPerformanceClasses"
]
}
},
"/networks/{networkId}/appliance/trafficShaping/customPerformanceClasses/{customPerformanceClassId}": {
"get": {
"description": "Return a custom performance class for an MX network",
"operationId": "getNetworkApplianceTrafficShapingCustomPerformanceClass",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "customPerformanceClassId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"customPerformanceClassId": "123",
"name": "myCustomPerformanceClass",
"maxLatency": 100,
"maxJitter": 100,
"maxLossPercentage": 5
}
}
}
},
"summary": "Return a custom performance class for an MX network",
"tags": [
"appliance",
"configure",
"trafficShaping",
"customPerformanceClasses"
]
},
"put": {
"description": "Update a custom performance class for an MX network",
"operationId": "updateNetworkApplianceTrafficShapingCustomPerformanceClass",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "customPerformanceClassId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceTrafficShapingCustomPerformanceClass",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the custom performance class"
},
"maxLatency": {
"type": "integer",
"description": "Maximum latency in milliseconds"
},
"maxJitter": {
"type": "integer",
"description": "Maximum jitter in milliseconds"
},
"maxLossPercentage": {
"type": "integer",
"description": "Maximum percentage of packet loss"
}
},
"example": {
"name": "myCustomPerformanceClass",
"maxLatency": 100,
"maxJitter": 100,
"maxLossPercentage": 5
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"customPerformanceClassId": "123",
"name": "myCustomPerformanceClass",
"maxLatency": 100,
"maxJitter": 100,
"maxLossPercentage": 5
}
}
}
},
"summary": "Update a custom performance class for an MX network",
"tags": [
"appliance",
"configure",
"trafficShaping",
"customPerformanceClasses"
]
},
"delete": {
"description": "Delete a custom performance class from an MX network",
"operationId": "deleteNetworkApplianceTrafficShapingCustomPerformanceClass",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "customPerformanceClassId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a custom performance class from an MX network",
"tags": [
"appliance",
"configure",
"trafficShaping",
"customPerformanceClasses"
]
}
},
"/networks/{networkId}/appliance/trafficShaping/rules": {
"put": {
"description": "Update the traffic shaping settings rules for an MX network",
"operationId": "updateNetworkApplianceTrafficShapingRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceTrafficShapingRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"defaultRulesEnabled": {
"type": "boolean",
"description": "Whether default traffic shaping rules are enabled (true) or disabled (false). There are 4 default rules, which can be seen on your network's traffic shaping page. Note that default rules count against the rule limit of 8."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"definitions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"host",
"port",
"ipRange",
"localNet"
],
"description": "The type of definition. Can be one of 'application', 'applicationCategory', 'host', 'port', 'ipRange' or 'localNet'."
},
"value": {
"type": "string",
"description": " If \"type\" is 'host', 'port', 'ipRange' or 'localNet', then \"value\" must be a string, matching either\n a hostname (e.g. \"somesite.com\"), a port (e.g. 8080), or an IP range (\"192.1.0.0\",\n \"192.1.0.0/16\", or \"10.1.0.0/16:80\"). 'localNet' also supports CIDR notation, excluding\n custom ports.\n If \"type\" is 'application' or 'applicationCategory', then \"value\" must be an object\n with the structure { \"id\": \"meraki:layer7/...\" }, where \"id\" is the application category or\n application ID (for a list of IDs for your network, use the trafficShaping/applicationCategories\n endpoint).\n"
}
},
"required": [
"type",
"value"
]
},
"description": " A list of objects describing the definitions of your traffic shaping rule. At least one definition is required.\n"
},
"perClientBandwidthLimits": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"description": "How bandwidth limits are applied by your rule. Can be one of 'network default', 'ignore' or 'custom'."
},
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps)."
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps)."
}
},
"description": "The bandwidth limits object, specifying the upload ('limitUp') and download ('limitDown') speed in Kbps. These are only enforced if 'settings' is set to 'custom'."
}
},
"description": " An object describing the bandwidth settings for your rule.\n"
},
"dscpTagValue": {
"type": "integer",
"description": " The DSCP tag applied by your rule. null means 'Do not change DSCP tag'.\n For a list of possible tag values, use the trafficShaping/dscpTaggingOptions endpoint.\n"
},
"priority": {
"type": "string",
"description": " A string, indicating the priority level for packets bound to your rule.\n Can be 'low', 'normal' or 'high'.\n"
}
},
"required": [
"definitions"
]
},
"description": " An array of traffic shaping rules. Rules are applied in the order that\n they are specified in. An empty list (or null) means no rules. Note that\n you are allowed a maximum of 8 rules.\n"
}
},
"example": {
"defaultRulesEnabled": true,
"rules": [
{
"definitions": [
{
"type": "host",
"value": "google.com"
},
{
"type": "port",
"value": "9090"
},
{
"type": "ipRange",
"value": "192.1.0.0"
},
{
"type": "ipRange",
"value": "192.1.0.0/16"
},
{
"type": "ipRange",
"value": "10.1.0.0/16:80"
},
{
"type": "localNet",
"value": "192.168.0.0/16"
}
],
"perClientBandwidthLimits": {
"settings": "custom",
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
}
},
"dscpTagValue": 0,
"priority": "normal"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"defaultRulesEnabled": true,
"rules": [
{
"definitions": [
{
"type": "host",
"value": "google.com"
},
{
"type": "port",
"value": "9090"
},
{
"type": "ipRange",
"value": "192.1.0.0"
},
{
"type": "ipRange",
"value": "192.1.0.0/16"
},
{
"type": "ipRange",
"value": "10.1.0.0/16:80"
},
{
"type": "localNet",
"value": "192.168.0.0/16"
}
],
"perClientBandwidthLimits": {
"settings": "custom",
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
}
},
"dscpTagValue": 0,
"priority": "normal"
}
]
}
}
}
},
"summary": "Update the traffic shaping settings rules for an MX network",
"tags": [
"appliance",
"configure",
"trafficShaping",
"rules"
]
},
"get": {
"description": "Display the traffic shaping settings rules for an MX network",
"operationId": "getNetworkApplianceTrafficShapingRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"defaultRulesEnabled": true,
"rules": [
{
"definitions": [
{
"type": "host",
"value": "google.com"
},
{
"type": "port",
"value": "9090"
},
{
"type": "ipRange",
"value": "192.1.0.0"
},
{
"type": "ipRange",
"value": "192.1.0.0/16"
},
{
"type": "ipRange",
"value": "10.1.0.0/16:80"
},
{
"type": "localNet",
"value": "192.168.0.0/16"
}
],
"perClientBandwidthLimits": {
"settings": "custom",
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
}
},
"dscpTagValue": 0,
"priority": "normal"
}
]
}
}
}
},
"summary": "Display the traffic shaping settings rules for an MX network",
"tags": [
"appliance",
"configure",
"trafficShaping",
"rules"
]
}
},
"/networks/{networkId}/appliance/trafficShaping/uplinkBandwidth": {
"get": {
"description": "Returns the uplink bandwidth settings for your MX network.",
"operationId": "getNetworkApplianceTrafficShapingUplinkBandwidth",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"bandwidthLimits": {
"wan1": {
"limitUp": 1000000,
"limitDown": 1000000
},
"wan2": {
"limitUp": 1000000,
"limitDown": 1000000
},
"cellular": {
"limitUp": 51200,
"limitDown": 51200
}
}
}
}
}
},
"summary": "Returns the uplink bandwidth settings for your MX network.",
"tags": [
"appliance",
"configure",
"trafficShaping",
"uplinkBandwidth"
]
},
"put": {
"description": "Updates the uplink bandwidth settings for your MX network.",
"operationId": "updateNetworkApplianceTrafficShapingUplinkBandwidth",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceTrafficShapingUplinkBandwidth",
"in": "body",
"schema": {
"type": "object",
"properties": {
"bandwidthLimits": {
"type": "object",
"properties": {
"wan1": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps). null indicates no limit"
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps). null indicates no limit"
}
},
"description": "The bandwidth settings for the 'wan1' uplink"
},
"wan2": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps). null indicates no limit"
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps). null indicates no limit"
}
},
"description": "The bandwidth settings for the 'wan2' uplink"
},
"cellular": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps). null indicates no limit"
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps). null indicates no limit"
}
},
"description": "The bandwidth settings for the 'cellular' uplink"
}
},
"description": "A mapping of uplinks to their bandwidth settings (be sure to check which uplinks are supported for your network)"
}
},
"example": {
"bandwidthLimits": {
"wan1": {
"limitUp": 1000000,
"limitDown": 1000000
},
"wan2": {
"limitUp": 1000000,
"limitDown": 1000000
},
"cellular": {
"limitUp": 51200,
"limitDown": 51200
}
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"bandwidthLimits": {
"wan1": {
"limitUp": 1000000,
"limitDown": 1000000
},
"wan2": {
"limitUp": 1000000,
"limitDown": 1000000
},
"cellular": {
"limitUp": 51200,
"limitDown": 51200
}
}
}
}
}
},
"summary": "Updates the uplink bandwidth settings for your MX network.",
"tags": [
"appliance",
"configure",
"trafficShaping",
"uplinkBandwidth"
]
}
},
"/networks/{networkId}/appliance/trafficShaping/uplinkSelection": {
"get": {
"description": "Show uplink selection settings for an MX network",
"operationId": "getNetworkApplianceTrafficShapingUplinkSelection",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"failoverAndFailback": {
"immediate": {
"enabled": true
}
},
"activeActiveAutoVpnEnabled": true,
"defaultUplink": "wan1",
"loadBalancingEnabled": true,
"wanTrafficUplinkPreferences": [
{
"trafficFilters": [
{
"type": "custom",
"value": {
"protocol": "tcp",
"source": {
"port": "any",
"cidr": "192.168.1.0/24"
},
"destination": {
"port": "any",
"cidr": "any"
}
}
}
],
"preferredUplink": "wan2"
},
{
"trafficFilters": [
{
"type": "custom",
"value": {
"protocol": "tcp",
"source": {
"port": "1-1024",
"vlan": 10,
"host": 254
},
"destination": {
"port": "any",
"cidr": "any"
}
}
}
],
"preferredUplink": "wan1"
}
],
"vpnTrafficUplinkPreferences": [
{
"trafficFilters": [
{
"type": "applicationCategory",
"value": {
"id": "meraki:layer7/category/1"
}
},
{
"type": "application",
"value": {
"id": "meraki:layer7/application/33"
}
},
{
"type": "custom",
"value": {
"protocol": "tcp",
"source": {
"port": "any",
"cidr": "192.168.1.0/24"
},
"destination": {
"port": "any",
"cidr": "any"
}
}
},
{
"type": "custom",
"value": {
"protocol": "tcp",
"source": {
"port": "any",
"cidr": "any"
},
"destination": {
"port": "any",
"network": "L_23456789",
"vlan": 20,
"host": 200
}
}
},
{
"type": "custom",
"value": {
"protocol": "tcp",
"source": {
"port": "any",
"cidr": "any"
},
"destination": {
"port": "1-1024",
"fqdn": "www.google.com"
}
}
}
],
"preferredUplink": "wan2",
"failOverCriterion": "poorPerformance",
"performanceClass": {
"type": "custom",
"customPerformanceClassId": "123456"
}
},
{
"trafficFilters": [
{
"type": "application",
"value": {
"id": "meraki:layer7/application/9"
}
}
],
"preferredUplink": "defaultUplink"
},
{
"trafficFilters": [
{
"type": "application",
"value": {
"id": "meraki:layer7/application/106"
}
}
],
"preferredUplink": "bestForVoIP"
},
{
"trafficFilters": [
{
"type": "application",
"value": {
"id": "meraki:layer7/application/107"
}
}
],
"preferredUplink": "loadBalancing",
"performanceClass": {
"type": "builtin",
"builtinPerformanceClassName": "VoIP"
}
},
{
"trafficFilters": [
{
"type": "application",
"value": {
"id": "meraki:layer7/application/162"
}
}
],
"preferredUplink": "loadBalancing",
"performanceClass": {
"type": "custom",
"customPerformanceClassId": "123456"
}
},
{
"trafficFilters": [
{
"type": "application",
"value": {
"id": "meraki:layer7/application/168"
}
}
],
"preferredUplink": "wan2",
"failOverCriterion": "poorPerformance",
"performanceClass": {
"type": "builtin",
"builtinPerformanceClassName": "VoIP"
}
},
{
"trafficFilters": [
{
"type": "application",
"value": {
"id": "meraki:layer7/application/171"
}
}
],
"preferredUplink": "wan2",
"failOverCriterion": "poorPerformance",
"performanceClass": {
"type": "custom",
"customPerformanceClassId": "123456"
}
}
]
}
}
}
},
"summary": "Show uplink selection settings for an MX network",
"tags": [
"appliance",
"configure",
"trafficShaping",
"uplinkSelection"
]
},
"put": {
"description": "Update uplink selection settings for an MX network",
"operationId": "updateNetworkApplianceTrafficShapingUplinkSelection",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceTrafficShapingUplinkSelection",
"in": "body",
"schema": {
"type": "object",
"properties": {
"activeActiveAutoVpnEnabled": {
"type": "boolean",
"description": "Toggle for enabling or disabling active-active AutoVPN"
},
"defaultUplink": {
"type": "string",
"enum": [
"wan1",
"wan2"
],
"description": "The default uplink. Must be one of: 'wan1' or 'wan2'"
},
"loadBalancingEnabled": {
"type": "boolean",
"description": "Toggle for enabling or disabling load balancing"
},
"failoverAndFailback": {
"type": "object",
"properties": {
"immediate": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Toggle for enabling or disabling immediate WAN failover and failback"
}
},
"required": [
"enabled"
],
"description": "Immediate WAN transition terminates all flows (new and existing) on current WAN when it is deemed unreliable."
}
},
"description": "WAN failover and failback behavior"
},
"wanTrafficUplinkPreferences": {
"type": "array",
"items": {
"type": "object",
"properties": {
"trafficFilters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"custom"
],
"description": "Type of this traffic filter. Must be one of: 'custom'"
},
"value": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"enum": [
"tcp",
"udp",
"icmp6",
"any"
],
"description": "Protocol of this custom type traffic filter. Must be one of: 'tcp', 'udp', 'icmp6' or 'any'"
},
"source": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "E.g.: \"any\", \"0\" (also means \"any\"), \"8080\", \"1-1024\""
},
"cidr": {
"type": "string",
"description": "CIDR format address, or \"any\". E.g.: \"192.168.10.0/24\", \"192.168.10.1\" (same as \"192.168.10.1/32\"), \"0.0.0.0/0\" (same as \"any\")"
},
"vlan": {
"type": "integer",
"description": "VLAN ID of the configured VLAN in the Meraki network. Currently only available under a template network."
},
"host": {
"type": "integer",
"description": "Host ID in the VLAN, should be used along with 'vlan', and not exceed the vlan subnet capacity. Currently only available under a template network."
}
},
"description": "Source of this custom type traffic filter"
},
"destination": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "E.g.: \"any\", \"0\" (also means \"any\"), \"8080\", \"1-1024\""
},
"cidr": {
"type": "string",
"description": "CIDR format address, or \"any\". E.g.: \"192.168.10.0/24\", \"192.168.10.1\" (same as \"192.168.10.1/32\"), \"0.0.0.0/0\" (same as \"any\")"
}
},
"description": "Destination of this custom type traffic filter"
}
},
"required": [
"source",
"destination"
],
"description": "Value object of this traffic filter"
}
},
"required": [
"type",
"value"
]
},
"description": "Array of traffic filters for this uplink preference rule"
},
"preferredUplink": {
"type": "string",
"enum": [
"wan1",
"wan2"
],
"description": "Preferred uplink for this uplink preference rule. Must be one of: 'wan1' or 'wan2'"
}
},
"required": [
"trafficFilters",
"preferredUplink"
]
},
"description": "Array of uplink preference rules for WAN traffic"
},
"vpnTrafficUplinkPreferences": {
"type": "array",
"items": {
"type": "object",
"properties": {
"trafficFilters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"applicationCategory",
"application",
"custom"
],
"description": "Type of this traffic filter. Must be one of: 'applicationCategory', 'application' or 'custom'"
},
"value": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of this applicationCategory or application type traffic filter. E.g.: \"meraki:layer7/category/1\", \"meraki:layer7/application/4\""
},
"protocol": {
"type": "string",
"enum": [
"tcp",
"udp",
"icmp",
"icmp6",
"any"
],
"description": "Protocol of this custom type traffic filter. Must be one of: 'tcp', 'udp', 'icmp', 'icmp6' or 'any'"
},
"source": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "E.g.: \"any\", \"0\" (also means \"any\"), \"8080\", \"1-1024\""
},
"cidr": {
"type": "string",
"description": "CIDR format address, or \"any\". E.g.: \"192.168.10.0/24\", \"192.168.10.1\" (same as \"192.168.10.1/32\"), \"0.0.0.0/0\" (same as \"any\")"
},
"network": {
"type": "string",
"description": "Meraki network ID. Currently only available under a template network, and the value should be ID of either same template network, or another template network currently. E.g.: \"L_12345678\"."
},
"vlan": {
"type": "integer",
"description": "VLAN ID of the configured VLAN in the Meraki network. Currently only available under a template network."
},
"host": {
"type": "integer",
"description": "Host ID in the VLAN, should be used along with 'vlan', and not exceed the vlan subnet capacity. Currently only available under a template network."
}
},
"description": "Source of this custom type traffic filter"
},
"destination": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "E.g.: \"any\", \"0\" (also means \"any\"), \"8080\", \"1-1024\""
},
"cidr": {
"type": "string",
"description": "CIDR format address, or \"any\". E.g.: \"192.168.10.0/24\", \"192.168.10.1\" (same as \"192.168.10.1/32\"), \"0.0.0.0/0\" (same as \"any\")"
},
"network": {
"type": "string",
"description": "Meraki network ID. Currently only available under a template network, and the value should be ID of either same template network, or another template network currently. E.g.: \"L_12345678\"."
},
"vlan": {
"type": "integer",
"description": "VLAN ID of the configured VLAN in the Meraki network. Currently only available under a template network."
},
"host": {
"type": "integer",
"description": "Host ID in the VLAN, should be used along with 'vlan', and not exceed the vlan subnet capacity. Currently only available under a template network."
},
"fqdn": {
"type": "string",
"description": "FQDN format address. Currently only availabe in 'destination' of 'vpnTrafficUplinkPreference' object. E.g.: 'www.google.com'"
}
},
"description": "Destination of this custom type traffic filter"
}
},
"description": "Value object of this traffic filter"
}
},
"required": [
"type",
"value"
]
},
"description": "Array of traffic filters for this uplink preference rule"
},
"preferredUplink": {
"type": "string",
"enum": [
"wan1",
"wan2",
"bestForVoIP",
"loadBalancing",
"defaultUplink"
],
"description": "Preferred uplink for this uplink preference rule. Must be one of: 'wan1', 'wan2', 'bestForVoIP', 'loadBalancing' or 'defaultUplink'"
},
"failOverCriterion": {
"type": "string",
"enum": [
"poorPerformance",
"uplinkDown"
],
"description": "Fail over criterion for this uplink preference rule. Must be one of: 'poorPerformance' or 'uplinkDown'"
},
"performanceClass": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"builtin",
"custom"
],
"description": "Type of this performance class. Must be one of: 'builtin' or 'custom'"
},
"builtinPerformanceClassName": {
"type": "string",
"enum": [
"VoIP"
],
"description": "Name of builtin performance class, must be present when performanceClass type is 'builtin', and value must be one of: 'VoIP'"
},
"customPerformanceClassId": {
"type": "string",
"description": "ID of created custom performance class, must be present when performanceClass type is 'custom'"
}
},
"required": [
"type"
],
"description": "Performance class setting for this uplink preference rule"
}
},
"required": [
"trafficFilters",
"preferredUplink"
]
},
"description": "Array of uplink preference rules for VPN traffic"
}
},
"example": {
"failoverAndFailback": {
"immediate": {
"enabled": true
}
},
"activeActiveAutoVpnEnabled": true,
"defaultUplink": "wan1",
"loadBalancingEnabled": true,
"wanTrafficUplinkPreferences": [
{
"trafficFilters": [
{
"type": "custom",
"value": {
"protocol": "tcp",
"source": {
"port": "any",
"cidr": "192.168.1.0/24"
},
"destination": {
"port": "any",
"cidr": "any"
}
}
}
],
"preferredUplink": "wan2"
},
{
"trafficFilters": [
{
"type": "custom",
"value": {
"protocol": "tcp",
"source": {
"port": "1-1024",
"vlan": 10,
"host": 254
},
"destination": {
"port": "any",
"cidr": "any"
}
}
}
],
"preferredUplink": "wan1"
}
],
"vpnTrafficUplinkPreferences": [
{
"trafficFilters": [
{
"type": "applicationCategory",
"value": {
"id": "meraki:layer7/category/1"
}
},
{
"type": "application",
"value": {
"id": "meraki:layer7/application/33"
}
},
{
"type": "custom",
"value": {
"protocol": "tcp",
"source": {
"port": "any",
"cidr": "192.168.1.0/24"
},
"destination": {
"port": "any",
"cidr": "any"
}
}
},
{
"type": "custom",
"value": {
"protocol": "tcp",
"source": {
"port": "any",
"cidr": "any"
},
"destination": {
"port": "any",
"network": "L_23456789",
"vlan": 20,
"host": 200
}
}
},
{
"type": "custom",
"value": {
"protocol": "tcp",
"source": {
"port": "any",
"cidr": "any"
},
"destination": {
"port": "1-1024",
"fqdn": "www.google.com"
}
}
}
],
"preferredUplink": "wan2",
"failOverCriterion": "poorPerformance",
"performanceClass": {
"type": "custom",
"customPerformanceClassId": "123456"
}
},
{
"trafficFilters": [
{
"type": "application",
"value": {
"id": "meraki:layer7/application/9"
}
}
],
"preferredUplink": "defaultUplink"
},
{
"trafficFilters": [
{
"type": "application",
"value": {
"id": "meraki:layer7/application/106"
}
}
],
"preferredUplink": "bestForVoIP"
},
{
"trafficFilters": [
{
"type": "application",
"value": {
"id": "meraki:layer7/application/107"
}
}
],
"preferredUplink": "loadBalancing",
"performanceClass": {
"type": "builtin",
"builtinPerformanceClassName": "VoIP"
}
},
{
"trafficFilters": [
{
"type": "application",
"value": {
"id": "meraki:layer7/application/162"
}
}
],
"preferredUplink": "loadBalancing",
"performanceClass": {
"type": "custom",
"customPerformanceClassId": "123456"
}
},
{
"trafficFilters": [
{
"type": "application",
"value": {
"id": "meraki:layer7/application/168"
}
}
],
"preferredUplink": "wan2",
"failOverCriterion": "poorPerformance",
"performanceClass": {
"type": "builtin",
"builtinPerformanceClassName": "VoIP"
}
},
{
"trafficFilters": [
{
"type": "application",
"value": {
"id": "meraki:layer7/application/171"
}
}
],
"preferredUplink": "wan2",
"failOverCriterion": "poorPerformance",
"performanceClass": {
"type": "custom",
"customPerformanceClassId": "123456"
}
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"failoverAndFailback": {
"immediate": {
"enabled": true
}
},
"activeActiveAutoVpnEnabled": true,
"defaultUplink": "wan1",
"loadBalancingEnabled": true,
"wanTrafficUplinkPreferences": [
{
"trafficFilters": [
{
"type": "custom",
"value": {
"protocol": "tcp",
"source": {
"port": "any",
"cidr": "192.168.1.0/24"
},
"destination": {
"port": "any",
"cidr": "any"
}
}
}
],
"preferredUplink": "wan2"
},
{
"trafficFilters": [
{
"type": "custom",
"value": {
"protocol": "tcp",
"source": {
"port": "1-1024",
"vlan": 10,
"host": 254
},
"destination": {
"port": "any",
"cidr": "any"
}
}
}
],
"preferredUplink": "wan1"
}
],
"vpnTrafficUplinkPreferences": [
{
"trafficFilters": [
{
"type": "applicationCategory",
"value": {
"id": "meraki:layer7/category/1"
}
},
{
"type": "application",
"value": {
"id": "meraki:layer7/application/33"
}
},
{
"type": "custom",
"value": {
"protocol": "tcp",
"source": {
"port": "any",
"cidr": "192.168.1.0/24"
},
"destination": {
"port": "any",
"cidr": "any"
}
}
},
{
"type": "custom",
"value": {
"protocol": "tcp",
"source": {
"port": "any",
"cidr": "any"
},
"destination": {
"port": "any",
"network": "L_23456789",
"vlan": 20,
"host": 200
}
}
},
{
"type": "custom",
"value": {
"protocol": "tcp",
"source": {
"port": "any",
"cidr": "any"
},
"destination": {
"port": "1-1024",
"fqdn": "www.google.com"
}
}
}
],
"preferredUplink": "wan2",
"failOverCriterion": "poorPerformance",
"performanceClass": {
"type": "custom",
"customPerformanceClassId": "123456"
}
},
{
"trafficFilters": [
{
"type": "application",
"value": {
"id": "meraki:layer7/application/9"
}
}
],
"preferredUplink": "defaultUplink"
},
{
"trafficFilters": [
{
"type": "application",
"value": {
"id": "meraki:layer7/application/106"
}
}
],
"preferredUplink": "bestForVoIP"
},
{
"trafficFilters": [
{
"type": "application",
"value": {
"id": "meraki:layer7/application/107"
}
}
],
"preferredUplink": "loadBalancing",
"performanceClass": {
"type": "builtin",
"builtinPerformanceClassName": "VoIP"
}
},
{
"trafficFilters": [
{
"type": "application",
"value": {
"id": "meraki:layer7/application/162"
}
}
],
"preferredUplink": "loadBalancing",
"performanceClass": {
"type": "custom",
"customPerformanceClassId": "123456"
}
},
{
"trafficFilters": [
{
"type": "application",
"value": {
"id": "meraki:layer7/application/168"
}
}
],
"preferredUplink": "wan2",
"failOverCriterion": "poorPerformance",
"performanceClass": {
"type": "builtin",
"builtinPerformanceClassName": "VoIP"
}
},
{
"trafficFilters": [
{
"type": "application",
"value": {
"id": "meraki:layer7/application/171"
}
}
],
"preferredUplink": "wan2",
"failOverCriterion": "poorPerformance",
"performanceClass": {
"type": "custom",
"customPerformanceClassId": "123456"
}
}
]
}
}
}
},
"summary": "Update uplink selection settings for an MX network",
"tags": [
"appliance",
"configure",
"trafficShaping",
"uplinkSelection"
]
}
},
"/networks/{networkId}/appliance/uplinks/usageHistory": {
"get": {
"description": "Get the sent and received bytes for each uplink of a network.",
"operationId": "getNetworkApplianceUplinksUsageHistory",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 365 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 31 days after t0."
},
{
"type": "number",
"format": "float",
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 10 minutes."
},
{
"type": "integer",
"name": "resolution",
"in": "query",
"description": "The time resolution in seconds for returned data. The valid resolutions are: 60, 300, 600, 1800, 3600, 86400. The default is 60."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"startTime": "2021-07-22T02:00:00Z",
"endTime": "2021-07-22T03:00:00Z",
"byInterface": [
{
"interface": "wan1",
"sent": 1562063,
"received": 9528787
},
{
"interface": "wan2",
"sent": 396646,
"received": 2747782
}
]
},
{
"startTime": "2021-07-22T03:00:00Z",
"endTime": "2021-07-22T04:00:00Z",
"byInterface": [
{
"interface": "wan1",
"sent": 6326222,
"received": 12253346
},
{
"interface": "wan2",
"sent": 402850,
"received": 2981021
}
]
}
]
}
}
},
"summary": "Get the sent and received bytes for each uplink of a network.",
"tags": [
"appliance",
"monitor",
"uplinks",
"usageHistory"
]
}
},
"/networks/{networkId}/appliance/vlans": {
"get": {
"description": "List the VLANs for an MX network",
"operationId": "getNetworkApplianceVlans",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The VLAN ID of the VLAN"
},
"interfaceId": {
"type": "string",
"description": "The interface ID of the VLAN"
},
"name": {
"type": "string",
"description": "The name of the VLAN"
},
"subnet": {
"type": "string",
"description": "The subnet of the VLAN"
},
"applianceIp": {
"type": "string",
"description": "The local IP of the appliance on the VLAN"
},
"groupPolicyId": {
"type": "string",
"description": "The id of the desired group policy to apply to the VLAN"
},
"templateVlanType": {
"type": "string",
"enum": [
"same",
"unique"
],
"description": "Type of subnetting of the VLAN. Applicable only for template network.",
"default": "same"
},
"cidr": {
"type": "string",
"description": "CIDR of the pool of subnets. Applicable only for template network. Each network bound to the template will automatically pick a subnet from this pool to build its own VLAN."
},
"mask": {
"type": "integer",
"description": "Mask used for the subnet of all bound to the template networks. Applicable only for template network."
},
"dhcpRelayServerIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "The IPs of the DHCP servers that DHCP requests should be relayed to"
},
"dhcpHandling": {
"type": "string",
"enum": [
"Run a DHCP server",
"Relay DHCP to another server",
"Do not respond to DHCP requests"
],
"description": "The appliance's handling of DHCP requests on this VLAN. One of: 'Run a DHCP server', 'Relay DHCP to another server' or 'Do not respond to DHCP requests'"
},
"dhcpLeaseTime": {
"type": "string",
"enum": [
"30 minutes",
"1 hour",
"4 hours",
"12 hours",
"1 day",
"1 week"
],
"description": "The term of DHCP leases if the appliance is running a DHCP server on this VLAN. One of: '30 minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1 week'"
},
"dhcpBootOptionsEnabled": {
"type": "boolean",
"description": "Use DHCP boot options specified in other properties"
},
"dhcpBootNextServer": {
"type": "string",
"description": "DHCP boot option to direct boot clients to the server to load the boot file from"
},
"dhcpBootFilename": {
"type": "string",
"description": "DHCP boot option for boot filename"
},
"fixedIpAssignments": {
"type": "object",
"properties": {
},
"description": "The DHCP fixed IP assignments on the VLAN. This should be an object that contains mappings from MAC addresses to objects that themselves each contain \"ip\" and \"name\" string fields. See the sample request/response for more details."
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "The first IP in the reserved range"
},
"end": {
"type": "string",
"description": "The last IP in the reserved range"
},
"comment": {
"type": "string",
"description": "A text comment for the reserved range"
}
}
},
"description": "The DHCP reserved IP ranges on the VLAN"
},
"dnsNameservers": {
"type": "string",
"description": "The DNS nameservers used for DHCP responses, either \"upstream_dns\", \"google_dns\", \"opendns\", or a newline seperated string of IP addresses or domain names"
},
"dhcpOptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "The code for the DHCP option. This should be an integer between 2 and 254."
},
"type": {
"type": "string",
"enum": [
"text",
"ip",
"hex",
"integer"
],
"description": "The type for the DHCP option. One of: 'text', 'ip', 'hex' or 'integer'"
},
"value": {
"type": "string",
"description": "The value for the DHCP option"
}
},
"required": [
"code",
"type",
"value"
]
},
"description": "The list of DHCP options that will be included in DHCP responses. Each object in the list should have \"code\", \"type\", and \"value\" properties."
},
"vpnNatSubnet": {
"type": "string",
"description": "The translated VPN subnet if VPN and VPN subnet translation are enabled on the VLAN"
},
"mandatoryDhcp": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable Mandatory DHCP on VLAN."
}
},
"description": "Mandatory DHCP will enforce that clients connecting to this VLAN must use the IP address assigned by the DHCP server. Clients who use a static IP address won't be able to associate. Only available on firmware versions 17.0 and above"
},
"ipv6": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable IPv6 on VLAN"
},
"prefixAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"autonomous": {
"type": "boolean",
"description": "Auto assign a /64 prefix from the origin to the VLAN"
},
"staticPrefix": {
"type": "string",
"description": "Manual configuration of a /64 prefix on the VLAN"
},
"staticApplianceIp6": {
"type": "string",
"description": "Manual configuration of the IPv6 Appliance IP"
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"internet",
"independent"
],
"description": "Type of the origin"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Interfaces associated with the prefix"
}
},
"description": "The origin of the prefix"
}
}
},
"description": "Prefix assignments on the VLAN"
}
},
"description": "IPv6 configuration on the VLAN"
}
}
}
},
"examples": {
"application/json": [
{
"id": "1234",
"interfaceId": "1284392014819",
"name": "My VLAN",
"subnet": "192.168.1.0/24",
"applianceIp": "192.168.1.2",
"groupPolicyId": "101",
"templateVlanType": "same",
"cidr": "192.168.1.0/24",
"mask": 28,
"dhcpRelayServerIps": [
"192.168.1.0/24",
"192.168.128.0/24"
],
"dhcpHandling": "Run a DHCP server",
"dhcpLeaseTime": "1 day",
"dhcpBootOptionsEnabled": false,
"dhcpBootNextServer": "1.2.3.4",
"dhcpBootFilename": "sample.file",
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
],
"dnsNameservers": "google_dns",
"dhcpOptions": [
{
"code": "5",
"type": "text",
"value": "five"
}
],
"vpnNatSubnet": "192.168.1.0/24",
"mandatoryDhcp": {
"enabled": true
},
"ipv6": {
"enabled": true,
"prefixAssignments": [
{
"autonomous": false,
"staticPrefix": "2001:db8:3c4d:15::/64",
"staticApplianceIp6": "2001:db8:3c4d:15::1",
"origin": {
"type": "internet",
"interfaces": [
"wan0"
]
}
}
]
}
}
]
}
}
},
"summary": "List the VLANs for an MX network",
"tags": [
"appliance",
"configure",
"vlans"
]
},
"post": {
"description": "Add a VLAN",
"operationId": "createNetworkApplianceVlan",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "createNetworkApplianceVlan",
"in": "body",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The VLAN ID of the new VLAN (must be between 1 and 4094)"
},
"name": {
"type": "string",
"description": "The name of the new VLAN"
},
"subnet": {
"type": "string",
"description": "The subnet of the VLAN"
},
"applianceIp": {
"type": "string",
"description": "The local IP of the appliance on the VLAN"
},
"groupPolicyId": {
"type": "string",
"description": "The id of the desired group policy to apply to the VLAN"
},
"templateVlanType": {
"type": "string",
"enum": [
"same",
"unique"
],
"description": "Type of subnetting of the VLAN. Applicable only for template network.",
"default": "same"
},
"cidr": {
"type": "string",
"description": "CIDR of the pool of subnets. Applicable only for template network. Each network bound to the template will automatically pick a subnet from this pool to build its own VLAN."
},
"mask": {
"type": "integer",
"description": "Mask used for the subnet of all bound to the template networks. Applicable only for template network."
},
"ipv6": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable IPv6 on VLAN."
},
"prefixAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"autonomous": {
"type": "boolean",
"description": "Auto assign a /64 prefix from the origin to the VLAN"
},
"staticPrefix": {
"type": "string",
"description": "Manual configuration of a /64 prefix on the VLAN"
},
"staticApplianceIp6": {
"type": "string",
"description": "Manual configuration of the IPv6 Appliance IP"
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"internet",
"independent"
],
"description": "Type of the origin"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Interfaces associated with the prefix"
}
},
"required": [
"type"
],
"description": "The origin of the prefix"
}
}
},
"description": "Prefix assignments on the VLAN"
}
},
"description": "IPv6 configuration on the VLAN"
},
"mandatoryDhcp": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable Mandatory DHCP on VLAN."
}
},
"description": "Mandatory DHCP will enforce that clients connecting to this VLAN must use the IP address assigned by the DHCP server. Clients who use a static IP address won't be able to associate. Only available on firmware versions 17.0 and above"
}
},
"example": {
"id": "1234",
"name": "My VLAN",
"subnet": "192.168.1.0/24",
"applianceIp": "192.168.1.2",
"groupPolicyId": "101"
},
"required": [
"id",
"name"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The VLAN ID of the VLAN"
},
"interfaceId": {
"type": "string",
"description": "The interface ID of the VLAN"
},
"name": {
"type": "string",
"description": "The name of the VLAN"
},
"subnet": {
"type": "string",
"description": "The subnet of the VLAN"
},
"applianceIp": {
"type": "string",
"description": "The local IP of the appliance on the VLAN"
},
"groupPolicyId": {
"type": "string",
"description": "The id of the desired group policy to apply to the VLAN"
},
"templateVlanType": {
"type": "string",
"enum": [
"same",
"unique"
],
"description": "Type of subnetting of the VLAN. Applicable only for template network.",
"default": "same"
},
"cidr": {
"type": "string",
"description": "CIDR of the pool of subnets. Applicable only for template network. Each network bound to the template will automatically pick a subnet from this pool to build its own VLAN."
},
"mask": {
"type": "integer",
"description": "Mask used for the subnet of all bound to the template networks. Applicable only for template network."
},
"mandatoryDhcp": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable Mandatory DHCP on VLAN."
}
},
"description": "Mandatory DHCP will enforce that clients connecting to this VLAN must use the IP address assigned by the DHCP server. Clients who use a static IP address won't be able to associate. Only available on firmware versions 17.0 and above"
},
"ipv6": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable IPv6 on VLAN"
},
"prefixAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"autonomous": {
"type": "boolean",
"description": "Auto assign a /64 prefix from the origin to the VLAN"
},
"staticPrefix": {
"type": "string",
"description": "Manual configuration of a /64 prefix on the VLAN"
},
"staticApplianceIp6": {
"type": "string",
"description": "Manual configuration of the IPv6 Appliance IP"
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"internet",
"independent"
],
"description": "Type of the origin"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Interfaces associated with the prefix"
}
},
"description": "The origin of the prefix"
}
}
},
"description": "Prefix assignments on the VLAN"
}
},
"description": "IPv6 configuration on the VLAN"
}
}
},
"examples": {
"application/json": {
"id": "1234",
"interfaceId": "1284392014819",
"name": "My VLAN",
"subnet": "192.168.1.0/24",
"applianceIp": "192.168.1.2",
"groupPolicyId": "101",
"templateVlanType": "same",
"cidr": "192.168.1.0/24",
"mask": 28,
"mandatoryDhcp": {
"enabled": true
},
"ipv6": {
"enabled": true,
"prefixAssignments": [
{
"autonomous": false,
"staticPrefix": "2001:db8:3c4d:15::/64",
"staticApplianceIp6": "2001:db8:3c4d:15::1",
"origin": {
"type": "internet",
"interfaces": [
"wan0"
]
}
}
]
}
}
}
}
},
"summary": "Add a VLAN",
"tags": [
"appliance",
"configure",
"vlans"
]
}
},
"/networks/{networkId}/appliance/vlans/settings": {
"get": {
"description": "Returns the enabled status of VLANs for the network",
"operationId": "getNetworkApplianceVlansSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"vlansEnabled": true
}
}
}
},
"summary": "Returns the enabled status of VLANs for the network",
"tags": [
"appliance",
"configure",
"vlans",
"settings"
]
},
"put": {
"description": "Enable/Disable VLANs for the given network",
"operationId": "updateNetworkApplianceVlansSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceVlansSettings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"vlansEnabled": {
"type": "boolean",
"description": "Boolean indicating whether to enable (true) or disable (false) VLANs for the network"
}
},
"example": {
"vlansEnabled": true
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"vlansEnabled": true
}
}
}
},
"summary": "Enable/Disable VLANs for the given network",
"tags": [
"appliance",
"configure",
"vlans",
"settings"
]
}
},
"/networks/{networkId}/appliance/vlans/{vlanId}": {
"get": {
"description": "Return a VLAN",
"operationId": "getNetworkApplianceVlan",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "vlanId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The VLAN ID of the VLAN"
},
"interfaceId": {
"type": "string",
"description": "The interface ID of the VLAN"
},
"name": {
"type": "string",
"description": "The name of the VLAN"
},
"subnet": {
"type": "string",
"description": "The subnet of the VLAN"
},
"applianceIp": {
"type": "string",
"description": "The local IP of the appliance on the VLAN"
},
"groupPolicyId": {
"type": "string",
"description": "The id of the desired group policy to apply to the VLAN"
},
"templateVlanType": {
"type": "string",
"enum": [
"same",
"unique"
],
"description": "Type of subnetting of the VLAN. Applicable only for template network.",
"default": "same"
},
"cidr": {
"type": "string",
"description": "CIDR of the pool of subnets. Applicable only for template network. Each network bound to the template will automatically pick a subnet from this pool to build its own VLAN."
},
"mask": {
"type": "integer",
"description": "Mask used for the subnet of all bound to the template networks. Applicable only for template network."
},
"dhcpRelayServerIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "The IPs of the DHCP servers that DHCP requests should be relayed to"
},
"dhcpHandling": {
"type": "string",
"enum": [
"Run a DHCP server",
"Relay DHCP to another server",
"Do not respond to DHCP requests"
],
"description": "The appliance's handling of DHCP requests on this VLAN. One of: 'Run a DHCP server', 'Relay DHCP to another server' or 'Do not respond to DHCP requests'"
},
"dhcpLeaseTime": {
"type": "string",
"enum": [
"30 minutes",
"1 hour",
"4 hours",
"12 hours",
"1 day",
"1 week"
],
"description": "The term of DHCP leases if the appliance is running a DHCP server on this VLAN. One of: '30 minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1 week'"
},
"dhcpBootOptionsEnabled": {
"type": "boolean",
"description": "Use DHCP boot options specified in other properties"
},
"dhcpBootNextServer": {
"type": "string",
"description": "DHCP boot option to direct boot clients to the server to load the boot file from"
},
"dhcpBootFilename": {
"type": "string",
"description": "DHCP boot option for boot filename"
},
"fixedIpAssignments": {
"type": "object",
"properties": {
},
"description": "The DHCP fixed IP assignments on the VLAN. This should be an object that contains mappings from MAC addresses to objects that themselves each contain \"ip\" and \"name\" string fields. See the sample request/response for more details."
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "The first IP in the reserved range"
},
"end": {
"type": "string",
"description": "The last IP in the reserved range"
},
"comment": {
"type": "string",
"description": "A text comment for the reserved range"
}
}
},
"description": "The DHCP reserved IP ranges on the VLAN"
},
"dnsNameservers": {
"type": "string",
"description": "The DNS nameservers used for DHCP responses, either \"upstream_dns\", \"google_dns\", \"opendns\", or a newline seperated string of IP addresses or domain names"
},
"dhcpOptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "The code for the DHCP option. This should be an integer between 2 and 254."
},
"type": {
"type": "string",
"enum": [
"text",
"ip",
"hex",
"integer"
],
"description": "The type for the DHCP option. One of: 'text', 'ip', 'hex' or 'integer'"
},
"value": {
"type": "string",
"description": "The value for the DHCP option"
}
},
"required": [
"code",
"type",
"value"
]
},
"description": "The list of DHCP options that will be included in DHCP responses. Each object in the list should have \"code\", \"type\", and \"value\" properties."
},
"vpnNatSubnet": {
"type": "string",
"description": "The translated VPN subnet if VPN and VPN subnet translation are enabled on the VLAN"
},
"mandatoryDhcp": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable Mandatory DHCP on VLAN."
}
},
"description": "Mandatory DHCP will enforce that clients connecting to this VLAN must use the IP address assigned by the DHCP server. Clients who use a static IP address won't be able to associate. Only available on firmware versions 17.0 and above"
},
"ipv6": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable IPv6 on VLAN"
},
"prefixAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"autonomous": {
"type": "boolean",
"description": "Auto assign a /64 prefix from the origin to the VLAN"
},
"staticPrefix": {
"type": "string",
"description": "Manual configuration of a /64 prefix on the VLAN"
},
"staticApplianceIp6": {
"type": "string",
"description": "Manual configuration of the IPv6 Appliance IP"
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"internet",
"independent"
],
"description": "Type of the origin"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Interfaces associated with the prefix"
}
},
"description": "The origin of the prefix"
}
}
},
"description": "Prefix assignments on the VLAN"
}
},
"description": "IPv6 configuration on the VLAN"
}
}
},
"examples": {
"application/json": {
"id": "1234",
"interfaceId": "1284392014819",
"name": "My VLAN",
"subnet": "192.168.1.0/24",
"applianceIp": "192.168.1.2",
"groupPolicyId": "101",
"templateVlanType": "same",
"cidr": "192.168.1.0/24",
"mask": 28,
"dhcpRelayServerIps": [
"192.168.1.0/24",
"192.168.128.0/24"
],
"dhcpHandling": "Run a DHCP server",
"dhcpLeaseTime": "1 day",
"dhcpBootOptionsEnabled": false,
"dhcpBootNextServer": "1.2.3.4",
"dhcpBootFilename": "sample.file",
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
],
"dnsNameservers": "google_dns",
"dhcpOptions": [
{
"code": "5",
"type": "text",
"value": "five"
}
],
"vpnNatSubnet": "192.168.1.0/24",
"mandatoryDhcp": {
"enabled": true
},
"ipv6": {
"enabled": true,
"prefixAssignments": [
{
"autonomous": false,
"staticPrefix": "2001:db8:3c4d:15::/64",
"staticApplianceIp6": "2001:db8:3c4d:15::1",
"origin": {
"type": "internet",
"interfaces": [
"wan0"
]
}
}
]
}
}
}
}
},
"summary": "Return a VLAN",
"tags": [
"appliance",
"configure",
"vlans"
]
},
"put": {
"description": "Update a VLAN",
"operationId": "updateNetworkApplianceVlan",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "vlanId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceVlan",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the VLAN"
},
"subnet": {
"type": "string",
"description": "The subnet of the VLAN"
},
"applianceIp": {
"type": "string",
"description": "The local IP of the appliance on the VLAN"
},
"groupPolicyId": {
"type": "string",
"description": "The id of the desired group policy to apply to the VLAN"
},
"vpnNatSubnet": {
"type": "string",
"description": "The translated VPN subnet if VPN and VPN subnet translation are enabled on the VLAN"
},
"dhcpHandling": {
"type": "string",
"enum": [
"Run a DHCP server",
"Relay DHCP to another server",
"Do not respond to DHCP requests"
],
"description": "The appliance's handling of DHCP requests on this VLAN. One of: 'Run a DHCP server', 'Relay DHCP to another server' or 'Do not respond to DHCP requests'"
},
"dhcpRelayServerIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "The IPs of the DHCP servers that DHCP requests should be relayed to"
},
"dhcpLeaseTime": {
"type": "string",
"enum": [
"30 minutes",
"1 hour",
"4 hours",
"12 hours",
"1 day",
"1 week"
],
"description": "The term of DHCP leases if the appliance is running a DHCP server on this VLAN. One of: '30 minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1 week'"
},
"dhcpBootOptionsEnabled": {
"type": "boolean",
"description": "Use DHCP boot options specified in other properties"
},
"dhcpBootNextServer": {
"type": "string",
"description": "DHCP boot option to direct boot clients to the server to load the boot file from"
},
"dhcpBootFilename": {
"type": "string",
"description": "DHCP boot option for boot filename"
},
"fixedIpAssignments": {
"type": "object",
"properties": {
},
"description": "The DHCP fixed IP assignments on the VLAN. This should be an object that contains mappings from MAC addresses to objects that themselves each contain \"ip\" and \"name\" string fields. See the sample request/response for more details."
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "The first IP in the reserved range"
},
"end": {
"type": "string",
"description": "The last IP in the reserved range"
},
"comment": {
"type": "string",
"description": "A text comment for the reserved range"
}
},
"required": [
"start",
"end",
"comment"
]
},
"description": "The DHCP reserved IP ranges on the VLAN"
},
"dnsNameservers": {
"type": "string",
"description": "The DNS nameservers used for DHCP responses, either \"upstream_dns\", \"google_dns\", \"opendns\", or a newline seperated string of IP addresses or domain names"
},
"dhcpOptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "The code for the DHCP option. This should be an integer between 2 and 254."
},
"type": {
"type": "string",
"enum": [
"text",
"ip",
"hex",
"integer"
],
"description": "The type for the DHCP option. One of: 'text', 'ip', 'hex' or 'integer'"
},
"value": {
"type": "string",
"description": "The value for the DHCP option"
}
},
"required": [
"code",
"type",
"value"
]
},
"description": "The list of DHCP options that will be included in DHCP responses. Each object in the list should have \"code\", \"type\", and \"value\" properties."
},
"templateVlanType": {
"type": "string",
"enum": [
"same",
"unique"
],
"description": "Type of subnetting of the VLAN. Applicable only for template network."
},
"cidr": {
"type": "string",
"description": "CIDR of the pool of subnets. Applicable only for template network. Each network bound to the template will automatically pick a subnet from this pool to build its own VLAN."
},
"mask": {
"type": "integer",
"description": "Mask used for the subnet of all bound to the template networks. Applicable only for template network."
},
"ipv6": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable IPv6 on VLAN."
},
"prefixAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"autonomous": {
"type": "boolean",
"description": "Auto assign a /64 prefix from the origin to the VLAN"
},
"staticPrefix": {
"type": "string",
"description": "Manual configuration of a /64 prefix on the VLAN"
},
"staticApplianceIp6": {
"type": "string",
"description": "Manual configuration of the IPv6 Appliance IP"
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"internet",
"independent"
],
"description": "Type of the origin"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Interfaces associated with the prefix"
}
},
"required": [
"type"
],
"description": "The origin of the prefix"
}
}
},
"description": "Prefix assignments on the VLAN"
}
},
"description": "IPv6 configuration on the VLAN"
},
"mandatoryDhcp": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable Mandatory DHCP on VLAN."
}
},
"description": "Mandatory DHCP will enforce that clients connecting to this VLAN must use the IP address assigned by the DHCP server. Clients who use a static IP address won't be able to associate. Only available on firmware versions 17.0 and above"
}
},
"example": {
"name": "My VLAN",
"applianceIp": "192.168.1.2",
"subnet": "192.168.1.0/24",
"groupPolicyId": "101",
"templateVlanType": "same",
"cidr": "192.168.1.0/24",
"mask": 28,
"fixedIpAssignments": {
"22:33:44:55:66:77": {
"ip": "1.2.3.4",
"name": "Some client name"
}
},
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
],
"dnsNameservers": "google_dns",
"dhcpHandling": "Run a DHCP server",
"dhcpLeaseTime": "1 day",
"dhcpBootOptionsEnabled": false,
"dhcpBootNextServer": "1.2.3.4",
"dhcpBootFilename": "sample.file",
"dhcpOptions": [
{
"code": "5",
"type": "text",
"value": "five"
}
],
"ipv6": {
"enabled": true,
"prefixAssignments": [
{
"autonomous": false,
"staticPrefix": "2001:db8:3c4d:15::/64",
"staticApplianceIp6": "2001:db8:3c4d:15::1",
"origin": {
"type": "internet",
"interfaces": [
"wan0"
]
}
}
]
},
"mandatoryDhcp": {
"enabled": true
},
"dhcpRelayServerIps": [
"192.168.1.0/24",
"192.168.128.0/24"
],
"vpnNatSubnet": "192.168.1.0/24"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The VLAN ID of the VLAN"
},
"interfaceId": {
"type": "string",
"description": "The interface ID of the VLAN"
},
"name": {
"type": "string",
"description": "The name of the VLAN"
},
"subnet": {
"type": "string",
"description": "The subnet of the VLAN"
},
"applianceIp": {
"type": "string",
"description": "The local IP of the appliance on the VLAN"
},
"groupPolicyId": {
"type": "string",
"description": "The id of the desired group policy to apply to the VLAN"
},
"templateVlanType": {
"type": "string",
"enum": [
"same",
"unique"
],
"description": "Type of subnetting of the VLAN. Applicable only for template network.",
"default": "same"
},
"cidr": {
"type": "string",
"description": "CIDR of the pool of subnets. Applicable only for template network. Each network bound to the template will automatically pick a subnet from this pool to build its own VLAN."
},
"mask": {
"type": "integer",
"description": "Mask used for the subnet of all bound to the template networks. Applicable only for template network."
},
"dhcpRelayServerIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "The IPs of the DHCP servers that DHCP requests should be relayed to"
},
"dhcpHandling": {
"type": "string",
"enum": [
"Run a DHCP server",
"Relay DHCP to another server",
"Do not respond to DHCP requests"
],
"description": "The appliance's handling of DHCP requests on this VLAN. One of: 'Run a DHCP server', 'Relay DHCP to another server' or 'Do not respond to DHCP requests'"
},
"dhcpLeaseTime": {
"type": "string",
"enum": [
"30 minutes",
"1 hour",
"4 hours",
"12 hours",
"1 day",
"1 week"
],
"description": "The term of DHCP leases if the appliance is running a DHCP server on this VLAN. One of: '30 minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1 week'"
},
"dhcpBootOptionsEnabled": {
"type": "boolean",
"description": "Use DHCP boot options specified in other properties"
},
"dhcpBootNextServer": {
"type": "string",
"description": "DHCP boot option to direct boot clients to the server to load the boot file from"
},
"dhcpBootFilename": {
"type": "string",
"description": "DHCP boot option for boot filename"
},
"fixedIpAssignments": {
"type": "object",
"properties": {
},
"description": "The DHCP fixed IP assignments on the VLAN. This should be an object that contains mappings from MAC addresses to objects that themselves each contain \"ip\" and \"name\" string fields. See the sample request/response for more details."
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "The first IP in the reserved range"
},
"end": {
"type": "string",
"description": "The last IP in the reserved range"
},
"comment": {
"type": "string",
"description": "A text comment for the reserved range"
}
}
},
"description": "The DHCP reserved IP ranges on the VLAN"
},
"dnsNameservers": {
"type": "string",
"description": "The DNS nameservers used for DHCP responses, either \"upstream_dns\", \"google_dns\", \"opendns\", or a newline seperated string of IP addresses or domain names"
},
"dhcpOptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "The code for the DHCP option. This should be an integer between 2 and 254."
},
"type": {
"type": "string",
"enum": [
"text",
"ip",
"hex",
"integer"
],
"description": "The type for the DHCP option. One of: 'text', 'ip', 'hex' or 'integer'"
},
"value": {
"type": "string",
"description": "The value for the DHCP option"
}
},
"required": [
"code",
"type",
"value"
]
},
"description": "The list of DHCP options that will be included in DHCP responses. Each object in the list should have \"code\", \"type\", and \"value\" properties."
},
"vpnNatSubnet": {
"type": "string",
"description": "The translated VPN subnet if VPN and VPN subnet translation are enabled on the VLAN"
},
"mandatoryDhcp": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable Mandatory DHCP on VLAN."
}
},
"description": "Mandatory DHCP will enforce that clients connecting to this VLAN must use the IP address assigned by the DHCP server. Clients who use a static IP address won't be able to associate. Only available on firmware versions 17.0 and above"
},
"ipv6": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable IPv6 on VLAN"
},
"prefixAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"autonomous": {
"type": "boolean",
"description": "Auto assign a /64 prefix from the origin to the VLAN"
},
"staticPrefix": {
"type": "string",
"description": "Manual configuration of a /64 prefix on the VLAN"
},
"staticApplianceIp6": {
"type": "string",
"description": "Manual configuration of the IPv6 Appliance IP"
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"internet",
"independent"
],
"description": "Type of the origin"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Interfaces associated with the prefix"
}
},
"description": "The origin of the prefix"
}
}
},
"description": "Prefix assignments on the VLAN"
}
},
"description": "IPv6 configuration on the VLAN"
}
}
},
"examples": {
"application/json": {
"id": "1234",
"interfaceId": "1284392014819",
"name": "My VLAN",
"subnet": "192.168.1.0/24",
"applianceIp": "192.168.1.2",
"groupPolicyId": "101",
"templateVlanType": "same",
"cidr": "192.168.1.0/24",
"mask": 28,
"dhcpRelayServerIps": [
"192.168.1.0/24",
"192.168.128.0/24"
],
"dhcpHandling": "Run a DHCP server",
"dhcpLeaseTime": "1 day",
"dhcpBootOptionsEnabled": false,
"dhcpBootNextServer": "1.2.3.4",
"dhcpBootFilename": "sample.file",
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
],
"dnsNameservers": "google_dns",
"dhcpOptions": [
{
"code": "5",
"type": "text",
"value": "five"
}
],
"vpnNatSubnet": "192.168.1.0/24",
"mandatoryDhcp": {
"enabled": true
},
"ipv6": {
"enabled": true,
"prefixAssignments": [
{
"autonomous": false,
"staticPrefix": "2001:db8:3c4d:15::/64",
"staticApplianceIp6": "2001:db8:3c4d:15::1",
"origin": {
"type": "internet",
"interfaces": [
"wan0"
]
}
}
]
}
}
}
}
},
"summary": "Update a VLAN",
"tags": [
"appliance",
"configure",
"vlans"
]
},
"delete": {
"description": "Delete a VLAN from a network",
"operationId": "deleteNetworkApplianceVlan",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "vlanId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a VLAN from a network",
"tags": [
"appliance",
"configure",
"vlans"
]
}
},
"/networks/{networkId}/appliance/vpn/bgp": {
"get": {
"description": "Return a Hub BGP Configuration",
"operationId": "getNetworkApplianceVpnBgp",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"enabled": true,
"asNumber": 64515,
"ibgpHoldTimer": 120,
"neighbors": [
{
"ip": "10.10.10.22",
"remoteAsNumber": 64343,
"receiveLimit": 120,
"allowTransit": true,
"ebgpHoldTimer": 180,
"ebgpMultihop": 2
}
]
}
}
}
},
"summary": "Return a Hub BGP Configuration",
"tags": [
"appliance",
"configure",
"vpn",
"bgp"
]
},
"put": {
"description": "Update a Hub BGP Configuration",
"operationId": "updateNetworkApplianceVpnBgp",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceVpnBgp",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Boolean value to enable or disable the BGP configuration. When BGP is enabled, the asNumber (ASN) will be autopopulated with the preconfigured ASN at other Hubs or a default value if there is no ASN configured."
},
"asNumber": {
"type": "integer",
"description": "An Autonomous System Number (ASN) is required if you are to run BGP and peer with another BGP Speaker outside of the Auto VPN domain. This ASN will be applied to the entire Auto VPN domain. The entire 4-byte ASN range is supported. So, the ASN must be an integer between 1 and 4294967295. When absent, this field is not updated. If no value exists then it defaults to 64512."
},
"ibgpHoldTimer": {
"type": "integer",
"description": "The IBGP holdtimer in seconds. The IBGP holdtimer must be an integer between 12 and 240. When absent, this field is not updated. If no value exists then it defaults to 240."
},
"neighbors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "The IPv4 address of the neighbor"
},
"remoteAsNumber": {
"type": "integer",
"description": "Remote ASN of the neighbor. The remote ASN must be an integer between 1 and 4294967295."
},
"receiveLimit": {
"type": "integer",
"description": "The receive limit is the maximum number of routes that can be received from any BGP peer. The receive limit must be an integer between 0 and 4294967295. When absent, it defaults to 0."
},
"allowTransit": {
"type": "boolean",
"description": "When this feature is on, the Meraki device will advertise routes learned from other Autonomous Systems, thereby allowing traffic between Autonomous Systems to transit this AS. When absent, it defaults to false."
},
"ebgpHoldTimer": {
"type": "integer",
"description": "The EBGP hold timer in seconds for each neighbor. The EBGP hold timer must be an integer between 12 and 240."
},
"ebgpMultihop": {
"type": "integer",
"description": "Configure this if the neighbor is not adjacent. The EBGP multi-hop must be an integer between 1 and 255."
}
},
"required": [
"remoteAsNumber",
"ebgpHoldTimer",
"ebgpMultihop"
]
},
"description": "List of BGP neighbors. This list replaces the existing set of neighbors. When absent, this field is not updated."
}
},
"example": {
"enabled": true,
"asNumber": 64515,
"ibgpHoldTimer": 120,
"neighbors": [
{
"ip": "10.10.10.22",
"remoteAsNumber": 64343,
"receiveLimit": 120,
"allowTransit": true,
"ebgpHoldTimer": 180,
"ebgpMultihop": 2
}
]
},
"required": [
"enabled"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"enabled": true,
"asNumber": 64515,
"ibgpHoldTimer": 120,
"neighbors": [
{
"ip": "10.10.10.22",
"remoteAsNumber": 64343,
"receiveLimit": 120,
"allowTransit": true,
"ebgpHoldTimer": 180,
"ebgpMultihop": 2
}
]
}
}
}
},
"summary": "Update a Hub BGP Configuration",
"tags": [
"appliance",
"configure",
"vpn",
"bgp"
]
}
},
"/networks/{networkId}/appliance/vpn/siteToSiteVpn": {
"get": {
"description": "Return the site-to-site VPN settings of a network. Only valid for MX networks.",
"operationId": "getNetworkApplianceVpnSiteToSiteVpn",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"description": "The site-to-site VPN mode."
},
"hubs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"hubId": {
"type": "string",
"description": "The network ID of the hub."
},
"useDefaultRoute": {
"type": "boolean",
"description": "Indicates whether default route traffic should be sent to this hub."
}
}
},
"description": "The list of VPN hubs, in order of preference."
},
"subnets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"localSubnet": {
"type": "string",
"description": "The CIDR notation subnet used within the VPN"
},
"useVpn": {
"type": "boolean",
"description": "Indicates the presence of the subnet in the VPN"
}
}
},
"description": "The list of subnets and their VPN presence."
}
}
},
"examples": {
"application/json": {
"mode": "spoke",
"hubs": [
{
"hubId": "N_4901849",
"useDefaultRoute": true
}
],
"subnets": [
{
"localSubnet": "192.168.1.0/24",
"useVpn": true
}
]
}
}
}
},
"summary": "Return the site-to-site VPN settings of a network",
"tags": [
"appliance",
"configure",
"vpn",
"siteToSiteVpn"
]
},
"put": {
"description": "Update the site-to-site VPN settings of a network. Only valid for MX networks in NAT mode.",
"operationId": "updateNetworkApplianceVpnSiteToSiteVpn",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceVpnSiteToSiteVpn",
"in": "body",
"schema": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"none",
"spoke",
"hub"
],
"description": "The site-to-site VPN mode. Can be one of 'none', 'spoke' or 'hub'"
},
"hubs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"hubId": {
"type": "string",
"description": "The network ID of the hub."
},
"useDefaultRoute": {
"type": "boolean",
"description": "Only valid in 'spoke' mode. Indicates whether default route traffic should be sent to this hub."
}
},
"required": [
"hubId"
]
},
"description": "The list of VPN hubs, in order of preference. In spoke mode, at least 1 hub is required."
},
"subnets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"localSubnet": {
"type": "string",
"description": "The CIDR notation subnet used within the VPN"
},
"useVpn": {
"type": "boolean",
"description": "Indicates the presence of the subnet in the VPN"
}
},
"required": [
"localSubnet"
]
},
"description": "The list of subnets and their VPN presence."
}
},
"example": {
"mode": "spoke",
"hubs": [
{
"hubId": "N_4901849",
"useDefaultRoute": true
}
],
"subnets": [
{
"localSubnet": "192.168.1.0/24",
"useVpn": true
}
]
},
"required": [
"mode"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"description": "The site-to-site VPN mode."
},
"hubs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"hubId": {
"type": "string",
"description": "The network ID of the hub."
},
"useDefaultRoute": {
"type": "boolean",
"description": "Indicates whether default route traffic should be sent to this hub."
}
}
},
"description": "The list of VPN hubs, in order of preference."
},
"subnets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"localSubnet": {
"type": "string",
"description": "The CIDR notation subnet used within the VPN"
},
"useVpn": {
"type": "boolean",
"description": "Indicates the presence of the subnet in the VPN"
}
}
},
"description": "The list of subnets and their VPN presence."
}
}
},
"examples": {
"application/json": {
"mode": "spoke",
"hubs": [
{
"hubId": "N_4901849",
"useDefaultRoute": true
}
],
"subnets": [
{
"localSubnet": "192.168.1.0/24",
"useVpn": true
}
]
}
}
}
},
"summary": "Update the site-to-site VPN settings of a network",
"tags": [
"appliance",
"configure",
"vpn",
"siteToSiteVpn"
]
}
},
"/networks/{networkId}/appliance/warmSpare": {
"get": {
"description": "Return MX warm spare settings",
"operationId": "getNetworkApplianceWarmSpare",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"enabled": true,
"primarySerial": "Q234-ABCD-5678",
"spareSerial": "Q234-ABCD-5678",
"uplinkMode": "virtual",
"wan1": {
"ip": "1.2.3.4",
"subnet": "192.168.1.0/24"
},
"wan2": {
"ip": "1.2.3.4",
"subnet": "192.168.128.0/24"
}
}
}
}
},
"summary": "Return MX warm spare settings",
"tags": [
"appliance",
"configure",
"warmSpare"
]
},
"put": {
"description": "Update MX warm spare settings",
"operationId": "updateNetworkApplianceWarmSpare",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceWarmSpare",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable warm spare"
},
"spareSerial": {
"type": "string",
"description": "Serial number of the warm spare appliance"
},
"uplinkMode": {
"type": "string",
"description": "Uplink mode, either virtual or public"
},
"virtualIp1": {
"type": "string",
"description": "The WAN 1 shared IP"
},
"virtualIp2": {
"type": "string",
"description": "The WAN 2 shared IP"
}
},
"example": {
"enabled": true,
"spareSerial": "Q234-ABCD-5678",
"uplinkMode": "virtual",
"virtualIp1": "1.2.3.4",
"virtualIp2": "1.2.3.4"
},
"required": [
"enabled"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"enabled": true,
"primarySerial": "Q234-ABCD-5678",
"spareSerial": "Q234-ABCD-5678",
"uplinkMode": "virtual",
"wan1": {
"ip": "1.2.3.4",
"subnet": "192.168.1.0/24"
},
"wan2": {
"ip": "1.2.3.4",
"subnet": "192.168.128.0/24"
}
}
}
}
},
"summary": "Update MX warm spare settings",
"tags": [
"appliance",
"configure",
"warmSpare"
]
}
},
"/networks/{networkId}/appliance/warmSpare/swap": {
"post": {
"description": "Swap MX primary and warm spare appliances",
"operationId": "swapNetworkApplianceWarmSpare",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"enabled": true,
"primarySerial": "Q234-ABCD-5678",
"spareSerial": "Q234-ABCD-5678",
"uplinkMode": "virtual",
"wan1": {
"ip": "1.2.3.4",
"subnet": "192.168.1.0/24"
},
"wan2": {
"ip": "1.2.3.4",
"subnet": "192.168.128.0/24"
}
}
}
}
},
"summary": "Swap MX primary and warm spare appliances",
"tags": [
"appliance",
"configure",
"warmSpare"
]
}
},
"/networks/{networkId}/bind": {
"post": {
"description": "Bind a network to a template.",
"operationId": "bindNetwork",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "bindNetwork",
"in": "body",
"schema": {
"type": "object",
"properties": {
"configTemplateId": {
"type": "string",
"description": "The ID of the template to which the network should be bound."
},
"autoBind": {
"type": "boolean",
"description": "Optional boolean indicating whether the network's switches should automatically bind to profiles of the same model. Defaults to false if left unspecified. This option only affects switch networks and switch templates. Auto-bind is not valid unless the switch template has at least one profile and has at most one profile per switch model."
}
},
"example": {
"configTemplateId": "N_23952905",
"autoBind": false
},
"required": [
"configTemplateId"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"id": "N_24329156",
"organizationId": "2930418",
"name": "Main Office",
"timeZone": "America/Los_Angeles",
"tags": [
"tag1",
"tag2"
],
"productTypes": [
"appliance",
"switch",
"wireless"
],
"enrollmentString": "my-enrollment-string",
"notes": "Additional description of the network",
"isBoundToConfigTemplate": false,
"configTemplateId": "N_23952905"
}
}
}
},
"summary": "Bind a network to a template.",
"tags": [
"networks",
"configure"
]
}
},
"/networks/{networkId}/bluetoothClients": {
"get": {
"description": "List the Bluetooth clients seen by APs in this network",
"operationId": "getNetworkBluetoothClients",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 7 days from today."
},
{
"type": "number",
"format": "float",
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameter t0. The value must be in seconds and be less than or equal to 7 days. The default is 1 day."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 5 - 1000. Default is 10."
},
{
"type": "string",
"name": "startingAfter",
"in": "query",
"description": "A token used by the server to indicate the start of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it."
},
{
"type": "string",
"name": "endingBefore",
"in": "query",
"description": "A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it."
},
{
"type": "boolean",
"name": "includeConnectivityHistory",
"in": "query",
"description": "Include the connectivity history for this client"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"id": "1284392014819",
"mac": "22:33:44:55:66:77",
"networkId": "N_24329156",
"name": "Miles's phone",
"deviceName": "Bose QuietComfort 35",
"manufacturer": "Bose",
"lastSeen": 1526087474,
"seenByDeviceMac": "00:11:22:33:44:55",
"inSightAlert": false,
"outOfSightAlert": false,
"tags": [
"tag1",
"tag2"
]
}
]
}
}
},
"summary": "List the Bluetooth clients seen by APs in this network",
"tags": [
"networks",
"monitor",
"bluetoothClients"
]
}
},
"/networks/{networkId}/bluetoothClients/{bluetoothClientId}": {
"get": {
"description": "Return a Bluetooth client. Bluetooth clients can be identified by their ID or their MAC.",
"operationId": "getNetworkBluetoothClient",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "bluetoothClientId",
"in": "path",
"type": "string",
"required": true
},
{
"type": "boolean",
"name": "includeConnectivityHistory",
"in": "query",
"description": "Include the connectivity history for this client"
},
{
"type": "integer",
"name": "connectivityHistoryTimespan",
"in": "query",
"description": "The timespan, in seconds, for the connectivityHistory data. By default 1 day, 86400, will be used."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"id": "1284392014819",
"mac": "22:33:44:55:66:77",
"networkId": "N_24329156",
"name": "Miles's phone",
"deviceName": "Bose QuietComfort 35",
"manufacturer": "Bose",
"lastSeen": 1526087474,
"seenByDeviceMac": "00:11:22:33:44:55",
"inSightAlert": false,
"outOfSightAlert": false,
"tags": [
"tag1",
"tag2"
]
}
}
}
},
"summary": "Return a Bluetooth client",
"tags": [
"networks",
"monitor",
"bluetoothClients"
]
}
},
"/networks/{networkId}/camera/qualityRetentionProfiles": {
"get": {
"description": "List the quality retention profiles for this network",
"operationId": "getNetworkCameraQualityRetentionProfiles",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"id": "1234",
"networkId": "N_24329156",
"name": "Sample quality retention profile",
"restrictedBandwidthModeEnabled": true,
"motionBasedRetentionEnabled": false,
"audioRecordingEnabled": false,
"cloudArchiveEnabled": false,
"maxRetentionDays": 7,
"scheduleId": null,
"motionDetectorVersion": 2,
"videoSettings": {
"MV32": {
"quality": "Enhanced",
"resolution": "1080x1080"
},
"MV21/MV71": {
"quality": "High",
"resolution": "1280x720"
},
"MV12/MV22/MV72": {
"quality": "High",
"resolution": "1920x1080"
},
"MV12WE": {
"quality": "High",
"resolution": "1920x1080"
}
}
}
]
}
}
},
"summary": "List the quality retention profiles for this network",
"tags": [
"camera",
"configure",
"qualityRetentionProfiles"
]
},
"post": {
"description": "Creates new quality retention profile for this network.",
"operationId": "createNetworkCameraQualityRetentionProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "createNetworkCameraQualityRetentionProfile",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the new profile. Must be unique. This parameter is required."
},
"motionBasedRetentionEnabled": {
"type": "boolean",
"description": "Deletes footage older than 3 days in which no motion was detected. Can be either true or false. Defaults to false. This setting does not apply to MV2 cameras."
},
"restrictedBandwidthModeEnabled": {
"type": "boolean",
"description": "Disable features that require additional bandwidth such as Motion Recap. Can be either true or false. Defaults to false. This setting does not apply to MV2 cameras."
},
"audioRecordingEnabled": {
"type": "boolean",
"description": "Whether or not to record audio. Can be either true or false. Defaults to false."
},
"cloudArchiveEnabled": {
"type": "boolean",
"description": "Create redundant video backup using Cloud Archive. Can be either true or false. Defaults to false."
},
"motionDetectorVersion": {
"type": "integer",
"description": "The version of the motion detector that will be used by the camera. Only applies to Gen 2 cameras. Defaults to v2."
},
"scheduleId": {
"type": "string",
"description": "Schedule for which this camera will record video, or 'null' to always record."
},
"maxRetentionDays": {
"type": "integer",
"description": "The maximum number of days for which the data will be stored, or 'null' to keep data until storage space runs out. If the former, it can be one of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14, 30, 60, 90] days."
},
"videoSettings": {
"type": "object",
"properties": {
"MV21/MV71": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Standard",
"Enhanced",
"High"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1280x720"
],
"description": "Resolution of the camera. Can be one of '1280x720'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV21/MV71 camera models."
},
"MV12/MV22/MV72": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Standard",
"Enhanced",
"High"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1280x720",
"1920x1080"
],
"description": "Resolution of the camera. Can be one of '1280x720' or '1920x1080'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV12/MV22/MV72 camera models."
},
"MV32": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Standard",
"Enhanced",
"High"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1080x1080",
"2058x2058"
],
"description": "Resolution of the camera. Can be one of '1080x1080' or '2058x2058'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV32 camera models."
},
"MV12WE": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Standard",
"Enhanced",
"High"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1280x720",
"1920x1080"
],
"description": "Resolution of the camera. Can be one of '1280x720' or '1920x1080'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV12WE camera models."
},
"MV22X/MV72X": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Standard",
"Enhanced",
"High"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1280x720",
"1920x1080",
"2688x1512"
],
"description": "Resolution of the camera. Can be one of '1280x720', '1920x1080' or '2688x1512'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV22X/MV72X camera models."
},
"MV52": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Standard",
"Enhanced",
"High"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1280x720",
"1920x1080",
"2688x1512",
"3840x2160"
],
"description": "Resolution of the camera. Can be one of '1280x720', '1920x1080', '2688x1512' or '3840x2160'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV52 camera models."
},
"MV63": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Standard",
"Enhanced",
"High"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1920x1080",
"2688x1512"
],
"description": "Resolution of the camera. Can be one of '1920x1080' or '2688x1512'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV63 camera models."
},
"MV93": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Standard",
"Enhanced",
"High"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1080x1080",
"2112x2112"
],
"description": "Resolution of the camera. Can be one of '1080x1080' or '2112x2112'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV93 camera models."
},
"MV63X": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Standard",
"Enhanced",
"High"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1920x1080",
"2688x1512",
"3840x2160"
],
"description": "Resolution of the camera. Can be one of '1920x1080', '2688x1512' or '3840x2160'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV63X camera models."
},
"MV93X": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Standard",
"Enhanced",
"High"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1080x1080",
"2112x2112",
"2880x2880"
],
"description": "Resolution of the camera. Can be one of '1080x1080', '2112x2112' or '2880x2880'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV93X camera models."
}
},
"description": "Video quality and resolution settings for all the camera models."
}
},
"example": {
"name": "Sample quality retention profile"
},
"required": [
"name"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"id": "1234",
"networkId": "N_24329156",
"name": "Sample quality retention profile",
"restrictedBandwidthModeEnabled": true,
"motionBasedRetentionEnabled": false,
"audioRecordingEnabled": false,
"cloudArchiveEnabled": false,
"maxRetentionDays": 7,
"scheduleId": null,
"motionDetectorVersion": 2,
"videoSettings": {
"MV32": {
"quality": "Enhanced",
"resolution": "1080x1080"
},
"MV21/MV71": {
"quality": "High",
"resolution": "1280x720"
},
"MV12/MV22/MV72": {
"quality": "High",
"resolution": "1920x1080"
},
"MV12WE": {
"quality": "High",
"resolution": "1920x1080"
}
}
}
}
}
},
"summary": "Creates new quality retention profile for this network.",
"tags": [
"camera",
"configure",
"qualityRetentionProfiles"
]
}
},
"/networks/{networkId}/camera/qualityRetentionProfiles/{qualityRetentionProfileId}": {
"get": {
"description": "Retrieve a single quality retention profile",
"operationId": "getNetworkCameraQualityRetentionProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "qualityRetentionProfileId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"id": "1234",
"networkId": "N_24329156",
"name": "Sample quality retention profile",
"restrictedBandwidthModeEnabled": true,
"motionBasedRetentionEnabled": false,
"audioRecordingEnabled": false,
"cloudArchiveEnabled": false,
"maxRetentionDays": 7,
"scheduleId": null,
"motionDetectorVersion": 2,
"videoSettings": {
"MV32": {
"quality": "Enhanced",
"resolution": "1080x1080"
},
"MV21/MV71": {
"quality": "High",
"resolution": "1280x720"
},
"MV12/MV22/MV72": {
"quality": "High",
"resolution": "1920x1080"
},
"MV12WE": {
"quality": "High",
"resolution": "1920x1080"
}
}
}
}
}
},
"summary": "Retrieve a single quality retention profile",
"tags": [
"camera",
"configure",
"qualityRetentionProfiles"
]
},
"put": {
"description": "Update an existing quality retention profile for this network.",
"operationId": "updateNetworkCameraQualityRetentionProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "qualityRetentionProfileId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkCameraQualityRetentionProfile",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the new profile. Must be unique."
},
"motionBasedRetentionEnabled": {
"type": "boolean",
"description": "Deletes footage older than 3 days in which no motion was detected. Can be either true or false. Defaults to false. This setting does not apply to MV2 cameras."
},
"restrictedBandwidthModeEnabled": {
"type": "boolean",
"description": "Disable features that require additional bandwidth such as Motion Recap. Can be either true or false. Defaults to false. This setting does not apply to MV2 cameras."
},
"audioRecordingEnabled": {
"type": "boolean",
"description": "Whether or not to record audio. Can be either true or false. Defaults to false."
},
"cloudArchiveEnabled": {
"type": "boolean",
"description": "Create redundant video backup using Cloud Archive. Can be either true or false. Defaults to false."
},
"motionDetectorVersion": {
"type": "integer",
"description": "The version of the motion detector that will be used by the camera. Only applies to Gen 2 cameras. Defaults to v2."
},
"scheduleId": {
"type": "string",
"description": "Schedule for which this camera will record video, or 'null' to always record."
},
"maxRetentionDays": {
"type": "integer",
"description": "The maximum number of days for which the data will be stored, or 'null' to keep data until storage space runs out. If the former, it can be one of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14, 30, 60, 90] days."
},
"videoSettings": {
"type": "object",
"properties": {
"MV21/MV71": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Standard",
"Enhanced",
"High"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1280x720"
],
"description": "Resolution of the camera. Can be one of '1280x720'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV21/MV71 camera models."
},
"MV12/MV22/MV72": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Standard",
"Enhanced",
"High"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1280x720",
"1920x1080"
],
"description": "Resolution of the camera. Can be one of '1280x720' or '1920x1080'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV12/MV22/MV72 camera models."
},
"MV32": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Standard",
"Enhanced",
"High"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1080x1080",
"2058x2058"
],
"description": "Resolution of the camera. Can be one of '1080x1080' or '2058x2058'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV32 camera models."
},
"MV12WE": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Standard",
"Enhanced",
"High"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1280x720",
"1920x1080"
],
"description": "Resolution of the camera. Can be one of '1280x720' or '1920x1080'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV12WE camera models."
},
"MV22X/MV72X": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Standard",
"Enhanced",
"High"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1280x720",
"1920x1080",
"2688x1512"
],
"description": "Resolution of the camera. Can be one of '1280x720', '1920x1080' or '2688x1512'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV22X/MV72X camera models."
},
"MV52": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Standard",
"Enhanced",
"High"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1280x720",
"1920x1080",
"2688x1512",
"3840x2160"
],
"description": "Resolution of the camera. Can be one of '1280x720', '1920x1080', '2688x1512' or '3840x2160'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV52 camera models."
},
"MV63": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Standard",
"Enhanced",
"High"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1920x1080",
"2688x1512"
],
"description": "Resolution of the camera. Can be one of '1920x1080' or '2688x1512'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV63 camera models."
},
"MV93": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Standard",
"Enhanced",
"High"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1080x1080",
"2112x2112"
],
"description": "Resolution of the camera. Can be one of '1080x1080' or '2112x2112'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV93 camera models."
},
"MV63X": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Standard",
"Enhanced",
"High"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1920x1080",
"2688x1512",
"3840x2160"
],
"description": "Resolution of the camera. Can be one of '1920x1080', '2688x1512' or '3840x2160'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV63X camera models."
},
"MV93X": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Standard",
"Enhanced",
"High"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1080x1080",
"2112x2112",
"2880x2880"
],
"description": "Resolution of the camera. Can be one of '1080x1080', '2112x2112' or '2880x2880'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV93X camera models."
}
},
"description": "Video quality and resolution settings for all the camera models."
}
},
"example": {
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"id": "1234",
"networkId": "N_24329156",
"name": "Sample quality retention profile",
"restrictedBandwidthModeEnabled": true,
"motionBasedRetentionEnabled": false,
"audioRecordingEnabled": false,
"cloudArchiveEnabled": false,
"maxRetentionDays": 7,
"scheduleId": null,
"motionDetectorVersion": 2,
"videoSettings": {
"MV32": {
"quality": "Enhanced",
"resolution": "1080x1080"
},
"MV21/MV71": {
"quality": "High",
"resolution": "1280x720"
},
"MV12/MV22/MV72": {
"quality": "High",
"resolution": "1920x1080"
},
"MV12WE": {
"quality": "High",
"resolution": "1920x1080"
}
}
}
}
}
},
"summary": "Update an existing quality retention profile for this network.",
"tags": [
"camera",
"configure",
"qualityRetentionProfiles"
]
},
"delete": {
"description": "Delete an existing quality retention profile for this network.",
"operationId": "deleteNetworkCameraQualityRetentionProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "qualityRetentionProfileId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete an existing quality retention profile for this network.",
"tags": [
"camera",
"configure",
"qualityRetentionProfiles"
]
}
},
"/networks/{networkId}/camera/schedules": {
"get": {
"description": "Returns a list of all camera recording schedules.",
"operationId": "getNetworkCameraSchedules",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"id": "123",
"name": "Weekday schedule"
},
{
"id": "124",
"name": "Office hours"
}
]
}
}
},
"summary": "Returns a list of all camera recording schedules.",
"tags": [
"camera",
"configure",
"schedules"
]
}
},
"/networks/{networkId}/camera/wirelessProfiles": {
"post": {
"description": "Creates a new camera wireless profile for this network.",
"operationId": "createNetworkCameraWirelessProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "createNetworkCameraWirelessProfile",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the camera wireless profile. This parameter is required."
},
"ssid": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the SSID."
},
"authMode": {
"type": "string",
"enum": [
"psk",
"8021x-radius"
],
"description": "The auth mode of the SSID. It can be set to ('psk', '8021x-radius')."
},
"encryptionMode": {
"type": "string",
"description": "The encryption mode of the SSID. It can be set to ('wpa', 'wpa-eap'). With 'wpa' mode, the authMode should be 'psk' and with 'wpa-eap' the authMode should be '8021x-radius'"
},
"psk": {
"type": "string",
"description": "The pre-shared key of the SSID."
}
},
"description": "The details of the SSID config."
},
"identity": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "The username of the identity."
},
"password": {
"type": "string",
"description": "The password of the identity."
}
},
"description": "The identity of the wireless profile. Required for creating wireless profiles in 8021x-radius auth mode."
}
},
"example": {
"name": "wireless profile A",
"ssid": {
"name": "ssid test",
"authMode": "8021x-radius",
"encryptionMode": "wpa-eap"
}
},
"required": [
"name",
"ssid"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"id": "152",
"name": "wireless profile A",
"appliedDeviceCount": 0,
"ssid": {
"name": "ssid test",
"authMode": "8021x-radius",
"encryptionMode": "wpa-eap"
},
"identity": {
"username": "identityname",
"password": "password123"
}
}
}
}
},
"summary": "Creates a new camera wireless profile for this network.",
"tags": [
"camera",
"configure",
"wirelessProfiles"
]
},
"get": {
"description": "List the camera wireless profiles for this network.",
"operationId": "getNetworkCameraWirelessProfiles",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"id": "152",
"name": "wireless profile A",
"appliedDeviceCount": 0,
"ssid": {
"name": "ssid test",
"authMode": "8021x-radius",
"encryptionMode": "wpa-eap"
},
"identity": {
"username": "identityname",
"password": "password123"
}
}
]
}
}
},
"summary": "List the camera wireless profiles for this network.",
"tags": [
"camera",
"configure",
"wirelessProfiles"
]
}
},
"/networks/{networkId}/camera/wirelessProfiles/{wirelessProfileId}": {
"get": {
"description": "Retrieve a single camera wireless profile.",
"operationId": "getNetworkCameraWirelessProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "wirelessProfileId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"id": "152",
"name": "wireless profile A",
"appliedDeviceCount": 0,
"ssid": {
"name": "ssid test",
"authMode": "8021x-radius",
"encryptionMode": "wpa-eap"
},
"identity": {
"username": "identityname",
"password": "password123"
}
}
}
}
},
"summary": "Retrieve a single camera wireless profile.",
"tags": [
"camera",
"configure",
"wirelessProfiles"
]
},
"put": {
"description": "Update an existing camera wireless profile in this network.",
"operationId": "updateNetworkCameraWirelessProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "wirelessProfileId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkCameraWirelessProfile",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the camera wireless profile."
},
"ssid": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the SSID."
},
"authMode": {
"type": "string",
"enum": [
"psk",
"8021x-radius"
],
"description": "The auth mode of the SSID. It can be set to ('psk', '8021x-radius')."
},
"encryptionMode": {
"type": "string",
"description": "The encryption mode of the SSID. It can be set to ('wpa', 'wpa-eap'). With 'wpa' mode, the authMode should be 'psk' and with 'wpa-eap' the authMode should be '8021x-radius'"
},
"psk": {
"type": "string",
"description": "The pre-shared key of the SSID."
}
},
"description": "The details of the SSID config."
},
"identity": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "The username of the identity."
},
"password": {
"type": "string",
"description": "The password of the identity."
}
},
"description": "The identity of the wireless profile. Required for creating wireless profiles in 8021x-radius auth mode."
}
},
"example": {
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"id": "152",
"name": "wireless profile A",
"appliedDeviceCount": 0,
"ssid": {
"name": "ssid test",
"authMode": "8021x-radius",
"encryptionMode": "wpa-eap"
},
"identity": {
"username": "identityname",
"password": "password123"
}
}
}
}
},
"summary": "Update an existing camera wireless profile in this network.",
"tags": [
"camera",
"configure",
"wirelessProfiles"
]
},
"delete": {
"description": "Delete an existing camera wireless profile for this network.",
"operationId": "deleteNetworkCameraWirelessProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "wirelessProfileId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete an existing camera wireless profile for this network.",
"tags": [
"camera",
"configure",
"wirelessProfiles"
]
}
},
"/networks/{networkId}/cellularGateway/connectivityMonitoringDestinations": {
"get": {
"description": "Return the connectivity testing destinations for an MG network",
"operationId": "getNetworkCellularGatewayConnectivityMonitoringDestinations",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"destinations": [
{
"ip": "8.8.8.8",
"description": "Google",
"default": false
},
{
"ip": "1.23.45.67",
"description": "test description",
"default": true
},
{
"ip": "9.8.7.6",
"description": null,
"default": false
}
]
}
}
}
},
"summary": "Return the connectivity testing destinations for an MG network",
"tags": [
"cellularGateway",
"configure",
"connectivityMonitoringDestinations"
]
},
"put": {
"description": "Update the connectivity testing destinations for an MG network",
"operationId": "updateNetworkCellularGatewayConnectivityMonitoringDestinations",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkCellularGatewayConnectivityMonitoringDestinations",
"in": "body",
"schema": {
"type": "object",
"properties": {
"destinations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "The IP address to test connectivity with"
},
"description": {
"type": "string",
"description": "Description of the testing destination. Optional, defaults to an empty string",
"default": ""
},
"default": {
"type": "boolean",
"description": "Boolean indicating whether this is the default testing destination (true) or not (false). Defaults to false. Only one default is allowed",
"default": false
}
},
"required": [
"ip"
]
},
"description": "The list of connectivity monitoring destinations"
}
},
"example": {
"destinations": [
{
"ip": "8.8.8.8",
"description": "Google",
"default": false
},
{
"ip": "1.23.45.67",
"description": "test description",
"default": true
},
{
"ip": "9.8.7.6"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"destinations": [
{
"ip": "8.8.8.8",
"description": "Google",
"default": false
},
{
"ip": "1.23.45.67",
"description": "test description",
"default": true
},
{
"ip": "9.8.7.6",
"description": null,
"default": false
}
]
}
}
}
},
"summary": "Update the connectivity testing destinations for an MG network",
"tags": [
"cellularGateway",
"configure",
"connectivityMonitoringDestinations"
]
}
},
"/networks/{networkId}/cellularGateway/dhcp": {
"get": {
"description": "List common DHCP settings of MGs",
"operationId": "getNetworkCellularGatewayDhcp",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"dhcpLeaseTime": {
"type": "string",
"enum": [
"30 minutes",
"1 hour",
"4 hours",
"12 hours",
"1 day",
"1 week"
],
"description": "DHCP Lease time for all MG in the network."
},
"dnsNameservers": {
"type": "string",
"enum": [
"upstream_dns",
"google_dns",
"opendns",
"custom"
],
"description": "DNS name servers mode for all MG in the network."
},
"dnsCustomNameservers": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of fixed IPs representing the the DNS Name servers when the mode is 'custom'."
}
}
},
"examples": {
"application/json": {
"dhcpLeaseTime": "1 hour",
"dnsNameservers": "custom",
"dnsCustomNameservers": [
"172.16.2.111",
"172.16.2.30"
]
}
}
}
},
"summary": "List common DHCP settings of MGs",
"tags": [
"cellularGateway",
"configure",
"dhcp"
]
},
"put": {
"description": "Update common DHCP settings of MGs",
"operationId": "updateNetworkCellularGatewayDhcp",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkCellularGatewayDhcp",
"in": "body",
"schema": {
"type": "object",
"properties": {
"dhcpLeaseTime": {
"type": "string",
"description": "DHCP Lease time for all MG of the network. Possible values are '30 minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1 week'."
},
"dnsNameservers": {
"type": "string",
"description": "DNS name servers mode for all MG of the network. Possible values are: 'upstream_dns', 'google_dns', 'opendns', 'custom'."
},
"dnsCustomNameservers": {
"type": "array",
"items": {
"type": "string"
},
"description": "list of fixed IPs representing the the DNS Name servers when the mode is 'custom'"
}
},
"example": {
"dhcpLeaseTime": "1 hour",
"dnsNameservers": "custom",
"dnsCustomNameservers": [
"172.16.2.111",
"172.16.2.30"
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"dhcpLeaseTime": {
"type": "string",
"enum": [
"30 minutes",
"1 hour",
"4 hours",
"12 hours",
"1 day",
"1 week"
],
"description": "DHCP Lease time for all MG in the network."
},
"dnsNameservers": {
"type": "string",
"enum": [
"upstream_dns",
"google_dns",
"opendns",
"custom"
],
"description": "DNS name servers mode for all MG in the network."
},
"dnsCustomNameservers": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of fixed IPs representing the the DNS Name servers when the mode is 'custom'."
}
}
},
"examples": {
"application/json": {
"dhcpLeaseTime": "1 hour",
"dnsNameservers": "custom",
"dnsCustomNameservers": [
"172.16.2.111",
"172.16.2.30"
]
}
}
}
},
"summary": "Update common DHCP settings of MGs",
"tags": [
"cellularGateway",
"configure",
"dhcp"
]
}
},
"/networks/{networkId}/cellularGateway/subnetPool": {
"get": {
"description": "Return the subnet pool and mask configured for MGs in the network.",
"operationId": "getNetworkCellularGatewaySubnetPool",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"deploymentMode": "routed",
"cidr": "192.168.0.0/16",
"mask": 24,
"subnets": [
{
"serial": "AAAA-AAAA-AAAA",
"name": "my first MG",
"applianceIp": "192.168.0.1",
"subnet": "192.168.0.0/24"
},
{
"serial": "BBBB-BBBB-BBBB",
"name": "my second MG",
"applianceIp": "192.168.0.33",
"subnet": "192.168.0.32/24"
}
]
}
}
}
},
"summary": "Return the subnet pool and mask configured for MGs in the network.",
"tags": [
"cellularGateway",
"configure",
"subnetPool"
]
},
"put": {
"description": "Update the subnet pool and mask configuration for MGs in the network.",
"operationId": "updateNetworkCellularGatewaySubnetPool",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkCellularGatewaySubnetPool",
"in": "body",
"schema": {
"type": "object",
"properties": {
"mask": {
"type": "integer",
"description": "Mask used for the subnet of all MGs in this network."
},
"cidr": {
"type": "string",
"description": "CIDR of the pool of subnets. Each MG in this network will automatically pick a subnet from this pool."
}
},
"example": {
"deploymentMode": "routed",
"cidr": "192.168.0.0/16",
"mask": 24
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"deploymentMode": "routed",
"cidr": "192.168.0.0/16",
"mask": 24,
"subnets": [
{
"serial": "AAAA-AAAA-AAAA",
"name": "my first MG",
"applianceIp": "192.168.0.1",
"subnet": "192.168.0.0/24"
},
{
"serial": "BBBB-BBBB-BBBB",
"name": "my second MG",
"applianceIp": "192.168.0.33",
"subnet": "192.168.0.32/24"
}
]
}
}
}
},
"summary": "Update the subnet pool and mask configuration for MGs in the network.",
"tags": [
"cellularGateway",
"configure",
"subnetPool"
]
}
},
"/networks/{networkId}/cellularGateway/uplink": {
"get": {
"description": "Returns the uplink settings for your MG network.",
"operationId": "getNetworkCellularGatewayUplink",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"bandwidthLimits": {
"limitUp": 51200,
"limitDown": 51200
}
}
}
}
},
"summary": "Returns the uplink settings for your MG network.",
"tags": [
"cellularGateway",
"configure",
"uplink"
]
},
"put": {
"description": "Updates the uplink settings for your MG network.",
"operationId": "updateNetworkCellularGatewayUplink",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkCellularGatewayUplink",
"in": "body",
"schema": {
"type": "object",
"properties": {
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps). null indicates no limit"
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps). null indicates no limit"
}
},
"description": "The bandwidth settings for the 'cellular' uplink"
}
},
"example": {
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"bandwidthLimits": {
"limitUp": 51200,
"limitDown": 51200
}
}
}
}
},
"summary": "Updates the uplink settings for your MG network.",
"tags": [
"cellularGateway",
"configure",
"uplink"
]
}
},
"/networks/{networkId}/clients": {
"get": {
"description": "List the clients that have used this network in the timespan",
"operationId": "getNetworkClients",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"type": "number",
"format": "float",
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameter t0. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 10."
},
{
"type": "string",
"name": "startingAfter",
"in": "query",
"description": "A token used by the server to indicate the start of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it."
},
{
"type": "string",
"name": "endingBefore",
"in": "query",
"description": "A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it."
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"Online",
"Offline"
]
},
"name": "statuses",
"in": "query",
"description": "Filters clients based on status. Can be one of 'Online' or 'Offline'."
},
{
"type": "string",
"name": "ip",
"in": "query",
"description": "Filters clients based on a partial or full match for the ip address field."
},
{
"type": "string",
"name": "ip6",
"in": "query",
"description": "Filters clients based on a partial or full match for the ip6 address field."
},
{
"type": "string",
"name": "ip6Local",
"in": "query",
"description": "Filters clients based on a partial or full match for the ip6Local address field."
},
{
"type": "string",
"name": "mac",
"in": "query",
"description": "Filters clients based on a partial or full match for the mac address field."
},
{
"type": "string",
"name": "os",
"in": "query",
"description": "Filters clients based on a partial or full match for the os (operating system) field."
},
{
"type": "string",
"name": "description",
"in": "query",
"description": "Filters clients based on a partial or full match for the description field."
},
{
"type": "string",
"name": "vlan",
"in": "query",
"description": "Filters clients based on the full match for the VLAN field."
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"Wired",
"Wireless"
]
},
"name": "recentDeviceConnections",
"in": "query",
"description": "Filters clients based on recent connection type. Can be one of 'Wired' or 'Wireless'."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"usage": {
"sent": 138.0,
"recv": 61.0
},
"id": "k74272e",
"description": "Miles's phone",
"mac": "22:33:44:55:66:77",
"ip": "1.2.3.4",
"user": "milesmeraki",
"vlan": "255",
"namedVlan": "Named Vlan",
"switchport": null,
"adaptivePolicyGroup": null,
"ip6": "",
"firstSeen": 1518365681,
"lastSeen": 1526087474,
"manufacturer": "Apple",
"os": "iOS",
"deviceTypePrediction": "iPhone SE, iOS9.3.5",
"recentDeviceSerial": "Q234-ABCD-5678",
"recentDeviceName": "My AP",
"recentDeviceMac": "00:11:22:33:44:55",
"recentDeviceConnection": "Wired",
"ssid": "My SSID",
"status": "Online",
"notes": "My client note",
"ip6Local": "fe80:0:0:0:1430:aac1:6826:75ab",
"smInstalled": true,
"groupPolicy8021x": "Student_Access"
}
]
}
}
},
"summary": "List the clients that have used this network in the timespan",
"tags": [
"networks",
"monitor",
"clients"
]
}
},
"/networks/{networkId}/clients/applicationUsage": {
"get": {
"description": "Return the application usage data for clients. Usage data is in kilobytes. Clients can be identified by client keys or either the MACs or IPs depending on whether the network uses Track-by-IP.",
"operationId": "getNetworkClientsApplicationUsage",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"type": "string",
"name": "clients",
"in": "query",
"required": true,
"description": "A list of client keys, MACs or IPs separated by comma."
},
{
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14
],
"name": "ssidNumber",
"in": "query",
"description": "An SSID number to include. If not specified, eveusage histories application usagents for all SSIDs will be returned."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000."
},
{
"type": "string",
"name": "startingAfter",
"in": "query",
"description": "A token used by the server to indicate the start of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it."
},
{
"type": "string",
"name": "endingBefore",
"in": "query",
"description": "A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it."
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 31 days after t0."
},
{
"type": "number",
"format": "float",
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"clientId": "k74272e",
"clientIp": "1.2.3.4",
"clientMac": "00:11:22:33:44:55",
"applicationUsage": [
{
"application": "Google",
"recv": 383,
"sent": 56
}
]
}
]
}
}
},
"summary": "Return the application usage data for clients",
"tags": [
"networks",
"monitor",
"clients",
"applicationUsage"
]
}
},
"/networks/{networkId}/clients/bandwidthUsageHistory": {
"get": {
"description": "Returns a timeseries of total traffic consumption rates for all clients on a network within a given timespan, in megabits per second.",
"operationId": "getNetworkClientsBandwidthUsageHistory",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 30 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 31 days after t0."
},
{
"type": "number",
"format": "float",
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"name": "startingAfter",
"in": "query",
"description": "A token used by the server to indicate the start of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it."
},
{
"type": "string",
"name": "endingBefore",
"in": "query",
"description": "A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"ts": "2021-06-20T01:00:00.000Z",
"total": 345
}
]
}
}
},
"summary": "Returns a timeseries of total traffic consumption rates for all clients on a network within a given timespan, in megabits per second.",
"tags": [
"networks",
"monitor",
"clients",
"bandwidthUsageHistory"
]
}
},
"/networks/{networkId}/clients/overview": {
"get": {
"description": "Return overview statistics for network clients",
"operationId": "getNetworkClientsOverview",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 31 days after t0."
},
{
"type": "number",
"format": "float",
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
},
{
"type": "integer",
"name": "resolution",
"in": "query",
"description": "The time resolution in seconds for returned data. The valid resolutions are: 7200, 86400, 604800, 2592000. The default is 604800."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"counts": {
"total": 100,
"withHeavyUsage": 2
},
"usages": {
"average": 2048,
"withHeavyUsageAverage": 5345
}
}
}
}
},
"summary": "Return overview statistics for network clients",
"tags": [
"networks",
"monitor",
"clients",
"overview"
]
}
},
"/networks/{networkId}/clients/provision": {
"post": {
"description": "Provisions a client with a name and policy. Clients can be provisioned before they associate to the network.",
"operationId": "provisionNetworkClients",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "provisionNetworkClients",
"in": "body",
"schema": {
"type": "object",
"properties": {
"clients": {
"type": "array",
"items": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "The MAC address of the client. Required."
},
"name": {
"type": "string",
"description": "The display name for the client. Optional. Limited to 255 bytes."
}
},
"required": [
"mac"
]
},
"description": "The array of clients to provision"
},
"devicePolicy": {
"type": "string",
"enum": [
"Group policy",
"Allowed",
"Blocked",
"Per connection",
"Normal"
],
"description": "The policy to apply to the specified client. Can be 'Group policy', 'Allowed', 'Blocked', 'Per connection' or 'Normal'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
},
"policiesBySecurityAppliance": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Normal"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked' or 'Normal'. Required."
}
},
"description": "An object, describing what the policy-connection association is for the security appliance. (Only relevant if the security appliance is actually within the network)"
},
"policiesBySsid": {
"type": "object",
"properties": {
"0": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Normal",
"Group policy"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"1": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Normal",
"Group policy"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"2": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Normal",
"Group policy"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"3": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Normal",
"Group policy"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"4": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Normal",
"Group policy"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"5": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Normal",
"Group policy"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"6": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Normal",
"Group policy"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"7": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Normal",
"Group policy"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"8": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Normal",
"Group policy"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"9": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Normal",
"Group policy"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"10": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Normal",
"Group policy"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"11": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Normal",
"Group policy"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"12": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Normal",
"Group policy"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"13": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Normal",
"Group policy"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"14": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Normal",
"Group policy"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
}
},
"description": "An object, describing the policy-connection associations for each active SSID within the network. Keys should be the number of enabled SSIDs, mapping to an object describing the client's policy"
}
},
"example": {
"clients": [
{
"mac": "00:11:22:33:44:55",
"clientId": "k74272e",
"name": "Miles's phone"
}
],
"devicePolicy": "Group policy",
"groupPolicyId": "101"
},
"required": [
"clients",
"devicePolicy"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"clients": [
{
"mac": "00:11:22:33:44:55",
"clientId": "k74272e",
"name": "Miles's phone"
}
],
"devicePolicy": "Group policy",
"groupPolicyId": "101"
}
}
}
},
"summary": "Provisions a client with a name and policy",
"tags": [
"networks",
"configure",
"clients"
]
}
},
"/networks/{networkId}/clients/usageHistories": {
"get": {
"description": "Return the usage histories for clients. Usage data is in kilobytes. Clients can be identified by client keys or either the MACs or IPs depending on whether the network uses Track-by-IP.",
"operationId": "getNetworkClientsUsageHistories",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"type": "string",
"name": "clients",
"in": "query",
"required": true,
"description": "A list of client keys, MACs or IPs separated by comma."
},
{
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14
],
"name": "ssidNumber",
"in": "query",
"description": "An SSID number to include. If not specified, events for all SSIDs will be returned."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000."
},
{
"type": "string",
"name": "startingAfter",
"in": "query",
"description": "A token used by the server to indicate the start of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it."
},
{
"type": "string",
"name": "endingBefore",
"in": "query",
"description": "A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it."
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 31 days after t0."
},
{
"type": "number",
"format": "float",
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"clientId": "k74272e",
"clientIp": "1.2.3.4",
"clientMac": "00:11:22:33:44:55",
"usageHistory": [
{
"ts": "2018-02-11T00:00:00.090210Z",
"recv": 383,
"sent": 56
}
]
}
]
}
}
},
"summary": "Return the usage histories for clients",
"tags": [
"networks",
"monitor",
"clients",
"usageHistories"
]
}
},
"/networks/{networkId}/clients/{clientId}": {
"get": {
"description": "Return the client associated with the given identifier. Clients can be identified by a client key or either the MAC or IP depending on whether the network uses Track-by-IP.",
"operationId": "getNetworkClient",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "clientId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"id": "k74272e",
"description": "Miles's phone",
"mac": "22:33:44:55:66:77",
"ip": "1.2.3.4",
"user": "null",
"vlan": "255",
"switchport": null,
"ip6": "",
"firstSeen": 1518365681,
"lastSeen": 1526087474,
"manufacturer": "Apple",
"os": "iOS",
"ssid": "My SSID",
"wirelessCapabilities": "802.11ac - 2.4 and 5 GHz",
"smInstalled": true,
"recentDeviceMac": "00:11:22:33:44:55",
"clientVpnConnections": [
{
"remoteIp": "1.2.3.4",
"connectedAt": 1522613355,
"disconnectedAt": 1522613360
}
],
"lldp": [
[
"System name",
"Some system name"
],
[
"System description",
"Some system description"
],
[
"Port ID",
"1"
],
[
"Chassis ID",
"00:18:0a:00:00:00"
],
[
"Port description",
"eth0"
],
[
"System capabilities",
"Two-port MAC Relay"
]
],
"cdp": null,
"status": "Online"
}
}
}
},
"summary": "Return the client associated with the given identifier",
"tags": [
"networks",
"monitor",
"clients"
]
}
},
"/networks/{networkId}/clients/{clientId}/policy": {
"get": {
"description": "Return the policy assigned to a client on the network. Clients can be identified by a client key or either the MAC or IP depending on whether the network uses Track-by-IP.",
"operationId": "getNetworkClientPolicy",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "clientId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"mac": "00:11:22:33:44:55",
"devicePolicy": "Group policy",
"groupPolicyId": "101"
}
}
}
},
"summary": "Return the policy assigned to a client on the network",
"tags": [
"networks",
"configure",
"clients",
"policy"
]
},
"put": {
"description": "Update the policy assigned to a client on the network. Clients can be identified by a client key or either the MAC or IP depending on whether the network uses Track-by-IP.",
"operationId": "updateNetworkClientPolicy",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "clientId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkClientPolicy",
"in": "body",
"schema": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"description": "The policy to assign. Can be 'Whitelisted', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "[optional] If 'devicePolicy' is set to 'Group policy' this param is used to specify the group policy ID."
}
},
"example": {
"mac": "00:11:22:33:44:55",
"devicePolicy": "Group policy",
"groupPolicyId": "101"
},
"required": [
"devicePolicy"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"mac": "00:11:22:33:44:55",
"devicePolicy": "Group policy",
"groupPolicyId": "101"
}
}
}
},
"summary": "Update the policy assigned to a client on the network",
"tags": [
"networks",
"configure",
"clients",
"policy"
]
}
},
"/networks/{networkId}/clients/{clientId}/splashAuthorizationStatus": {
"get": {
"description": "Return the splash authorization for a client, for each SSID they've associated with through splash. Only enabled SSIDs with Click-through splash enabled will be included. Clients can be identified by a client key or either the MAC or IP depending on whether the network uses Track-by-IP.",
"operationId": "getNetworkClientSplashAuthorizationStatus",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "clientId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"ssids": {
"0": {
"isAuthorized": true,
"authorizedAt": "2017-07-19 16:24:13 UTC",
"expiresAt": "2017-07-20 16:24:13 UTC"
},
"2": {
"isAuthorized": false
}
}
}
}
}
},
"summary": "Return the splash authorization for a client, for each SSID they've associated with through splash",
"tags": [
"networks",
"configure",
"clients",
"splashAuthorizationStatus"
]
},
"put": {
"description": "Update a client's splash authorization. Clients can be identified by a client key or either the MAC or IP depending on whether the network uses Track-by-IP.",
"operationId": "updateNetworkClientSplashAuthorizationStatus",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "clientId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkClientSplashAuthorizationStatus",
"in": "body",
"schema": {
"type": "object",
"properties": {
"ssids": {
"type": "object",
"properties": {
"0": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 0"
},
"1": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 1"
},
"2": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 2"
},
"3": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 3"
},
"4": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 4"
},
"5": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 5"
},
"6": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 6"
},
"7": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 7"
},
"8": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 8"
},
"9": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 9"
},
"10": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 10"
},
"11": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 11"
},
"12": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 12"
},
"13": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 13"
},
"14": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 14"
}
},
"description": "The target SSIDs. Each SSID must be enabled and must have Click-through splash enabled. For each SSID where isAuthorized is true, the expiration time will automatically be set according to the SSID's splash frequency. Not all networks support configuring all SSIDs"
}
},
"example": {
"ssids": {
"0": {
"isAuthorized": true
},
"2": {
"isAuthorized": false
}
}
},
"required": [
"ssids"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"ssids": {
"0": {
"isAuthorized": true,
"authorizedAt": "2017-07-19 16:24:13 UTC",
"expiresAt": "2017-07-20 16:24:13 UTC"
},
"2": {
"isAuthorized": false
}
}
}
}
}
},
"summary": "Update a client's splash authorization",
"tags": [
"networks",
"configure",
"clients",
"splashAuthorizationStatus"
]
}
},
"/networks/{networkId}/clients/{clientId}/trafficHistory": {
"get": {
"description": "Return the client's network traffic data over time. Usage data is in kilobytes. This endpoint requires detailed traffic analysis to be enabled on the Network-wide > General page. Clients can be identified by a client key or either the MAC or IP depending on whether the network uses Track-by-IP.",
"operationId": "getNetworkClientTrafficHistory",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "clientId",
"in": "path",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000."
},
{
"type": "string",
"name": "startingAfter",
"in": "query",
"description": "A token used by the server to indicate the start of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it."
},
{
"type": "string",
"name": "endingBefore",
"in": "query",
"description": "A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"ts": "2018-02-11T00:00:00.090210Z",
"application": "Google",
"destination": "www.google.com",
"protocol": "UDP",
"port": 443,
"recv": 383,
"sent": 56,
"numFlows": 5,
"activeSeconds": 240
}
]
}
}
},
"summary": "Return the client's network traffic data over time",
"tags": [
"networks",
"monitor",
"clients",
"trafficHistory"
]
}
},
"/networks/{networkId}/clients/{clientId}/usageHistory": {
"get": {
"description": "Return the client's daily usage history. Usage data is in kilobytes. Clients can be identified by a client key or either the MAC or IP depending on whether the network uses Track-by-IP.",
"operationId": "getNetworkClientUsageHistory",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "clientId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"sent": 500,
"received": 680,
"ts": "2018-02-11T00:00:00.090210Z"
}
]
}
}
},
"summary": "Return the client's daily usage history",
"tags": [
"networks",
"monitor",
"clients",
"usageHistory"
]
}
},
"/networks/{networkId}/devices": {
"get": {
"description": "List the devices in a network",
"operationId": "getNetworkDevices",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"name": "My AP",
"lat": 37.4180951010362,
"lng": -122.098531723022,
"serial": "Q234-ABCD-5678",
"mac": "00:11:22:33:44:55",
"model": "MR34",
"address": "1600 Pennsylvania Ave",
"notes": "My AP's note",
"lanIp": "1.2.3.4",
"tags": " recently-added ",
"networkId": "N_24329156",
"beaconIdParams": {
"uuid": "00000000-0000-0000-0000-000000000000",
"major": 5,
"minor": 3
},
"firmware": "wireless-25-14",
"floorPlanId": "g_1234567"
}
]
}
}
},
"summary": "List the devices in a network",
"tags": [
"networks",
"configure",
"devices"
]
}
},
"/networks/{networkId}/devices/claim": {
"post": {
"description": "Claim devices into a network. (Note: for recently claimed devices, it may take a few minutes for API requsts against that device to succeed)",
"operationId": "claimNetworkDevices",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "claimNetworkDevices",
"in": "body",
"schema": {
"type": "object",
"properties": {
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of serials of devices to claim"
}
},
"example": {
"serials": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
]
},
"required": [
"serials"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation"
}
},
"summary": "Claim devices into a network. (Note: for recently claimed devices, it may take a few minutes for API requsts against that device to succeed)",
"tags": [
"networks",
"configure",
"devices"
]
}
},
"/networks/{networkId}/devices/claim/vmx": {
"post": {
"description": "Claim a vMX into a network",
"operationId": "vmxNetworkDevicesClaim",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "vmxNetworkDevicesClaim",
"in": "body",
"schema": {
"type": "object",
"properties": {
"size": {
"type": "string",
"enum": [
"small",
"medium",
"large",
"100"
],
"description": "The size of the vMX you claim. It can be one of: small, medium, large, 100"
}
},
"example": {
"size": "small"
},
"required": [
"size"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"name": "My AP",
"lat": 37.4180951010362,
"lng": -122.098531723022,
"serial": "Q234-ABCD-5678",
"mac": "00:11:22:33:44:55",
"model": "VMX-S",
"address": "1600 Pennsylvania Ave",
"notes": "My AP's note",
"lanIp": "1.2.3.4",
"tags": [
"recently-added"
],
"networkId": "N_24329156",
"beaconIdParams": {
"uuid": "00000000-0000-0000-0000-000000000000",
"major": 5,
"minor": 3
},
"firmware": "wireless-25-14",
"floorPlanId": "g_1234567"
}
}
}
},
"summary": "Claim a vMX into a network",
"tags": [
"networks",
"configure",
"devices",
"claim"
]
}
},
"/networks/{networkId}/devices/remove": {
"post": {
"description": "Remove a single device",
"operationId": "removeNetworkDevices",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "removeNetworkDevices",
"in": "body",
"schema": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "The serial of a device"
}
},
"example": {
"serial": "Q234-ABCD-5678"
},
"required": [
"serial"
]
},
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Remove a single device",
"tags": [
"networks",
"configure",
"devices"
]
}
},
"/networks/{networkId}/events": {
"get": {
"description": "List the events for the network",
"operationId": "getNetworkEvents",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"type": "string",
"enum": [
"wireless",
"appliance",
"switch",
"systemsManager",
"camera",
"cellularGateway"
],
"name": "productType",
"in": "query",
"description": "The product type to fetch events for. This parameter is required for networks with multiple device types. Valid types are wireless, appliance, switch, systemsManager, camera, and cellularGateway"
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "includedEventTypes",
"in": "query",
"description": "A list of event types. The returned events will be filtered to only include events with these types."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "excludedEventTypes",
"in": "query",
"description": "A list of event types. The returned events will be filtered to exclude events with these types."
},
{
"type": "string",
"name": "deviceMac",
"in": "query",
"description": "The MAC address of the Meraki device which the list of events will be filtered with"
},
{
"type": "string",
"name": "deviceSerial",
"in": "query",
"description": "The serial of the Meraki device which the list of events will be filtered with"
},
{
"type": "string",
"name": "deviceName",
"in": "query",
"description": "The name of the Meraki device which the list of events will be filtered with"
},
{
"type": "string",
"name": "clientIp",
"in": "query",
"description": "The IP of the client which the list of events will be filtered with. Only supported for track-by-IP networks."
},
{
"type": "string",
"name": "clientMac",
"in": "query",
"description": "The MAC address of the client which the list of events will be filtered with. Only supported for track-by-MAC networks."
},
{
"type": "string",
"name": "clientName",
"in": "query",
"description": "The name, or partial name, of the client which the list of events will be filtered with"
},
{
"type": "string",
"name": "smDeviceMac",
"in": "query",
"description": "The MAC address of the Systems Manager device which the list of events will be filtered with"
},
{
"type": "string",
"name": "smDeviceName",
"in": "query",
"description": "The name of the Systems Manager device which the list of events will be filtered with"
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 10."
},
{
"type": "string",
"name": "startingAfter",
"in": "query",
"description": "A token used by the server to indicate the start of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it."
},
{
"type": "string",
"name": "endingBefore",
"in": "query",
"description": "A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": {
"message": null,
"pageStartAt": "2018-02-11T00:00:00.090210Z",
"pageEndAt": "2018-02-11T00:00:00.090210Z",
"events": [
{
"occurredAt": "2018-02-11T00:00:00.090210Z",
"networkId": "N_24329156",
"type": "association",
"description": "802.11 association",
"clientId": "k74272e",
"clientDescription": "Miles's phone",
"deviceSerial": "Q234-ABCD-5678",
"deviceName": "My AP",
"ssidNumber": 1,
"ssidName": "My SSID",
"eventData": {
"radio": "1",
"vap": "1",
"client_mac": "22:33:44:55:66:77",
"client_ip": "1.2.3.4",
"channel": "36",
"rssi": "12",
"aid": "2104009183"
}
}
]
}
}
}
},
"summary": "List the events for the network",
"tags": [
"networks",
"monitor",
"events"
]
}
},
"/networks/{networkId}/events/eventTypes": {
"get": {
"description": "List the event type to human-readable description",
"operationId": "getNetworkEventsEventTypes",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Event category"
},
"type": {
"type": "string",
"description": "Event type"
},
"description": {
"type": "string",
"description": "Description of the event"
}
}
}
},
"examples": {
"application/json": [
{
"category": "802.11",
"type": "association",
"description": "802.11 association"
}
]
}
}
},
"summary": "List the event type to human-readable description",
"tags": [
"networks",
"monitor",
"events",
"eventTypes"
]
}
},
"/networks/{networkId}/firmwareUpgrades": {
"get": {
"description": "Get firmware upgrade information for a network",
"operationId": "getNetworkFirmwareUpgrades",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"upgradeWindow": {
"type": "object",
"properties": {
"dayOfWeek": {
"type": "string",
"enum": [
"sun",
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sunday",
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday"
],
"description": "Day of the week"
},
"hourOfDay": {
"type": "string",
"enum": [
"0:00",
"1:00",
"2:00",
"3:00",
"4:00",
"5:00",
"6:00",
"7:00",
"8:00",
"9:00",
"10:00",
"11:00",
"12:00",
"13:00",
"14:00",
"15:00",
"16:00",
"17:00",
"18:00",
"19:00",
"20:00",
"21:00",
"22:00",
"23:00"
],
"description": "Hour of the day"
}
},
"description": "Upgrade window for devices in network"
},
"timezone": {
"type": "string",
"description": "The timezone for the network"
},
"products": {
"type": "object",
"properties": {
"wireless": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"appliance": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"switch": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"camera": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"cellularGateway": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"sensor": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
}
},
"description": "The network devices to be updated"
}
}
},
"examples": {
"application/json": {
"upgradeWindow": {
"dayOfWeek": "sun",
"hourOfDay": "4:00"
},
"timezone": "America/Los_Angeles",
"products": {
"wireless": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
},
"appliance": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
},
"switch": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
},
"camera": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
},
"cellularGateway": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
},
"sensor": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
}
}
}
}
}
},
"summary": "Get firmware upgrade information for a network",
"tags": [
"networks",
"configure",
"firmwareUpgrades"
]
},
"put": {
"description": "Update firmware upgrade information for a network",
"operationId": "updateNetworkFirmwareUpgrades",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "updateNetworkFirmwareUpgrades",
"in": "body",
"schema": {
"type": "object",
"properties": {
"upgradeWindow": {
"type": "object",
"properties": {
"dayOfWeek": {
"type": "string",
"enum": [
"sun",
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sunday",
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday"
],
"description": "Day of the week"
},
"hourOfDay": {
"type": "string",
"enum": [
"0:00",
"1:00",
"2:00",
"3:00",
"4:00",
"5:00",
"6:00",
"7:00",
"8:00",
"9:00",
"10:00",
"11:00",
"12:00",
"13:00",
"14:00",
"15:00",
"16:00",
"17:00",
"18:00",
"19:00",
"20:00",
"21:00",
"22:00",
"23:00"
],
"description": "Hour of the day"
}
},
"description": "Upgrade window for devices in network"
},
"timezone": {
"type": "string",
"description": "The timezone for the network"
},
"products": {
"type": "object",
"properties": {
"wireless": {
"type": "object",
"properties": {
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"description": "The time of the last successful upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The version ID"
}
},
"description": "The version to be updated to"
}
},
"description": "The pending firmware upgrade if it exists"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"appliance": {
"type": "object",
"properties": {
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"description": "The time of the last successful upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The version ID"
}
},
"description": "The version to be updated to"
}
},
"description": "The pending firmware upgrade if it exists"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"switch": {
"type": "object",
"properties": {
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"description": "The time of the last successful upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The version ID"
}
},
"description": "The version to be updated to"
}
},
"description": "The pending firmware upgrade if it exists"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"camera": {
"type": "object",
"properties": {
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"description": "The time of the last successful upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The version ID"
}
},
"description": "The version to be updated to"
}
},
"description": "The pending firmware upgrade if it exists"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"cellularGateway": {
"type": "object",
"properties": {
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"description": "The time of the last successful upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The version ID"
}
},
"description": "The version to be updated to"
}
},
"description": "The pending firmware upgrade if it exists"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"sensor": {
"type": "object",
"properties": {
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"description": "The time of the last successful upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The version ID"
}
},
"description": "The version to be updated to"
}
},
"description": "The pending firmware upgrade if it exists"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
}
},
"description": "Contains information about the network to update"
}
},
"example": {
"upgradeWindow": {
"dayOfWeek": "sun",
"hourOfDay": "4:00"
},
"timezone": "America/Los_Angeles",
"products": {
"wireless": {
"nextUpgrade": {
"time": "2019-03-17T17:22:52Z",
"toVersion": {
"id": "1000"
}
},
"participateInNextBetaRelease": false
},
"appliance": {
"nextUpgrade": {
"time": "2019-03-17T17:22:52Z",
"toVersion": {
"id": "1001"
}
},
"participateInNextBetaRelease": false
},
"switch": {
"nextUpgrade": {
"time": "2019-03-17T17:22:52Z",
"toVersion": {
"id": "1002"
}
},
"participateInNextBetaRelease": false
},
"camera": {
"nextUpgrade": {
"time": "2019-03-17T17:22:52Z",
"toVersion": {
"id": "1003"
}
},
"participateInNextBetaRelease": false
},
"cellularGateway": {
"nextUpgrade": {
"time": "2019-03-17T17:22:52Z",
"toVersion": {
"id": "1004"
}
},
"participateInNextBetaRelease": false
},
"sensor": {
"nextUpgrade": {
"time": "2019-03-17T17:22:52Z",
"toVersion": {
"id": "1005"
}
},
"participateInNextBetaRelease": false
}
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"upgradeWindow": {
"type": "object",
"properties": {
"dayOfWeek": {
"type": "string",
"enum": [
"sun",
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sunday",
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday"
],
"description": "Day of the week"
},
"hourOfDay": {
"type": "string",
"enum": [
"0:00",
"1:00",
"2:00",
"3:00",
"4:00",
"5:00",
"6:00",
"7:00",
"8:00",
"9:00",
"10:00",
"11:00",
"12:00",
"13:00",
"14:00",
"15:00",
"16:00",
"17:00",
"18:00",
"19:00",
"20:00",
"21:00",
"22:00",
"23:00"
],
"description": "Hour of the day"
}
},
"description": "Upgrade window for devices in network"
},
"timezone": {
"type": "string",
"description": "The timezone for the network"
},
"products": {
"type": "object",
"properties": {
"wireless": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"appliance": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"switch": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"camera": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"cellularGateway": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"sensor": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
}
},
"description": "The network devices to be updated"
}
}
},
"examples": {
"application/json": {
"upgradeWindow": {
"dayOfWeek": "sun",
"hourOfDay": "4:00"
},
"timezone": "America/Los_Angeles",
"products": {
"wireless": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
},
"appliance": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
},
"switch": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
},
"camera": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
},
"cellularGateway": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
},
"sensor": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
}
}
}
}
}
},
"summary": "Update firmware upgrade information for a network",
"tags": [
"networks",
"configure",
"firmwareUpgrades"
]
}
},
"/networks/{networkId}/firmwareUpgrades/rollbacks": {
"post": {
"description": "Rollback a Firmware Upgrade For A Network",
"operationId": "createNetworkFirmwareUpgradesRollback",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "createNetworkFirmwareUpgradesRollback",
"in": "body",
"schema": {
"type": "object",
"properties": {
"product": {
"type": "string",
"enum": [
"wireless",
"appliance",
"switch",
"camera",
"cellularGateway"
],
"description": "Product type to rollback (if the network is a combined network)"
},
"time": {
"type": "string",
"format": "date-time",
"description": "Scheduled time for the rollback"
},
"reasons": {
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"performance",
"stability",
"broke old features",
"unifying networks versions",
"testing",
"other"
],
"description": "Reason for the rollback"
},
"comment": {
"type": "string",
"description": "Additional comment about the rollback"
}
},
"required": [
"category",
"comment"
]
},
"description": "Reasons for the rollback"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The version ID"
}
},
"description": "Version to downgrade to (if the network has firmware flexibility)"
}
},
"example": {
"product": "switch",
"time": "2020-10-21T02:00:00Z",
"reasons": [
{
"category": "performance",
"comment": "Network was slower with the upgrade"
}
],
"toVersion": {
"id": "7857"
}
},
"required": [
"reasons"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"product": {
"type": "string",
"enum": [
"wireless",
"appliance",
"switch",
"camera",
"cellularGateway"
],
"description": "Product type to rollback (if the network is a combined network)"
},
"status": {
"type": "string",
"enum": [
"completed",
"canceled",
"in_progress",
"pending"
],
"description": "Status of the rollback"
},
"upgradeBatchId": {
"type": "string",
"description": "Batch ID of the firmware rollback"
},
"time": {
"type": "string",
"format": "date-time",
"description": "Scheduled time for the rollback"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Version to downgrade to (if the network has firmware flexibility)"
},
"reasons": {
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"performance",
"stability",
"broke old features",
"unifying networks versions",
"testing",
"other"
],
"description": "Reason for the rollback"
},
"comment": {
"type": "string",
"description": "Additional comment about the rollback"
}
}
},
"description": "Reasons for the rollback"
}
}
},
"examples": {
"application/json": {
"product": "switch",
"status": "pending",
"upgradeBatchId": "23456",
"time": "2020-10-21T02:00:00Z",
"toVersion": {
"id": "7857",
"firmware": "switch-15-5-2",
"shortName": "MS 25.5.2",
"releaseType": "stable",
"releaseDate": "2020-03-28T17:22:52Z"
},
"reasons": [
{
"category": "performance",
"comment": "Network was slower with the upgrade"
}
]
}
}
}
},
"summary": "Rollback a Firmware Upgrade For A Network",
"tags": [
"networks",
"configure",
"firmwareUpgrades",
"rollbacks"
]
}
},
"/networks/{networkId}/firmwareUpgrades/staged/events": {
"get": {
"description": "Get the Staged Upgrade Event from a network",
"operationId": "getNetworkFirmwareUpgradesStagedEvents",
"parameters": [
{
"name": "networkId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"products": {
"type": "object",
"properties": {
"switch": {
"type": "object",
"properties": {
"nextUpgrade": {
"type": "object",
"properties": {
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id of the Version being upgraded to"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
}
},
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment