{ "openapi": "3.0.1", "info": { "title": "Cisco Meraki Dashboard API \u2014 networks", "description": "The networks operations of the Cisco Meraki Dashboard API, split by product area from Cisco's published OpenAPI definition.", "version": "1.72.0", "contact": { "name": "Meraki Developer Community", "url": "https://meraki.io/community" }, "x-provenance": { "method": "harvested", "authored_by": "Cisco Meraki", "harvested_by": "API Evangelist", "harvested_on": "2026-07-31", "first_party": true, "note": "Split by first tag from Cisco's published spec3.json; operations unmodified.", "provider_published": true }, "x-evidence": [ { "type": "source", "url": "https://github.com/meraki/openapi/blob/master/openapi/spec3.json" }, { "type": "raw", "url": "https://raw.githubusercontent.com/meraki/openapi/master/openapi/spec3.json" }, { "type": "alternate", "url": "https://api.meraki.com/api/v1/openapiSpec" } ] }, "servers": [ { "url": "https://api.meraki.com/{basePath}", "variables": { "basePath": { "default": "api/v1" } } } ], "security": [ { "meraki_api_key": [] }, { "bearerAuth": [] } ], "tags": [ { "name": "alerts", "description": "" }, { "name": "applicationCategories", "description": "" }, { "name": "applicationUsage", "description": "" }, { "name": "assignments", "description": "" }, { "name": "autoLocate", "description": "" }, { "name": "bandwidthUsageHistory", "description": "" }, { "name": "bluetoothClients", "description": "" }, { "name": "byClient", "description": "" }, { "name": "byDevice", "description": "" }, { "name": "channelUtilization", "description": "" }, { "name": "claim", "description": "" }, { "name": "clients", "description": "" }, { "name": "configure", "description": "" }, { "name": "devices", "description": "" }, { "name": "dscpTaggingOptions", "description": "" }, { "name": "eventTypes", "description": "" }, { "name": "events", "description": "" }, { "name": "firmwareUpgrades", "description": "" }, { "name": "floorPlans", "description": "" }, { "name": "groupPolicies", "description": "" }, { "name": "groups", "description": "" }, { "name": "health", "description": "" }, { "name": "history", "description": "" }, { "name": "httpServers", "description": "" }, { "name": "jobs", "description": "" }, { "name": "linkLayer", "description": "" }, { "name": "merakiAuthUsers", "description": "" }, { "name": "monitor", "description": "" }, { "name": "mqttBrokers", "description": "" }, { "name": "netflow", "description": "" }, { "name": "networkHealth", "description": "" }, { "name": "networks", "description": "" }, { "name": "overview", "description": "" }, { "name": "payloadTemplates", "description": "" }, { "name": "pii", "description": "" }, { "name": "piiKeys", "description": "" }, { "name": "policies", "description": "" }, { "name": "policy", "description": "" }, { "name": "requests", "description": "" }, { "name": "rollbacks", "description": "" }, { "name": "servers", "description": "" }, { "name": "settings", "description": "" }, { "name": "smDevicesForKey", "description": "" }, { "name": "smOwnersForKey", "description": "" }, { "name": "snmp", "description": "" }, { "name": "splashAuthorizationStatus", "description": "" }, { "name": "splashLoginAttempts", "description": "" }, { "name": "staged", "description": "" }, { "name": "stages", "description": "" }, { "name": "syslog", "description": "" }, { "name": "syslogServers", "description": "" }, { "name": "topology", "description": "" }, { "name": "traffic", "description": "" }, { "name": "trafficAnalysis", "description": "" }, { "name": "trafficHistory", "description": "" }, { "name": "trafficShaping", "description": "" }, { "name": "usageHistories", "description": "" }, { "name": "usageHistory", "description": "" }, { "name": "vlanProfiles", "description": "" }, { "name": "webhookTests", "description": "" }, { "name": "webhooks", "description": "" } ], "components": { "securitySchemes": { "meraki_api_key": { "type": "apiKey", "name": "X-Cisco-Meraki-API-Key", "in": "header" }, "bearerAuth": { "type": "http", "scheme": "bearer", "bearerFormat": "API Key" } } }, "paths": { "/networks/{networkId}": { "get": { "description": "Return a network", "operationId": "getNetwork", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "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" } } }, "example": { "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 } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "Return a network", "tags": [ "networks", "configure" ] }, "put": { "description": "Update a network", "operationId": "updateNetwork", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "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 this article." }, "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", "nullable": true, "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" } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "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" } } }, "example": { "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 } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Update a network", "tags": [ "networks", "configure" ] }, "delete": { "description": "Delete a network", "operationId": "deleteNetwork", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "204": { "description": "Successful operation" } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "perPage", "in": "query", "description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 100.", "schema": { "type": "integer" } }, { "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.", "schema": { "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.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "occurredAt": { "type": "string", "description": "time when the event 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", "description": "relevant data about the event that caused the alert" } } } }, "example": [ { "occurredAt": "2022-07-11T22:35:34Z", "alertTypeId": "settings_changed", "alertType": "Settings changed", "device": { "serial": "Q3CG-G6W8-BEVR" }, "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" } } } ] } }, "headers": { "Link": { "schema": { "type": "string" }, "description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests." } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "defaultDestinations": { "type": "object", "properties": { "emails": { "type": "array", "items": { "type": "string" }, "description": "A list of emails that will receive 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" }, "smsNumbers": { "type": "array", "items": { "type": "string" }, "description": "A list of phone numbers that will receive text messages about the alert. Only available for sensors status alerts." }, "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": { "conditions": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "description": "Type of condition" }, "unit": { "type": "string", "description": "Unit", "nullable": true }, "duration": { "type": "integer", "description": "Duration" }, "direction": { "type": "string", "enum": [ "+", "-" ], "description": "Direction" }, "threshold": { "type": "number", "format": "float", "description": "Threshold" } } }, "description": "Conditions" }, "failureType": { "type": "string", "description": "Failure Type" }, "lookbackWindow": { "type": "integer", "description": "Loopback Window (in sec)" }, "minDuration": { "type": "integer", "description": "Min Duration" }, "name": { "type": "string", "description": "Name" }, "period": { "type": "integer", "description": "Period" }, "priority": { "type": "string", "description": "Priority" }, "regex": { "type": "string", "description": "Regex" }, "selector": { "type": "string", "description": "Selector" }, "serials": { "type": "array", "items": { "type": "string" }, "description": "Serials" }, "ssidNum": { "type": "integer", "description": "SSID Number" }, "tag": { "type": "string", "description": "Tag" }, "threshold": { "type": "integer", "description": "Threshold" }, "timeout": { "type": "integer", "description": "Timeout" } }, "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." }, "muting": { "type": "object", "properties": { "byPortSchedules": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "If true, then wireless unreachable alerts will be muted when caused by a port schedule" } }, "description": "Mute wireless unreachable alerts based on switch port schedules" } }, "description": "Mute alerts under certain conditions" } } }, "example": { "defaultDestinations": { "emails": [ "miles@meraki.com" ], "allAdmins": true, "snmp": true, "httpServerIds": [ "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M=" ] }, "alerts": [ { "type": "gatewayDown", "enabled": true, "alertDestinations": { "emails": [ "miles@meraki.com" ], "smsNumbers": [ "+15555555555" ], "allAdmins": false, "snmp": false, "httpServerIds": [ "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M=" ] }, "filters": { "conditions": [ { "type": "temperature", "unit": "celsius", "duration": 0, "direction": "+", "threshold": 72.5 } ], "failureType": "802.1X auth fail", "lookbackWindow": 360, "minDuration": 60, "name": "Filter", "period": 1800, "priority": "", "regex": "[a-z]", "selector": "{\"smartSensitivity\":\"medium\",\"smartEnabled\":false,\"eventReminderPeriodSecs\":10800}", "serials": [ "Q234-ABCD-0001", "Q234-ABCD-0002", "Q234-ABCD-0003" ], "ssidNum": 1, "tag": "tag1", "threshold": 30, "timeout": 60 } } ], "muting": { "byPortSchedules": { "enabled": true } } } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "defaultDestinations": { "type": "object", "properties": { "emails": { "type": "array", "items": { "type": "string" }, "description": "A list of emails that will receive 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" }, "smsNumbers": { "type": "array", "items": { "type": "string" }, "description": "A list of phone numbers that will receive text messages about the alert. Only available for sensors status alerts." }, "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": { "conditions": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "description": "Type of condition" }, "unit": { "type": "string", "description": "Unit", "nullable": true }, "duration": { "type": "integer", "description": "Duration" }, "direction": { "type": "string", "enum": [ "+", "-" ], "description": "Direction" }, "threshold": { "type": "number", "format": "float", "description": "Threshold" } } }, "description": "Conditions" }, "failureType": { "type": "string", "description": "Failure Type" }, "lookbackWindow": { "type": "integer", "description": "Loopback Window (in sec)" }, "minDuration": { "type": "integer", "description": "Min Duration" }, "name": { "type": "string", "description": "Name" }, "period": { "type": "integer", "description": "Period" }, "priority": { "type": "string", "description": "Priority" }, "regex": { "type": "string", "description": "Regex" }, "selector": { "type": "string", "description": "Selector" }, "serials": { "type": "array", "items": { "type": "string" }, "description": "Serials" }, "ssidNum": { "type": "integer", "description": "SSID Number" }, "tag": { "type": "string", "description": "Tag" }, "threshold": { "type": "integer", "description": "Threshold" }, "timeout": { "type": "integer", "description": "Timeout" } }, "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." }, "muting": { "type": "object", "properties": { "byPortSchedules": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "If true, then wireless unreachable alerts will be muted when caused by a port schedule" } }, "description": "Mute wireless unreachable alerts based on switch port schedules" } }, "description": "Mute alerts under certain conditions" } }, "example": { "defaultDestinations": { "emails": [ "miles@meraki.com" ], "allAdmins": true, "snmp": true, "httpServerIds": [ "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M=" ] }, "alerts": [ { "type": "gatewayDown", "enabled": true, "alertDestinations": { "emails": [ "miles@meraki.com" ], "smsNumbers": [ "+15555555555" ], "allAdmins": false, "snmp": false, "httpServerIds": [ "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M=" ] }, "filters": { "conditions": [ { "type": "temperature", "unit": "celsius", "duration": 0, "direction": "+", "threshold": 72.5 } ], "failureType": "802.1X auth fail", "lookbackWindow": 360, "minDuration": 60, "name": "Filter", "period": 1800, "priority": "", "regex": "[a-z]", "selector": "{\"smartSensitivity\":\"medium\",\"smartEnabled\":false,\"eventReminderPeriodSecs\":10800}", "serials": [ "Q234-ABCD-0001", "Q234-ABCD-0002", "Q234-ABCD-0003" ], "ssidNum": 1, "tag": "tag1", "threshold": 30, "timeout": 60 } } ], "muting": { "byPortSchedules": { "enabled": true } } } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "defaultDestinations": { "type": "object", "properties": { "emails": { "type": "array", "items": { "type": "string" }, "description": "A list of emails that will receive 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" }, "smsNumbers": { "type": "array", "items": { "type": "string" }, "description": "A list of phone numbers that will receive text messages about the alert. Only available for sensors status alerts." }, "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": { "conditions": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "description": "Type of condition" }, "unit": { "type": "string", "description": "Unit", "nullable": true }, "duration": { "type": "integer", "description": "Duration" }, "direction": { "type": "string", "enum": [ "+", "-" ], "description": "Direction" }, "threshold": { "type": "number", "format": "float", "description": "Threshold" } } }, "description": "Conditions" }, "failureType": { "type": "string", "description": "Failure Type" }, "lookbackWindow": { "type": "integer", "description": "Loopback Window (in sec)" }, "minDuration": { "type": "integer", "description": "Min Duration" }, "name": { "type": "string", "description": "Name" }, "period": { "type": "integer", "description": "Period" }, "priority": { "type": "string", "description": "Priority" }, "regex": { "type": "string", "description": "Regex" }, "selector": { "type": "string", "description": "Selector" }, "serials": { "type": "array", "items": { "type": "string" }, "description": "Serials" }, "ssidNum": { "type": "integer", "description": "SSID Number" }, "tag": { "type": "string", "description": "Tag" }, "threshold": { "type": "integer", "description": "Threshold" }, "timeout": { "type": "integer", "description": "Timeout" } }, "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." }, "muting": { "type": "object", "properties": { "byPortSchedules": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "If true, then wireless unreachable alerts will be muted when caused by a port schedule" } }, "description": "Mute wireless unreachable alerts based on switch port schedules" } }, "description": "Mute alerts under certain conditions" } } }, "example": { "defaultDestinations": { "emails": [ "miles@meraki.com" ], "allAdmins": true, "snmp": true, "httpServerIds": [ "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M=" ] }, "alerts": [ { "type": "gatewayDown", "enabled": true, "alertDestinations": { "emails": [ "miles@meraki.com" ], "smsNumbers": [ "+15555555555" ], "allAdmins": false, "snmp": false, "httpServerIds": [ "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M=" ] }, "filters": { "conditions": [ { "type": "temperature", "unit": "celsius", "duration": 0, "direction": "+", "threshold": 72.5 } ], "failureType": "802.1X auth fail", "lookbackWindow": 360, "minDuration": 60, "name": "Filter", "period": 1800, "priority": "", "regex": "[a-z]", "selector": "{\"smartSensitivity\":\"medium\",\"smartEnabled\":false,\"eventReminderPeriodSecs\":10800}", "serials": [ "Q234-ABCD-0001", "Q234-ABCD-0002", "Q234-ABCD-0003" ], "ssidNum": 1, "tag": "tag1", "threshold": 30, "timeout": 60 } } ], "muting": { "byPortSchedules": { "enabled": true } } } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:write" ] } ], "summary": "Update the alert configuration for this network", "tags": [ "networks", "configure", "alerts", "settings" ] } }, "/networks/{networkId}/bind": { "post": { "description": "Bind a network to a template.", "operationId": "bindNetwork", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "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", "content": { "application/json": { "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" }, "configTemplateId": { "type": "string", "description": "ID of the config template the network is being bound to" } } }, "example": { "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, "configTemplateId": "N_24329156" } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "t0", "in": "query", "description": "The beginning of the timespan for the data. The maximum lookback period is 7 days from today.", "schema": { "type": "string" } }, { "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.", "schema": { "type": "number", "format": "float", "maximum": 604800 } }, { "name": "perPage", "in": "query", "description": "The number of entries per page returned. Acceptable range is 5 - 1000. Default is 10.", "schema": { "type": "integer" } }, { "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.", "schema": { "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.", "schema": { "type": "string" } }, { "name": "includeConnectivityHistory", "in": "query", "description": "Include the connectivity history for this client", "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the client" }, "mac": { "type": "string", "description": "MAC address of the client" }, "networkId": { "type": "string", "description": "Network ID" }, "name": { "type": "string", "description": "Name of the client" }, "deviceName": { "type": "string", "description": "Bluetooth device name" }, "manufacturer": { "type": "string", "description": "Name of the manufacturer" }, "lastSeen": { "type": "integer", "description": "Epoch timestamp of the device's last appearance" }, "seenByDeviceMac": { "type": "string", "description": "Seen by device MAC" }, "inSightAlert": { "type": "boolean", "description": "Device in sight alert" }, "outOfSightAlert": { "type": "boolean", "description": "Device out of sight alert" }, "tags": { "type": "array", "items": { "type": "string" }, "description": "A list of tags applied to the device" } } } }, "example": [ { "id": "1284392014819", "mac": "22:33:44:55:66:77", "networkId": "N_24329156", "name": "My Device", "deviceName": "Bose QuietComfort 35", "manufacturer": "Bose", "lastSeen": 1526087474, "seenByDeviceMac": "00:11:22:33:44:55", "inSightAlert": false, "outOfSightAlert": false, "tags": [ "tag1", "tag2" ] } ] } }, "headers": { "Link": { "schema": { "type": "string" }, "description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests." } } } }, "security": [ { "oauth2": [ "wireless:telemetry:read" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "bluetoothClientId", "in": "path", "description": "Bluetooth client ID", "schema": { "type": "string" }, "required": true }, { "name": "includeConnectivityHistory", "in": "query", "description": "Include the connectivity history for this client", "schema": { "type": "boolean" } }, { "name": "connectivityHistoryTimespan", "in": "query", "description": "The timespan, in seconds, for the connectivityHistory data. By default 1 day, 86400, will be used.", "schema": { "type": "integer" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the client" }, "mac": { "type": "string", "description": "MAC address of the client" }, "networkId": { "type": "string", "description": "Network ID" }, "name": { "type": "string", "description": "Name of the client" }, "deviceName": { "type": "string", "description": "Bluetooth device name" }, "manufacturer": { "type": "string", "description": "Name of the manufacturer" }, "lastSeen": { "type": "integer", "description": "Epoch timestamp of the device's last appearance" }, "seenByDeviceMac": { "type": "string", "description": "Seen by device MAC" }, "inSightAlert": { "type": "boolean", "description": "Device in sight alert" }, "outOfSightAlert": { "type": "boolean", "description": "Device out of sight alert" }, "tags": { "type": "array", "items": { "type": "string" }, "description": "A list of tags applied to the device" } } }, "example": { "id": "1284392014819", "mac": "22:33:44:55:66:77", "networkId": "N_24329156", "name": "My Device", "deviceName": "Bose QuietComfort 35", "manufacturer": "Bose", "lastSeen": 1526087474, "seenByDeviceMac": "00:11:22:33:44:55", "inSightAlert": false, "outOfSightAlert": false, "tags": [ "tag1", "tag2" ] } } } } }, "security": [ { "oauth2": [ "wireless:telemetry:read" ] } ], "summary": "Return a Bluetooth client", "tags": [ "networks", "monitor", "bluetoothClients" ] } }, "/networks/{networkId}/clients": { "get": { "description": "List the clients that have used this network in the timespan. The data is updated at most once every five minutes.", "operationId": "getNetworkClients", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "t0", "in": "query", "description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today.", "schema": { "type": "string" } }, { "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.", "schema": { "type": "number", "format": "float", "maximum": 2678400 } }, { "name": "perPage", "in": "query", "description": "The number of entries per page returned. Acceptable range is 3 - 5000. Default is 10.", "schema": { "type": "integer" } }, { "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.", "schema": { "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.", "schema": { "type": "string" } }, { "name": "statuses", "in": "query", "description": "Filters clients based on status. Can be one of 'Online' or 'Offline'.", "schema": { "type": "array", "items": { "type": "string", "enum": [ "Offline", "Online" ] } } }, { "name": "ip", "in": "query", "description": "Filters clients based on a partial or full match for the ip address field.", "schema": { "type": "string" } }, { "name": "ip6", "in": "query", "description": "Filters clients based on a partial or full match for the ip6 address field.", "schema": { "type": "string" } }, { "name": "ip6Local", "in": "query", "description": "Filters clients based on a partial or full match for the ip6Local address field.", "schema": { "type": "string" } }, { "name": "mac", "in": "query", "description": "Filters clients based on a partial or full match for the mac address field.", "schema": { "type": "string" } }, { "name": "os", "in": "query", "description": "Filters clients based on a partial or full match for the os (operating system) field.", "schema": { "type": "string" } }, { "name": "pskGroup", "in": "query", "description": "Filters clients based on partial or full match for the iPSK name field.", "schema": { "type": "string" } }, { "name": "description", "in": "query", "description": "Filters clients based on a partial or full match for the description field.", "schema": { "type": "string" } }, { "name": "vlan", "in": "query", "description": "Filters clients based on the full match for the VLAN field.", "schema": { "type": "string" } }, { "name": "namedVlan", "in": "query", "description": "Filters clients based on the partial or full match for the named VLAN field.", "schema": { "type": "string" } }, { "name": "recentDeviceConnections", "in": "query", "description": "Filters clients based on recent connection type. Can be one of 'Wired' or 'Wireless'.", "schema": { "type": "array", "items": { "type": "string", "enum": [ "Wired", "Wireless" ] } } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the client" }, "mac": { "type": "string", "description": "The MAC address of the client" }, "ip": { "type": "string", "description": "The IP address of the client" }, "ip6": { "type": "string", "description": "The IPv6 address of the client" }, "description": { "type": "string", "description": "Short description of the client" }, "firstSeen": { "type": "integer", "description": "Timestamp client was first seen in the network" }, "lastSeen": { "type": "integer", "description": "Timestamp client was last seen in the network" }, "manufacturer": { "type": "string", "description": "Manufacturer of the client" }, "os": { "type": "string", "description": "The operating system of the client" }, "user": { "type": "string", "description": "The username of the user of the client" }, "vlan": { "type": "string", "description": "The name of the VLAN that the client is connected to" }, "ssid": { "type": "string", "description": "The name of the SSID that the client is connected to" }, "switchport": { "type": "string", "description": "The switch port that the client is connected to" }, "wirelessCapabilities": { "type": "string", "description": "Wireless capabilities of the client" }, "smInstalled": { "type": "boolean", "description": "Status of SM for the client" }, "recentDeviceMac": { "type": "string", "description": "The MAC address of the node that the device was last connected to" }, "status": { "type": "string", "enum": [ "Offline", "Online" ], "description": "The connection status of the client" }, "usage": { "type": "object", "properties": { "sent": { "type": "number", "format": "float", "description": "Usage sent by the client" }, "recv": { "type": "number", "format": "float", "description": "Usage received by the client" } }, "description": "Usage, sent and received" }, "namedVlan": { "type": "string", "description": "Named VLAN of the client" }, "adaptivePolicyGroup": { "type": "string", "description": "The adaptive policy group of the client" }, "deviceTypePrediction": { "type": "string", "description": "Prediction of the client's device type" }, "recentDeviceSerial": { "type": "string", "description": "The serial of the node the device was last connected to" }, "recentDeviceName": { "type": "string", "description": "The name of the node the device was last connected to" }, "recentDeviceConnection": { "type": "string", "enum": [ "Wired", "Wireless" ], "description": "Client's most recent connection type" }, "notes": { "type": "string", "description": "Notes on the client" }, "ip6Local": { "type": "string", "description": "Local IPv6 address of the client" }, "groupPolicy8021x": { "type": "string", "description": "802.1x group policy of the client" }, "pskGroup": { "type": "string", "description": "iPSK name of the client" } } } }, "example": [ { "id": "k74272e", "mac": "22:33:44:55:66:77", "ip": "1.2.3.4", "ip6": "2001:db8:3c4d:15::1", "description": "Miles's phone", "firstSeen": 1518365681, "lastSeen": 1526087474, "manufacturer": "Apple", "os": "iOS", "user": "milesmeraki", "vlan": "100", "ssid": "My SSID", "switchport": "My switch port", "wirelessCapabilities": "802.11b - 2.4 GHz", "smInstalled": true, "recentDeviceMac": "22:33:44:55:66:77", "status": "Online", "usage": { "sent": 138.0, "recv": 61.0 }, "namedVlan": "My VLAN", "adaptivePolicyGroup": "2: Infrastructure", "deviceTypePrediction": "iPhone SE, iOS9.3.5", "recentDeviceSerial": "Q234-ABCD-5678", "recentDeviceName": "00:11:22:33:44:55", "recentDeviceConnection": "Wired", "notes": "My AP's note", "ip6Local": "fe80:0:0:0:1430:aac1:6826:75ab", "groupPolicy8021x": "Student_Access", "pskGroup": "Group 1" } ] } }, "headers": { "Link": { "schema": { "type": "string" }, "description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests." } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "clients", "in": "query", "required": true, "description": "A list of client keys, MACs or IPs separated by comma.", "schema": { "type": "string" } }, { "name": "ssidNumber", "in": "query", "description": "An SSID number to include. If not specified, events for all SSIDs will be returned.", "schema": { "type": "integer", "enum": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 ] } }, { "name": "perPage", "in": "query", "description": "The number of entries per page returned. Acceptable range is 3 - 1000.", "schema": { "type": "integer" } }, { "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.", "schema": { "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.", "schema": { "type": "string" } }, { "name": "t0", "in": "query", "description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today.", "schema": { "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.", "schema": { "type": "string" } }, { "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.", "schema": { "type": "number", "format": "float", "maximum": 2678400 } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "clientId": { "type": "string", "description": "The identifier of the client" }, "clientIp": { "type": "string", "description": "The IP address of the client" }, "clientMac": { "type": "string", "description": "The MAC address of the client" }, "applicationUsage": { "type": "array", "items": { "type": "object", "properties": { "application": { "type": "string", "description": "Name of the application" }, "received": { "type": "integer", "description": "Total bytes received by the client for the application" }, "sent": { "type": "integer", "description": "Total bytes sent by the client for the application" } } }, "description": "An array of application usage records for the client" } } } }, "example": [ { "clientId": "k74272e", "clientIp": "1.2.3.4", "clientMac": "00:11:22:33:44:55", "applicationUsage": [ { "application": "Meraki HTTPS", "received": 61, "sent": 138 } ] } ] } }, "headers": { "Link": { "schema": { "type": "string" }, "description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests." } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "t0", "in": "query", "description": "The beginning of the timespan for the data. The maximum lookback period is 30 days from today.", "schema": { "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.", "schema": { "type": "string" } }, { "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.", "schema": { "type": "number", "format": "float", "maximum": 2678400 } }, { "name": "perPage", "in": "query", "description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.", "schema": { "type": "integer" } }, { "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.", "schema": { "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.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "ts": { "type": "string", "format": "date-time", "description": "The timestamp" }, "total": { "type": "number", "format": "float", "description": "The total traffic over a time range for clients on a network" }, "upstream": { "type": "number", "format": "float", "description": "The upstream traffic over a time range for clients on a network" }, "downstream": { "type": "number", "format": "float", "description": "The downstream traffic over a time range for clients on a network" } } } }, "example": [ { "ts": "2018-02-11T00:00:00.090210Z", "total": 345.0, "upstream": 200.0, "downstream": 145.0 } ] } }, "headers": { "Link": { "schema": { "type": "string" }, "description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests." } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "t0", "in": "query", "description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today.", "schema": { "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.", "schema": { "type": "string" } }, { "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.", "schema": { "type": "number", "format": "float", "maximum": 2678400 } }, { "name": "resolution", "in": "query", "description": "The time resolution in seconds for returned data. The valid resolutions are: 7200, 86400, 604800, 2629746. The default is 604800.", "schema": { "type": "integer" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "counts": { "type": "object", "properties": { "total": { "type": "integer", "description": "The total number of clients on a network" }, "withHeavyUsage": { "type": "integer", "description": "The total number of clients with heavy usage on a network" } }, "description": "The number of clients on a network over a given time range" }, "usages": { "type": "object", "properties": { "average": { "type": "integer", "description": "The average usage of all clients on a network in kilobytes" }, "withHeavyUsageAverage": { "type": "integer", "description": "The average usage of all clients with heavy usage on a network in kilobytes" } }, "description": "The average usage of the clients on a network over a given time range" } } }, "example": { "counts": { "total": 100, "withHeavyUsage": 2 }, "usages": { "average": 2048, "withHeavyUsageAverage": 5345 } } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "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": [ "Allowed", "Blocked", "Group policy", "Normal", "Per connection" ], "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", "Group policy", "Normal" ], "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", "Group policy", "Normal" ], "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", "Group policy", "Normal" ], "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", "Group policy", "Normal" ], "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", "Group policy", "Normal" ], "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", "Group policy", "Normal" ], "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", "Group policy", "Normal" ], "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", "Group policy", "Normal" ], "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", "Group policy", "Normal" ], "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", "Group policy", "Normal" ], "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", "Group policy", "Normal" ], "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", "Group policy", "Normal" ], "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", "Group policy", "Normal" ], "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", "Group policy", "Normal" ], "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", "Group policy", "Normal" ], "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", "name": "Miles's phone" } ], "devicePolicy": "Group policy", "groupPolicyId": "101", "policiesBySecurityAppliance": { "devicePolicy": "Normal" }, "policiesBySsid": { "0": { "devicePolicy": "Group policy", "groupPolicyId": "101" }, "1": { "devicePolicy": "Group policy", "groupPolicyId": "101" }, "2": { "devicePolicy": "Group policy", "groupPolicyId": "101" }, "3": { "devicePolicy": "Group policy", "groupPolicyId": "101" }, "4": { "devicePolicy": "Group policy", "groupPolicyId": "101" }, "5": { "devicePolicy": "Group policy", "groupPolicyId": "101" }, "6": { "devicePolicy": "Group policy", "groupPolicyId": "101" }, "7": { "devicePolicy": "Group policy", "groupPolicyId": "101" }, "8": { "devicePolicy": "Group policy", "groupPolicyId": "101" }, "9": { "devicePolicy": "Group policy", "groupPolicyId": "101" }, "10": { "devicePolicy": "Group policy", "groupPolicyId": "101" }, "11": { "devicePolicy": "Group policy", "groupPolicyId": "101" }, "12": { "devicePolicy": "Group policy", "groupPolicyId": "101" }, "13": { "devicePolicy": "Group policy", "groupPolicyId": "101" }, "14": { "devicePolicy": "Group policy", "groupPolicyId": "101" } } }, "required": [ "clients", "devicePolicy" ] } } }, "required": true }, "responses": { "201": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "clients": { "type": "array", "items": { "type": "object", "properties": { "mac": { "type": "string", "description": "The MAC address of the client" }, "clientId": { "type": "string", "description": "The identifier of the client" }, "name": { "type": "string", "description": "The name of the client" }, "message": { "type": "string", "description": "The client's display message if its group policy is 'Blocked'" } } }, "description": "The list of clients to provision" }, "devicePolicy": { "type": "string", "description": "The name of the client's policy" }, "groupPolicyId": { "type": "string", "description": "The group policy identifier of the client" } } }, "example": { "clients": [ { "mac": "00:11:22:33:44:55", "clientId": "k74272e", "name": "Miles's phone", "message": "Blocked message for client" } ], "devicePolicy": "Group policy", "groupPolicyId": "101" } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "clients", "in": "query", "required": true, "description": "A list of client keys, MACs or IPs separated by comma.", "schema": { "type": "string" } }, { "name": "ssidNumber", "in": "query", "description": "An SSID number to include. If not specified, events for all SSIDs will be returned.", "schema": { "type": "integer", "enum": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 ] } }, { "name": "perPage", "in": "query", "description": "The number of entries per page returned. Acceptable range is 3 - 1000.", "schema": { "type": "integer" } }, { "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.", "schema": { "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.", "schema": { "type": "string" } }, { "name": "t0", "in": "query", "description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today.", "schema": { "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.", "schema": { "type": "string" } }, { "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.", "schema": { "type": "number", "format": "float", "maximum": 2678400 } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "clientId": { "type": "string", "description": "The identifier of the client" }, "clientIp": { "type": "string", "description": "The IP address of the client" }, "clientMac": { "type": "string", "description": "The MAC address of the client" }, "usageHistory": { "type": "array", "items": { "type": "object", "properties": { "received": { "type": "number", "format": "float", "description": "Usage received by the client on a given day" }, "sent": { "type": "number", "format": "float", "description": "Usage sent by the client on a given day" }, "ts": { "type": "string", "format": "date-time", "description": "The day's timestamp" } } }, "description": "An array of usage history records for the client" } } } }, "example": [ { "clientId": "k74272e", "clientIp": "1.2.3.4", "clientMac": "00:11:22:33:44:55", "usageHistory": [ { "received": 61.0, "sent": 138.0, "ts": "2018-02-11T00:00:00.090210Z" } ] } ] } }, "headers": { "Link": { "schema": { "type": "string" }, "description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests." } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "clientId", "in": "path", "description": "Client ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the client" }, "mac": { "type": "string", "description": "The MAC address of the client" }, "ip": { "type": "string", "description": "The IP address of the client" }, "ip6": { "type": "string", "description": "The IPv6 address of the client" }, "ip6Local": { "type": "string", "description": "The IPv6 Link Local address of the client" }, "description": { "type": "string", "description": "Short description of the client" }, "firstSeen": { "type": "integer", "description": "Timestamp client was first seen in the network" }, "lastSeen": { "type": "integer", "description": "Timestamp client was last seen in the network" }, "manufacturer": { "type": "string", "description": "Manufacturer of the client" }, "model": { "type": "string", "description": "The model of the client" }, "os": { "type": "string", "description": "The operating system of the client" }, "user": { "type": "string", "description": "The username of the user of the client" }, "vlan": { "type": "string", "description": "The client-assigned name of the VLAN the client is connected to" }, "namedVlan": { "type": "string", "description": "The owner-assigned name of the VLAN the client is connected to" }, "ssid": { "type": "string", "description": "The name of the SSID that the client is connected to" }, "switchport": { "type": "string", "description": "The switch port that the client is connected to" }, "wirelessCapabilities": { "type": "string", "description": "Wireless capabilities of the client" }, "smInstalled": { "type": "boolean", "description": "Status of SM for the client" }, "recentDeviceMac": { "type": "string", "description": "The MAC address of the node that the device was last connected to" }, "recentDeviceId": { "type": "string", "description": "The node ID of the node that the device was last connected to" }, "recentDeviceName": { "type": "string", "description": "The name of the node that the device was last connected to" }, "recentDeviceSerial": { "type": "string", "description": "The serial of the node that the device was last connected to" }, "recentDeviceConnection": { "type": "string", "enum": [ "Wired", "Wireless" ], "description": "Client's most recent connection type" }, "clientVpnConnections": { "type": "array", "items": { "type": "object", "properties": { "remoteIp": { "type": "string", "description": "The IP address of the VPN the client last connected to" }, "connectedAt": { "type": "integer", "description": "The time the client last connected to the VPN" }, "disconnectedAt": { "type": "integer", "description": "The time the client last disconnectd from the VPN" } } }, "description": "VPN connections associated with the client" }, "lldp": { "type": "array", "items": { "type": "array", "items": { "type": "string" } }, "description": "The link layer discover protocol settings for the client" }, "cdp": { "type": "array", "items": { "type": "array", "items": { "type": "string" } }, "description": "The Cisco discover protocol settings for the client" }, "status": { "type": "string", "enum": [ "Offline", "Online" ], "description": "The connection status of the client" }, "notes": { "type": "string", "description": "The notes associated with the client" }, "deviceTypePrediction": { "type": "string", "description": "Prediction of the client's device type" } } }, "example": { "id": "k74272e", "mac": "22:33:44:55:66:77", "ip": "1.2.3.4", "ip6": "2001:db8:3c4d:15::1", "ip6Local": "fe80:0:0:0:1430:aac1:6826:75ab", "description": "Miles's phone", "firstSeen": 1518365681, "lastSeen": 1526087474, "manufacturer": "Apple", "model": "iPhone", "os": "iOS", "user": "milesmeraki", "vlan": "100", "namedVlan": "100", "ssid": "My SSID", "switchport": "My switch port", "wirelessCapabilities": "802.11b - 2.4 GHz", "smInstalled": true, "recentDeviceMac": "22:33:44:55:66:77", "recentDeviceId": "15551677676480", "recentDeviceName": "00:11:22:33:44:55", "recentDeviceSerial": "Q234-ABCD-5678", "recentDeviceConnection": "Wired", "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": [ [ "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" ] ], "status": "Online", "notes": "My client note", "deviceTypePrediction": "iPhone SE, iOS9.3.5" } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "clientId", "in": "path", "description": "Client ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "mac": { "type": "string", "description": "The MAC address of the client" }, "devicePolicy": { "type": "string", "description": "The name of the client's policy" }, "groupPolicyId": { "type": "string", "description": "The group policy identifier of the client" }, "policiesBySsid": { "type": "array", "items": { "type": "object", "properties": { "ssidNumber": { "type": "integer", "description": "The SSID number for the policy rule" }, "devicePolicy": { "type": "string", "description": "The device policy applied to the client for this SSID" }, "groupPolicyId": { "type": "string", "description": "The group policy identifier for this SSID" } } }, "description": "The policies applied to the client by SSID" } } }, "example": { "mac": "00:11:22:33:44:55", "devicePolicy": "Different policies by SSID", "groupPolicyId": "101", "policiesBySsid": [ { "ssidNumber": 2, "devicePolicy": "Group policy", "groupPolicyId": "101" } ] } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "clientId", "in": "path", "description": "Client ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "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": { "devicePolicy": "Different policies by SSID", "groupPolicyId": "101" }, "required": [ "devicePolicy" ] } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "mac": { "type": "string", "description": "The MAC address of the client" }, "devicePolicy": { "type": "string", "description": "The name of the client's policy" }, "groupPolicyId": { "type": "string", "description": "The group policy identifier of the client" }, "policiesBySsid": { "type": "array", "items": { "type": "object", "properties": { "ssidNumber": { "type": "integer", "description": "The SSID number for the policy rule" }, "devicePolicy": { "type": "string", "description": "The device policy applied to the client for this SSID" }, "groupPolicyId": { "type": "string", "description": "The group policy identifier for this SSID" } } }, "description": "The policies applied to the client by SSID" } } }, "example": { "mac": "00:11:22:33:44:55", "devicePolicy": "Different policies by SSID", "groupPolicyId": "101", "policiesBySsid": [ { "ssidNumber": 2, "devicePolicy": "Group policy", "groupPolicyId": "101" } ] } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "clientId", "in": "path", "description": "Client ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "ssids": { "type": "object", "properties": { "0": { "type": "object", "properties": { "isAuthorized": { "type": "boolean", "description": "Whether the client is currently authorized on this SSID" }, "authorizedAt": { "type": "string", "description": "When the client was authorized on this SSID in ISO 8601 format. This field will be null if the client is not currently authorized.", "nullable": true }, "expiresAt": { "type": "string", "description": "When the client's authorization on this SSID expires in ISO 8601 format. This field will be null if the client is not currently authorized or if there is no expiration time for the authorization.", "nullable": true } }, "description": "Splash authorization for SSID 0" } }, "description": "A map of SSID number to the client's splash authorization status for that SSID. Only SSIDs that the client has connected to in the past will be included." } } }, "example": { "ssids": { "0": { "isAuthorized": true, "authorizedAt": "2018-05-12T00:00:00Z", "expiresAt": "2018-05-12T01:00:00Z" } } } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "clientId", "in": "path", "description": "Client ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "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 }, "1": { "isAuthorized": true }, "2": { "isAuthorized": true }, "3": { "isAuthorized": true }, "4": { "isAuthorized": true }, "5": { "isAuthorized": true }, "6": { "isAuthorized": true }, "7": { "isAuthorized": true }, "8": { "isAuthorized": true }, "9": { "isAuthorized": true }, "10": { "isAuthorized": true }, "11": { "isAuthorized": true }, "12": { "isAuthorized": true }, "13": { "isAuthorized": true }, "14": { "isAuthorized": true } } }, "required": [ "ssids" ] } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "ssids": { "type": "object", "properties": { "0": { "type": "object", "properties": { "isAuthorized": { "type": "boolean", "description": "Whether the client is currently authorized on this SSID" }, "authorizedAt": { "type": "string", "description": "When the client was authorized on this SSID in ISO 8601 format. This field will be null if the client is not currently authorized.", "nullable": true }, "expiresAt": { "type": "string", "description": "When the client's authorization on this SSID expires in ISO 8601 format. This field will be null if the client is not currently authorized or if there is no expiration time for the authorization.", "nullable": true } }, "description": "Splash authorization for SSID 0" } }, "description": "A map of SSID number to the client's splash authorization status for that SSID. Only SSIDs that the client has connected to in the past will be included." } } }, "example": { "ssids": { "0": { "isAuthorized": true, "authorizedAt": "2018-05-12T00:00:00Z", "expiresAt": "2018-05-12T01:00:00Z" } } } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "clientId", "in": "path", "description": "Client ID", "schema": { "type": "string" }, "required": true }, { "name": "perPage", "in": "query", "description": "The number of entries per page returned. Acceptable range is 3 - 1000.", "schema": { "type": "integer" } }, { "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.", "schema": { "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.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "ts": { "type": "string", "format": "date-time", "description": "The start time from which daily traffic data was collected" }, "application": { "type": "string", "description": "The name of the application the client is connected to" }, "destination": { "type": "string", "description": "The IP or web address the client is connected to" }, "protocol": { "type": "string", "description": "The client protocol" }, "port": { "type": "integer", "description": "The port the client is connected to" }, "recv": { "type": "number", "format": "float", "description": "Usage received by the client" }, "sent": { "type": "number", "format": "float", "description": "Usage sent by the client" }, "numFlows": { "type": "integer", "description": "The number of flows the client has" }, "activeSeconds": { "type": "integer", "description": "The amount of seconds the client was active" } } } }, "example": [ { "ts": "2018-02-11T00:00:00.090210Z", "application": "Google", "destination": "www.google.com", "protocol": "TCP", "port": 443, "recv": 61.0, "sent": 138.0, "numFlows": 5, "activeSeconds": 240 } ] } }, "headers": { "Link": { "schema": { "type": "string" }, "description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests." } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "clientId", "in": "path", "description": "Client ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "received": { "type": "number", "format": "float", "description": "Usage received by the client on a given day" }, "sent": { "type": "number", "format": "float", "description": "Usage sent by the client on a given day" }, "ts": { "type": "string", "format": "date-time", "description": "The day's timestamp" } } } }, "example": [ { "received": 61.0, "sent": 138.0, "ts": "2018-02-11T00:00:00.090210Z" } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "Return the client's daily usage history", "tags": [ "networks", "monitor", "clients", "usageHistory" ] } }, "/networks/{networkId}/devices": { "get": { "deprecated": true, "description": "List the devices in a network", "operationId": "getNetworkDevices", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the device" }, "lat": { "type": "number", "format": "float", "description": "Latitude of the device" }, "lng": { "type": "number", "format": "float", "description": "Longitude of the device" }, "address": { "type": "string", "description": "Physical address of the device" }, "notes": { "type": "string", "description": "Notes for the device, limited to 255 characters" }, "tags": { "type": "array", "items": { "type": "string" }, "description": "List of tags assigned to the device" }, "networkId": { "type": "string", "description": "ID of the network the device belongs to" }, "serial": { "type": "string", "description": "Serial number of the device" }, "model": { "type": "string", "description": "Model of the device" }, "mac": { "type": "string", "description": "MAC address of the device" }, "lanIp": { "type": "string", "description": "LAN IP address of the device" }, "firmware": { "type": "string", "description": "Firmware version of the device" }, "floorPlanId": { "type": "string", "description": "The floor plan to associate to this device. null disassociates the device from the floorplan.", "nullable": true }, "url": { "type": "string", "description": "URL link to the device in the Meraki Dashboard" }, "details": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Additional property name" }, "value": { "type": "string", "description": "Additional property value" } } }, "description": "Additional device information" }, "beaconIdParams": { "type": "object", "properties": { "uuid": { "type": "string", "description": "The UUID to be used in the beacon identifier" }, "major": { "type": "integer", "description": "The major number to be used in the beacon identifier" }, "minor": { "type": "integer", "description": "The minor number to be used in the beacon identifier" } }, "description": "Beacon Id parameters with an identifier and major and minor versions" } } } }, "example": [ { "name": "My AP", "lat": 37.4180951010362, "lng": -122.098531723022, "address": "1600 Pennsylvania Ave", "notes": "My AP's note", "tags": [ " recently-added " ], "networkId": "N_24329156", "serial": "Q234-ABCD-5678", "model": "MR34", "mac": "00:11:22:33:44:55", "lanIp": "1.2.3.4", "firmware": "wireless-25-14", "floorPlanId": "g_2176982374", "url": "https://n1.meraki.com/MyOrg/n/XXXXXX/manage/nodes/new_list/1", "details": [ { "name": "Catalyst serial", "value": "123ABC" } ], "beaconIdParams": { "uuid": "00000000-0000-0000-0000-000000000000", "major": 5, "minor": 3 } } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "List the devices in a network", "tags": [ "networks", "configure", "devices" ], "x-deprecation-notice": "Deprecated: This operation has been marked as deprecated. For more information, visit the deprecated operations page" } }, "/networks/{networkId}/devices/claim": { "post": { "description": "Claim devices into a network. (Note: for recently claimed devices, it may take a few minutes for API requests against that device to succeed). This operation can be used up to ten times within a single five minute window.", "operationId": "claimNetworkDevices", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "addAtomically", "in": "query", "description": "Whether to claim devices atomically. If true, all devices will be claimed or none will be claimed. Default is true.", "schema": { "type": "boolean" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "serials": { "type": "array", "items": { "type": "string" }, "description": "A list of serials of devices to claim" }, "detailsByDevice": { "type": "array", "items": { "type": "object", "properties": { "serial": { "type": "string", "description": "The serial of the device these details relate to" }, "details": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of device detail" }, "value": { "type": "string", "description": "Value of device detail" } }, "required": [ "name" ] }, "description": "An array of details. Supported list\n of details includes: \"device mode\", \"username\", \"password\", \"enable password\", \"ap mapping type\" and\n \"ap network id\". For onboarding into hybrid mode, the value of the device mode detail must be \"monitored\"" } }, "required": [ "serial", "details" ] }, "x-release-stage": "general_availability", "description": "Optional details for claimed devices (currently only used for Catalyst devices)" } }, "example": { "serials": [ "Q234-ABCD-0001", "Q234-ABCD-0002", "Q234-ABCD-0003" ], "detailsByDevice": [ { "serial": "Q234-ABCD-5678", "details": [ { "name": "username", "value": "milesmeraki" } ] } ], "addAtomically": true }, "required": [ "serials" ] } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "serials": { "type": "array", "items": { "type": "string" }, "description": "The serials of the devices" }, "errors": { "type": "array", "items": { "type": "object", "properties": { "serial": { "type": "string", "description": "The serial of the device" }, "errors": { "type": "array", "items": { "type": "string" }, "description": "The errors for the device" } }, "required": [ "serial", "errors" ] }, "description": "Errors for devices that were not added" } } }, "example": { "serials": [ "Q234-ABCD-0001", "Q234-ABCD-0002", "Q234-ABCD-0003" ], "errors": [ { "serial": "Q234-ABCD-5678", "errors": [ "Device already claimed" ] } ] } } } } }, "security": [ { "oauth2": [ "dashboard:licensing:config:write" ] } ], "summary": "Claim devices into a network. (Note: for recently claimed devices, it may take a few minutes for API requests 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", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "size": { "type": "string", "enum": [ "100", "large", "medium", "small", "xlarge" ], "description": "The size of the vMX you claim. It can be one of: small, medium, large, xlarge, 100" } }, "example": { "size": "small" }, "required": [ "size" ] } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the device" }, "lat": { "type": "number", "format": "float", "description": "Latitude of the device" }, "lng": { "type": "number", "format": "float", "description": "Longitude of the device" }, "address": { "type": "string", "description": "Physical address of the device" }, "notes": { "type": "string", "description": "Notes for the device, limited to 255 characters" }, "tags": { "type": "array", "items": { "type": "string" }, "description": "List of tags assigned to the device" }, "networkId": { "type": "string", "description": "ID of the network the device belongs to" }, "serial": { "type": "string", "description": "Serial number of the device" }, "model": { "type": "string", "description": "Model of the device" }, "imei": { "type": "string", "description": "IMEI of the device, if applicable" }, "mac": { "type": "string", "description": "MAC address of the device" }, "lanIp": { "type": "string", "description": "LAN IP address of the device" }, "firmware": { "type": "string", "description": "Firmware version of the device" }, "productType": { "type": "string", "description": "Product type of the device" }, "details": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Additional property name" }, "value": { "type": "string", "description": "Additional property value" } } }, "description": "Additional device information" } } }, "example": { "name": "My AP", "lat": 37.4180951010362, "lng": -122.098531723022, "address": "1600 Pennsylvania Ave", "notes": "My AP's note", "tags": [ "recently-added" ], "networkId": "N_24329156", "serial": "Q234-ABCD-5678", "model": "MR34", "imei": "123456789000000", "mac": "00:11:22:33:44:55", "lanIp": "1.2.3.4", "firmware": "wireless-25-14", "productType": "wireless", "details": [ { "name": "Catalyst serial", "value": "123ABC" } ] } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "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" } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Remove a single device", "tags": [ "networks", "configure", "devices" ] } }, "/networks/{networkId}/devices/syslog/servers": { "put": { "description": "Updates the syslog servers configuration for a network.", "operationId": "updateNetworkDevicesSyslogServers", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "servers": { "type": "array", "items": { "type": "object", "properties": { "host": { "type": "string", "description": "The IP address or FQDN of the syslog server" }, "port": { "type": "integer", "description": "The port of the syslog server" }, "roles": { "type": "array", "items": { "type": "string" }, "description": "A list of roles for the syslog server, specific to Product Type. Options can be found by querying GET api/v1/organizations/:id/devices/syslog/servers/roles/byNetwork and using the value property. Maximum array size is limited by the number of unique roles, which is about 10" }, "transportProtocol": { "type": "string", "enum": [ "TCP", "UDP" ], "description": "The transport protocol for the syslog server, defaults to UDP" }, "encryption": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "When true, traffic will be encrypted to the syslog server. Defaults to false" }, "certificate": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the certificate for encryption with the syslog server" } }, "description": "The certificate for encryption with the syslog server" } }, "description": "Encryption settings for the syslog server" } }, "required": [ "host", "port", "roles" ] }, "description": "A list of the syslog servers for this network; suggested maximum array size is 10" } }, "example": { "servers": [ { "host": "1.2.3.4", "port": 443, "roles": [ "wirelessEventLog", "applianceUrlLog" ], "transportProtocol": "UDP", "encryption": { "enabled": true, "certificate": { "id": "1637" } } } ] }, "required": [ "servers" ] } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "network": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the network" } }, "required": [ "id" ], "description": "Contains details about the Network associated with this record" }, "servers": { "type": "array", "items": { "type": "object", "properties": { "host": { "type": "string", "description": "The IP address or FQDN of the syslog server" }, "port": { "type": "integer", "description": "The port of the syslog server" }, "roles": { "type": "array", "items": { "type": "string" }, "description": "A list of roles for the syslog server, specific to Product Type. Options can be found by querying GET api/v1/organizations/:id/devices/syslog/servers/roles/byNetwork and using the value property. Maximum array size is limited by the number of unique roles, which is about 10" }, "transportProtocol": { "type": "string", "enum": [ "TCP", "UDP" ], "description": "The transport protocol for the syslog server" }, "encryption": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "When true, traffic will be encrypted to the syslog server" }, "certificate": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the certificate for encryption with the syslog server" } }, "description": "The certificate for encryption with the syslog server" } }, "description": "Encryption settings for the syslog server" } } }, "description": "The list of syslog server configurations that are assigned to this network; suggested maximum array size is 10" } }, "required": [ "network", "servers" ] }, "example": { "network": { "id": "N_123456789012345678" }, "servers": [ { "host": "1.2.3.4", "port": 443, "roles": [ "wirelessEventLog", "applianceUrlLog" ], "transportProtocol": "UDP", "encryption": { "enabled": true, "certificate": { "id": "1637" } } } ] } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Updates the syslog servers configuration for a network.", "tags": [ "networks", "configure", "devices", "syslog", "servers" ] } }, "/networks/{networkId}/events": { "get": { "description": "List the events for the network", "operationId": "getNetworkEvents", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "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, cellularGateway, wirelessController, campusGateway, and secureConnect", "schema": { "type": "string", "enum": [ "appliance", "camera", "campusGateway", "cellularGateway", "secureConnect", "switch", "systemsManager", "wireless", "wirelessController" ] } }, { "name": "includedEventTypes", "in": "query", "description": "A list of event types. The returned events will be filtered to only include events with these types.", "schema": { "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.", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "deviceMac", "in": "query", "description": "The MAC address of the Meraki device which the list of events will be filtered with", "schema": { "type": "string" } }, { "name": "deviceSerial", "in": "query", "description": "The serial of the Meraki device which the list of events will be filtered with", "schema": { "type": "string" } }, { "name": "deviceName", "in": "query", "description": "The name of the Meraki device which the list of events will be filtered with", "schema": { "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.", "schema": { "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.", "schema": { "type": "string" } }, { "name": "clientName", "in": "query", "description": "The name, or partial name, of the client which the list of events will be filtered with", "schema": { "type": "string" } }, { "name": "smDeviceMac", "in": "query", "description": "The MAC address of the Systems Manager device which the list of events will be filtered with", "schema": { "type": "string" } }, { "name": "smDeviceName", "in": "query", "description": "The name of the Systems Manager device which the list of events will be filtered with", "schema": { "type": "string" } }, { "name": "eventDetails", "in": "query", "description": "The details of the event(Catalyst device only) which the list of events will be filtered with", "schema": { "type": "string" } }, { "name": "eventSeverity", "in": "query", "description": "The severity of the event(Catalyst device only) which the list of events will be filtered with", "schema": { "type": "string" } }, { "name": "isCatalyst", "in": "query", "description": "Boolean indicating that whether it is a Catalyst device. For Catalyst device, eventDetails and eventSeverity can be used to filter events.", "schema": { "type": "boolean" } }, { "name": "perPage", "in": "query", "description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 10.", "schema": { "type": "integer" } }, { "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.", "schema": { "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.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string", "description": "A message regarding the events sent. Usually 'null' unless there are no events" }, "pageStartAt": { "type": "string", "description": "An UTC ISO8601 string of the earliest occured at time of the listed events of the page." }, "pageEndAt": { "type": "string", "description": "An UTC ISO8601 string of the latest occured at time of the listed events of the page." }, "events": { "type": "array", "items": { "type": "object", "properties": { "occurredAt": { "type": "string", "description": "An UTC ISO8601 string of the time the event occurred at." }, "networkId": { "type": "string", "description": "The ID of the network." }, "type": { "type": "string", "description": "The type of event being listed." }, "description": { "type": "string", "description": "A description of the event the happened." }, "category": { "type": "string", "description": "The category that the event type belongs to" }, "clientId": { "type": "string", "description": "A string identifying the client. This could be a client's MAC or IP address" }, "clientDescription": { "type": "string", "description": "A description of the client. This is usually the client's device name." }, "clientMac": { "type": "string", "description": "The client's MAC address." }, "deviceSerial": { "type": "string", "description": "The serial number of the device. Only shown if the device is an access point." }, "deviceName": { "type": "string", "description": "The name of the device. Only shown if the device is an access point." }, "ssidNumber": { "type": "integer", "description": "The SSID number of the device." }, "eventData": { "type": "object", "properties": { "radio": { "type": "string", "description": "The radio band number the client is trying to connect to." }, "vap": { "type": "string", "description": "The virtual access point (VAP) number the client is connecting to." }, "client_mac": { "type": "string", "description": "The client's MAC address" }, "client_ip": { "type": "string", "description": "The client's IP address" }, "channel": { "type": "string", "description": "The radio channel the client is connecting to." }, "rssi": { "type": "string", "description": "The current received signal strength indication (RSSI) of the client connected to an AP." }, "aid": { "type": "string", "description": "The association ID of the client." } }, "description": "An object containing more data related to the event." } } }, "description": "An array of events that took place in the network." } } }, "example": { "message": "Some error", "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", "category": "80211", "clientId": "k74272e", "clientDescription": "Miles's phone", "clientMac": "22:33:44:55:66:77", "deviceSerial": "Q234-ABCD-5678", "deviceName": "My AP", "ssidNumber": 1, "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" } } ] } } }, "headers": { "Link": { "schema": { "type": "string" }, "description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests." } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "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" } } } }, "example": [ { "category": "802.11", "type": "association", "description": "802.11 association" } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "upgradeWindow": { "type": "object", "properties": { "dayOfWeek": { "type": "string", "enum": [ "fri", "friday", "mon", "monday", "sat", "saturday", "sun", "sunday", "thu", "thursday", "tue", "tuesday", "wed", "wednesday" ], "description": "Day of the week" }, "hourOfDay": { "type": "string", "enum": [ "0:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00", "17:00", "18:00", "19:00", "1:00", "20:00", "21:00", "22:00", "23:00", "2:00", "3:00", "4:00", "5:00", "6:00", "7:00", "8:00", "9: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" }, "predownload": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether or not the network devices will predownload the firmware image in advance of the actual upgrade" } }, "description": "Predownload settings for the 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" }, "isUpgradeAvailable": { "type": "boolean", "description": "Whether or not an upgraded recommended firmware version is available" }, "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" }, "isUpgradeAvailable": { "type": "boolean", "description": "Whether or not an upgraded recommended firmware version is available" }, "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" }, "isUpgradeAvailable": { "type": "boolean", "description": "Whether or not an upgraded recommended firmware version is available" }, "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" }, "isUpgradeAvailable": { "type": "boolean", "description": "Whether or not an upgraded recommended firmware version is available" }, "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" }, "isUpgradeAvailable": { "type": "boolean", "description": "Whether or not an upgraded recommended firmware version is available" }, "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" }, "isUpgradeAvailable": { "type": "boolean", "description": "Whether or not an upgraded recommended firmware version is available" }, "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" }, "wirelessController": { "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" }, "isUpgradeAvailable": { "type": "boolean", "description": "Whether or not an upgraded recommended firmware version is available" }, "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" }, "secureConnect": { "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" }, "isUpgradeAvailable": { "type": "boolean", "description": "Whether or not an upgraded recommended firmware version is available" }, "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" } } }, "example": { "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", "predownload": { "enabled": false }, "toVersion": { "id": "2134", "firmware": "camera-15-5-2", "shortName": "MV 25.5.2", "releaseType": "stable", "releaseDate": "2021-05-28T17:22:52Z" } }, "isUpgradeAvailable": false, "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" } }, "isUpgradeAvailable": false, "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" } }, "isUpgradeAvailable": false, "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" } }, "isUpgradeAvailable": false, "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" } }, "isUpgradeAvailable": false, "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" } }, "isUpgradeAvailable": false, "availableVersions": [ { "id": "3421", "firmware": "camera-16-x-y", "shortName": "MV 16.x.y", "releaseType": "beta", "releaseDate": "2020-11-28T17:22:52Z" } ], "participateInNextBetaRelease": false }, "wirelessController": { "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" } }, "isUpgradeAvailable": false, "availableVersions": [ { "id": "3421", "firmware": "camera-16-x-y", "shortName": "MV 16.x.y", "releaseType": "beta", "releaseDate": "2020-11-28T17:22:52Z" } ], "participateInNextBetaRelease": false }, "secureConnect": { "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" } }, "isUpgradeAvailable": false, "availableVersions": [ { "id": "3421", "firmware": "camera-16-x-y", "shortName": "MV 16.x.y", "releaseType": "beta", "releaseDate": "2020-11-28T17:22:52Z" } ], "participateInNextBetaRelease": false } } } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "upgradeWindow": { "type": "object", "properties": { "dayOfWeek": { "type": "string", "enum": [ "fri", "friday", "mon", "monday", "sat", "saturday", "sun", "sunday", "thu", "thursday", "tue", "tuesday", "wed", "wednesday" ], "description": "Day of the week" }, "hourOfDay": { "type": "string", "enum": [ "0:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00", "17:00", "18:00", "19:00", "1:00", "20:00", "21:00", "22:00", "23:00", "2:00", "3:00", "4:00", "5:00", "6:00", "7:00", "8:00", "9: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": { "predownload": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether or not the network devices will predownload the firmware image in advance of the actual upgrade" } }, "description": "Predownload settings for the firmware upgrade" }, "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" }, "wirelessController": { "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" }, "secureConnect": { "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" }, "switchCatalyst": { "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": { "predownload": { "enabled": false }, "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 }, "wirelessController": { "nextUpgrade": { "time": "2019-03-17T17:22:52Z", "toVersion": { "id": "1006" } }, "participateInNextBetaRelease": false }, "secureConnect": { "nextUpgrade": { "time": "2019-03-17T17:22:52Z", "toVersion": { "id": "1008" } }, "participateInNextBetaRelease": false }, "switchCatalyst": { "nextUpgrade": { "time": "2019-03-17T17:22:52Z", "toVersion": { "id": "1234" } }, "participateInNextBetaRelease": false } } } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "upgradeWindow": { "type": "object", "properties": { "dayOfWeek": { "type": "string", "enum": [ "fri", "friday", "mon", "monday", "sat", "saturday", "sun", "sunday", "thu", "thursday", "tue", "tuesday", "wed", "wednesday" ], "description": "Day of the week" }, "hourOfDay": { "type": "string", "enum": [ "0:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00", "17:00", "18:00", "19:00", "1:00", "20:00", "21:00", "22:00", "23:00", "2:00", "3:00", "4:00", "5:00", "6:00", "7:00", "8:00", "9: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" }, "predownload": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether or not the network devices will predownload the firmware image in advance of the actual upgrade" } }, "description": "Predownload settings for the 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" }, "isUpgradeAvailable": { "type": "boolean", "description": "Whether or not an upgraded recommended firmware version is available" }, "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" }, "isUpgradeAvailable": { "type": "boolean", "description": "Whether or not an upgraded recommended firmware version is available" }, "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" }, "isUpgradeAvailable": { "type": "boolean", "description": "Whether or not an upgraded recommended firmware version is available" }, "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" }, "isUpgradeAvailable": { "type": "boolean", "description": "Whether or not an upgraded recommended firmware version is available" }, "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" }, "isUpgradeAvailable": { "type": "boolean", "description": "Whether or not an upgraded recommended firmware version is available" }, "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" }, "isUpgradeAvailable": { "type": "boolean", "description": "Whether or not an upgraded recommended firmware version is available" }, "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" }, "wirelessController": { "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" }, "isUpgradeAvailable": { "type": "boolean", "description": "Whether or not an upgraded recommended firmware version is available" }, "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" }, "secureConnect": { "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" }, "isUpgradeAvailable": { "type": "boolean", "description": "Whether or not an upgraded recommended firmware version is available" }, "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" } } }, "example": { "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", "predownload": { "enabled": false }, "toVersion": { "id": "2134", "firmware": "camera-15-5-2", "shortName": "MV 25.5.2", "releaseType": "stable", "releaseDate": "2021-05-28T17:22:52Z" } }, "isUpgradeAvailable": false, "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" } }, "isUpgradeAvailable": false, "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" } }, "isUpgradeAvailable": false, "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" } }, "isUpgradeAvailable": false, "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" } }, "isUpgradeAvailable": false, "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" } }, "isUpgradeAvailable": false, "availableVersions": [ { "id": "3421", "firmware": "camera-16-x-y", "shortName": "MV 16.x.y", "releaseType": "beta", "releaseDate": "2020-11-28T17:22:52Z" } ], "participateInNextBetaRelease": false }, "wirelessController": { "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" } }, "isUpgradeAvailable": false, "availableVersions": [ { "id": "3421", "firmware": "camera-16-x-y", "shortName": "MV 16.x.y", "releaseType": "beta", "releaseDate": "2020-11-28T17:22:52Z" } ], "participateInNextBetaRelease": false }, "secureConnect": { "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" } }, "isUpgradeAvailable": false, "availableVersions": [ { "id": "3421", "firmware": "camera-16-x-y", "shortName": "MV 16.x.y", "releaseType": "beta", "releaseDate": "2020-11-28T17:22:52Z" } ], "participateInNextBetaRelease": false } } } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "product": { "type": "string", "enum": [ "appliance", "camera", "cellularGateway", "secureConnect", "switch", "switchCatalyst", "wireless", "wirelessController" ], "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": [ "broke old features", "other", "performance", "stability", "testing", "unifying networks versions" ], "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)" }, "predownload": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether or not the network devices will predownload the firmware image in advance of the actual upgrade. Only applies to wireless devices running MR 32 or higher." } }, "description": "Predownload settings for the firmware upgrade" } }, "example": { "product": "switch", "time": "2020-10-21T02:00:00Z", "reasons": [ { "category": "performance", "comment": "Network was slower with the upgrade" } ], "toVersion": { "id": "7857" }, "predownload": { "enabled": false } }, "required": [ "reasons" ] } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "product": { "type": "string", "enum": [ "appliance", "camera", "cellularGateway", "secureConnect", "switch", "switchCatalyst", "wireless", "wirelessController" ], "description": "Product type to rollback (if the network is a combined network)" }, "status": { "type": "string", "enum": [ "canceled", "completed", "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": [ "broke old features", "other", "performance", "stability", "testing", "unifying networks versions" ], "description": "Reason for the rollback" }, "comment": { "type": "string", "description": "Additional comment about the rollback" } } }, "description": "Reasons for the rollback" }, "predownload": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether or not the network devices will predownload the firmware image in advance of the actual upgrade. Only applies to wireless devices running MR 32 or higher." } }, "description": "Predownload settings for the firmware upgrade" } } }, "example": { "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" } ], "predownload": { "enabled": false } } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "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", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "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" } }, "description": "Details of the version the device will upgrade to" } }, "description": "Details of the next firmware upgrade" } }, "description": "The Switch network to be updated" } }, "description": "The network devices to be updated" }, "stages": { "type": "array", "items": { "type": "object", "properties": { "group": { "type": "object", "properties": { "id": { "type": "string", "description": "Id of the Staged Upgrade Group" }, "name": { "type": "string", "description": "Name of the Staged Upgrade Group" }, "description": { "type": "string", "description": "Description of the Staged Upgrade Group" } }, "description": "The staged upgrade group" }, "milestones": { "type": "object", "properties": { "scheduledFor": { "type": "string", "format": "date-time", "description": "Scheduled start time for the group" }, "startedAt": { "type": "string", "format": "date-time", "description": "Start time for the group" }, "completedAt": { "type": "string", "format": "date-time", "description": "Finish time for the group" }, "canceledAt": { "type": "string", "format": "date-time", "description": "Time that the group was canceled" } }, "description": "The Staged Upgrade Milestones for the stage" }, "status": { "type": "string", "description": "Current upgrade status of the group" } } }, "description": "The ordered stages in the network" }, "reasons": { "type": "array", "items": { "type": "object", "properties": { "category": { "type": "string", "enum": [ "broke old features", "other", "performance", "stability", "testing", "unifying networks versions" ], "description": "Reason for the rollback" }, "comment": { "type": "string", "description": "Additional comment about the rollback" } } }, "description": "Reasons for the rollback" } } }, "example": { "products": { "switch": { "nextUpgrade": { "toVersion": { "id": "1234", "shortName": "MS 15.2.1" } } } }, "stages": [ { "group": { "id": "1234", "name": "My Staged Upgrade Group", "description": "My Staged Upgrade Group Description" }, "milestones": { "scheduledFor": "2018-02-11T00:00:00Z", "startedAt": "2018-02-11T00:00:00Z", "completedAt": "2018-02-11T00:00:00Z", "canceledAt": "2018-02-11T00:00:00Z" }, "status": "Completed" } ], "reasons": [ { "category": "performance", "comment": "Network was slower with the upgrade" } ] } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "Get the Staged Upgrade Event from a network", "tags": [ "networks", "configure", "firmwareUpgrades", "staged", "events" ] }, "post": { "description": "Create a Staged Upgrade Event for a network", "operationId": "createNetworkFirmwareUpgradesStagedEvent", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "products": { "type": "object", "properties": { "switch": { "type": "object", "properties": { "nextUpgrade": { "type": "object", "properties": { "toVersion": { "type": "object", "properties": { "id": { "type": "string", "description": "The version ID" } }, "required": [ "id" ], "description": "The version to be updated to for switch devices" } }, "description": "The next upgrade version for the switch network" } }, "description": "Version information for the switch network being upgraded" }, "switchCatalyst": { "type": "object", "properties": { "nextUpgrade": { "type": "object", "properties": { "toVersion": { "type": "object", "properties": { "id": { "type": "string", "description": "The version ID" } }, "required": [ "id" ], "description": "The version to be updated to for switch Catalyst devices" } }, "description": "The next upgrade version for the switch network" } }, "description": "Version information for the switch network being upgraded" } }, "description": "Contains firmware upgrade version information" }, "stages": { "type": "array", "items": { "type": "object", "properties": { "group": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the Staged Upgrade Group" } }, "required": [ "id" ], "description": "The Staged Upgrade Group containing the name and ID" }, "milestones": { "type": "object", "properties": { "scheduledFor": { "type": "string", "description": "The start time of the staged upgrade stage. (In ISO-8601 format, in the time zone of the network.)" } }, "required": [ "scheduledFor" ], "description": "The Staged Upgrade Milestones for the specific stage" } } }, "description": "All firmware upgrade stages in the network with their start time." } }, "example": { "products": { "switch": { "nextUpgrade": { "toVersion": { "id": "1234" } } }, "switchCatalyst": { "nextUpgrade": { "toVersion": { "id": "4321" } } } }, "stages": [ { "group": { "id": "1234" }, "milestones": { "scheduledFor": "2018-02-11T00:00:00Z" } } ] }, "required": [ "stages" ] } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "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" } }, "description": "Details of the version the device will upgrade to" } }, "description": "Details of the next firmware upgrade" } }, "description": "The Switch network to be updated" } }, "description": "The network devices to be updated" }, "stages": { "type": "array", "items": { "type": "object", "properties": { "group": { "type": "object", "properties": { "id": { "type": "string", "description": "Id of the Staged Upgrade Group" }, "name": { "type": "string", "description": "Name of the Staged Upgrade Group" }, "description": { "type": "string", "description": "Description of the Staged Upgrade Group" } }, "description": "The staged upgrade group" }, "milestones": { "type": "object", "properties": { "scheduledFor": { "type": "string", "format": "date-time", "description": "Scheduled start time for the group" }, "startedAt": { "type": "string", "format": "date-time", "description": "Start time for the group" }, "completedAt": { "type": "string", "format": "date-time", "description": "Finish time for the group" }, "canceledAt": { "type": "string", "format": "date-time", "description": "Time that the group was canceled" } }, "description": "The Staged Upgrade Milestones for the stage" }, "status": { "type": "string", "description": "Current upgrade status of the group" } } }, "description": "The ordered stages in the network" }, "reasons": { "type": "array", "items": { "type": "object", "properties": { "category": { "type": "string", "enum": [ "broke old features", "other", "performance", "stability", "testing", "unifying networks versions" ], "description": "Reason for the rollback" }, "comment": { "type": "string", "description": "Additional comment about the rollback" } } }, "description": "Reasons for the rollback" } } }, "example": { "products": { "switch": { "nextUpgrade": { "toVersion": { "id": "1234", "shortName": "MS 15.2.1" } } } }, "stages": [ { "group": { "id": "1234", "name": "My Staged Upgrade Group", "description": "My Staged Upgrade Group Description" }, "milestones": { "scheduledFor": "2018-02-11T00:00:00Z", "startedAt": "2018-02-11T00:00:00Z", "completedAt": "2018-02-11T00:00:00Z", "canceledAt": "2018-02-11T00:00:00Z" }, "status": "Completed" } ], "reasons": [ { "category": "performance", "comment": "Network was slower with the upgrade" } ] } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Create a Staged Upgrade Event for a network", "tags": [ "networks", "configure", "firmwareUpgrades", "staged", "events" ] }, "put": { "description": "Update the Staged Upgrade Event for a network", "operationId": "updateNetworkFirmwareUpgradesStagedEvents", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "stages": { "type": "array", "items": { "type": "object", "properties": { "group": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the Staged Upgrade Group" } }, "required": [ "id" ], "description": "The Staged Upgrade Group containing the name and ID" }, "milestones": { "type": "object", "properties": { "scheduledFor": { "type": "string", "description": "The start time of the staged upgrade stage. (In ISO-8601 format, in the time zone of the network.)" } }, "required": [ "scheduledFor" ], "description": "The Staged Upgrade Milestones for the specific stage" } } }, "description": "All firmware upgrade stages in the network with their start time." } }, "example": { "stages": [ { "group": { "id": "1234" }, "milestones": { "scheduledFor": "2018-02-11T00:00:00Z" } } ] }, "required": [ "stages" ] } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "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" } }, "description": "Details of the version the device will upgrade to" } }, "description": "Details of the next firmware upgrade" } }, "description": "The Switch network to be updated" } }, "description": "The network devices to be updated" }, "stages": { "type": "array", "items": { "type": "object", "properties": { "group": { "type": "object", "properties": { "id": { "type": "string", "description": "Id of the Staged Upgrade Group" }, "name": { "type": "string", "description": "Name of the Staged Upgrade Group" }, "description": { "type": "string", "description": "Description of the Staged Upgrade Group" } }, "description": "The staged upgrade group" }, "milestones": { "type": "object", "properties": { "scheduledFor": { "type": "string", "format": "date-time", "description": "Scheduled start time for the group" }, "startedAt": { "type": "string", "format": "date-time", "description": "Start time for the group" }, "completedAt": { "type": "string", "format": "date-time", "description": "Finish time for the group" }, "canceledAt": { "type": "string", "format": "date-time", "description": "Time that the group was canceled" } }, "description": "The Staged Upgrade Milestones for the stage" }, "status": { "type": "string", "description": "Current upgrade status of the group" } } }, "description": "The ordered stages in the network" }, "reasons": { "type": "array", "items": { "type": "object", "properties": { "category": { "type": "string", "enum": [ "broke old features", "other", "performance", "stability", "testing", "unifying networks versions" ], "description": "Reason for the rollback" }, "comment": { "type": "string", "description": "Additional comment about the rollback" } } }, "description": "Reasons for the rollback" } } }, "example": { "products": { "switch": { "nextUpgrade": { "toVersion": { "id": "1234", "shortName": "MS 15.2.1" } } } }, "stages": [ { "group": { "id": "1234", "name": "My Staged Upgrade Group", "description": "My Staged Upgrade Group Description" }, "milestones": { "scheduledFor": "2018-02-11T00:00:00Z", "startedAt": "2018-02-11T00:00:00Z", "completedAt": "2018-02-11T00:00:00Z", "canceledAt": "2018-02-11T00:00:00Z" }, "status": "Completed" } ], "reasons": [ { "category": "performance", "comment": "Network was slower with the upgrade" } ] } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Update the Staged Upgrade Event for a network", "tags": [ "networks", "configure", "firmwareUpgrades", "staged", "events" ] } }, "/networks/{networkId}/firmwareUpgrades/staged/events/defer": { "post": { "description": "Postpone by 1 week all pending staged upgrade stages for a network", "operationId": "deferNetworkFirmwareUpgradesStagedEvents", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "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" } }, "description": "Details of the version the device will upgrade to" } }, "description": "Details of the next firmware upgrade" } }, "description": "The Switch network to be updated" } }, "description": "The network devices to be updated" }, "stages": { "type": "array", "items": { "type": "object", "properties": { "group": { "type": "object", "properties": { "id": { "type": "string", "description": "Id of the Staged Upgrade Group" }, "name": { "type": "string", "description": "Name of the Staged Upgrade Group" }, "description": { "type": "string", "description": "Description of the Staged Upgrade Group" } }, "description": "The staged upgrade group" }, "milestones": { "type": "object", "properties": { "scheduledFor": { "type": "string", "format": "date-time", "description": "Scheduled start time for the group" }, "startedAt": { "type": "string", "format": "date-time", "description": "Start time for the group" }, "completedAt": { "type": "string", "format": "date-time", "description": "Finish time for the group" }, "canceledAt": { "type": "string", "format": "date-time", "description": "Time that the group was canceled" } }, "description": "The Staged Upgrade Milestones for the stage" }, "status": { "type": "string", "description": "Current upgrade status of the group" } } }, "description": "The ordered stages in the network" }, "reasons": { "type": "array", "items": { "type": "object", "properties": { "category": { "type": "string", "enum": [ "broke old features", "other", "performance", "stability", "testing", "unifying networks versions" ], "description": "Reason for the rollback" }, "comment": { "type": "string", "description": "Additional comment about the rollback" } } }, "description": "Reasons for the rollback" } } }, "example": { "products": { "switch": { "nextUpgrade": { "toVersion": { "id": "1234", "shortName": "MS 15.2.1" } } } }, "stages": [ { "group": { "id": "1234", "name": "My Staged Upgrade Group", "description": "My Staged Upgrade Group Description" }, "milestones": { "scheduledFor": "2018-02-11T00:00:00Z", "startedAt": "2018-02-11T00:00:00Z", "completedAt": "2018-02-11T00:00:00Z", "canceledAt": "2018-02-11T00:00:00Z" }, "status": "Completed" } ], "reasons": [ { "category": "performance", "comment": "Network was slower with the upgrade" } ] } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Postpone by 1 week all pending staged upgrade stages for a network", "tags": [ "networks", "configure", "firmwareUpgrades", "staged", "events" ] } }, "/networks/{networkId}/firmwareUpgrades/staged/events/rollbacks": { "post": { "description": "Rollback a Staged Upgrade Event for a network", "operationId": "rollbacksNetworkFirmwareUpgradesStagedEvents", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "stages": { "type": "array", "items": { "type": "object", "properties": { "group": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the Staged Upgrade Group" } }, "required": [ "id" ], "description": "The Staged Upgrade Group containing the name and ID" }, "milestones": { "type": "object", "properties": { "scheduledFor": { "type": "string", "description": "The start time of the staged upgrade stage. (In ISO-8601 format, in the time zone of the network.)" } }, "required": [ "scheduledFor" ], "description": "The Staged Upgrade Milestones for the specific stage" } } }, "description": "All completed or in-progress stages in the network with their new start times. All pending stages will be canceled" }, "reasons": { "type": "array", "items": { "type": "object", "properties": { "category": { "type": "string", "enum": [ "broke old features", "other", "performance", "stability", "testing", "unifying networks versions" ], "description": "Reason for the rollback" }, "comment": { "type": "string", "description": "Additional comment about the rollback" } }, "required": [ "category", "comment" ] }, "description": "The reason for rolling back the staged upgrade" } }, "example": { "stages": [ { "group": { "id": "1234" }, "milestones": { "scheduledFor": "2018-02-11T00:00:00Z" } } ], "reasons": [ { "category": "performance", "comment": "Network was slower with the upgrade" } ] }, "required": [ "stages" ] } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "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" } }, "description": "Details of the version the device will upgrade to" } }, "description": "Details of the next firmware upgrade" } }, "description": "The Switch network to be updated" } }, "description": "The network devices to be updated" }, "stages": { "type": "array", "items": { "type": "object", "properties": { "group": { "type": "object", "properties": { "id": { "type": "string", "description": "Id of the Staged Upgrade Group" }, "name": { "type": "string", "description": "Name of the Staged Upgrade Group" }, "description": { "type": "string", "description": "Description of the Staged Upgrade Group" } }, "description": "The staged upgrade group" }, "milestones": { "type": "object", "properties": { "scheduledFor": { "type": "string", "format": "date-time", "description": "Scheduled start time for the group" }, "startedAt": { "type": "string", "format": "date-time", "description": "Start time for the group" }, "completedAt": { "type": "string", "format": "date-time", "description": "Finish time for the group" }, "canceledAt": { "type": "string", "format": "date-time", "description": "Time that the group was canceled" } }, "description": "The Staged Upgrade Milestones for the stage" }, "status": { "type": "string", "description": "Current upgrade status of the group" } } }, "description": "The ordered stages in the network" }, "reasons": { "type": "array", "items": { "type": "object", "properties": { "category": { "type": "string", "enum": [ "broke old features", "other", "performance", "stability", "testing", "unifying networks versions" ], "description": "Reason for the rollback" }, "comment": { "type": "string", "description": "Additional comment about the rollback" } } }, "description": "Reasons for the rollback" } } }, "example": { "products": { "switch": { "nextUpgrade": { "toVersion": { "id": "1234", "shortName": "MS 15.2.1" } } } }, "stages": [ { "group": { "id": "1234", "name": "My Staged Upgrade Group", "description": "My Staged Upgrade Group Description" }, "milestones": { "scheduledFor": "2018-02-11T00:00:00Z", "startedAt": "2018-02-11T00:00:00Z", "completedAt": "2018-02-11T00:00:00Z", "canceledAt": "2018-02-11T00:00:00Z" }, "status": "Completed" } ], "reasons": [ { "category": "performance", "comment": "Network was slower with the upgrade" } ] } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Rollback a Staged Upgrade Event for a network", "tags": [ "networks", "configure", "firmwareUpgrades", "staged", "events" ] } }, "/networks/{networkId}/firmwareUpgrades/staged/groups": { "get": { "description": "List of Staged Upgrade Groups in a network", "operationId": "getNetworkFirmwareUpgradesStagedGroups", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "groupId": { "type": "string", "description": "Id of staged upgrade group" }, "name": { "type": "string", "description": "Name of the Staged Upgrade Group" }, "description": { "type": "string", "description": "Description of the Staged Upgrade Group" }, "isDefault": { "type": "boolean", "description": "Boolean indicating the default Group. Any device that does not have a group explicitly assigned will upgrade with this group" }, "assignedDevices": { "type": "object", "properties": { "devices": { "type": "array", "items": { "type": "object", "properties": { "serial": { "type": "string", "description": "Serial of the device" }, "name": { "type": "string", "description": "Name of the device" } } }, "description": "Data Array of Devices containing the name and serial" }, "switchStacks": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the Switch Stack" }, "name": { "type": "string", "description": "Name of the Switch Stack" } } }, "description": "Data Array of Switch Stacks containing the name and id" } }, "description": "The devices and Switch Stacks assigned to the Group" } } } }, "example": [ { "groupId": "1234", "name": "My Staged Upgrade Group", "description": "The description of the group", "isDefault": false, "assignedDevices": { "devices": [ { "serial": "Q234-ABCD-5678", "name": "Device Name" } ], "switchStacks": [ { "id": "1234", "name": "Stack Name" } ] } } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "List of Staged Upgrade Groups in a network", "tags": [ "networks", "configure", "firmwareUpgrades", "staged", "groups" ] }, "post": { "description": "Create a Staged Upgrade Group for a network", "operationId": "createNetworkFirmwareUpgradesStagedGroup", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the Staged Upgrade Group. Length must be 1 to 255 characters" }, "description": { "type": "string", "description": "Description of the Staged Upgrade Group. Length must be 1 to 255 characters" }, "isDefault": { "type": "boolean", "description": "Boolean indicating the default Group. Any device that does not have a group explicitly assigned will upgrade with this group" }, "assignedDevices": { "type": "object", "properties": { "devices": { "type": "array", "items": { "type": "object", "properties": { "serial": { "type": "string", "description": "Serial of the device" }, "name": { "type": "string", "description": "Name of the device" } }, "required": [ "serial" ] }, "description": "Data Array of Devices containing the name and serial" }, "switchStacks": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the Switch Stack" }, "name": { "type": "string", "description": "Name of the Switch Stack" } }, "required": [ "id" ] }, "description": "Data Array of Switch Stacks containing the name and id" } }, "description": "The devices and Switch Stacks assigned to the Group" } }, "example": { "name": "My Staged Upgrade Group", "description": "The description of the group", "isDefault": false, "assignedDevices": { "devices": [ { "serial": "Q234-ABCD-5678", "name": "Device Name" } ], "switchStacks": [ { "id": "1234", "name": "Stack Name" } ] } }, "required": [ "name", "isDefault" ] } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "groupId": { "type": "string", "description": "Id of staged upgrade group" }, "name": { "type": "string", "description": "Name of the Staged Upgrade Group" }, "description": { "type": "string", "description": "Description of the Staged Upgrade Group" }, "isDefault": { "type": "boolean", "description": "Boolean indicating the default Group. Any device that does not have a group explicitly assigned will upgrade with this group" }, "assignedDevices": { "type": "object", "properties": { "devices": { "type": "array", "items": { "type": "object", "properties": { "serial": { "type": "string", "description": "Serial of the device" }, "name": { "type": "string", "description": "Name of the device" } } }, "description": "Data Array of Devices containing the name and serial" }, "switchStacks": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the Switch Stack" }, "name": { "type": "string", "description": "Name of the Switch Stack" } } }, "description": "Data Array of Switch Stacks containing the name and id" } }, "description": "The devices and Switch Stacks assigned to the Group" } } }, "example": { "groupId": "1234", "name": "My Staged Upgrade Group", "description": "The description of the group", "isDefault": false, "assignedDevices": { "devices": [ { "serial": "Q234-ABCD-5678", "name": "Device Name" } ], "switchStacks": [ { "id": "1234", "name": "Stack Name" } ] } } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Create a Staged Upgrade Group for a network", "tags": [ "networks", "configure", "firmwareUpgrades", "staged", "groups" ] } }, "/networks/{networkId}/firmwareUpgrades/staged/groups/{groupId}": { "get": { "description": "Get a Staged Upgrade Group from a network", "operationId": "getNetworkFirmwareUpgradesStagedGroup", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "groupId", "in": "path", "description": "Group ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "groupId": { "type": "string", "description": "Id of staged upgrade group" }, "name": { "type": "string", "description": "Name of the Staged Upgrade Group" }, "description": { "type": "string", "description": "Description of the Staged Upgrade Group" }, "isDefault": { "type": "boolean", "description": "Boolean indicating the default Group. Any device that does not have a group explicitly assigned will upgrade with this group" }, "assignedDevices": { "type": "object", "properties": { "devices": { "type": "array", "items": { "type": "object", "properties": { "serial": { "type": "string", "description": "Serial of the device" }, "name": { "type": "string", "description": "Name of the device" } } }, "description": "Data Array of Devices containing the name and serial" }, "switchStacks": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the Switch Stack" }, "name": { "type": "string", "description": "Name of the Switch Stack" } } }, "description": "Data Array of Switch Stacks containing the name and id" } }, "description": "The devices and Switch Stacks assigned to the Group" } } }, "example": { "groupId": "1234", "name": "My Staged Upgrade Group", "description": "The description of the group", "isDefault": false, "assignedDevices": { "devices": [ { "serial": "Q234-ABCD-5678", "name": "Device Name" } ], "switchStacks": [ { "id": "1234", "name": "Stack Name" } ] } } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "Get a Staged Upgrade Group from a network", "tags": [ "networks", "configure", "firmwareUpgrades", "staged", "groups" ] }, "put": { "description": "Update a Staged Upgrade Group for a network", "operationId": "updateNetworkFirmwareUpgradesStagedGroup", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "groupId", "in": "path", "description": "Group ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the Staged Upgrade Group. Length must be 1 to 255 characters" }, "description": { "type": "string", "description": "Description of the Staged Upgrade Group. Length must be 1 to 255 characters" }, "isDefault": { "type": "boolean", "description": "Boolean indicating the default Group. Any device that does not have a group explicitly assigned will upgrade with this group" }, "assignedDevices": { "type": "object", "properties": { "devices": { "type": "array", "items": { "type": "object", "properties": { "serial": { "type": "string", "description": "Serial of the device" }, "name": { "type": "string", "description": "Name of the device" } }, "required": [ "serial" ] }, "description": "Data Array of Devices containing the name and serial" }, "switchStacks": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the Switch Stack" }, "name": { "type": "string", "description": "Name of the Switch Stack" } }, "required": [ "id" ] }, "description": "Data Array of Switch Stacks containing the name and id" } }, "description": "The devices and Switch Stacks assigned to the Group" } }, "example": { "name": "My Staged Upgrade Group", "description": "The description of the group", "isDefault": false, "assignedDevices": { "devices": [ { "serial": "Q234-ABCD-5678", "name": "Device Name" } ], "switchStacks": [ { "id": "1234", "name": "Stack Name" } ] } }, "required": [ "name", "isDefault" ] } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "groupId": { "type": "string", "description": "Id of staged upgrade group" }, "name": { "type": "string", "description": "Name of the Staged Upgrade Group" }, "description": { "type": "string", "description": "Description of the Staged Upgrade Group" }, "isDefault": { "type": "boolean", "description": "Boolean indicating the default Group. Any device that does not have a group explicitly assigned will upgrade with this group" }, "assignedDevices": { "type": "object", "properties": { "devices": { "type": "array", "items": { "type": "object", "properties": { "serial": { "type": "string", "description": "Serial of the device" }, "name": { "type": "string", "description": "Name of the device" } } }, "description": "Data Array of Devices containing the name and serial" }, "switchStacks": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the Switch Stack" }, "name": { "type": "string", "description": "Name of the Switch Stack" } } }, "description": "Data Array of Switch Stacks containing the name and id" } }, "description": "The devices and Switch Stacks assigned to the Group" } } }, "example": { "groupId": "1234", "name": "My Staged Upgrade Group", "description": "The description of the group", "isDefault": false, "assignedDevices": { "devices": [ { "serial": "Q234-ABCD-5678", "name": "Device Name" } ], "switchStacks": [ { "id": "1234", "name": "Stack Name" } ] } } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Update a Staged Upgrade Group for a network", "tags": [ "networks", "configure", "firmwareUpgrades", "staged", "groups" ] }, "delete": { "description": "Delete a Staged Upgrade Group", "operationId": "deleteNetworkFirmwareUpgradesStagedGroup", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "groupId", "in": "path", "description": "Group ID", "schema": { "type": "string" }, "required": true } ], "responses": { "204": { "description": "Successful operation" } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Delete a Staged Upgrade Group", "tags": [ "networks", "configure", "firmwareUpgrades", "staged", "groups" ] } }, "/networks/{networkId}/firmwareUpgrades/staged/stages": { "get": { "description": "Order of Staged Upgrade Groups in a network", "operationId": "getNetworkFirmwareUpgradesStagedStages", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "group": { "type": "object", "properties": { "id": { "type": "string", "description": "Id of the Staged Upgrade Group" }, "name": { "type": "string", "description": "Name of the Staged Upgrade Group" }, "description": { "type": "string", "description": "Description of the Staged Upgrade Group" } }, "description": "The Staged Upgrade Group" } } } }, "example": [ { "group": { "id": "1234", "name": "My Staged Upgrade Group", "description": "My Staged Upgrade Description" } } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "Order of Staged Upgrade Groups in a network", "tags": [ "networks", "configure", "firmwareUpgrades", "staged", "stages" ] }, "put": { "description": "Assign Staged Upgrade Group order in the sequence.", "operationId": "updateNetworkFirmwareUpgradesStagedStages", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "_json": { "type": "array", "items": { "type": "object", "properties": { "group": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the Staged Upgrade Group" } }, "required": [ "id" ], "description": "The Staged Upgrade Group" } } }, "description": "Array of Staged Upgrade Groups" } }, "example": { "_json": [ { "group": { "id": "1234" } } ] } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "group": { "type": "object", "properties": { "id": { "type": "string", "description": "Id of the Staged Upgrade Group" }, "name": { "type": "string", "description": "Name of the Staged Upgrade Group" }, "description": { "type": "string", "description": "Description of the Staged Upgrade Group" } }, "description": "The Staged Upgrade Group" } } } }, "example": [ { "group": { "id": "1234", "name": "My Staged Upgrade Group", "description": "My Staged Upgrade Description" } } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Assign Staged Upgrade Group order in the sequence.", "tags": [ "networks", "configure", "firmwareUpgrades", "staged", "stages" ] } }, "/networks/{networkId}/floorPlans": { "get": { "description": "List the floor plans that belong to your network", "operationId": "getNetworkFloorPlans", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "floorPlanId": { "type": "string", "description": "Floor plan ID" }, "imageUrl": { "type": "string", "description": "The url link for the floor plan image." }, "imageUrlExpiresAt": { "type": "string", "description": "The time the image url link will expire." }, "imageExtension": { "type": "string", "description": "The format type of the image." }, "imageMd5": { "type": "string", "format": "byte", "description": "The file contents (a base 64 encoded string) of your new image. Supported formats are PNG, GIF, and JPG. Note that all images are saved as PNG files, regardless of the format they are uploaded in. If you upload a new image, and you do NOT specify any new geolocation fields ('center, 'topLeftCorner', etc), the floor plan will be recentered with no rotation in order to maintain the aspect ratio of your new image." }, "name": { "type": "string", "description": "The name of your floor plan." }, "devices": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the device" }, "lat": { "type": "number", "format": "float", "description": "Latitude of the device" }, "lng": { "type": "number", "format": "float", "description": "Longitude of the device" }, "address": { "type": "string", "description": "Physical address of the device" }, "notes": { "type": "string", "description": "Notes for the device, limited to 255 characters" }, "tags": { "type": "array", "items": { "type": "string" }, "description": "List of tags assigned to the device" }, "networkId": { "type": "string", "description": "ID of the network the device belongs to" }, "serial": { "type": "string", "description": "Serial number of the device" }, "model": { "type": "string", "description": "Model of the device" }, "imei": { "type": "string", "description": "IMEI of the device, if applicable" }, "mac": { "type": "string", "description": "MAC address of the device" }, "lanIp": { "type": "string", "description": "LAN IP address of the device" }, "firmware": { "type": "string", "description": "Firmware version of the device" }, "productType": { "type": "string", "description": "Product type of the device" }, "details": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Additional property name" }, "value": { "type": "string", "description": "Additional property value" } } }, "description": "Additional device information" } } }, "description": "List of devices for the floorplan" }, "width": { "type": "number", "format": "float", "description": "The width of your floor plan." }, "height": { "type": "number", "format": "float", "description": "The height of your floor plan." }, "center": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the center of your floor plan. The 'center' or two adjacent corners (e.g. 'topLeftCorner' and 'bottomLeftCorner') must be specified. If 'center' is specified, the floor plan is placed over that point with no rotation. If two adjacent corners are specified, the floor plan is rotated to line up with the two specified points. The aspect ratio of the floor plan's image is preserved regardless of which corners/center are specified. (This means if that more than two corners are specified, only two corners may be used to preserve the floor plan's aspect ratio.). No two points can have the same latitude, longitude pair." }, "bottomLeftCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the bottom left corner of your floor plan." }, "bottomRightCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the bottom right corner of your floor plan." }, "topLeftCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the top left corner of your floor plan." }, "topRightCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the top right corner of your floor plan." }, "floorNumber": { "type": "number", "format": "float", "description": "The floor number of the floor within the building." } } } }, "example": [ { "floorPlanId": "g_1234567", "imageUrl": "https://meraki-na.s3.amazonaws.com/assets/...", "imageUrlExpiresAt": "2019-06-11 16:04:54 +00:00", "imageExtension": "png", "imageMd5": "2a9edd3f4ffd80130c647d13eacb59f3", "name": "HQ Floor Plan", "devices": [ { "name": "My AP", "lat": 37.4180951010362, "lng": -122.098531723022, "address": "1600 Pennsylvania Ave", "notes": "My AP's note", "tags": [ "recently-added" ], "networkId": "N_24329156", "serial": "Q234-ABCD-5678", "model": "MR34", "imei": "123456789000000", "mac": "00:11:22:33:44:55", "lanIp": "1.2.3.4", "firmware": "wireless-25-14", "productType": "wireless", "details": [ { "name": "Catalyst serial", "value": "123ABC" } ] } ], "width": 100.0, "height": 150.1, "center": { "lat": 37.770040510499996, "lng": -122.38714009525 }, "bottomLeftCorner": { "lat": 37.7696461495, "lng": -122.3880815506 }, "bottomRightCorner": { "lat": 37.771524649766654, "lng": -122.38795275055205 }, "topLeftCorner": { "lat": 37.769700101836364, "lng": -122.3888684251381 }, "topRightCorner": { "lat": 37.77157860210302, "lng": -122.38873962509012 }, "floorNumber": 5.0 } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "List the floor plans that belong to your network", "tags": [ "networks", "configure", "floorPlans" ] }, "post": { "description": "Upload a floor plan", "operationId": "createNetworkFloorPlan", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of your floor plan." }, "center": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the center of your floor plan. The 'center' or two adjacent corners (e.g. 'topLeftCorner' and 'bottomLeftCorner') must be specified. If 'center' is specified, the floor plan is placed over that point with no rotation. If two adjacent corners are specified, the floor plan is rotated to line up with the two specified points. The aspect ratio of the floor plan's image is preserved regardless of which corners/center are specified. (This means if that more than two corners are specified, only two corners may be used to preserve the floor plan's aspect ratio.). No two points can have the same latitude, longitude pair." }, "bottomLeftCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the bottom left corner of your floor plan." }, "bottomRightCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the bottom right corner of your floor plan." }, "topLeftCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the top left corner of your floor plan." }, "topRightCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the top right corner of your floor plan." }, "floorNumber": { "type": "number", "format": "float", "description": "The floor number of the floors within the building" }, "imageContents": { "type": "string", "format": "byte", "description": "The file contents (a base 64 encoded string) of your image. Supported formats are PNG, GIF, and JPG. Note that all images are saved as PNG files, regardless of the format they are uploaded in." } }, "example": { "name": "HQ Floor Plan", "center": { "lat": 37.770040510499996, "lng": -122.38714009525 }, "bottomLeftCorner": { "lat": 37.770040510499996, "lng": -122.38714009525 }, "bottomRightCorner": { "lat": 37.770040510499996, "lng": -122.38714009525 }, "topLeftCorner": { "lat": 37.770040510499996, "lng": -122.38714009525 }, "topRightCorner": { "lat": 37.770040510499996, "lng": -122.38714009525 }, "floorNumber": 5.0, "imageContents": "2a9edd3f4ffd80130c647d13eacb59f3" }, "required": [ "name", "imageContents" ] } } }, "required": true }, "responses": { "201": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "floorPlanId": { "type": "string", "description": "Floor plan ID" }, "imageUrl": { "type": "string", "description": "The url link for the floor plan image." }, "imageUrlExpiresAt": { "type": "string", "description": "The time the image url link will expire." }, "imageExtension": { "type": "string", "description": "The format type of the image." }, "imageMd5": { "type": "string", "format": "byte", "description": "The file contents (a base 64 encoded string) of your new image. Supported formats are PNG, GIF, and JPG. Note that all images are saved as PNG files, regardless of the format they are uploaded in. If you upload a new image, and you do NOT specify any new geolocation fields ('center, 'topLeftCorner', etc), the floor plan will be recentered with no rotation in order to maintain the aspect ratio of your new image." }, "name": { "type": "string", "description": "The name of your floor plan." }, "devices": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the device" }, "lat": { "type": "number", "format": "float", "description": "Latitude of the device" }, "lng": { "type": "number", "format": "float", "description": "Longitude of the device" }, "address": { "type": "string", "description": "Physical address of the device" }, "notes": { "type": "string", "description": "Notes for the device, limited to 255 characters" }, "tags": { "type": "array", "items": { "type": "string" }, "description": "List of tags assigned to the device" }, "networkId": { "type": "string", "description": "ID of the network the device belongs to" }, "serial": { "type": "string", "description": "Serial number of the device" }, "model": { "type": "string", "description": "Model of the device" }, "imei": { "type": "string", "description": "IMEI of the device, if applicable" }, "mac": { "type": "string", "description": "MAC address of the device" }, "lanIp": { "type": "string", "description": "LAN IP address of the device" }, "firmware": { "type": "string", "description": "Firmware version of the device" }, "productType": { "type": "string", "description": "Product type of the device" }, "details": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Additional property name" }, "value": { "type": "string", "description": "Additional property value" } } }, "description": "Additional device information" } } }, "description": "List of devices for the floorplan" }, "width": { "type": "number", "format": "float", "description": "The width of your floor plan." }, "height": { "type": "number", "format": "float", "description": "The height of your floor plan." }, "center": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the center of your floor plan. The 'center' or two adjacent corners (e.g. 'topLeftCorner' and 'bottomLeftCorner') must be specified. If 'center' is specified, the floor plan is placed over that point with no rotation. If two adjacent corners are specified, the floor plan is rotated to line up with the two specified points. The aspect ratio of the floor plan's image is preserved regardless of which corners/center are specified. (This means if that more than two corners are specified, only two corners may be used to preserve the floor plan's aspect ratio.). No two points can have the same latitude, longitude pair." }, "bottomLeftCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the bottom left corner of your floor plan." }, "bottomRightCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the bottom right corner of your floor plan." }, "topLeftCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the top left corner of your floor plan." }, "topRightCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the top right corner of your floor plan." }, "floorNumber": { "type": "number", "format": "float", "description": "The floor number of the floor within the building." } } }, "example": { "floorPlanId": "g_1234567", "imageUrl": "https://meraki-na.s3.amazonaws.com/assets/...", "imageUrlExpiresAt": "2019-06-11 16:04:54 +00:00", "imageExtension": "png", "imageMd5": "2a9edd3f4ffd80130c647d13eacb59f3", "name": "HQ Floor Plan", "devices": [ { "name": "My AP", "lat": 37.4180951010362, "lng": -122.098531723022, "address": "1600 Pennsylvania Ave", "notes": "My AP's note", "tags": [ "recently-added" ], "networkId": "N_24329156", "serial": "Q234-ABCD-5678", "model": "MR34", "imei": "123456789000000", "mac": "00:11:22:33:44:55", "lanIp": "1.2.3.4", "firmware": "wireless-25-14", "productType": "wireless", "details": [ { "name": "Catalyst serial", "value": "123ABC" } ] } ], "width": 100.0, "height": 150.1, "center": { "lat": 37.770040510499996, "lng": -122.38714009525 }, "bottomLeftCorner": { "lat": 37.7696461495, "lng": -122.3880815506 }, "bottomRightCorner": { "lat": 37.771524649766654, "lng": -122.38795275055205 }, "topLeftCorner": { "lat": 37.769700101836364, "lng": -122.3888684251381 }, "topRightCorner": { "lat": 37.77157860210302, "lng": -122.38873962509012 }, "floorNumber": 5.0 } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Upload a floor plan", "tags": [ "networks", "configure", "floorPlans" ] } }, "/networks/{networkId}/floorPlans/autoLocate/jobs/batch": { "post": { "description": "Schedule auto locate jobs for one or more floor plans in a network", "operationId": "batchNetworkFloorPlansAutoLocateJobs", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "jobs": { "type": "array", "items": { "type": "object", "properties": { "floorPlanId": { "type": "string", "description": "The ID of the floor plan to run auto locate for" }, "refresh": { "type": "array", "items": { "type": "string" }, "description": "The types of location data that should be refreshed for this job. The list must either contain both 'gnss' and 'ranging' or be empty, as we currently only support refreshing both 'gnss' and 'ranging', or neither." }, "scheduledAt": { "type": "string", "format": "date-time", "description": "Timestamp in ISO8601 format which indicates when the auto locate job should be run. If omitted, the auto locate job will start immediately." } }, "required": [ "floorPlanId" ] }, "description": "The list of auto locate jobs to be scheduled. Up to 100 jobs can be provided in a request." } }, "example": { "jobs": [ { "floorPlanId": "g_2176982374", "refresh": [ "gnss", "ranging" ], "scheduledAt": "2018-02-11T00:00:00Z" } ] }, "required": [ "jobs" ] } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "jobs": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Auto locate job ID" }, "networkId": { "type": "string", "description": "Network ID" }, "floorPlanId": { "type": "string", "description": "Floor plan ID" }, "status": { "type": "string", "description": "Auto locate job status. Possible values: 'scheduled', 'in progress', 'canceling', 'error', 'finished', 'published', 'canceled'" }, "scheduledAt": { "type": "string", "format": "date-time", "description": "Scheduled start time for auto locate job" }, "completed": { "type": "object", "properties": { "percentage": { "type": "integer", "description": "Approximate auto locate job completion percentage" } }, "description": "Auto locate job progress information" }, "ranging": { "type": "object", "properties": { "status": { "type": "string", "description": "Ranging status. Possible values: 'scheduled', 'in progress', 'error', 'finished', 'no neighbors'" }, "completed": { "type": "object", "properties": { "percentage": { "type": "integer", "description": "Completion percentage of the ranging process" } }, "description": "Progress information for the ranging process" } }, "description": "Ranging status and progress information" }, "gnss": { "type": "object", "properties": { "status": { "type": "string", "description": "GNSS status. Possible values: 'scheduled', 'in progress', 'error', 'finished', 'not applicable', 'canceled'" }, "completed": { "type": "object", "properties": { "percentage": { "type": "integer", "description": "Completion percentage of the GNSS acquisition process" } }, "description": "Progress information for the GNSS acquisition process" } }, "description": "GNSS (e.g. GPS) status and progress information" }, "errors": { "type": "array", "items": { "type": "object", "properties": { "source": { "type": "string", "description": "The step of the auto locate process when the error occurred. Possible values: 'gnss', 'ranging', 'positioning'" }, "type": { "type": "string", "description": "The type of error that occurred. Possible values: 'failure', 'no neighbors', 'missing anchors', 'wrong anchors', 'missing ranging data', 'calculation failure', 'scheduling failure'" } } }, "description": "List of errors that occurred during a failed run of auto locate" } } }, "description": "The newly created jobs" } } }, "example": { "jobs": [ { "id": "1234", "networkId": "N_24329156", "floorPlanId": "g_2176982374", "status": "error", "scheduledAt": "2018-02-11T00:00:00Z", "completed": { "percentage": 50 }, "ranging": { "status": "in progress", "completed": { "percentage": 24 } }, "gnss": { "status": "in progress", "completed": { "percentage": 4 } }, "errors": [ { "source": "ranging", "type": "missing anchors" } ] } ] } } } } }, "security": [ { "oauth2": [ "wireless:config:write" ] } ], "summary": "Schedule auto locate jobs for one or more floor plans in a network", "tags": [ "networks", "configure", "floorPlans", "autoLocate", "jobs" ] } }, "/networks/{networkId}/floorPlans/autoLocate/jobs/{jobId}/cancel": { "post": { "description": "Cancel a scheduled or running auto locate job", "operationId": "cancelNetworkFloorPlansAutoLocateJob", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "jobId", "in": "path", "description": "Job ID", "schema": { "type": "string" }, "required": true } ], "responses": { "204": { "description": "Successful operation" } }, "security": [ { "oauth2": [ "wireless:config:write" ] } ], "summary": "Cancel a scheduled or running auto locate job", "tags": [ "networks", "configure", "floorPlans", "autoLocate", "jobs" ] } }, "/networks/{networkId}/floorPlans/autoLocate/jobs/{jobId}/publish": { "post": { "description": "Update the status of a finished auto locate job to be published, and update device locations", "operationId": "publishNetworkFloorPlansAutoLocateJob", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "jobId", "in": "path", "description": "Job ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "devices": { "type": "array", "items": { "type": "object", "properties": { "serial": { "type": "string", "description": "Serial for device to publish position for" }, "lat": { "type": "number", "format": "float", "minimum": -90, "maximum": 90, "description": "Latitude" }, "lng": { "type": "number", "format": "float", "minimum": -180, "maximum": 180, "description": "Longitude" }, "autoLocate": { "type": "object", "properties": { "isAnchor": { "type": "boolean", "description": "Whether or not this device's location should be saved as a user-defined anchor" } }, "description": "The auto locate position for this device" } }, "required": [ "serial", "lat", "lng" ] }, "description": "The list of devices to publish positions for" } }, "example": { "devices": [ { "serial": "Q234-ABCD-5678", "lat": 37.4180951010362, "lng": -122.098531723022, "autoLocate": { "isAnchor": true } } ] } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "description": "Status of attempt to publish auto locate job" } } }, "example": { "success": true } } } } }, "security": [ { "oauth2": [ "wireless:config:write" ] } ], "summary": "Update the status of a finished auto locate job to be published, and update device locations", "tags": [ "networks", "configure", "floorPlans", "autoLocate", "jobs" ] } }, "/networks/{networkId}/floorPlans/autoLocate/jobs/{jobId}/recalculate": { "post": { "description": "Trigger auto locate recalculation for a job, and optionally set anchors", "operationId": "recalculateNetworkFloorPlansAutoLocateJob", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "jobId", "in": "path", "description": "Job ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "devices": { "type": "array", "items": { "type": "object", "properties": { "serial": { "type": "string", "description": "Serial for device to update" }, "autoLocate": { "type": "object", "properties": { "isAnchor": { "type": "boolean", "description": "Whether or not this location should be saved as a user-defined anchor" }, "lat": { "type": "number", "format": "float", "minimum": -90, "maximum": 90, "description": "Latitude" }, "lng": { "type": "number", "format": "float", "minimum": -180, "maximum": 180, "description": "Longitude" } }, "required": [ "isAnchor" ], "description": "The auto locate position for this device" } }, "required": [ "serial", "autoLocate" ] }, "description": "The list of devices to update anchor positions for" } }, "example": { "devices": [ { "serial": "Q234-ABCD-5678", "autoLocate": { "isAnchor": true, "lat": 37.4180951010362, "lng": -122.098531723022 } } ] } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "description": "Status of attempt to trigger auto locate recalculation" } } }, "example": { "success": true } } } } }, "security": [ { "oauth2": [ "wireless:config:write" ] } ], "summary": "Trigger auto locate recalculation for a job, and optionally set anchors", "tags": [ "networks", "configure", "floorPlans", "autoLocate", "jobs" ] } }, "/networks/{networkId}/floorPlans/devices/batchUpdate": { "post": { "description": "Update floorplan assignments for a batch of devices", "operationId": "batchNetworkFloorPlansDevicesUpdate", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "assignments": { "type": "array", "items": { "type": "object", "properties": { "serial": { "type": "string", "description": "Serial of the device to change the floor plan assignment for" }, "floorPlan": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the floor plan to assign the device to, or null to unassign the device from its floor plan", "nullable": true } }, "required": [ "id" ], "description": "Floorplan to be assigned or unassigned" } }, "required": [ "serial", "floorPlan" ] }, "description": "List of floorplan assignments to update. Up to 100 floor plan assignments can be provided in a request." } }, "example": { "assignments": [ { "serial": "Q234-ABCD-5678", "floorPlan": { "id": "g_2176982374" } } ] }, "required": [ "assignments" ] } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "description": "Status of attempt to update device floorplan assignments" } } }, "example": { "success": true } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Update floorplan assignments for a batch of devices", "tags": [ "networks", "configure", "floorPlans", "devices" ] } }, "/networks/{networkId}/floorPlans/{floorPlanId}": { "get": { "description": "Find a floor plan by ID", "operationId": "getNetworkFloorPlan", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "floorPlanId", "in": "path", "description": "Floor plan ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "floorPlanId": { "type": "string", "description": "Floor plan ID" }, "imageUrl": { "type": "string", "description": "The url link for the floor plan image." }, "imageUrlExpiresAt": { "type": "string", "description": "The time the image url link will expire." }, "imageExtension": { "type": "string", "description": "The format type of the image." }, "imageMd5": { "type": "string", "format": "byte", "description": "The file contents (a base 64 encoded string) of your new image. Supported formats are PNG, GIF, and JPG. Note that all images are saved as PNG files, regardless of the format they are uploaded in. If you upload a new image, and you do NOT specify any new geolocation fields ('center, 'topLeftCorner', etc), the floor plan will be recentered with no rotation in order to maintain the aspect ratio of your new image." }, "name": { "type": "string", "description": "The name of your floor plan." }, "devices": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the device" }, "lat": { "type": "number", "format": "float", "description": "Latitude of the device" }, "lng": { "type": "number", "format": "float", "description": "Longitude of the device" }, "address": { "type": "string", "description": "Physical address of the device" }, "notes": { "type": "string", "description": "Notes for the device, limited to 255 characters" }, "tags": { "type": "array", "items": { "type": "string" }, "description": "List of tags assigned to the device" }, "networkId": { "type": "string", "description": "ID of the network the device belongs to" }, "serial": { "type": "string", "description": "Serial number of the device" }, "model": { "type": "string", "description": "Model of the device" }, "imei": { "type": "string", "description": "IMEI of the device, if applicable" }, "mac": { "type": "string", "description": "MAC address of the device" }, "lanIp": { "type": "string", "description": "LAN IP address of the device" }, "firmware": { "type": "string", "description": "Firmware version of the device" }, "productType": { "type": "string", "description": "Product type of the device" }, "details": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Additional property name" }, "value": { "type": "string", "description": "Additional property value" } } }, "description": "Additional device information" } } }, "description": "List of devices for the floorplan" }, "width": { "type": "number", "format": "float", "description": "The width of your floor plan." }, "height": { "type": "number", "format": "float", "description": "The height of your floor plan." }, "center": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the center of your floor plan. The 'center' or two adjacent corners (e.g. 'topLeftCorner' and 'bottomLeftCorner') must be specified. If 'center' is specified, the floor plan is placed over that point with no rotation. If two adjacent corners are specified, the floor plan is rotated to line up with the two specified points. The aspect ratio of the floor plan's image is preserved regardless of which corners/center are specified. (This means if that more than two corners are specified, only two corners may be used to preserve the floor plan's aspect ratio.). No two points can have the same latitude, longitude pair." }, "bottomLeftCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the bottom left corner of your floor plan." }, "bottomRightCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the bottom right corner of your floor plan." }, "topLeftCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the top left corner of your floor plan." }, "topRightCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the top right corner of your floor plan." }, "floorNumber": { "type": "number", "format": "float", "description": "The floor number of the floor within the building." } } }, "example": { "floorPlanId": "g_1234567", "imageUrl": "https://meraki-na.s3.amazonaws.com/assets/...", "imageUrlExpiresAt": "2019-06-11 16:04:54 +00:00", "imageExtension": "png", "imageMd5": "2a9edd3f4ffd80130c647d13eacb59f3", "name": "HQ Floor Plan", "devices": [ { "name": "My AP", "lat": 37.4180951010362, "lng": -122.098531723022, "address": "1600 Pennsylvania Ave", "notes": "My AP's note", "tags": [ "recently-added" ], "networkId": "N_24329156", "serial": "Q234-ABCD-5678", "model": "MR34", "imei": "123456789000000", "mac": "00:11:22:33:44:55", "lanIp": "1.2.3.4", "firmware": "wireless-25-14", "productType": "wireless", "details": [ { "name": "Catalyst serial", "value": "123ABC" } ] } ], "width": 100.0, "height": 150.1, "center": { "lat": 37.770040510499996, "lng": -122.38714009525 }, "bottomLeftCorner": { "lat": 37.7696461495, "lng": -122.3880815506 }, "bottomRightCorner": { "lat": 37.771524649766654, "lng": -122.38795275055205 }, "topLeftCorner": { "lat": 37.769700101836364, "lng": -122.3888684251381 }, "topRightCorner": { "lat": 37.77157860210302, "lng": -122.38873962509012 }, "floorNumber": 5.0 } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "Find a floor plan by ID", "tags": [ "networks", "configure", "floorPlans" ] }, "put": { "description": "Update a floor plan's geolocation and other meta data", "operationId": "updateNetworkFloorPlan", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "floorPlanId", "in": "path", "description": "Floor plan ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of your floor plan." }, "center": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the center of your floor plan. If you want to change the geolocation data of your floor plan, either the 'center' or two adjacent corners (e.g. 'topLeftCorner' and 'bottomLeftCorner') must be specified. If 'center' is specified, the floor plan is placed over that point with no rotation. If two adjacent corners are specified, the floor plan is rotated to line up with the two specified points. The aspect ratio of the floor plan's image is preserved regardless of which corners/center are specified. (This means if that more than two corners are specified, only two corners may be used to preserve the floor plan's aspect ratio.). No two points can have the same latitude, longitude pair." }, "bottomLeftCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the bottom left corner of your floor plan." }, "bottomRightCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the bottom right corner of your floor plan." }, "topLeftCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the top left corner of your floor plan." }, "topRightCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the top right corner of your floor plan." }, "floorNumber": { "type": "number", "format": "float", "description": "The floor number of the floors within the building" }, "imageContents": { "type": "string", "format": "byte", "description": "The file contents (a base 64 encoded string) of your new image. Supported formats are PNG, GIF, and JPG. Note that all images are saved as PNG files, regardless of the format they are uploaded in. If you upload a new image, and you do NOT specify any new geolocation fields ('center, 'topLeftCorner', etc), the floor plan will be recentered with no rotation in order to maintain the aspect ratio of your new image." } }, "example": { "name": "HQ Floor Plan", "center": { "lat": 37.770040510499996, "lng": -122.38714009525 }, "bottomLeftCorner": { "lat": 37.770040510499996, "lng": -122.38714009525 }, "bottomRightCorner": { "lat": 37.770040510499996, "lng": -122.38714009525 }, "topLeftCorner": { "lat": 37.770040510499996, "lng": -122.38714009525 }, "topRightCorner": { "lat": 37.770040510499996, "lng": -122.38714009525 }, "floorNumber": 5.0, "imageContents": "2a9edd3f4ffd80130c647d13eacb59f3" } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "floorPlanId": { "type": "string", "description": "Floor plan ID" }, "imageUrl": { "type": "string", "description": "The url link for the floor plan image." }, "imageUrlExpiresAt": { "type": "string", "description": "The time the image url link will expire." }, "imageExtension": { "type": "string", "description": "The format type of the image." }, "imageMd5": { "type": "string", "format": "byte", "description": "The file contents (a base 64 encoded string) of your new image. Supported formats are PNG, GIF, and JPG. Note that all images are saved as PNG files, regardless of the format they are uploaded in. If you upload a new image, and you do NOT specify any new geolocation fields ('center, 'topLeftCorner', etc), the floor plan will be recentered with no rotation in order to maintain the aspect ratio of your new image." }, "name": { "type": "string", "description": "The name of your floor plan." }, "devices": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the device" }, "lat": { "type": "number", "format": "float", "description": "Latitude of the device" }, "lng": { "type": "number", "format": "float", "description": "Longitude of the device" }, "address": { "type": "string", "description": "Physical address of the device" }, "notes": { "type": "string", "description": "Notes for the device, limited to 255 characters" }, "tags": { "type": "array", "items": { "type": "string" }, "description": "List of tags assigned to the device" }, "networkId": { "type": "string", "description": "ID of the network the device belongs to" }, "serial": { "type": "string", "description": "Serial number of the device" }, "model": { "type": "string", "description": "Model of the device" }, "imei": { "type": "string", "description": "IMEI of the device, if applicable" }, "mac": { "type": "string", "description": "MAC address of the device" }, "lanIp": { "type": "string", "description": "LAN IP address of the device" }, "firmware": { "type": "string", "description": "Firmware version of the device" }, "productType": { "type": "string", "description": "Product type of the device" }, "details": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Additional property name" }, "value": { "type": "string", "description": "Additional property value" } } }, "description": "Additional device information" } } }, "description": "List of devices for the floorplan" }, "width": { "type": "number", "format": "float", "description": "The width of your floor plan." }, "height": { "type": "number", "format": "float", "description": "The height of your floor plan." }, "center": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the center of your floor plan. The 'center' or two adjacent corners (e.g. 'topLeftCorner' and 'bottomLeftCorner') must be specified. If 'center' is specified, the floor plan is placed over that point with no rotation. If two adjacent corners are specified, the floor plan is rotated to line up with the two specified points. The aspect ratio of the floor plan's image is preserved regardless of which corners/center are specified. (This means if that more than two corners are specified, only two corners may be used to preserve the floor plan's aspect ratio.). No two points can have the same latitude, longitude pair." }, "bottomLeftCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the bottom left corner of your floor plan." }, "bottomRightCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the bottom right corner of your floor plan." }, "topLeftCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the top left corner of your floor plan." }, "topRightCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the top right corner of your floor plan." }, "floorNumber": { "type": "number", "format": "float", "description": "The floor number of the floor within the building." } } }, "example": { "floorPlanId": "g_1234567", "imageUrl": "https://meraki-na.s3.amazonaws.com/assets/...", "imageUrlExpiresAt": "2019-06-11 16:04:54 +00:00", "imageExtension": "png", "imageMd5": "2a9edd3f4ffd80130c647d13eacb59f3", "name": "HQ Floor Plan", "devices": [ { "name": "My AP", "lat": 37.4180951010362, "lng": -122.098531723022, "address": "1600 Pennsylvania Ave", "notes": "My AP's note", "tags": [ "recently-added" ], "networkId": "N_24329156", "serial": "Q234-ABCD-5678", "model": "MR34", "imei": "123456789000000", "mac": "00:11:22:33:44:55", "lanIp": "1.2.3.4", "firmware": "wireless-25-14", "productType": "wireless", "details": [ { "name": "Catalyst serial", "value": "123ABC" } ] } ], "width": 100.0, "height": 150.1, "center": { "lat": 37.770040510499996, "lng": -122.38714009525 }, "bottomLeftCorner": { "lat": 37.7696461495, "lng": -122.3880815506 }, "bottomRightCorner": { "lat": 37.771524649766654, "lng": -122.38795275055205 }, "topLeftCorner": { "lat": 37.769700101836364, "lng": -122.3888684251381 }, "topRightCorner": { "lat": 37.77157860210302, "lng": -122.38873962509012 }, "floorNumber": 5.0 } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Update a floor plan's geolocation and other meta data", "tags": [ "networks", "configure", "floorPlans" ] }, "delete": { "description": "Destroy a floor plan", "operationId": "deleteNetworkFloorPlan", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "floorPlanId", "in": "path", "description": "Floor plan ID", "schema": { "type": "string" }, "required": true } ], "responses": { "204": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "floorPlanId": { "type": "string", "description": "Floor plan ID" }, "imageUrl": { "type": "string", "description": "The url link for the floor plan image." }, "imageUrlExpiresAt": { "type": "string", "description": "The time the image url link will expire." }, "imageExtension": { "type": "string", "description": "The format type of the image." }, "imageMd5": { "type": "string", "format": "byte", "description": "The file contents (a base 64 encoded string) of your new image. Supported formats are PNG, GIF, and JPG. Note that all images are saved as PNG files, regardless of the format they are uploaded in. If you upload a new image, and you do NOT specify any new geolocation fields ('center, 'topLeftCorner', etc), the floor plan will be recentered with no rotation in order to maintain the aspect ratio of your new image." }, "name": { "type": "string", "description": "The name of your floor plan." }, "devices": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the device" }, "lat": { "type": "number", "format": "float", "description": "Latitude of the device" }, "lng": { "type": "number", "format": "float", "description": "Longitude of the device" }, "address": { "type": "string", "description": "Physical address of the device" }, "notes": { "type": "string", "description": "Notes for the device, limited to 255 characters" }, "tags": { "type": "array", "items": { "type": "string" }, "description": "List of tags assigned to the device" }, "networkId": { "type": "string", "description": "ID of the network the device belongs to" }, "serial": { "type": "string", "description": "Serial number of the device" }, "model": { "type": "string", "description": "Model of the device" }, "imei": { "type": "string", "description": "IMEI of the device, if applicable" }, "mac": { "type": "string", "description": "MAC address of the device" }, "lanIp": { "type": "string", "description": "LAN IP address of the device" }, "firmware": { "type": "string", "description": "Firmware version of the device" }, "productType": { "type": "string", "description": "Product type of the device" }, "details": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Additional property name" }, "value": { "type": "string", "description": "Additional property value" } } }, "description": "Additional device information" } } }, "description": "List of devices for the floorplan" }, "width": { "type": "number", "format": "float", "description": "The width of your floor plan." }, "height": { "type": "number", "format": "float", "description": "The height of your floor plan." }, "center": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the center of your floor plan. The 'center' or two adjacent corners (e.g. 'topLeftCorner' and 'bottomLeftCorner') must be specified. If 'center' is specified, the floor plan is placed over that point with no rotation. If two adjacent corners are specified, the floor plan is rotated to line up with the two specified points. The aspect ratio of the floor plan's image is preserved regardless of which corners/center are specified. (This means if that more than two corners are specified, only two corners may be used to preserve the floor plan's aspect ratio.). No two points can have the same latitude, longitude pair." }, "bottomLeftCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the bottom left corner of your floor plan." }, "bottomRightCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the bottom right corner of your floor plan." }, "topLeftCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the top left corner of your floor plan." }, "topRightCorner": { "type": "object", "properties": { "lat": { "type": "number", "format": "float", "description": "Latitude" }, "lng": { "type": "number", "format": "float", "description": "Longitude" } }, "description": "The longitude and latitude of the top right corner of your floor plan." }, "floorNumber": { "type": "number", "format": "float", "description": "The floor number of the floor within the building." } } }, "example": { "floorPlanId": "g_1234567", "imageUrl": "https://meraki-na.s3.amazonaws.com/assets/...", "imageUrlExpiresAt": "2019-06-11 16:04:54 +00:00", "imageExtension": "png", "imageMd5": "2a9edd3f4ffd80130c647d13eacb59f3", "name": "HQ Floor Plan", "devices": [ { "name": "My AP", "lat": 37.4180951010362, "lng": -122.098531723022, "address": "1600 Pennsylvania Ave", "notes": "My AP's note", "tags": [ "recently-added" ], "networkId": "N_24329156", "serial": "Q234-ABCD-5678", "model": "MR34", "imei": "123456789000000", "mac": "00:11:22:33:44:55", "lanIp": "1.2.3.4", "firmware": "wireless-25-14", "productType": "wireless", "details": [ { "name": "Catalyst serial", "value": "123ABC" } ] } ], "width": 100.0, "height": 150.1, "center": { "lat": 37.770040510499996, "lng": -122.38714009525 }, "bottomLeftCorner": { "lat": 37.7696461495, "lng": -122.3880815506 }, "bottomRightCorner": { "lat": 37.771524649766654, "lng": -122.38795275055205 }, "topLeftCorner": { "lat": 37.769700101836364, "lng": -122.3888684251381 }, "topRightCorner": { "lat": 37.77157860210302, "lng": -122.38873962509012 }, "floorNumber": 5.0 } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Destroy a floor plan", "tags": [ "networks", "configure", "floorPlans" ] } }, "/networks/{networkId}/groupPolicies": { "get": { "description": "List the group policies in a network", "operationId": "getNetworkGroupPolicies", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "groupPolicyId": { "type": "string", "description": "The ID of the group policy" }, "scheduling": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether scheduling is enabled (true) or disabled (false). Defaults to false. If true, the schedule objects for each day of the week (monday - sunday) are parsed." }, "monday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Monday." }, "tuesday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Tuesday." }, "wednesday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Wednesday." }, "thursday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Thursday." }, "friday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Friday." }, "saturday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Saturday." }, "sunday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Sunday." } }, "description": " The schedule for the group policy. Schedules are applied to days of the week.\n" }, "bandwidth": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How bandwidth limits are enforced. Can be 'network default', 'ignore' or 'custom'." }, "bandwidthLimits": { "type": "object", "properties": { "limitUp": { "type": "integer", "description": "The maximum upload limit (integer, in Kbps). null indicates no limit", "nullable": true }, "limitDown": { "type": "integer", "description": "The maximum download limit (integer, in Kbps). null indicates no limit", "nullable": true } }, "description": "The bandwidth limits object, specifying upload and download speed for clients bound to the group policy. These are only enforced if 'settings' is set to 'custom'." } }, "description": " The bandwidth settings for clients bound to your group policy.\n" }, "firewallAndTrafficShaping": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How firewall and traffic shaping rules are enforced. Can be 'network default', 'ignore' or 'custom'." }, "trafficShapingRules": { "type": "array", "items": { "type": "object", "properties": { "definitions": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "application", "applicationCategory", "host", "ipRange", "localNet", "port" ], "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", "nullable": true }, "pcpTagValue": { "type": "integer", "description": " The PCP tag applied by your rule. Can be 0 (lowest priority) through 7 (highest priority).\n null means 'Do not set PCP tag'.\n", "nullable": true }, "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" }, "l3FirewallRules": { "type": "array", "items": { "type": "object", "properties": { "comment": { "type": "string", "description": "Description of the rule (optional)" }, "policy": { "type": "string", "description": "'allow' or 'deny' traffic specified by this rule" }, "protocol": { "type": "string", "description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')" }, "destPort": { "type": "string", "description": "Destination port (integer in the range 1-65535), a port range (e.g. 8080-9090), or 'any'" }, "destCidr": { "type": "string", "description": "Destination IP address (in IP or CIDR notation), a fully-qualified domain name (FQDN, if your network supports it) or 'any'." } }, "required": [ "policy", "protocol", "destCidr" ] }, "description": "An ordered array of the L3 firewall rules" }, "l7FirewallRules": { "type": "array", "items": { "type": "object", "properties": { "policy": { "type": "string", "enum": [ "deny" ], "description": "The policy applied to matching traffic. Must be 'deny'." }, "type": { "type": "string", "enum": [ "application", "applicationCategory", "host", "ipRange", "port" ], "description": "Type of the L7 Rule. Must be 'application', 'applicationCategory', 'host', 'port' or 'ipRange'" }, "value": { "type": "string", "description": "The 'value' of what you want to block. If 'type' is 'host', 'port' or 'ipRange', 'value' must be a string matching either a hostname (e.g. somewhere.com), a port (e.g. 8080), or an IP range (e.g. 192.1.0.0/16). If 'type' is 'application' or 'applicationCategory', then 'value' must be an object with an ID for the application." } } }, "description": "An ordered array of L7 firewall rules" } }, "description": " The firewall and traffic shaping rules and settings for your policy.\n" }, "contentFiltering": { "type": "object", "properties": { "allowedUrlPatterns": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "append", "network default", "override" ], "description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'." }, "patterns": { "type": "array", "items": { "type": "string" }, "description": "A list of URL patterns that are allowed" } }, "description": "Settings for allowed URL patterns" }, "blockedUrlPatterns": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "append", "network default", "override" ], "description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'." }, "patterns": { "type": "array", "items": { "type": "string" }, "description": "A list of URL patterns that are blocked" } }, "description": "Settings for blocked URL patterns" }, "blockedUrlCategories": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "append", "network default", "override" ], "description": "How URL categories are applied. Can be 'network default', 'append' or 'override'." }, "categories": { "type": "array", "items": { "type": "string" }, "description": "A list of URL categories to block" } }, "description": "Settings for blocked URL categories" } }, "description": "The content filtering settings for your group policy" }, "splashAuthSettings": { "type": "string", "enum": [ "bypass", "network default" ], "description": "Whether clients bound to your policy will bypass splash authorization or behave according to the network's rules. Can be one of 'network default' or 'bypass'. Only available if your network has a wireless configuration." }, "vlanTagging": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How VLAN tagging is applied. Can be 'network default', 'ignore' or 'custom'." }, "vlanId": { "type": "string", "description": "The ID of the vlan you want to tag. This only applies if 'settings' is set to 'custom'." } }, "description": "The VLAN tagging settings for your group policy. Only available if your network has a wireless configuration." }, "bonjourForwarding": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How Bonjour rules are applied. Can be 'network default', 'ignore' or 'custom'." }, "rules": { "type": "array", "items": { "type": "object", "properties": { "description": { "type": "string", "description": "A description for your Bonjour forwarding rule. Optional." }, "vlanId": { "type": "string", "description": "The ID of the service VLAN. Required." }, "services": { "type": "array", "items": { "type": "string", "enum": [ "AFP", "AirPlay", "All Services", "Apple screen share", "BitTorrent", "Chromecast", "FTP", "Printers", "SSH", "Samba", "Scanners", "Spotify", "iChat", "iTunes" ] }, "description": "A list of Bonjour services. At least one service must be specified. Available services are 'All Services', 'AFP', 'AirPlay', 'Apple screen share', 'BitTorrent', 'Chromecast', 'FTP', 'iChat', 'iTunes', 'Printers', 'Samba', 'Scanners', 'Spotify' and 'SSH'" } }, "required": [ "vlanId", "services" ] }, "description": "A list of the Bonjour forwarding rules for your group policy. If 'settings' is set to 'custom', at least one rule must be specified." } }, "description": "The Bonjour settings for your group policy. Only valid if your network has a wireless configuration." } } } }, "example": [ { "groupPolicyId": "101", "scheduling": { "enabled": true, "monday": { "active": true, "from": "9:00", "to": "17:00" }, "tuesday": { "active": true, "from": "9:00", "to": "17:00" }, "wednesday": { "active": true, "from": "9:00", "to": "17:00" }, "thursday": { "active": true, "from": "9:00", "to": "17:00" }, "friday": { "active": true, "from": "9:00", "to": "17:00" }, "saturday": { "active": true, "from": "9:00", "to": "17:00" }, "sunday": { "active": true, "from": "9:00", "to": "17:00" } }, "bandwidth": { "settings": "custom", "bandwidthLimits": { "limitUp": 1000000, "limitDown": 1000000 } }, "firewallAndTrafficShaping": { "settings": "custom", "trafficShapingRules": [ { "definitions": [ { "type": "host", "value": "google.com" } ], "perClientBandwidthLimits": { "settings": "custom", "bandwidthLimits": { "limitUp": 1000000, "limitDown": 1000000 } }, "dscpTagValue": 0, "pcpTagValue": 0, "priority": "normal" } ], "l3FirewallRules": [ { "comment": "Allow TCP traffic to subnet with HTTP servers.", "policy": "allow", "protocol": "tcp", "destPort": "443", "destCidr": "192.168.1.0/24" } ], "l7FirewallRules": [ { "policy": "deny", "type": "host", "value": "google.com" } ] }, "contentFiltering": { "allowedUrlPatterns": { "settings": "network default", "patterns": [] }, "blockedUrlPatterns": { "settings": "append", "patterns": [ "http://www.example.com", "http://www.betting.com" ] }, "blockedUrlCategories": { "settings": "override", "categories": [ "meraki:contentFiltering/category/1", "meraki:contentFiltering/category/7" ] } }, "splashAuthSettings": "bypass", "vlanTagging": { "settings": "custom", "vlanId": "1" }, "bonjourForwarding": { "settings": "custom", "rules": [ { "description": "A simple bonjour rule", "vlanId": "1", "services": [ "All Services" ] } ] } } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "List the group policies in a network", "tags": [ "networks", "configure", "groupPolicies" ] }, "post": { "description": "Create a group policy", "operationId": "createNetworkGroupPolicy", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "The name for your group policy. Required." }, "scheduling": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether scheduling is enabled (true) or disabled (false). Defaults to false. If true, the schedule objects for each day of the week (monday - sunday) are parsed." }, "monday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Monday." }, "tuesday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Tuesday." }, "wednesday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Wednesday." }, "thursday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Thursday." }, "friday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Friday." }, "saturday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Saturday." }, "sunday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Sunday." } }, "description": " The schedule for the group policy. Schedules are applied to days of the week.\n" }, "bandwidth": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How bandwidth limits are enforced. Can be 'network default', 'ignore' or 'custom'." }, "bandwidthLimits": { "type": "object", "properties": { "limitUp": { "type": "integer", "description": "The maximum upload limit (integer, in Kbps). null indicates no limit", "nullable": true }, "limitDown": { "type": "integer", "description": "The maximum download limit (integer, in Kbps). null indicates no limit", "nullable": true } }, "description": "The bandwidth limits object, specifying upload and download speed for clients bound to the group policy. These are only enforced if 'settings' is set to 'custom'." } }, "description": " The bandwidth settings for clients bound to your group policy.\n" }, "firewallAndTrafficShaping": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How firewall and traffic shaping rules are enforced. Can be 'network default', 'ignore' or 'custom'." }, "trafficShapingRules": { "type": "array", "items": { "type": "object", "properties": { "definitions": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "application", "applicationCategory", "host", "ipRange", "localNet", "port" ], "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", "nullable": true }, "pcpTagValue": { "type": "integer", "description": " The PCP tag applied by your rule. Can be 0 (lowest priority) through 7 (highest priority).\n null means 'Do not set PCP tag'.\n", "nullable": true }, "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" }, "l3FirewallRules": { "type": "array", "items": { "type": "object", "properties": { "comment": { "type": "string", "description": "Description of the rule (optional)" }, "policy": { "type": "string", "description": "'allow' or 'deny' traffic specified by this rule" }, "protocol": { "type": "string", "description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')" }, "destPort": { "type": "string", "description": "Destination port (integer in the range 1-65535), a port range (e.g. 8080-9090), or 'any'" }, "destCidr": { "type": "string", "description": "Destination IP address (in IP or CIDR notation), a fully-qualified domain name (FQDN, if your network supports it) or 'any'." } }, "required": [ "policy", "protocol", "destCidr" ] }, "description": "An ordered array of the L3 firewall rules" }, "l7FirewallRules": { "type": "array", "items": { "type": "object", "properties": { "policy": { "type": "string", "enum": [ "deny" ], "description": "The policy applied to matching traffic. Must be 'deny'." }, "type": { "type": "string", "enum": [ "application", "applicationCategory", "host", "ipRange", "port" ], "description": "Type of the L7 Rule. Must be 'application', 'applicationCategory', 'host', 'port' or 'ipRange'" }, "value": { "type": "string", "description": "The 'value' of what you want to block. If 'type' is 'host', 'port' or 'ipRange', 'value' must be a string matching either a hostname (e.g. somewhere.com), a port (e.g. 8080), or an IP range (e.g. 192.1.0.0/16). If 'type' is 'application' or 'applicationCategory', then 'value' must be an object with an ID for the application." } } }, "description": "An ordered array of L7 firewall rules" } }, "description": " The firewall and traffic shaping rules and settings for your policy.\n" }, "contentFiltering": { "type": "object", "properties": { "allowedUrlPatterns": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "append", "network default", "override" ], "description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'." }, "patterns": { "type": "array", "items": { "type": "string" }, "description": "A list of URL patterns that are allowed" } }, "description": "Settings for allowed URL patterns" }, "blockedUrlPatterns": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "append", "network default", "override" ], "description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'." }, "patterns": { "type": "array", "items": { "type": "string" }, "description": "A list of URL patterns that are blocked" } }, "description": "Settings for blocked URL patterns" }, "blockedUrlCategories": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "append", "network default", "override" ], "description": "How URL categories are applied. Can be 'network default', 'append' or 'override'." }, "categories": { "type": "array", "items": { "type": "string" }, "description": "A list of URL categories to block" } }, "description": "Settings for blocked URL categories" } }, "description": "The content filtering settings for your group policy" }, "splashAuthSettings": { "type": "string", "enum": [ "bypass", "network default" ], "description": "Whether clients bound to your policy will bypass splash authorization or behave according to the network's rules. Can be one of 'network default' or 'bypass'. Only available if your network has a wireless configuration." }, "vlanTagging": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How VLAN tagging is applied. Can be 'network default', 'ignore' or 'custom'." }, "vlanId": { "type": "string", "description": "The ID of the vlan you want to tag. This only applies if 'settings' is set to 'custom'." } }, "description": "The VLAN tagging settings for your group policy. Only available if your network has a wireless configuration." }, "bonjourForwarding": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How Bonjour rules are applied. Can be 'network default', 'ignore' or 'custom'." }, "rules": { "type": "array", "items": { "type": "object", "properties": { "description": { "type": "string", "description": "A description for your Bonjour forwarding rule. Optional." }, "vlanId": { "type": "string", "description": "The ID of the service VLAN. Required." }, "services": { "type": "array", "items": { "type": "string", "enum": [ "AFP", "AirPlay", "All Services", "Apple screen share", "BitTorrent", "Chromecast", "FTP", "Printers", "SSH", "Samba", "Scanners", "Spotify", "iChat", "iTunes" ] }, "description": "A list of Bonjour services. At least one service must be specified. Available services are 'All Services', 'AFP', 'AirPlay', 'Apple screen share', 'BitTorrent', 'Chromecast', 'FTP', 'iChat', 'iTunes', 'Printers', 'Samba', 'Scanners', 'Spotify' and 'SSH'" } }, "required": [ "vlanId", "services" ] }, "description": "A list of the Bonjour forwarding rules for your group policy. If 'settings' is set to 'custom', at least one rule must be specified." } }, "description": "The Bonjour settings for your group policy. Only valid if your network has a wireless configuration." } }, "example": { "name": "No video streaming", "scheduling": { "enabled": true, "monday": { "active": true, "from": "9:00", "to": "17:00" }, "tuesday": { "active": true, "from": "9:00", "to": "17:00" }, "wednesday": { "active": true, "from": "9:00", "to": "17:00" }, "thursday": { "active": true, "from": "9:00", "to": "17:00" }, "friday": { "active": true, "from": "9:00", "to": "17:00" }, "saturday": { "active": true, "from": "9:00", "to": "17:00" }, "sunday": { "active": true, "from": "9:00", "to": "17:00" } }, "bandwidth": { "settings": "custom", "bandwidthLimits": { "limitUp": 1000000, "limitDown": 1000000 } }, "firewallAndTrafficShaping": { "settings": "custom", "trafficShapingRules": [ { "definitions": [ { "type": "host", "value": "google.com" } ], "perClientBandwidthLimits": { "settings": "custom", "bandwidthLimits": { "limitUp": 1000000, "limitDown": 1000000 } }, "dscpTagValue": 0, "pcpTagValue": 0, "priority": "normal" } ], "l3FirewallRules": [ { "comment": "Allow TCP traffic to subnet with HTTP servers.", "policy": "allow", "protocol": "tcp", "destPort": "443", "destCidr": "192.168.1.0/24" } ], "l7FirewallRules": [ { "policy": "deny", "type": "host", "value": "google.com" } ] }, "contentFiltering": { "allowedUrlPatterns": { "settings": "network default", "patterns": [] }, "blockedUrlPatterns": { "settings": "append", "patterns": [ "http://www.example.com", "http://www.betting.com" ] }, "blockedUrlCategories": { "settings": "override", "categories": [ "meraki:contentFiltering/category/1", "meraki:contentFiltering/category/7" ] } }, "splashAuthSettings": "bypass", "vlanTagging": { "settings": "custom", "vlanId": "1" }, "bonjourForwarding": { "settings": "custom", "rules": [ { "description": "A simple bonjour rule", "vlanId": "1", "services": [ "All Services" ] } ] } }, "required": [ "name" ] } } }, "required": true }, "responses": { "201": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "groupPolicyId": { "type": "string", "description": "The ID of the group policy" }, "scheduling": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether scheduling is enabled (true) or disabled (false). Defaults to false. If true, the schedule objects for each day of the week (monday - sunday) are parsed." }, "monday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Monday." }, "tuesday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Tuesday." }, "wednesday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Wednesday." }, "thursday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Thursday." }, "friday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Friday." }, "saturday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Saturday." }, "sunday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Sunday." } }, "description": " The schedule for the group policy. Schedules are applied to days of the week.\n" }, "bandwidth": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How bandwidth limits are enforced. Can be 'network default', 'ignore' or 'custom'." }, "bandwidthLimits": { "type": "object", "properties": { "limitUp": { "type": "integer", "description": "The maximum upload limit (integer, in Kbps). null indicates no limit", "nullable": true }, "limitDown": { "type": "integer", "description": "The maximum download limit (integer, in Kbps). null indicates no limit", "nullable": true } }, "description": "The bandwidth limits object, specifying upload and download speed for clients bound to the group policy. These are only enforced if 'settings' is set to 'custom'." } }, "description": " The bandwidth settings for clients bound to your group policy.\n" }, "firewallAndTrafficShaping": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How firewall and traffic shaping rules are enforced. Can be 'network default', 'ignore' or 'custom'." }, "trafficShapingRules": { "type": "array", "items": { "type": "object", "properties": { "definitions": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "application", "applicationCategory", "host", "ipRange", "localNet", "port" ], "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", "nullable": true }, "pcpTagValue": { "type": "integer", "description": " The PCP tag applied by your rule. Can be 0 (lowest priority) through 7 (highest priority).\n null means 'Do not set PCP tag'.\n", "nullable": true }, "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" }, "l3FirewallRules": { "type": "array", "items": { "type": "object", "properties": { "comment": { "type": "string", "description": "Description of the rule (optional)" }, "policy": { "type": "string", "description": "'allow' or 'deny' traffic specified by this rule" }, "protocol": { "type": "string", "description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')" }, "destPort": { "type": "string", "description": "Destination port (integer in the range 1-65535), a port range (e.g. 8080-9090), or 'any'" }, "destCidr": { "type": "string", "description": "Destination IP address (in IP or CIDR notation), a fully-qualified domain name (FQDN, if your network supports it) or 'any'." } }, "required": [ "policy", "protocol", "destCidr" ] }, "description": "An ordered array of the L3 firewall rules" }, "l7FirewallRules": { "type": "array", "items": { "type": "object", "properties": { "policy": { "type": "string", "enum": [ "deny" ], "description": "The policy applied to matching traffic. Must be 'deny'." }, "type": { "type": "string", "enum": [ "application", "applicationCategory", "host", "ipRange", "port" ], "description": "Type of the L7 Rule. Must be 'application', 'applicationCategory', 'host', 'port' or 'ipRange'" }, "value": { "type": "string", "description": "The 'value' of what you want to block. If 'type' is 'host', 'port' or 'ipRange', 'value' must be a string matching either a hostname (e.g. somewhere.com), a port (e.g. 8080), or an IP range (e.g. 192.1.0.0/16). If 'type' is 'application' or 'applicationCategory', then 'value' must be an object with an ID for the application." } } }, "description": "An ordered array of L7 firewall rules" } }, "description": " The firewall and traffic shaping rules and settings for your policy.\n" }, "contentFiltering": { "type": "object", "properties": { "allowedUrlPatterns": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "append", "network default", "override" ], "description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'." }, "patterns": { "type": "array", "items": { "type": "string" }, "description": "A list of URL patterns that are allowed" } }, "description": "Settings for allowed URL patterns" }, "blockedUrlPatterns": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "append", "network default", "override" ], "description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'." }, "patterns": { "type": "array", "items": { "type": "string" }, "description": "A list of URL patterns that are blocked" } }, "description": "Settings for blocked URL patterns" }, "blockedUrlCategories": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "append", "network default", "override" ], "description": "How URL categories are applied. Can be 'network default', 'append' or 'override'." }, "categories": { "type": "array", "items": { "type": "string" }, "description": "A list of URL categories to block" } }, "description": "Settings for blocked URL categories" } }, "description": "The content filtering settings for your group policy" }, "splashAuthSettings": { "type": "string", "enum": [ "bypass", "network default" ], "description": "Whether clients bound to your policy will bypass splash authorization or behave according to the network's rules. Can be one of 'network default' or 'bypass'. Only available if your network has a wireless configuration." }, "vlanTagging": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How VLAN tagging is applied. Can be 'network default', 'ignore' or 'custom'." }, "vlanId": { "type": "string", "description": "The ID of the vlan you want to tag. This only applies if 'settings' is set to 'custom'." } }, "description": "The VLAN tagging settings for your group policy. Only available if your network has a wireless configuration." }, "bonjourForwarding": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How Bonjour rules are applied. Can be 'network default', 'ignore' or 'custom'." }, "rules": { "type": "array", "items": { "type": "object", "properties": { "description": { "type": "string", "description": "A description for your Bonjour forwarding rule. Optional." }, "vlanId": { "type": "string", "description": "The ID of the service VLAN. Required." }, "services": { "type": "array", "items": { "type": "string", "enum": [ "AFP", "AirPlay", "All Services", "Apple screen share", "BitTorrent", "Chromecast", "FTP", "Printers", "SSH", "Samba", "Scanners", "Spotify", "iChat", "iTunes" ] }, "description": "A list of Bonjour services. At least one service must be specified. Available services are 'All Services', 'AFP', 'AirPlay', 'Apple screen share', 'BitTorrent', 'Chromecast', 'FTP', 'iChat', 'iTunes', 'Printers', 'Samba', 'Scanners', 'Spotify' and 'SSH'" } }, "required": [ "vlanId", "services" ] }, "description": "A list of the Bonjour forwarding rules for your group policy. If 'settings' is set to 'custom', at least one rule must be specified." } }, "description": "The Bonjour settings for your group policy. Only valid if your network has a wireless configuration." } } }, "example": { "groupPolicyId": "101", "scheduling": { "enabled": true, "monday": { "active": true, "from": "9:00", "to": "17:00" }, "tuesday": { "active": true, "from": "9:00", "to": "17:00" }, "wednesday": { "active": true, "from": "9:00", "to": "17:00" }, "thursday": { "active": true, "from": "9:00", "to": "17:00" }, "friday": { "active": true, "from": "9:00", "to": "17:00" }, "saturday": { "active": true, "from": "9:00", "to": "17:00" }, "sunday": { "active": true, "from": "9:00", "to": "17:00" } }, "bandwidth": { "settings": "custom", "bandwidthLimits": { "limitUp": 1000000, "limitDown": 1000000 } }, "firewallAndTrafficShaping": { "settings": "custom", "trafficShapingRules": [ { "definitions": [ { "type": "host", "value": "google.com" } ], "perClientBandwidthLimits": { "settings": "custom", "bandwidthLimits": { "limitUp": 1000000, "limitDown": 1000000 } }, "dscpTagValue": 0, "pcpTagValue": 0, "priority": "normal" } ], "l3FirewallRules": [ { "comment": "Allow TCP traffic to subnet with HTTP servers.", "policy": "allow", "protocol": "tcp", "destPort": "443", "destCidr": "192.168.1.0/24" } ], "l7FirewallRules": [ { "policy": "deny", "type": "host", "value": "google.com" } ] }, "contentFiltering": { "allowedUrlPatterns": { "settings": "network default", "patterns": [] }, "blockedUrlPatterns": { "settings": "append", "patterns": [ "http://www.example.com", "http://www.betting.com" ] }, "blockedUrlCategories": { "settings": "override", "categories": [ "meraki:contentFiltering/category/1", "meraki:contentFiltering/category/7" ] } }, "splashAuthSettings": "bypass", "vlanTagging": { "settings": "custom", "vlanId": "1" }, "bonjourForwarding": { "settings": "custom", "rules": [ { "description": "A simple bonjour rule", "vlanId": "1", "services": [ "All Services" ] } ] } } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Create a group policy", "tags": [ "networks", "configure", "groupPolicies" ] } }, "/networks/{networkId}/groupPolicies/{groupPolicyId}": { "get": { "description": "Display a group policy", "operationId": "getNetworkGroupPolicy", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "groupPolicyId", "in": "path", "description": "Group policy ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "groupPolicyId": { "type": "string", "description": "The ID of the group policy" }, "scheduling": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether scheduling is enabled (true) or disabled (false). Defaults to false. If true, the schedule objects for each day of the week (monday - sunday) are parsed." }, "monday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Monday." }, "tuesday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Tuesday." }, "wednesday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Wednesday." }, "thursday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Thursday." }, "friday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Friday." }, "saturday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Saturday." }, "sunday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Sunday." } }, "description": " The schedule for the group policy. Schedules are applied to days of the week.\n" }, "bandwidth": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How bandwidth limits are enforced. Can be 'network default', 'ignore' or 'custom'." }, "bandwidthLimits": { "type": "object", "properties": { "limitUp": { "type": "integer", "description": "The maximum upload limit (integer, in Kbps). null indicates no limit", "nullable": true }, "limitDown": { "type": "integer", "description": "The maximum download limit (integer, in Kbps). null indicates no limit", "nullable": true } }, "description": "The bandwidth limits object, specifying upload and download speed for clients bound to the group policy. These are only enforced if 'settings' is set to 'custom'." } }, "description": " The bandwidth settings for clients bound to your group policy.\n" }, "firewallAndTrafficShaping": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How firewall and traffic shaping rules are enforced. Can be 'network default', 'ignore' or 'custom'." }, "trafficShapingRules": { "type": "array", "items": { "type": "object", "properties": { "definitions": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "application", "applicationCategory", "host", "ipRange", "localNet", "port" ], "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", "nullable": true }, "pcpTagValue": { "type": "integer", "description": " The PCP tag applied by your rule. Can be 0 (lowest priority) through 7 (highest priority).\n null means 'Do not set PCP tag'.\n", "nullable": true }, "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" }, "l3FirewallRules": { "type": "array", "items": { "type": "object", "properties": { "comment": { "type": "string", "description": "Description of the rule (optional)" }, "policy": { "type": "string", "description": "'allow' or 'deny' traffic specified by this rule" }, "protocol": { "type": "string", "description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')" }, "destPort": { "type": "string", "description": "Destination port (integer in the range 1-65535), a port range (e.g. 8080-9090), or 'any'" }, "destCidr": { "type": "string", "description": "Destination IP address (in IP or CIDR notation), a fully-qualified domain name (FQDN, if your network supports it) or 'any'." } }, "required": [ "policy", "protocol", "destCidr" ] }, "description": "An ordered array of the L3 firewall rules" }, "l7FirewallRules": { "type": "array", "items": { "type": "object", "properties": { "policy": { "type": "string", "enum": [ "deny" ], "description": "The policy applied to matching traffic. Must be 'deny'." }, "type": { "type": "string", "enum": [ "application", "applicationCategory", "host", "ipRange", "port" ], "description": "Type of the L7 Rule. Must be 'application', 'applicationCategory', 'host', 'port' or 'ipRange'" }, "value": { "type": "string", "description": "The 'value' of what you want to block. If 'type' is 'host', 'port' or 'ipRange', 'value' must be a string matching either a hostname (e.g. somewhere.com), a port (e.g. 8080), or an IP range (e.g. 192.1.0.0/16). If 'type' is 'application' or 'applicationCategory', then 'value' must be an object with an ID for the application." } } }, "description": "An ordered array of L7 firewall rules" } }, "description": " The firewall and traffic shaping rules and settings for your policy.\n" }, "contentFiltering": { "type": "object", "properties": { "allowedUrlPatterns": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "append", "network default", "override" ], "description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'." }, "patterns": { "type": "array", "items": { "type": "string" }, "description": "A list of URL patterns that are allowed" } }, "description": "Settings for allowed URL patterns" }, "blockedUrlPatterns": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "append", "network default", "override" ], "description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'." }, "patterns": { "type": "array", "items": { "type": "string" }, "description": "A list of URL patterns that are blocked" } }, "description": "Settings for blocked URL patterns" }, "blockedUrlCategories": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "append", "network default", "override" ], "description": "How URL categories are applied. Can be 'network default', 'append' or 'override'." }, "categories": { "type": "array", "items": { "type": "string" }, "description": "A list of URL categories to block" } }, "description": "Settings for blocked URL categories" } }, "description": "The content filtering settings for your group policy" }, "splashAuthSettings": { "type": "string", "enum": [ "bypass", "network default" ], "description": "Whether clients bound to your policy will bypass splash authorization or behave according to the network's rules. Can be one of 'network default' or 'bypass'. Only available if your network has a wireless configuration." }, "vlanTagging": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How VLAN tagging is applied. Can be 'network default', 'ignore' or 'custom'." }, "vlanId": { "type": "string", "description": "The ID of the vlan you want to tag. This only applies if 'settings' is set to 'custom'." } }, "description": "The VLAN tagging settings for your group policy. Only available if your network has a wireless configuration." }, "bonjourForwarding": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How Bonjour rules are applied. Can be 'network default', 'ignore' or 'custom'." }, "rules": { "type": "array", "items": { "type": "object", "properties": { "description": { "type": "string", "description": "A description for your Bonjour forwarding rule. Optional." }, "vlanId": { "type": "string", "description": "The ID of the service VLAN. Required." }, "services": { "type": "array", "items": { "type": "string", "enum": [ "AFP", "AirPlay", "All Services", "Apple screen share", "BitTorrent", "Chromecast", "FTP", "Printers", "SSH", "Samba", "Scanners", "Spotify", "iChat", "iTunes" ] }, "description": "A list of Bonjour services. At least one service must be specified. Available services are 'All Services', 'AFP', 'AirPlay', 'Apple screen share', 'BitTorrent', 'Chromecast', 'FTP', 'iChat', 'iTunes', 'Printers', 'Samba', 'Scanners', 'Spotify' and 'SSH'" } }, "required": [ "vlanId", "services" ] }, "description": "A list of the Bonjour forwarding rules for your group policy. If 'settings' is set to 'custom', at least one rule must be specified." } }, "description": "The Bonjour settings for your group policy. Only valid if your network has a wireless configuration." } } }, "example": { "groupPolicyId": "101", "scheduling": { "enabled": true, "monday": { "active": true, "from": "9:00", "to": "17:00" }, "tuesday": { "active": true, "from": "9:00", "to": "17:00" }, "wednesday": { "active": true, "from": "9:00", "to": "17:00" }, "thursday": { "active": true, "from": "9:00", "to": "17:00" }, "friday": { "active": true, "from": "9:00", "to": "17:00" }, "saturday": { "active": true, "from": "9:00", "to": "17:00" }, "sunday": { "active": true, "from": "9:00", "to": "17:00" } }, "bandwidth": { "settings": "custom", "bandwidthLimits": { "limitUp": 1000000, "limitDown": 1000000 } }, "firewallAndTrafficShaping": { "settings": "custom", "trafficShapingRules": [ { "definitions": [ { "type": "host", "value": "google.com" } ], "perClientBandwidthLimits": { "settings": "custom", "bandwidthLimits": { "limitUp": 1000000, "limitDown": 1000000 } }, "dscpTagValue": 0, "pcpTagValue": 0, "priority": "normal" } ], "l3FirewallRules": [ { "comment": "Allow TCP traffic to subnet with HTTP servers.", "policy": "allow", "protocol": "tcp", "destPort": "443", "destCidr": "192.168.1.0/24" } ], "l7FirewallRules": [ { "policy": "deny", "type": "host", "value": "google.com" } ] }, "contentFiltering": { "allowedUrlPatterns": { "settings": "network default", "patterns": [] }, "blockedUrlPatterns": { "settings": "append", "patterns": [ "http://www.example.com", "http://www.betting.com" ] }, "blockedUrlCategories": { "settings": "override", "categories": [ "meraki:contentFiltering/category/1", "meraki:contentFiltering/category/7" ] } }, "splashAuthSettings": "bypass", "vlanTagging": { "settings": "custom", "vlanId": "1" }, "bonjourForwarding": { "settings": "custom", "rules": [ { "description": "A simple bonjour rule", "vlanId": "1", "services": [ "All Services" ] } ] } } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "Display a group policy", "tags": [ "networks", "configure", "groupPolicies" ] }, "put": { "description": "Update a group policy", "operationId": "updateNetworkGroupPolicy", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "groupPolicyId", "in": "path", "description": "Group policy ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "The name for your group policy." }, "scheduling": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether scheduling is enabled (true) or disabled (false). Defaults to false. If true, the schedule objects for each day of the week (monday - sunday) are parsed." }, "monday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Monday." }, "tuesday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Tuesday." }, "wednesday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Wednesday." }, "thursday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Thursday." }, "friday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Friday." }, "saturday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Saturday." }, "sunday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Sunday." } }, "description": " The schedule for the group policy. Schedules are applied to days of the week.\n" }, "bandwidth": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How bandwidth limits are enforced. Can be 'network default', 'ignore' or 'custom'." }, "bandwidthLimits": { "type": "object", "properties": { "limitUp": { "type": "integer", "description": "The maximum upload limit (integer, in Kbps). null indicates no limit", "nullable": true }, "limitDown": { "type": "integer", "description": "The maximum download limit (integer, in Kbps). null indicates no limit", "nullable": true } }, "description": "The bandwidth limits object, specifying upload and download speed for clients bound to the group policy. These are only enforced if 'settings' is set to 'custom'." } }, "description": " The bandwidth settings for clients bound to your group policy.\n" }, "firewallAndTrafficShaping": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How firewall and traffic shaping rules are enforced. Can be 'network default', 'ignore' or 'custom'." }, "trafficShapingRules": { "type": "array", "items": { "type": "object", "properties": { "definitions": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "application", "applicationCategory", "host", "ipRange", "localNet", "port" ], "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", "nullable": true }, "pcpTagValue": { "type": "integer", "description": " The PCP tag applied by your rule. Can be 0 (lowest priority) through 7 (highest priority).\n null means 'Do not set PCP tag'.\n", "nullable": true }, "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" }, "l3FirewallRules": { "type": "array", "items": { "type": "object", "properties": { "comment": { "type": "string", "description": "Description of the rule (optional)" }, "policy": { "type": "string", "description": "'allow' or 'deny' traffic specified by this rule" }, "protocol": { "type": "string", "description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')" }, "destPort": { "type": "string", "description": "Destination port (integer in the range 1-65535), a port range (e.g. 8080-9090), or 'any'" }, "destCidr": { "type": "string", "description": "Destination IP address (in IP or CIDR notation), a fully-qualified domain name (FQDN, if your network supports it) or 'any'." } }, "required": [ "policy", "protocol", "destCidr" ] }, "description": "An ordered array of the L3 firewall rules" }, "l7FirewallRules": { "type": "array", "items": { "type": "object", "properties": { "policy": { "type": "string", "enum": [ "deny" ], "description": "The policy applied to matching traffic. Must be 'deny'." }, "type": { "type": "string", "enum": [ "application", "applicationCategory", "host", "ipRange", "port" ], "description": "Type of the L7 Rule. Must be 'application', 'applicationCategory', 'host', 'port' or 'ipRange'" }, "value": { "type": "string", "description": "The 'value' of what you want to block. If 'type' is 'host', 'port' or 'ipRange', 'value' must be a string matching either a hostname (e.g. somewhere.com), a port (e.g. 8080), or an IP range (e.g. 192.1.0.0/16). If 'type' is 'application' or 'applicationCategory', then 'value' must be an object with an ID for the application." } } }, "description": "An ordered array of L7 firewall rules" } }, "description": " The firewall and traffic shaping rules and settings for your policy.\n" }, "contentFiltering": { "type": "object", "properties": { "allowedUrlPatterns": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "append", "network default", "override" ], "description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'." }, "patterns": { "type": "array", "items": { "type": "string" }, "description": "A list of URL patterns that are allowed" } }, "description": "Settings for allowed URL patterns" }, "blockedUrlPatterns": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "append", "network default", "override" ], "description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'." }, "patterns": { "type": "array", "items": { "type": "string" }, "description": "A list of URL patterns that are blocked" } }, "description": "Settings for blocked URL patterns" }, "blockedUrlCategories": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "append", "network default", "override" ], "description": "How URL categories are applied. Can be 'network default', 'append' or 'override'." }, "categories": { "type": "array", "items": { "type": "string" }, "description": "A list of URL categories to block" } }, "description": "Settings for blocked URL categories" } }, "description": "The content filtering settings for your group policy" }, "splashAuthSettings": { "type": "string", "enum": [ "bypass", "network default" ], "description": "Whether clients bound to your policy will bypass splash authorization or behave according to the network's rules. Can be one of 'network default' or 'bypass'. Only available if your network has a wireless configuration." }, "vlanTagging": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How VLAN tagging is applied. Can be 'network default', 'ignore' or 'custom'." }, "vlanId": { "type": "string", "description": "The ID of the vlan you want to tag. This only applies if 'settings' is set to 'custom'." } }, "description": "The VLAN tagging settings for your group policy. Only available if your network has a wireless configuration." }, "bonjourForwarding": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How Bonjour rules are applied. Can be 'network default', 'ignore' or 'custom'." }, "rules": { "type": "array", "items": { "type": "object", "properties": { "description": { "type": "string", "description": "A description for your Bonjour forwarding rule. Optional." }, "vlanId": { "type": "string", "description": "The ID of the service VLAN. Required." }, "services": { "type": "array", "items": { "type": "string", "enum": [ "AFP", "AirPlay", "All Services", "Apple screen share", "BitTorrent", "Chromecast", "FTP", "Printers", "SSH", "Samba", "Scanners", "Spotify", "iChat", "iTunes" ] }, "description": "A list of Bonjour services. At least one service must be specified. Available services are 'All Services', 'AFP', 'AirPlay', 'Apple screen share', 'BitTorrent', 'Chromecast', 'FTP', 'iChat', 'iTunes', 'Printers', 'Samba', 'Scanners', 'Spotify' and 'SSH'" } }, "required": [ "vlanId", "services" ] }, "description": "A list of the Bonjour forwarding rules for your group policy. If 'settings' is set to 'custom', at least one rule must be specified." } }, "description": "The Bonjour settings for your group policy. Only valid if your network has a wireless configuration." } }, "example": { "name": "No video streaming", "scheduling": { "enabled": true, "monday": { "active": true, "from": "9:00", "to": "17:00" }, "tuesday": { "active": true, "from": "9:00", "to": "17:00" }, "wednesday": { "active": true, "from": "9:00", "to": "17:00" }, "thursday": { "active": true, "from": "9:00", "to": "17:00" }, "friday": { "active": true, "from": "9:00", "to": "17:00" }, "saturday": { "active": true, "from": "9:00", "to": "17:00" }, "sunday": { "active": true, "from": "9:00", "to": "17:00" } }, "bandwidth": { "settings": "custom", "bandwidthLimits": { "limitUp": 1000000, "limitDown": 1000000 } }, "firewallAndTrafficShaping": { "settings": "custom", "trafficShapingRules": [ { "definitions": [ { "type": "host", "value": "google.com" } ], "perClientBandwidthLimits": { "settings": "custom", "bandwidthLimits": { "limitUp": 1000000, "limitDown": 1000000 } }, "dscpTagValue": 0, "pcpTagValue": 0, "priority": "normal" } ], "l3FirewallRules": [ { "comment": "Allow TCP traffic to subnet with HTTP servers.", "policy": "allow", "protocol": "tcp", "destPort": "443", "destCidr": "192.168.1.0/24" } ], "l7FirewallRules": [ { "policy": "deny", "type": "host", "value": "google.com" } ] }, "contentFiltering": { "allowedUrlPatterns": { "settings": "network default", "patterns": [] }, "blockedUrlPatterns": { "settings": "append", "patterns": [ "http://www.example.com", "http://www.betting.com" ] }, "blockedUrlCategories": { "settings": "override", "categories": [ "meraki:contentFiltering/category/1", "meraki:contentFiltering/category/7" ] } }, "splashAuthSettings": "bypass", "vlanTagging": { "settings": "custom", "vlanId": "1" }, "bonjourForwarding": { "settings": "custom", "rules": [ { "description": "A simple bonjour rule", "vlanId": "1", "services": [ "All Services" ] } ] } } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "groupPolicyId": { "type": "string", "description": "The ID of the group policy" }, "scheduling": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether scheduling is enabled (true) or disabled (false). Defaults to false. If true, the schedule objects for each day of the week (monday - sunday) are parsed." }, "monday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Monday." }, "tuesday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Tuesday." }, "wednesday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Wednesday." }, "thursday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Thursday." }, "friday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Friday." }, "saturday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Saturday." }, "sunday": { "type": "object", "properties": { "active": { "type": "boolean", "description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true." }, "from": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed." }, "to": { "type": "string", "description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed." } }, "description": "The schedule object for Sunday." } }, "description": " The schedule for the group policy. Schedules are applied to days of the week.\n" }, "bandwidth": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How bandwidth limits are enforced. Can be 'network default', 'ignore' or 'custom'." }, "bandwidthLimits": { "type": "object", "properties": { "limitUp": { "type": "integer", "description": "The maximum upload limit (integer, in Kbps). null indicates no limit", "nullable": true }, "limitDown": { "type": "integer", "description": "The maximum download limit (integer, in Kbps). null indicates no limit", "nullable": true } }, "description": "The bandwidth limits object, specifying upload and download speed for clients bound to the group policy. These are only enforced if 'settings' is set to 'custom'." } }, "description": " The bandwidth settings for clients bound to your group policy.\n" }, "firewallAndTrafficShaping": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How firewall and traffic shaping rules are enforced. Can be 'network default', 'ignore' or 'custom'." }, "trafficShapingRules": { "type": "array", "items": { "type": "object", "properties": { "definitions": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "application", "applicationCategory", "host", "ipRange", "localNet", "port" ], "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", "nullable": true }, "pcpTagValue": { "type": "integer", "description": " The PCP tag applied by your rule. Can be 0 (lowest priority) through 7 (highest priority).\n null means 'Do not set PCP tag'.\n", "nullable": true }, "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" }, "l3FirewallRules": { "type": "array", "items": { "type": "object", "properties": { "comment": { "type": "string", "description": "Description of the rule (optional)" }, "policy": { "type": "string", "description": "'allow' or 'deny' traffic specified by this rule" }, "protocol": { "type": "string", "description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')" }, "destPort": { "type": "string", "description": "Destination port (integer in the range 1-65535), a port range (e.g. 8080-9090), or 'any'" }, "destCidr": { "type": "string", "description": "Destination IP address (in IP or CIDR notation), a fully-qualified domain name (FQDN, if your network supports it) or 'any'." } }, "required": [ "policy", "protocol", "destCidr" ] }, "description": "An ordered array of the L3 firewall rules" }, "l7FirewallRules": { "type": "array", "items": { "type": "object", "properties": { "policy": { "type": "string", "enum": [ "deny" ], "description": "The policy applied to matching traffic. Must be 'deny'." }, "type": { "type": "string", "enum": [ "application", "applicationCategory", "host", "ipRange", "port" ], "description": "Type of the L7 Rule. Must be 'application', 'applicationCategory', 'host', 'port' or 'ipRange'" }, "value": { "type": "string", "description": "The 'value' of what you want to block. If 'type' is 'host', 'port' or 'ipRange', 'value' must be a string matching either a hostname (e.g. somewhere.com), a port (e.g. 8080), or an IP range (e.g. 192.1.0.0/16). If 'type' is 'application' or 'applicationCategory', then 'value' must be an object with an ID for the application." } } }, "description": "An ordered array of L7 firewall rules" } }, "description": " The firewall and traffic shaping rules and settings for your policy.\n" }, "contentFiltering": { "type": "object", "properties": { "allowedUrlPatterns": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "append", "network default", "override" ], "description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'." }, "patterns": { "type": "array", "items": { "type": "string" }, "description": "A list of URL patterns that are allowed" } }, "description": "Settings for allowed URL patterns" }, "blockedUrlPatterns": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "append", "network default", "override" ], "description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'." }, "patterns": { "type": "array", "items": { "type": "string" }, "description": "A list of URL patterns that are blocked" } }, "description": "Settings for blocked URL patterns" }, "blockedUrlCategories": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "append", "network default", "override" ], "description": "How URL categories are applied. Can be 'network default', 'append' or 'override'." }, "categories": { "type": "array", "items": { "type": "string" }, "description": "A list of URL categories to block" } }, "description": "Settings for blocked URL categories" } }, "description": "The content filtering settings for your group policy" }, "splashAuthSettings": { "type": "string", "enum": [ "bypass", "network default" ], "description": "Whether clients bound to your policy will bypass splash authorization or behave according to the network's rules. Can be one of 'network default' or 'bypass'. Only available if your network has a wireless configuration." }, "vlanTagging": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How VLAN tagging is applied. Can be 'network default', 'ignore' or 'custom'." }, "vlanId": { "type": "string", "description": "The ID of the vlan you want to tag. This only applies if 'settings' is set to 'custom'." } }, "description": "The VLAN tagging settings for your group policy. Only available if your network has a wireless configuration." }, "bonjourForwarding": { "type": "object", "properties": { "settings": { "type": "string", "enum": [ "custom", "ignore", "network default" ], "description": "How Bonjour rules are applied. Can be 'network default', 'ignore' or 'custom'." }, "rules": { "type": "array", "items": { "type": "object", "properties": { "description": { "type": "string", "description": "A description for your Bonjour forwarding rule. Optional." }, "vlanId": { "type": "string", "description": "The ID of the service VLAN. Required." }, "services": { "type": "array", "items": { "type": "string", "enum": [ "AFP", "AirPlay", "All Services", "Apple screen share", "BitTorrent", "Chromecast", "FTP", "Printers", "SSH", "Samba", "Scanners", "Spotify", "iChat", "iTunes" ] }, "description": "A list of Bonjour services. At least one service must be specified. Available services are 'All Services', 'AFP', 'AirPlay', 'Apple screen share', 'BitTorrent', 'Chromecast', 'FTP', 'iChat', 'iTunes', 'Printers', 'Samba', 'Scanners', 'Spotify' and 'SSH'" } }, "required": [ "vlanId", "services" ] }, "description": "A list of the Bonjour forwarding rules for your group policy. If 'settings' is set to 'custom', at least one rule must be specified." } }, "description": "The Bonjour settings for your group policy. Only valid if your network has a wireless configuration." } } }, "example": { "groupPolicyId": "101", "scheduling": { "enabled": true, "monday": { "active": true, "from": "9:00", "to": "17:00" }, "tuesday": { "active": true, "from": "9:00", "to": "17:00" }, "wednesday": { "active": true, "from": "9:00", "to": "17:00" }, "thursday": { "active": true, "from": "9:00", "to": "17:00" }, "friday": { "active": true, "from": "9:00", "to": "17:00" }, "saturday": { "active": true, "from": "9:00", "to": "17:00" }, "sunday": { "active": true, "from": "9:00", "to": "17:00" } }, "bandwidth": { "settings": "custom", "bandwidthLimits": { "limitUp": 1000000, "limitDown": 1000000 } }, "firewallAndTrafficShaping": { "settings": "custom", "trafficShapingRules": [ { "definitions": [ { "type": "host", "value": "google.com" } ], "perClientBandwidthLimits": { "settings": "custom", "bandwidthLimits": { "limitUp": 1000000, "limitDown": 1000000 } }, "dscpTagValue": 0, "pcpTagValue": 0, "priority": "normal" } ], "l3FirewallRules": [ { "comment": "Allow TCP traffic to subnet with HTTP servers.", "policy": "allow", "protocol": "tcp", "destPort": "443", "destCidr": "192.168.1.0/24" } ], "l7FirewallRules": [ { "policy": "deny", "type": "host", "value": "google.com" } ] }, "contentFiltering": { "allowedUrlPatterns": { "settings": "network default", "patterns": [] }, "blockedUrlPatterns": { "settings": "append", "patterns": [ "http://www.example.com", "http://www.betting.com" ] }, "blockedUrlCategories": { "settings": "override", "categories": [ "meraki:contentFiltering/category/1", "meraki:contentFiltering/category/7" ] } }, "splashAuthSettings": "bypass", "vlanTagging": { "settings": "custom", "vlanId": "1" }, "bonjourForwarding": { "settings": "custom", "rules": [ { "description": "A simple bonjour rule", "vlanId": "1", "services": [ "All Services" ] } ] } } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Update a group policy", "tags": [ "networks", "configure", "groupPolicies" ] }, "delete": { "description": "Delete a group policy", "operationId": "deleteNetworkGroupPolicy", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "groupPolicyId", "in": "path", "description": "Group policy ID", "schema": { "type": "string" }, "required": true }, { "x-release-stage": "general_availability", "name": "force", "in": "query", "description": "If true, the system deletes the GP even if there are active clients using the GP. After deletion, active clients that were assigned to that Group Policy will be left without any policy applied. Default is false.", "schema": { "type": "boolean" } } ], "responses": { "204": { "description": "Successful operation" } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Delete a group policy", "tags": [ "networks", "configure", "groupPolicies" ] } }, "/networks/{networkId}/health/alerts": { "get": { "deprecated": true, "description": "Return all global alerts on this network", "operationId": "getNetworkHealthAlerts", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Alert identifier. Value can be empty" }, "category": { "type": "string", "description": "Category of the alert" }, "type": { "type": "string", "description": "Alert type" }, "severity": { "type": "string", "enum": [ "error", "info", "warning" ], "description": "Severity of the alert" }, "scope": { "type": "object", "properties": { "devices": { "type": "array", "items": { "type": "object", "properties": { "url": { "type": "string", "description": "URL to the device" }, "name": { "type": "string", "description": "Name of the device" }, "productType": { "type": "string", "description": "Product type of the device" }, "serial": { "type": "string", "description": "Serial number of the device" }, "mac": { "type": "string", "description": "The mac address of the device" }, "lldp": { "type": "object", "properties": { "portId": { "type": "string", "description": "Port Id" } }, "description": "Lldp information" }, "clients": { "type": "array", "items": { "type": "object", "properties": { "mac": { "type": "string", "description": "Mac address of the client" } } }, "description": "Clients related to the device" } } }, "description": "Devices related to the alert" }, "applications": { "type": "array", "items": { "type": "object", "properties": { "url": { "type": "string", "description": "URL to the application" }, "name": { "type": "string", "description": "Name of the application" } } }, "description": "Applications related to the alert" }, "peers": { "type": "array", "items": { "type": "object", "properties": { "url": { "type": "string", "description": "URL to the peer" }, "network": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the network" }, "id": { "type": "string", "description": "Id of the network" } }, "description": "Network of the peer" } } }, "description": "Peers related to the alert" } }, "description": "The scope of the alert" } } } }, "example": [ { "id": "1234", "category": "Connectivity", "type": "Poor connectivity to the Meraki cloud", "severity": "info", "scope": { "devices": [ { "url": "https://n1.meraki.com//n//manage/nodes/new_list/000000000000", "name": "My AP", "productType": "switch", "serial": "Q234-ABCD-5678", "mac": "00:11:22:33:44:55", "lldp": { "portId": "1" }, "clients": [ { "mac": "22:33:44:55:66:77" } ] } ], "applications": [ { "url": "https://n1.meraki.com//n//manage/nodes/list", "name": "Application on application server" } ], "peers": [ { "url": "https://n1.meraki.com//n//manage/nodes/list", "network": { "name": "Main Office", "id": "N_24329156" } } ] } } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "Return all global alerts on this network", "tags": [ "networks", "configure", "health", "alerts" ], "x-deprecation-notice": "Deprecated: This operation has been marked as deprecated. For more information, visit the deprecated operations page" } }, "/networks/{networkId}/merakiAuthUsers": { "get": { "description": "List the authorized users configured under Meraki Authentication for a network (splash guest or RADIUS users for a wireless network, or client VPN users for a MX network)", "operationId": "getNetworkMerakiAuthUsers", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Meraki auth user id" }, "email": { "type": "string", "description": "Email address of the user" }, "name": { "type": "string", "description": "Name of the user" }, "createdAt": { "type": "string", "format": "date-time", "description": "Creation time of the user" }, "accountType": { "type": "string", "description": "Authorization type for user." }, "isAdmin": { "type": "boolean", "description": "Whether or not the user is a Dashboard administrator" }, "authorizations": { "type": "array", "items": { "type": "object", "properties": { "ssidNumber": { "type": "integer", "description": "SSID number" }, "authorizedZone": { "type": "string", "description": "Authorized zone of the user" }, "expiresAt": { "type": "string", "format": "date-time", "description": "Authorization expiration time" }, "authorizedByName": { "type": "string", "description": "User is authorized by the account name" }, "authorizedByEmail": { "type": "string", "description": "User is authorized by the account email address" } } }, "description": "User authorization info" } } } }, "example": [ { "id": "aGlAaGkuY29t", "email": "miles@meraki.com", "name": "Miles Meraki", "createdAt": "2018-02-11T00:00:00.090210Z", "accountType": "802.1X", "isAdmin": false, "authorizations": [ { "ssidNumber": 1, "authorizedZone": "Store WiFi", "expiresAt": "2018-03-13T00:00:00.090210Z", "authorizedByName": "Miles Meraki", "authorizedByEmail": "miles@meraki.com" } ] } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "List the authorized users configured under Meraki Authentication for a network (splash guest or RADIUS users for a wireless network, or client VPN users for a MX network)", "tags": [ "networks", "configure", "merakiAuthUsers" ] }, "post": { "description": "Authorize a user configured with Meraki Authentication for a network (currently supports 802.1X, splash guest, and client VPN users, and currently, organizations have a 50,000 user cap)", "operationId": "createNetworkMerakiAuthUser", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "email": { "type": "string", "description": "Email address of the user" }, "name": { "type": "string", "description": "Name of the user. Only required If the user is not a Dashboard administrator." }, "password": { "type": "string", "description": "The password for this user account. Only required If the user is not a Dashboard administrator." }, "accountType": { "type": "string", "enum": [ "802.1X", "Client VPN", "Guest" ], "description": "Authorization type for user. Can be 'Guest' or '802.1X' for wireless networks, or 'Client VPN' for MX networks. Defaults to '802.1X'.", "default": "802.1X" }, "emailPasswordToUser": { "type": "boolean", "description": "Whether or not Meraki should email the password to user. Default is false." }, "isAdmin": { "type": "boolean", "description": "Whether or not the user is a Dashboard administrator." }, "authorizations": { "type": "array", "items": { "type": "object", "properties": { "ssidNumber": { "type": "integer", "description": "Required for wireless networks. The SSID for which the user is being authorized, which must be configured for the user's given accountType." }, "expiresAt": { "type": "string", "description": "Date for authorization to expire. Set to 'Never' for the authorization to not expire, which is the default.", "default": "Never" } } }, "description": "Authorization zones and expiration dates for the user." } }, "example": { "email": "miles@meraki.com", "name": "Miles Meraki", "password": "secret", "accountType": "802.1X", "emailPasswordToUser": false, "isAdmin": false, "authorizations": [ { "ssidNumber": 1, "expiresAt": "2018-03-13T00:00:00.090210Z" } ] }, "required": [ "email", "authorizations" ] } } }, "required": true }, "responses": { "201": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Meraki auth user id" }, "email": { "type": "string", "description": "Email address of the user" }, "name": { "type": "string", "description": "Name of the user" }, "createdAt": { "type": "string", "format": "date-time", "description": "Creation time of the user" }, "accountType": { "type": "string", "description": "Authorization type for user." }, "isAdmin": { "type": "boolean", "description": "Whether or not the user is a Dashboard administrator" }, "authorizations": { "type": "array", "items": { "type": "object", "properties": { "ssidNumber": { "type": "integer", "description": "SSID number" }, "authorizedZone": { "type": "string", "description": "Authorized zone of the user" }, "expiresAt": { "type": "string", "format": "date-time", "description": "Authorization expiration time" }, "authorizedByName": { "type": "string", "description": "User is authorized by the account name" }, "authorizedByEmail": { "type": "string", "description": "User is authorized by the account email address" } } }, "description": "User authorization info" } } }, "example": { "id": "aGlAaGkuY29t", "email": "miles@meraki.com", "name": "Miles Meraki", "createdAt": "2018-02-11T00:00:00.090210Z", "accountType": "802.1X", "isAdmin": false, "authorizations": [ { "ssidNumber": 1, "authorizedZone": "Store WiFi", "expiresAt": "2018-03-13T00:00:00.090210Z", "authorizedByName": "Miles Meraki", "authorizedByEmail": "miles@meraki.com" } ] } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Authorize a user configured with Meraki Authentication for a network (currently supports 802.1X, splash guest, and client VPN users, and currently, organizations have a 50,000 user cap)", "tags": [ "networks", "configure", "merakiAuthUsers" ] } }, "/networks/{networkId}/merakiAuthUsers/{merakiAuthUserId}": { "get": { "description": "Return the Meraki Auth splash guest, RADIUS, or client VPN user", "operationId": "getNetworkMerakiAuthUser", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "merakiAuthUserId", "in": "path", "description": "Meraki auth user ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Meraki auth user id" }, "email": { "type": "string", "description": "Email address of the user" }, "name": { "type": "string", "description": "Name of the user" }, "createdAt": { "type": "string", "format": "date-time", "description": "Creation time of the user" }, "accountType": { "type": "string", "description": "Authorization type for user." }, "isAdmin": { "type": "boolean", "description": "Whether or not the user is a Dashboard administrator" }, "authorizations": { "type": "array", "items": { "type": "object", "properties": { "ssidNumber": { "type": "integer", "description": "SSID number" }, "authorizedZone": { "type": "string", "description": "Authorized zone of the user" }, "expiresAt": { "type": "string", "format": "date-time", "description": "Authorization expiration time" }, "authorizedByName": { "type": "string", "description": "User is authorized by the account name" }, "authorizedByEmail": { "type": "string", "description": "User is authorized by the account email address" } } }, "description": "User authorization info" } } }, "example": { "id": "aGlAaGkuY29t", "email": "miles@meraki.com", "name": "Miles Meraki", "createdAt": "2018-02-11T00:00:00.090210Z", "accountType": "802.1X", "isAdmin": false, "authorizations": [ { "ssidNumber": 1, "authorizedZone": "Store WiFi", "expiresAt": "2018-03-13T00:00:00.090210Z", "authorizedByName": "Miles Meraki", "authorizedByEmail": "miles@meraki.com" } ] } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "Return the Meraki Auth splash guest, RADIUS, or client VPN user", "tags": [ "networks", "configure", "merakiAuthUsers" ] }, "delete": { "description": "Delete an 802.1X RADIUS user, or deauthorize and optionally delete a splash guest or client VPN user.", "operationId": "deleteNetworkMerakiAuthUser", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "merakiAuthUserId", "in": "path", "description": "Meraki auth user ID", "schema": { "type": "string" }, "required": true }, { "name": "delete", "in": "query", "description": "If the ID supplied is for a splash guest or client VPN user, and that user is not authorized for any other networks in the organization, then also delete the user. 802.1X RADIUS users are always deleted regardless of this optional attribute.", "schema": { "type": "boolean" } } ], "responses": { "204": { "description": "Successful operation" } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Delete an 802.1X RADIUS user, or deauthorize and optionally delete a splash guest or client VPN user.", "tags": [ "networks", "configure", "merakiAuthUsers" ] }, "put": { "description": "Update a user configured with Meraki Authentication (currently, 802.1X RADIUS, splash guest, and client VPN users can be updated)", "operationId": "updateNetworkMerakiAuthUser", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "merakiAuthUserId", "in": "path", "description": "Meraki auth user ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the user. Only allowed If the user is not Dashboard administrator." }, "password": { "type": "string", "description": "The password for this user account. Only allowed If the user is not Dashboard administrator." }, "emailPasswordToUser": { "type": "boolean", "description": "Whether or not Meraki should email the password to user. Default is false." }, "authorizations": { "type": "array", "items": { "type": "object", "properties": { "ssidNumber": { "type": "integer", "description": "SSID for which the user is being authorized" }, "expiresAt": { "type": "string", "description": "Date for authorization to expire. Default is for authorization to not expire.", "default": "Never" } }, "required": [ "ssidNumber" ] }, "description": "Authorization zones and expiration dates for the user." } }, "example": { "name": "Miles Meraki", "password": "secret", "emailPasswordToUser": false, "authorizations": [ { "ssidNumber": 1, "expiresAt": "2018-03-13T00:00:00.090210Z" } ] } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Meraki auth user id" }, "email": { "type": "string", "description": "Email address of the user" }, "name": { "type": "string", "description": "Name of the user" }, "createdAt": { "type": "string", "format": "date-time", "description": "Creation time of the user" }, "accountType": { "type": "string", "description": "Authorization type for user." }, "isAdmin": { "type": "boolean", "description": "Whether or not the user is a Dashboard administrator" }, "authorizations": { "type": "array", "items": { "type": "object", "properties": { "ssidNumber": { "type": "integer", "description": "SSID number" }, "authorizedZone": { "type": "string", "description": "Authorized zone of the user" }, "expiresAt": { "type": "string", "format": "date-time", "description": "Authorization expiration time" }, "authorizedByName": { "type": "string", "description": "User is authorized by the account name" }, "authorizedByEmail": { "type": "string", "description": "User is authorized by the account email address" } } }, "description": "User authorization info" } } }, "example": { "id": "aGlAaGkuY29t", "email": "miles@meraki.com", "name": "Miles Meraki", "createdAt": "2018-02-11T00:00:00.090210Z", "accountType": "802.1X", "isAdmin": false, "authorizations": [ { "ssidNumber": 1, "authorizedZone": "Store WiFi", "expiresAt": "2018-03-13T00:00:00.090210Z", "authorizedByName": "Miles Meraki", "authorizedByEmail": "miles@meraki.com" } ] } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Update a user configured with Meraki Authentication (currently, 802.1X RADIUS, splash guest, and client VPN users can be updated)", "tags": [ "networks", "configure", "merakiAuthUsers" ] } }, "/networks/{networkId}/mqttBrokers": { "get": { "description": "List the MQTT brokers for this network", "operationId": "getNetworkMqttBrokers", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the MQTT Broker." }, "name": { "type": "string", "description": "Name of the MQTT Broker." }, "host": { "type": "string", "description": "Host name/IP address where the MQTT broker runs." }, "port": { "type": "integer", "description": "Host port though which the MQTT broker can be reached." }, "security": { "type": "object", "properties": { "mode": { "type": "string", "description": "Security protocol of the MQTT broker." }, "tls": { "type": "object", "properties": { "hasCaCertificate": { "type": "boolean", "description": "Indicates whether the CA certificate is set" }, "verifyHostnames": { "type": "boolean", "description": "Whether the TLS hostname verification is enabled for the MQTT broker." } }, "description": "TLS settings of the MQTT broker." } }, "description": "Security settings of the MQTT broker." }, "authentication": { "type": "object", "properties": { "username": { "type": "string", "description": "Username for the MQTT broker." } }, "description": "Authentication settings of the MQTT broker" } } } }, "example": [ { "id": "1234", "name": "MQTT_Broker_1", "host": "1.2.3.4", "port": 443, "security": { "mode": "tls", "tls": { "hasCaCertificate": true, "verifyHostnames": true } }, "authentication": { "username": "milesmeraki" } } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "List the MQTT brokers for this network", "tags": [ "networks", "configure", "mqttBrokers" ] }, "post": { "description": "Add an MQTT broker", "operationId": "createNetworkMqttBroker", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the MQTT broker." }, "host": { "type": "string", "description": "Host name/IP address where the MQTT broker runs." }, "port": { "type": "integer", "description": "Host port though which the MQTT broker can be reached." }, "security": { "type": "object", "properties": { "mode": { "type": "string", "description": "Security protocol of the MQTT broker." }, "tls": { "type": "object", "properties": { "caCertificate": { "type": "string", "description": "CA Certificate of the MQTT broker.", "nullable": true }, "verifyHostnames": { "type": "boolean", "description": "Whether the TLS hostname verification is enabled for the MQTT broker." } }, "description": "TLS settings of the MQTT broker." } }, "description": "Security settings of the MQTT broker." }, "authentication": { "type": "object", "properties": { "username": { "type": "string", "description": "Username for the MQTT broker.", "nullable": true }, "password": { "type": "string", "description": "Password for the MQTT broker.", "nullable": true } }, "description": "Authentication settings of the MQTT broker" } }, "example": { "name": "MQTT_Broker_1", "host": "1.2.3.4", "port": 443, "security": { "mode": "tls", "tls": { "caCertificate": "*****", "verifyHostnames": true } }, "authentication": { "username": "milesmeraki", "password": "*****" } }, "required": [ "name", "host", "port" ] } } }, "required": true }, "responses": { "201": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the MQTT Broker." }, "name": { "type": "string", "description": "Name of the MQTT Broker." }, "host": { "type": "string", "description": "Host name/IP address where the MQTT broker runs." }, "port": { "type": "integer", "description": "Host port though which the MQTT broker can be reached." }, "security": { "type": "object", "properties": { "mode": { "type": "string", "description": "Security protocol of the MQTT broker." }, "tls": { "type": "object", "properties": { "hasCaCertificate": { "type": "boolean", "description": "Indicates whether the CA certificate is set" }, "verifyHostnames": { "type": "boolean", "description": "Whether the TLS hostname verification is enabled for the MQTT broker." } }, "description": "TLS settings of the MQTT broker." } }, "description": "Security settings of the MQTT broker." }, "authentication": { "type": "object", "properties": { "username": { "type": "string", "description": "Username for the MQTT broker." } }, "description": "Authentication settings of the MQTT broker" } } }, "example": { "id": "1234", "name": "MQTT_Broker_1", "host": "1.2.3.4", "port": 443, "security": { "mode": "tls", "tls": { "hasCaCertificate": true, "verifyHostnames": true } }, "authentication": { "username": "milesmeraki" } } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:write" ] } ], "summary": "Add an MQTT broker", "tags": [ "networks", "configure", "mqttBrokers" ] } }, "/networks/{networkId}/mqttBrokers/{mqttBrokerId}": { "get": { "description": "Return an MQTT broker", "operationId": "getNetworkMqttBroker", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "mqttBrokerId", "in": "path", "description": "Mqtt broker ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the MQTT Broker." }, "name": { "type": "string", "description": "Name of the MQTT Broker." }, "host": { "type": "string", "description": "Host name/IP address where the MQTT broker runs." }, "port": { "type": "integer", "description": "Host port though which the MQTT broker can be reached." }, "security": { "type": "object", "properties": { "mode": { "type": "string", "description": "Security protocol of the MQTT broker." }, "tls": { "type": "object", "properties": { "hasCaCertificate": { "type": "boolean", "description": "Indicates whether the CA certificate is set" }, "verifyHostnames": { "type": "boolean", "description": "Whether the TLS hostname verification is enabled for the MQTT broker." } }, "description": "TLS settings of the MQTT broker." } }, "description": "Security settings of the MQTT broker." }, "authentication": { "type": "object", "properties": { "username": { "type": "string", "description": "Username for the MQTT broker." } }, "description": "Authentication settings of the MQTT broker" } } }, "example": { "id": "1234", "name": "MQTT_Broker_1", "host": "1.2.3.4", "port": 443, "security": { "mode": "tls", "tls": { "hasCaCertificate": true, "verifyHostnames": true } }, "authentication": { "username": "milesmeraki" } } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "Return an MQTT broker", "tags": [ "networks", "configure", "mqttBrokers" ] }, "put": { "description": "Update an MQTT broker", "operationId": "updateNetworkMqttBroker", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "mqttBrokerId", "in": "path", "description": "Mqtt broker ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the MQTT broker." }, "host": { "type": "string", "description": "Host name/IP address where the MQTT broker runs." }, "port": { "type": "integer", "description": "Host port though which the MQTT broker can be reached." }, "security": { "type": "object", "properties": { "mode": { "type": "string", "description": "Security protocol of the MQTT broker." }, "tls": { "type": "object", "properties": { "caCertificate": { "type": "string", "description": "CA Certificate of the MQTT broker.", "nullable": true }, "verifyHostnames": { "type": "boolean", "description": "Whether the TLS hostname verification is enabled for the MQTT broker." } }, "description": "TLS settings of the MQTT broker." } }, "description": "Security settings of the MQTT broker." }, "authentication": { "type": "object", "properties": { "username": { "type": "string", "description": "Username for the MQTT broker.", "nullable": true }, "password": { "type": "string", "description": "Password for the MQTT broker.", "nullable": true } }, "description": "Authentication settings of the MQTT broker" } }, "example": { "name": "MQTT_Broker_1", "host": "1.2.3.4", "port": 443, "security": { "mode": "tls", "tls": { "caCertificate": "******", "verifyHostnames": true } }, "authentication": { "username": "milesmeraki", "password": "*****" } } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the MQTT Broker." }, "name": { "type": "string", "description": "Name of the MQTT Broker." }, "host": { "type": "string", "description": "Host name/IP address where the MQTT broker runs." }, "port": { "type": "integer", "description": "Host port though which the MQTT broker can be reached." }, "security": { "type": "object", "properties": { "mode": { "type": "string", "description": "Security protocol of the MQTT broker." }, "tls": { "type": "object", "properties": { "hasCaCertificate": { "type": "boolean", "description": "Indicates whether the CA certificate is set" }, "verifyHostnames": { "type": "boolean", "description": "Whether the TLS hostname verification is enabled for the MQTT broker." } }, "description": "TLS settings of the MQTT broker." } }, "description": "Security settings of the MQTT broker." }, "authentication": { "type": "object", "properties": { "username": { "type": "string", "description": "Username for the MQTT broker." } }, "description": "Authentication settings of the MQTT broker" } } }, "example": { "id": "1234", "name": "MQTT_Broker_1", "host": "1.2.3.4", "port": 443, "security": { "mode": "tls", "tls": { "hasCaCertificate": true, "verifyHostnames": true } }, "authentication": { "username": "milesmeraki" } } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:write" ] } ], "summary": "Update an MQTT broker", "tags": [ "networks", "configure", "mqttBrokers" ] }, "delete": { "description": "Delete an MQTT broker", "operationId": "deleteNetworkMqttBroker", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "mqttBrokerId", "in": "path", "description": "Mqtt broker ID", "schema": { "type": "string" }, "required": true } ], "responses": { "204": { "description": "Successful operation" } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:write" ] } ], "summary": "Delete an MQTT broker", "tags": [ "networks", "configure", "mqttBrokers" ] } }, "/networks/{networkId}/netflow": { "get": { "description": "Return the NetFlow traffic reporting settings for a network", "operationId": "getNetworkNetflow", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "reportingEnabled": { "type": "boolean", "description": "Boolean indicating whether NetFlow traffic reporting is enabled (true) or disabled (false)." }, "collectorIp": { "type": "string", "description": "The IPv4 address of the NetFlow collector." }, "collectorPort": { "type": "integer", "description": "The port that the NetFlow collector will be listening on." }, "etaEnabled": { "type": "boolean", "description": "Boolean indicating whether Encrypted Traffic Analytics is enabled (true) or disabled (false)." }, "etaDstPort": { "type": "integer", "description": "The port that the Encrypted Traffic Analytics collector will be listening on." } } }, "example": { "reportingEnabled": true, "collectorIp": "1.2.3.4", "collectorPort": 443, "etaEnabled": true, "etaDstPort": 443 } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "Return the NetFlow traffic reporting settings for a network", "tags": [ "networks", "configure", "netflow" ] }, "put": { "description": "Update the NetFlow traffic reporting settings for a network", "operationId": "updateNetworkNetflow", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "reportingEnabled": { "type": "boolean", "description": "Boolean indicating whether NetFlow traffic reporting is enabled (true) or disabled (false)." }, "collectorIp": { "type": "string", "description": "The IPv4 address of the NetFlow collector." }, "collectorPort": { "type": "integer", "description": "The port that the NetFlow collector will be listening on." }, "etaEnabled": { "type": "boolean", "description": "Boolean indicating whether Encrypted Traffic Analytics is enabled (true) or disabled (false)." }, "etaDstPort": { "type": "integer", "description": "The port that the Encrypted Traffic Analytics collector will be listening on." } }, "example": {} } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "reportingEnabled": { "type": "boolean", "description": "Boolean indicating whether NetFlow traffic reporting is enabled (true) or disabled (false)." }, "collectorIp": { "type": "string", "description": "The IPv4 address of the NetFlow collector." }, "collectorPort": { "type": "integer", "description": "The port that the NetFlow collector will be listening on." }, "etaEnabled": { "type": "boolean", "description": "Boolean indicating whether Encrypted Traffic Analytics is enabled (true) or disabled (false)." }, "etaDstPort": { "type": "integer", "description": "The port that the Encrypted Traffic Analytics collector will be listening on." } } }, "example": { "reportingEnabled": true, "collectorIp": "1.2.3.4", "collectorPort": 443, "etaEnabled": true, "etaDstPort": 443 } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:write" ] } ], "summary": "Update the NetFlow traffic reporting settings for a network", "tags": [ "networks", "configure", "netflow" ] } }, "/networks/{networkId}/networkHealth/channelUtilization": { "get": { "description": "Get the channel utilization over each radio for all APs in a network.", "operationId": "getNetworkNetworkHealthChannelUtilization", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "t0", "in": "query", "description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today.", "schema": { "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.", "schema": { "type": "string" } }, { "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.", "schema": { "type": "number", "format": "float", "maximum": 2678400 } }, { "name": "resolution", "in": "query", "description": "The time resolution in seconds for returned data. The valid resolutions are: 600. The default is 600.", "schema": { "type": "integer" } }, { "name": "perPage", "in": "query", "description": "The number of entries per page returned. Acceptable range is 3 - 100. Default is 10.", "schema": { "type": "integer" } }, { "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.", "schema": { "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.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "serial": { "type": "string", "description": "Device serial" }, "model": { "type": "string", "description": "Device model." }, "tags": { "type": "string", "description": "Device tags." }, "wifi0": { "type": "array", "items": { "type": "object", "properties": { "startTime": { "type": "string", "format": "date-time", "description": "The start time of the channel utilization interval." }, "endTime": { "type": "string", "format": "date-time", "description": "The end time of the channel utilization interval." }, "utilizationTotal": { "type": "number", "format": "float", "description": "Percentage of total channel utiliation for the given radio." }, "utilization80211": { "type": "number", "format": "float", "description": "Percentage of wifi channel utiliation for the given radio." }, "utilizationNon80211": { "type": "number", "format": "float", "description": "Percentage of non-wifi channel utiliation for the given radio." } } }, "description": "Channel utilization for first wifi radio of device." }, "wifi1": { "type": "array", "items": { "type": "object", "properties": { "startTime": { "type": "string", "format": "date-time", "description": "The start time of the channel utilization interval." }, "endTime": { "type": "string", "format": "date-time", "description": "The end time of the channel utilization interval." }, "utilizationTotal": { "type": "number", "format": "float", "description": "Percentage of total channel utiliation for the given radio." }, "utilization80211": { "type": "number", "format": "float", "description": "Percentage of wifi channel utiliation for the given radio." }, "utilizationNon80211": { "type": "number", "format": "float", "description": "Percentage of non-wifi channel utiliation for the given radio." } } }, "description": "Channel utilization for second wifi radio of device." } } } }, "example": [ { "serial": "Q234-ABCD-5678", "model": "MR34", "tags": " recently-added ", "wifi0": [ { "startTime": "2018-10-09T22:18:27Z", "endTime": "2018-10-09T22:19:27Z", "utilizationTotal": 33.84, "utilization80211": 32.0, "utilizationNon80211": 1.84 } ], "wifi1": [ { "startTime": "2018-10-09T22:18:27Z", "endTime": "2018-10-09T22:19:27Z", "utilizationTotal": 33.84, "utilization80211": 32.0, "utilizationNon80211": 1.84 } ] } ] } }, "headers": { "Link": { "schema": { "type": "string" }, "description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests." } } } }, "security": [ { "oauth2": [ "wireless:telemetry:read" ] } ], "summary": "Get the channel utilization over each radio for all APs in a network.", "tags": [ "networks", "monitor", "networkHealth", "channelUtilization" ] } }, "/networks/{networkId}/pii/piiKeys": { "get": { "description": "List the keys required to access Personally Identifiable Information (PII) for a given identifier. Exactly one identifier will be accepted. If the organization contains org-wide Systems Manager users matching the key provided then there will be an entry with the key \"0\" containing the applicable keys.\n\n## ALTERNATE PATH\n\n```\n/organizations/{organizationId}/pii/piiKeys\n```", "operationId": "getNetworkPiiPiiKeys", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "username", "in": "query", "description": "The username of a Systems Manager user", "schema": { "type": "string" } }, { "name": "email", "in": "query", "description": "The email of a network user account or a Systems Manager device", "schema": { "type": "string" } }, { "name": "mac", "in": "query", "description": "The MAC of a network client device or a Systems Manager device", "schema": { "type": "string" } }, { "name": "serial", "in": "query", "description": "The serial of a Systems Manager device", "schema": { "type": "string" } }, { "name": "imei", "in": "query", "description": "The IMEI of a Systems Manager device", "schema": { "type": "string" } }, { "name": "bluetoothMac", "in": "query", "description": "The MAC of a Bluetooth client", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "type": "object", "properties": { "macs": { "type": "array", "items": { "type": "string" }, "description": "List of mac addresses" }, "emails": { "type": "array", "items": { "type": "string" }, "description": "List of email addresses" }, "usernames": { "type": "array", "items": { "type": "string" }, "description": "List of usernames" }, "serials": { "type": "array", "items": { "type": "string" }, "description": "List of device serials" }, "imeis": { "type": "array", "items": { "type": "string" }, "description": "List of IMEIs" }, "bluetoothMacs": { "type": "array", "items": { "type": "string" }, "description": "List of bluetooth mac addresses" } }, "description": "List of pii keys" } }, "example": { "N_1234": { "macs": [ "00:77:00:77:00:77" ], "emails": [ "fake@example.com" ], "usernames": [ "fakename" ], "serials": [ "Q234-ABCD-0001" ], "imeis": [ "990000862471854" ], "bluetoothMacs": [ "00:77:00:77:00:77" ] } } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "List the keys required to access Personally Identifiable Information (PII) for a given identifier", "tags": [ "networks", "configure", "pii", "piiKeys" ] } }, "/networks/{networkId}/pii/requests": { "get": { "description": "List the PII requests for this network or organization\n\n## ALTERNATE PATH\n\n```\n/organizations/{organizationId}/pii/requests\n```", "operationId": "getNetworkPiiRequests", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "The network or organization identifier" }, "organizationWide": { "type": "boolean", "description": "If the data returned is organization-wide. False indicates the data is network-wide." }, "networkId": { "type": "string", "description": "The network identifier" }, "type": { "type": "string", "description": "The type of PII request" }, "mac": { "type": "string", "description": "The MAC address of the PII request" }, "datasets": { "type": "string", "description": "The stringified array of datasets related to the provided key that should be deleted." }, "status": { "type": "string", "description": "The status of the PII request" }, "createdAt": { "type": "integer", "description": "The request's creation time" }, "completedAt": { "type": "integer", "description": "The request's completion time" } } } }, "example": [ { "id": "1234", "organizationWide": false, "networkId": "N_1234", "type": "delete", "mac": "00:77:00:77:00:77", "datasets": "['usage', 'events']", "status": "Completed", "createdAt": 1524692227, "completedAt": 1524702227 } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "List the PII requests for this network or organization", "tags": [ "networks", "configure", "pii", "requests" ] }, "post": { "description": "Submit a new delete or restrict processing PII request\n\n## ALTERNATE PATH\n\n```\n/organizations/{organizationId}/pii/requests\n```", "operationId": "createNetworkPiiRequest", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "delete", "restrict processing" ], "description": "One of \"delete\" or \"restrict processing\"" }, "datasets": { "type": "array", "items": { "type": "string" }, "description": "The datasets related to the provided key that should be deleted. Only applies to \"delete\" requests. The value \"all\" will be expanded to all datasets applicable to this type. The datasets by applicable to each type are: mac (usage, events, traffic), email (users, loginAttempts), username (users, loginAttempts), bluetoothMac (client, connectivity), smDeviceId (device), smUserId (user)" }, "username": { "type": "string", "description": "The username of a network log in. Only applies to \"delete\" requests." }, "email": { "type": "string", "description": "The email of a network user account. Only applies to \"delete\" requests." }, "mac": { "type": "string", "description": "The MAC of a network client device. Applies to both \"restrict processing\" and \"delete\" requests." }, "smDeviceId": { "type": "string", "description": "The sm_device_id of a Systems Manager device. The only way to \"restrict processing\" or \"delete\" a Systems Manager device. Must include \"device\" in the dataset for a \"delete\" request to destroy the device." }, "smUserId": { "type": "string", "description": "The sm_user_id of a Systems Manager user. The only way to \"restrict processing\" or \"delete\" a Systems Manager user. Must include \"user\" in the dataset for a \"delete\" request to destroy the user." } }, "example": { "type": "delete", "datasets": [ "usage", "events" ], "username": "milesmeraki", "email": "miles@meraki.com", "mac": "00:11:22:33:44:55", "smDeviceId": "15551677676480", "smUserId": "212406" } } } }, "required": false }, "responses": { "201": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "The network or organization identifier" }, "organizationWide": { "type": "boolean", "description": "If the data returned is organization-wide. False indicates the data is network-wide." }, "networkId": { "type": "string", "description": "The network identifier" }, "type": { "type": "string", "description": "The type of PII request" }, "mac": { "type": "string", "description": "The MAC address of the PII request" }, "datasets": { "type": "string", "description": "The stringified array of datasets related to the provided key that should be deleted." }, "status": { "type": "string", "description": "The status of the PII request" }, "createdAt": { "type": "integer", "description": "The request's creation time" }, "completedAt": { "type": "integer", "description": "The request's completion time" } } }, "example": { "id": "1234", "organizationWide": false, "networkId": "N_1234", "type": "delete", "mac": "00:77:00:77:00:77", "datasets": "['usage', 'events']", "status": "Completed", "createdAt": 1524692227, "completedAt": 1524702227 } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Submit a new delete or restrict processing PII request", "tags": [ "networks", "configure", "pii", "requests" ] } }, "/networks/{networkId}/pii/requests/{requestId}": { "get": { "description": "Return a PII request\n\n## ALTERNATE PATH\n\n```\n/organizations/{organizationId}/pii/requests/{requestId}\n```", "operationId": "getNetworkPiiRequest", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "requestId", "in": "path", "description": "Request ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "The network or organization identifier" }, "organizationWide": { "type": "boolean", "description": "If the data returned is organization-wide. False indicates the data is network-wide." }, "networkId": { "type": "string", "description": "The network identifier" }, "type": { "type": "string", "description": "The type of PII request" }, "mac": { "type": "string", "description": "The MAC address of the PII request" }, "datasets": { "type": "string", "description": "The stringified array of datasets related to the provided key that should be deleted." }, "status": { "type": "string", "description": "The status of the PII request" }, "createdAt": { "type": "integer", "description": "The request's creation time" }, "completedAt": { "type": "integer", "description": "The request's completion time" } } }, "example": { "id": "1234", "organizationWide": false, "networkId": "N_1234", "type": "delete", "mac": "00:77:00:77:00:77", "datasets": "['usage', 'events']", "status": "Completed", "createdAt": 1524692227, "completedAt": 1524702227 } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "Return a PII request", "tags": [ "networks", "configure", "pii", "requests" ] }, "delete": { "description": "Delete a restrict processing PII request\n\n## ALTERNATE PATH\n\n```\n/organizations/{organizationId}/pii/requests/{requestId}\n```", "operationId": "deleteNetworkPiiRequest", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "requestId", "in": "path", "description": "Request ID", "schema": { "type": "string" }, "required": true } ], "responses": { "204": { "description": "Successful operation" } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Delete a restrict processing PII request", "tags": [ "networks", "configure", "pii", "requests" ] } }, "/networks/{networkId}/pii/smDevicesForKey": { "get": { "description": "Given a piece of Personally Identifiable Information (PII), return the Systems Manager device ID(s) associated with that identifier. These device IDs can be used with the Systems Manager API endpoints to retrieve device details. Exactly one identifier will be accepted.\n\n## ALTERNATE PATH\n\n```\n/organizations/{organizationId}/pii/smDevicesForKey\n```", "operationId": "getNetworkPiiSmDevicesForKey", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "username", "in": "query", "description": "The username of a Systems Manager user", "schema": { "type": "string" } }, { "name": "email", "in": "query", "description": "The email of a network user account or a Systems Manager device", "schema": { "type": "string" } }, { "name": "mac", "in": "query", "description": "The MAC of a network client device or a Systems Manager device", "schema": { "type": "string" } }, { "name": "serial", "in": "query", "description": "The serial of a Systems Manager device", "schema": { "type": "string" } }, { "name": "imei", "in": "query", "description": "The IMEI of a Systems Manager device", "schema": { "type": "string" } }, { "name": "bluetoothMac", "in": "query", "description": "The MAC of a Bluetooth client", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" }, "description": "list of System Manager device ID(s)" } }, "example": { "N_1234": [ "1099541095293" ] } } } } }, "security": [ { "oauth2": [ "sm:config:read" ] } ], "summary": "Given a piece of Personally Identifiable Information (PII), return the Systems Manager device ID(s) associated with that identifier", "tags": [ "networks", "configure", "pii", "smDevicesForKey" ] } }, "/networks/{networkId}/pii/smOwnersForKey": { "get": { "description": "Given a piece of Personally Identifiable Information (PII), return the Systems Manager owner ID(s) associated with that identifier. These owner IDs can be used with the Systems Manager API endpoints to retrieve owner details. Exactly one identifier will be accepted.\n\n## ALTERNATE PATH\n\n```\n/organizations/{organizationId}/pii/smOwnersForKey\n```", "operationId": "getNetworkPiiSmOwnersForKey", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "username", "in": "query", "description": "The username of a Systems Manager user", "schema": { "type": "string" } }, { "name": "email", "in": "query", "description": "The email of a network user account or a Systems Manager device", "schema": { "type": "string" } }, { "name": "mac", "in": "query", "description": "The MAC of a network client device or a Systems Manager device", "schema": { "type": "string" } }, { "name": "serial", "in": "query", "description": "The serial of a Systems Manager device", "schema": { "type": "string" } }, { "name": "imei", "in": "query", "description": "The IMEI of a Systems Manager device", "schema": { "type": "string" } }, { "name": "bluetoothMac", "in": "query", "description": "The MAC of a Bluetooth client", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" }, "description": "list of System Manager owner ID(s)" } }, "example": { "N_1234": [ "1099541095293" ] } } } } }, "security": [ { "oauth2": [ "sm:config:read" ] } ], "summary": "Given a piece of Personally Identifiable Information (PII), return the Systems Manager owner ID(s) associated with that identifier", "tags": [ "networks", "configure", "pii", "smOwnersForKey" ] } }, "/networks/{networkId}/policies/byClient": { "get": { "description": "Get policies for all clients with policies", "operationId": "getNetworkPoliciesByClient", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "perPage", "in": "query", "description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 50.", "schema": { "type": "integer" } }, { "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.", "schema": { "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.", "schema": { "type": "string" } }, { "name": "t0", "in": "query", "description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today.", "schema": { "type": "string" } }, { "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.", "schema": { "type": "number", "format": "float", "maximum": 2678400 } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of client" }, "clientId": { "type": "string", "description": "ID of client" }, "assigned": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "name of policy" }, "type": { "type": "string", "description": "type of policy" }, "groupPolicyId": { "type": "string", "description": "id of policy" }, "ssid": { "type": "array", "items": { "type": "object", "properties": { "ssidNumber": { "type": "integer", "description": "number of ssid" } } }, "description": "ssid" } } }, "description": "Assigned policies" } } } }, "example": [ { "name": "my phone", "clientId": "abc", "assigned": [ { "name": "Allowed", "type": "ssid", "groupPolicyId": "100", "ssid": [ { "ssidNumber": 1 } ] } ] } ] } }, "headers": { "Link": { "schema": { "type": "string" }, "description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests." } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "Get policies for all clients with policies", "tags": [ "networks", "configure", "policies", "byClient" ] } }, "/networks/{networkId}/settings": { "get": { "description": "Return the settings for a network", "operationId": "getNetworkSettings", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "localStatusPageEnabled": { "type": "boolean", "description": "Enables / disables the local device status pages (my.meraki.com, ap.meraki.com, switch.meraki.com, wired.meraki.com). Optional (defaults to false)" }, "remoteStatusPageEnabled": { "type": "boolean", "description": "Enables / disables access to the device status page (http://[device's LAN IP]). Optional. Can only be set if localStatusPageEnabled is set to true" }, "localStatusPage": { "type": "object", "properties": { "authentication": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enables / disables the authentication on Local Status page(s)." }, "username": { "type": "string", "description": "The username used for Local Status Page(s). Setting this to null or empty string will clear the value, allowing you to use the default of 'admin'" } }, "description": "A hash of Local Status page(s)' authentication options applied to the Network." } }, "description": "A hash of Local Status page(s)' authentication options applied to the Network." }, "securePort": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enables / disables SecureConnect on the network. Optional." } }, "description": "A hash of SecureConnect options applied to the Network." }, "fips": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enables / disables FIPS on the network." } }, "description": "A hash of FIPS options applied to the Network" }, "namedVlans": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enables / disables Named VLANs on the Network." } }, "required": [ "enabled" ], "description": "A hash of Named VLANs options applied to the Network." } } }, "example": { "localStatusPageEnabled": true, "remoteStatusPageEnabled": true, "localStatusPage": { "authentication": { "enabled": false, "username": "admin" } }, "securePort": { "enabled": false }, "fips": { "enabled": true }, "namedVlans": { "enabled": true } } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "Return the settings for a network", "tags": [ "networks", "configure", "settings" ] }, "put": { "description": "Update the settings for a network", "operationId": "updateNetworkSettings", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "localStatusPageEnabled": { "type": "boolean", "description": "Enables / disables the local device status pages (my.meraki.com, ap.meraki.com, switch.meraki.com, wired.meraki.com). Optional (defaults to false)" }, "remoteStatusPageEnabled": { "type": "boolean", "description": "Enables / disables access to the device status page (http://[device's LAN IP]). Optional. Can only be set if localStatusPageEnabled is set to true" }, "localStatusPage": { "type": "object", "properties": { "authentication": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enables / disables the authentication on Local Status page(s)." }, "username": { "type": "string", "description": "The username used for Local Status Page(s). Setting this to null or empty string will clear the value, allowing you to use the default of 'admin'", "nullable": true }, "password": { "type": "string", "description": "The password used for Local Status Page(s). Set this to null to clear the password.", "nullable": true } }, "description": "A hash of Local Status page(s)' authentication options applied to the Network." } }, "description": "A hash of Local Status page(s)' authentication options applied to the Network." }, "securePort": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enables / disables SecureConnect on the network. Optional." } }, "description": "A hash of SecureConnect options applied to the Network." }, "namedVlans": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enables / disables Named VLANs on the Network." } }, "description": "A hash of Named VLANs options applied to the Network." } }, "example": { "localStatusPageEnabled": true, "remoteStatusPageEnabled": true, "localStatusPage": { "authentication": { "enabled": false, "username": "admin", "password": "miles123" } }, "securePort": { "enabled": false }, "namedVlans": { "enabled": true } } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "localStatusPageEnabled": { "type": "boolean", "description": "Enables / disables the local device status pages (my.meraki.com, ap.meraki.com, switch.meraki.com, wired.meraki.com). Optional (defaults to false)" }, "remoteStatusPageEnabled": { "type": "boolean", "description": "Enables / disables access to the device status page (http://[device's LAN IP]). Optional. Can only be set if localStatusPageEnabled is set to true" }, "localStatusPage": { "type": "object", "properties": { "authentication": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enables / disables the authentication on Local Status page(s)." }, "username": { "type": "string", "description": "The username used for Local Status Page(s). Setting this to null or empty string will clear the value, allowing you to use the default of 'admin'" } }, "description": "A hash of Local Status page(s)' authentication options applied to the Network." } }, "description": "A hash of Local Status page(s)' authentication options applied to the Network." }, "securePort": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enables / disables SecureConnect on the network. Optional." } }, "description": "A hash of SecureConnect options applied to the Network." }, "fips": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enables / disables FIPS on the network." } }, "description": "A hash of FIPS options applied to the Network" }, "namedVlans": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enables / disables Named VLANs on the Network." } }, "required": [ "enabled" ], "description": "A hash of Named VLANs options applied to the Network." } } }, "example": { "localStatusPageEnabled": true, "remoteStatusPageEnabled": true, "localStatusPage": { "authentication": { "enabled": false, "username": "admin" } }, "securePort": { "enabled": false }, "fips": { "enabled": true }, "namedVlans": { "enabled": true } } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Update the settings for a network", "tags": [ "networks", "configure", "settings" ] } }, "/networks/{networkId}/snmp": { "get": { "description": "Return the SNMP settings for a network", "operationId": "getNetworkSnmp", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "access": { "type": "string", "description": "The type of SNMP access. Can be one of 'none' (disabled), 'community' (V1/V2c), or 'users' (V3)." }, "communityString": { "type": "string", "description": "SNMP community string if access is 'community'." }, "users": { "type": "array", "items": { "type": "object", "properties": { "username": { "type": "string", "description": "The username for the SNMP user." }, "passphrase": { "type": "string", "description": "The passphrase for the SNMP user." } } }, "description": "SNMP settings if access is 'users'." }, "authentication": { "type": "object", "properties": { "protocol": { "type": "string", "enum": [ "SHA-1", "SHA-256", "SHA-384", "SHA-512" ], "description": "The SNMPv3 authentication protocol." } }, "description": "SNMPv3 authentication settings. Applicable only if 'access' is 'users'." }, "privacy": { "type": "object", "properties": { "protocol": { "type": "string", "enum": [ "AES-128", "DES" ], "description": "The SNMPv3 privacy protocol." } }, "description": "SNMPv3 privacy settings. Applicable only if 'access' is 'users'." } } }, "example": { "access": "users", "communityString": "sample", "users": [ { "username": "AzureDiamond", "passphrase": "hunter2" } ], "authentication": { "protocol": "SHA-1" }, "privacy": { "protocol": "AES-128" } } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "Return the SNMP settings for a network", "tags": [ "networks", "configure", "snmp" ] }, "put": { "description": "Update the SNMP settings for a network", "operationId": "updateNetworkSnmp", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "access": { "type": "string", "enum": [ "community", "none", "users" ], "description": "The type of SNMP access. Can be one of 'none' (disabled), 'community' (V1/V2c), or 'users' (V3)." }, "communityString": { "type": "string", "description": "The SNMP community string. Only relevant if 'access' is set to 'community'." }, "users": { "type": "array", "items": { "type": "object", "properties": { "username": { "type": "string", "description": "The username for the SNMP user. Required." }, "passphrase": { "type": "string", "description": "The passphrase for the SNMP user. Required." } }, "required": [ "username", "passphrase" ] }, "description": "The list of SNMP users. Only relevant if 'access' is set to 'users'." }, "authentication": { "type": "object", "properties": { "protocol": { "type": "string", "enum": [ "SHA-1", "SHA-256", "SHA-384", "SHA-512" ], "description": "The SNMPv3 authentication protocol." } }, "description": "SNMPv3 authentication settings. Only relevant if 'access' is set to 'users'." }, "privacy": { "type": "object", "properties": { "protocol": { "type": "string", "enum": [ "AES-128", "DES" ], "description": "The SNMPv3 privacy protocol." } }, "description": "SNMPv3 privacy settings. Only relevant if 'access' is set to 'users'." } }, "example": { "access": "users", "communityString": "sample", "users": [ { "username": "AzureDiamond", "passphrase": "hunter2" } ], "authentication": { "protocol": "SHA-1" }, "privacy": { "protocol": "AES-128" } } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "access": { "type": "string", "description": "The type of SNMP access. Can be one of 'none' (disabled), 'community' (V1/V2c), or 'users' (V3)." }, "communityString": { "type": "string", "description": "SNMP community string if access is 'community'." }, "users": { "type": "array", "items": { "type": "object", "properties": { "username": { "type": "string", "description": "The username for the SNMP user." }, "passphrase": { "type": "string", "description": "The passphrase for the SNMP user." } } }, "description": "SNMP settings if access is 'users'." }, "authentication": { "type": "object", "properties": { "protocol": { "type": "string", "enum": [ "SHA-1", "SHA-256", "SHA-384", "SHA-512" ], "description": "The SNMPv3 authentication protocol." } }, "description": "SNMPv3 authentication settings. Applicable only if 'access' is 'users'." }, "privacy": { "type": "object", "properties": { "protocol": { "type": "string", "enum": [ "AES-128", "DES" ], "description": "The SNMPv3 privacy protocol." } }, "description": "SNMPv3 privacy settings. Applicable only if 'access' is 'users'." } } }, "example": { "access": "users", "communityString": "sample", "users": [ { "username": "AzureDiamond", "passphrase": "hunter2" } ], "authentication": { "protocol": "SHA-1" }, "privacy": { "protocol": "AES-128" } } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:write" ] } ], "summary": "Update the SNMP settings for a network", "tags": [ "networks", "configure", "snmp" ] } }, "/networks/{networkId}/splashLoginAttempts": { "get": { "description": "List the splash login attempts for a network", "operationId": "getNetworkSplashLoginAttempts", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "ssidNumber", "in": "query", "description": "Only return the login attempts for the specified SSID", "schema": { "type": "integer", "enum": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 ] } }, { "name": "loginIdentifier", "in": "query", "description": "The username, email, or phone number used during login", "schema": { "type": "string" } }, { "name": "timespan", "in": "query", "description": "The timespan, in seconds, for the login attempts. The period will be from [timespan] seconds ago until now. The maximum timespan is 3 months", "schema": { "type": "integer" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "User name" }, "login": { "type": "string", "description": "User login identifier" }, "ssid": { "type": "string", "description": "SSID name" }, "loginAt": { "type": "string", "format": "date-time", "description": "Login timestamp" }, "gatewayDeviceMac": { "type": "string", "description": "Gateway device mac address" }, "clientMac": { "type": "string", "description": "Client mac address" }, "clientId": { "type": "string", "description": "Client ID" }, "authorization": { "type": "string", "description": "Authorization status" } } } }, "example": [ { "name": "Miles Meraki", "login": "miles@meraki.com", "ssid": "My SSID", "loginAt": "2018-02-11T00:00:00.090210Z", "gatewayDeviceMac": "00:11:22:33:44:55", "clientMac": "22:33:44:55:66:77", "clientId": "k74272e", "authorization": "success" } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "List the splash login attempts for a network", "tags": [ "networks", "monitor", "splashLoginAttempts" ] } }, "/networks/{networkId}/split": { "post": { "description": "Split a combined network into individual networks for each type of device", "operationId": "splitNetwork", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "resultingNetworks": { "type": "array", "items": { "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" } } }, "description": "Networks after the split" } } }, "example": { "resultingNetworks": [ { "id": "N_24329156", "organizationId": "2930418", "name": "Main Office - switch", "productTypes": [ "switch" ], "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 } ] } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Split a combined network into individual networks for each type of device", "tags": [ "networks", "configure" ] } }, "/networks/{networkId}/syslogServers": { "get": { "deprecated": true, "description": "List the syslog servers for a network. Use GET /organizations/{organizationId}/devices/syslog/servers/byNetwork instead.", "operationId": "getNetworkSyslogServers", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "servers": { "type": "array", "items": { "type": "object", "properties": { "host": { "type": "string", "description": "The IP address or FQDN of the syslog server" }, "port": { "type": "integer", "description": "The port of the syslog server" }, "roles": { "type": "array", "items": { "type": "string" }, "description": "A list of roles for the syslog server. Options (case-insensitive): 'Wireless event log', 'Appliance event log', 'Switch event log', 'Air Marshal events', 'Flows', 'URLs', 'IDS alerts', 'Security events'" } } }, "description": "List of the syslog servers for this network" } } }, "example": { "servers": [ { "host": "1.2.3.4", "port": 443, "roles": [ "Wireless event log", "URLs" ] } ] } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "List the syslog servers for a network", "tags": [ "networks", "configure", "syslogServers" ], "x-deprecation-notice": "Deprecated: This operation has been marked as deprecated. For more information, visit the deprecated operations page" }, "put": { "deprecated": true, "description": "Update the syslog servers for a network. Use PUT /networks/{networkId}/devices/syslog/servers instead.", "operationId": "updateNetworkSyslogServers", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "servers": { "type": "array", "items": { "type": "object", "properties": { "host": { "type": "string", "description": "The IP address or FQDN of the syslog server" }, "port": { "type": "integer", "description": "The port of the syslog server" }, "roles": { "type": "array", "items": { "type": "string" }, "description": "A list of roles for the syslog server. Options (case-insensitive): 'Wireless event log', 'Appliance event log', 'Switch event log', 'Air Marshal events', 'Flows', 'URLs', 'IDS alerts', 'Security events'" } }, "required": [ "host", "port", "roles" ] }, "description": "A list of the syslog servers for this network" } }, "example": { "servers": [ { "host": "1.2.3.4", "port": 443, "roles": [ "Wireless event log", "URLs" ] } ] }, "required": [ "servers" ] } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "servers": { "type": "array", "items": { "type": "object", "properties": { "host": { "type": "string", "description": "The IP address or FQDN of the syslog server" }, "port": { "type": "integer", "description": "The port of the syslog server" }, "roles": { "type": "array", "items": { "type": "string" }, "description": "A list of roles for the syslog server. Options (case-insensitive): 'Wireless event log', 'Appliance event log', 'Switch event log', 'Air Marshal events', 'Flows', 'URLs', 'IDS alerts', 'Security events'" } } }, "description": "List of the syslog servers for this network" } } }, "example": { "servers": [ { "host": "1.2.3.4", "port": 443, "roles": [ "Wireless event log", "URLs" ] } ] } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:write" ] } ], "summary": "Update the syslog servers for a network", "tags": [ "networks", "configure", "syslogServers" ], "x-deprecation-notice": "Deprecated: This operation has been marked as deprecated. For more information, visit the deprecated operations page" } }, "/networks/{networkId}/topology/linkLayer": { "get": { "description": "List the LLDP and CDP information for all discovered devices and connections in a network. At least one MX or MS device must be in the network in order to build the topology.", "operationId": "getNetworkTopologyLinkLayer", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "nodes": { "type": "array", "items": { "type": "object", "properties": { "derivedId": { "type": "string", "description": "The derived identifier of the node" }, "mac": { "type": "string", "description": "The MAC address of the node" }, "type": { "type": "string", "description": "The type of the node. Can be 'device', 'discovered', 'stack', or 'unknown'" }, "root": { "type": "boolean", "description": "Whether the node is the root of the topology" }, "device": { "type": "object", "properties": { "serial": { "type": "string", "description": "The serial number of the device" }, "name": { "type": "string", "description": "The name of the device" }, "model": { "type": "string", "description": "The model of the device" }, "productType": { "type": "string", "description": "The product type of the device" }, "status": { "type": "string", "description": "The status of the device" }, "lastReportedAt": { "type": "string", "description": "The last time the device reported" }, "clients": { "type": "object", "properties": { "counts": { "type": "object", "properties": { "total": { "type": "integer", "description": "Total number of clients" } }, "description": "Client counts" } }, "description": "Client information" }, "uplinks": { "type": "array", "items": { "type": "object", "properties": { "vlanId": { "type": "integer", "description": "The VLAN ID of the uplink" } } }, "description": "Uplink information" } }, "description": "Device information (present when type is 'device')" }, "discovered": { "type": "object", "properties": { "lldp": { "type": "object", "properties": { "chassisId": { "type": "string", "description": "The chassis ID" }, "systemName": { "type": "string", "description": "The system name" }, "systemDescription": { "type": "string", "description": "The system description" }, "systemCapabilities": { "type": "array", "items": { "type": "string" }, "description": "The system capabilities" }, "managementAddress": { "type": "string", "description": "The management address" } }, "description": "LLDP information" }, "cdp": { "type": "object", "properties": { "platform": { "type": "string", "description": "The platform" }, "deviceId": { "type": "string", "description": "The device ID" }, "address": { "type": "string", "description": "The address" }, "capabilities": { "type": "array", "items": { "type": "string" }, "description": "The capabilities" }, "managementAddress": { "type": "string", "description": "The management address" } }, "description": "CDP information" } }, "description": "Discovered device information (present when type is 'discovered')" }, "stack": { "type": "object", "properties": { "id": { "type": "integer", "description": "The stack ID" }, "name": { "type": "string", "description": "The stack name" }, "members": { "type": "array", "items": { "type": "object" }, "description": "Stack member devices" }, "clients": { "type": "object", "properties": { "counts": { "type": "object", "properties": { "total": { "type": "integer", "description": "Total number of clients" } }, "description": "Client counts" } }, "description": "Client information for the stack" } }, "description": "Stack information (present when type is 'stack')" } } }, "description": "List of nodes in the network topology" }, "links": { "type": "array", "items": { "type": "object", "properties": { "ends": { "type": "array", "items": { "type": "object", "properties": { "node": { "type": "object", "properties": { "derivedId": { "type": "string", "description": "The derived ID of the node" }, "type": { "type": "string", "description": "The type of the node" } }, "description": "Node reference" }, "device": { "type": "object", "properties": { "serial": { "type": "string", "description": "The serial number" }, "name": { "type": "string", "description": "The device name" } }, "description": "Device information at this end of the link" }, "discovered": { "type": "object", "properties": { "lldp": { "type": "object", "properties": { "portId": { "type": "string", "description": "The port ID" }, "portDescription": { "type": "string", "description": "The port description" } }, "description": "LLDP port information" }, "cdp": { "type": "object", "properties": { "portId": { "type": "string", "description": "The port ID" }, "nativeVlan": { "type": "integer", "description": "The native VLAN" } }, "description": "CDP port information" } }, "description": "Discovered LLDP/CDP information at this end" } } }, "description": "The two ends of the link" }, "lastReportedAt": { "type": "string", "description": "The last time the link was reported" } } }, "description": "List of links between nodes" }, "errors": { "type": "array", "items": { "type": "string" }, "description": "List of errors encountered while building the topology" } } }, "example": { "nodes": [ { "derivedId": "aabbccddeeff", "mac": "AA:BB:CC:DD:EE:FF", "type": "device", "root": true, "device": { "serial": "Q2UN-A44e-CU4L", "name": "Living Room Gateway", "model": "GX20", "productType": "appliance", "status": "online", "lastReportedAt": "2021-06-24T10:23:12z", "clients": { "counts": { "total": 8 } }, "uplinks": [ { "vlanId": 0 } ] }, "discovered": { "lldp": { "chassisId": "12345", "systemName": "Non-Meraki device", "systemDescription": "Router and Switch Device", "systemCapabilities": [ "router", "switch" ], "managementAddress": "10.130.105.154" }, "cdp": { "platform": "Cisco IOS", "deviceId": "switch01.example.com", "address": "192.168.1.1", "capabilities": [ "router", "switch" ], "managementAddress": "192.168.1.1" } }, "stack": { "id": 98765, "name": "Corp Stack", "clients": { "counts": { "total": 14 } } } } ], "links": [ { "ends": [ { "node": { "derivedId": "34564", "type": "stack" }, "device": { "serial": "Q2UN-E55e-KO6L", "name": "Study Switch 2" }, "discovered": { "lldp": { "portId": "Port 20", "portDescription": "eth0" }, "cdp": { "portId": "Port 20", "nativeVlan": 102 } } } ], "lastReportedAt": "2021-06-25T14:56:27z" } ], "errors": [] } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "List the LLDP and CDP information for all discovered devices and connections in a network", "tags": [ "networks", "monitor", "topology", "linkLayer" ] } }, "/networks/{networkId}/traffic": { "get": { "description": "Return the traffic analysis data for this network. Traffic analysis with hostname visibility must be enabled on the network.", "operationId": "getNetworkTraffic", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "t0", "in": "query", "description": "The beginning of the timespan for the data. The maximum lookback period is 30 days from today.", "schema": { "type": "string" } }, { "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 30 days.", "schema": { "type": "number", "format": "float", "maximum": 2592000 } }, { "name": "deviceType", "in": "query", "description": "Filter the data by device type: 'combined', 'wireless', 'switch' or 'appliance'. Defaults to 'combined'. When using 'combined', for each rule the data will come from the device type with the most usage.", "schema": { "type": "string", "enum": [ "appliance", "combined", "switch", "wireless" ] } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "application": { "type": "string", "description": "Traffic application" }, "destination": { "type": "string", "description": "Traffic destination" }, "protocol": { "type": "string", "description": "Traffic protocol" }, "port": { "type": "integer", "description": "Traffic port" }, "sent": { "type": "number", "format": "float", "description": "Traffic sent in kb" }, "recv": { "type": "number", "format": "float", "description": "Traffic received in kb" }, "numClients": { "type": "integer", "description": "Number of clients with traffic" }, "activeTime": { "type": "integer", "description": "Active time with traffic" }, "flows": { "type": "integer", "description": "Number of traffic flows" } } } }, "example": [ { "application": "Gmail", "destination": "2.3.4.5", "protocol": "TCP", "port": 443, "sent": 138.0, "recv": 61.0, "numClients": 7, "activeTime": 77000, "flows": 300 } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "Return the traffic analysis data for this network", "tags": [ "networks", "monitor", "traffic" ] } }, "/networks/{networkId}/trafficAnalysis": { "get": { "description": "Return the traffic analysis settings for a network", "operationId": "getNetworkTrafficAnalysis", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "mode": { "type": "string", "enum": [ "basic", "detailed", "disabled" ], "description": " The traffic analysis mode for the network. Can be one of 'disabled' (do not collect traffic types),\n 'basic' (collect generic traffic categories), or 'detailed' (collect destination hostnames).\n" }, "customPieChartItems": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the custom pie chart item." }, "type": { "type": "string", "enum": [ "host", "ipRange", "port" ], "description": " The signature type for the custom pie chart item. Can be one of 'host', 'port' or 'ipRange'.\n" }, "value": { "type": "string", "description": " The value of the custom pie chart item. Valid syntax depends on the signature type of the chart item\n (see sample request/response for more details).\n" } }, "required": [ "name", "type", "value" ] }, "description": "The list of items that make up the custom pie chart for traffic reporting." } } }, "example": { "mode": "disabled", "customPieChartItems": [ { "name": "Item from hostname", "type": "host", "value": "example.com" } ] } } } } }, "security": [ { "oauth2": [ "sdwan:config:read" ] } ], "summary": "Return the traffic analysis settings for a network", "tags": [ "networks", "configure", "trafficAnalysis" ] }, "put": { "description": "Update the traffic analysis settings for a network", "operationId": "updateNetworkTrafficAnalysis", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "mode": { "type": "string", "enum": [ "basic", "detailed", "disabled" ], "description": " The traffic analysis mode for the network. Can be one of 'disabled' (do not collect traffic types),\n 'basic' (collect generic traffic categories), or 'detailed' (collect destination hostnames).\n" }, "customPieChartItems": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the custom pie chart item." }, "type": { "type": "string", "enum": [ "host", "ipRange", "port" ], "description": " The signature type for the custom pie chart item. Can be one of 'host', 'port' or 'ipRange'.\n" }, "value": { "type": "string", "description": " The value of the custom pie chart item. Valid syntax depends on the signature type of the chart item\n (see sample request/response for more details).\n" } }, "required": [ "name", "type", "value" ] }, "description": "The list of items that make up the custom pie chart for traffic reporting." } }, "example": { "mode": "disabled", "customPieChartItems": [ { "name": "Item from hostname", "type": "host", "value": "example.com" } ] } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "mode": { "type": "string", "enum": [ "basic", "detailed", "disabled" ], "description": " The traffic analysis mode for the network. Can be one of 'disabled' (do not collect traffic types),\n 'basic' (collect generic traffic categories), or 'detailed' (collect destination hostnames).\n" }, "customPieChartItems": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the custom pie chart item." }, "type": { "type": "string", "enum": [ "host", "ipRange", "port" ], "description": " The signature type for the custom pie chart item. Can be one of 'host', 'port' or 'ipRange'.\n" }, "value": { "type": "string", "description": " The value of the custom pie chart item. Valid syntax depends on the signature type of the chart item\n (see sample request/response for more details).\n" } }, "required": [ "name", "type", "value" ] }, "description": "The list of items that make up the custom pie chart for traffic reporting." } } }, "example": { "mode": "disabled", "customPieChartItems": [ { "name": "Item from hostname", "type": "host", "value": "example.com" } ] } } } } }, "security": [ { "oauth2": [ "sdwan:config:write" ] } ], "summary": "Update the traffic analysis settings for a network", "tags": [ "networks", "configure", "trafficAnalysis" ] } }, "/networks/{networkId}/trafficShaping/applicationCategories": { "get": { "description": "Returns the application categories for traffic shaping rules. Only applicable on networks with a security applicance.", "operationId": "getNetworkTrafficShapingApplicationCategories", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "applicationCategories": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "The id of the category" }, "name": { "type": "string", "description": "The name of the category" }, "applications": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "The id of the application" }, "name": { "type": "string", "description": "The name of the application" } } }, "description": "Details of the associated applications" } } }, "description": " The L7 firewall application categories and their associated applications for an MX network" } } }, "example": { "applicationCategories": [ { "id": "meraki:layer7/category/24", "name": "Advertising", "applications": [ { "id": "meraki:layer7/application/5", "name": "Advertising.com" } ] } ] } } } } }, "security": [ { "oauth2": [ "sdwan:config:read" ] } ], "summary": "Returns the application categories for traffic shaping rules", "tags": [ "networks", "configure", "trafficShaping", "applicationCategories" ] } }, "/networks/{networkId}/trafficShaping/dscpTaggingOptions": { "get": { "description": "Returns the available DSCP tagging options for your traffic shaping rules.", "operationId": "getNetworkTrafficShapingDscpTaggingOptions", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object" } }, "example": [ { "dscpTagValue": 10, "description": "AF11 - High Throughput, Latency Insensitive, Low Drop" }, { "dscpTagValue": 12, "description": "AF12 - High Throughput, Latency Insensitive, Medium Drop" }, { "dscpTagValue": 14, "description": "AF13 - High Throughput, Latency Insensitive, High Drop" }, { "dscpTagValue": 18, "description": "AF21 - Low Latency Data, Low Drop" } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "Returns the available DSCP tagging options for your traffic shaping rules.", "tags": [ "networks", "configure", "trafficShaping", "dscpTaggingOptions" ] } }, "/networks/{networkId}/unbind": { "post": { "description": "Unbind a network from a template.", "operationId": "unbindNetwork", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "retainConfigs": { "type": "boolean", "description": "Optional boolean to retain all the current configs given by the template." } }, "example": { "retainConfigs": true } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "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" } } }, "example": { "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 } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Unbind a network from a template.", "tags": [ "networks", "configure" ] } }, "/networks/{networkId}/vlanProfiles": { "get": { "description": "List VLAN profiles for a network", "operationId": "getNetworkVlanProfiles", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "iname": { "type": "string", "description": "IName of the VLAN profile" }, "name": { "type": "string", "description": "Name of the profile, string length must be from 1 to 255 characters" }, "isDefault": { "type": "boolean", "description": "Boolean indicating the default VLAN Profile for any device that does not have a profile explicitly assigned" }, "vlanNames": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the VLAN, string length must be from 1 to 32 characters" }, "vlanId": { "type": "string", "description": "VLAN ID" }, "adaptivePolicyGroup": { "type": "object", "properties": { "id": { "type": "string", "description": "Adaptive Policy Group ID" }, "name": { "type": "string", "description": "Adaptive Policy Group name" } }, "description": "Adaptive Policy Group assigned to Vlan ID" } } }, "description": "An array of named VLANs" }, "vlanGroups": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the VLAN, string length must be from 1 to 32 characters" }, "vlanIds": { "type": "string", "description": "Comma-separated VLAN IDs or ID ranges" } } }, "description": "An array of named VLANs" } } } }, "example": [ { "iname": "Profile1", "name": "My VLAN profile name", "isDefault": false, "vlanNames": [ { "name": "named-1", "vlanId": "1", "adaptivePolicyGroup": { "id": "791", "name": "Infrastructure" } } ], "vlanGroups": [ { "name": "named-group-1", "vlanIds": "2,5-7" } ] } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "List VLAN profiles for a network", "tags": [ "networks", "configure", "vlanProfiles" ] }, "post": { "description": "Create a VLAN profile for a network", "operationId": "createNetworkVlanProfile", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the profile, string length must be from 1 to 255 characters" }, "vlanNames": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the VLAN, string length must be from 1 to 32 characters" }, "vlanId": { "type": "string", "description": "VLAN ID" }, "adaptivePolicyGroup": { "type": "object", "properties": { "id": { "type": "string", "description": "Adaptive Policy Group ID" } }, "description": "Adaptive Policy Group assigned to Vlan ID" } }, "required": [ "name", "vlanId" ] }, "description": "An array of named VLANs" }, "vlanGroups": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the VLAN, string length must be from 1 to 32 characters" }, "vlanIds": { "type": "string", "description": "Comma-separated VLAN IDs or ID ranges" } }, "required": [ "name", "vlanIds" ] }, "description": "An array of VLAN groups" }, "iname": { "type": "string", "description": "IName of the profile" } }, "example": { "name": "My VLAN profile name", "vlanNames": [ { "name": "named-1", "vlanId": "1", "adaptivePolicyGroup": { "id": "791" } } ], "vlanGroups": [ { "name": "named-group-1", "vlanIds": "2,5-7" } ], "iname": "Profile1" }, "required": [ "name", "vlanNames", "vlanGroups", "iname" ] } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "iname": { "type": "string", "description": "IName of the VLAN profile" }, "name": { "type": "string", "description": "Name of the profile, string length must be from 1 to 255 characters" }, "isDefault": { "type": "boolean", "description": "Boolean indicating the default VLAN Profile for any device that does not have a profile explicitly assigned" }, "vlanNames": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the VLAN, string length must be from 1 to 32 characters" }, "vlanId": { "type": "string", "description": "VLAN ID" }, "adaptivePolicyGroup": { "type": "object", "properties": { "id": { "type": "string", "description": "Adaptive Policy Group ID" }, "name": { "type": "string", "description": "Adaptive Policy Group name" } }, "description": "Adaptive Policy Group assigned to Vlan ID" } } }, "description": "An array of named VLANs" }, "vlanGroups": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the VLAN, string length must be from 1 to 32 characters" }, "vlanIds": { "type": "string", "description": "Comma-separated VLAN IDs or ID ranges" } } }, "description": "An array of named VLANs" } } }, "example": { "iname": "Profile1", "name": "My VLAN profile name", "isDefault": false, "vlanNames": [ { "name": "named-1", "vlanId": "1", "adaptivePolicyGroup": { "id": "791", "name": "Infrastructure" } } ], "vlanGroups": [ { "name": "named-group-1", "vlanIds": "2,5-7" } ] } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Create a VLAN profile for a network", "tags": [ "networks", "configure", "vlanProfiles" ] } }, "/networks/{networkId}/vlanProfiles/assignments/byDevice": { "get": { "description": "Get the assigned VLAN Profiles for devices in a network", "operationId": "getNetworkVlanProfilesAssignmentsByDevice", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "perPage", "in": "query", "description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.", "schema": { "type": "integer" } }, { "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.", "schema": { "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.", "schema": { "type": "string" } }, { "name": "serials", "in": "query", "description": "Optional parameter to filter devices by serials. All devices returned belong to serial numbers that are an exact match.", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "productTypes", "in": "query", "description": "Optional parameter to filter devices by product types.", "schema": { "type": "array", "items": { "type": "string", "enum": [ "switch", "wireless" ] } } }, { "name": "stackIds", "in": "query", "description": "Optional parameter to filter devices by Switch Stack ids.", "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the Device" }, "serial": { "type": "string", "description": "Serial of the Device" }, "mac": { "type": "string", "description": "MAC address of the device" }, "productType": { "type": "string", "description": "The product type" }, "configurationSource": { "type": "string", "description": "Indicates whether the device configuration is managed by the cloud or the device" }, "vlanProfile": { "type": "object", "properties": { "iname": { "type": "string", "description": "IName of the VLAN Profile" }, "name": { "type": "string", "description": "Name of the VLAN Profile" }, "isDefault": { "type": "boolean", "description": "Is this VLAN profile the default for the network?" } }, "description": "The VLAN Profile" }, "stack": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the Switch Stack" } }, "description": "The Switch Stack the device belongs to" } } } }, "example": [ { "name": "My switch", "serial": "Q234-ABCD-5678", "mac": "00:11:22:33:44:55", "productType": "switch", "configurationSource": "Cloud", "vlanProfile": { "iname": "Profile1", "name": "My VLAN Profile", "isDefault": true }, "stack": { "id": "1234" } } ] } }, "headers": { "Link": { "schema": { "type": "string" }, "description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests." } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "Get the assigned VLAN Profiles for devices in a network", "tags": [ "networks", "configure", "vlanProfiles", "assignments", "byDevice" ] } }, "/networks/{networkId}/vlanProfiles/assignments/reassign": { "post": { "description": "Update the assigned VLAN Profile for devices in a network", "operationId": "reassignNetworkVlanProfilesAssignments", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "vlanProfile": { "type": "object", "properties": { "iname": { "type": "string", "description": "IName of the VLAN Profile" } }, "description": "The VLAN Profile" }, "serials": { "type": "array", "items": { "type": "string" }, "description": "Array of Device Serials" }, "stackIds": { "type": "array", "items": { "type": "string" }, "description": "Array of Switch Stack IDs" } }, "example": { "vlanProfile": { "iname": "Profile1" }, "serials": [ "Q234-ABCD-5678" ], "stackIds": [ "1234" ] }, "required": [ "serials", "stackIds" ] } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "vlanProfile": { "type": "object", "properties": { "iname": { "type": "string", "description": "IName of the VLAN Profile" }, "name": { "type": "string", "description": "Name of the VLAN Profile" } }, "description": "The VLAN Profile" }, "serials": { "type": "array", "items": { "type": "string" }, "description": "Array of Device Serials" }, "stackIds": { "type": "array", "items": { "type": "string" }, "description": "Array of Switch Stack IDs" } } }, "example": { "vlanProfile": { "iname": "Profile1", "name": "My VLAN Profile" }, "serials": [ "Q234-ABCD-5678" ], "stackIds": [ "1234" ] } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Update the assigned VLAN Profile for devices in a network", "tags": [ "networks", "configure", "vlanProfiles", "assignments" ] } }, "/networks/{networkId}/vlanProfiles/{iname}": { "get": { "description": "Get an existing VLAN profile of a network", "operationId": "getNetworkVlanProfile", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "iname", "in": "path", "description": "Iname", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "iname": { "type": "string", "description": "IName of the VLAN profile" }, "name": { "type": "string", "description": "Name of the profile, string length must be from 1 to 255 characters" }, "isDefault": { "type": "boolean", "description": "Boolean indicating the default VLAN Profile for any device that does not have a profile explicitly assigned" }, "vlanNames": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the VLAN, string length must be from 1 to 32 characters" }, "vlanId": { "type": "string", "description": "VLAN ID" }, "adaptivePolicyGroup": { "type": "object", "properties": { "id": { "type": "string", "description": "Adaptive Policy Group ID" }, "name": { "type": "string", "description": "Adaptive Policy Group name" } }, "description": "Adaptive Policy Group assigned to Vlan ID" } } }, "description": "An array of named VLANs" }, "vlanGroups": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the VLAN, string length must be from 1 to 32 characters" }, "vlanIds": { "type": "string", "description": "Comma-separated VLAN IDs or ID ranges" } } }, "description": "An array of named VLANs" } } }, "example": { "iname": "Profile1", "name": "My VLAN profile name", "isDefault": false, "vlanNames": [ { "name": "named-1", "vlanId": "1", "adaptivePolicyGroup": { "id": "791", "name": "Infrastructure" } } ], "vlanGroups": [ { "name": "named-group-1", "vlanIds": "2,5-7" } ] } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "Get an existing VLAN profile of a network", "tags": [ "networks", "configure", "vlanProfiles" ] }, "put": { "description": "Update an existing VLAN profile of a network", "operationId": "updateNetworkVlanProfile", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "iname", "in": "path", "description": "Iname", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the profile, string length must be from 1 to 255 characters" }, "vlanNames": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the VLAN, string length must be from 1 to 32 characters" }, "vlanId": { "type": "string", "description": "VLAN ID" }, "adaptivePolicyGroup": { "type": "object", "properties": { "id": { "type": "string", "description": "Adaptive Policy Group ID" } }, "description": "Adaptive Policy Group assigned to Vlan ID" } }, "required": [ "name", "vlanId" ] }, "description": "An array of named VLANs" }, "vlanGroups": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the VLAN, string length must be from 1 to 32 characters" }, "vlanIds": { "type": "string", "description": "Comma-separated VLAN IDs or ID ranges" } }, "required": [ "name", "vlanIds" ] }, "description": "An array of VLAN groups" } }, "example": { "name": "My VLAN profile name", "vlanNames": [ { "name": "named-1", "vlanId": "1", "adaptivePolicyGroup": { "id": "791" } } ], "vlanGroups": [ { "name": "named-group-1", "vlanIds": "2,5-7" } ] }, "required": [ "name", "vlanNames", "vlanGroups" ] } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "iname": { "type": "string", "description": "IName of the VLAN profile" }, "name": { "type": "string", "description": "Name of the profile, string length must be from 1 to 255 characters" }, "isDefault": { "type": "boolean", "description": "Boolean indicating the default VLAN Profile for any device that does not have a profile explicitly assigned" }, "vlanNames": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the VLAN, string length must be from 1 to 32 characters" }, "vlanId": { "type": "string", "description": "VLAN ID" }, "adaptivePolicyGroup": { "type": "object", "properties": { "id": { "type": "string", "description": "Adaptive Policy Group ID" }, "name": { "type": "string", "description": "Adaptive Policy Group name" } }, "description": "Adaptive Policy Group assigned to Vlan ID" } } }, "description": "An array of named VLANs" }, "vlanGroups": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the VLAN, string length must be from 1 to 32 characters" }, "vlanIds": { "type": "string", "description": "Comma-separated VLAN IDs or ID ranges" } } }, "description": "An array of named VLANs" } } }, "example": { "iname": "Profile1", "name": "My VLAN profile name", "isDefault": false, "vlanNames": [ { "name": "named-1", "vlanId": "1", "adaptivePolicyGroup": { "id": "791", "name": "Infrastructure" } } ], "vlanGroups": [ { "name": "named-group-1", "vlanIds": "2,5-7" } ] } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Update an existing VLAN profile of a network", "tags": [ "networks", "configure", "vlanProfiles" ] }, "delete": { "description": "Delete a VLAN profile of a network", "operationId": "deleteNetworkVlanProfile", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "iname", "in": "path", "description": "Iname", "schema": { "type": "string" }, "required": true } ], "responses": { "204": { "description": "Successful operation" } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Delete a VLAN profile of a network", "tags": [ "networks", "configure", "vlanProfiles" ] } }, "/networks/{networkId}/webhooks/httpServers": { "get": { "description": "List the HTTP servers for a network", "operationId": "getNetworkWebhooksHttpServers", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "format": "byte", "description": "A Base64 encoded ID." }, "name": { "type": "string", "description": "A name for easy reference to the HTTP server" }, "url": { "type": "string", "description": "The URL of the HTTP server." }, "networkId": { "type": "string", "description": "A Meraki network ID." }, "payloadTemplate": { "type": "object", "properties": { "payloadTemplateId": { "type": "string", "description": "The ID of the payload template." }, "name": { "type": "string", "description": "The name of the payload template." } }, "description": "The payload template to use when posting data to the HTTP server." } } } }, "example": [ { "id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vbXlfY3VzdG9tX3dlYmhvb2s=", "name": "Example Webhook Server", "url": "https://www.example.com/my_custom_webhook", "networkId": "N_12345678", "payloadTemplate": { "payloadTemplateId": "wpt_00001", "name": "Meraki (included)" } } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "List the HTTP servers for a network", "tags": [ "networks", "configure", "webhooks", "httpServers" ] }, "post": { "description": "Add an HTTP server to a network", "operationId": "createNetworkWebhooksHttpServer", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "A name for easy reference to the HTTP server" }, "url": { "type": "string", "description": "The URL of the HTTP server. Once set, cannot be updated." }, "sharedSecret": { "type": "string", "description": "A shared secret that will be included in POSTs sent to the HTTP server. This secret can be used to verify that the request was sent by Meraki." }, "payloadTemplate": { "type": "object", "properties": { "payloadTemplateId": { "type": "string", "description": "The ID of the payload template. Defaults to 'wpt_00001' for the Meraki template. For Meraki-included templates: for the Webex (included) template use 'wpt_00002'; for the Slack (included) template use 'wpt_00003'; for the Microsoft Teams (included) template use 'wpt_00004'; for the ServiceNow (included) template use 'wpt_00006'; for the PagerDuty (included) template use 'wpt_00007'; for the Push (included) template use 'wpt_00008'" }, "name": { "type": "string", "description": "The name of the payload template." } }, "description": "The payload template to use when posting data to the HTTP server." } }, "example": { "name": "Example Webhook Server", "url": "https://example.com", "sharedSecret": "shhh", "payloadTemplate": { "payloadTemplateId": "wpt_00001", "name": "Meraki (included)" } }, "required": [ "name", "url" ] } } }, "required": true }, "responses": { "201": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "format": "byte", "description": "A Base64 encoded ID." }, "name": { "type": "string", "description": "A name for easy reference to the HTTP server" }, "url": { "type": "string", "description": "The URL of the HTTP server." }, "networkId": { "type": "string", "description": "A Meraki network ID." }, "payloadTemplate": { "type": "object", "properties": { "payloadTemplateId": { "type": "string", "description": "The ID of the payload template." }, "name": { "type": "string", "description": "The name of the payload template." } }, "description": "The payload template to use when posting data to the HTTP server." } } }, "example": { "id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vbXlfY3VzdG9tX3dlYmhvb2s=", "name": "Example Webhook Server", "url": "https://www.example.com/my_custom_webhook", "networkId": "N_12345678", "payloadTemplate": { "payloadTemplateId": "wpt_00001", "name": "Meraki (included)" } } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:write" ] } ], "summary": "Add an HTTP server to a network", "tags": [ "networks", "configure", "webhooks", "httpServers" ] } }, "/networks/{networkId}/webhooks/httpServers/{httpServerId}": { "get": { "description": "Return an HTTP server for a network", "operationId": "getNetworkWebhooksHttpServer", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "httpServerId", "in": "path", "description": "Http server ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "format": "byte", "description": "A Base64 encoded ID." }, "name": { "type": "string", "description": "A name for easy reference to the HTTP server" }, "url": { "type": "string", "description": "The URL of the HTTP server." }, "networkId": { "type": "string", "description": "A Meraki network ID." }, "payloadTemplate": { "type": "object", "properties": { "payloadTemplateId": { "type": "string", "description": "The ID of the payload template." }, "name": { "type": "string", "description": "The name of the payload template." } }, "description": "The payload template to use when posting data to the HTTP server." } } }, "example": { "id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vbXlfY3VzdG9tX3dlYmhvb2s=", "name": "Example Webhook Server", "url": "https://www.example.com/my_custom_webhook", "networkId": "N_12345678", "payloadTemplate": { "payloadTemplateId": "wpt_00001", "name": "Meraki (included)" } } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "Return an HTTP server for a network", "tags": [ "networks", "configure", "webhooks", "httpServers" ] }, "put": { "description": "Update an HTTP server. To change a URL, create a new HTTP server.", "operationId": "updateNetworkWebhooksHttpServer", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "httpServerId", "in": "path", "description": "Http server ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "A name for easy reference to the HTTP server" }, "sharedSecret": { "type": "string", "description": "A shared secret that will be included in POSTs sent to the HTTP server. This secret can be used to verify that the request was sent by Meraki." }, "payloadTemplate": { "type": "object", "properties": { "payloadTemplateId": { "type": "string", "description": "The ID of the payload template. Defaults to 'wpt_00001' for the Meraki template. For Meraki-included templates: for the Webex (included) template use 'wpt_00002'; for the Slack (included) template use 'wpt_00003'; for the Microsoft Teams (included) template use 'wpt_00004'; for the ServiceNow (included) template use 'wpt_00006'; for the PagerDuty (included) template use 'wpt_00007'; for the Push (included) template use 'wpt_00008'" } }, "description": "The payload template to use when posting data to the HTTP server." } }, "example": { "name": "Example Webhook Server", "sharedSecret": "shhh", "payloadTemplate": { "payloadTemplateId": "wpt_00001" } } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "format": "byte", "description": "A Base64 encoded ID." }, "name": { "type": "string", "description": "A name for easy reference to the HTTP server" }, "url": { "type": "string", "description": "The URL of the HTTP server." }, "networkId": { "type": "string", "description": "A Meraki network ID." }, "payloadTemplate": { "type": "object", "properties": { "payloadTemplateId": { "type": "string", "description": "The ID of the payload template." }, "name": { "type": "string", "description": "The name of the payload template." } }, "description": "The payload template to use when posting data to the HTTP server." } } }, "example": { "id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vbXlfY3VzdG9tX3dlYmhvb2s=", "name": "Example Webhook Server", "url": "https://www.example.com/my_custom_webhook", "networkId": "N_12345678", "payloadTemplate": { "payloadTemplateId": "wpt_00001", "name": "Meraki (included)" } } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:write" ] } ], "summary": "Update an HTTP server", "tags": [ "networks", "configure", "webhooks", "httpServers" ] }, "delete": { "description": "Delete an HTTP server from a network", "operationId": "deleteNetworkWebhooksHttpServer", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "httpServerId", "in": "path", "description": "Http server ID", "schema": { "type": "string" }, "required": true } ], "responses": { "204": { "description": "Successful operation" } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:write" ] } ], "summary": "Delete an HTTP server from a network", "tags": [ "networks", "configure", "webhooks", "httpServers" ] } }, "/networks/{networkId}/webhooks/payloadTemplates": { "get": { "description": "List the webhook payload templates for a network", "operationId": "getNetworkWebhooksPayloadTemplates", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "payloadTemplateId": { "type": "string", "description": "Webhook payload template Id" }, "type": { "type": "string", "description": "The type of the payload template" }, "name": { "type": "string", "description": "The name of the payload template" }, "headers": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the header attribute" }, "template": { "type": "string", "description": "The value returned in the header attribute, in liquid template" } } }, "description": "The payload template headers, will be rendered as a key-value pair in the webhook." }, "body": { "type": "string", "description": "The body of the payload template, in liquid template" }, "sharing": { "type": "object", "properties": { "byNetwork": { "type": "object", "properties": { "adminsCanModify": { "type": "boolean", "description": "Indicates whether network admins may modify this template" } }, "description": "Information on network access to the template" } }, "description": "Information on which entities have access to the template" } } } }, "example": [ { "payloadTemplateId": "wpt_343", "type": "custom", "name": "Custom Template", "headers": [ { "name": "Authorization", "template": "Bearer {{sharedSecret}}" } ], "body": "{\"event_type\":\"{{alertTypeId}}\",\"client_payload\":{\"text\":\"{{alertData}}\"}}", "sharing": { "byNetwork": { "adminsCanModify": false } } } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "List the webhook payload templates for a network", "tags": [ "networks", "configure", "webhooks", "payloadTemplates" ] }, "post": { "description": "Create a webhook payload template for a network", "operationId": "createNetworkWebhooksPayloadTemplate", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the new template" }, "body": { "type": "string", "description": "The liquid template used for the body of the webhook message. Either `body` or `bodyFile` must be specified." }, "headers": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the header template" }, "template": { "type": "string", "description": "The liquid template for the headers" } } }, "nullable": true, "description": "The liquid template used with the webhook headers." }, "bodyFile": { "type": "string", "format": "byte", "description": "A Base64 encoded file containing liquid template used for the body of the webhook message. Either `body` or `bodyFile` must be specified." }, "headersFile": { "type": "string", "format": "byte", "description": "A Base64 encoded file containing the liquid template used with the webhook headers." } }, "example": { "name": "Custom Template", "body": "{\"event_type\":\"{{alertTypeId}}\",\"client_payload\":{\"text\":\"{{alertData}}\"}}", "headers": [ { "name": "Authorization", "template": "Bearer {{sharedSecret}}" } ], "bodyFile": "Qm9keSBGaWxl", "headersFile": "SGVhZGVycyBGaWxl" }, "required": [ "name" ] } } }, "required": true }, "responses": { "201": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "payloadTemplateId": { "type": "string", "description": "Webhook payload template Id" }, "type": { "type": "string", "description": "The type of the payload template" }, "name": { "type": "string", "description": "The name of the payload template" }, "headers": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the header attribute" }, "template": { "type": "string", "description": "The value returned in the header attribute, in liquid template" } } }, "description": "The payload template headers, will be rendered as a key-value pair in the webhook." }, "body": { "type": "string", "description": "The body of the payload template, in liquid template" }, "sharing": { "type": "object", "properties": { "byNetwork": { "type": "object", "properties": { "adminsCanModify": { "type": "boolean", "description": "Indicates whether network admins may modify this template" } }, "description": "Information on network access to the template" } }, "description": "Information on which entities have access to the template" } } }, "example": { "payloadTemplateId": "wpt_343", "type": "custom", "name": "Custom Template", "headers": [ { "name": "Authorization", "template": "Bearer {{sharedSecret}}" } ], "body": "{\"event_type\":\"{{alertTypeId}}\",\"client_payload\":{\"text\":\"{{alertData}}\"}}", "sharing": { "byNetwork": { "adminsCanModify": false } } } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:write" ] } ], "summary": "Create a webhook payload template for a network", "tags": [ "networks", "configure", "webhooks", "payloadTemplates" ] } }, "/networks/{networkId}/webhooks/payloadTemplates/{payloadTemplateId}": { "get": { "description": "Get the webhook payload template for a network", "operationId": "getNetworkWebhooksPayloadTemplate", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "payloadTemplateId", "in": "path", "description": "Payload template ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "payloadTemplateId": { "type": "string", "description": "Webhook payload template Id" }, "type": { "type": "string", "description": "The type of the payload template" }, "name": { "type": "string", "description": "The name of the payload template" }, "headers": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the header attribute" }, "template": { "type": "string", "description": "The value returned in the header attribute, in liquid template" } } }, "description": "The payload template headers, will be rendered as a key-value pair in the webhook." }, "body": { "type": "string", "description": "The body of the payload template, in liquid template" }, "sharing": { "type": "object", "properties": { "byNetwork": { "type": "object", "properties": { "adminsCanModify": { "type": "boolean", "description": "Indicates whether network admins may modify this template" } }, "description": "Information on network access to the template" } }, "description": "Information on which entities have access to the template" } } }, "example": { "payloadTemplateId": "wpt_343", "type": "custom", "name": "Custom Template", "headers": [ { "name": "Authorization", "template": "Bearer {{sharedSecret}}" } ], "body": "{\"event_type\":\"{{alertTypeId}}\",\"client_payload\":{\"text\":\"{{alertData}}\"}}", "sharing": { "byNetwork": { "adminsCanModify": false } } } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "Get the webhook payload template for a network", "tags": [ "networks", "configure", "webhooks", "payloadTemplates" ] }, "delete": { "description": "Destroy a webhook payload template for a network. Does not work for included templates ('wpt_00001', 'wpt_00002', 'wpt_00003', 'wpt_00004', 'wpt_00005', 'wpt_00006', 'wpt_00007' or 'wpt_00008')", "operationId": "deleteNetworkWebhooksPayloadTemplate", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "payloadTemplateId", "in": "path", "description": "Payload template ID", "schema": { "type": "string" }, "required": true } ], "responses": { "204": { "description": "Successful operation" } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:write" ] } ], "summary": "Destroy a webhook payload template for a network", "tags": [ "networks", "configure", "webhooks", "payloadTemplates" ] }, "put": { "description": "Update a webhook payload template for a network", "operationId": "updateNetworkWebhooksPayloadTemplate", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "payloadTemplateId", "in": "path", "description": "Payload template ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the template" }, "body": { "type": "string", "description": "The liquid template used for the body of the webhook message." }, "headers": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the header template" }, "template": { "type": "string", "description": "The liquid template for the headers" } } }, "nullable": true, "description": "The liquid template used with the webhook headers." }, "bodyFile": { "type": "string", "format": "byte", "description": "A file containing liquid template used for the body of the webhook message." }, "headersFile": { "type": "string", "format": "byte", "description": "A file containing the liquid template used with the webhook headers." } }, "example": { "name": "Custom Template", "body": "{\"event_type\":\"{{alertTypeId}}\",\"client_payload\":{\"text\":\"{{alertData}}\"}}", "headers": [ { "name": "Authorization", "template": "Bearer {{sharedSecret}}" } ], "bodyFile": "Qm9keSBGaWxl", "headersFile": "SGVhZGVycyBGaWxl" } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "payloadTemplateId": { "type": "string", "description": "Webhook payload template Id" }, "type": { "type": "string", "description": "The type of the payload template" }, "name": { "type": "string", "description": "The name of the payload template" }, "headers": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the header attribute" }, "template": { "type": "string", "description": "The value returned in the header attribute, in liquid template" } } }, "description": "The payload template headers, will be rendered as a key-value pair in the webhook." }, "body": { "type": "string", "description": "The body of the payload template, in liquid template" }, "sharing": { "type": "object", "properties": { "byNetwork": { "type": "object", "properties": { "adminsCanModify": { "type": "boolean", "description": "Indicates whether network admins may modify this template" } }, "description": "Information on network access to the template" } }, "description": "Information on which entities have access to the template" } } }, "example": { "payloadTemplateId": "wpt_343", "type": "custom", "name": "Custom Template", "headers": [ { "name": "Authorization", "template": "Bearer {{sharedSecret}}" } ], "body": "{\"event_type\":\"{{alertTypeId}}\",\"client_payload\":{\"text\":\"{{alertData}}\"}}", "sharing": { "byNetwork": { "adminsCanModify": false } } } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:write" ] } ], "summary": "Update a webhook payload template for a network", "tags": [ "networks", "configure", "webhooks", "payloadTemplates" ] } }, "/networks/{networkId}/webhooks/webhookTests": { "post": { "description": "Send a test webhook for a network", "operationId": "createNetworkWebhooksWebhookTest", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "url": { "type": "string", "description": "The URL where the test webhook will be sent" }, "sharedSecret": { "type": "string", "description": "The shared secret the test webhook will send. Optional. Defaults to HTTP server's shared secret. Otherwise, defaults to an empty string." }, "payloadTemplateId": { "type": "string", "description": "The ID of the payload template of the test webhook. Defaults to the HTTP server's template ID if one exists for the given URL, or Generic template ID otherwise" }, "payloadTemplateName": { "type": "string", "description": "The name of the payload template." }, "alertTypeId": { "type": "string", "description": "The type of alert which the test webhook will send. Optional. Defaults to power_supply_down.", "default": "power_supply_down" } }, "example": { "url": "https://www.example.com/path", "sharedSecret": "shhh", "payloadTemplateId": "wpt_00001", "payloadTemplateName": "Payload Template", "alertTypeId": "power_supply_down" }, "required": [ "url" ] } } }, "required": true }, "responses": { "201": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Webhook delivery identifier" }, "url": { "type": "string", "description": "URL where the webhook was delivered" }, "status": { "type": "string", "enum": [ "abandoned", "delivered", "enqueued", "processing", "retrying" ], "description": "Current status of the webhook delivery" } } }, "example": { "id": "1234", "url": "https://www.example.com/path", "status": "enqueued" } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:write" ] } ], "summary": "Send a test webhook for a network", "tags": [ "networks", "configure", "webhooks", "webhookTests" ] } }, "/networks/{networkId}/webhooks/webhookTests/{webhookTestId}": { "get": { "description": "Return the status of a webhook test for a network", "operationId": "getNetworkWebhooksWebhookTest", "parameters": [ { "name": "networkId", "in": "path", "description": "Network ID", "schema": { "type": "string" }, "required": true }, { "name": "webhookTestId", "in": "path", "description": "Webhook test ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Webhook delivery identifier" }, "url": { "type": "string", "description": "URL where the webhook was delivered" }, "status": { "type": "string", "enum": [ "abandoned", "delivered", "enqueued", "processing", "retrying" ], "description": "Current status of the webhook delivery" } } }, "example": { "id": "1234", "url": "https://www.example.com/path", "status": "enqueued" } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "Return the status of a webhook test for a network", "tags": [ "networks", "configure", "webhooks", "webhookTests" ] } } } }