{"info":{"_postman_id":"0161888e-7456-49eb-a38e-f9059460ce7f","name":"ServiceNow - Meraki Connector","description":"<html><head></head><body><p>This collection contains all of the related Meraki APIs used in the ServiceGraph Connector for Meraki - ServiceNow app</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"897512","collectionId":"0161888e-7456-49eb-a38e-f9059460ce7f","publishedId":"TVKD3xhP","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"publishDate":"2020-09-22T11:57:38.000Z"},"item":[{"name":"Incidents - Webhook Sample","item":[{"name":"Uplink status changed","id":"28c42d5d-5b12-48b8-a893-d91cac59f4e6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"version\": \"0.1\",\n  \"sharedSecret\": \"secret\",\n  \"sentAt\": \"2021-10-07T08:38:40.507166Z\",\n  \"organizationId\": \"{{organizationId}}\",\n  \"organizationName\": \"My organization\",\n  \"organizationUrl\": \"https://dashboard.meraki.com/o/VjjsAd/manage/organization/overview\",\n  \"networkId\": \"{{networkId}}\",\n  \"networkName\": \"Main Office\",\n  \"networkUrl\": \"https://n1.meraki.com//n//manage/nodes/list\",\n  \"networkTags\": [\"HQ\"],\n  \"deviceSerial\": \"{{serial}}\",\n  \"deviceMac\": \"00:11:22:33:44:55\",\n  \"deviceName\": \"Device Foo Bar\",\n  \"deviceUrl\": \"https://n1.meraki.com//n//manage/nodes/new_list/000000000000\",\n  \"alertId\": \"0000000000000000\",\n  \"alertType\": \"Uplink status changed\",\n  \"occurredAt\": \"2019-07-19T01:02:01.543000Z\",\n  \"alertData\": {\n    \"uplink\": \"0\"\n  }\n}"},"url":"{{webhookUrl}}","urlObject":{"host":["{{webhookUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"28c42d5d-5b12-48b8-a893-d91cac59f4e6"},{"name":"APs went down","id":"e43ae202-b290-468d-b6d5-a9d7d55ce77d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"version\": \"0.1\",\n  \"sharedSecret\": \"secret\",\n  \"sentAt\": \"2021-10-07T08:38:40.507166Z\",\n  \"organizationId\": \"{{organizationId}}\",\n  \"organizationName\": \"My organization\",\n  \"organizationUrl\": \"https://dashboard.meraki.com/o/VjjsAd/manage/organization/overview\",\n  \"networkId\": \"{{networkId}}\",\n  \"networkName\": \"Main Office\",\n  \"networkUrl\": \"https://n1.meraki.com//n//manage/nodes/list\",\n  \"networkTags\": [\"HQ\"],\n  \"deviceSerial\": \"{{serial}}\",\n  \"deviceMac\": \"00:11:22:33:44:55\",\n  \"deviceName\": \"My access point\",\n  \"deviceUrl\": \"https://n1.meraki.com//n//manage/nodes/new_list/000000000000\",\n  \"deviceTags\": [\n    \"tag1\",\n    \"tag2\"\n  ],\n  \"deviceModel\": \"MR\",\n  \"alertId\": \"0000000000000000\",\n  \"alertType\": \"APs went down\",\n  \"alertTypeId\": \"stopped_reporting\",\n  \"alertLevel\": \"critical\",\n  \"occurredAt\": \"2018-02-11T00:00:00.123450Z\",\n  \"alertData\": {}\n}"},"url":"{{webhookUrl}}","urlObject":{"host":["{{webhookUrl}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"e43ae202-b290-468d-b6d5-a9d7d55ce77d"}],"id":"c9ab57ef-f68c-408b-8d87-d9d29b72f04e","_postman_id":"c9ab57ef-f68c-408b-8d87-d9d29b72f04e","description":""},{"name":"CMDB Sync - API Operations - RUNNER","item":[{"name":"getOrganizations","event":[{"listen":"test","script":{"id":"65770b02-e0ab-45e0-abb5-236001d1ec8f","exec":["","","pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","","    var jsonData = pm.response.json();","","    console.log('jsonData',jsonData)","   ","    var organizationIds = [] = jsonData.map(d => d.id)","    console.log('organizationIds',organizationIds)","","    // Store the IDs","    pm.environment.set(\"organizationIds\", JSON.stringify(organizationIds));","","","    // Store the next index of the array for IDs","    ","    pm.environment.set('nextIndex', 0);","","    // Store the active ID to fetch the comments for","    pm.environment.set('organizationId', organizationIds[0]);","});","",""],"type":"text/javascript"}}],"id":"0e01d1b2-32b0-40f8-8d0a-e4ead2b81133","protocolProfileBehavior":{"followAuthorizationHeader":true,"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{baseUrl}}/organizations","description":"<p>List the organizations that the user has privileges on</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-Cisco-Meraki-API-Key"},{"key":"value","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"5c2aa053-2f5b-48bc-8575-0dd9466bdf54","id":"5c2aa053-2f5b-48bc-8575-0dd9466bdf54","name":"CMDB Sync - API Operations - RUNNER","type":"folder"}},"urlObject":{"path":["organizations"],"host":["{{baseUrl}}"],"query":[],"variable":[]}},"response":[{"id":"084cae03-f86b-42c3-b238-5f6c30b9b798","name":"Successful operation","originalRequest":{"method":"GET","header":[],"url":"{{baseUrl}}/organizations"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n {\n  \"id\": \"2930418\",\n  \"name\": \"My organization\",\n  \"url\": \"https://dashboard.meraki.com/o/VjjsAd/manage/organization/overview\"\n }\n]"}],"_postman_id":"0e01d1b2-32b0-40f8-8d0a-e4ead2b81133"},{"name":"getOrganizationNetworks","event":[{"listen":"test","script":{"id":"680f6975-1c9b-413d-a512-0dbacf6d256a","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","    // console.log(\"received newtorks for organizationId\",organizationId)","    let IDs = [];","    let nextIndex = 0;","    try{","    IDs = JSON.parse(pm.environment.get('organizationIds')),","        // Increment the next Index","        nextIndex = parseInt(pm.environment.get('nextIndex')) + 1;","","    }catch{","        console.log(\"error parsing response\")","    }","","    // In case comments have been fetched for all requests then we're done here","    // time to end the collection run and clean up the environment and organizationId","    if (IDs.length === nextIndex) {","        pm.environment.set('nextIndex', 0);","        pm.environment.set('organizationId', IDs[0]);","        //postman.setNextRequest(null);","    }","    else {","        let organizationId = IDs[nextIndex];","        pm.environment.set('nextIndex', nextIndex);","        pm.environment.set('organizationId', organizationId);","","        // Now run the get request again to get the data","        // for the next request","        console.log(\"Run endpoint again for \", organizationId)","        postman.setNextRequest(\"getOrganizationNetworks\");","    }","","})","",""],"type":"text/javascript"}}],"id":"45b9455a-849d-4287-858f-184a80842832","protocolProfileBehavior":{"followAuthorizationHeader":true,"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Cisco-Meraki-API-Key","value":""}],"url":"{{baseUrl}}/organizations/:organizationId/networks","description":"<p>List the networks that the user has privileges on in an organization</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-Cisco-Meraki-API-Key"},{"key":"value","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"5c2aa053-2f5b-48bc-8575-0dd9466bdf54","id":"5c2aa053-2f5b-48bc-8575-0dd9466bdf54","name":"CMDB Sync - API Operations - RUNNER","type":"folder"}},"urlObject":{"path":["organizations",":organizationId","networks"],"host":["{{baseUrl}}"],"query":[{"disabled":true,"description":{"content":"<p>An optional parameter that is the ID of a config template. Will return all networks bound to that template.</p>\n","type":"text/plain"},"key":"configTemplateId","value":"{{configTemplateId}}"},{"disabled":true,"description":{"content":"<p>An optional parameter to filter networks by tags. The filtering is case-sensitive. If tags are included, 'tagsFilterType' should also be included (see below).</p>\n","type":"text/plain"},"key":"tags","value":"{{tags}}"},{"disabled":true,"description":{"content":"<p>An optional parameter of value 'withAnyTags' or 'withAllTags' to indicate whether to return networks which contain ANY or ALL of the included tags. If no type is included, 'withAnyTags' will be selected.</p>\n","type":"text/plain"},"key":"tagsFilterType","value":"{{tagsFilterType}}"},{"disabled":true,"description":{"content":"<p>The number of entries per page returned. Acceptable range is 3 - 100000. Default is 1000.</p>\n","type":"text/plain"},"key":"perPage","value":"{{perPage}}"},{"disabled":true,"description":{"content":"<p>A token used by the server to indicate the start of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.</p>\n","type":"text/plain"},"key":"startingAfter","value":"{{startingAfter}}"},{"disabled":true,"description":{"content":"<p>A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.</p>\n","type":"text/plain"},"key":"endingBefore","value":"{{endingBefore}}"}],"variable":[{"id":"5ae34a8a-d7f9-4b5e-866a-db86ecdd31d2","description":{"content":"<p>(Required) </p>\n","type":"text/plain"},"type":"string","value":"{{organizationId}}","key":"organizationId"}]}},"response":[{"id":"ac230de8-96d8-4449-ad9f-907f2c38954e","name":"Successful operation","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/organizations/:organizationId/networks?configTemplateId=<string>&tags=<string>,<string>&tagsFilterType=<string>&perPage=<integer>&startingAfter=<string>&endingBefore=<string>","host":["{{baseUrl}}"],"path":["organizations",":organizationId","networks"],"query":[{"key":"configTemplateId","value":"<string>"},{"key":"tags","value":"<string>,<string>"},{"key":"tagsFilterType","value":"<string>"},{"key":"perPage","value":"<integer>"},{"key":"startingAfter","value":"<string>"},{"key":"endingBefore","value":"<string>"}],"variable":[{"key":"organizationId"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Link","value":"<string>","description":"A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n {\n  \"id\": \"L_123456\",\n  \"organizationId\": \"2930418\",\n  \"name\": \"Long Island Office\",\n  \"timeZone\": \"America/Los_Angeles\",\n  \"tags\": [\n   \"tag1\",\n   \"tag2\"\n  ],\n  \"productTypes\": [\n   \"appliance\",\n   \"switch\",\n   \"wireless\"\n  ],\n  \"enrollmentString\": \"long-island-office\"\n }\n]"}],"_postman_id":"45b9455a-849d-4287-858f-184a80842832"},{"name":"getOrganizationDevices","event":[{"listen":"test","script":{"id":"6c3dacb5-b8a4-4a49-92a8-a319df6f65bf","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","    // console.log(\"received newtorks for organizationId\",organizationId)","    let IDs = [];","    let nextIndex = 0;","    try{","    IDs = JSON.parse(pm.environment.get('organizationIds')),","        // Increment the next Index","        nextIndex = parseInt(pm.environment.get('nextIndex')) + 1;","","    }catch{","        console.log(\"error parsing response\")","    }","","    // In case data has been fetched for all requests then we're done here","    // time to end the collection run and clean up the environment and organizationId","    if (IDs.length === nextIndex) {","        pm.environment.set('nextIndex', 0);","        pm.environment.set('organizationId', IDs[0]);","       // postman.setNextRequest(null); // Stops Runner","    }","    else {","        let organizationId = IDs[nextIndex];","        pm.environment.set('nextIndex', nextIndex);","        pm.environment.set('organizationId', organizationId);","","        // Now run the get request again to get the data","        // for the next request","        console.log(\"Run endpoint again for \", organizationId)","        postman.setNextRequest(\"getOrganizationDevices\");","    }","","})",""," var jsonData = pm.response.json();"," console.log(\"items\", jsonData.length)",""],"type":"text/javascript"}}],"id":"404830f6-e3be-47f3-8cc3-04cf94755aee","protocolProfileBehavior":{"disableBodyPruning":true,"followAuthorizationHeader":true},"request":{"method":"GET","header":[{"key":"X-Cisco-Meraki-API-Key","value":""}],"url":"{{baseUrl}}/organizations/:organizationId/devices","description":"<p>List the devices in an organization</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-Cisco-Meraki-API-Key"},{"key":"value","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"5c2aa053-2f5b-48bc-8575-0dd9466bdf54","id":"5c2aa053-2f5b-48bc-8575-0dd9466bdf54","name":"CMDB Sync - API Operations - RUNNER","type":"folder"}},"urlObject":{"path":["organizations",":organizationId","devices"],"host":["{{baseUrl}}"],"query":[{"disabled":true,"description":{"content":"<p>The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.</p>\n","type":"text/plain"},"key":"perPage","value":"{{perPage}}"},{"disabled":true,"description":{"content":"<p>A token used by the server to indicate the start of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.</p>\n","type":"text/plain"},"key":"startingAfter","value":"{{startingAfter}}"},{"disabled":true,"description":{"content":"<p>A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.</p>\n","type":"text/plain"},"key":"endingBefore","value":"{{endingBefore}}"},{"disabled":true,"description":{"content":"<p>Filter results by whether or not the device's configuration has been updated after the given timestamp</p>\n","type":"text/plain"},"key":"configurationUpdatedAfter","value":"{{configurationUpdatedAfter}}"}],"variable":[{"id":"94ef9bd0-17de-42eb-b9d3-b02325246ad4","description":{"content":"<p>(Required) </p>\n","type":"text/plain"},"type":"string","value":"{{organizationId}}","key":"organizationId"}]}},"response":[{"id":"1f12b7c9-643c-4661-98ac-7077d3b28174","name":"Successful operation","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/organizations/:organizationId/devices?perPage=<integer>&startingAfter=<string>&endingBefore=<string>&configurationUpdatedAfter=<string>","host":["{{baseUrl}}"],"path":["organizations",":organizationId","devices"],"query":[{"key":"perPage","value":"<integer>"},{"key":"startingAfter","value":"<string>"},{"key":"endingBefore","value":"<string>"},{"key":"configurationUpdatedAfter","value":"<string>"}],"variable":[{"key":"organizationId"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Link","value":"<string>","description":"A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n {\n  \"name\": \"My AP\",\n  \"lat\": 37.4180951010362,\n  \"lng\": -122.098531723022,\n  \"address\": \"1600 Pennsylvania Ave\",\n  \"notes\": \"My AP's note\",\n  \"tags\": \" recently-added \",\n  \"networkId\": \"N_24329156\",\n  \"serial\": \"Q234-ABCD-5678\",\n  \"model\": \"MR34\",\n  \"mac\": \"00:11:22:33:44:55\",\n  \"lanIp\": \"1.2.3.4\",\n  \"firmware\": \"wireless-25-14\"\n }\n]"}],"_postman_id":"404830f6-e3be-47f3-8cc3-04cf94755aee"},{"name":"getOrganizationDevicesStatuses","event":[{"listen":"test","script":{"id":"5c43ee15-d1e7-49cc-b2d1-9df1f8257de1","exec":["pm.test(\"Status code is 200\", function () {","    pm.response.to.have.status(200);","    // console.log(\"received newtorks for organizationId\",organizationId)","    let IDs = [];","    let nextIndex = 0;","    try{","    IDs = JSON.parse(pm.environment.get('organizationIds')),","        // Increment the next Index","        nextIndex = parseInt(pm.environment.get('nextIndex')) + 1;","","    }catch{","        console.log(\"error parsing response\")","    }","","    // In case comments have been fetched for all requests then we're done here","    // time to end the collection run and clean up the environment and organizationId","    if (IDs.length === nextIndex) {","        pm.environment.set('nextIndex', 0);","        pm.environment.set('organizationId', IDs[0]);","        //postman.setNextRequest(null);","    }","    else {","        let organizationId = IDs[nextIndex];","        pm.environment.set('nextIndex', nextIndex);","        pm.environment.set('organizationId', organizationId);","","        // Now run the get request again to get the data","        // for the next request","        console.log(\"Run endpoint again for \", organizationId)","        postman.setNextRequest(\"getOrganizationDevicesStatuses\");","    }","","})","",""],"type":"text/javascript"}}],"id":"5639ab6c-2e93-4039-af7d-75afc29d44cf","protocolProfileBehavior":{"followAuthorizationHeader":true,"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Cisco-Meraki-API-Key","value":""}],"url":"{{baseUrl}}/organizations/:organizationId/devices/statuses","description":"<p>List the status of every Meraki device in the organization</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-Cisco-Meraki-API-Key"},{"key":"value","value":"{{apiKey}}"}]},"isInherited":true,"source":{"_postman_id":"5c2aa053-2f5b-48bc-8575-0dd9466bdf54","id":"5c2aa053-2f5b-48bc-8575-0dd9466bdf54","name":"CMDB Sync - API Operations - RUNNER","type":"folder"}},"urlObject":{"path":["organizations",":organizationId","devices","statuses"],"host":["{{baseUrl}}"],"query":[{"disabled":true,"description":{"content":"<p>The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.</p>\n","type":"text/plain"},"key":"perPage","value":"{{perPage}}"},{"disabled":true,"description":{"content":"<p>A token used by the server to indicate the start of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.</p>\n","type":"text/plain"},"key":"startingAfter","value":"{{startingAfter}}"},{"disabled":true,"description":{"content":"<p>A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.</p>\n","type":"text/plain"},"key":"endingBefore","value":"{{endingBefore}}"}],"variable":[{"id":"fd8c6de0-6ab7-470c-ae1c-12b77712f88f","description":{"content":"<p>(Required) </p>\n","type":"text/plain"},"type":"string","value":"{{organizationId}}","key":"organizationId"}]}},"response":[{"id":"e37ecca1-27f7-4ba7-ae54-a1d9edcf1c57","name":"Successful operation","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{baseUrl}}/organizations/:organizationId/devices/statuses?perPage=<integer>&startingAfter=<string>&endingBefore=<string>","host":["{{baseUrl}}"],"path":["organizations",":organizationId","devices","statuses"],"query":[{"key":"perPage","value":"<integer>"},{"key":"startingAfter","value":"<string>"},{"key":"endingBefore","value":"<string>"}],"variable":[{"key":"organizationId"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Link","value":"<string>","description":"A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"[\n {\n  \"name\": \"My AP\",\n  \"serial\": \"Q234-ABCD-5678\",\n  \"mac\": \"00:11:22:33:44:55\",\n  \"publicIp\": \"123.123.123.1\",\n  \"networkId\": \"N_24329156\",\n  \"status\": \"online\",\n  \"lastReportedAt\": \"2018-02-11T00:00:00.090210Z\",\n  \"lanIp\": \"1.2.3.4\",\n  \"gateway\": \"1.2.3.5\",\n  \"ipType\": \"dhcp\",\n  \"primaryDns\": \"8.8.8.8\",\n  \"secondaryDns\": \"8.8.4.4\"\n }\n]"}],"_postman_id":"5639ab6c-2e93-4039-af7d-75afc29d44cf"}],"id":"5c2aa053-2f5b-48bc-8575-0dd9466bdf54","description":"<p>Run this Collection folder with the Postman Runner to test all requests against the provided <code>apiKey</code> and <code>baseUrl</code></p>\n<p>Update your environment to test these variables. </p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"X-Cisco-Meraki-API-Key"},{"key":"value","value":"{{apiKey}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"34316017-f989-4dcf-89cc-bfa4e21cbad1","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"e003be86-e6ce-4c99-a758-43c01f8209e5","type":"text/javascript","exec":[""]}}],"_postman_id":"5c2aa053-2f5b-48bc-8575-0dd9466bdf54"}],"event":[{"listen":"prerequest","script":{"id":"1eb36201-372e-4fe6-9b40-2fa7b0484031","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"cff615a3-5069-4f7e-93fa-c064b44dedea","type":"text/javascript","exec":[""]}}]}