{ "openapi": "3.0.1", "info": { "title": "Cisco Meraki Dashboard API \u2014 organizations", "description": "The organizations operations of the Cisco Meraki Dashboard API, split by product area from Cisco's published OpenAPI definition.", "version": "1.72.0", "contact": { "name": "Meraki Developer Community", "url": "https://meraki.io/community" }, "x-provenance": { "method": "harvested", "authored_by": "Cisco Meraki", "harvested_by": "API Evangelist", "harvested_on": "2026-07-31", "first_party": true, "note": "Split by first tag from Cisco's published spec3.json; operations unmodified.", "provider_published": true }, "x-evidence": [ { "type": "source", "url": "https://github.com/meraki/openapi/blob/master/openapi/spec3.json" }, { "type": "raw", "url": "https://raw.githubusercontent.com/meraki/openapi/master/openapi/spec3.json" }, { "type": "alternate", "url": "https://api.meraki.com/api/v1/openapiSpec" } ] }, "servers": [ { "url": "https://api.meraki.com/{basePath}", "variables": { "basePath": { "default": "api/v1" } } } ], "security": [ { "meraki_api_key": [] }, { "bearerAuth": [] } ], "tags": [ { "name": "acls", "description": "" }, { "name": "actionBatches", "description": "" }, { "name": "adaptivePolicy", "description": "" }, { "name": "adaptivePolicyGroups", "description": "" }, { "name": "addresses", "description": "" }, { "name": "admins", "description": "" }, { "name": "alertTypes", "description": "" }, { "name": "alerts", "description": "" }, { "name": "api", "description": "" }, { "name": "apiRequests", "description": "" }, { "name": "appliances", "description": "" }, { "name": "applicationCategories", "description": "" }, { "name": "applications", "description": "" }, { "name": "assets", "description": "" }, { "name": "assignments", "description": "" }, { "name": "autoLocate", "description": "" }, { "name": "availabilities", "description": "" }, { "name": "bands", "description": "" }, { "name": "bandwidthUsageHistory", "description": "" }, { "name": "brandingPolicies", "description": "" }, { "name": "bulk", "description": "" }, { "name": "bulkUpdate", "description": "" }, { "name": "byClient", "description": "" }, { "name": "byDevice", "description": "" }, { "name": "byEnergyUsage", "description": "" }, { "name": "byInterval", "description": "" }, { "name": "byModel", "description": "" }, { "name": "byNetwork", "description": "" }, { "name": "byPipeline", "description": "" }, { "name": "bySite", "description": "" }, { "name": "byStatus", "description": "" }, { "name": "byType", "description": "" }, { "name": "byUsage", "description": "" }, { "name": "byUtilization", "description": "" }, { "name": "callbacks", "description": "" }, { "name": "captures", "description": "" }, { "name": "categories", "description": "" }, { "name": "cellular", "description": "" }, { "name": "changeHistory", "description": "" }, { "name": "clients", "description": "" }, { "name": "configTemplates", "description": "" }, { "name": "configurationChanges", "description": "" }, { "name": "configure", "description": "" }, { "name": "connectivity", "description": "" }, { "name": "connectors", "description": "" }, { "name": "controller", "description": "" }, { "name": "data", "description": "" }, { "name": "deployable", "description": "" }, { "name": "deployed", "description": "" }, { "name": "details", "description": "" }, { "name": "devices", "description": "" }, { "name": "downloadUrl", "description": "" }, { "name": "earlyAccess", "description": "" }, { "name": "eligible", "description": "" }, { "name": "eox", "description": "" }, { "name": "features", "description": "" }, { "name": "firewall", "description": "" }, { "name": "firmware", "description": "" }, { "name": "floorPlans", "description": "" }, { "name": "geolocations", "description": "" }, { "name": "global", "description": "" }, { "name": "group", "description": "" }, { "name": "groups", "description": "" }, { "name": "historical", "description": "" }, { "name": "history", "description": "" }, { "name": "idps", "description": "" }, { "name": "integrations", "description": "" }, { "name": "inventory", "description": "" }, { "name": "jobs", "description": "" }, { "name": "licenses", "description": "" }, { "name": "loginSecurity", "description": "" }, { "name": "logs", "description": "" }, { "name": "manufacturers", "description": "" }, { "name": "memory", "description": "" }, { "name": "migrations", "description": "" }, { "name": "models", "description": "" }, { "name": "monitor", "description": "" }, { "name": "moves", "description": "" }, { "name": "networks", "description": "" }, { "name": "openapiSpec", "description": "" }, { "name": "optIns", "description": "" }, { "name": "orders", "description": "" }, { "name": "organizations", "description": "" }, { "name": "overview", "description": "" }, { "name": "overviews", "description": "" }, { "name": "packetCapture", "description": "" }, { "name": "pipelines", "description": "" }, { "name": "policies", "description": "" }, { "name": "policyObjects", "description": "" }, { "name": "powerModules", "description": "" }, { "name": "priorities", "description": "" }, { "name": "profiles", "description": "" }, { "name": "provisioning", "description": "" }, { "name": "regions", "description": "" }, { "name": "responseCodes", "description": "" }, { "name": "rest", "description": "" }, { "name": "roles", "description": "" }, { "name": "rules", "description": "" }, { "name": "rulesets", "description": "" }, { "name": "saml", "description": "" }, { "name": "samlRoles", "description": "" }, { "name": "sase", "description": "" }, { "name": "schedules", "description": "" }, { "name": "search", "description": "" }, { "name": "servers", "description": "" }, { "name": "settings", "description": "" }, { "name": "sites", "description": "" }, { "name": "snmp", "description": "" }, { "name": "splash", "description": "" }, { "name": "ssids", "description": "" }, { "name": "statuses", "description": "" }, { "name": "summary", "description": "" }, { "name": "swaps", "description": "" }, { "name": "switches", "description": "" }, { "name": "syslog", "description": "" }, { "name": "system", "description": "" }, { "name": "taxonomy", "description": "" }, { "name": "themes", "description": "" }, { "name": "top", "description": "" }, { "name": "towers", "description": "" }, { "name": "types", "description": "" }, { "name": "upgrades", "description": "" }, { "name": "uplinks", "description": "" }, { "name": "uplinksLossAndLatency", "description": "" }, { "name": "usage", "description": "" }, { "name": "webhooks", "description": "" }, { "name": "xdr", "description": "" } ], "components": { "securitySchemes": { "meraki_api_key": { "type": "apiKey", "name": "X-Cisco-Meraki-API-Key", "in": "header" }, "bearerAuth": { "type": "http", "scheme": "bearer", "bearerFormat": "API Key" } } }, "paths": { "/organizations": { "get": { "description": "List the organizations that the user has privileges on", "operationId": "getOrganizations", "parameters": [ { "name": "perPage", "in": "query", "description": "The number of entries per page returned. Acceptable range is 3 - 9000. Default is 9000.", "schema": { "type": "integer" } }, { "name": "startingAfter", "in": "query", "description": "A token used by the server to indicate the start of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.", "schema": { "type": "string" } }, { "name": "endingBefore", "in": "query", "description": "A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Organization ID" }, "name": { "type": "string", "description": "Organization name" }, "url": { "type": "string", "description": "Organization URL" }, "api": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable API access" } }, "description": "API related settings" }, "licensing": { "type": "object", "properties": { "model": { "type": "string", "enum": [ "co-term", "per-device", "subscription" ], "description": "Organization licensing model. Can be 'co-term', 'per-device', or 'subscription'." } }, "description": "Licensing related settings" }, "cloud": { "type": "object", "properties": { "region": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of region" }, "host": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of location" } }, "description": "Where organization data is hosted" } }, "description": "Region info" } }, "description": "Data for this organization" }, "management": { "type": "object", "properties": { "details": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of management data" }, "value": { "type": "string", "description": "Value of management data" } } }, "description": "Details related to organization management, possibly empty. Details may be named 'MSP ID', 'customer number', 'IP restriction mode for API', or 'IP restriction mode for dashboard', if the organization admin has configured any." } }, "description": "Information about the organization's management system" }, "privacy": { "type": "object", "description": "Privacy-related settings for the organization." } } } }, "example": [ { "id": "2930418", "name": "My organization", "url": "https://dashboard.meraki.com/o/VjjsAd/manage/organization/overview", "api": { "enabled": true }, "licensing": { "model": "co-term" }, "cloud": { "region": { "name": "North America", "host": { "name": "United States" } } }, "management": { "details": [ { "name": "MSP ID", "value": "123456" } ] } } ] } }, "headers": { "Link": { "schema": { "type": "string" }, "description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests." } } } }, "summary": "List the organizations that the user has privileges on", "tags": [ "organizations", "configure" ] }, "post": { "description": "Create a new organization", "operationId": "createOrganization", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the organization" }, "management": { "type": "object", "properties": { "details": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of management data" }, "value": { "type": "string", "description": "Value of management data" } } }, "description": "Details related to organization management, possibly empty" } }, "description": "Information about the organization's management system" } }, "example": { "name": "My organization", "management": { "details": [ { "name": "MSP ID", "value": "123456" } ] } }, "required": [ "name" ] } } }, "required": true }, "responses": { "201": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Organization ID" }, "name": { "type": "string", "description": "Organization name" }, "url": { "type": "string", "description": "Organization URL" }, "api": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable API access" } }, "description": "API related settings" }, "licensing": { "type": "object", "properties": { "model": { "type": "string", "enum": [ "co-term", "per-device", "subscription" ], "description": "Organization licensing model. Can be 'co-term', 'per-device', or 'subscription'." } }, "description": "Licensing related settings" }, "cloud": { "type": "object", "properties": { "region": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of region" }, "host": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of location" } }, "description": "Where organization data is hosted" } }, "description": "Region info" } }, "description": "Data for this organization" }, "management": { "type": "object", "properties": { "details": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of management data" }, "value": { "type": "string", "description": "Value of management data" } } }, "description": "Details related to organization management, possibly empty. Details may be named 'MSP ID', 'customer number', 'IP restriction mode for API', or 'IP restriction mode for dashboard', if the organization admin has configured any." } }, "description": "Information about the organization's management system" }, "privacy": { "type": "object", "description": "Privacy-related settings for the organization." } } }, "example": { "id": "2930418", "name": "My organization", "url": "https://dashboard.meraki.com/o/VjjsAd/manage/organization/overview", "api": { "enabled": true }, "licensing": { "model": "co-term" }, "cloud": { "region": { "name": "North America", "host": { "name": "United States" } } }, "management": { "details": [ { "name": "MSP ID", "value": "123456" } ] } } } } } }, "summary": "Create a new organization", "tags": [ "organizations", "configure" ] } }, "/organizations/{organizationId}": { "get": { "description": "Return an organization", "operationId": "getOrganization", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Organization ID" }, "name": { "type": "string", "description": "Organization name" }, "url": { "type": "string", "description": "Organization URL" }, "api": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable API access" } }, "description": "API related settings" }, "licensing": { "type": "object", "properties": { "model": { "type": "string", "enum": [ "co-term", "per-device", "subscription" ], "description": "Organization licensing model. Can be 'co-term', 'per-device', or 'subscription'." } }, "description": "Licensing related settings" }, "cloud": { "type": "object", "properties": { "region": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of region" }, "host": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of location" } }, "description": "Where organization data is hosted" } }, "description": "Region info" } }, "description": "Data for this organization" }, "management": { "type": "object", "properties": { "details": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of management data" }, "value": { "type": "string", "description": "Value of management data" } } }, "description": "Details related to organization management, possibly empty. Details may be named 'MSP ID', 'customer number', 'IP restriction mode for API', or 'IP restriction mode for dashboard', if the organization admin has configured any." } }, "description": "Information about the organization's management system" }, "privacy": { "type": "object", "description": "Privacy-related settings for the organization." } } }, "example": { "id": "2930418", "name": "My organization", "url": "https://dashboard.meraki.com/o/VjjsAd/manage/organization/overview", "api": { "enabled": true }, "licensing": { "model": "co-term" }, "cloud": { "region": { "name": "North America", "host": { "name": "United States" } } }, "management": { "details": [ { "name": "MSP ID", "value": "123456" } ] } } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "Return an organization", "tags": [ "organizations", "configure" ] }, "put": { "description": "Update an organization", "operationId": "updateOrganization", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the organization" }, "management": { "type": "object", "properties": { "details": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of management data" }, "value": { "type": "string", "description": "Value of management data" } } }, "description": "Details related to organization management, possibly empty" } }, "description": "Information about the organization's management system" }, "api": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "If true, enable the access to the Cisco Meraki Dashboard API" } }, "description": "API-specific settings" }, "privacy": { "type": "object", "description": "Privacy-related settings for the organization." } }, "example": { "name": "My organization", "management": { "details": [ { "name": "MSP ID", "value": "123456" } ] }, "api": { "enabled": true } } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Organization ID" }, "name": { "type": "string", "description": "Organization name" }, "url": { "type": "string", "description": "Organization URL" }, "api": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable API access" } }, "description": "API related settings" }, "licensing": { "type": "object", "properties": { "model": { "type": "string", "enum": [ "co-term", "per-device", "subscription" ], "description": "Organization licensing model. Can be 'co-term', 'per-device', or 'subscription'." } }, "description": "Licensing related settings" }, "cloud": { "type": "object", "properties": { "region": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of region" }, "host": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of location" } }, "description": "Where organization data is hosted" } }, "description": "Region info" } }, "description": "Data for this organization" }, "management": { "type": "object", "properties": { "details": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of management data" }, "value": { "type": "string", "description": "Value of management data" } } }, "description": "Details related to organization management, possibly empty. Details may be named 'MSP ID', 'customer number', 'IP restriction mode for API', or 'IP restriction mode for dashboard', if the organization admin has configured any." } }, "description": "Information about the organization's management system" }, "privacy": { "type": "object", "description": "Privacy-related settings for the organization." } } }, "example": { "id": "2930418", "name": "My organization", "url": "https://dashboard.meraki.com/o/VjjsAd/manage/organization/overview", "api": { "enabled": true }, "licensing": { "model": "co-term" }, "cloud": { "region": { "name": "North America", "host": { "name": "United States" } } }, "management": { "details": [ { "name": "MSP ID", "value": "123456" } ] } } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Update an organization", "tags": [ "organizations", "configure" ] }, "delete": { "description": "Delete an organization", "operationId": "deleteOrganization", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true } ], "responses": { "204": { "description": "Successful operation" } }, "summary": "Delete an organization", "tags": [ "organizations", "configure" ] } }, "/organizations/{organizationId}/actionBatches": { "post": { "callbacks": { "actionBatch": { "{$request.body#/callback/url}": { "post": { "requestBody": { "required": true, "description": "Callback payload", "content": { "application/json": { "schema": { "type": "object", "properties": { "organization": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" } } }, "network": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" } } }, "sentAt": { "type": "string" }, "callbackId": { "type": "string" }, "message": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the action batch. Can be used to check the status of the action batch at /organizations/{organizationId}/actionBatches/{actionBatchId}" }, "organizationId": { "type": "string", "description": "ID of the organization this action batch belongs to" }, "confirmed": { "type": "boolean", "description": "Flag describing whether the action should be previewed before executing or not" }, "synchronous": { "type": "boolean", "description": "Flag describing whether actions should run synchronously or asynchronously" }, "status": { "type": "object", "properties": { "completed": { "type": "boolean", "description": "Flag describing whether all actions in the action batch have completed" }, "failed": { "type": "boolean", "description": "Flag describing whether any actions in the action batch failed" }, "errors": { "type": "array", "items": { "type": "string" }, "description": "List of errors encountered when running actions in the action batch" }, "createdResources": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the created resource" }, "uri": { "type": "string", "description": "URI, not including base, of the created resource" } } }, "description": "Resources created as a result of this action batch" } }, "required": [ "createdResources" ], "description": "Status of action batch" }, "actions": { "type": "array", "items": { "type": "object", "properties": { "resource": { "type": "string", "description": "Unique identifier for the resource to be acted on" }, "operation": { "type": "string", "description": "The operation to be used by this action" }, "body": { "type": "object", "additionalProperties": true, "description": "Data provided in the body of the Action. Contents depend on the Action type" } }, "required": [ "resource", "operation" ] }, "description": "A set of changes made as part of this action (more details)" } }, "required": [ "actions" ] } } } } } }, "responses": { "2XX": { "description": "Your server return this code if it accepts the callback" } } } } } }, "description": "Create an action batch", "operationId": "createOrganizationActionBatch", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "confirmed": { "type": "boolean", "description": "Set to true for immediate execution. Set to false if the action should be previewed before executing. This property cannot be unset once it is true. Defaults to false." }, "synchronous": { "type": "boolean", "description": "Set to true to force the batch to run synchronous. There can be at most 20 actions in synchronous batch. Defaults to false." }, "actions": { "type": "array", "items": { "type": "object", "properties": { "resource": { "type": "string", "description": "Unique identifier for the resource to be acted on" }, "operation": { "type": "string", "description": "The operation to be used" }, "body": { "type": "object", "description": "The body of the action", "default": {} } }, "required": [ "resource", "operation" ] }, "description": "A set of changes to make as part of this action (more details)" }, "callback": { "type": "object", "properties": { "url": { "type": "string", "description": "The callback URL for the webhook target. If using this field, please also specify a sharedSecret." }, "sharedSecret": { "type": "string", "description": "A shared secret that will be included in the requests sent to the callback URL. It can be used to verify that the request was sent by Meraki. If using this field, please also specify an url." }, "httpServer": { "type": "object", "properties": { "id": { "type": "string", "description": "The webhook receiver ID that will receive information. If specifying this, please leave the url and sharedSecret fields blank." } }, "description": "The webhook receiver used for the callback webhook." }, "payloadTemplate": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the payload template. Defaults to 'wpt_00005' for the Callback (included) template." } }, "description": "The payload template of the webhook used for the callback" } }, "x-release-stage": "general_availability", "description": "Details for the callback. Please include either an httpServerId OR url and sharedSecret" } }, "example": { "confirmed": true, "synchronous": true, "actions": [ { "resource": "/devices/QXXX-XXXX-XXXX/switch/ports/3", "operation": "create" } ], "callback": { "url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031", "sharedSecret": "secret", "httpServer": { "id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M=" }, "payloadTemplate": { "id": "wpt_2100" } } }, "required": [ "actions" ] } } }, "required": true }, "responses": { "201": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the action batch. Can be used to check the status of the action batch at /organizations/{organizationId}/actionBatches/{actionBatchId}" }, "organizationId": { "type": "string", "description": "ID of the organization this action batch belongs to" }, "confirmed": { "type": "boolean", "description": "Flag describing whether the action should be previewed before executing or not" }, "synchronous": { "type": "boolean", "description": "Flag describing whether actions should run synchronously or asynchronously" }, "status": { "type": "object", "properties": { "completed": { "type": "boolean", "description": "Flag describing whether all actions in the action batch have completed" }, "failed": { "type": "boolean", "description": "Flag describing whether any actions in the action batch failed" }, "errors": { "type": "array", "items": { "type": "string" }, "description": "List of errors encountered when running actions in the action batch" }, "createdResources": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the created resource" }, "uri": { "type": "string", "description": "URI, not including base, of the created resource" } } }, "description": "Resources created as a result of this action batch" } }, "required": [ "createdResources" ], "description": "Status of action batch" }, "actions": { "type": "array", "items": { "type": "object", "properties": { "resource": { "type": "string", "description": "Unique identifier for the resource to be acted on" }, "operation": { "type": "string", "description": "The operation to be used by this action" }, "body": { "type": "object", "additionalProperties": true, "description": "Data provided in the body of the Action. Contents depend on the Action type" } }, "required": [ "resource", "operation" ] }, "description": "A set of changes made as part of this action (more details)" }, "callback": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the callback. To check the status of the callback, use this ID in a request to /webhooks/callbacks/statuses/{id}" }, "url": { "type": "string", "description": "The callback URL for the webhook target. This was either provided in the original request or comes from a configured webhook receiver" }, "status": { "type": "string", "description": "The status of the callback" } }, "description": "Information for callback used to send back results", "x-release-stage": "general_availability" } }, "required": [ "actions" ] }, "example": { "id": "1234", "organizationId": "2930418", "confirmed": true, "synchronous": false, "status": { "completed": true, "failed": false, "errors": [], "createdResources": [ { "id": "1284392014819", "uri": "/networks/L_XXXXX/groupPolicies/100" } ] }, "actions": [ { "resource": "/devices/QXXX-XXXX-XXXX/switch/ports/3", "operation": "update" } ], "callback": { "id": "1284392014819", "url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031", "status": "new" } } } } } }, "summary": "Create an action batch", "tags": [ "organizations", "configure", "actionBatches" ] }, "get": { "description": "Return the list of action batches in the organization", "operationId": "getOrganizationActionBatches", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "status", "in": "query", "description": "Filter batches by status. Valid types are pending, completed, and failed.", "schema": { "type": "string", "enum": [ "completed", "failed", "pending" ] } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the action batch. Can be used to check the status of the action batch at /organizations/{organizationId}/actionBatches/{actionBatchId}" }, "organizationId": { "type": "string", "description": "ID of the organization this action batch belongs to" }, "confirmed": { "type": "boolean", "description": "Flag describing whether the action should be previewed before executing or not" }, "synchronous": { "type": "boolean", "description": "Flag describing whether actions should run synchronously or asynchronously" }, "status": { "type": "object", "properties": { "completed": { "type": "boolean", "description": "Flag describing whether all actions in the action batch have completed" }, "failed": { "type": "boolean", "description": "Flag describing whether any actions in the action batch failed" }, "errors": { "type": "array", "items": { "type": "string" }, "description": "List of errors encountered when running actions in the action batch" }, "createdResources": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the created resource" }, "uri": { "type": "string", "description": "URI, not including base, of the created resource" } } }, "description": "Resources created as a result of this action batch" } }, "required": [ "createdResources" ], "description": "Status of action batch" }, "actions": { "type": "array", "items": { "type": "object", "properties": { "resource": { "type": "string", "description": "Unique identifier for the resource to be acted on" }, "operation": { "type": "string", "description": "The operation to be used by this action" }, "body": { "type": "object", "additionalProperties": true, "description": "Data provided in the body of the Action. Contents depend on the Action type" } }, "required": [ "resource", "operation" ] }, "description": "A set of changes made as part of this action (more details)" } }, "required": [ "actions" ] } }, "example": [ { "id": "1234", "organizationId": "2930418", "confirmed": true, "synchronous": false, "status": { "completed": true, "failed": false, "errors": [], "createdResources": [ { "id": "1284392014819", "uri": "/networks/L_XXXXX/groupPolicies/100" } ] }, "actions": [ { "resource": "/devices/QXXX-XXXX-XXXX/switch/ports/3", "operation": "update" } ] } ] } } } }, "summary": "Return the list of action batches in the organization", "tags": [ "organizations", "configure", "actionBatches" ] } }, "/organizations/{organizationId}/actionBatches/{actionBatchId}": { "get": { "description": "Return an action batch", "operationId": "getOrganizationActionBatch", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "actionBatchId", "in": "path", "description": "Action batch ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the action batch. Can be used to check the status of the action batch at /organizations/{organizationId}/actionBatches/{actionBatchId}" }, "organizationId": { "type": "string", "description": "ID of the organization this action batch belongs to" }, "confirmed": { "type": "boolean", "description": "Flag describing whether the action should be previewed before executing or not" }, "synchronous": { "type": "boolean", "description": "Flag describing whether actions should run synchronously or asynchronously" }, "status": { "type": "object", "properties": { "completed": { "type": "boolean", "description": "Flag describing whether all actions in the action batch have completed" }, "failed": { "type": "boolean", "description": "Flag describing whether any actions in the action batch failed" }, "errors": { "type": "array", "items": { "type": "string" }, "description": "List of errors encountered when running actions in the action batch" }, "createdResources": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the created resource" }, "uri": { "type": "string", "description": "URI, not including base, of the created resource" } } }, "description": "Resources created as a result of this action batch" } }, "required": [ "createdResources" ], "description": "Status of action batch" }, "actions": { "type": "array", "items": { "type": "object", "properties": { "resource": { "type": "string", "description": "Unique identifier for the resource to be acted on" }, "operation": { "type": "string", "description": "The operation to be used by this action" }, "body": { "type": "object", "additionalProperties": true, "description": "Data provided in the body of the Action. Contents depend on the Action type" } }, "required": [ "resource", "operation" ] }, "description": "A set of changes made as part of this action (more details)" }, "callback": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the callback. To check the status of the callback, use this ID in a request to /webhooks/callbacks/statuses/{id}" }, "url": { "type": "string", "description": "The callback URL for the webhook target. This was either provided in the original request or comes from a configured webhook receiver" }, "status": { "type": "string", "description": "The status of the callback" } }, "description": "Information for callback used to send back results", "x-release-stage": "general_availability" } }, "required": [ "actions" ] }, "example": { "id": "1234", "organizationId": "2930418", "confirmed": true, "synchronous": false, "status": { "completed": true, "failed": false, "errors": [], "createdResources": [ { "id": "1284392014819", "uri": "/networks/L_XXXXX/groupPolicies/100" } ] }, "actions": [ { "resource": "/devices/QXXX-XXXX-XXXX/switch/ports/3", "operation": "update" } ], "callback": { "id": "1284392014819", "url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031", "status": "new" } } } } } }, "summary": "Return an action batch", "tags": [ "organizations", "configure", "actionBatches" ] }, "delete": { "description": "Delete an action batch", "operationId": "deleteOrganizationActionBatch", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "actionBatchId", "in": "path", "description": "Action batch ID", "schema": { "type": "string" }, "required": true } ], "responses": { "204": { "description": "Successful operation" } }, "summary": "Delete an action batch", "tags": [ "organizations", "configure", "actionBatches" ] }, "put": { "description": "Update an action batch", "operationId": "updateOrganizationActionBatch", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "actionBatchId", "in": "path", "description": "Action batch ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "confirmed": { "type": "boolean", "description": "A boolean representing whether or not the batch has been confirmed. This property cannot be unset once it is true." }, "synchronous": { "type": "boolean", "description": "Set to true to force the batch to run synchronous. There can be at most 20 actions in synchronous batch." } }, "example": { "confirmed": true, "synchronous": false } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the action batch. Can be used to check the status of the action batch at /organizations/{organizationId}/actionBatches/{actionBatchId}" }, "organizationId": { "type": "string", "description": "ID of the organization this action batch belongs to" }, "confirmed": { "type": "boolean", "description": "Flag describing whether the action should be previewed before executing or not" }, "synchronous": { "type": "boolean", "description": "Flag describing whether actions should run synchronously or asynchronously" }, "status": { "type": "object", "properties": { "completed": { "type": "boolean", "description": "Flag describing whether all actions in the action batch have completed" }, "failed": { "type": "boolean", "description": "Flag describing whether any actions in the action batch failed" }, "errors": { "type": "array", "items": { "type": "string" }, "description": "List of errors encountered when running actions in the action batch" }, "createdResources": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the created resource" }, "uri": { "type": "string", "description": "URI, not including base, of the created resource" } } }, "description": "Resources created as a result of this action batch" } }, "required": [ "createdResources" ], "description": "Status of action batch" }, "actions": { "type": "array", "items": { "type": "object", "properties": { "resource": { "type": "string", "description": "Unique identifier for the resource to be acted on" }, "operation": { "type": "string", "description": "The operation to be used by this action" }, "body": { "type": "object", "additionalProperties": true, "description": "Data provided in the body of the Action. Contents depend on the Action type" } }, "required": [ "resource", "operation" ] }, "description": "A set of changes made as part of this action (more details)" } }, "required": [ "actions" ] }, "example": { "id": "1234", "organizationId": "2930418", "confirmed": true, "synchronous": false, "status": { "completed": true, "failed": false, "errors": [], "createdResources": [ { "id": "1284392014819", "uri": "/networks/L_XXXXX/groupPolicies/100" } ] }, "actions": [ { "resource": "/devices/QXXX-XXXX-XXXX/switch/ports/3", "operation": "update" } ] } } } } }, "summary": "Update an action batch", "tags": [ "organizations", "configure", "actionBatches" ] } }, "/organizations/{organizationId}/adaptivePolicy/acls": { "get": { "description": "List adaptive policy ACLs in a organization", "operationId": "getOrganizationAdaptivePolicyAcls", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "aclId": { "type": "string", "description": "ID of the adaptive policy ACL" }, "name": { "type": "string", "description": "Name of the adaptive policy ACL" }, "description": { "type": "string", "description": "Description of the adaptive policy ACL" }, "ipVersion": { "type": "string", "description": "IP version of adpative policy ACL" }, "rules": { "type": "array", "items": { "type": "object", "properties": { "policy": { "type": "string", "description": "'allow' or 'deny' traffic specified by this rule" }, "protocol": { "type": "string", "description": "The type of protocol" }, "srcPort": { "type": "string", "description": "Source port" }, "dstPort": { "type": "string", "description": "Destination port" }, "log": { "type": "boolean", "description": "If enabled, when this rule is hit an entry will be logged to the event log\n" }, "tcpEstablished": { "type": "boolean", "description": "If enabled, means TCP connection with this node must be established.\n" } } }, "description": "An ordered array of the adaptive policy ACL rules" }, "createdAt": { "type": "string", "format": "date-time", "description": "When the adaptive policy ACL was created" }, "updatedAt": { "type": "string", "format": "date-time", "description": "When the adaptive policy ACL was last updated" } } } }, "example": [ { "aclId": "12345678", "name": "Block sensitive web traffic", "description": "Blocks sensitive web traffic", "ipVersion": "ipv6", "rules": [ { "policy": "deny", "protocol": "tcp", "srcPort": "1,33", "dstPort": "22-30", "log": true, "tcpEstablished": true } ], "createdAt": "2021-05-19T17:08:25Z", "updatedAt": "2021-05-19T17:11:54Z" } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "List adaptive policy ACLs in a organization", "tags": [ "organizations", "configure", "adaptivePolicy", "acls" ] }, "post": { "description": "Creates new adaptive policy ACL", "operationId": "createOrganizationAdaptivePolicyAcl", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the adaptive policy ACL" }, "description": { "type": "string", "description": "Description of the adaptive policy ACL", "default": "" }, "rules": { "type": "array", "items": { "type": "object", "properties": { "policy": { "type": "string", "enum": [ "allow", "deny" ], "description": "'allow' or 'deny' traffic specified by this rule." }, "protocol": { "type": "string", "enum": [ "any", "icmp", "tcp", "udp" ], "description": "The type of protocol (must be 'tcp', 'udp', 'icmp' or 'any')." }, "srcPort": { "type": "string", "description": "Source port. Must be in the format of single port: '1', port list: '1,2' or port range: '1-10', and in the range of 1-65535, or 'any'. Default is 'any'." }, "dstPort": { "type": "string", "description": "Destination port. Must be in the format of single port: '1', port list: '1,2' or port range: '1-10', and in the range of 1-65535, or 'any'. Default is 'any'." }, "log": { "type": "boolean", "description": "If enabled, when this rule is hit an entry will be logged to the event log\n" }, "tcpEstablished": { "type": "boolean", "description": "If enabled, means TCP connection with this node must be established.\nCan only be enabled when policy protocol is 'allow tcp'\n" } }, "required": [ "policy", "protocol" ] }, "description": "An ordered array of the adaptive policy ACL rules." }, "ipVersion": { "type": "string", "enum": [ "any", "ipv4", "ipv6" ], "description": "IP version of adpative policy ACL. One of: 'any', 'ipv4' or 'ipv6'" } }, "example": { "name": "Block sensitive web traffic", "description": "Blocks sensitive web traffic", "rules": [ { "policy": "deny", "protocol": "tcp", "srcPort": "1,33", "dstPort": "22-30", "log": true, "tcpEstablished": true } ], "ipVersion": "ipv6" }, "required": [ "name", "rules", "ipVersion" ] } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "aclId": { "type": "string", "description": "ID of the adaptive policy ACL" }, "name": { "type": "string", "description": "Name of the adaptive policy ACL" }, "description": { "type": "string", "description": "Description of the adaptive policy ACL" }, "ipVersion": { "type": "string", "description": "IP version of adpative policy ACL" }, "rules": { "type": "array", "items": { "type": "object", "properties": { "policy": { "type": "string", "description": "'allow' or 'deny' traffic specified by this rule" }, "protocol": { "type": "string", "description": "The type of protocol" }, "srcPort": { "type": "string", "description": "Source port" }, "dstPort": { "type": "string", "description": "Destination port" }, "log": { "type": "boolean", "description": "If enabled, when this rule is hit an entry will be logged to the event log\n" }, "tcpEstablished": { "type": "boolean", "description": "If enabled, means TCP connection with this node must be established.\n" } } }, "description": "An ordered array of the adaptive policy ACL rules" }, "createdAt": { "type": "string", "format": "date-time", "description": "When the adaptive policy ACL was created" }, "updatedAt": { "type": "string", "format": "date-time", "description": "When the adaptive policy ACL was last updated" } } }, "example": { "aclId": "12345678", "name": "Block sensitive web traffic", "description": "Blocks sensitive web traffic", "ipVersion": "ipv6", "rules": [ { "policy": "deny", "protocol": "tcp", "srcPort": "1,33", "dstPort": "22-30", "log": true, "tcpEstablished": true } ], "createdAt": "2021-05-19T17:08:25Z", "updatedAt": "2021-05-19T17:11:54Z" } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Creates new adaptive policy ACL", "tags": [ "organizations", "configure", "adaptivePolicy", "acls" ] } }, "/organizations/{organizationId}/adaptivePolicy/acls/{aclId}": { "get": { "description": "Returns the adaptive policy ACL information", "operationId": "getOrganizationAdaptivePolicyAcl", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "aclId", "in": "path", "description": "Acl ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "aclId": { "type": "string", "description": "ID of the adaptive policy ACL" }, "name": { "type": "string", "description": "Name of the adaptive policy ACL" }, "description": { "type": "string", "description": "Description of the adaptive policy ACL" }, "ipVersion": { "type": "string", "description": "IP version of adpative policy ACL" }, "rules": { "type": "array", "items": { "type": "object", "properties": { "policy": { "type": "string", "description": "'allow' or 'deny' traffic specified by this rule" }, "protocol": { "type": "string", "description": "The type of protocol" }, "srcPort": { "type": "string", "description": "Source port" }, "dstPort": { "type": "string", "description": "Destination port" }, "log": { "type": "boolean", "description": "If enabled, when this rule is hit an entry will be logged to the event log\n" }, "tcpEstablished": { "type": "boolean", "description": "If enabled, means TCP connection with this node must be established.\n" } } }, "description": "An ordered array of the adaptive policy ACL rules" }, "createdAt": { "type": "string", "format": "date-time", "description": "When the adaptive policy ACL was created" }, "updatedAt": { "type": "string", "format": "date-time", "description": "When the adaptive policy ACL was last updated" } } }, "example": { "aclId": "12345678", "name": "Block sensitive web traffic", "description": "Blocks sensitive web traffic", "ipVersion": "ipv6", "rules": [ { "policy": "deny", "protocol": "tcp", "srcPort": "1,33", "dstPort": "22-30", "log": true, "tcpEstablished": true } ], "createdAt": "2021-05-19T17:08:25Z", "updatedAt": "2021-05-19T17:11:54Z" } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "Returns the adaptive policy ACL information", "tags": [ "organizations", "configure", "adaptivePolicy", "acls" ] }, "put": { "description": "Updates an adaptive policy ACL", "operationId": "updateOrganizationAdaptivePolicyAcl", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "aclId", "in": "path", "description": "Acl ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the adaptive policy ACL" }, "description": { "type": "string", "description": "Description of the adaptive policy ACL" }, "rules": { "type": "array", "items": { "type": "object", "properties": { "policy": { "type": "string", "enum": [ "allow", "deny" ], "description": "'allow' or 'deny' traffic specified by this rule." }, "protocol": { "type": "string", "enum": [ "any", "icmp", "tcp", "udp" ], "description": "The type of protocol (must be 'tcp', 'udp', 'icmp' or 'any')." }, "srcPort": { "type": "string", "description": "Source port. Must be in the format of single port: '1', port list: '1,2' or port range: '1-10', and in the range of 1-65535, or 'any'. Default is 'any'." }, "dstPort": { "type": "string", "description": "Destination port. Must be in the format of single port: '1', port list: '1,2' or port range: '1-10', and in the range of 1-65535, or 'any'. Default is 'any'." }, "log": { "type": "boolean", "description": "If enabled, when this rule is hit an entry will be logged to the event log\n" }, "tcpEstablished": { "type": "boolean", "description": "If enabled, means TCP connection with this node must be established.\nCan only be enabled when policy protocol is 'allow tcp'\n" } }, "required": [ "policy", "protocol" ] }, "description": "An ordered array of the adaptive policy ACL rules. An empty array will clear the rules." }, "ipVersion": { "type": "string", "enum": [ "any", "ipv4", "ipv6" ], "description": "IP version of adpative policy ACL. One of: 'any', 'ipv4' or 'ipv6'" } }, "example": { "name": "Block sensitive web traffic", "description": "Blocks sensitive web traffic", "rules": [ { "policy": "deny", "protocol": "tcp", "srcPort": "1,33", "dstPort": "22-30", "log": true, "tcpEstablished": true } ], "ipVersion": "ipv6" } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "aclId": { "type": "string", "description": "ID of the adaptive policy ACL" }, "name": { "type": "string", "description": "Name of the adaptive policy ACL" }, "description": { "type": "string", "description": "Description of the adaptive policy ACL" }, "ipVersion": { "type": "string", "description": "IP version of adpative policy ACL" }, "rules": { "type": "array", "items": { "type": "object", "properties": { "policy": { "type": "string", "description": "'allow' or 'deny' traffic specified by this rule" }, "protocol": { "type": "string", "description": "The type of protocol" }, "srcPort": { "type": "string", "description": "Source port" }, "dstPort": { "type": "string", "description": "Destination port" }, "log": { "type": "boolean", "description": "If enabled, when this rule is hit an entry will be logged to the event log\n" }, "tcpEstablished": { "type": "boolean", "description": "If enabled, means TCP connection with this node must be established.\n" } } }, "description": "An ordered array of the adaptive policy ACL rules" }, "createdAt": { "type": "string", "format": "date-time", "description": "When the adaptive policy ACL was created" }, "updatedAt": { "type": "string", "format": "date-time", "description": "When the adaptive policy ACL was last updated" } } }, "example": { "aclId": "12345678", "name": "Block sensitive web traffic", "description": "Blocks sensitive web traffic", "ipVersion": "ipv6", "rules": [ { "policy": "deny", "protocol": "tcp", "srcPort": "1,33", "dstPort": "22-30", "log": true, "tcpEstablished": true } ], "createdAt": "2021-05-19T17:08:25Z", "updatedAt": "2021-05-19T17:11:54Z" } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Updates an adaptive policy ACL", "tags": [ "organizations", "configure", "adaptivePolicy", "acls" ] }, "delete": { "description": "Deletes the specified adaptive policy ACL. Note this adaptive policy ACL will also be removed from policies using it.", "operationId": "deleteOrganizationAdaptivePolicyAcl", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "aclId", "in": "path", "description": "Acl ID", "schema": { "type": "string" }, "required": true } ], "responses": { "204": { "description": "Successful operation" } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Deletes the specified adaptive policy ACL", "tags": [ "organizations", "configure", "adaptivePolicy", "acls" ] } }, "/organizations/{organizationId}/adaptivePolicy/groups": { "get": { "description": "List adaptive policy groups in a organization", "operationId": "getOrganizationAdaptivePolicyGroups", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "groupId": { "type": "string", "description": "The ID of the adaptive policy group" }, "name": { "type": "string", "description": "The name of the adaptive policy group" }, "sgt": { "type": "integer", "description": "The security group tag for the adaptive policy group" }, "description": { "type": "string", "description": "The description for the adaptive policy group" }, "policyObjects": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the policy object" }, "name": { "type": "string", "description": "The name of the policy object" } } }, "description": "The policy objects for the adaptive policy group" }, "isDefaultGroup": { "type": "boolean", "description": "Whether the adaptive policy group is the default group" }, "requiredIpMappings": { "type": "array", "items": { "type": "string" }, "description": "List of required IP mappings for the adaptive policy group" }, "createdAt": { "type": "string", "description": "Created at timestamp for the adaptive policy group" }, "updatedAt": { "type": "string", "description": "Updated at timestamp for the adaptive policy group" } } } }, "example": [ { "groupId": "1234", "name": "Employee Group", "sgt": 1000, "description": "Group of XYZ Corp Employees", "policyObjects": [ { "id": "2345", "name": "Example Policy Object" } ], "isDefaultGroup": false, "requiredIpMappings": [], "createdAt": "2019-06-27T21:34:25.253480Z", "updatedAt": "2019-06-27T21:34:25.253480Z" } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "List adaptive policy groups in a organization", "tags": [ "organizations", "configure", "adaptivePolicy", "groups" ] }, "post": { "description": "Creates a new adaptive policy group", "operationId": "createOrganizationAdaptivePolicyGroup", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the group" }, "sgt": { "type": "integer", "description": "SGT value of the group" }, "description": { "type": "string", "description": "Description of the group (default: \"\")" }, "policyObjects": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the policy object" }, "name": { "type": "string", "description": "The name of the policy object" } } }, "description": "The policy objects that belong to this group; traffic from addresses specified by these policy objects will be tagged with this group's SGT value if no other tagging scheme is being used (each requires one unique attribute) (default: [])" } }, "example": { "name": "Employee Group", "sgt": 1000, "description": "Group of XYZ Corp Employees", "policyObjects": [ { "id": "2345", "name": "Example Policy Object" } ] }, "required": [ "name", "sgt" ] } } }, "required": true }, "responses": { "201": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "groupId": { "type": "string", "description": "The ID of the adaptive policy group" }, "name": { "type": "string", "description": "The name of the adaptive policy group" }, "sgt": { "type": "integer", "description": "The security group tag for the adaptive policy group" }, "description": { "type": "string", "description": "The description for the adaptive policy group" }, "policyObjects": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the policy object" }, "name": { "type": "string", "description": "The name of the policy object" } } }, "description": "The policy objects for the adaptive policy group" }, "isDefaultGroup": { "type": "boolean", "description": "Whether the adaptive policy group is the default group" }, "requiredIpMappings": { "type": "array", "items": { "type": "string" }, "description": "List of required IP mappings for the adaptive policy group" }, "createdAt": { "type": "string", "description": "Created at timestamp for the adaptive policy group" }, "updatedAt": { "type": "string", "description": "Updated at timestamp for the adaptive policy group" } } }, "example": { "groupId": "1234", "name": "Employee Group", "sgt": 1000, "description": "Group of XYZ Corp Employees", "policyObjects": [ { "id": "2345", "name": "Example Policy Object" } ], "isDefaultGroup": false, "requiredIpMappings": [], "createdAt": "2019-06-27T21:34:25.253480Z", "updatedAt": "2019-06-27T21:34:25.253480Z" } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Creates a new adaptive policy group", "tags": [ "organizations", "configure", "adaptivePolicy", "groups" ] } }, "/organizations/{organizationId}/adaptivePolicy/groups/{id}": { "get": { "description": "Returns an adaptive policy group", "operationId": "getOrganizationAdaptivePolicyGroup", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "id", "in": "path", "description": "ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "groupId": { "type": "string", "description": "The ID of the adaptive policy group" }, "name": { "type": "string", "description": "The name of the adaptive policy group" }, "sgt": { "type": "integer", "description": "The security group tag for the adaptive policy group" }, "description": { "type": "string", "description": "The description for the adaptive policy group" }, "policyObjects": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the policy object" }, "name": { "type": "string", "description": "The name of the policy object" } } }, "description": "The policy objects for the adaptive policy group" }, "isDefaultGroup": { "type": "boolean", "description": "Whether the adaptive policy group is the default group" }, "requiredIpMappings": { "type": "array", "items": { "type": "string" }, "description": "List of required IP mappings for the adaptive policy group" }, "createdAt": { "type": "string", "description": "Created at timestamp for the adaptive policy group" }, "updatedAt": { "type": "string", "description": "Updated at timestamp for the adaptive policy group" } } }, "example": { "groupId": "1234", "name": "Employee Group", "sgt": 1000, "description": "Group of XYZ Corp Employees", "policyObjects": [ { "id": "2345", "name": "Example Policy Object" } ], "isDefaultGroup": false, "requiredIpMappings": [], "createdAt": "2019-06-27T21:34:25.253480Z", "updatedAt": "2019-06-27T21:34:25.253480Z" } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "Returns an adaptive policy group", "tags": [ "organizations", "configure", "adaptivePolicy", "groups" ] }, "put": { "description": "Updates an adaptive policy group. If updating \"Infrastructure\", only the SGT is allowed. Cannot update \"Unknown\".", "operationId": "updateOrganizationAdaptivePolicyGroup", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "id", "in": "path", "description": "ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the group" }, "sgt": { "type": "integer", "description": "SGT value of the group" }, "description": { "type": "string", "description": "Description of the group" }, "policyObjects": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the policy object" }, "name": { "type": "string", "description": "The name of the policy object" } } }, "description": "The policy objects that belong to this group; traffic from addresses specified by these policy objects will be tagged with this group's SGT value if no other tagging scheme is being used (each requires one unique attribute)" } }, "example": { "name": "Employee Group", "sgt": 1000, "description": "Group of XYZ Corp Employees", "policyObjects": [ { "id": "2345", "name": "Example Policy Object" } ] } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "groupId": { "type": "string", "description": "The ID of the adaptive policy group" }, "name": { "type": "string", "description": "The name of the adaptive policy group" }, "sgt": { "type": "integer", "description": "The security group tag for the adaptive policy group" }, "description": { "type": "string", "description": "The description for the adaptive policy group" }, "policyObjects": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the policy object" }, "name": { "type": "string", "description": "The name of the policy object" } } }, "description": "The policy objects for the adaptive policy group" }, "isDefaultGroup": { "type": "boolean", "description": "Whether the adaptive policy group is the default group" }, "requiredIpMappings": { "type": "array", "items": { "type": "string" }, "description": "List of required IP mappings for the adaptive policy group" }, "createdAt": { "type": "string", "description": "Created at timestamp for the adaptive policy group" }, "updatedAt": { "type": "string", "description": "Updated at timestamp for the adaptive policy group" } } }, "example": { "groupId": "1234", "name": "Employee Group", "sgt": 1000, "description": "Group of XYZ Corp Employees", "policyObjects": [ { "id": "2345", "name": "Example Policy Object" } ], "isDefaultGroup": false, "requiredIpMappings": [], "createdAt": "2019-06-27T21:34:25.253480Z", "updatedAt": "2019-06-27T21:34:25.253480Z" } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Updates an adaptive policy group", "tags": [ "organizations", "configure", "adaptivePolicy", "groups" ] }, "delete": { "description": "Deletes the specified adaptive policy group and any associated policies and references", "operationId": "deleteOrganizationAdaptivePolicyGroup", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "id", "in": "path", "description": "ID", "schema": { "type": "string" }, "required": true } ], "responses": { "204": { "description": "Successful operation" } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Deletes the specified adaptive policy group and any associated policies and references", "tags": [ "organizations", "configure", "adaptivePolicy", "groups" ] } }, "/organizations/{organizationId}/adaptivePolicy/overview": { "get": { "description": "Returns adaptive policy aggregate statistics for an organization", "operationId": "getOrganizationAdaptivePolicyOverview", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "counts": { "type": "object", "properties": { "groups": { "type": "integer", "description": "Number of adaptive policy groups currently in the organization." }, "customGroups": { "type": "integer", "description": "Number of user-created adaptive policy groups currently in the organization." }, "customAcls": { "type": "integer", "description": "Number of user-created adaptive policy ACLs currently in the organization." }, "policies": { "type": "integer", "description": "Number of adaptive policies currently in the organization." }, "denyPolicies": { "type": "integer", "description": "Number of adaptive policies currently in the organization that deny all traffic." }, "allowPolicies": { "type": "integer", "description": "Number of adaptive policies currently in the organization that allow all traffic." }, "policyObjects": { "type": "integer", "description": "Number of policy objects (with the adaptive policy type) currently in the organization." } }, "description": "The current amount of various adaptive policy objects." }, "limits": { "type": "object", "properties": { "customGroups": { "type": "integer", "description": "Maximum number of user-created adaptive policy groups allowed in the organization." }, "rulesInAnAcl": { "type": "integer", "description": "Maximum number of rules allowed in an adaptive policy ACL in the organization." }, "aclsInAPolicy": { "type": "integer", "description": "Maximum number of adaptive policy ACLs that can be assigned to an adaptive policy in the organization." }, "policyObjects": { "type": "integer", "description": "Maximum number of policy objects (with the adaptive policy type) allowed in the organization." } }, "description": "The current limits of various adaptive policy objects." } } }, "example": { "counts": { "groups": 10, "customGroups": 8, "customAcls": 12, "policies": 100, "denyPolicies": 30, "allowPolicies": 70, "policyObjects": 13 }, "limits": { "customGroups": 60, "rulesInAnAcl": 16, "aclsInAPolicy": 7, "policyObjects": 8000 } } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "Returns adaptive policy aggregate statistics for an organization", "tags": [ "organizations", "monitor", "adaptivePolicy", "overview" ] } }, "/organizations/{organizationId}/adaptivePolicy/policies": { "get": { "description": "List adaptive policies in an organization", "operationId": "getOrganizationAdaptivePolicyPolicies", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "adaptivePolicyId": { "type": "string", "description": "The ID for the adaptive policy" }, "sourceGroup": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID for the source group" }, "name": { "type": "string", "description": "The name for the source group" }, "sgt": { "type": "integer", "description": "The security group tag for the source group" } }, "description": "The source group for the given adaptive policy" }, "destinationGroup": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID for the destination group" }, "name": { "type": "string", "description": "The name for the destination group" }, "sgt": { "type": "integer", "description": "The security group tag for the destination group" } }, "description": "The destination group for the given adaptive policy" }, "acls": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID for the access control list" }, "name": { "type": "string", "description": "The name for the access control list" } } }, "description": "The access control lists for the adaptive policy" }, "lastEntryRule": { "type": "string", "enum": [ "allow", "default", "deny" ], "description": "The rule to apply if there is no matching ACL" }, "createdAt": { "type": "string", "description": "The created at timestamp for the adaptive policy" }, "updatedAt": { "type": "string", "description": "The updated at timestamp for the adaptive policy" } } } }, "example": [ { "adaptivePolicyId": "111", "sourceGroup": { "id": "222", "name": "IoT Devices", "sgt": 50 }, "destinationGroup": { "id": "333", "name": "IoT Servers", "sgt": 51 }, "acls": [ { "id": "444", "name": "Block web" } ], "lastEntryRule": "allow", "createdAt": "2019-06-27T21:34:25.253480Z", "updatedAt": "2019-06-27T21:34:25.253480Z" } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "List adaptive policies in an organization", "tags": [ "organizations", "configure", "adaptivePolicy", "policies" ] }, "post": { "description": "Add an Adaptive Policy", "operationId": "createOrganizationAdaptivePolicyPolicy", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "sourceGroup": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the source adaptive policy group" }, "name": { "type": "string", "description": "The name of the source adaptive policy group" }, "sgt": { "type": "integer", "description": "The SGT of the source adaptive policy group" } }, "description": "The source adaptive policy group (requires one unique attribute)" }, "destinationGroup": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the destination adaptive policy group" }, "name": { "type": "string", "description": "The name of the destination adaptive policy group" }, "sgt": { "type": "integer", "description": "The SGT of the destination adaptive policy group" } }, "description": "The destination adaptive policy group (requires one unique attribute)" }, "acls": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the adaptive policy ACL" }, "name": { "type": "string", "description": "The name of the adaptive policy ACL" } } }, "description": "An ordered array of adaptive policy ACLs (each requires one unique attribute) that apply to this policy (default: [])" }, "lastEntryRule": { "type": "string", "enum": [ "allow", "default", "deny" ], "description": "The rule to apply if there is no matching ACL (default: \"default\")" } }, "example": { "sourceGroup": { "id": "222", "name": "IoT Devices", "sgt": 50 }, "destinationGroup": { "id": "333", "name": "IoT Servers", "sgt": 51 }, "acls": [ { "id": "444", "name": "Block web" } ], "lastEntryRule": "allow" }, "required": [ "sourceGroup", "destinationGroup" ] } } }, "required": true }, "responses": { "201": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "adaptivePolicyId": { "type": "string", "description": "The ID for the adaptive policy" }, "sourceGroup": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID for the source group" }, "name": { "type": "string", "description": "The name for the source group" }, "sgt": { "type": "integer", "description": "The security group tag for the source group" } }, "description": "The source group for the given adaptive policy" }, "destinationGroup": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID for the destination group" }, "name": { "type": "string", "description": "The name for the destination group" }, "sgt": { "type": "integer", "description": "The security group tag for the destination group" } }, "description": "The destination group for the given adaptive policy" }, "acls": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID for the access control list" }, "name": { "type": "string", "description": "The name for the access control list" } } }, "description": "The access control lists for the adaptive policy" }, "lastEntryRule": { "type": "string", "enum": [ "allow", "default", "deny" ], "description": "The rule to apply if there is no matching ACL" }, "createdAt": { "type": "string", "description": "The created at timestamp for the adaptive policy" }, "updatedAt": { "type": "string", "description": "The updated at timestamp for the adaptive policy" } } }, "example": { "adaptivePolicyId": "111", "sourceGroup": { "id": "222", "name": "IoT Devices", "sgt": 50 }, "destinationGroup": { "id": "333", "name": "IoT Servers", "sgt": 51 }, "acls": [ { "id": "444", "name": "Block web" } ], "lastEntryRule": "allow", "createdAt": "2019-06-27T21:34:25.253480Z", "updatedAt": "2019-06-27T21:34:25.253480Z" } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Add an Adaptive Policy", "tags": [ "organizations", "configure", "adaptivePolicy", "policies" ] } }, "/organizations/{organizationId}/adaptivePolicy/policies/{id}": { "get": { "description": "Return an adaptive policy", "operationId": "getOrganizationAdaptivePolicyPolicy", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "id", "in": "path", "description": "ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "adaptivePolicyId": { "type": "string", "description": "The ID for the adaptive policy" }, "sourceGroup": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID for the source group" }, "name": { "type": "string", "description": "The name for the source group" }, "sgt": { "type": "integer", "description": "The security group tag for the source group" } }, "description": "The source group for the given adaptive policy" }, "destinationGroup": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID for the destination group" }, "name": { "type": "string", "description": "The name for the destination group" }, "sgt": { "type": "integer", "description": "The security group tag for the destination group" } }, "description": "The destination group for the given adaptive policy" }, "acls": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID for the access control list" }, "name": { "type": "string", "description": "The name for the access control list" } } }, "description": "The access control lists for the adaptive policy" }, "lastEntryRule": { "type": "string", "enum": [ "allow", "default", "deny" ], "description": "The rule to apply if there is no matching ACL" }, "createdAt": { "type": "string", "description": "The created at timestamp for the adaptive policy" }, "updatedAt": { "type": "string", "description": "The updated at timestamp for the adaptive policy" } } }, "example": { "adaptivePolicyId": "111", "sourceGroup": { "id": "222", "name": "IoT Devices", "sgt": 50 }, "destinationGroup": { "id": "333", "name": "IoT Servers", "sgt": 51 }, "acls": [ { "id": "444", "name": "Block web" } ], "lastEntryRule": "allow", "createdAt": "2019-06-27T21:34:25.253480Z", "updatedAt": "2019-06-27T21:34:25.253480Z" } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "Return an adaptive policy", "tags": [ "organizations", "configure", "adaptivePolicy", "policies" ] }, "put": { "description": "Update an Adaptive Policy", "operationId": "updateOrganizationAdaptivePolicyPolicy", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "id", "in": "path", "description": "ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "sourceGroup": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the source adaptive policy group" }, "name": { "type": "string", "description": "The name of the source adaptive policy group" }, "sgt": { "type": "integer", "description": "The SGT of the source adaptive policy group" } }, "description": "The source adaptive policy group (requires one unique attribute)" }, "destinationGroup": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the destination adaptive policy group" }, "name": { "type": "string", "description": "The name of the destination adaptive policy group" }, "sgt": { "type": "integer", "description": "The SGT of the destination adaptive policy group" } }, "description": "The destination adaptive policy group (requires one unique attribute)" }, "acls": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID of the adaptive policy ACL" }, "name": { "type": "string", "description": "The name of the adaptive policy ACL" } } }, "description": "An ordered array of adaptive policy ACLs (each requires one unique attribute) that apply to this policy" }, "lastEntryRule": { "type": "string", "enum": [ "allow", "default", "deny" ], "description": "The rule to apply if there is no matching ACL" } }, "example": { "sourceGroup": { "id": "222", "name": "IoT Devices", "sgt": 50 }, "destinationGroup": { "id": "333", "name": "IoT Servers", "sgt": 51 }, "acls": [ { "id": "444", "name": "Block web" } ], "lastEntryRule": "allow" } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "adaptivePolicyId": { "type": "string", "description": "The ID for the adaptive policy" }, "sourceGroup": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID for the source group" }, "name": { "type": "string", "description": "The name for the source group" }, "sgt": { "type": "integer", "description": "The security group tag for the source group" } }, "description": "The source group for the given adaptive policy" }, "destinationGroup": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID for the destination group" }, "name": { "type": "string", "description": "The name for the destination group" }, "sgt": { "type": "integer", "description": "The security group tag for the destination group" } }, "description": "The destination group for the given adaptive policy" }, "acls": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "The ID for the access control list" }, "name": { "type": "string", "description": "The name for the access control list" } } }, "description": "The access control lists for the adaptive policy" }, "lastEntryRule": { "type": "string", "enum": [ "allow", "default", "deny" ], "description": "The rule to apply if there is no matching ACL" }, "createdAt": { "type": "string", "description": "The created at timestamp for the adaptive policy" }, "updatedAt": { "type": "string", "description": "The updated at timestamp for the adaptive policy" } } }, "example": { "adaptivePolicyId": "111", "sourceGroup": { "id": "222", "name": "IoT Devices", "sgt": 50 }, "destinationGroup": { "id": "333", "name": "IoT Servers", "sgt": 51 }, "acls": [ { "id": "444", "name": "Block web" } ], "lastEntryRule": "allow", "createdAt": "2019-06-27T21:34:25.253480Z", "updatedAt": "2019-06-27T21:34:25.253480Z" } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Update an Adaptive Policy", "tags": [ "organizations", "configure", "adaptivePolicy", "policies" ] }, "delete": { "description": "Delete an Adaptive Policy", "operationId": "deleteOrganizationAdaptivePolicyPolicy", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "id", "in": "path", "description": "ID", "schema": { "type": "string" }, "required": true } ], "responses": { "204": { "description": "Successful operation" } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Delete an Adaptive Policy", "tags": [ "organizations", "configure", "adaptivePolicy", "policies" ] } }, "/organizations/{organizationId}/adaptivePolicy/settings": { "get": { "description": "Returns global adaptive policy settings in an organization", "operationId": "getOrganizationAdaptivePolicySettings", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "enabledNetworks": { "type": "array", "items": { "type": "string" }, "description": "List of network IDs with adaptive policy enabled" } } }, "example": { "enabledNetworks": [ "L_11111111", "L_22222222", "N_33333333", "L_44444444" ] } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:read" ] } ], "summary": "Returns global adaptive policy settings in an organization", "tags": [ "organizations", "configure", "adaptivePolicy", "settings" ] }, "put": { "description": "Update global adaptive policy settings", "operationId": "updateOrganizationAdaptivePolicySettings", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "enabledNetworks": { "type": "array", "items": { "type": "string" }, "description": "List of network IDs with adaptive policy enabled" } }, "example": { "enabledNetworks": [ "L_11111111", "L_22222222", "N_33333333", "L_44444444" ] } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "enabledNetworks": { "type": "array", "items": { "type": "string" }, "description": "List of network IDs with adaptive policy enabled" } } }, "example": { "enabledNetworks": [ "L_11111111", "L_22222222", "N_33333333", "L_44444444" ] } } } } }, "security": [ { "oauth2": [ "dashboard:general:config:write" ] } ], "summary": "Update global adaptive policy settings", "tags": [ "organizations", "configure", "adaptivePolicy", "settings" ] } }, "/organizations/{organizationId}/admins": { "get": { "description": "List the dashboard administrators in this organization", "operationId": "getOrganizationAdmins", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "networkIds", "in": "query", "description": "Optional parameter to filter the result set by the included set of network IDs", "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Admin's ID" }, "name": { "type": "string", "description": "Admin's username" }, "email": { "type": "string", "description": "Admin's email address" }, "orgAccess": { "type": "string", "enum": [ "camera-sensor", "enterprise", "full", "none", "read-only" ], "description": "Admin's level of access to the organization" }, "accountStatus": { "type": "string", "enum": [ "locked", "ok", "pending", "unverified" ], "description": "Status of the admin's account" }, "twoFactorAuthEnabled": { "type": "boolean", "description": "Indicates whether two-factor authentication is enabled" }, "hasApiKey": { "type": "boolean", "description": "Indicates whether the admin has an API key" }, "lastActive": { "type": "string", "format": "date-time", "description": "Time when the admin was last active" }, "tags": { "type": "array", "items": { "type": "object", "properties": { "tag": { "type": "string", "description": "Tag value" }, "access": { "type": "string", "description": "Access level for the tag" } } }, "description": "Admin tag information" }, "networks": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Network ID" }, "access": { "type": "string", "description": "Admin's level of access to the network" } } }, "description": "Admin network access information" }, "authenticationMethod": { "type": "string", "enum": [ "Cisco SecureX Sign-On", "Email" ], "description": "Admin's authentication method" } } } }, "example": [ { "id": "212406", "name": "Miles Meraki", "email": "miles@meraki.com", "orgAccess": "none", "accountStatus": "ok", "twoFactorAuthEnabled": false, "hasApiKey": true, "lastActive": "2018-02-11T00:00:00Z", "tags": [ { "tag": "west", "access": "read-only" } ], "networks": [ { "id": "N_24329156", "access": "full" } ], "authenticationMethod": "Email" } ] } } } }, "security": [ { "oauth2": [ "dashboard:iam:config:read" ] } ], "summary": "List the dashboard administrators in this organization", "tags": [ "organizations", "configure", "admins" ] }, "post": { "description": "Create a new dashboard administrator", "operationId": "createOrganizationAdmin", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "email": { "type": "string", "description": "The email of the dashboard administrator. This attribute can not be updated." }, "name": { "type": "string", "description": "The name of the dashboard administrator" }, "orgAccess": { "type": "string", "enum": [ "enterprise", "full", "none", "read-only" ], "description": "The privilege of the dashboard administrator on the organization. Can be one of 'full', 'read-only', 'enterprise' or 'none'" }, "tags": { "type": "array", "items": { "type": "object", "properties": { "tag": { "type": "string", "description": "The name of the tag" }, "access": { "type": "string", "enum": [ "full", "guest-ambassador", "monitor-only", "read-only" ], "description": "The privilege of the dashboard administrator on the tag. Can be one of 'full', 'read-only', 'guest-ambassador' or 'monitor-only'" } }, "required": [ "tag", "access" ] }, "description": "The list of tags that the dashboard administrator has privileges on" }, "networks": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "The network ID" }, "access": { "type": "string", "description": "The privilege of the dashboard administrator on the network. Can be one of 'full', 'read-only', 'guest-ambassador' or 'monitor-only'" } }, "required": [ "id", "access" ] }, "description": "The list of networks that the dashboard administrator has privileges on" }, "authenticationMethod": { "type": "string", "enum": [ "Email" ], "description": "No longer used as of Cisco SecureX end-of-life. Can be one of 'Email'. The default is Email authentication." } }, "example": { "email": "miles@meraki.com", "name": "Miles Meraki", "orgAccess": "none", "tags": [ { "tag": "west", "access": "read-only" } ], "networks": [ { "id": "N_24329156", "access": "full" } ], "authenticationMethod": "Email" }, "required": [ "email", "name", "orgAccess" ] } } }, "required": true }, "responses": { "201": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Admin's ID" }, "name": { "type": "string", "description": "Admin's username" }, "email": { "type": "string", "description": "Admin's email address" }, "orgAccess": { "type": "string", "enum": [ "camera-sensor", "enterprise", "full", "none", "read-only" ], "description": "Admin's level of access to the organization" }, "accountStatus": { "type": "string", "enum": [ "locked", "ok", "pending", "unverified" ], "description": "Status of the admin's account" }, "twoFactorAuthEnabled": { "type": "boolean", "description": "Indicates whether two-factor authentication is enabled" }, "hasApiKey": { "type": "boolean", "description": "Indicates whether the admin has an API key" }, "lastActive": { "type": "string", "format": "date-time", "description": "Time when the admin was last active" }, "tags": { "type": "array", "items": { "type": "object", "properties": { "tag": { "type": "string", "description": "Tag value" }, "access": { "type": "string", "description": "Access level for the tag" } } }, "description": "Admin tag information" }, "networks": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Network ID" }, "access": { "type": "string", "description": "Admin's level of access to the network" } } }, "description": "Admin network access information" }, "authenticationMethod": { "type": "string", "enum": [ "Cisco SecureX Sign-On", "Email" ], "description": "Admin's authentication method" } } }, "example": { "id": "212406", "name": "Miles Meraki", "email": "miles@meraki.com", "orgAccess": "none", "accountStatus": "ok", "twoFactorAuthEnabled": false, "hasApiKey": true, "lastActive": "2018-02-11T00:00:00Z", "tags": [ { "tag": "west", "access": "read-only" } ], "networks": [ { "id": "N_24329156", "access": "full" } ], "authenticationMethod": "Email" } } } } }, "security": [ { "oauth2": [ "dashboard:iam:config:write" ] } ], "summary": "Create a new dashboard administrator", "tags": [ "organizations", "configure", "admins" ] } }, "/organizations/{organizationId}/admins/{adminId}": { "put": { "description": "Update an administrator", "operationId": "updateOrganizationAdmin", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "adminId", "in": "path", "description": "Admin ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the dashboard administrator" }, "orgAccess": { "type": "string", "enum": [ "enterprise", "full", "none", "read-only" ], "description": "The privilege of the dashboard administrator on the organization. Can be one of 'full', 'read-only', 'enterprise' or 'none'" }, "tags": { "type": "array", "items": { "type": "object", "properties": { "tag": { "type": "string", "description": "The name of the tag" }, "access": { "type": "string", "enum": [ "full", "guest-ambassador", "monitor-only", "read-only" ], "description": "The privilege of the dashboard administrator on the tag. Can be one of 'full', 'read-only', 'guest-ambassador' or 'monitor-only'" } }, "required": [ "tag", "access" ] }, "description": "The list of tags that the dashboard administrator has privileges on" }, "networks": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "The network ID" }, "access": { "type": "string", "description": "The privilege of the dashboard administrator on the network. Can be one of 'full', 'read-only', 'guest-ambassador' or 'monitor-only'" } }, "required": [ "id", "access" ] }, "description": "The list of networks that the dashboard administrator has privileges on" } }, "example": { "name": "Miles Meraki", "orgAccess": "none", "tags": [ { "tag": "west", "access": "read-only" } ], "networks": [ { "id": "N_24329156", "access": "full" } ] } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Admin's ID" }, "name": { "type": "string", "description": "Admin's username" }, "email": { "type": "string", "description": "Admin's email address" }, "orgAccess": { "type": "string", "enum": [ "camera-sensor", "enterprise", "full", "none", "read-only" ], "description": "Admin's level of access to the organization" }, "accountStatus": { "type": "string", "enum": [ "locked", "ok", "pending", "unverified" ], "description": "Status of the admin's account" }, "twoFactorAuthEnabled": { "type": "boolean", "description": "Indicates whether two-factor authentication is enabled" }, "hasApiKey": { "type": "boolean", "description": "Indicates whether the admin has an API key" }, "lastActive": { "type": "string", "format": "date-time", "description": "Time when the admin was last active" }, "tags": { "type": "array", "items": { "type": "object", "properties": { "tag": { "type": "string", "description": "Tag value" }, "access": { "type": "string", "description": "Access level for the tag" } } }, "description": "Admin tag information" }, "networks": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Network ID" }, "access": { "type": "string", "description": "Admin's level of access to the network" } } }, "description": "Admin network access information" }, "authenticationMethod": { "type": "string", "enum": [ "Cisco SecureX Sign-On", "Email" ], "description": "Admin's authentication method" } } }, "example": { "id": "212406", "name": "Miles Meraki", "email": "miles@meraki.com", "orgAccess": "none", "accountStatus": "ok", "twoFactorAuthEnabled": false, "hasApiKey": true, "lastActive": "2018-02-11T00:00:00Z", "tags": [ { "tag": "west", "access": "read-only" } ], "networks": [ { "id": "N_24329156", "access": "full" } ], "authenticationMethod": "Email" } } } } }, "security": [ { "oauth2": [ "dashboard:iam:config:write" ] } ], "summary": "Update an administrator", "tags": [ "organizations", "configure", "admins" ] }, "delete": { "description": "Revoke all access for a dashboard administrator within this organization", "operationId": "deleteOrganizationAdmin", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "adminId", "in": "path", "description": "Admin ID", "schema": { "type": "string" }, "required": true } ], "responses": { "204": { "description": "Successful operation" } }, "security": [ { "oauth2": [ "dashboard:iam:config:write" ] } ], "summary": "Revoke all access for a dashboard administrator within this organization", "tags": [ "organizations", "configure", "admins" ] } }, "/organizations/{organizationId}/alerts/profiles": { "get": { "description": "List all organization-wide alert configurations", "operationId": "getOrganizationAlertsProfiles", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "The alert config ID" }, "type": { "type": "string", "description": "The alert type" }, "enabled": { "type": "boolean", "description": "Is the alert config enabled" }, "alertCondition": { "type": "object", "properties": { "duration": { "type": "integer", "description": "The total duration in seconds that the threshold should be crossed before alerting" }, "window": { "type": "integer", "description": "The look back period in seconds for sensing the alert" }, "bit_rate_bps": { "type": "integer", "description": "The threshold the metric must cross to be valid for alerting. Used only for WAN Utilization alerts." }, "interface": { "type": "string", "description": "The uplink observed for the alert" } }, "description": "The conditions that determine if the alert triggers" }, "recipients": { "type": "object", "properties": { "emails": { "type": "array", "items": { "type": "string" }, "description": "A list of emails that will receive information about the alert" }, "httpServerIds": { "type": "array", "items": { "type": "string" }, "description": "A list base64 encoded urls of webhook endpoints that will receive information about the alert" } }, "description": "List of recipients that will recieve the alert." }, "networkTags": { "type": "array", "items": { "type": "string" }, "description": "Networks with these tags will be monitored for the alert" }, "description": { "type": "string", "description": "User supplied description of the alert" } } } }, "example": [ { "id": "1284392014819", "type": "wanUtilization", "enabled": true, "alertCondition": { "duration": 60, "window": 600, "bit_rate_bps": 10000, "interface": "wan1" }, "recipients": { "emails": [ "admin@example.org" ], "httpServerIds": [ "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vcGF0aA==" ] }, "networkTags": [ "tag1", "tag2" ], "description": "WAN 1 high utilization" } ] } } } }, "security": [ { "oauth2": [ "sdwan:telemetry:read" ] } ], "summary": "List all organization-wide alert configurations", "tags": [ "organizations", "configure", "alerts", "profiles" ] }, "post": { "description": "Create an organization-wide alert configuration", "operationId": "createOrganizationAlertsProfile", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "appOutage", "voipJitter", "voipMos", "voipPacketLoss", "wanLatency", "wanPacketLoss", "wanStatus", "wanUtilization" ], "description": "The alert type" }, "alertCondition": { "type": "object", "properties": { "duration": { "type": "integer", "description": "The total duration in seconds that the threshold should be crossed before alerting" }, "window": { "type": "integer", "description": "The look back period in seconds for sensing the alert" }, "bit_rate_bps": { "type": "integer", "description": "The threshold the metric must cross to be valid for alerting. Used only for WAN Utilization alerts." }, "loss_ratio": { "type": "number", "format": "float", "description": "The threshold the metric must cross to be valid for alerting. Used only for Packet Loss alerts." }, "latency_ms": { "type": "integer", "description": "The threshold the metric must cross to be valid for alerting. Used only for WAN Latency alerts." }, "jitter_ms": { "type": "integer", "description": "The threshold the metric must cross to be valid for alerting. Used only for VoIP Jitter alerts." }, "mos": { "type": "number", "format": "float", "description": "The threshold the metric must drop below to be valid for alerting. Used only for VoIP MOS alerts." }, "interface": { "type": "string", "enum": [ "cellular", "wan1", "wan2", "wan3", "wan4" ], "description": "The uplink observed for the alert. interface must be one of the following: wan1, wan2, wan3, cellular, wan4" } }, "description": "The conditions that determine if the alert triggers" }, "recipients": { "type": "object", "properties": { "emails": { "type": "array", "items": { "type": "string" }, "description": "A list of emails that will receive information about the alert" }, "httpServerIds": { "type": "array", "items": { "type": "string" }, "description": "A list base64 encoded urls of webhook endpoints that will receive information about the alert" } }, "description": "List of recipients that will recieve the alert." }, "networkTags": { "type": "array", "items": { "type": "string" }, "description": "Networks with these tags will be monitored for the alert" }, "description": { "type": "string", "description": "User supplied description of the alert" } }, "example": { "type": "wanUtilization", "alertCondition": { "duration": 60, "window": 600, "bit_rate_bps": 10000, "loss_ratio": 0.1, "latency_ms": 100, "jitter_ms": 100, "mos": 3.5, "interface": "wan1" }, "recipients": { "emails": [ "admin@example.org" ], "httpServerIds": [ "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vcGF0aA==" ] }, "networkTags": [ "tag1", "tag2" ], "description": "WAN 1 high utilization" }, "required": [ "type", "alertCondition", "recipients", "networkTags" ] } } }, "required": true }, "responses": { "201": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "The alert config ID" }, "type": { "type": "string", "description": "The alert type" }, "enabled": { "type": "boolean", "description": "Is the alert config enabled" }, "alertCondition": { "type": "object", "properties": { "duration": { "type": "integer", "description": "The total duration in seconds that the threshold should be crossed before alerting" }, "window": { "type": "integer", "description": "The look back period in seconds for sensing the alert" }, "bit_rate_bps": { "type": "integer", "description": "The threshold the metric must cross to be valid for alerting. Used only for WAN Utilization alerts." }, "interface": { "type": "string", "description": "The uplink observed for the alert" } }, "description": "The conditions that determine if the alert triggers" }, "recipients": { "type": "object", "properties": { "emails": { "type": "array", "items": { "type": "string" }, "description": "A list of emails that will receive information about the alert" }, "httpServerIds": { "type": "array", "items": { "type": "string" }, "description": "A list base64 encoded urls of webhook endpoints that will receive information about the alert" } }, "description": "List of recipients that will recieve the alert." }, "networkTags": { "type": "array", "items": { "type": "string" }, "description": "Networks with these tags will be monitored for the alert" }, "description": { "type": "string", "description": "User supplied description of the alert" } } }, "example": { "id": "1284392014819", "type": "wanUtilization", "enabled": true, "alertCondition": { "duration": 60, "window": 600, "bit_rate_bps": 10000, "interface": "wan1" }, "recipients": { "emails": [ "admin@example.org" ], "httpServerIds": [ "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vcGF0aA==" ] }, "networkTags": [ "tag1", "tag2" ], "description": "WAN 1 high utilization" } } } } }, "security": [ { "oauth2": [ "sdwan:telemetry:write" ] } ], "summary": "Create an organization-wide alert configuration", "tags": [ "organizations", "configure", "alerts", "profiles" ] } }, "/organizations/{organizationId}/alerts/profiles/{alertConfigId}": { "put": { "description": "Update an organization-wide alert config", "operationId": "updateOrganizationAlertsProfile", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "alertConfigId", "in": "path", "description": "Alert config ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Is the alert config enabled" }, "type": { "type": "string", "enum": [ "appOutage", "voipJitter", "voipMos", "voipPacketLoss", "wanLatency", "wanPacketLoss", "wanStatus", "wanUtilization" ], "description": "The alert type" }, "alertCondition": { "type": "object", "properties": { "duration": { "type": "integer", "description": "The total duration in seconds that the threshold should be crossed before alerting" }, "window": { "type": "integer", "description": "The look back period in seconds for sensing the alert" }, "bit_rate_bps": { "type": "integer", "description": "The threshold the metric must cross to be valid for alerting. Used only for WAN Utilization alerts." }, "loss_ratio": { "type": "number", "format": "float", "description": "The threshold the metric must cross to be valid for alerting. Used only for Packet Loss alerts." }, "latency_ms": { "type": "integer", "description": "The threshold the metric must cross to be valid for alerting. Used only for WAN Latency alerts." }, "jitter_ms": { "type": "integer", "description": "The threshold the metric must cross to be valid for alerting. Used only for VoIP Jitter alerts." }, "mos": { "type": "number", "format": "float", "description": "The threshold the metric must drop below to be valid for alerting. Used only for VoIP MOS alerts." }, "interface": { "type": "string", "enum": [ "cellular", "wan1", "wan2", "wan3", "wan4" ], "description": "The uplink observed for the alert. interface must be one of the following: wan1, wan2, wan3, cellular, wan4" } }, "description": "The conditions that determine if the alert triggers" }, "recipients": { "type": "object", "properties": { "emails": { "type": "array", "items": { "type": "string" }, "description": "A list of emails that will receive information about the alert" }, "httpServerIds": { "type": "array", "items": { "type": "string" }, "description": "A list base64 encoded urls of webhook endpoints that will receive information about the alert" } }, "description": "List of recipients that will recieve the alert." }, "networkTags": { "type": "array", "items": { "type": "string" }, "description": "Networks with these tags will be monitored for the alert" }, "description": { "type": "string", "description": "User supplied description of the alert" } }, "example": { "enabled": true, "type": "wanUtilization", "alertCondition": { "duration": 60, "window": 600, "bit_rate_bps": 10000, "loss_ratio": 0.1, "latency_ms": 100, "jitter_ms": 100, "mos": 3.5, "interface": "wan1" }, "recipients": { "emails": [ "admin@example.org" ], "httpServerIds": [ "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vcGF0aA==" ] }, "networkTags": [ "tag1", "tag2" ], "description": "WAN 1 high utilization" } } } }, "required": false }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "The alert config ID" }, "type": { "type": "string", "description": "The alert type" }, "enabled": { "type": "boolean", "description": "Is the alert config enabled" }, "alertCondition": { "type": "object", "properties": { "duration": { "type": "integer", "description": "The total duration in seconds that the threshold should be crossed before alerting" }, "window": { "type": "integer", "description": "The look back period in seconds for sensing the alert" }, "bit_rate_bps": { "type": "integer", "description": "The threshold the metric must cross to be valid for alerting. Used only for WAN Utilization alerts." }, "interface": { "type": "string", "description": "The uplink observed for the alert" } }, "description": "The conditions that determine if the alert triggers" }, "recipients": { "type": "object", "properties": { "emails": { "type": "array", "items": { "type": "string" }, "description": "A list of emails that will receive information about the alert" }, "httpServerIds": { "type": "array", "items": { "type": "string" }, "description": "A list base64 encoded urls of webhook endpoints that will receive information about the alert" } }, "description": "List of recipients that will recieve the alert." }, "networkTags": { "type": "array", "items": { "type": "string" }, "description": "Networks with these tags will be monitored for the alert" }, "description": { "type": "string", "description": "User supplied description of the alert" } } }, "example": { "id": "1284392014819", "type": "wanUtilization", "enabled": true, "alertCondition": { "duration": 60, "window": 600, "bit_rate_bps": 10000, "interface": "wan1" }, "recipients": { "emails": [ "admin@example.org" ], "httpServerIds": [ "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vcGF0aA==" ] }, "networkTags": [ "tag1", "tag2" ], "description": "WAN 1 high utilization" } } } } }, "security": [ { "oauth2": [ "sdwan:telemetry:write" ] } ], "summary": "Update an organization-wide alert config", "tags": [ "organizations", "configure", "alerts", "profiles" ] }, "delete": { "description": "Removes an organization-wide alert config", "operationId": "deleteOrganizationAlertsProfile", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "alertConfigId", "in": "path", "description": "Alert config ID", "schema": { "type": "string" }, "required": true } ], "responses": { "204": { "description": "Successful operation" } }, "security": [ { "oauth2": [ "sdwan:telemetry:write" ] } ], "summary": "Removes an organization-wide alert config", "tags": [ "organizations", "configure", "alerts", "profiles" ] } }, "/organizations/{organizationId}/api/rest/provisioning/pipelines/jobs": { "get": { "description": "List pipeline jobs, with optional status filtering", "operationId": "getOrganizationApiRestProvisioningPipelinesJobs", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "perPage", "in": "query", "description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 10.", "schema": { "type": "integer" } }, { "name": "startingAfter", "in": "query", "description": "A token used by the server to indicate the start of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.", "schema": { "type": "string" } }, { "name": "endingBefore", "in": "query", "description": "A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.", "schema": { "type": "string" } }, { "name": "pipelineIds", "in": "query", "description": "Pipeline IDs to retrieve jobs for", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "status", "in": "query", "description": "If provided, filters jobs by status", "schema": { "type": "string", "enum": [ "complete", "deferred", "failed", "new", "ready", "running", "scheduled" ] } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "pipeline": { "type": "object", "properties": { "id": { "type": "string", "description": "Pipeline ID" } }, "description": "Parent pipeline" }, "jobId": { "type": "string", "description": "Job ID" }, "operation": { "type": "object", "properties": { "name": { "type": "string", "description": "Operation name" } }, "description": "Operation info" }, "status": { "type": "string", "enum": [ "complete", "deferred", "failed", "new", "ready", "running", "scheduled" ], "description": "Job status" }, "errors": { "type": "array", "items": { "type": "object", "properties": { "message": { "type": "string", "description": "Error message" } } }, "description": "Job errors" }, "details": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Detail name" }, "value": { "type": "string", "description": "Detail value" } } }, "description": "Job details (type-specific)" } } }, "description": "Pipeline job with operation details and status" }, "meta": { "type": "object", "properties": { "counts": { "type": "object", "properties": { "items": { "type": "object", "properties": { "total": { "type": "integer", "description": "The total number of available objects" }, "remaining": { "type": "integer", "description": "The number of objects that are available on subsequent pages" } }, "description": "Counts relating to the paginated items" } }, "description": "Counts relating to the paginated dataset" } }, "description": "Metadata relevant to the paginated dataset" } } }, "example": { "items": [ { "pipeline": { "id": "1234" }, "jobId": "456", "operation": { "name": "enroll wired site" }, "status": "complete", "errors": [ { "message": "Failed to enroll site" } ], "details": [ { "name": "networkId", "value": "N_123" } ] } ], "meta": { "counts": { "items": { "total": 100, "remaining": 10 } } } } } }, "headers": { "Link": { "schema": { "type": "string" }, "description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests." } } } }, "summary": "List pipeline jobs, with optional status filtering", "tags": [ "organizations", "configure", "api", "rest", "provisioning", "pipelines", "jobs" ] } }, "/organizations/{organizationId}/api/rest/provisioning/pipelines/jobs/overviews/byPipeline": { "get": { "description": "Retrieves pipeline overviews with aggregated job status counts", "operationId": "getOrganizationApiRestProvisioningPipelinesJobsOverviewsByPipeline", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "pipelineIds", "in": "query", "description": "Pipeline IDs to retrieve overviews for", "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "pipelineId": { "type": "string", "description": "Pipeline ID" }, "operation": { "type": "object", "properties": { "id": { "type": "string", "description": "Pipeline operation identifier" } }, "description": "Pipeline operation info" }, "status": { "type": "string", "description": "Pipeline status" }, "counts": { "type": "object", "properties": { "jobs": { "type": "object", "properties": { "total": { "type": "integer", "minimum": 0, "description": "Total jobs" }, "byStatus": { "type": "object", "properties": { "completed": { "type": "integer", "minimum": 0, "description": "Completed jobs" }, "failed": { "type": "integer", "minimum": 0, "description": "Failed jobs" }, "pending": { "type": "integer", "minimum": 0, "description": "Pending jobs" } }, "description": "Counts by summary status. `completed` includes jobs with raw status `complete`, `failed` includes jobs with raw status `failed`, and `pending` includes every other job status." } }, "description": "Job count breakdown" }, "byJobOperation": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "enum": [ "attach spoke to connectors", "bulk detachment workflow", "bulk enrollment workflow", "complete bulk detachment", "complete bulk enrollment", "complete connector deployment", "complete connector teardown", "complete hub offboarding", "complete hub onboarding", "complete multi cloud onboarding", "deploy CNHE SSE connector", "deploy multi cloud region", "detach spoke from connectors", "detach wired site", "enroll wired site", "offboard multi cloud sites workflow", "onboard multi cloud sites workflow", "teardown CNHE SSE connector", "teardown multi cloud connector" ], "description": "Pipeline job operation display name. Values are registered operation names and may grow additively." }, "total": { "type": "integer", "minimum": 0, "description": "Total jobs for this operation" }, "byStatus": { "type": "object", "properties": { "completed": { "type": "integer", "minimum": 0, "description": "Completed jobs" }, "failed": { "type": "integer", "minimum": 0, "description": "Failed jobs" }, "pending": { "type": "integer", "minimum": 0, "description": "Pending jobs" } }, "description": "Counts by summary status. `completed` includes jobs with raw status `complete`, `failed` includes jobs with raw status `failed`, and `pending` includes every other job status." } } }, "description": "Job count breakdown by pipeline job operation. Contains at most one entry per pipeline job operation with matching jobs. New registered operations may add entries over time." } }, "description": "Job counts" } } }, "description": "Pipeline summary with aggregated job and operation status counts" }, "meta": { "type": "object", "properties": { "counts": { "type": "object", "properties": { "items": { "type": "object", "properties": { "total": { "type": "integer", "description": "The total number of available objects" }, "remaining": { "type": "integer", "description": "The number of objects that are available on subsequent pages" } }, "description": "Counts relating to the paginated items" } }, "description": "Counts relating to the paginated dataset" } }, "description": "Metadata relevant to the paginated dataset" } } }, "example": { "items": [ { "pipelineId": "1234", "operation": { "id": "attachOrganizationSaseSites" }, "status": "active", "counts": { "jobs": { "total": 3, "byStatus": { "completed": 1, "failed": 1, "pending": 1 } }, "byJobOperation": [ { "name": "enroll wired site", "total": 2, "byStatus": { "completed": 1, "failed": 0, "pending": 1 } } ] } } ], "meta": { "counts": { "items": { "total": 100, "remaining": 10 } } } } } } } }, "summary": "Retrieves pipeline overviews with aggregated job status counts", "tags": [ "organizations", "configure", "api", "rest", "provisioning", "pipelines", "jobs", "overviews", "byPipeline" ] } }, "/organizations/{organizationId}/apiRequests": { "get": { "description": "List the API requests made by an organization", "operationId": "getOrganizationApiRequests", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "t0", "in": "query", "description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today.", "schema": { "type": "string" } }, { "name": "t1", "in": "query", "description": "The end of the timespan for the data. t1 can be a maximum of 31 days after t0.", "schema": { "type": "string" } }, { "name": "timespan", "in": "query", "description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 31 days.", "schema": { "type": "number", "format": "float", "maximum": 2678400 } }, { "name": "perPage", "in": "query", "description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 50.", "schema": { "type": "integer" } }, { "name": "startingAfter", "in": "query", "description": "A token used by the server to indicate the start of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.", "schema": { "type": "string" } }, { "name": "endingBefore", "in": "query", "description": "A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.", "schema": { "type": "string" } }, { "name": "adminId", "in": "query", "description": "Filter the results by the ID of the admin who made the API requests", "schema": { "type": "string" } }, { "name": "path", "in": "query", "description": "Filter the results by the path of the API requests", "schema": { "type": "string" } }, { "name": "method", "in": "query", "description": "Filter the results by the method of the API requests (must be 'GET', 'PUT', 'POST' or 'DELETE')", "schema": { "type": "string", "enum": [ "DELETE", "GET", "POST", "PUT" ] } }, { "name": "responseCode", "in": "query", "description": "Filter the results by the response code of the API requests", "schema": { "type": "integer" } }, { "name": "sourceIp", "in": "query", "description": "Filter the results by the IP address of the originating API request", "schema": { "type": "string" } }, { "name": "userAgent", "in": "query", "description": "Filter the results by the user agent string of the API request", "schema": { "type": "string" } }, { "name": "version", "in": "query", "description": "Filter the results by the API version of the API request", "schema": { "type": "integer", "enum": [ 0, 1 ] } }, { "name": "operationIds", "in": "query", "description": "Filter the results by one or more operation IDs for the API request", "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "adminId": { "type": "string", "description": "Database ID for the admin user who made the API request." }, "method": { "type": "string", "description": "HTTP method used in the API request." }, "host": { "type": "string", "description": "The host which the API request was directed at." }, "path": { "type": "string", "description": "The API request path." }, "queryString": { "type": "string", "description": "The query string sent with the API request." }, "userAgent": { "type": "string", "description": "The API request user agent." }, "ts": { "type": "string", "format": "date-time", "description": "Timestamp, in iso8601 format, indicating when the API request was made." }, "responseCode": { "type": "integer", "description": "API request response code." }, "sourceIp": { "type": "string", "description": "Public IP address from which the API request was made." }, "version": { "type": "integer", "enum": [ 0, 1 ], "description": "API version of the endpoint." }, "operationId": { "type": "string", "description": "Operation ID for the endpoint." }, "client": { "type": "object", "properties": { "id": { "type": "string", "description": "ID for the client which made the request, if applicable.", "nullable": true }, "type": { "type": "string", "enum": [ "api_key", "oauth" ], "description": "Type of client which made the request, if applicable. Available options are: oauth, api_key" } }, "description": "Client information" } } } }, "example": [ { "adminId": "212406", "method": "GET", "host": "server.example.com", "path": "/api/v1/organizations/12345/apiRequests", "queryString": "timespan=604800", "userAgent": "PostmanRuntime/7.6.0", "ts": "2018-02-11T00:00:00.090210Z", "responseCode": 200, "sourceIp": "123.123.123.1", "version": 1, "operationId": "getOrganizationApiRequests", "client": { "id": "0hoXjtjX6C-Nk4Nr6kEbCJJFRmIgycaG1HBE572hlIc", "type": "oauth" } } ] } }, "headers": { "Link": { "schema": { "type": "string" }, "description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests." } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "List the API requests made by an organization", "tags": [ "organizations", "monitor", "apiRequests" ] } }, "/organizations/{organizationId}/apiRequests/overview": { "get": { "description": "Return an aggregated overview of API requests data", "operationId": "getOrganizationApiRequestsOverview", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "t0", "in": "query", "description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today.", "schema": { "type": "string" } }, { "name": "t1", "in": "query", "description": "The end of the timespan for the data. t1 can be a maximum of 31 days after t0.", "schema": { "type": "string" } }, { "name": "timespan", "in": "query", "description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 31 days.", "schema": { "type": "number", "format": "float", "maximum": 2678400 } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "responseCodeCounts": { "type": "object", "properties": { "200": { "type": "integer", "description": "HTTP 200 response code count." }, "201": { "type": "integer", "description": "HTTP 201 response code count." }, "202": { "type": "integer", "description": "HTTP 202 response code count." }, "203": { "type": "integer", "description": "HTTP 203 response code count." }, "204": { "type": "integer", "description": "HTTP 204 response code count." }, "205": { "type": "integer", "description": "HTTP 205 response code count." }, "206": { "type": "integer", "description": "HTTP 206 response code count." }, "207": { "type": "integer", "description": "HTTP 207 response code count." }, "208": { "type": "integer", "description": "HTTP 208 response code count." }, "226": { "type": "integer", "description": "HTTP 226 response code count." }, "300": { "type": "integer", "description": "HTTP 300 response code count." }, "301": { "type": "integer", "description": "HTTP 301 response code count." }, "302": { "type": "integer", "description": "HTTP 302 response code count." }, "303": { "type": "integer", "description": "HTTP 303 response code count." }, "304": { "type": "integer", "description": "HTTP 304 response code count." }, "305": { "type": "integer", "description": "HTTP 305 response code count." }, "306": { "type": "integer", "description": "HTTP 306 response code count." }, "307": { "type": "integer", "description": "HTTP 307 response code count." }, "308": { "type": "integer", "description": "HTTP 308 response code count." }, "400": { "type": "integer", "description": "HTTP 400 response code count." }, "401": { "type": "integer", "description": "HTTP 401 response code count." }, "402": { "type": "integer", "description": "HTTP 402 response code count." }, "403": { "type": "integer", "description": "HTTP 403 response code count." }, "404": { "type": "integer", "description": "HTTP 404 response code count." }, "405": { "type": "integer", "description": "HTTP 405 response code count." }, "406": { "type": "integer", "description": "HTTP 406 response code count." }, "407": { "type": "integer", "description": "HTTP 407 response code count." }, "408": { "type": "integer", "description": "HTTP 408 response code count." }, "409": { "type": "integer", "description": "HTTP 409 response code count." }, "410": { "type": "integer", "description": "HTTP 410 response code count." }, "411": { "type": "integer", "description": "HTTP 411 response code count." }, "412": { "type": "integer", "description": "HTTP 412 response code count." }, "413": { "type": "integer", "description": "HTTP 413 response code count." }, "414": { "type": "integer", "description": "HTTP 414 response code count." }, "415": { "type": "integer", "description": "HTTP 415 response code count." }, "416": { "type": "integer", "description": "HTTP 416 response code count." }, "417": { "type": "integer", "description": "HTTP 417 response code count." }, "421": { "type": "integer", "description": "HTTP 421 response code count." }, "422": { "type": "integer", "description": "HTTP 422 response code count." }, "423": { "type": "integer", "description": "HTTP 423 response code count." }, "424": { "type": "integer", "description": "HTTP 424 response code count." }, "425": { "type": "integer", "description": "HTTP 425 response code count." }, "426": { "type": "integer", "description": "HTTP 426 response code count." }, "428": { "type": "integer", "description": "HTTP 428 response code count." }, "429": { "type": "integer", "description": "HTTP 429 response code count." }, "431": { "type": "integer", "description": "HTTP 431 response code count." }, "451": { "type": "integer", "description": "HTTP 451 response code count." }, "500": { "type": "integer", "description": "HTTP 500 response code count." } }, "description": "object of all supported HTTP response code" } } }, "example": { "responseCodeCounts": { "200": 500, "201": 100, "202": 20, "203": 50, "204": 75, "205": 0, "206": 0, "207": 0, "208": 0, "226": 0, "300": 0, "301": 60, "302": 0, "303": 0, "304": 0, "305": 0, "306": 0, "307": 0, "308": 0, "400": 20, "401": 0, "402": 32, "403": 0, "404": 55, "405": 0, "406": 0, "407": 0, "408": 0, "409": 0, "410": 0, "411": 0, "412": 0, "413": 0, "414": 0, "415": 0, "416": 0, "417": 0, "421": 0, "422": 0, "423": 0, "424": 0, "425": 0, "426": 0, "428": 0, "429": 0, "431": 0, "451": 0, "500": 3 } } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "Return an aggregated overview of API requests data", "tags": [ "organizations", "monitor", "apiRequests", "overview" ] } }, "/organizations/{organizationId}/apiRequests/overview/responseCodes/byInterval": { "get": { "description": "Tracks organizations' API requests by response code across a given time period", "operationId": "getOrganizationApiRequestsOverviewResponseCodesByInterval", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "t0", "in": "query", "description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today.", "schema": { "type": "string" } }, { "name": "t1", "in": "query", "description": "The end of the timespan for the data. t1 can be a maximum of 31 days after t0.", "schema": { "type": "string" } }, { "name": "timespan", "in": "query", "description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 31 days. If interval is provided, the timespan will be autocalculated.", "schema": { "type": "number", "format": "float", "maximum": 2678400 } }, { "name": "interval", "in": "query", "description": "The time interval in seconds for returned data. The valid intervals are: 120, 3600, 14400, 21600. The default is 21600. Interval is calculated if time params are provided.", "schema": { "type": "integer" } }, { "name": "version", "in": "query", "description": "Filter by API version of the endpoint. Allowable values are: [0, 1]", "schema": { "type": "integer", "enum": [ 0, 1 ] } }, { "name": "operationIds", "in": "query", "description": "Filter by operation ID of the endpoint", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "sourceIps", "in": "query", "description": "Filter by source IP that made the API request", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "adminIds", "in": "query", "description": "Filter by admin ID of user that made the API request", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "userAgent", "in": "query", "description": "Filter by user agent string for API request. This will filter by a complete or partial match.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "startTs": { "type": "string", "format": "date-time", "description": "The start time of the access period" }, "endTs": { "type": "string", "format": "date-time", "description": "The end time of the access period" }, "counts": { "type": "array", "items": { "type": "object", "properties": { "code": { "type": "integer", "description": "Response status code of the API response" }, "count": { "type": "integer", "description": "Number of records that match the status code" } } }, "description": "list of response codes and a count of how many requests had that code in the given time period" } } } }, "example": [ { "startTs": "2018-02-11T00:00:00Z", "endTs": "2018-05-12T00:00:00Z", "counts": [ { "code": 200, "count": 198938 } ] } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "Tracks organizations' API requests by response code across a given time period", "tags": [ "organizations", "monitor", "apiRequests", "overview", "responseCodes", "byInterval" ] } }, "/organizations/{organizationId}/assurance/alerts": { "get": { "description": "Return all health alerts for an organization", "operationId": "getOrganizationAssuranceAlerts", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "perPage", "in": "query", "description": "The number of entries per page returned. Acceptable range is 4 - 300. Default is 30.", "schema": { "type": "integer" } }, { "name": "startingAfter", "in": "query", "description": "A token used by the server to indicate the start of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.", "schema": { "type": "string" } }, { "name": "endingBefore", "in": "query", "description": "A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.", "schema": { "type": "string" } }, { "name": "sortOrder", "in": "query", "description": "Sorted order of entries. Order options are 'ascending' and 'descending'. Default is 'ascending'.", "schema": { "type": "string", "enum": [ "ascending", "descending" ] } }, { "name": "networkId", "in": "query", "description": "Optional parameter to filter alerts by network ids.", "schema": { "type": "string" } }, { "name": "severity", "in": "query", "description": "Optional parameter to filter by severity type.", "schema": { "type": "string" } }, { "name": "types", "in": "query", "description": "Optional parameter to filter by alert type.", "schema": { "type": "array", "items": { "type": "string", "enum": [ "aaa_not_enabled", "acl_ipv4_conflict", "afc_height_empty", "afc_status_bad", "ap_became_repeater", "ap_noauth", "ap_tunnel_down", "arp_failure", "asymmetry", "aurora1_subnet_overlap", "aurora2_consilience", "auto_vpn_failure", "auto_vpn_uplink_decision", "bad_connectivity", "bad_gateway", "bad_ip6conf", "bad_ipconf", "bad_vlanconf", "ccd", "cellular_data_cap", "cellular_failover", "cellular_failover_bandwidth", "cellular_up_down", "certificate_enrollment", "certificate_expiration", "certificate_renewal", "client_wayfinding_clustering_warning", "client_wayfinding_missing_config", "cloud_archive_alert", "collisions_errors", "config_bad_fetch", "config_error", "config_stale", "configuration_change", "console_error_authorization", "console_error_timeout", "country_mismatch", "crc_errors", "dashboard_config_generation_failure", "detected_country_mismatch", "device_access_issue", "device_config_failure", "device_no_space", "device_ping_status", "dfs_event_pattern", "dhcp_no_leases", "disassociation", "dns_down", "dom_stats_alert", "door_tamper", "eapol_test_failed", "ethernet_negotiation_failure", "eu_regulatory_firmware_mismatch", "fan_down", "faulty_cable", "firewall", "firmware_version", "frags_errors", "high_cpu_mx", "high_interference", "high_memory_mx", "high_temperature_mx", "http_acl_ipv6_conflict", "https_secure_port_conflict", "https_secure_trustpoint_missing", "https_session_modules_conflict", "image_sensor_failure", "insecure_sm_networks_disabled_enrollment_auth_alert", "insight_web_app", "invalid_config", "iot_orchestrator_grpc_down", "ip_conflict", "isp_issue_local_branch", "jabbers_errors", "known_hardware_problem", "l3_dynamic_routes_overflow", "l3_hosts_overflow", "line_vty_conflict", "line_vty_error", "low_power", "mac_flap_alert", "manual_config_fix_required", "manual_country_mismatch", "mars_read_only_ap_unreachable", "mcg_dr_allowed_vlans_mismatch", "meraki_shelluser_conflict", "meraki_tdluser_conflict", "meraki_user_conflict", "mg_safe_mode", "mgmt_uplink_vlan_mismatch", "missing_config_options", "missized_errors", "mmc_issue", "modular_supervisor_node_group_mismatch", "monitoring_stack_error", "monitoring_tls_tunnel_connected", "monitoring_unsupported_version", "mps_down", "netconf_abnormal", "netconf_acl_ipv6_conflict", "netconf_error_authentication", "netconf_error_timeout", "no_dna_license", "no_enough_vty_num", "no_telemetry", "node_check", "not_supported_compression_algorithm", "not_supported_hostkey_algorithm", "not_supported_kex_algorithm", "not_supported_mac_algorithm", "not_supported_publickey_algorithm", "not_supported_ssh_algorithm", "ntp_issue", "odd_upstream_gateway", "openroaming_firmware_incompatible", "pcc_apns_check_cert", "pcc_apns_expired", "pcc_apns_expires_soon", "pcc_duplicate_device_identifier", "pcc_duplicate_imei", "pcc_empty_device_identifier", "pcc_empty_imei", "pcc_self_signed_scep_expired", "pcc_self_signed_scep_expires_soon", "pending_config_approval", "poe_denied", "poe_overload", "poe_power_error", "port_channel_mixed_speed_ports", "primary_uplink_status", "probe_cable_unknown", "push_api_device_availability", "radar_detection", "reboot_count", "reboot_count_no_xmit_mon", "reboot_count_panic", "reg_dom_mismatch", "rogue_dhcp", "rps_backup", "rps_down", "secure_connect_auth_failure", "secure_connect_auth_in_progress", "secure_connect_auth_timeout", "snmp_community_string_too_long", "speed_downshift", "ssh_error_authentication", "ssh_error_authorization", "ssh_error_timeout", "ssh_port_rotary_conflict", "ssid_radius_server", "stack_cable_auth_failure", "stack_misconfigured", "stack_not_configured", "stack_version_mismatch", "start_monitoring_provisioning", "sticky_client", "stp_bpdu_conflict", "stp_bpdu_delay", "stp_bpduguard_active", "stp_loopguard_active", "stp_root_status_changed", "stp_rootguard_active", "stp_tcn_errors", "successful_connect_degraded", "switch_not_setup_as_stack", "switch_required_vlans_missing", "switch_reserved_vlans", "switchport_allowed_vlans_missing", "telemetry_collector_cert_expiration", "telemetry_streaming_failure", "temperature_cable_disconnect", "thousand_eyes_application_alert", "time_to_connect_degraded", "traffic_shaping_rule_saturation", "udld_err_n_mismatch", "udld_err_tx_rx_loop", "udld_err_unidir", "unknown_config_options", "unreachable", "unseen", "uplink_saturation", "using_mtun_http", "vlan_disconnect", "vlan_mismatch", "vlan_prefix_starvation", "vmx_incompatible_firmware", "voip_jitter", "voip_mos", "voip_packet_loss", "vpn_backhaul", "vpn_outage", "vrrp_failover", "vwlc_unclaimed_standby", "wan_latency", "wan_packet_loss", "wan_status", "wan_usage", "water_cable_disconnect", "water_usb_connect", "wireless_capacity_degraded", "wireless_coverage_degraded", "wlc_add_standby", "wlc_ap_guardrail", "wlc_ap_limit", "wlc_ap_onboard", "wlc_ha_active_recovery", "wlc_ha_fail_over_past_day", "wlc_ha_standby_offline", "wlc_ha_standby_recovery", "wlc_interface_errors", "wlc_unassigned_ap", "wpa3_warning", "wrong_console_credentials", "yang_authz_conflict", "yang_process_abnormal", "z_canary_alert", "z_canary_priority_alert" ] } } }, { "name": "tsStart", "in": "query", "description": "Optional parameter to filter by starting timestamp", "schema": { "type": "string", "format": "date-time" } }, { "name": "tsEnd", "in": "query", "description": "Optional parameter to filter by end timestamp", "schema": { "type": "string", "format": "date-time" } }, { "name": "category", "in": "query", "description": "Optional parameter to filter by category.", "schema": { "type": "string", "enum": [ "configuration", "connectivity", "device_health", "experience_metrics", "insights" ] } }, { "name": "sortBy", "in": "query", "description": "Optional parameter to set column to sort by.", "schema": { "type": "string", "enum": [ "category", "dismissedAt", "resolvedAt", "severity", "startedAt" ] } }, { "name": "serials", "in": "query", "description": "Optional parameter to filter by primary device serial", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "deviceTypes", "in": "query", "description": "Optional parameter to filter by device types", "schema": { "type": "array", "items": { "type": "string", "enum": [ "Campus Gateway", "Catalyst AP", "Catalyst Controller", "Catalyst Switch", "MCG", "MG", "MR", "MS", "MT", "MV", "MX", "VMX", "WLC", "Z" ] } } }, { "name": "deviceTags", "in": "query", "description": "Optional parameter to filter by device tags", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "active", "in": "query", "description": "Optional parameter to filter by active alerts defaults to true", "schema": { "type": "boolean" } }, { "name": "dismissed", "in": "query", "description": "Optional parameter to filter by dismissed alerts defaults to false", "schema": { "type": "boolean" } }, { "name": "resolved", "in": "query", "description": "Optional parameter to filter by resolved alerts defaults to false", "schema": { "type": "boolean" } }, { "name": "suppressAlertsForOfflineNodes", "in": "query", "description": "When set to true the api will only return connectivity alerts for a given device if that device is in an offline state. This only applies to devices. This is ignored when resolved is true. Example: If a Switch has a VLan Mismatch and is Unreachable. only the Unreachable alert will be returned. Defaults to false.", "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the health alert" }, "categoryType": { "type": "string", "description": "Category type that the health alert belongs to" }, "network": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the network where alert appears" }, "id": { "type": "string", "description": "ID of the network where alert appears" }, "url": { "type": "string", "description": "Authoritative Dashboard URL for the network" } }, "required": [ "name", "id", "url" ], "description": "Network details" }, "startedAt": { "type": "string", "format": "date-time", "description": "Time when the alert started" }, "resolvedAt": { "type": "string", "format": "date-time", "description": "Time when the alert was resolved", "nullable": true }, "dismissedAt": { "type": "string", "format": "date-time", "description": "Time when the alert was dismissed", "nullable": true }, "deviceType": { "type": "string", "description": "Device Type that the alert occurred on", "nullable": true }, "type": { "type": "string", "description": "Alert Type" }, "title": { "type": "string", "description": "Human Readable Title for Alert type" }, "description": { "type": "string", "description": "Description of the alert", "nullable": true }, "severity": { "type": "string", "description": "Alert severity" }, "scope": { "type": "object", "properties": { "devices": { "type": "array", "items": { "type": "object", "properties": { "url": { "type": "string", "description": "URL of affected device" }, "name": { "type": "string", "description": "Name of affected device" }, "order": { "type": "integer", "description": "Order of affected device in array" }, "productType": { "type": "string", "description": "Type of affected device" }, "serial": { "type": "string", "description": "Serial of affected device" }, "mac": { "type": "string", "description": "MAC address of affected device" }, "imei": { "type": "string", "description": "IMEI of affected device" }, "lldp": { "type": "object", "properties": { "port": { "type": "string", "description": "Port of affect device" } }, "description": "Port of affected device" } } }, "description": "Description of affected devices" }, "applications": { "type": "array", "items": { "type": "object" }, "description": "Applications affected by the alert" }, "peers": { "type": "array", "items": { "type": "object" }, "description": "Peers affected by the alert" }, "others": { "type": "array", "items": { "type": "object" }, "description": "Other affected items by the alert" } }, "description": "Scope of the alert (which devices and networks are affected)" } }, "required": [ "id", "categoryType", "network", "startedAt", "type", "title", "severity" ] } }, "example": [ { "id": "1234", "categoryType": "connectivity", "network": { "name": "Network 2", "id": "L_1020981", "url": "https://n1.meraki.com//n//manage/nodes/list" }, "startedAt": "2022-04-01T15:48:57Z", "resolvedAt": "2022-04-02T15:48:57Z", "dismissedAt": "2022-04-02T15:48:57Z", "deviceType": "MS", "type": "crc_errors_error", "title": "CRC errors detected", "description": "Very high proportion of CRC errors on port id", "severity": "warning", "scope": { "devices": [ { "url": "https://n237.meraki.com/MS-PM-First-Floo/n/_5kUKaTd/manage/nodes/new_list/7911238", "name": "Device 1", "order": 0, "productType": "switch", "serial": "Q2QP-5VYM-YM8H", "mac": "aa:bb:cd:dd", "imei": "353593090031649", "lldp": { "port": "33" } } ] } } ] } }, "headers": { "Link": { "schema": { "type": "string" }, "description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests." } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "Return all health alerts for an organization", "tags": [ "organizations", "monitor", "alerts" ] } }, "/organizations/{organizationId}/assurance/alerts/dismiss": { "post": { "description": "Dismiss health alerts", "operationId": "dismissOrganizationAssuranceAlerts", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "alertIds": { "type": "array", "items": { "type": "string" }, "description": "Array of alert IDs in this organization to dismiss. Missing or inaccessible alert IDs return 404." } }, "example": { "alertIds": [ "1234", "4567" ] }, "required": [ "alertIds" ] } } }, "required": true }, "responses": { "204": { "description": "Successful operation" } }, "summary": "Dismiss health alerts", "tags": [ "organizations", "monitor", "alerts" ] } }, "/organizations/{organizationId}/assurance/alerts/overview": { "get": { "description": "Return overview of active health alerts for an organization", "operationId": "getOrganizationAssuranceAlertsOverview", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "networkId", "in": "query", "description": "Optional parameter to filter alerts overview by network ids.", "schema": { "type": "string" } }, { "name": "severity", "in": "query", "description": "Optional parameter to filter alerts overview by severity type.", "schema": { "type": "string" } }, { "name": "types", "in": "query", "description": "Optional parameter to filter by alert type.", "schema": { "type": "array", "items": { "type": "string", "enum": [ "aaa_not_enabled", "acl_ipv4_conflict", "afc_height_empty", "afc_status_bad", "ap_became_repeater", "ap_noauth", "ap_tunnel_down", "arp_failure", "asymmetry", "aurora1_subnet_overlap", "aurora2_consilience", "auto_vpn_failure", "auto_vpn_uplink_decision", "bad_connectivity", "bad_gateway", "bad_ip6conf", "bad_ipconf", "bad_vlanconf", "ccd", "cellular_data_cap", "cellular_failover", "cellular_failover_bandwidth", "cellular_up_down", "certificate_enrollment", "certificate_expiration", "certificate_renewal", "client_wayfinding_clustering_warning", "client_wayfinding_missing_config", "cloud_archive_alert", "collisions_errors", "config_bad_fetch", "config_error", "config_stale", "configuration_change", "console_error_authorization", "console_error_timeout", "country_mismatch", "crc_errors", "dashboard_config_generation_failure", "detected_country_mismatch", "device_access_issue", "device_config_failure", "device_no_space", "device_ping_status", "dfs_event_pattern", "dhcp_no_leases", "disassociation", "dns_down", "dom_stats_alert", "door_tamper", "eapol_test_failed", "ethernet_negotiation_failure", "eu_regulatory_firmware_mismatch", "fan_down", "faulty_cable", "firewall", "firmware_version", "frags_errors", "high_cpu_mx", "high_interference", "high_memory_mx", "high_temperature_mx", "http_acl_ipv6_conflict", "https_secure_port_conflict", "https_secure_trustpoint_missing", "https_session_modules_conflict", "image_sensor_failure", "insecure_sm_networks_disabled_enrollment_auth_alert", "insight_web_app", "invalid_config", "iot_orchestrator_grpc_down", "ip_conflict", "isp_issue_local_branch", "jabbers_errors", "known_hardware_problem", "l3_dynamic_routes_overflow", "l3_hosts_overflow", "line_vty_conflict", "line_vty_error", "low_power", "mac_flap_alert", "manual_config_fix_required", "manual_country_mismatch", "mars_read_only_ap_unreachable", "mcg_dr_allowed_vlans_mismatch", "meraki_shelluser_conflict", "meraki_tdluser_conflict", "meraki_user_conflict", "mg_safe_mode", "mgmt_uplink_vlan_mismatch", "missing_config_options", "missized_errors", "mmc_issue", "modular_supervisor_node_group_mismatch", "monitoring_stack_error", "monitoring_tls_tunnel_connected", "monitoring_unsupported_version", "mps_down", "netconf_abnormal", "netconf_acl_ipv6_conflict", "netconf_error_authentication", "netconf_error_timeout", "no_dna_license", "no_enough_vty_num", "no_telemetry", "node_check", "not_supported_compression_algorithm", "not_supported_hostkey_algorithm", "not_supported_kex_algorithm", "not_supported_mac_algorithm", "not_supported_publickey_algorithm", "not_supported_ssh_algorithm", "ntp_issue", "odd_upstream_gateway", "openroaming_firmware_incompatible", "pcc_apns_check_cert", "pcc_apns_expired", "pcc_apns_expires_soon", "pcc_duplicate_device_identifier", "pcc_duplicate_imei", "pcc_empty_device_identifier", "pcc_empty_imei", "pcc_self_signed_scep_expired", "pcc_self_signed_scep_expires_soon", "pending_config_approval", "poe_denied", "poe_overload", "poe_power_error", "port_channel_mixed_speed_ports", "primary_uplink_status", "probe_cable_unknown", "push_api_device_availability", "radar_detection", "reboot_count", "reboot_count_no_xmit_mon", "reboot_count_panic", "reg_dom_mismatch", "rogue_dhcp", "rps_backup", "rps_down", "secure_connect_auth_failure", "secure_connect_auth_in_progress", "secure_connect_auth_timeout", "snmp_community_string_too_long", "speed_downshift", "ssh_error_authentication", "ssh_error_authorization", "ssh_error_timeout", "ssh_port_rotary_conflict", "ssid_radius_server", "stack_cable_auth_failure", "stack_misconfigured", "stack_not_configured", "stack_version_mismatch", "start_monitoring_provisioning", "sticky_client", "stp_bpdu_conflict", "stp_bpdu_delay", "stp_bpduguard_active", "stp_loopguard_active", "stp_root_status_changed", "stp_rootguard_active", "stp_tcn_errors", "successful_connect_degraded", "switch_not_setup_as_stack", "switch_required_vlans_missing", "switch_reserved_vlans", "switchport_allowed_vlans_missing", "telemetry_collector_cert_expiration", "telemetry_streaming_failure", "temperature_cable_disconnect", "thousand_eyes_application_alert", "time_to_connect_degraded", "traffic_shaping_rule_saturation", "udld_err_n_mismatch", "udld_err_tx_rx_loop", "udld_err_unidir", "unknown_config_options", "unreachable", "unseen", "uplink_saturation", "using_mtun_http", "vlan_disconnect", "vlan_mismatch", "vlan_prefix_starvation", "vmx_incompatible_firmware", "voip_jitter", "voip_mos", "voip_packet_loss", "vpn_backhaul", "vpn_outage", "vrrp_failover", "vwlc_unclaimed_standby", "wan_latency", "wan_packet_loss", "wan_status", "wan_usage", "water_cable_disconnect", "water_usb_connect", "wireless_capacity_degraded", "wireless_coverage_degraded", "wlc_add_standby", "wlc_ap_guardrail", "wlc_ap_limit", "wlc_ap_onboard", "wlc_ha_active_recovery", "wlc_ha_fail_over_past_day", "wlc_ha_standby_offline", "wlc_ha_standby_recovery", "wlc_interface_errors", "wlc_unassigned_ap", "wpa3_warning", "wrong_console_credentials", "yang_authz_conflict", "yang_process_abnormal", "z_canary_alert", "z_canary_priority_alert" ] } } }, { "name": "tsStart", "in": "query", "description": "Optional parameter to filter by starting timestamp", "schema": { "type": "string", "format": "date-time" } }, { "name": "tsEnd", "in": "query", "description": "Optional parameter to filter by end timestamp", "schema": { "type": "string", "format": "date-time" } }, { "name": "category", "in": "query", "description": "Optional parameter to filter by category.", "schema": { "type": "string", "enum": [ "configuration", "connectivity", "device_health", "experience_metrics", "insights" ] } }, { "name": "serials", "in": "query", "description": "Optional parameter to filter by primary device serial", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "deviceTypes", "in": "query", "description": "Optional parameter to filter by device types", "schema": { "type": "array", "items": { "type": "string", "enum": [ "Campus Gateway", "Catalyst AP", "Catalyst Controller", "Catalyst Switch", "MCG", "MG", "MR", "MS", "MT", "MV", "MX", "VMX", "WLC", "Z" ] } } }, { "name": "deviceTags", "in": "query", "description": "Optional parameter to filter by device tags", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "active", "in": "query", "description": "Optional parameter to filter by active alerts defaults to true", "schema": { "type": "boolean" } }, { "name": "dismissed", "in": "query", "description": "Optional parameter to filter by dismissed alerts defaults to false", "schema": { "type": "boolean" } }, { "name": "resolved", "in": "query", "description": "Optional parameter to filter by resolved alerts defaults to false", "schema": { "type": "boolean" } }, { "name": "suppressAlertsForOfflineNodes", "in": "query", "description": "When set to true the api will only return connectivity alerts for a given device if that device is in an offline state. This only applies to devices. This is ignored when resolved is true. Example: If a Switch has a VLan Mismatch and is Unreachable. only the Unreachable alert will be returned. Defaults to false.", "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "counts": { "type": "object", "properties": { "total": { "type": "integer", "description": "Total number of alerts on the organization" }, "bySeverity": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "critical", "informational", "warning" ], "description": "Severity Type" }, "count": { "type": "integer", "description": "Total count of the given severity type" } }, "required": [ "type", "count" ] }, "description": "Counts of alerts on organization by severity" } }, "required": [ "total", "bySeverity" ], "description": "Counts of alerts on the organization" } }, "required": [ "counts" ] }, "example": { "counts": { "total": 14, "bySeverity": [ { "type": "critical", "count": 1 } ] } } } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "Return overview of active health alerts for an organization", "tags": [ "organizations", "monitor", "alerts", "overview" ] } }, "/organizations/{organizationId}/assurance/alerts/overview/byNetwork": { "get": { "description": "Return a Summary of Alerts grouped by network and severity", "operationId": "getOrganizationAssuranceAlertsOverviewByNetwork", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "perPage", "in": "query", "description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.", "schema": { "type": "integer" } }, { "name": "startingAfter", "in": "query", "description": "A token used by the server to indicate the start of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.", "schema": { "type": "string" } }, { "name": "endingBefore", "in": "query", "description": "A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.", "schema": { "type": "string" } }, { "name": "sortOrder", "in": "query", "description": "Sorted order of entries. Order options are 'ascending' and 'descending'. Default is 'ascending'.", "schema": { "type": "string", "enum": [ "ascending", "descending" ] } }, { "name": "networkId", "in": "query", "description": "Optional parameter to filter alerts overview by network id.", "schema": { "type": "string" } }, { "name": "severity", "in": "query", "description": "Optional parameter to filter alerts overview by severity type.", "schema": { "type": "string" } }, { "name": "types", "in": "query", "description": "Optional parameter to filter by alert type.", "schema": { "type": "array", "items": { "type": "string", "enum": [ "aaa_not_enabled", "acl_ipv4_conflict", "afc_height_empty", "afc_status_bad", "ap_became_repeater", "ap_noauth", "ap_tunnel_down", "arp_failure", "asymmetry", "aurora1_subnet_overlap", "aurora2_consilience", "auto_vpn_failure", "auto_vpn_uplink_decision", "bad_connectivity", "bad_gateway", "bad_ip6conf", "bad_ipconf", "bad_vlanconf", "ccd", "cellular_data_cap", "cellular_failover", "cellular_failover_bandwidth", "cellular_up_down", "certificate_enrollment", "certificate_expiration", "certificate_renewal", "client_wayfinding_clustering_warning", "client_wayfinding_missing_config", "cloud_archive_alert", "collisions_errors", "config_bad_fetch", "config_error", "config_stale", "configuration_change", "console_error_authorization", "console_error_timeout", "country_mismatch", "crc_errors", "dashboard_config_generation_failure", "detected_country_mismatch", "device_access_issue", "device_config_failure", "device_no_space", "device_ping_status", "dfs_event_pattern", "dhcp_no_leases", "disassociation", "dns_down", "dom_stats_alert", "door_tamper", "eapol_test_failed", "ethernet_negotiation_failure", "eu_regulatory_firmware_mismatch", "fan_down", "faulty_cable", "firewall", "firmware_version", "frags_errors", "high_cpu_mx", "high_interference", "high_memory_mx", "high_temperature_mx", "http_acl_ipv6_conflict", "https_secure_port_conflict", "https_secure_trustpoint_missing", "https_session_modules_conflict", "image_sensor_failure", "insecure_sm_networks_disabled_enrollment_auth_alert", "insight_web_app", "invalid_config", "iot_orchestrator_grpc_down", "ip_conflict", "isp_issue_local_branch", "jabbers_errors", "known_hardware_problem", "l3_dynamic_routes_overflow", "l3_hosts_overflow", "line_vty_conflict", "line_vty_error", "low_power", "mac_flap_alert", "manual_config_fix_required", "manual_country_mismatch", "mars_read_only_ap_unreachable", "mcg_dr_allowed_vlans_mismatch", "meraki_shelluser_conflict", "meraki_tdluser_conflict", "meraki_user_conflict", "mg_safe_mode", "mgmt_uplink_vlan_mismatch", "missing_config_options", "missized_errors", "mmc_issue", "modular_supervisor_node_group_mismatch", "monitoring_stack_error", "monitoring_tls_tunnel_connected", "monitoring_unsupported_version", "mps_down", "netconf_abnormal", "netconf_acl_ipv6_conflict", "netconf_error_authentication", "netconf_error_timeout", "no_dna_license", "no_enough_vty_num", "no_telemetry", "node_check", "not_supported_compression_algorithm", "not_supported_hostkey_algorithm", "not_supported_kex_algorithm", "not_supported_mac_algorithm", "not_supported_publickey_algorithm", "not_supported_ssh_algorithm", "ntp_issue", "odd_upstream_gateway", "openroaming_firmware_incompatible", "pcc_apns_check_cert", "pcc_apns_expired", "pcc_apns_expires_soon", "pcc_duplicate_device_identifier", "pcc_duplicate_imei", "pcc_empty_device_identifier", "pcc_empty_imei", "pcc_self_signed_scep_expired", "pcc_self_signed_scep_expires_soon", "pending_config_approval", "poe_denied", "poe_overload", "poe_power_error", "port_channel_mixed_speed_ports", "primary_uplink_status", "probe_cable_unknown", "push_api_device_availability", "radar_detection", "reboot_count", "reboot_count_no_xmit_mon", "reboot_count_panic", "reg_dom_mismatch", "rogue_dhcp", "rps_backup", "rps_down", "secure_connect_auth_failure", "secure_connect_auth_in_progress", "secure_connect_auth_timeout", "snmp_community_string_too_long", "speed_downshift", "ssh_error_authentication", "ssh_error_authorization", "ssh_error_timeout", "ssh_port_rotary_conflict", "ssid_radius_server", "stack_cable_auth_failure", "stack_misconfigured", "stack_not_configured", "stack_version_mismatch", "start_monitoring_provisioning", "sticky_client", "stp_bpdu_conflict", "stp_bpdu_delay", "stp_bpduguard_active", "stp_loopguard_active", "stp_root_status_changed", "stp_rootguard_active", "stp_tcn_errors", "successful_connect_degraded", "switch_not_setup_as_stack", "switch_required_vlans_missing", "switch_reserved_vlans", "switchport_allowed_vlans_missing", "telemetry_collector_cert_expiration", "telemetry_streaming_failure", "temperature_cable_disconnect", "thousand_eyes_application_alert", "time_to_connect_degraded", "traffic_shaping_rule_saturation", "udld_err_n_mismatch", "udld_err_tx_rx_loop", "udld_err_unidir", "unknown_config_options", "unreachable", "unseen", "uplink_saturation", "using_mtun_http", "vlan_disconnect", "vlan_mismatch", "vlan_prefix_starvation", "vmx_incompatible_firmware", "voip_jitter", "voip_mos", "voip_packet_loss", "vpn_backhaul", "vpn_outage", "vrrp_failover", "vwlc_unclaimed_standby", "wan_latency", "wan_packet_loss", "wan_status", "wan_usage", "water_cable_disconnect", "water_usb_connect", "wireless_capacity_degraded", "wireless_coverage_degraded", "wlc_add_standby", "wlc_ap_guardrail", "wlc_ap_limit", "wlc_ap_onboard", "wlc_ha_active_recovery", "wlc_ha_fail_over_past_day", "wlc_ha_standby_offline", "wlc_ha_standby_recovery", "wlc_interface_errors", "wlc_unassigned_ap", "wpa3_warning", "wrong_console_credentials", "yang_authz_conflict", "yang_process_abnormal", "z_canary_alert", "z_canary_priority_alert" ] } } }, { "name": "tsStart", "in": "query", "description": "Optional parameter to filter by starting timestamp", "schema": { "type": "string", "format": "date-time" } }, { "name": "tsEnd", "in": "query", "description": "Optional parameter to filter by end timestamp", "schema": { "type": "string", "format": "date-time" } }, { "name": "category", "in": "query", "description": "Optional parameter to filter by category.", "schema": { "type": "string", "enum": [ "configuration", "connectivity", "device_health", "experience_metrics", "insights" ] } }, { "name": "serials", "in": "query", "description": "Optional parameter to filter by primary device serial", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "deviceTypes", "in": "query", "description": "Optional parameter to filter by device types", "schema": { "type": "array", "items": { "type": "string", "enum": [ "Campus Gateway", "Catalyst AP", "Catalyst Controller", "Catalyst Switch", "MCG", "MG", "MR", "MS", "MT", "MV", "MX", "VMX", "WLC", "Z" ] } } }, { "name": "deviceTags", "in": "query", "description": "Optional parameter to filter by device tags", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "active", "in": "query", "description": "Optional parameter to filter by active alerts defaults to true", "schema": { "type": "boolean" } }, { "name": "dismissed", "in": "query", "description": "Optional parameter to filter by dismissed alerts defaults to false", "schema": { "type": "boolean" } }, { "name": "resolved", "in": "query", "description": "Optional parameter to filter by resolved alerts defaults to false", "schema": { "type": "boolean" } }, { "name": "suppressAlertsForOfflineNodes", "in": "query", "description": "When set to true the api will only return connectivity alerts for a given device if that device is in an offline state. This only applies to devices. This is ignored when resolved is true. Example: If a Switch has a VLan Mismatch and is Unreachable. only the Unreachable alert will be returned. Defaults to false.", "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "networkId": { "type": "string", "description": "id" }, "networkName": { "type": "string", "description": "Name" }, "alertCount": { "type": "integer", "description": "Total Alerts" }, "lastAlertedAt": { "type": "string", "format": "date-time", "description": "Last time an alert was seen for this network" }, "severityCounts": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "description": "Type" }, "count": { "type": "integer", "description": "Count" } }, "required": [ "type", "count" ] }, "description": "Alerts By Severity" } }, "required": [ "networkId", "networkName", "alertCount", "lastAlertedAt", "severityCounts" ] }, "description": "Alert Counts by Network" }, "meta": { "type": "object", "properties": { "counts": { "type": "object", "properties": { "items": { "type": "integer", "description": "Total Alerts" } }, "required": [ "items" ], "description": "Counts" } }, "required": [ "counts" ], "description": "Metadata about the response" } }, "required": [ "items", "meta" ] }, "example": { "items": [ { "networkId": "L_30618", "networkName": "s01797.us", "alertCount": 3, "lastAlertedAt": "2022-04-01T15:48:57Z", "severityCounts": [ { "type": "warning", "count": 3 } ] } ], "meta": { "counts": { "items": 2 } } } } }, "headers": { "Link": { "schema": { "type": "string" }, "description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests." } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "Return a Summary of Alerts grouped by network and severity", "tags": [ "organizations", "monitor", "alerts", "overview", "byNetwork" ] } }, "/organizations/{organizationId}/assurance/alerts/overview/byType": { "get": { "description": "Return a Summary of Alerts grouped by type and severity", "operationId": "getOrganizationAssuranceAlertsOverviewByType", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "perPage", "in": "query", "description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000.", "schema": { "type": "integer" } }, { "name": "startingAfter", "in": "query", "description": "A token used by the server to indicate the start of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.", "schema": { "type": "string" } }, { "name": "endingBefore", "in": "query", "description": "A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it.", "schema": { "type": "string" } }, { "name": "sortOrder", "in": "query", "description": "Sorted order of entries. Order options are 'ascending' and 'descending'. Default is 'ascending'.", "schema": { "type": "string", "enum": [ "ascending", "descending" ] } }, { "name": "networkId", "in": "query", "description": "Optional parameter to filter alerts overview by network ids.", "schema": { "type": "string" } }, { "name": "severity", "in": "query", "description": "Optional parameter to filter alerts overview by severity type.", "schema": { "type": "string" } }, { "name": "types", "in": "query", "description": "Optional parameter to filter by alert type.", "schema": { "type": "array", "items": { "type": "string", "enum": [ "aaa_not_enabled", "acl_ipv4_conflict", "afc_height_empty", "afc_status_bad", "ap_became_repeater", "ap_noauth", "ap_tunnel_down", "arp_failure", "asymmetry", "aurora1_subnet_overlap", "aurora2_consilience", "auto_vpn_failure", "auto_vpn_uplink_decision", "bad_connectivity", "bad_gateway", "bad_ip6conf", "bad_ipconf", "bad_vlanconf", "ccd", "cellular_data_cap", "cellular_failover", "cellular_failover_bandwidth", "cellular_up_down", "certificate_enrollment", "certificate_expiration", "certificate_renewal", "client_wayfinding_clustering_warning", "client_wayfinding_missing_config", "cloud_archive_alert", "collisions_errors", "config_bad_fetch", "config_error", "config_stale", "configuration_change", "console_error_authorization", "console_error_timeout", "country_mismatch", "crc_errors", "dashboard_config_generation_failure", "detected_country_mismatch", "device_access_issue", "device_config_failure", "device_no_space", "device_ping_status", "dfs_event_pattern", "dhcp_no_leases", "disassociation", "dns_down", "dom_stats_alert", "door_tamper", "eapol_test_failed", "ethernet_negotiation_failure", "eu_regulatory_firmware_mismatch", "fan_down", "faulty_cable", "firewall", "firmware_version", "frags_errors", "high_cpu_mx", "high_interference", "high_memory_mx", "high_temperature_mx", "http_acl_ipv6_conflict", "https_secure_port_conflict", "https_secure_trustpoint_missing", "https_session_modules_conflict", "image_sensor_failure", "insecure_sm_networks_disabled_enrollment_auth_alert", "insight_web_app", "invalid_config", "iot_orchestrator_grpc_down", "ip_conflict", "isp_issue_local_branch", "jabbers_errors", "known_hardware_problem", "l3_dynamic_routes_overflow", "l3_hosts_overflow", "line_vty_conflict", "line_vty_error", "low_power", "mac_flap_alert", "manual_config_fix_required", "manual_country_mismatch", "mars_read_only_ap_unreachable", "mcg_dr_allowed_vlans_mismatch", "meraki_shelluser_conflict", "meraki_tdluser_conflict", "meraki_user_conflict", "mg_safe_mode", "mgmt_uplink_vlan_mismatch", "missing_config_options", "missized_errors", "mmc_issue", "modular_supervisor_node_group_mismatch", "monitoring_stack_error", "monitoring_tls_tunnel_connected", "monitoring_unsupported_version", "mps_down", "netconf_abnormal", "netconf_acl_ipv6_conflict", "netconf_error_authentication", "netconf_error_timeout", "no_dna_license", "no_enough_vty_num", "no_telemetry", "node_check", "not_supported_compression_algorithm", "not_supported_hostkey_algorithm", "not_supported_kex_algorithm", "not_supported_mac_algorithm", "not_supported_publickey_algorithm", "not_supported_ssh_algorithm", "ntp_issue", "odd_upstream_gateway", "openroaming_firmware_incompatible", "pcc_apns_check_cert", "pcc_apns_expired", "pcc_apns_expires_soon", "pcc_duplicate_device_identifier", "pcc_duplicate_imei", "pcc_empty_device_identifier", "pcc_empty_imei", "pcc_self_signed_scep_expired", "pcc_self_signed_scep_expires_soon", "pending_config_approval", "poe_denied", "poe_overload", "poe_power_error", "port_channel_mixed_speed_ports", "primary_uplink_status", "probe_cable_unknown", "push_api_device_availability", "radar_detection", "reboot_count", "reboot_count_no_xmit_mon", "reboot_count_panic", "reg_dom_mismatch", "rogue_dhcp", "rps_backup", "rps_down", "secure_connect_auth_failure", "secure_connect_auth_in_progress", "secure_connect_auth_timeout", "snmp_community_string_too_long", "speed_downshift", "ssh_error_authentication", "ssh_error_authorization", "ssh_error_timeout", "ssh_port_rotary_conflict", "ssid_radius_server", "stack_cable_auth_failure", "stack_misconfigured", "stack_not_configured", "stack_version_mismatch", "start_monitoring_provisioning", "sticky_client", "stp_bpdu_conflict", "stp_bpdu_delay", "stp_bpduguard_active", "stp_loopguard_active", "stp_root_status_changed", "stp_rootguard_active", "stp_tcn_errors", "successful_connect_degraded", "switch_not_setup_as_stack", "switch_required_vlans_missing", "switch_reserved_vlans", "switchport_allowed_vlans_missing", "telemetry_collector_cert_expiration", "telemetry_streaming_failure", "temperature_cable_disconnect", "thousand_eyes_application_alert", "time_to_connect_degraded", "traffic_shaping_rule_saturation", "udld_err_n_mismatch", "udld_err_tx_rx_loop", "udld_err_unidir", "unknown_config_options", "unreachable", "unseen", "uplink_saturation", "using_mtun_http", "vlan_disconnect", "vlan_mismatch", "vlan_prefix_starvation", "vmx_incompatible_firmware", "voip_jitter", "voip_mos", "voip_packet_loss", "vpn_backhaul", "vpn_outage", "vrrp_failover", "vwlc_unclaimed_standby", "wan_latency", "wan_packet_loss", "wan_status", "wan_usage", "water_cable_disconnect", "water_usb_connect", "wireless_capacity_degraded", "wireless_coverage_degraded", "wlc_add_standby", "wlc_ap_guardrail", "wlc_ap_limit", "wlc_ap_onboard", "wlc_ha_active_recovery", "wlc_ha_fail_over_past_day", "wlc_ha_standby_offline", "wlc_ha_standby_recovery", "wlc_interface_errors", "wlc_unassigned_ap", "wpa3_warning", "wrong_console_credentials", "yang_authz_conflict", "yang_process_abnormal", "z_canary_alert", "z_canary_priority_alert" ] } } }, { "name": "tsStart", "in": "query", "description": "Optional parameter to filter by starting timestamp", "schema": { "type": "string", "format": "date-time" } }, { "name": "tsEnd", "in": "query", "description": "Optional parameter to filter by end timestamp", "schema": { "type": "string", "format": "date-time" } }, { "name": "category", "in": "query", "description": "Optional parameter to filter by category.", "schema": { "type": "string", "enum": [ "configuration", "connectivity", "device_health", "experience_metrics", "insights" ] } }, { "name": "sortBy", "in": "query", "description": "Optional parameter to set column to sort by.", "schema": { "type": "string", "enum": [ "count", "lastAlertedAt", "networkCount", "severity", "startedAt" ] } }, { "name": "serials", "in": "query", "description": "Optional parameter to filter by primary device serial", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "deviceTypes", "in": "query", "description": "Optional parameter to filter by device types", "schema": { "type": "array", "items": { "type": "string", "enum": [ "Campus Gateway", "Catalyst AP", "Catalyst Controller", "Catalyst Switch", "MCG", "MG", "MR", "MS", "MT", "MV", "MX", "VMX", "WLC", "Z" ] } } }, { "name": "deviceTags", "in": "query", "description": "Optional parameter to filter by device tags", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "active", "in": "query", "description": "Optional parameter to filter by active alerts defaults to true", "schema": { "type": "boolean" } }, { "name": "dismissed", "in": "query", "description": "Optional parameter to filter by dismissed alerts defaults to false", "schema": { "type": "boolean" } }, { "name": "resolved", "in": "query", "description": "Optional parameter to filter by resolved alerts defaults to false", "schema": { "type": "boolean" } }, { "name": "includeDeviceTags", "in": "query", "description": "Include grouped device tags for each alert type in the response.", "schema": { "type": "boolean" } }, { "name": "includeNetworks", "in": "query", "description": "Include affected networks for each alert type in the response.", "schema": { "type": "boolean" } }, { "name": "suppressAlertsForOfflineNodes", "in": "query", "description": "When set to true the api will only return connectivity alerts for a given device if that device is in an offline state. This only applies to devices. This is ignored when resolved is true. Example: If a Switch has a VLan Mismatch and is Unreachable. only the Unreachable alert will be returned. Defaults to false.", "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "description": "Alert Type" }, "categoryType": { "type": "string", "description": "Alert category" }, "severity": { "type": "string", "description": "Alert severity" }, "lastAlertedAt": { "type": "string", "format": "date-time", "description": "Last time an alert of this type was triggered" }, "lastResolvedAt": { "type": "string", "format": "date-time", "description": "Last time an alert of this type was resolved" }, "count": { "type": "integer", "description": "Total count of the given alert type" }, "networkCount": { "type": "integer", "description": "Number of affected networks for the alert type" }, "deviceTypes": { "type": "array", "items": { "type": "string" }, "description": "Affected device types for alerts in the group" }, "deviceTags": { "type": "array", "items": { "type": "string" }, "description": "Unique device tags for alerts in the group" }, "networks": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Network identifier" }, "name": { "type": "string", "description": "Network name" } }, "required": [ "id", "name" ] }, "description": "Affected networks for alerts in the group" } }, "required": [ "type", "categoryType", "severity", "lastAlertedAt", "count", "networkCount", "deviceTypes", "deviceTags", "networks" ] }, "description": "Organization Alert counts by type" }, "meta": { "type": "object", "properties": { "counts": { "type": "object", "properties": { "items": { "type": "integer", "description": "Total Alerts" } }, "required": [ "items" ], "description": "Counts" } }, "required": [ "counts" ], "description": "Metadata about the response" } }, "required": [ "items", "meta" ] }, "example": { "items": [ { "type": "vlan_mismatch", "categoryType": "configuration", "severity": "warning", "lastAlertedAt": "2022-04-01T15:48:57Z", "lastResolvedAt": "2022-04-01T16:48:57Z", "count": 3, "networkCount": 2, "deviceTypes": [ "MS" ], "deviceTags": [ "core", "distribution" ], "networks": [ { "id": "N_123", "name": "Branch 1" } ] } ], "meta": { "counts": { "items": 4 } } } } }, "headers": { "Link": { "schema": { "type": "string" }, "description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests." } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "Return a Summary of Alerts grouped by type and severity", "tags": [ "organizations", "monitor", "alerts", "overview", "byType" ] } }, "/organizations/{organizationId}/assurance/alerts/overview/historical": { "get": { "description": "Returns historical health alert overviews", "operationId": "getOrganizationAssuranceAlertsOverviewHistorical", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "segmentDuration", "in": "query", "required": true, "description": "Amount of time in seconds for each segment in the returned dataset", "schema": { "type": "integer" } }, { "name": "networkId", "in": "query", "description": "Optional parameter to filter alerts overview by network ids.", "schema": { "type": "string" } }, { "name": "severity", "in": "query", "description": "Optional parameter to filter alerts overview by severity type.", "schema": { "type": "string" } }, { "name": "types", "in": "query", "description": "Optional parameter to filter by alert type.", "schema": { "type": "array", "items": { "type": "string", "enum": [ "aaa_not_enabled", "acl_ipv4_conflict", "afc_height_empty", "afc_status_bad", "ap_became_repeater", "ap_noauth", "ap_tunnel_down", "arp_failure", "asymmetry", "aurora1_subnet_overlap", "aurora2_consilience", "auto_vpn_failure", "auto_vpn_uplink_decision", "bad_connectivity", "bad_gateway", "bad_ip6conf", "bad_ipconf", "bad_vlanconf", "ccd", "cellular_data_cap", "cellular_failover", "cellular_failover_bandwidth", "cellular_up_down", "certificate_enrollment", "certificate_expiration", "certificate_renewal", "client_wayfinding_clustering_warning", "client_wayfinding_missing_config", "cloud_archive_alert", "collisions_errors", "config_bad_fetch", "config_error", "config_stale", "configuration_change", "console_error_authorization", "console_error_timeout", "country_mismatch", "crc_errors", "dashboard_config_generation_failure", "detected_country_mismatch", "device_access_issue", "device_config_failure", "device_no_space", "device_ping_status", "dfs_event_pattern", "dhcp_no_leases", "disassociation", "dns_down", "dom_stats_alert", "door_tamper", "eapol_test_failed", "ethernet_negotiation_failure", "eu_regulatory_firmware_mismatch", "fan_down", "faulty_cable", "firewall", "firmware_version", "frags_errors", "high_cpu_mx", "high_interference", "high_memory_mx", "high_temperature_mx", "http_acl_ipv6_conflict", "https_secure_port_conflict", "https_secure_trustpoint_missing", "https_session_modules_conflict", "image_sensor_failure", "insecure_sm_networks_disabled_enrollment_auth_alert", "insight_web_app", "invalid_config", "iot_orchestrator_grpc_down", "ip_conflict", "isp_issue_local_branch", "jabbers_errors", "known_hardware_problem", "l3_dynamic_routes_overflow", "l3_hosts_overflow", "line_vty_conflict", "line_vty_error", "low_power", "mac_flap_alert", "manual_config_fix_required", "manual_country_mismatch", "mars_read_only_ap_unreachable", "mcg_dr_allowed_vlans_mismatch", "meraki_shelluser_conflict", "meraki_tdluser_conflict", "meraki_user_conflict", "mg_safe_mode", "mgmt_uplink_vlan_mismatch", "missing_config_options", "missized_errors", "mmc_issue", "modular_supervisor_node_group_mismatch", "monitoring_stack_error", "monitoring_tls_tunnel_connected", "monitoring_unsupported_version", "mps_down", "netconf_abnormal", "netconf_acl_ipv6_conflict", "netconf_error_authentication", "netconf_error_timeout", "no_dna_license", "no_enough_vty_num", "no_telemetry", "node_check", "not_supported_compression_algorithm", "not_supported_hostkey_algorithm", "not_supported_kex_algorithm", "not_supported_mac_algorithm", "not_supported_publickey_algorithm", "not_supported_ssh_algorithm", "ntp_issue", "odd_upstream_gateway", "openroaming_firmware_incompatible", "pcc_apns_check_cert", "pcc_apns_expired", "pcc_apns_expires_soon", "pcc_duplicate_device_identifier", "pcc_duplicate_imei", "pcc_empty_device_identifier", "pcc_empty_imei", "pcc_self_signed_scep_expired", "pcc_self_signed_scep_expires_soon", "pending_config_approval", "poe_denied", "poe_overload", "poe_power_error", "port_channel_mixed_speed_ports", "primary_uplink_status", "probe_cable_unknown", "push_api_device_availability", "radar_detection", "reboot_count", "reboot_count_no_xmit_mon", "reboot_count_panic", "reg_dom_mismatch", "rogue_dhcp", "rps_backup", "rps_down", "secure_connect_auth_failure", "secure_connect_auth_in_progress", "secure_connect_auth_timeout", "snmp_community_string_too_long", "speed_downshift", "ssh_error_authentication", "ssh_error_authorization", "ssh_error_timeout", "ssh_port_rotary_conflict", "ssid_radius_server", "stack_cable_auth_failure", "stack_misconfigured", "stack_not_configured", "stack_version_mismatch", "start_monitoring_provisioning", "sticky_client", "stp_bpdu_conflict", "stp_bpdu_delay", "stp_bpduguard_active", "stp_loopguard_active", "stp_root_status_changed", "stp_rootguard_active", "stp_tcn_errors", "successful_connect_degraded", "switch_not_setup_as_stack", "switch_required_vlans_missing", "switch_reserved_vlans", "switchport_allowed_vlans_missing", "telemetry_collector_cert_expiration", "telemetry_streaming_failure", "temperature_cable_disconnect", "thousand_eyes_application_alert", "time_to_connect_degraded", "traffic_shaping_rule_saturation", "udld_err_n_mismatch", "udld_err_tx_rx_loop", "udld_err_unidir", "unknown_config_options", "unreachable", "unseen", "uplink_saturation", "using_mtun_http", "vlan_disconnect", "vlan_mismatch", "vlan_prefix_starvation", "vmx_incompatible_firmware", "voip_jitter", "voip_mos", "voip_packet_loss", "vpn_backhaul", "vpn_outage", "vrrp_failover", "vwlc_unclaimed_standby", "wan_latency", "wan_packet_loss", "wan_status", "wan_usage", "water_cable_disconnect", "water_usb_connect", "wireless_capacity_degraded", "wireless_coverage_degraded", "wlc_add_standby", "wlc_ap_guardrail", "wlc_ap_limit", "wlc_ap_onboard", "wlc_ha_active_recovery", "wlc_ha_fail_over_past_day", "wlc_ha_standby_offline", "wlc_ha_standby_recovery", "wlc_interface_errors", "wlc_unassigned_ap", "wpa3_warning", "wrong_console_credentials", "yang_authz_conflict", "yang_process_abnormal", "z_canary_alert", "z_canary_priority_alert" ] } } }, { "name": "tsStart", "in": "query", "required": true, "description": "Parameter to define starting timestamp of historical totals", "schema": { "type": "string", "format": "date-time" } }, { "name": "tsEnd", "in": "query", "description": "Optional parameter to filter by end timestamp defaults to the current time", "schema": { "type": "string", "format": "date-time" } }, { "name": "category", "in": "query", "description": "Optional parameter to filter by category.", "schema": { "type": "string", "enum": [ "configuration", "connectivity", "device_health", "experience_metrics", "insights" ] } }, { "name": "serials", "in": "query", "description": "Optional parameter to filter by primary device serial", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "deviceTypes", "in": "query", "description": "Optional parameter to filter by device types", "schema": { "type": "array", "items": { "type": "string", "enum": [ "Campus Gateway", "Catalyst AP", "Catalyst Controller", "Catalyst Switch", "MCG", "MG", "MR", "MS", "MT", "MV", "MX", "VMX", "WLC", "Z" ] } } } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "items": { "type": "array", "items": { "type": "object", "properties": { "segmentStart": { "type": "string", "format": "date-time", "description": "Starting datetime of the segment in iso8601 format" }, "totals": { "type": "object", "properties": { "informational": { "type": "integer", "description": "Informational Severity Count" }, "warning": { "type": "integer", "description": "Warning Severity Count" }, "critical": { "type": "integer", "description": "Critical Severity Count" } }, "description": "Totals by Severity" }, "byAlertType": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "description": "Alert Type" }, "informational": { "type": "integer", "description": "Informational Severity Count" }, "warning": { "type": "integer", "description": "Warning Severity Count" }, "critical": { "type": "integer", "description": "Critical Severity Count" } } }, "description": "Totals by Type" } }, "required": [ "segmentStart", "totals", "byAlertType" ] }, "description": "Historical Severity Counts" }, "meta": { "type": "object", "properties": { "counts": { "type": "object", "properties": { "items": { "type": "integer", "description": "Total Segments" } }, "required": [ "items" ], "description": "Counts" } }, "required": [ "counts" ], "description": "Metadata about the response" } }, "required": [ "items", "meta" ] }, "example": { "items": [ { "segmentStart": "2018-02-11T00:00:00Z", "totals": { "informational": 1, "warning": 1, "critical": 1 }, "byAlertType": [ { "type": "vlan_mismatch", "informational": 1, "warning": 1, "critical": 1 } ] } ], "meta": { "counts": { "items": 4 } } } } } } }, "summary": "Returns historical health alert overviews", "tags": [ "organizations", "monitor", "alerts", "overview", "historical" ] } }, "/organizations/{organizationId}/assurance/alerts/restore": { "post": { "description": "Restore health alerts from dismissed", "operationId": "restoreOrganizationAssuranceAlerts", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "alertIds": { "type": "array", "items": { "type": "string" }, "description": "Array of alert IDs in this organization to restore. Missing or inaccessible alert IDs return 404." } }, "example": { "alertIds": [ "1234", "4567" ] }, "required": [ "alertIds" ] } } }, "required": true }, "responses": { "204": { "description": "Successful operation" } }, "summary": "Restore health alerts from dismissed", "tags": [ "organizations", "monitor", "alerts" ] } }, "/organizations/{organizationId}/assurance/alerts/taxonomy/categories": { "get": { "description": "Return a list of Category Types", "operationId": "getOrganizationAssuranceAlertsTaxonomyCategories", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "description": "Category type" }, "title": { "type": "string", "description": "Category title" } }, "required": [ "type", "title" ] } }, "example": [ { "type": "connectivity", "title": "Connectivity" } ] } } } }, "summary": "Return a list of Category Types", "tags": [ "organizations", "monitor", "alerts", "taxonomy", "categories" ] } }, "/organizations/{organizationId}/assurance/alerts/taxonomy/types": { "get": { "description": "Return a list of alert types", "operationId": "getOrganizationAssuranceAlertsTaxonomyTypes", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "description": "Alert type" }, "title": { "type": "string", "description": "Alert type title" }, "categoryType": { "type": "string", "description": "Alert category type" }, "severities": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "description": "The severity for the alert type" } }, "required": [ "type" ] }, "description": "List of possible severities for the alert type" }, "deviceTypes": { "type": "array", "items": { "type": "string" }, "description": "List of possible device types for the alert type" } }, "required": [ "type", "title", "categoryType", "severities", "deviceTypes" ] } }, "example": [ { "type": "unreachable", "title": "Unreachable device", "categoryType": "connectivity", "severities": [ { "type": "critical" } ], "deviceTypes": [ "Campus Gateway", "Catalyst AP", "Catalyst Controller", "Catalyst Switch", "MG", "MR", "MS", "MT", "MV", "MX", "VMX", "Z" ] } ] } } } }, "security": [ { "oauth2": [ "dashboard:general:telemetry:read" ] } ], "summary": "Return a list of alert types", "tags": [ "organizations", "monitor", "alerts", "taxonomy", "types" ] } }, "/organizations/{organizationId}/assurance/alerts/{id}": { "get": { "description": "Return a singular Health Alert by its id", "operationId": "getOrganizationAssuranceAlert", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true }, { "name": "id", "in": "path", "description": "ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "ID of the health alert" }, "categoryType": { "type": "string", "description": "Category type that the health alert belongs to" }, "network": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the network where alert appears" }, "id": { "type": "string", "description": "ID of the network where alert appears" }, "url": { "type": "string", "description": "Authoritative Dashboard URL for the network" } }, "required": [ "name", "id", "url" ], "description": "Network details" }, "startedAt": { "type": "string", "format": "date-time", "description": "Time when the alert started" }, "resolvedAt": { "type": "string", "format": "date-time", "description": "Time when the alert was resolved", "nullable": true }, "dismissedAt": { "type": "string", "format": "date-time", "description": "Time when the alert was dismissed", "nullable": true }, "deviceType": { "type": "string", "description": "Device Type that the alert occurred on", "nullable": true }, "type": { "type": "string", "description": "Alert Type" }, "title": { "type": "string", "description": "Human Readable Title for Alert type" }, "description": { "type": "string", "description": "Description of the alert", "nullable": true }, "severity": { "type": "string", "description": "Alert severity" }, "scope": { "type": "object", "properties": { "devices": { "type": "array", "items": { "type": "object", "properties": { "url": { "type": "string", "description": "URL of affected device" }, "name": { "type": "string", "description": "Name of affected device" }, "order": { "type": "integer", "description": "Order of affected device in array" }, "productType": { "type": "string", "description": "Type of affected device" }, "serial": { "type": "string", "description": "Serial of affected device" }, "mac": { "type": "string", "description": "MAC address of affected device" }, "imei": { "type": "string", "description": "IMEI of affected device" }, "lldp": { "type": "object", "properties": { "port": { "type": "string", "description": "Port of affect device" } }, "description": "Port of affected device" } } }, "description": "Description of affected devices" }, "applications": { "type": "array", "items": { "type": "object" }, "description": "Applications affected by the alert" }, "peers": { "type": "array", "items": { "type": "object" }, "description": "Peers affected by the alert" }, "others": { "type": "array", "items": { "type": "object" }, "description": "Other affected items by the alert" } }, "description": "Scope of the alert (which devices and networks are affected)" } }, "required": [ "id", "categoryType", "network", "startedAt", "type", "title", "severity" ] }, "example": { "id": "1234", "categoryType": "connectivity", "network": { "name": "Network 2", "id": "L_1020981", "url": "https://n1.meraki.com//n//manage/nodes/list" }, "startedAt": "2022-04-01T15:48:57Z", "resolvedAt": "2022-04-02T15:48:57Z", "dismissedAt": "2022-04-02T15:48:57Z", "deviceType": "MS", "type": "crc_errors_error", "title": "CRC errors detected", "description": "Very high proportion of CRC errors on port id", "severity": "warning", "scope": { "devices": [ { "url": "https://n237.meraki.com/MS-PM-First-Floo/n/_5kUKaTd/manage/nodes/new_list/7911238", "name": "Device 1", "order": 0, "productType": "switch", "serial": "Q2QP-5VYM-YM8H", "mac": "aa:bb:cd:dd", "imei": "353593090031649", "lldp": { "port": "33" } } ] } } } } } }, "summary": "Return a singular Health Alert by its id", "tags": [ "organizations", "monitor", "alerts" ] } }, "/organizations/{organizationId}/brandingPolicies": { "get": { "description": "List the branding policies of an organization", "operationId": "getOrganizationBrandingPolicies", "parameters": [ { "name": "organizationId", "in": "path", "description": "Organization ID", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the Dashboard branding policy." }, "enabled": { "type": "boolean", "description": "Boolean indicating whether this policy is enabled." }, "adminSettings": { "type": "object", "properties": { "appliesTo": { "type": "string", "enum": [ "All SAML admins", "All admins", "All admins of networks tagged...", "All admins of networks...", "All enterprise admins", "All network admins", "All organization admins", "Specific admins..." ], "description": "Which kinds of admins this policy applies to. Can be one of 'All organization admins', 'All enterprise admins', 'All network admins', 'All admins of networks...', 'All admins of networks tagged...', 'Specific admins...', 'All admins' or 'All SAML admins'." }, "values": { "type": "array", "items": { "type": "string" }, "description": " If 'appliesTo' is set to one of 'Specific admins...', 'All admins of networks...' or 'All admins of networks tagged...', then you must specify this 'values' property to provide the set of\n entities to apply the branding policy to. For 'Specific admins...', specify an array of admin IDs. For 'All admins of\n networks...', specify an array of network IDs and/or configuration template IDs. For 'All admins of networks tagged...',\n specify an array of tag names.\n" } }, "description": "Settings for describing which kinds of admins this policy applies to." }, "helpSettings": { "type": "object", "properties": { "helpTab": { "type": "string", "enum": [ "default or inherit", "hide", "show" ], "description": " The Help tab, under which all support information resides. If this tab is hidden, no other 'Help' branding\n customizations will be visible. Can be one of 'default or inherit', 'hide' or 'show'.\n" }, "getHelpSubtab": { "type": "string", "enum": [ "default or inherit", "hide", "show" ], "description": " The 'Help -> Get Help' subtab on which Cisco Meraki KB, Product Manuals, and Support/Case Information are displayed. Note\n that if this subtab is hidden, branding customizations for the KB on 'Get help', Cisco Meraki product documentation,\n and support contact info will not be visible. Can be one of 'default or inherit', 'hide' or 'show'.\n" }, "communitySubtab": { "type": "string", "enum": [ "default or inherit", "hide", "show" ], "description": " The 'Help -> Community' subtab which provides a link to Meraki Community. Can be one of 'default or inherit', 'hide' or 'show'.\n" }, "casesSubtab": { "type": "string", "enum": [ "default or inherit", "hide", "show" ], "description": " The 'Help -> Cases' Dashboard subtab on which Cisco Meraki support cases for this organization can be managed. Can be one\n of 'default or inherit', 'hide' or 'show'.\n" }, "dataProtectionRequestsSubtab": { "type": "string", "enum": [ "default or inherit", "hide", "show" ], "description": " The 'Help -> Data protection requests' Dashboard subtab on which requests to delete, restrict, or export end-user data can\n be audited. Can be one of 'default or inherit', 'hide' or 'show'.\n" }, "getHelpSubtabKnowledgeBaseSearch": { "type": "string", "description": " The KB search box which appears on the Help page. Can be one of 'default or inherit', 'hide', 'show', or a replacement custom HTML string.\n" }, "universalSearchKnowledgeBaseSearch": { "type": "string", "enum": [ "default or inherit", "hide", "show" ], "description": " The universal search box always visible on Dashboard will, by default, present results from the Meraki KB. This configures\n whether these Meraki KB results should be returned. Can be one of 'default or inherit', 'hide' or 'show'.\n" }, "ciscoMerakiProductDocumentation": { "type": "string", "description": " The 'Product Manuals' section of the 'Help -> Get Help' subtab. Can be one of 'default or inherit', 'hide', 'show', or a replacement custom HTML string.\n" }, "supportContactInfo": { "type": "string", "description": " The 'Contact Meraki Support' section of the 'Help -> Get Help' subtab. Can be one of 'default or inherit', 'hide', 'show', or a replacement custom HTML string.\n" }, "newFeaturesSubtab": { "type": "string", "enum": [ "default or inherit", "hide", "show" ], "description": " The 'Help -> New features' subtab where new Dashboard features are detailed. Can be one of 'default or inherit', 'hide' or 'show'.\n" }, "firewallInfoSubtab": { "type": "string", "enum": [ "default or inherit", "hide", "show" ], "description": " The 'Help -> Firewall info' subtab where necessary upstream firewall rules for communication to the Cisco Meraki cloud are\n listed. Can be one of 'default or inherit', 'hide' or 'show'.\n" }, "apiDocsSubtab": { "type": "string", "enum": [ "default or inherit", "hide", "show" ], "description": " The 'Help -> API docs' subtab where a detailed description of the Dashboard API is listed. Can be one of\n 'default or inherit', 'hide' or 'show'.\n" }, "hardwareReplacementsSubtab": { "type": "string", "enum": [ "default or inherit", "hide", "show" ], "description": " The 'Help -> Replacement info' subtab where important information regarding device replacements is detailed. Can be one of\n 'default or inherit', 'hide' or 'show'.\n" }, "smForums": { "type": "string", "enum": [ "default or inherit", "hide", "show" ], "description": " The 'SM Forums' subtab which links to community-based support for Cisco Meraki Systems Manager. Only configurable for\n organizations that contain Systems Manager networks. Can be one of 'default or inherit', 'hide' or 'show'.\n" }, "helpWidget": { "type": "string", "enum": [ "default or inherit", "hide", "show" ], "description": " The 'Help Widget' is a support widget which provides access to live chat, documentation links, Sales contact info,\n and other contact avenues to reach Meraki Support. Can be one of 'default or inherit', 'hide' or 'show'.\n" } }, "description": " Settings for describing the modifications to various Help page features. Each property in this object accepts one of\n 'default or inherit' (do not modify functionality), 'hide' (remove the section from Dashboard), or 'show' (always show\n the section on Dashboard). Some properties in this object also accept custom HTML used to replace the section on\n Dashboard; see the documentation for each property to see the allowed values.\n" }, "customLogo": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Whether or not there is a custom logo enabled." }, "image": { "type": "object", "properties": { "preview": { "type": "object", "properties": { "url": { "type": "string", "description": "Url of the preview image" }, "expiresAt": { "type": "string", "format": "date-time", "description": "Timestamp of the preview image" } }, "description": "Preview of the image" } }, "description": "Properties of the image." } }, "description": "Properties describing the custom logo attached to the branding policy." } } } }, "example": [ { "name": "My Branding Policy", "enabled": true, "adminSettings": { "appliesTo": "All admins of networks...", "values": [ "N_1234", "L_5678" ] }, "helpSettings": { "helpTab": "show", "getHelpSubtab": "default or inherit", "communitySubtab": "show", "casesSubtab": "hide", "dataProtectionRequestsSubtab": "default or inherit", "getHelpSubtabKnowledgeBaseSearch": "