|
[{"id":"84a99143.8865e","type":"tab","label":"Global Settings"},{"id":"6e7f14f8.00b1fc","type":"tab","label":"Admins"},{"id":"aee95c7f.b5f35","type":"tab","label":"Clients"},{"id":"8d87025.671bb","type":"tab","label":"Config Templates"},{"id":"ddf70b09.e9b388","type":"tab","label":"Devices"},{"id":"53741f01.0a6a","type":"tab","label":"L3 Firewall"},{"id":"9696e4c4.ac1b68","type":"tab","label":"Networks"},{"id":"8fb42dac.3089d","type":"tab","label":"Organizations"},{"id":"b7438282.6118d","type":"tab","label":"Phone Contacts"},{"id":"ca265dbc.9dca2","type":"tab","label":"Phone Numbers"},{"id":"fa80bcd6.ee2d3","type":"tab","label":"SAML Roles"},{"id":"adb906fd.e68698","type":"tab","label":"SM"},{"id":"f295fd89.8ae63","type":"tab","label":"SSIDs"},{"id":"887aac8a.09e1b","type":"tab","label":"Static Routes"},{"id":"fc90633f.eb78","type":"tab","label":"Switch Ports"},{"id":"d7c0974d.3a3dd8","type":"tab","label":"VLANs"},{"id":"1cb3e834.2a9958","type":"tab","label":"VPN"},{"id":"ba9e2568.77a458","type":"tab","label":"Workflows"},{"id":"4a5fa8e6.495c18","type":"inject","z":"8fb42dac.3089d","name":"List Organizations","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":130,"y":80,"wires":[["51945195.4de8f"]]},{"id":"51945195.4de8f","type":"function","z":"8fb42dac.3089d","name":"Meraki API - List Organizations","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar orgId = msg.orgId;\n\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\n\nmsg.url = \"https://dashboard.meraki.com/api/v0/organizations\";\nmsg.method = 'get';\n\nreturn msg;","outputs":1,"noerr":0,"x":630,"y":80,"wires":[["cbbdf373.90fb9"]]},{"id":"cbbdf373.90fb9","type":"http request","z":"8fb42dac.3089d","name":"","method":"use","ret":"txt","url":"","tls":"","x":850,"y":80,"wires":[["a82b1db4.e65ca"]]},{"id":"55f52347.2b201c","type":"http in","z":"8fb42dac.3089d","name":"","url":"/meraki/api/organizations","method":"get","swaggerDoc":"","x":160,"y":120,"wires":[["51945195.4de8f"]]},{"id":"a82b1db4.e65ca","type":"function","z":"8fb42dac.3089d","name":"Large Int Helper","func":"const regex = /\"id\":(.*?)(?:,)/g;\nconst str = `{\"id\":351024,\"name\":\"Cisco Mini Demo 2\"},{\"id\":215332,\"name\":\"Cisco Mini Demo 1\"},`;\nlet m;\n\nwhile ((m = regex.exec(str)) !== null) {\n // This is necessary to avoid infinite loops with zero-width matches\n if (m.index === regex.lastIndex) {\n regex.lastIndex++;\n }\n \n // The result can be accessed through the `m`-variable.\n m.forEach((match, groupIndex) => {\n console.log(`Found match, group ${groupIndex}: ${match}`);\n });\n}\n\n\nmsg.payload = msg.payload.replace(/\"id\":(.*?)(?:,)/g,\"\\\"id\\\"\\:\\\"$1\\\"\\,\");\nconsole.log(\"new json with regex replace \",msg.payload);\nreturn msg","outputs":1,"noerr":0,"x":1060,"y":80,"wires":[["fece1c18.2391"]]},{"id":"fece1c18.2391","type":"json","z":"8fb42dac.3089d","name":"","x":1250,"y":80,"wires":[["9e761d66.700d7","36338949.15d6c6"]]},{"id":"9e761d66.700d7","type":"http response","z":"8fb42dac.3089d","name":"","x":1390,"y":80,"wires":[]},{"id":"36338949.15d6c6","type":"debug","z":"8fb42dac.3089d","name":"List Orgs JSON","active":true,"console":"false","complete":"true","x":1360,"y":120,"wires":[]},{"id":"e1589c9c.be32c","type":"inject","z":"9696e4c4.ac1b68","name":"List Networks","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":110,"y":140,"wires":[["5f28999d.5849b8"]]},{"id":"5f28999d.5849b8","type":"function","z":"9696e4c4.ac1b68","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.orgId = global.get('orgId');\nreturn msg;","outputs":1,"noerr":0,"x":390,"y":140,"wires":[["511eebd4.758f24"]]},{"id":"511eebd4.758f24","type":"function","z":"9696e4c4.ac1b68","name":"Meraki API - List Networks","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar orgId = msg.req.params.orgId;\n\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://dashboard.meraki.com/api/v0/organizations/\"+orgId+\"/networks\";\nmsg.method = 'get';\n\n\nreturn msg;","outputs":1,"noerr":0,"x":620,"y":140,"wires":[["f53dc7f7.d330f8"]]},{"id":"3e6160a9.108fb","type":"http in","z":"9696e4c4.ac1b68","name":"","url":"/meraki/api/organizations/:orgId/networks","method":"get","swaggerDoc":"","x":220,"y":180,"wires":[["511eebd4.758f24"]]},{"id":"f53dc7f7.d330f8","type":"http request","z":"9696e4c4.ac1b68","name":"","method":"use","ret":"obj","url":"","tls":"","x":970,"y":140,"wires":[["129b973f.2e6b09","124417e8.00f5c8"]]},{"id":"129b973f.2e6b09","type":"debug","z":"9696e4c4.ac1b68","name":"List Nets","active":true,"console":"false","complete":"true","x":1120,"y":180,"wires":[]},{"id":"124417e8.00f5c8","type":"http response","z":"9696e4c4.ac1b68","name":"","x":1130,"y":140,"wires":[]},{"id":"f3c1e1f4.12dc5","type":"inject","z":"8fb42dac.3089d","name":"List License State","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":130,"y":200,"wires":[["3933f537.afac9a"]]},{"id":"3933f537.afac9a","type":"function","z":"8fb42dac.3089d","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.orgId = flow.get('orgId');\nreturn msg;","outputs":1,"noerr":0,"x":390,"y":200,"wires":[["7e5c4475.6dac0c"]]},{"id":"7e5c4475.6dac0c","type":"function","z":"8fb42dac.3089d","name":"Meraki API - List License State","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar shard = global.get('shard');\nvar orgId = msg.req.params.orgId;\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://\"+shard+\".meraki.com/api/v0/organizations/\"+orgId+\"/licenseState\";\nmsg.method = 'get';\n\n\nreturn msg;","outputs":1,"noerr":0,"x":630,"y":200,"wires":[["9f06a92e.a7f808"]]},{"id":"9f06a92e.a7f808","type":"http request","z":"8fb42dac.3089d","name":"","method":"use","ret":"obj","url":"","tls":"","x":970,"y":200,"wires":[["cb6dc336.acf14","be680be6.eebb28"]]},{"id":"73b7bd.143a8844","type":"http in","z":"8fb42dac.3089d","name":"","url":"/meraki/api/organizations/:orgId/licenseState","method":"get","swaggerDoc":"","x":230,"y":240,"wires":[["7e5c4475.6dac0c"]]},{"id":"cb6dc336.acf14","type":"http response","z":"8fb42dac.3089d","name":"","x":1130,"y":200,"wires":[]},{"id":"be680be6.eebb28","type":"debug","z":"8fb42dac.3089d","name":"List License State","active":true,"console":"false","complete":"true","x":1090,"y":240,"wires":[]},{"id":"d9f3972a.75ef68","type":"inject","z":"9696e4c4.ac1b68","name":"Create a Network","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":120,"y":260,"wires":[["ed968996.c5c918"]]},{"id":"ed968996.c5c918","type":"function","z":"9696e4c4.ac1b68","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.orgId = global.get('orgId');\n\n// Sample Data\nmsg.payload = {\n \"name\": \"API Test - Node-RED - \"+ (new Date().getMilliseconds()),\n \"timeZone\": \"Europe/Amsterdam\",\n \"tags\": \"APItest\",\n \"type\": \"wireless\"\n};\n\nreturn msg;","outputs":1,"noerr":0,"x":390,"y":260,"wires":[["59dbae91.37746"]]},{"id":"59dbae91.37746","type":"function","z":"9696e4c4.ac1b68","name":"Meraki API - Create a Network","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar orgId = msg.req.params.orgId;\nvar shard = global.get('shard');\n\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://\"+shard+\".meraki.com/api/v0/organizations/\"+orgId+\"/networks\";\nmsg.method = 'post';\n\n\nreturn msg;","outputs":1,"noerr":0,"x":630,"y":260,"wires":[["584fab9.5418054"]]},{"id":"584fab9.5418054","type":"http request","z":"9696e4c4.ac1b68","name":"","method":"use","ret":"obj","url":"","tls":"","x":970,"y":260,"wires":[["8072968e.d31358","bec6090d.d9c918"]]},{"id":"43d6a0fc.7120c","type":"http in","z":"9696e4c4.ac1b68","name":"","url":"meraki/api/organizations/:orgId/networks","method":"post","swaggerDoc":"","x":220,"y":300,"wires":[["59dbae91.37746"]]},{"id":"8072968e.d31358","type":"debug","z":"9696e4c4.ac1b68","name":"Create a Network","active":true,"console":"false","complete":"payload","x":1090,"y":300,"wires":[]},{"id":"bec6090d.d9c918","type":"http response","z":"9696e4c4.ac1b68","name":"","x":1130,"y":260,"wires":[]},{"id":"f71ff70.a122d08","type":"inject","z":"8d87025.671bb","name":"List Templates","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":130,"y":160,"wires":[["b14e6734.0032e8"]]},{"id":"b14e6734.0032e8","type":"function","z":"8d87025.671bb","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.orgId = global.get('orgId');\nreturn msg;","outputs":1,"noerr":0,"x":410,"y":160,"wires":[["538b765e.fb2448"]]},{"id":"538b765e.fb2448","type":"function","z":"8d87025.671bb","name":"Meraki API - List Templates","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar orgId = msg.req.params.orgId;\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://dashboard.meraki.com/api/v0/organizations/\"+orgId+\"/configTemplates\";\nmsg.method = 'get';\n\n\nreturn msg;","outputs":1,"noerr":0,"x":640,"y":160,"wires":[["6f1b6e.81bcd494"]]},{"id":"6f1b6e.81bcd494","type":"http request","z":"8d87025.671bb","name":"","method":"use","ret":"obj","url":"","tls":"","x":990,"y":160,"wires":[["e59eeb78.59cb08","846fdc09.adb59"]]},{"id":"276ac748.a932c8","type":"http in","z":"8d87025.671bb","name":"","url":"meraki/api/organizations/:orgId/configTemplates","method":"get","swaggerDoc":"","x":260,"y":200,"wires":[["538b765e.fb2448"]]},{"id":"e59eeb78.59cb08","type":"http response","z":"8d87025.671bb","name":"","x":1150,"y":160,"wires":[]},{"id":"846fdc09.adb59","type":"debug","z":"8d87025.671bb","name":"List Templates","active":true,"console":"false","complete":"payload","x":1120,"y":200,"wires":[]},{"id":"791de5ad.3a087c","type":"inject","z":"8d87025.671bb","name":"Bind to a Template","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":150,"y":280,"wires":[["34a5e389.5717bc"]]},{"id":"34a5e389.5717bc","type":"function","z":"8d87025.671bb","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.orgId = global.get('orgId');\n\n// Sample Data\nmsg.payload = {\n \"configTemplateId\":\"L_643451796760560235\",\n \"autoBind\": false\n};\n\nreturn msg;","outputs":1,"noerr":0,"x":410,"y":280,"wires":[["6b31466d.597538"]]},{"id":"6b31466d.597538","type":"function","z":"8d87025.671bb","name":"Meraki API - Bind to a Template","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar shard = global.get('shard');\nvar netId = msg.req.params.netId;\n\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://\"+shard+\".meraki.com/api/v0/networks/\"+netId+\"/bind\";\nmsg.method = 'post';\n\nreturn msg;","outputs":1,"noerr":0,"x":650,"y":280,"wires":[["28d6f3a7.afa31c"]]},{"id":"28d6f3a7.afa31c","type":"http request","z":"8d87025.671bb","name":"","method":"use","ret":"obj","url":"","tls":"","x":990,"y":280,"wires":[["2c451ba1.e5aa74","b0f98ad7.cc9508"]]},{"id":"23f2ebc0.4506d4","type":"http in","z":"8d87025.671bb","name":"","url":"meraki/api/networks/:netId/bind","method":"post","swaggerDoc":"","x":210,"y":320,"wires":[["6b31466d.597538"]]},{"id":"2c451ba1.e5aa74","type":"http response","z":"8d87025.671bb","name":"","x":1150,"y":280,"wires":[]},{"id":"b0f98ad7.cc9508","type":"debug","z":"8d87025.671bb","name":"Bind to a Template","active":true,"console":"false","complete":"true","x":1110,"y":320,"wires":[]},{"id":"f470eefb.f83cb","type":"inject","z":"8d87025.671bb","name":"Unbind from Template","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":160,"y":400,"wires":[["34c431e7.f287ce"]]},{"id":"34c431e7.f287ce","type":"function","z":"8d87025.671bb","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.netId = global.get('netId');\n\n// Sample Data\nmsg.payload = {};\n\nreturn msg;","outputs":1,"noerr":0,"x":410,"y":400,"wires":[["e357d4b8.f829d8"]]},{"id":"e357d4b8.f829d8","type":"function","z":"8d87025.671bb","name":"Meraki API - Unbind from Template","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar shard = global.get('shard');\nvar netId = msg.req.params.netId;\n\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://\"+shard+\".meraki.com/api/v0/networks/\"+netId+\"/unbind\";\nmsg.method = 'post';\nreturn msg;","outputs":1,"noerr":0,"x":660,"y":400,"wires":[["bac0b068.e254"]]},{"id":"bac0b068.e254","type":"http request","z":"8d87025.671bb","name":"","method":"use","ret":"obj","url":"","tls":"","x":990,"y":400,"wires":[["5af5b3cf.220b9c","9e9fb298.9448b"]]},{"id":"eb6063e2.80ba1","type":"http in","z":"8d87025.671bb","name":"","url":"meraki/api/networks/:netId/unbind","method":"post","swaggerDoc":"","x":220,"y":440,"wires":[["e357d4b8.f829d8"]]},{"id":"5af5b3cf.220b9c","type":"http response","z":"8d87025.671bb","name":"","x":1150,"y":400,"wires":[]},{"id":"9e9fb298.9448b","type":"debug","z":"8d87025.671bb","name":"Unbind from Template","active":true,"console":"false","complete":"payload","x":1108,"y":442,"wires":[]},{"id":"751a21a0.ddaef","type":"comment","z":"8d87025.671bb","name":"Bug: \"{\"errors\":[\"Validation failed: Handle has already been taken\"]}\"","info":"","x":460,"y":440,"wires":[]},{"id":"ae4a342f.b665c8","type":"inject","z":"ddf70b09.e9b388","name":"Remove a single Device","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":180,"y":500,"wires":[["9b8e2e3a.b0076"]]},{"id":"9b8e2e3a.b0076","type":"function","z":"ddf70b09.e9b388","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.netId = global.get('netId');\n// Sample Data\nmsg.req.params.serial = global.get('serial');\nmsg.payload = {\n \n};\n\nreturn msg;","outputs":1,"noerr":0,"x":430,"y":500,"wires":[["d00343cb.bd30b"]]},{"id":"d00343cb.bd30b","type":"function","z":"ddf70b09.e9b388","name":"Meraki API - Remove a Single Device","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar shard = global.get('shard');\nvar netId = msg.req.params.netId;\nvar serial = msg.req.params.serial;\n\n\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://\"+shard+\".meraki.com/api/v0/networks/\"+netId+\"/devices/\"+flow.get('serial')+\"/remove\";\nmsg.method ='post';\nreturn msg;","outputs":1,"noerr":0,"x":690,"y":500,"wires":[["db65ab6c.34a478"]]},{"id":"db65ab6c.34a478","type":"http request","z":"ddf70b09.e9b388","name":"","method":"use","ret":"obj","url":"","tls":"","x":1010,"y":500,"wires":[["9e3eb1ca.6d9d2","f4d08618.ece748"]]},{"id":"97b0e8ef.f2a8b8","type":"http in","z":"ddf70b09.e9b388","name":"","url":"/meraki/api/networks/:netId/devices/:serial/remove","method":"post","swaggerDoc":"","x":290,"y":540,"wires":[["d00343cb.bd30b"]]},{"id":"9e3eb1ca.6d9d2","type":"debug","z":"ddf70b09.e9b388","name":"Remove a single Device","active":true,"console":"false","complete":"true","x":1110,"y":540,"wires":[]},{"id":"f4d08618.ece748","type":"http response","z":"ddf70b09.e9b388","name":"","x":1170,"y":500,"wires":[]},{"id":"70c465b4.8fab9c","type":"inject","z":"ddf70b09.e9b388","name":"List Devices","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":150,"y":100,"wires":[["bac4aa3.ccd2e58"]]},{"id":"bac4aa3.ccd2e58","type":"function","z":"ddf70b09.e9b388","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.netId = global.get('netId');\n\n// Sample Data\nmsg.payload = {\n\n};\n\nreturn msg;","outputs":1,"noerr":0,"x":430,"y":100,"wires":[["f19da6ab.310f48"]]},{"id":"f19da6ab.310f48","type":"function","z":"ddf70b09.e9b388","name":"Meraki API - List Devices","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar shard = global.get('shard');\nvar netId = msg.req.params.netId;\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://dashboard.meraki.com/api/v0/networks/\"+netId+\"/devices/\";\nmsg.method = \"get\";\nreturn msg;","outputs":1,"noerr":0,"x":650,"y":100,"wires":[["3c293f4d.6e3b"]]},{"id":"3c293f4d.6e3b","type":"http request","z":"ddf70b09.e9b388","name":"","method":"use","ret":"obj","url":"","tls":"","x":1010,"y":100,"wires":[["9ec7006b.c0899","81f3bae1.7b32a8"]]},{"id":"a567e748.127868","type":"http in","z":"ddf70b09.e9b388","name":"","url":"/meraki/api/networks/:netId/devices/","method":"get","swaggerDoc":"","x":240,"y":140,"wires":[["f19da6ab.310f48"]]},{"id":"9ec7006b.c0899","type":"debug","z":"ddf70b09.e9b388","name":"List Devices","active":true,"console":"false","complete":"payload","x":1150,"y":140,"wires":[]},{"id":"81f3bae1.7b32a8","type":"http response","z":"ddf70b09.e9b388","name":"","x":1170,"y":100,"wires":[]},{"id":"ae06b8a.0968448","type":"inject","z":"ddf70b09.e9b388","name":"List a single Device","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":170,"y":200,"wires":[["817335d2.ac5918"]]},{"id":"817335d2.ac5918","type":"function","z":"ddf70b09.e9b388","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.netId = global.get('netId');\n// Sample Data\nmsg.req.params.serial = global.get('serial');\nmsg.payload = {\n \n};\n\nreturn msg;","outputs":1,"noerr":0,"x":430,"y":200,"wires":[["db0a8136.60e84"]]},{"id":"db0a8136.60e84","type":"function","z":"ddf70b09.e9b388","name":"Meraki API - List a Single Device","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar shard = global.get('shard');\nvar netId = msg.req.params.netId;\nvar serial = msg.req.params.serial;\n\n\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://\"+shard+\".meraki.com/api/v0/networks/\"+netId+\"/devices/\"+flow.get('serial');\nmsg.method ='get';\nreturn msg;","outputs":1,"noerr":0,"x":680,"y":200,"wires":[["ff5c3546.e506d8"]]},{"id":"ff5c3546.e506d8","type":"http request","z":"ddf70b09.e9b388","name":"","method":"use","ret":"obj","url":"","tls":"","x":1010,"y":200,"wires":[["15d7dad.3199325","ba8ed237.455df"]]},{"id":"2fb431ee.0d366e","type":"http in","z":"ddf70b09.e9b388","name":"","url":"/meraki/api/networks/:netId/devices/:serial","method":"get","swaggerDoc":"","x":260,"y":240,"wires":[["db0a8136.60e84"]]},{"id":"15d7dad.3199325","type":"debug","z":"ddf70b09.e9b388","name":"List a single Device","active":true,"console":"false","complete":"true","x":1090,"y":240,"wires":[]},{"id":"ba8ed237.455df","type":"http response","z":"ddf70b09.e9b388","name":"","x":1170,"y":200,"wires":[]},{"id":"3451f136.ffec0e","type":"inject","z":"ddf70b09.e9b388","name":"Claim a Device","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":160,"y":300,"wires":[["92463257.6c1c2"]]},{"id":"92463257.6c1c2","type":"function","z":"ddf70b09.e9b388","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.netId = global.get('netId');\n\n// Sample Data\nmsg.payload = {\n \"serial\": global.get('serial')\n};\n\nreturn msg;","outputs":1,"noerr":0,"x":430,"y":300,"wires":[["8528adec.5bdfe"]]},{"id":"8528adec.5bdfe","type":"function","z":"ddf70b09.e9b388","name":"Meraki API - Claim a Device","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar shard = global.get('shard');\nvar netId = msg.req.params.netId;\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\n\nmsg.url = \"https://\"+shard+\".meraki.com/api/v0/networks/\"+netId+\"/devices/claim\";\n\nmsg.method = \"post\";\n\nreturn msg;","outputs":1,"noerr":0,"x":660,"y":300,"wires":[["9c0d18c5.22dab8"]]},{"id":"9c0d18c5.22dab8","type":"http request","z":"ddf70b09.e9b388","name":"","method":"use","ret":"obj","url":"","tls":"","x":1010,"y":300,"wires":[["11f8d13c.c99b4f","9e87333e.8bbe3"]]},{"id":"105f500a.136ab","type":"http in","z":"ddf70b09.e9b388","name":"","url":"/meraki/api/networks/:netId/devices/claim","method":"post","swaggerDoc":"","x":260,"y":340,"wires":[["8528adec.5bdfe"]]},{"id":"11f8d13c.c99b4f","type":"debug","z":"ddf70b09.e9b388","name":"Claim a Device","active":true,"console":"false","complete":"true","x":1140,"y":340,"wires":[]},{"id":"9e87333e.8bbe3","type":"http response","z":"ddf70b09.e9b388","name":"","x":1170,"y":300,"wires":[]},{"id":"4bc22786.dffb58","type":"inject","z":"ddf70b09.e9b388","name":"Update Attributes of a Device","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":200,"y":400,"wires":[["fea9dd25.77974"]]},{"id":"fea9dd25.77974","type":"function","z":"ddf70b09.e9b388","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.netId = global.get('netId');\n// Sample Data\nmsg.req.params.serial = global.get('serial');\nmsg.payload = {\n \"name\":\"My device 7\",\n \"lat\":37.4180951010362,\n \"lng\":-122.098531723022,\n \"address\":\"1600 Pennsylvania Ave\",\n \"tags\":\"testAPI anotherTag\"\n};\n\nreturn msg;","outputs":1,"noerr":0,"x":430,"y":400,"wires":[["6a8c1292.303e0c"]]},{"id":"6a8c1292.303e0c","type":"function","z":"ddf70b09.e9b388","name":"Meraki API - Update Attributes of a Device","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar shard = global.get('shard');\nvar netId = msg.req.params.netId;\nvar serial = msg.req.params.serial;\n\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://\"+shard+\".meraki.com/api/v0/networks/\"+netId+\"/devices/\"+serial;\nmsg.method = \"put\";\nreturn msg;","outputs":1,"noerr":0,"x":710,"y":400,"wires":[["89f80fc5.eb72f"]]},{"id":"89f80fc5.eb72f","type":"http request","z":"ddf70b09.e9b388","name":"","method":"use","ret":"obj","url":"","tls":"","x":990,"y":400,"wires":[["d13e048.3f2a9f8","ca2001dc.67679"]]},{"id":"3558733d.436f7c","type":"http in","z":"ddf70b09.e9b388","name":"","url":"/meraki/api/networks/:netId/devices/:serial","method":"put","swaggerDoc":"","x":263.3333282470703,"y":445.00004482269287,"wires":[["6a8c1292.303e0c"]]},{"id":"d13e048.3f2a9f8","type":"debug","z":"ddf70b09.e9b388","name":"Update Attributes of a Device","active":true,"console":"false","complete":"true","x":1090,"y":440,"wires":[]},{"id":"ca2001dc.67679","type":"http response","z":"ddf70b09.e9b388","name":"","x":1170,"y":400,"wires":[]},{"id":"f1513c66.11039","type":"inject","z":"f295fd89.8ae63","name":"List SSIDs of a Network","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":180,"y":160,"wires":[["7fa73186.b0021"]]},{"id":"7fa73186.b0021","type":"function","z":"f295fd89.8ae63","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.netId = global.get('netId');\nreturn msg;","outputs":1,"noerr":0,"x":430,"y":160,"wires":[["5fe06458.53262c"]]},{"id":"5fe06458.53262c","type":"function","z":"f295fd89.8ae63","name":"Meraki API - List SSIDs of a Network","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar netId = msg.req.params.netId;\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://dashboard.meraki.com/api/v0/networks/\"+netId+\"/ssids\";\nmsg.method = 'get';\n\n\nreturn msg;","outputs":1,"noerr":0,"x":690,"y":160,"wires":[["2a3e79ea.fc4a36"]]},{"id":"2a3e79ea.fc4a36","type":"http request","z":"f295fd89.8ae63","name":"","method":"use","ret":"obj","url":"","tls":"","x":1010,"y":160,"wires":[["c12a70d2.7781a","1d194c2c.5363d4"]]},{"id":"90d8d996.0b3fb8","type":"http in","z":"f295fd89.8ae63","name":"[get] /meraki/api/networks/:netId/ssids","url":"/meraki/api/networks/:netId/ssids","method":"get","swaggerDoc":"","x":230,"y":200,"wires":[["5fe06458.53262c"]]},{"id":"c12a70d2.7781a","type":"debug","z":"f295fd89.8ae63","name":"List SSIDs","active":true,"console":"false","complete":"true","x":1150,"y":200,"wires":[]},{"id":"1d194c2c.5363d4","type":"http response","z":"f295fd89.8ae63","name":"","x":1170,"y":160,"wires":[]},{"id":"1ef30991.716ce6","type":"inject","z":"f295fd89.8ae63","name":"Update the Attributes of an SSID","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":210,"y":300,"wires":[["fec27fc4.42cd9"]]},{"id":"fec27fc4.42cd9","type":"function","z":"f295fd89.8ae63","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.netId = global.get('netId');\nmsg.req.params.ssidNum = global.get('ssidNum');\n\n// Sample data\nmsg.payload = {\n \"name\":\"new SSID name\",\n \"enabled\":true,\n \"authMode\":\"psk\",\n \"encryptionMode\":\"wpa\",\n \"psk\":\"abcd1234\",\n \"splashPage\":\"Click-through splash page\",\n \"perClientBandwidthLimitUp\":0,\n \"perClientBandwidthLimitDown\":0,\n \"ssidAdminAccessible\":false,\n \"ipAssignmentMode\":\"Bridge mode\",\n \"walledGardenEnabled\":true,\n \"walledGardenRanges\":\"192.168.1.1/24 192.168.37.10/32\"\n};\nreturn msg;","outputs":1,"noerr":0,"x":430,"y":299.99998664855957,"wires":[["e6443f09.6338b"]]},{"id":"e6443f09.6338b","type":"function","z":"f295fd89.8ae63","name":"Meraki API - Update the Attributes of an SSID","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar netId = global.get('netId');\nvar shard = global.get('shard');\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://\"+shard+\".meraki.com/api/v0/networks/\"+netId+\"/ssids/\"+ssidNum;\nmsg.method = \"put\";\nreturn msg;","outputs":1,"noerr":0,"x":720,"y":300,"wires":[["3a41615d.d9279e"]]},{"id":"3a41615d.d9279e","type":"http request","z":"f295fd89.8ae63","name":"","method":"use","ret":"obj","url":"","tls":"","x":1010,"y":300,"wires":[["3f1e76c5.b9b4ca","43d6245b.67848c"]]},{"id":"57792012.fe298","type":"http in","z":"f295fd89.8ae63","name":"","url":"/meraki/api/networks/:netId/ssids/:ssidNum","method":"put","swaggerDoc":"","x":260,"y":340,"wires":[["e6443f09.6338b"]]},{"id":"3f1e76c5.b9b4ca","type":"debug","z":"f295fd89.8ae63","name":"Update Attributes of an SSID","active":true,"console":"false","complete":"true","x":1100,"y":340,"wires":[]},{"id":"43d6245b.67848c","type":"http response","z":"f295fd89.8ae63","name":"","x":1170,"y":300,"wires":[]},{"id":"c19daf8a.312a","type":"inject","z":"8fb42dac.3089d","name":"List Inventory","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":110,"y":320,"wires":[["79a6bf6.23cba4"]]},{"id":"79a6bf6.23cba4","type":"function","z":"8fb42dac.3089d","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.orgId = global.get('orgId');\nreturn msg;","outputs":1,"noerr":0,"x":390,"y":320,"wires":[["7dee1a74.fbdde4"]]},{"id":"7dee1a74.fbdde4","type":"function","z":"8fb42dac.3089d","name":"Meraki API - List Inventory","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar orgId = msg.req.params.orgId;\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://dashboard.meraki.com/api/v0/organizations/\"+orgId+\"/inventory\";\nmsg.method = 'get';\n\n\nreturn msg;","outputs":1,"noerr":0,"x":620,"y":320,"wires":[["aa52b98c.279c28"]]},{"id":"aa52b98c.279c28","type":"http request","z":"8fb42dac.3089d","name":"","method":"use","ret":"obj","url":"","tls":"","x":970,"y":320,"wires":[["fa8fe470.97e408","a45d080b.a78838"]]},{"id":"52903166.139dc","type":"http in","z":"8fb42dac.3089d","name":"","url":"/meraki/api/organizations/:orgId/inventory","method":"get","swaggerDoc":"","x":220,"y":360,"wires":[["7dee1a74.fbdde4"]]},{"id":"fa8fe470.97e408","type":"debug","z":"8fb42dac.3089d","name":"List Inventory","active":true,"console":"false","complete":"true","x":1100,"y":360,"wires":[]},{"id":"a45d080b.a78838","type":"http response","z":"8fb42dac.3089d","name":"","x":1130,"y":320,"wires":[]},{"id":"89ba3fc5.5561c","type":"inject","z":"6e7f14f8.00b1fc","name":"List Admins","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":110,"y":60,"wires":[["d02c4223.d8ee2"]]},{"id":"d02c4223.d8ee2","type":"function","z":"6e7f14f8.00b1fc","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.orgId = global.get('orgId');\n\n// Sample Data\nmsg.payload = {\n \n};\nreturn msg;","outputs":1,"noerr":0,"x":390,"y":60,"wires":[["6d26e4b8.14078c"]]},{"id":"6d26e4b8.14078c","type":"function","z":"6e7f14f8.00b1fc","name":"Meraki API - List Admins","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar shard = global.get('shard');\nvar orgId = msg.req.params.orgId;\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://\"+shard+\".meraki.com/api/v0/organizations/\"+orgId+\"/admins\";\nmsg.method = 'get';\nreturn msg;","outputs":1,"noerr":0,"x":610,"y":60,"wires":[["63758a72.0615a4"]]},{"id":"63758a72.0615a4","type":"http request","z":"6e7f14f8.00b1fc","name":"","method":"use","ret":"obj","url":"","tls":"","x":970,"y":60,"wires":[["ca39e534.7d2758","415ae4e1.c930fc"]]},{"id":"96f0083d.805518","type":"http in","z":"6e7f14f8.00b1fc","name":"","url":"/meraki/api/organizations/:orgId/admins","method":"get","swaggerDoc":"","x":210,"y":100,"wires":[["6d26e4b8.14078c"]]},{"id":"ca39e534.7d2758","type":"debug","z":"6e7f14f8.00b1fc","name":"List Admins","active":true,"console":"false","complete":"true","x":1110,"y":100,"wires":[]},{"id":"415ae4e1.c930fc","type":"http response","z":"6e7f14f8.00b1fc","name":"","x":1130,"y":60,"wires":[]},{"id":"b0d8ddc.f5b342","type":"inject","z":"6e7f14f8.00b1fc","name":"Create Admin","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":110,"y":180,"wires":[["64096931.b33dc8"]]},{"id":"64096931.b33dc8","type":"function","z":"6e7f14f8.00b1fc","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.orgId = global.get('orgId');\n\n// Sample Data\nmsg.payload = {\n email: 'info@internetoflego.com',\n name: 'cory lego user',\n orgAccess: 'read-only',\n tags:[\n {\n \"tag\":\"west\",\n \"access\":\"read-only\"\n },\n {\n \"tag\":\"east\",\n \"access\":\"read-only\"\n }\n ],\n networks: [] \n};\nreturn msg;","outputs":1,"noerr":0,"x":390,"y":180,"wires":[["f2986e49.69308"]]},{"id":"f2986e49.69308","type":"function","z":"6e7f14f8.00b1fc","name":"Meraki API - Create Admin","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar shard = global.get('shard');\nvar orgId = msg.req.params.orgId;\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://\"+shard+\".meraki.com/api/v0/organizations/\"+orgId+\"/admins\";\nmsg.method = 'post';\nreturn msg;","outputs":1,"noerr":0,"x":620,"y":180,"wires":[["41d9e859.59f4f8"]]},{"id":"41d9e859.59f4f8","type":"http request","z":"6e7f14f8.00b1fc","name":"","method":"use","ret":"obj","url":"","tls":"","x":970,"y":180,"wires":[["eeb89117.131ee","33c30ff3.dda7b"]]},{"id":"c037291a.5b08d8","type":"http in","z":"6e7f14f8.00b1fc","name":"","url":"/meraki/api/organizations/:orgId/admins","method":"post","swaggerDoc":"","x":210,"y":220,"wires":[["f2986e49.69308"]]},{"id":"eeb89117.131ee","type":"debug","z":"6e7f14f8.00b1fc","name":"Create Admin","active":true,"console":"false","complete":"payload","x":1100,"y":220,"wires":[]},{"id":"33c30ff3.dda7b","type":"http response","z":"6e7f14f8.00b1fc","name":"","x":1130,"y":180,"wires":[]},{"id":"ecde1563.36ba68","type":"inject","z":"ddf70b09.e9b388","name":"Uplink Status of a Device","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":190,"y":680,"wires":[["f02b616f.cfe9f"]]},{"id":"f02b616f.cfe9f","type":"function","z":"ddf70b09.e9b388","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.netId = global.get('netId');\nmsg.req.params.serial = global.get('serial');\n\n// Sample Data\nmsg.payload = {\n \n};\n\nreturn msg;","outputs":1,"noerr":0,"x":430,"y":680,"wires":[["f9fbc5e8.8ca6b8"]]},{"id":"f9fbc5e8.8ca6b8","type":"function","z":"ddf70b09.e9b388","name":"Meraki API - Uplink Status","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar shard = global.get('shard');\nvar netId = msg.req.params.netId;\nvar serial = msg.req.params.serial;\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://dashboard.meraki.com/api/v0/networks/\"+netId+\"/devices/\"+serial+\"/uplink\";\nmsg.method = \"get\";\nreturn msg;","outputs":1,"noerr":0,"x":660,"y":680,"wires":[["f95b45ea.ff8278"]]},{"id":"f95b45ea.ff8278","type":"http request","z":"ddf70b09.e9b388","name":"","method":"use","ret":"obj","url":"","tls":"","x":1010,"y":680,"wires":[["af6d1890.73b458","690e15f4.2fff0c"]]},{"id":"4e1b77a8.8f90c8","type":"http in","z":"ddf70b09.e9b388","name":"","url":"meraki/api/networks/:netId/devices/:serial/uplink","method":"get","swaggerDoc":"","x":280,"y":720,"wires":[["f9fbc5e8.8ca6b8"]]},{"id":"af6d1890.73b458","type":"debug","z":"ddf70b09.e9b388","name":"Uplink Status","active":true,"console":"false","complete":"true","x":1140,"y":720,"wires":[]},{"id":"690e15f4.2fff0c","type":"http response","z":"ddf70b09.e9b388","name":"","x":1170,"y":680,"wires":[]},{"id":"93ff7faf.c764e","type":"inject","z":"9696e4c4.ac1b68","name":"Traffic Analysis","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":120,"y":560,"wires":[["fca1449c.f4a4a8"]]},{"id":"fca1449c.f4a4a8","type":"function","z":"9696e4c4.ac1b68","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.netId = global.get('netId');\n\n// Sample Data\nmsg.payload = {\n\n};\n\nreturn msg;","outputs":1,"noerr":0,"x":390,"y":560,"wires":[["cce7093c.cfd918"]]},{"id":"cce7093c.cfd918","type":"function","z":"9696e4c4.ac1b68","name":"Meraki API - Traffic Analysis","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar shard = global.get('shard');\nvar netId = msg.req.params.netId;\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://dashboard.meraki.com/api/v0/networks/\"+netId+\"/traffic?timespan=14400\";\nmsg.method = \"get\";\nreturn msg;","outputs":1,"noerr":0,"x":620,"y":560,"wires":[["4af3caeb.0ddeb4"]]},{"id":"4af3caeb.0ddeb4","type":"http request","z":"9696e4c4.ac1b68","name":"","method":"use","ret":"obj","url":"","tls":"","x":970,"y":560,"wires":[["5266be13.58245","dc239783.df8298"]]},{"id":"35c2e76b.6902c8","type":"http in","z":"9696e4c4.ac1b68","name":"","url":"/meraki/api/networks/:netId/traffic?timespan=14400","method":"get","swaggerDoc":"","x":250,"y":600,"wires":[["cce7093c.cfd918"]]},{"id":"5266be13.58245","type":"debug","z":"9696e4c4.ac1b68","name":"Traffic Analysis","active":true,"console":"false","complete":"true","x":1100,"y":600,"wires":[]},{"id":"dc239783.df8298","type":"http response","z":"9696e4c4.ac1b68","name":"","x":1130,"y":560,"wires":[]},{"id":"48847b7f.f519a4","type":"inject","z":"84a99143.8865e","name":"Sets Defaults - Injected at start","topic":"","payload":"Setting Environment Variables","payloadType":"str","repeat":"","crontab":"","once":true,"x":190,"y":80,"wires":[["cb53383e.754b58"]]},{"id":"cb53383e.754b58","type":"function","z":"84a99143.8865e","name":"Set Environment Variables: UPDATE THIS","func":"// ###### User Defined Variables ######\n\nconst API_KEY = 'YoUr ApI KEy'; //Your API KEY (Keep this secret. Do not publish)\n\nvar shard = 'dashboard'; // https://n149.meraki.com , where n149 represent the shard number. This is defined to avoid redirect issues.\n\n\n// These environment variables are used by the testing buttons. In production, these paramters should be passed in the URL.\nvar orgId = '123123123'; // Your test Organization ID\nvar netId = 'N_123123123123'; // Your test Network ID\nvar netId_delete = \"L_123123123123\"; // some test network to delete as a test. Be carefull!\nvar serial = '1234-1234-1234'; // Your test serial numer of device\nvar ssidNum = '0';\n// ###### ###### ###### ###### ###### ######\n\n\n\n\n\n// Assign to Flow Context \nglobal.set('apiKey', API_KEY); \nglobal.set('orgId', orgId);\nglobal.set('netId', netId);\nglobal.set('serial', serial);\nglobal.set('shard', shard);\nglobal.set('netId_delete', netId_delete);\n\n// confirm changes were made\nvar settings = {};\n\n\nsettings.apiKey = global.get('apiKey');\nsettings.orgId = global.get('orgId');\nsettings.netId = global.get('netId');\nsettings.serial = global.get('serial');\nsettings.shard = global.get('shard');\n\nmsg.payload = settings;\nreturn msg;","outputs":1,"noerr":0,"x":500,"y":80,"wires":[["b2e100a0.bd2cf"]]},{"id":"b2e100a0.bd2cf","type":"debug","z":"84a99143.8865e","name":"Flow Env Variables","active":true,"console":"false","complete":"true","x":970,"y":80,"wires":[]},{"id":"67096d0b.515964","type":"comment","z":"84a99143.8865e","name":"API Key and Environment variables: UPDATE THE NODE!","info":"","x":230,"y":40,"wires":[]},{"id":"ca12baf8.6ae168","type":"inject","z":"ba9e2568.77a458","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":120,"y":540,"wires":[["a01f1a57.d34b48"]]},{"id":"a01f1a57.d34b48","type":"function","z":"ba9e2568.77a458","name":"loop 10 times","func":"for(var x =0; x<10; x++){\n msg.payload = x;\n node.send(msg);\n}\n","outputs":1,"noerr":0,"x":310,"y":540,"wires":[["cb7aaf9d.76523"]]},{"id":"cb7aaf9d.76523","type":"debug","z":"ba9e2568.77a458","name":"","active":true,"console":"false","complete":"false","x":510,"y":540,"wires":[]},{"id":"6c1b707a.ec504","type":"inject","z":"ba9e2568.77a458","name":"List Devices","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":110,"y":140,"wires":[["f9e781ae.0cee9"]]},{"id":"f9e781ae.0cee9","type":"function","z":"ba9e2568.77a458","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.netId = global.get('netId');\n\n// Sample Data\nmsg.payload = {\n\n};\n\nreturn msg;","outputs":1,"noerr":0,"x":290,"y":140,"wires":[["91a213fa.d6f6b"]]},{"id":"91a213fa.d6f6b","type":"function","z":"ba9e2568.77a458","name":"Meraki API - List Devices","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar shard = global.get('shard');\nvar netId = msg.req.params.netId;\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://dashboard.meraki.com/api/v0/networks/\"+netId+\"/devices/\";\nmsg.method = \"get\";\nreturn msg;","outputs":1,"noerr":0,"x":510,"y":140,"wires":[["3e5a246d.8e732c"]]},{"id":"3e5a246d.8e732c","type":"http request","z":"ba9e2568.77a458","name":"","method":"use","ret":"obj","url":"","tls":"","x":890,"y":140,"wires":[["82438b50.517608","5ced51b5.8698a"]]},{"id":"82438b50.517608","type":"debug","z":"ba9e2568.77a458","name":"List Devices","active":true,"console":"false","complete":"true","x":890,"y":180,"wires":[]},{"id":"5ced51b5.8698a","type":"function","z":"ba9e2568.77a458","name":"Send each serial","func":"var devices = msg.payload;\nmsg.count = devices.length; // used for later context function\nfor(var x = 0; x < devices.length; x++){\n msg.serial = devices[x].serial;\n msg.netId = devices[x].networkId;\n node.send(msg)\n}\n","outputs":1,"noerr":0,"x":270,"y":220,"wires":[["42a7767b.db2f88","34d69aa4.6aa916"]]},{"id":"34d69aa4.6aa916","type":"function","z":"ba9e2568.77a458","name":"Meraki API - Uplink Status","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar shard = global.get('shard');\nvar netId = msg.netId;\nvar serial = msg.serial;\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://dashboard.meraki.com/api/v0/networks/\"+netId+\"/devices/\"+serial+\"/uplink\";\nmsg.method = \"get\";\nreturn msg;","outputs":1,"noerr":0,"x":520,"y":220,"wires":[["a948a8cc.67b458"]]},{"id":"522af1f0.d7206","type":"http request","z":"ba9e2568.77a458","name":"","method":"use","ret":"obj","url":"","tls":"","x":890,"y":220,"wires":[["3bbb4e57.5b63e2","66b2c426.05b90c"]]},{"id":"3bbb4e57.5b63e2","type":"debug","z":"ba9e2568.77a458","name":"Uplink Status","active":true,"console":"false","complete":"payload","x":900,"y":260,"wires":[]},{"id":"42a7767b.db2f88","type":"debug","z":"ba9e2568.77a458","name":"Send each serial","active":false,"console":"false","complete":"true","x":290,"y":260,"wires":[]},{"id":"a948a8cc.67b458","type":"delay","z":"ba9e2568.77a458","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":730,"y":220,"wires":[["522af1f0.d7206"]]},{"id":"aa991f82.51d7f","type":"comment","z":"ba9e2568.77a458","name":"Uplink status for each device","info":"","x":160,"y":180,"wires":[]},{"id":"41bad26.e80a22c","type":"http in","z":"ba9e2568.77a458","name":"","url":"/meraki/api/networks/:netId/devicesUplinks","method":"get","swaggerDoc":"","x":220,"y":100,"wires":[["91a213fa.d6f6b"]]},{"id":"5620c409.5d867c","type":"http response","z":"ba9e2568.77a458","name":"http response to client API","x":880,"y":300,"wires":[]},{"id":"ddbe1088.ae6fa","type":"comment","z":"ba9e2568.77a458","name":"Sample Logic","info":"","x":110,"y":500,"wires":[]},{"id":"66b2c426.05b90c","type":"function","z":"ba9e2568.77a458","name":"Context Buffer","func":"var dataBuffer = context.get('dataBuffer') || [];\ndataBuffer.push(msg.payload);\nconsole.log(\"dataBuffer\",dataBuffer);\nif (dataBuffer.length == msg.count){\n msg.payload = dataBuffer;\n // clear dataBuffer\n dataBuffer = [];\n context.set('dataBuffer',dataBuffer);\n \n // send final payload\n return msg;\n}else{\n context.set('dataBuffer',dataBuffer);\n // do nothing and wait for more data\n}\n","outputs":1,"noerr":0,"x":640,"y":300,"wires":[["5620c409.5d867c","28816084.00b29"]]},{"id":"28816084.00b29","type":"debug","z":"ba9e2568.77a458","name":"Uplink Status context","active":true,"console":"false","complete":"true","x":860,"y":340,"wires":[]},{"id":"f9e4030e.b2025","type":"comment","z":"ba9e2568.77a458","name":"Get all device uplink status by iterating through each device and querying its status. Warning: this process does take a while.","info":"","x":540,"y":60,"wires":[]},{"id":"b25f1ba6.71ca08","type":"inject","z":"aee95c7f.b5f35","name":"List Clients","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":120,"y":80,"wires":[["fc8df44a.ed2dd8"]]},{"id":"fc8df44a.ed2dd8","type":"function","z":"aee95c7f.b5f35","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.serial = global.get('serial');\n\n// Sample Data\nmsg.req.query = \"timespan=84000\";\nmsg.payload = {\n\n};\n\nreturn msg;","outputs":1,"noerr":0,"x":410,"y":80,"wires":[["d24b28e8.1bec88"]]},{"id":"d24b28e8.1bec88","type":"function","z":"aee95c7f.b5f35","name":"Meraki API - List Clients","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar shard = global.get('shard');\nvar serial = msg.req.params.serial;\nvar query = msg.req.query;\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://dashboard.meraki.com/api/v0/devices/\"+serial+\"/clients?\"+query;\nmsg.method = \"get\";\nreturn msg;","outputs":1,"noerr":0,"x":630,"y":80,"wires":[["b73105f1.8971d8"]]},{"id":"b73105f1.8971d8","type":"http request","z":"aee95c7f.b5f35","name":"","method":"use","ret":"obj","url":"","tls":"","x":990,"y":80,"wires":[["f642e454.2ad638","7d9e31ea.94ed9"]]},{"id":"81ff2bc2.0fd3f8","type":"http in","z":"aee95c7f.b5f35","name":"","url":"/meraki/api/devices/:serial/clients","method":"get","swaggerDoc":"","x":210,"y":120,"wires":[["d24b28e8.1bec88"]]},{"id":"f642e454.2ad638","type":"debug","z":"aee95c7f.b5f35","name":"List Clients","active":true,"console":"false","complete":"payload","x":1130,"y":120,"wires":[]},{"id":"7d9e31ea.94ed9","type":"http response","z":"aee95c7f.b5f35","name":"","x":1150,"y":80,"wires":[]},{"id":"782ed88c.25aac8","type":"inject","z":"53741f01.0a6a","name":"List L3 Firewall Rules (MR Wireless)","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":180,"y":60,"wires":[["68fcf473.79883c"]]},{"id":"68fcf473.79883c","type":"function","z":"53741f01.0a6a","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.serial = global.get('serial');\nmsg.req.params.netId = global.get('netId');\n\n// Sample Data\nmsg.payload = {\n\n};\n\nreturn msg;","outputs":1,"noerr":0,"x":470,"y":60,"wires":[["1e3a2bdd.37e394"]]},{"id":"1e3a2bdd.37e394","type":"function","z":"53741f01.0a6a","name":"Meraki API - List L3 Firewall Rules","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar shard = global.get('shard');\nvar ssidNum = msg.req.params.ssidNum;\nvar netId = msg.req.params.netId;\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://\"+shard+\".meraki.com/api/v0/networks/\"+netId+\"/ssids/\"+ssidNum+\"/l3FirewallRules\";\nmsg.method = \"get\";\nreturn msg;","outputs":1,"noerr":0,"x":720,"y":60,"wires":[["3e5cef74.7c8d3"]]},{"id":"3e5cef74.7c8d3","type":"http request","z":"53741f01.0a6a","name":"","method":"use","ret":"obj","url":"","tls":"","x":970,"y":60,"wires":[["9743af0d.4a6c8","1e531152.659daf"]]},{"id":"a19bb503.f051a8","type":"http in","z":"53741f01.0a6a","name":"","url":"/meraki/api/networks/:netId/ssids/:ssidNum/l3FirewallRules","method":"get","swaggerDoc":"","x":270,"y":100,"wires":[["1e3a2bdd.37e394"]]},{"id":"9743af0d.4a6c8","type":"debug","z":"53741f01.0a6a","name":"List L3 Firewall Rules","active":true,"console":"false","complete":"payload","x":1140,"y":100,"wires":[]},{"id":"1e531152.659daf","type":"http response","z":"53741f01.0a6a","name":"","x":1130,"y":60,"wires":[]},{"id":"e838a4e6.567e78","type":"inject","z":"53741f01.0a6a","name":"Update L3 Firewall Rules (MR Wireless)","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":190,"y":180,"wires":[["9eccb79a.31a328"]]},{"id":"9eccb79a.31a328","type":"function","z":"53741f01.0a6a","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.serial = global.get('serial');\nmsg.req.params.netId = global.get('netId');\n\n// Sample Data\nmsg.payload = {\n\t\"rules\":[{\n\t\"comment\":\"API TEST from Node-RED\",\n\t\"policy\":\"deny\",\n\t\"protocol\":\"tcp\",\n\t\"destPort\":\"any\",\n\t\"destCidr\":\"192.168.1.0/24\"\n\t\n}],\n\t\"allowLanAccess\":true\n};\n\nreturn msg;","outputs":1,"noerr":0,"x":430,"y":180,"wires":[["691d9d21.81ab14"]]},{"id":"691d9d21.81ab14","type":"function","z":"53741f01.0a6a","name":"Meraki API - Update the Attributes of an SSID","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar shard = global.get('shard');\nvar ssidNum = msg.req.params.ssidNum;\nvar netId = msg.req.params.netId;\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://\"+shard+\".meraki.com/api/v0/networks/\"+netId+\"/ssids/\"+ssidNum+\"/l3FirewallRules\";\nmsg.method = \"put\";\nreturn msg;","outputs":1,"noerr":0,"x":720,"y":180,"wires":[["43f8c2e9.8b3e5c"]]},{"id":"43f8c2e9.8b3e5c","type":"http request","z":"53741f01.0a6a","name":"","method":"use","ret":"obj","url":"","tls":"","x":1010,"y":180,"wires":[["a9ee6625.5bdb58","51759f94.b6234"]]},{"id":"45618a3.d086574","type":"http in","z":"53741f01.0a6a","name":"","url":"/meraki/api/networks/:netId/ssids/:ssidNum/l3FirewallRules","method":"put","swaggerDoc":"","x":270,"y":220,"wires":[["691d9d21.81ab14"]]},{"id":"a9ee6625.5bdb58","type":"debug","z":"53741f01.0a6a","name":"Update Attributes of an SSID","active":true,"console":"false","complete":"true","x":1100,"y":220,"wires":[]},{"id":"51759f94.b6234","type":"http response","z":"53741f01.0a6a","name":"","x":1170,"y":180,"wires":[]},{"id":"4eaa1159.602b","type":"inject","z":"9696e4c4.ac1b68","name":"Delete a Network","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":120,"y":360,"wires":[["f09f9dde.64aa2"]]},{"id":"f09f9dde.64aa2","type":"function","z":"9696e4c4.ac1b68","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.netId = global.get('netId_delete');\n\n// Sample Data\nmsg.payload = {\n \"name\": \"API Test - Node-RED - \"+ (new Date().getMilliseconds()),\n \"timeZone\": \"Europe/Amsterdam\",\n \"tags\": \"APItest\",\n \"type\": \"wireless\"\n};\n\nreturn msg;","outputs":1,"noerr":0,"x":390,"y":360,"wires":[["7b07e18d.21847"]]},{"id":"7b07e18d.21847","type":"function","z":"9696e4c4.ac1b68","name":"Meraki API - Delete a Network","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar shard = global.get('shard');\nvar netId = msg.req.params.netId;\n\n\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://\"+shard+\".meraki.com/api/v0/networks/\"+netId;\nmsg.method = 'delete';\n\n\nreturn msg;","outputs":1,"noerr":0,"x":630,"y":360,"wires":[["7c8117dc.33c388"]]},{"id":"7c8117dc.33c388","type":"http request","z":"9696e4c4.ac1b68","name":"","method":"use","ret":"obj","url":"","tls":"","x":970,"y":360,"wires":[["6535e0cd.056d7","66fd4478.0d7d8c"]]},{"id":"3d190063.9c71a","type":"http in","z":"9696e4c4.ac1b68","name":"","url":"meraki/api/networks/:netId","method":"delete","swaggerDoc":"","x":180,"y":400,"wires":[["7b07e18d.21847"]]},{"id":"6535e0cd.056d7","type":"debug","z":"9696e4c4.ac1b68","name":"Delete a Network","active":true,"console":"false","complete":"true","x":1090,"y":400,"wires":[]},{"id":"66fd4478.0d7d8c","type":"http response","z":"9696e4c4.ac1b68","name":"","x":1130,"y":360,"wires":[]},{"id":"73fb358b.a61f8c","type":"inject","z":"1cb3e834.2a9958","name":"List VPN Settings","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":140,"y":80,"wires":[["772ee4b1.3caf2c"]]},{"id":"772ee4b1.3caf2c","type":"function","z":"1cb3e834.2a9958","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.netId = global.get('netId');\nreturn msg;","outputs":1,"noerr":0,"x":410,"y":80,"wires":[["2d2f5d8f.a02052"]]},{"id":"2d2f5d8f.a02052","type":"function","z":"1cb3e834.2a9958","name":"Meraki API - List VPN Settings","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar netId = msg.req.params.netId;\n\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://dashboard.meraki.com/api/v0/networks/\"+netId+\"/siteToSiteVpn\";\nmsg.method = 'get';\n\n\nreturn msg;","outputs":1,"noerr":0,"x":650,"y":80,"wires":[["970b1549.1dece8"]]},{"id":"970b1549.1dece8","type":"http request","z":"1cb3e834.2a9958","name":"","method":"use","ret":"obj","url":"","tls":"","x":990,"y":80,"wires":[["1040e78.160f419","72cc5069.8c8c4"]]},{"id":"56d905f0.a1073c","type":"http in","z":"1cb3e834.2a9958","name":"","url":"/meraki/api/networks/:netId/siteToSiteVpn","method":"get","swaggerDoc":"","x":240,"y":120,"wires":[["2d2f5d8f.a02052"]]},{"id":"1040e78.160f419","type":"debug","z":"1cb3e834.2a9958","name":"VPN Settings","active":true,"console":"false","complete":"true","x":1150,"y":120,"wires":[]},{"id":"72cc5069.8c8c4","type":"http response","z":"1cb3e834.2a9958","name":"","x":1150,"y":80,"wires":[]},{"id":"a58643cd.216e1","type":"inject","z":"1cb3e834.2a9958","name":"Update VPN Settings","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":160,"y":200,"wires":[["f1534c22.2ece4"]]},{"id":"f1534c22.2ece4","type":"function","z":"1cb3e834.2a9958","name":"test params","func":"msg.req = {};\nmsg.req.params = {};\nmsg.req.params.netId = global.get('netId');\n\n// Sample Data\nmsg.payload = {\n\"mode\":\"spoke\",\n\"hubs\":[{\n\t\"hubId\":\"N_1234\",\n\t\"useDefaultRoute\":true\n\t},\n\t{\n\t\t\"hubId\":\"N_2345\",\"useDefaultRoute\":false\n\t}],\n\t\"subnets\":[{\n\t\t\"localSubnet\":\"192.168.1.0/24\",\n\t\t\"useVpn\":true\n\t},\n\t{\"localSubnet\":\"192.168.128.0/24\",\n\t\"useVpn\":true\n\t\t\n\t}]\n};\n\nreturn msg;","outputs":1,"noerr":0,"x":410,"y":200,"wires":[["40406a0b.631714"]]},{"id":"40406a0b.631714","type":"function","z":"1cb3e834.2a9958","name":"Meraki API - List VPN Settings","func":"// Set Variables\nvar apiKey = global.get('apiKey');\nvar shard = global.get('shard');\nvar netId = msg.req.params.netId;\n\n\n// API Call\nmsg.headers = {\n \"X-Cisco-Meraki-API-Key\": apiKey\n};\nmsg.url = \"https://\"+shard+\".meraki.com/api/v0/networks/\"+netId+\"/siteToSiteVpn\";\nmsg.method = 'get';\n\n\nreturn msg;","outputs":1,"noerr":0,"x":650,"y":200,"wires":[["d72f5ce6.905c1"]]},{"id":"d72f5ce6.905c1","type":"http request","z":"1cb3e834.2a9958","name":"","method":"use","ret":"obj","url":"","tls":"","x":990,"y":200,"wires":[["8bf457d9.454668","c212c088.4c70e"]]},{"id":"72a99964.d37ac8","type":"http in","z":"1cb3e834.2a9958","name":"","url":"/meraki/api/networks/:netId/siteToSiteVpn","method":"put","swaggerDoc":"","x":240,"y":240,"wires":[["40406a0b.631714"]]},{"id":"8bf457d9.454668","type":"debug","z":"1cb3e834.2a9958","name":"VPN Settings","active":true,"console":"false","complete":"true","x":1150,"y":240,"wires":[]},{"id":"c212c088.4c70e","type":"http response","z":"1cb3e834.2a9958","name":"","x":1150,"y":200,"wires":[]}] |