UNPKG

node-red-contrib-meraki-dashboard-api

Version:

Node-RED node for meraki-dashboard-api

1,634 lines (1,038 loc) 760 kB
/*jshint -W069 */ /** * The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) * @class MerakiDashboardApi * @param {(string|object)} [domainOrOptions] - The project domain or options object. If object, see the object's optional properties. * @param {string} [domainOrOptions.domain] - The project domain * @param {object} [domainOrOptions.token] - auth token - object with value property and optional headerOrQueryName and isQuery properties */ var MerakiDashboardApi = (function(){ 'use strict'; var request = require('request'); var Q = require('q'); var fileType = require('file-type'); function MerakiDashboardApi(options){ var domain = (typeof options === 'object') ? options.domain : options; this.domain = domain ? domain : 'https://api.meraki.com/api/v0'; if(this.domain.length === 0) { throw new Error('Domain parameter must be specified as a string.'); } this.apiKey = (typeof options === 'object') ? (options.apiKey ? options.apiKey : {}) : {}; } function mergeQueryParams(parameters, queryParameters) { if (parameters.$queryParameters) { Object.keys(parameters.$queryParameters) .forEach(function(parameterName) { var parameter = parameters.$queryParameters[parameterName]; queryParameters[parameterName] = parameter; }); } return queryParameters; } /** * HTTP Request * @method * @name MerakiDashboardApi#request * @param {string} method - http method * @param {string} url - url to do request * @param {object} parameters * @param {object} body - body parameters / object * @param {object} headers - header parameters * @param {object} queryParameters - querystring parameters * @param {object} form - form data object * @param {object} deferred - promise object */ MerakiDashboardApi.prototype.request = function(method, url, parameters, body, headers, queryParameters, form, deferred){ var req = { method: method, uri: url, qs: queryParameters, headers: headers, body: body, followAllRedirects: true }; if(Object.keys(form).length > 0) { if (req.headers['Content-Type'] && req.headers['Content-Type'][0] === 'multipart/form-data') { delete req.body; var keyName = Object.keys(form)[0] req.formData = { [keyName]: { value: form[keyName], options: { filename: (fileType(form[keyName]) != null ? `file.${ fileType(form[keyName]).ext }` : `file` ) } } }; } else { req.form = form; } } if(typeof(body) === 'object' && !(body instanceof Buffer)) { req.json = true; } request(req, function(error, response, body){ if(error) { deferred.reject(error); } else { if(/^application\/(.*\\+)?json/.test(response.headers['content-type'])) { try { body = JSON.parse(body); } catch(e) {} } if(response.statusCode === 204) { deferred.resolve({ response: response }); } else if(response.statusCode >= 200 && response.statusCode <= 299) { deferred.resolve({ response: response, body: body }); } else { deferred.reject({ response: response, body: body }); } } }); }; /** * Set Api Key * @method * @name MerakiDashboardApi#setApiKey * @param {string} value - apiKey's value * @param {string} headerOrQueryName - the header or query name to send the apiKey at * @param {boolean} isQuery - true if send the apiKey as query param, otherwise, send as header param */ MerakiDashboardApi.prototype.setApiKey = function (value, headerOrQueryName, isQuery) { this.apiKey.value = value; this.apiKey.headerOrQueryName = headerOrQueryName; this.apiKey.isQuery = isQuery; }; /** * Set Auth headers * @method * @name MerakiDashboardApi#setAuthHeaders * @param {object} headerParams - headers object */ MerakiDashboardApi.prototype.setAuthHeaders = function (headerParams) { var headers = headerParams ? headerParams : {}; if (!this.apiKey.isQuery && this.apiKey.headerOrQueryName) { headers[this.apiKey.headerOrQueryName] = this.apiKey.value; } return headers; }; /** * Returns live state from camera of analytics zones * @method * @name MerakiDashboardApi#getDeviceCameraAnalyticsLive * @param {object} parameters - method options and parameters * @param {string} parameters.serial - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) */ MerakiDashboardApi.prototype.getDeviceCameraAnalyticsLive = function(parameters){ if(parameters === undefined) { parameters = {}; } var deferred = Q.defer(); var domain = this.domain, path = '/devices/{serial}/camera/analytics/live'; var body = {}, queryParameters = {}, headers = {}, form = {}; headers = this.setAuthHeaders(headers); headers['Accept'] = ['application/json']; headers['Content-Type'] = ['application/json']; path = path.replace('{serial}', parameters['serial']); if(parameters['serial'] === undefined){ deferred.reject(new Error('Missing required parameter: serial')); return deferred.promise; } queryParameters = mergeQueryParams(parameters, queryParameters); this.request('GET', domain + path, parameters, body, headers, queryParameters, form, deferred); return deferred.promise; }; /** * Returns an overview of aggregate analytics data for a timespan * @method * @name MerakiDashboardApi#getDeviceCameraAnalyticsOverview * @param {object} parameters - method options and parameters * @param {string} parameters.serial - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) * @param {string} parameters.t0 - The beginning of the timespan for the data. The maximum lookback period is 365 days from today. * @param {string} parameters.t1 - The end of the timespan for the data. t1 can be a maximum of 7 days after t0. * @param {number} parameters.timespan - The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 7 days. The default is 1 hour. * @param {string} parameters.objectType - [optional] The object type for which analytics will be retrieved. The default object type is person. The available types are [person, vehicle]. */ MerakiDashboardApi.prototype.getDeviceCameraAnalyticsOverview = function(parameters){ if(parameters === undefined) { parameters = {}; } var deferred = Q.defer(); var domain = this.domain, path = '/devices/{serial}/camera/analytics/overview'; var body = {}, queryParameters = {}, headers = {}, form = {}; headers = this.setAuthHeaders(headers); headers['Accept'] = ['application/json']; headers['Content-Type'] = ['application/json']; path = path.replace('{serial}', parameters['serial']); if(parameters['serial'] === undefined){ deferred.reject(new Error('Missing required parameter: serial')); return deferred.promise; } if(parameters['t0'] !== undefined){ queryParameters['t0'] = parameters['t0']; } if(parameters['t1'] !== undefined){ queryParameters['t1'] = parameters['t1']; } if(parameters['timespan'] !== undefined){ queryParameters['timespan'] = parameters['timespan']; } if(parameters['objectType'] !== undefined){ queryParameters['objectType'] = parameters['objectType']; } queryParameters = mergeQueryParams(parameters, queryParameters); this.request('GET', domain + path, parameters, body, headers, queryParameters, form, deferred); return deferred.promise; }; /** * Returns most recent record for analytics zones * @method * @name MerakiDashboardApi#getDeviceCameraAnalyticsRecent * @param {object} parameters - method options and parameters * @param {string} parameters.serial - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) * @param {string} parameters.objectType - [optional] The object type for which analytics will be retrieved. The default object type is person. The available types are [person, vehicle]. */ MerakiDashboardApi.prototype.getDeviceCameraAnalyticsRecent = function(parameters){ if(parameters === undefined) { parameters = {}; } var deferred = Q.defer(); var domain = this.domain, path = '/devices/{serial}/camera/analytics/recent'; var body = {}, queryParameters = {}, headers = {}, form = {}; headers = this.setAuthHeaders(headers); headers['Accept'] = ['application/json']; headers['Content-Type'] = ['application/json']; path = path.replace('{serial}', parameters['serial']); if(parameters['serial'] === undefined){ deferred.reject(new Error('Missing required parameter: serial')); return deferred.promise; } if(parameters['objectType'] !== undefined){ queryParameters['objectType'] = parameters['objectType']; } queryParameters = mergeQueryParams(parameters, queryParameters); this.request('GET', domain + path, parameters, body, headers, queryParameters, form, deferred); return deferred.promise; }; /** * Returns all configured analytic zones for this camera * @method * @name MerakiDashboardApi#getDeviceCameraAnalyticsZones * @param {object} parameters - method options and parameters * @param {string} parameters.serial - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) */ MerakiDashboardApi.prototype.getDeviceCameraAnalyticsZones = function(parameters){ if(parameters === undefined) { parameters = {}; } var deferred = Q.defer(); var domain = this.domain, path = '/devices/{serial}/camera/analytics/zones'; var body = {}, queryParameters = {}, headers = {}, form = {}; headers = this.setAuthHeaders(headers); headers['Accept'] = ['application/json']; headers['Content-Type'] = ['application/json']; path = path.replace('{serial}', parameters['serial']); if(parameters['serial'] === undefined){ deferred.reject(new Error('Missing required parameter: serial')); return deferred.promise; } queryParameters = mergeQueryParams(parameters, queryParameters); this.request('GET', domain + path, parameters, body, headers, queryParameters, form, deferred); return deferred.promise; }; /** * Return historical records for analytic zones * @method * @name MerakiDashboardApi#getDeviceCameraAnalyticsZoneHistory * @param {object} parameters - method options and parameters * @param {string} parameters.serial - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) * @param {string} parameters.zoneId - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) * @param {string} parameters.t0 - The beginning of the timespan for the data. The maximum lookback period is 365 days from today. * @param {string} parameters.t1 - The end of the timespan for the data. t1 can be a maximum of 14 hours after t0. * @param {number} parameters.timespan - The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 14 hours. The default is 1 hour. * @param {integer} parameters.resolution - The time resolution in seconds for returned data. The valid resolutions are: 60. The default is 60. * @param {string} parameters.objectType - [optional] The object type for which analytics will be retrieved. The default object type is person. The available types are [person, vehicle]. */ MerakiDashboardApi.prototype.getDeviceCameraAnalyticsZoneHistory = function(parameters){ if(parameters === undefined) { parameters = {}; } var deferred = Q.defer(); var domain = this.domain, path = '/devices/{serial}/camera/analytics/zones/{zoneId}/history'; var body = {}, queryParameters = {}, headers = {}, form = {}; headers = this.setAuthHeaders(headers); headers['Accept'] = ['application/json']; headers['Content-Type'] = ['application/json']; path = path.replace('{serial}', parameters['serial']); if(parameters['serial'] === undefined){ deferred.reject(new Error('Missing required parameter: serial')); return deferred.promise; } path = path.replace('{zoneId}', parameters['zoneId']); if(parameters['zoneId'] === undefined){ deferred.reject(new Error('Missing required parameter: zoneId')); return deferred.promise; } if(parameters['t0'] !== undefined){ queryParameters['t0'] = parameters['t0']; } if(parameters['t1'] !== undefined){ queryParameters['t1'] = parameters['t1']; } if(parameters['timespan'] !== undefined){ queryParameters['timespan'] = parameters['timespan']; } if(parameters['resolution'] !== undefined){ queryParameters['resolution'] = parameters['resolution']; } if(parameters['objectType'] !== undefined){ queryParameters['objectType'] = parameters['objectType']; } queryParameters = mergeQueryParams(parameters, queryParameters); this.request('GET', domain + path, parameters, body, headers, queryParameters, form, deferred); return deferred.promise; }; /** * Returns quality and retention settings for the given camera * @method * @name MerakiDashboardApi#getDeviceCameraQualityAndRetentionSettings * @param {object} parameters - method options and parameters * @param {string} parameters.serial - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) */ MerakiDashboardApi.prototype.getDeviceCameraQualityAndRetentionSettings = function(parameters){ if(parameters === undefined) { parameters = {}; } var deferred = Q.defer(); var domain = this.domain, path = '/devices/{serial}/camera/qualityAndRetentionSettings'; var body = {}, queryParameters = {}, headers = {}, form = {}; headers = this.setAuthHeaders(headers); headers['Accept'] = ['application/json']; headers['Content-Type'] = ['application/json']; path = path.replace('{serial}', parameters['serial']); if(parameters['serial'] === undefined){ deferred.reject(new Error('Missing required parameter: serial')); return deferred.promise; } queryParameters = mergeQueryParams(parameters, queryParameters); this.request('GET', domain + path, parameters, body, headers, queryParameters, form, deferred); return deferred.promise; }; /** * Update quality and retention settings for the given camera * @method * @name MerakiDashboardApi#updateDeviceCameraQualityAndRetentionSettings * @param {object} parameters - method options and parameters * @param {string} parameters.serial - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) * @param {} parameters.updateDeviceCameraQualityAndRetentionSettings - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) */ MerakiDashboardApi.prototype.updateDeviceCameraQualityAndRetentionSettings = function(parameters){ if(parameters === undefined) { parameters = {}; } var deferred = Q.defer(); var domain = this.domain, path = '/devices/{serial}/camera/qualityAndRetentionSettings'; var body = {}, queryParameters = {}, headers = {}, form = {}; headers = this.setAuthHeaders(headers); headers['Accept'] = ['application/json']; headers['Content-Type'] = ['application/json']; path = path.replace('{serial}', parameters['serial']); if(parameters['serial'] === undefined){ deferred.reject(new Error('Missing required parameter: serial')); return deferred.promise; } if(parameters['updateDeviceCameraQualityAndRetentionSettings'] !== undefined){ body = parameters['updateDeviceCameraQualityAndRetentionSettings']; } queryParameters = mergeQueryParams(parameters, queryParameters); this.request('PUT', domain + path, parameters, body, headers, queryParameters, form, deferred); return deferred.promise; }; /** * Show the LAN Settings of a MG * @method * @name MerakiDashboardApi#getDeviceCellularGatewaySettings * @param {object} parameters - method options and parameters * @param {string} parameters.serial - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) */ MerakiDashboardApi.prototype.getDeviceCellularGatewaySettings = function(parameters){ if(parameters === undefined) { parameters = {}; } var deferred = Q.defer(); var domain = this.domain, path = '/devices/{serial}/cellularGateway/settings'; var body = {}, queryParameters = {}, headers = {}, form = {}; headers = this.setAuthHeaders(headers); headers['Accept'] = ['application/json']; headers['Content-Type'] = ['application/json']; path = path.replace('{serial}', parameters['serial']); if(parameters['serial'] === undefined){ deferred.reject(new Error('Missing required parameter: serial')); return deferred.promise; } queryParameters = mergeQueryParams(parameters, queryParameters); this.request('GET', domain + path, parameters, body, headers, queryParameters, form, deferred); return deferred.promise; }; /** * Update the LAN Settings for a single MG. * @method * @name MerakiDashboardApi#updateDeviceCellularGatewaySettings * @param {object} parameters - method options and parameters * @param {string} parameters.serial - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) * @param {} parameters.updateDeviceCellularGatewaySettings - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) */ MerakiDashboardApi.prototype.updateDeviceCellularGatewaySettings = function(parameters){ if(parameters === undefined) { parameters = {}; } var deferred = Q.defer(); var domain = this.domain, path = '/devices/{serial}/cellularGateway/settings'; var body = {}, queryParameters = {}, headers = {}, form = {}; headers = this.setAuthHeaders(headers); headers['Accept'] = ['application/json']; headers['Content-Type'] = ['application/json']; path = path.replace('{serial}', parameters['serial']); if(parameters['serial'] === undefined){ deferred.reject(new Error('Missing required parameter: serial')); return deferred.promise; } if(parameters['updateDeviceCellularGatewaySettings'] !== undefined){ body = parameters['updateDeviceCellularGatewaySettings']; } queryParameters = mergeQueryParams(parameters, queryParameters); this.request('PUT', domain + path, parameters, body, headers, queryParameters, form, deferred); return deferred.promise; }; /** * Returns the port forwarding rules for a single MG. * @method * @name MerakiDashboardApi#getDeviceCellularGatewaySettingsPortForwardingRules * @param {object} parameters - method options and parameters * @param {string} parameters.serial - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) */ MerakiDashboardApi.prototype.getDeviceCellularGatewaySettingsPortForwardingRules = function(parameters){ if(parameters === undefined) { parameters = {}; } var deferred = Q.defer(); var domain = this.domain, path = '/devices/{serial}/cellularGateway/settings/portForwardingRules'; var body = {}, queryParameters = {}, headers = {}, form = {}; headers = this.setAuthHeaders(headers); headers['Accept'] = ['application/json']; headers['Content-Type'] = ['application/json']; path = path.replace('{serial}', parameters['serial']); if(parameters['serial'] === undefined){ deferred.reject(new Error('Missing required parameter: serial')); return deferred.promise; } queryParameters = mergeQueryParams(parameters, queryParameters); this.request('GET', domain + path, parameters, body, headers, queryParameters, form, deferred); return deferred.promise; }; /** * Updates the port forwarding rules for a single MG. * @method * @name MerakiDashboardApi#updateDeviceCellularGatewaySettingsPortForwardingRules * @param {object} parameters - method options and parameters * @param {string} parameters.serial - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) * @param {} parameters.updateDeviceCellularGatewaySettingsPortForwardingRules - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) */ MerakiDashboardApi.prototype.updateDeviceCellularGatewaySettingsPortForwardingRules = function(parameters){ if(parameters === undefined) { parameters = {}; } var deferred = Q.defer(); var domain = this.domain, path = '/devices/{serial}/cellularGateway/settings/portForwardingRules'; var body = {}, queryParameters = {}, headers = {}, form = {}; headers = this.setAuthHeaders(headers); headers['Accept'] = ['application/json']; headers['Content-Type'] = ['application/json']; path = path.replace('{serial}', parameters['serial']); if(parameters['serial'] === undefined){ deferred.reject(new Error('Missing required parameter: serial')); return deferred.promise; } if(parameters['updateDeviceCellularGatewaySettingsPortForwardingRules'] !== undefined){ body = parameters['updateDeviceCellularGatewaySettingsPortForwardingRules']; } queryParameters = mergeQueryParams(parameters, queryParameters); this.request('PUT', domain + path, parameters, body, headers, queryParameters, form, deferred); return deferred.promise; }; /** * List the clients of a device, up to a maximum of a month ago. The usage of each client is returned in kilobytes. If the device is a switch, the switchport is returned; otherwise the switchport field is null. * @method * @name MerakiDashboardApi#getDeviceClients * @param {object} parameters - method options and parameters * @param {string} parameters.serial - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) * @param {string} parameters.t0 - The beginning of the timespan for the data. The maximum lookback period is 31 days from today. * @param {number} parameters.timespan - 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. */ MerakiDashboardApi.prototype.getDeviceClients = function(parameters){ if(parameters === undefined) { parameters = {}; } var deferred = Q.defer(); var domain = this.domain, path = '/devices/{serial}/clients'; var body = {}, queryParameters = {}, headers = {}, form = {}; headers = this.setAuthHeaders(headers); headers['Accept'] = ['application/json']; headers['Content-Type'] = ['application/json']; path = path.replace('{serial}', parameters['serial']); if(parameters['serial'] === undefined){ deferred.reject(new Error('Missing required parameter: serial')); return deferred.promise; } if(parameters['t0'] !== undefined){ queryParameters['t0'] = parameters['t0']; } if(parameters['timespan'] !== undefined){ queryParameters['timespan'] = parameters['timespan']; } queryParameters = mergeQueryParams(parameters, queryParameters); this.request('GET', domain + path, parameters, body, headers, queryParameters, form, deferred); return deferred.promise; }; /** * Cycle a set of switch ports * @method * @name MerakiDashboardApi#cycleDeviceSwitchPorts * @param {object} parameters - method options and parameters * @param {string} parameters.serial - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) * @param {} parameters.cycleDeviceSwitchPorts - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) */ MerakiDashboardApi.prototype.cycleDeviceSwitchPorts = function(parameters){ if(parameters === undefined) { parameters = {}; } var deferred = Q.defer(); var domain = this.domain, path = '/devices/{serial}/switch/ports/cycle'; var body = {}, queryParameters = {}, headers = {}, form = {}; headers = this.setAuthHeaders(headers); headers['Accept'] = ['application/json']; headers['Content-Type'] = ['application/json']; path = path.replace('{serial}', parameters['serial']); if(parameters['serial'] === undefined){ deferred.reject(new Error('Missing required parameter: serial')); return deferred.promise; } if(parameters['cycleDeviceSwitchPorts'] !== undefined){ body = parameters['cycleDeviceSwitchPorts']; } if(parameters['cycleDeviceSwitchPorts'] === undefined){ deferred.reject(new Error('Missing required parameter: cycleDeviceSwitchPorts')); return deferred.promise; } queryParameters = mergeQueryParams(parameters, queryParameters); this.request('POST', domain + path, parameters, body, headers, queryParameters, form, deferred); return deferred.promise; }; /** * Return the status for all the ports of a switch * @method * @name MerakiDashboardApi#getDeviceSwitchPortStatuses * @param {object} parameters - method options and parameters * @param {string} parameters.serial - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) * @param {string} parameters.t0 - The beginning of the timespan for the data. The maximum lookback period is 31 days from today. * @param {number} parameters.timespan - 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. */ MerakiDashboardApi.prototype.getDeviceSwitchPortStatuses = function(parameters){ if(parameters === undefined) { parameters = {}; } var deferred = Q.defer(); var domain = this.domain, path = '/devices/{serial}/switchPortStatuses'; var body = {}, queryParameters = {}, headers = {}, form = {}; headers = this.setAuthHeaders(headers); headers['Accept'] = ['application/json']; headers['Content-Type'] = ['application/json']; path = path.replace('{serial}', parameters['serial']); if(parameters['serial'] === undefined){ deferred.reject(new Error('Missing required parameter: serial')); return deferred.promise; } if(parameters['t0'] !== undefined){ queryParameters['t0'] = parameters['t0']; } if(parameters['timespan'] !== undefined){ queryParameters['timespan'] = parameters['timespan']; } queryParameters = mergeQueryParams(parameters, queryParameters); this.request('GET', domain + path, parameters, body, headers, queryParameters, form, deferred); return deferred.promise; }; /** * Return the packet counters for all the ports of a switch * @method * @name MerakiDashboardApi#getDeviceSwitchPortStatusesPackets * @param {object} parameters - method options and parameters * @param {string} parameters.serial - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) * @param {string} parameters.t0 - The beginning of the timespan for the data. The maximum lookback period is 1 day from today. * @param {number} parameters.timespan - The timespan for which the information will be fetched. If specifying timespan, do not specify parameter t0. The value must be in seconds and be less than or equal to 1 day. The default is 1 day. */ MerakiDashboardApi.prototype.getDeviceSwitchPortStatusesPackets = function(parameters){ if(parameters === undefined) { parameters = {}; } var deferred = Q.defer(); var domain = this.domain, path = '/devices/{serial}/switchPortStatuses/packets'; var body = {}, queryParameters = {}, headers = {}, form = {}; headers = this.setAuthHeaders(headers); headers['Accept'] = ['application/json']; headers['Content-Type'] = ['application/json']; path = path.replace('{serial}', parameters['serial']); if(parameters['serial'] === undefined){ deferred.reject(new Error('Missing required parameter: serial')); return deferred.promise; } if(parameters['t0'] !== undefined){ queryParameters['t0'] = parameters['t0']; } if(parameters['timespan'] !== undefined){ queryParameters['timespan'] = parameters['timespan']; } queryParameters = mergeQueryParams(parameters, queryParameters); this.request('GET', domain + path, parameters, body, headers, queryParameters, form, deferred); return deferred.promise; }; /** * List the switch ports for a switch * @method * @name MerakiDashboardApi#getDeviceSwitchPorts * @param {object} parameters - method options and parameters * @param {string} parameters.serial - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) */ MerakiDashboardApi.prototype.getDeviceSwitchPorts = function(parameters){ if(parameters === undefined) { parameters = {}; } var deferred = Q.defer(); var domain = this.domain, path = '/devices/{serial}/switchPorts'; var body = {}, queryParameters = {}, headers = {}, form = {}; headers = this.setAuthHeaders(headers); headers['Accept'] = ['application/json']; headers['Content-Type'] = ['application/json']; path = path.replace('{serial}', parameters['serial']); if(parameters['serial'] === undefined){ deferred.reject(new Error('Missing required parameter: serial')); return deferred.promise; } queryParameters = mergeQueryParams(parameters, queryParameters); this.request('GET', domain + path, parameters, body, headers, queryParameters, form, deferred); return deferred.promise; }; /** * Return a switch port * @method * @name MerakiDashboardApi#getDeviceSwitchPort * @param {object} parameters - method options and parameters * @param {string} parameters.serial - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) * @param {string} parameters.number - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) */ MerakiDashboardApi.prototype.getDeviceSwitchPort = function(parameters){ if(parameters === undefined) { parameters = {}; } var deferred = Q.defer(); var domain = this.domain, path = '/devices/{serial}/switchPorts/{number}'; var body = {}, queryParameters = {}, headers = {}, form = {}; headers = this.setAuthHeaders(headers); headers['Accept'] = ['application/json']; headers['Content-Type'] = ['application/json']; path = path.replace('{serial}', parameters['serial']); if(parameters['serial'] === undefined){ deferred.reject(new Error('Missing required parameter: serial')); return deferred.promise; } path = path.replace('{number}', parameters['number']); if(parameters['number'] === undefined){ deferred.reject(new Error('Missing required parameter: number')); return deferred.promise; } queryParameters = mergeQueryParams(parameters, queryParameters); this.request('GET', domain + path, parameters, body, headers, queryParameters, form, deferred); return deferred.promise; }; /** * Update a switch port * @method * @name MerakiDashboardApi#updateDeviceSwitchPort * @param {object} parameters - method options and parameters * @param {string} parameters.serial - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) * @param {string} parameters.number - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) * @param {} parameters.updateDeviceSwitchPort - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) */ MerakiDashboardApi.prototype.updateDeviceSwitchPort = function(parameters){ if(parameters === undefined) { parameters = {}; } var deferred = Q.defer(); var domain = this.domain, path = '/devices/{serial}/switchPorts/{number}'; var body = {}, queryParameters = {}, headers = {}, form = {}; headers = this.setAuthHeaders(headers); headers['Accept'] = ['application/json']; headers['Content-Type'] = ['application/json']; path = path.replace('{serial}', parameters['serial']); if(parameters['serial'] === undefined){ deferred.reject(new Error('Missing required parameter: serial')); return deferred.promise; } path = path.replace('{number}', parameters['number']); if(parameters['number'] === undefined){ deferred.reject(new Error('Missing required parameter: number')); return deferred.promise; } if(parameters['updateDeviceSwitchPort'] !== undefined){ body = parameters['updateDeviceSwitchPort']; } queryParameters = mergeQueryParams(parameters, queryParameters); this.request('PUT', domain + path, parameters, body, headers, queryParameters, form, deferred); return deferred.promise; }; /** * Return the bluetooth settings for a wireless device * @method * @name MerakiDashboardApi#getDeviceWirelessBluetoothSettings * @param {object} parameters - method options and parameters * @param {string} parameters.serial - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) */ MerakiDashboardApi.prototype.getDeviceWirelessBluetoothSettings = function(parameters){ if(parameters === undefined) { parameters = {}; } var deferred = Q.defer(); var domain = this.domain, path = '/devices/{serial}/wireless/bluetooth/settings'; var body = {}, queryParameters = {}, headers = {}, form = {}; headers = this.setAuthHeaders(headers); headers['Accept'] = ['application/json']; headers['Content-Type'] = ['application/json']; path = path.replace('{serial}', parameters['serial']); if(parameters['serial'] === undefined){ deferred.reject(new Error('Missing required parameter: serial')); return deferred.promise; } queryParameters = mergeQueryParams(parameters, queryParameters); this.request('GET', domain + path, parameters, body, headers, queryParameters, form, deferred); return deferred.promise; }; /** * Update the bluetooth settings for a wireless device * @method * @name MerakiDashboardApi#updateDeviceWirelessBluetoothSettings * @param {object} parameters - method options and parameters * @param {string} parameters.serial - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) * @param {} parameters.updateDeviceWirelessBluetoothSettings - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) */ MerakiDashboardApi.prototype.updateDeviceWirelessBluetoothSettings = function(parameters){ if(parameters === undefined) { parameters = {}; } var deferred = Q.defer(); var domain = this.domain, path = '/devices/{serial}/wireless/bluetooth/settings'; var body = {}, queryParameters = {}, headers = {}, form = {}; headers = this.setAuthHeaders(headers); headers['Accept'] = ['application/json']; headers['Content-Type'] = ['application/json']; path = path.replace('{serial}', parameters['serial']); if(parameters['serial'] === undefined){ deferred.reject(new Error('Missing required parameter: serial')); return deferred.promise; } if(parameters['updateDeviceWirelessBluetoothSettings'] !== undefined){ body = parameters['updateDeviceWirelessBluetoothSettings']; } queryParameters = mergeQueryParams(parameters, queryParameters); this.request('PUT', domain + path, parameters, body, headers, queryParameters, form, deferred); return deferred.promise; }; /** * Return a network * @method * @name MerakiDashboardApi#getNetwork * @param {object} parameters - method options and parameters * @param {string} parameters.networkId - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) */ MerakiDashboardApi.prototype.getNetwork = function(parameters){ if(parameters === undefined) { parameters = {}; } var deferred = Q.defer(); var domain = this.domain, path = '/networks/{networkId}'; var body = {}, queryParameters = {}, headers = {}, form = {}; headers = this.setAuthHeaders(headers); headers['Accept'] = ['application/json']; headers['Content-Type'] = ['application/json']; path = path.replace('{networkId}', parameters['networkId']); if(parameters['networkId'] === undefined){ deferred.reject(new Error('Missing required parameter: networkId')); return deferred.promise; } queryParameters = mergeQueryParams(parameters, queryParameters); this.request('GET', domain + path, parameters, body, headers, queryParameters, form, deferred); return deferred.promise; }; /** * Update a network * @method * @name MerakiDashboardApi#updateNetwork * @param {object} parameters - method options and parameters * @param {string} parameters.networkId - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) * @param {} parameters.updateNetwork - The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification. > Date: 04 March, 2020 > > [What's New](https://meraki.io/whats-new/) --- [API Documentation](https://meraki.io/api) [Community Support](https://meraki.io/community) [Meraki Homepage](https://www.meraki.com) */ MerakiDashboardApi.prototype.updateNetwork = function(parameters){ if(parameters === undefined) { parameters = {}; } var deferred = Q.defer(); var domain = this.domain, path = '/networks/{networkId}'; var body = {}, queryParameters = {}, headers = {}, form = {}; headers = this.setAuthHeaders(headers); headers['Accept'] = ['application/json']; headers['Content-Type'] = ['application/json']; path = path.replace('{networkId}', parameters['networkId']); if(parameters['networkId'] === undefined){ deferred.reject(new Error('Missing required parameter: networkId')); return deferred.promise; } if(parameters['updateNetwork'] !== undefined){ body = parameters['updateNetwork']; } queryParameters = mergeQueryParams(parameters, queryParameters); this.request('PUT', domain + path, parameters, body, headers, queryParameters, form, deferred); return deferred.promise; }; /** * Delete a network * @method * @