{
"swagger": "2.0",
"info": {
"version": "1.44.0-beta.3",
"title": "Meraki Dashboard API",
"description": "The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification.\n\n> Date: 27 March, 2024\n>\n> [Recent Updates](https://meraki.io/whats-new/)\n\n---\n\n[API Documentation](https://meraki.io/api)\n\n[Community Support](https://meraki.io/community)\n\n[Meraki Homepage](https://www.meraki.com)\n",
"contact": {
"name": "Meraki Developer Community",
"url": "https://meraki.io/community"
}
},
"host": "api.meraki.com",
"basePath": "/api/v1",
"schemes": [
"https"
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"securityDefinitions": {
"meraki_api_key": {
"type": "apiKey",
"name": "X-Cisco-Meraki-API-Key",
"in": "header"
},
"bearerAuth": {
"type": "apiKey",
"name": "Authorization",
"in": "header"
}
},
"security": [
{
"meraki_api_key": [
]
},
{
"bearerAuth": [
]
}
],
"paths": {
"/administered/identities/me": {
"get": {
"description": "Returns the identity of the current user.",
"operationId": "getAdministeredIdentitiesMe",
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Username"
},
"email": {
"type": "string",
"description": "User email"
},
"lastUsedDashboardAt": {
"type": "string",
"format": "date-time",
"description": "Last seen active on Dashboard UI"
},
"authentication": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"description": "Authentication mode"
},
"api": {
"type": "object",
"properties": {
"key": {
"type": "object",
"properties": {
"created": {
"type": "boolean",
"description": "If API key is created for this user"
}
},
"description": "API key"
}
},
"description": "API authentication"
},
"twoFactor": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "If twoFactor authentication is enabled for this user"
}
},
"description": "TwoFactor authentication"
},
"saml": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "If SAML authentication is enabled for this user"
}
},
"description": "SAML authentication"
}
},
"description": "Authentication info"
}
}
},
"examples": {
"application/json": {
"name": "Miles Meraki",
"email": "miles@meraki.com",
"lastUsedDashboardAt": "2018-02-11T00:00:00.090210Z",
"authentication": {
"mode": "email",
"api": {
"key": {
"created": true
}
},
"twoFactor": {
"enabled": false
},
"saml": {
"enabled": false
}
}
}
}
}
},
"summary": "Returns the identity of the current user.",
"tags": [
"administered",
"monitor",
"identities",
"me"
]
}
},
"/administered/licensing/subscription/entitlements": {
"get": {
"description": "Retrieve the list of purchasable entitlements",
"operationId": "getAdministeredLicensingSubscriptionEntitlements",
"parameters": [
{
"type": "array",
"items": {
"type": "string"
},
"name": "skus",
"in": "query",
"description": "Filter to entitlements with the specified SKUs"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"sku": {
"type": "string",
"description": "The SKU identifier of the entitlement"
},
"name": {
"type": "string",
"description": "The user-facing name of the entitlement"
},
"productType": {
"type": "string",
"description": "The product type of the entitlement"
},
"productClass": {
"type": "string",
"description": "The product class associated with the entitlement"
},
"featureTier": {
"type": "string",
"description": "The feature tier associated with the entitlement (null for add-ons)"
},
"isAddOn": {
"type": "boolean",
"description": "Whether or not the entitlement is an add-on"
}
}
},
"examples": {
"application/json": {
"sku": "LIC-MR-A",
"name": "MR",
"productType": "wireless",
"productClass": "MR",
"featureTier": "advantage",
"isAddOn": false
}
}
}
},
"summary": "Retrieve the list of purchasable entitlements",
"tags": [
"licensing",
"configure",
"subscription",
"entitlements"
]
}
},
"/administered/licensing/subscription/subscriptions": {
"get": {
"description": "List available subscriptions",
"operationId": "getAdministeredLicensingSubscriptionSubscriptions",
"parameters": [
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "subscriptionIds",
"in": "query",
"description": "List of subscription ids to fetch"
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "organizationIds",
"in": "query",
"description": "Organizations to get associated subscriptions for"
},
{
"type": "string",
"format": "date-time",
"name": "startDate",
"in": "query",
"description": "Filter subscriptions by start date, ISO 8601 format. To filter with a range of dates, use 'startDate[]=?' in the request. Accepted options include lt, gt, lte, gte."
},
{
"type": "string",
"format": "date-time",
"name": "endDate",
"in": "query",
"description": "Filter subscriptions by end date, ISO 8601 format. To filter with a range of dates, use 'endDate[ ]=?' in the request. Accepted options include lt, gt, lte, gte."
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"active",
"canceled",
"expired",
"inactive"
]
},
"name": "statuses",
"in": "query",
"description": "List of statuses that returned subscriptions can have"
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"appliance",
"camera",
"cellularGateway",
"sensor",
"switch",
"systemsManager",
"wireless"
]
},
"name": "productTypes",
"in": "query",
"description": "List of product types that returned subscriptions need to have entitlements for."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"subscriptionId": {
"type": "string",
"description": "Subscription's ID"
},
"name": {
"type": "string",
"description": "Subscription name"
},
"description": {
"type": "string",
"description": "Subscription description"
},
"status": {
"type": "string",
"enum": [
"active",
"canceled",
"expired",
"inactive"
],
"description": "Subscription status"
},
"startDate": {
"type": "string",
"format": "date-time",
"description": "Subscription start date"
},
"endDate": {
"type": "string",
"format": "date-time",
"description": "Subscription expiration date"
},
"webOrderId": {
"type": "string",
"description": "Web order id"
},
"productTypes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"appliance",
"camera",
"cellularGateway",
"sensor",
"switch",
"systemsManager",
"wireless"
]
},
"description": "Products the subscription has entitlements for"
},
"entitlements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sku": {
"type": "string",
"description": "SKU of the required product"
},
"seats": {
"type": "object",
"properties": {
"assigned": {
"type": "integer",
"description": "Number of seats in use"
},
"available": {
"type": "integer",
"description": "Number of seats available for use"
},
"limit": {
"type": "integer",
"description": "Total number of seats provided by this subscription for this sku"
}
},
"description": "Seat distribution"
}
}
},
"description": "Entitlement info"
},
"counts": {
"type": "object",
"properties": {
"seats": {
"type": "object",
"properties": {
"assigned": {
"type": "integer",
"description": "Number of seats in use"
},
"available": {
"type": "integer",
"description": "Number of seats available for use"
},
"limit": {
"type": "integer",
"description": "Total number of seats provided by this subscription"
}
},
"description": "Seat distribution"
},
"networks": {
"type": "integer",
"description": "Number of networks bound to this subscription"
}
},
"description": "Numeric breakdown of network and entitlement counts"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"subscriptionId": "2345",
"name": "Corporate subscription",
"description": "A description",
"status": "active",
"startDate": "2027-06-30T00:00:00Z",
"endDate": "2028-06-30T00:00:00Z",
"webOrderId": "55598764",
"productTypes": [
"wireless"
],
"entitlements": [
{
"sku": "LIC-MS-400-L-A",
"seats": {
"assigned": 10,
"available": 15,
"limit": 25
}
}
],
"counts": {
"seats": {
"assigned": 10,
"available": 15,
"limit": 25
},
"networks": 1
}
}
]
}
}
},
"summary": "List available subscriptions",
"tags": [
"licensing",
"configure",
"subscription",
"subscriptions"
]
}
},
"/administered/licensing/subscription/subscriptions/claim": {
"post": {
"description": "Claim a subscription into an organization.",
"operationId": "claimAdministeredLicensingSubscriptionSubscriptions",
"parameters": [
{
"type": "boolean",
"name": "validate",
"in": "query",
"description": "Check if the provided claim key is valid and can be claimed into the organization."
},
{
"name": "claimAdministeredLicensingSubscriptionSubscriptions",
"in": "body",
"schema": {
"type": "object",
"properties": {
"claimKey": {
"type": "string",
"description": "The subscription's claim key"
},
"organizationId": {
"type": "string",
"description": "The id of the organization claiming the subscription"
},
"name": {
"type": "string",
"description": "Friendly name to identify the subscription"
},
"description": {
"type": "string",
"description": "Extra details or notes about the subscription"
}
},
"example": {
"validate": true,
"claimKey": "S2345-6789A-BCDEF-GHJKM",
"organizationId": "12345678910",
"name": "Corporate subscription",
"description": "Subscription for all main offices"
},
"required": [
"claimKey",
"organizationId"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"subscriptionId": {
"type": "string",
"description": "Subscription's ID"
},
"name": {
"type": "string",
"description": "Subscription name"
},
"description": {
"type": "string",
"description": "Subscription description"
},
"status": {
"type": "string",
"enum": [
"active",
"canceled",
"expired",
"inactive"
],
"description": "Subscription status"
},
"startDate": {
"type": "string",
"format": "date-time",
"description": "Subscription start date"
},
"endDate": {
"type": "string",
"format": "date-time",
"description": "Subscription expiration date"
},
"webOrderId": {
"type": "string",
"description": "Web order id"
},
"productTypes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"appliance",
"camera",
"cellularGateway",
"sensor",
"switch",
"systemsManager",
"wireless"
]
},
"description": "Products the subscription has entitlements for"
},
"entitlements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sku": {
"type": "string",
"description": "SKU of the required product"
},
"seats": {
"type": "object",
"properties": {
"assigned": {
"type": "integer",
"description": "Number of seats in use"
},
"available": {
"type": "integer",
"description": "Number of seats available for use"
},
"limit": {
"type": "integer",
"description": "Total number of seats provided by this subscription for this sku"
}
},
"description": "Seat distribution"
}
}
},
"description": "Entitlement info"
},
"counts": {
"type": "object",
"properties": {
"seats": {
"type": "object",
"properties": {
"assigned": {
"type": "integer",
"description": "Number of seats in use"
},
"available": {
"type": "integer",
"description": "Number of seats available for use"
},
"limit": {
"type": "integer",
"description": "Total number of seats provided by this subscription"
}
},
"description": "Seat distribution"
},
"networks": {
"type": "integer",
"description": "Number of networks bound to this subscription"
}
},
"description": "Numeric breakdown of network and entitlement counts"
}
}
},
"examples": {
"application/json": {
"subscriptionId": "2345",
"name": "Corporate subscription",
"description": "A description",
"status": "active",
"startDate": "2027-06-30T00:00:00Z",
"endDate": "2028-06-30T00:00:00Z",
"webOrderId": "55598764",
"productTypes": [
"wireless"
],
"entitlements": [
{
"sku": "LIC-MS-400-L-A",
"seats": {
"assigned": 10,
"available": 15,
"limit": 25
}
}
],
"counts": {
"seats": {
"assigned": 10,
"available": 15,
"limit": 25
},
"networks": 1
}
}
}
}
},
"summary": "Claim a subscription into an organization.",
"tags": [
"licensing",
"configure",
"subscription",
"subscriptions"
]
}
},
"/administered/licensing/subscription/subscriptions/claimKey/validate": {
"post": {
"description": "Find a subscription by claim key. Returns 400 if the key has already been claimed.",
"operationId": "validateAdministeredLicensingSubscriptionSubscriptionsClaimKey",
"parameters": [
{
"name": "validateAdministeredLicensingSubscriptionSubscriptionsClaimKey",
"in": "body",
"schema": {
"type": "object",
"properties": {
"claimKey": {
"type": "string",
"description": "The subscription's claim key"
}
},
"example": {
"claimKey": "S2345-6789A-BCDEF-GHJKM"
},
"required": [
"claimKey"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"subscriptionId": {
"type": "string",
"description": "Subscription's ID"
},
"name": {
"type": "string",
"description": "Subscription name"
},
"description": {
"type": "string",
"description": "Subscription description"
},
"status": {
"type": "string",
"enum": [
"active",
"canceled",
"expired",
"inactive"
],
"description": "Subscription status"
},
"startDate": {
"type": "string",
"format": "date-time",
"description": "Subscription start date"
},
"endDate": {
"type": "string",
"format": "date-time",
"description": "Subscription expiration date"
},
"webOrderId": {
"type": "string",
"description": "Web order id"
},
"productTypes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"appliance",
"camera",
"cellularGateway",
"sensor",
"switch",
"systemsManager",
"wireless"
]
},
"description": "Products the subscription has entitlements for"
},
"entitlements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sku": {
"type": "string",
"description": "SKU of the required product"
},
"seats": {
"type": "object",
"properties": {
"assigned": {
"type": "integer",
"description": "Number of seats in use"
},
"available": {
"type": "integer",
"description": "Number of seats available for use"
},
"limit": {
"type": "integer",
"description": "Total number of seats provided by this subscription for this sku"
}
},
"description": "Seat distribution"
}
}
},
"description": "Entitlement info"
},
"counts": {
"type": "object",
"properties": {
"seats": {
"type": "object",
"properties": {
"assigned": {
"type": "integer",
"description": "Number of seats in use"
},
"available": {
"type": "integer",
"description": "Number of seats available for use"
},
"limit": {
"type": "integer",
"description": "Total number of seats provided by this subscription"
}
},
"description": "Seat distribution"
},
"networks": {
"type": "integer",
"description": "Number of networks bound to this subscription"
}
},
"description": "Numeric breakdown of network and entitlement counts"
}
}
},
"examples": {
"application/json": {
"subscriptionId": "2345",
"name": "Corporate subscription",
"description": "A description",
"status": "active",
"startDate": "2027-06-30T00:00:00Z",
"endDate": "2028-06-30T00:00:00Z",
"webOrderId": "55598764",
"productTypes": [
"wireless"
],
"entitlements": [
{
"sku": "LIC-MS-400-L-A",
"seats": {
"assigned": 10,
"available": 15,
"limit": 25
}
}
],
"counts": {
"seats": {
"assigned": 10,
"available": 15,
"limit": 25
},
"networks": 1
}
}
}
}
},
"summary": "Find a subscription by claim key",
"tags": [
"licensing",
"configure",
"subscription",
"subscriptions",
"claimKey"
]
}
},
"/administered/licensing/subscription/subscriptions/compliance/statuses": {
"get": {
"description": "Get compliance status for requested subscriptions",
"operationId": "getAdministeredLicensingSubscriptionSubscriptionsComplianceStatuses",
"parameters": [
{
"type": "array",
"items": {
"type": "string"
},
"name": "organizationIds",
"in": "query",
"required": true,
"description": "Organizations to get subscription compliance information for"
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "subscriptionIds",
"in": "query",
"description": "Subscription ids"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"subscription": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Subscription's ID"
},
"name": {
"type": "string",
"description": "Friendly name to identify the subscription"
},
"status": {
"type": "string",
"description": "One of the following: \"inactive\" | \"active\" | \"out_of_compliance\" | \"expired\" | \"canceled\""
}
},
"description": "Subscription details"
},
"violations": {
"type": "object",
"properties": {
"byProductClass": {
"type": "array",
"items": {
"type": "object",
"properties": {
"productClass": {
"type": "string",
"description": "Name of the product class"
},
"gracePeriodEndsAt": {
"type": "string",
"description": "End date of the grace period in ISO 8601 format"
},
"missing": {
"type": "object",
"properties": {
"entitlements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sku": {
"type": "string",
"description": "SKU of the required product"
},
"quantity": {
"type": "integer",
"description": "Number required"
}
}
},
"description": "List of missing entitlements"
}
},
"description": "Missing entitlements details"
}
}
},
"description": "List of violations by product class that are not compliance"
}
},
"description": "Violations"
}
}
}
},
"examples": {
"application/json": [
{
"subscription": {
"id": "12345",
"name": "Corporate Subscription",
"status": "active"
},
"violations": {
"byProductClass": [
{
"productClass": "MS 100 Small",
"gracePeriodEndsAt": "2023-12-07T00:00:00Z",
"missing": {
"entitlements": [
{
"sku": "LIC-MS-100-S-E",
"quantity": 11
}
]
}
}
]
}
}
]
}
}
},
"summary": "Get compliance status for requested subscriptions",
"tags": [
"licensing",
"configure",
"subscription",
"subscriptions",
"compliance",
"statuses"
]
}
},
"/administered/licensing/subscription/subscriptions/{subscriptionId}/bind": {
"post": {
"description": "Bind networks to a subscription",
"operationId": "bindAdministeredLicensingSubscriptionSubscription",
"parameters": [
{
"name": "subscriptionId",
"in": "path",
"description": "Subscription ID",
"type": "string",
"required": true
},
{
"type": "boolean",
"name": "validate",
"in": "query",
"description": "Check if the provided networks can be bound to the subscription. Returns any licensing problems and does not commit the results."
},
{
"name": "bindAdministeredLicensingSubscriptionSubscription",
"in": "body",
"schema": {
"type": "object",
"properties": {
"networkIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of network ids to bind to the subscription"
}
},
"example": {
"networkIds": [
"L_1234",
"N_5678"
],
"validate": true
},
"required": [
"networkIds"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"subscriptionId": {
"type": "string",
"description": "Subscription ID"
},
"networks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network ID"
},
"name": {
"type": "string",
"description": "Network name"
}
}
},
"description": "Unbound networks"
},
"errors": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of errors if failed"
},
"insufficientEntitlements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sku": {
"type": "string",
"description": "SKU of the required product"
},
"quantity": {
"type": "integer",
"description": "Number required"
}
}
},
"description": "A list of entitlements required to successfully bind the networks to the subscription"
}
}
},
"examples": {
"application/json": {
"subscriptionId": "XY1234567",
"networks": [
{
"id": "L_1234",
"name": "Corporate network"
}
],
"errors": [
"Insufficient licenses"
],
"insufficientEntitlements": [
{
"sku": "LIC-MS-400-L-A",
"quantity": 5
}
]
}
}
}
},
"summary": "Bind networks to a subscription",
"tags": [
"licensing",
"configure",
"subscription",
"subscriptions"
]
}
},
"/devices/{serial}": {
"get": {
"description": "Return a single device",
"operationId": "getDevice",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the device"
},
"lat": {
"type": "number",
"format": "float",
"description": "Latitude of the device"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude of the device"
},
"address": {
"type": "string",
"description": "Physical address of the device"
},
"notes": {
"type": "string",
"description": "Notes for the device, limited to 255 characters"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of tags assigned to the device"
},
"networkId": {
"type": "string",
"description": "ID of the network the device belongs to"
},
"serial": {
"type": "string",
"description": "Serial number of the device"
},
"model": {
"type": "string",
"description": "Model of the device"
},
"imei": {
"type": "string",
"description": "IMEI of the device, if applicable"
},
"mac": {
"type": "string",
"description": "MAC address of the device"
},
"lanIp": {
"type": "string",
"description": "LAN IP address of the device"
},
"firmware": {
"type": "string",
"description": "Firmware version of the device"
},
"productType": {
"type": "string",
"description": "Product type of the device"
},
"floorPlanId": {
"type": "string",
"description": "The floor plan to associate to this device. null disassociates the device from the floorplan."
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Additional property name"
},
"value": {
"type": "string",
"description": "Additional property value"
}
}
},
"description": "Additional device information"
},
"beaconIdParams": {
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "The UUID to be used in the beacon identifier"
},
"major": {
"type": "integer",
"description": "The major number to be used in the beacon identifier"
},
"minor": {
"type": "integer",
"description": "The minor number to be used in the beacon identifier"
}
},
"description": "Beacon Id parameters with an identifier and major and minor versions"
}
}
},
"examples": {
"application/json": {
"name": "My AP",
"lat": 37.4180951010362,
"lng": -122.098531723022,
"address": "1600 Pennsylvania Ave",
"notes": "My AP's note",
"tags": [
" recently-added "
],
"networkId": "N_24329156",
"serial": "Q234-ABCD-5678",
"model": "MR34",
"imei": "123456789000000",
"mac": "00:11:22:33:44:55",
"lanIp": "1.2.3.4",
"firmware": "wireless-25-14",
"productType": "wireless",
"floorPlanId": "g_2176982374",
"details": [
{
"name": "Catalyst serial",
"value": "123ABC"
}
],
"beaconIdParams": {
"uuid": "00000000-0000-0000-0000-000000000000",
"major": 5,
"minor": 3
}
}
}
}
},
"summary": "Return a single device",
"tags": [
"devices",
"configure"
]
},
"put": {
"description": "Update the attributes of a device",
"operationId": "updateDevice",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "updateDevice",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of a device"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of tags of a device"
},
"lat": {
"type": "number",
"format": "float",
"description": "The latitude of a device"
},
"lng": {
"type": "number",
"format": "float",
"description": "The longitude of a device"
},
"address": {
"type": "string",
"description": "The address of a device"
},
"notes": {
"type": "string",
"description": "The notes for the device. String. Limited to 255 characters."
},
"moveMapMarker": {
"type": "boolean",
"description": "Whether or not to set the latitude and longitude of a device based on the new address. Only applies when lat and lng are not specified."
},
"switchProfileId": {
"type": "string",
"description": "The ID of a switch template to bind to the device (for available switch templates, see the 'Switch Templates' endpoint). Use null to unbind the switch device from the current profile. For a device to be bindable to a switch template, it must (1) be a switch, and (2) belong to a network that is bound to a configuration template."
},
"floorPlanId": {
"type": "string",
"description": "The floor plan to associate to this device. null disassociates the device from the floorplan."
}
},
"example": {
"name": "My AP",
"tags": [
" recently-added "
],
"lat": 37.4180951010362,
"lng": -122.098531723022,
"address": "1600 Pennsylvania Ave",
"notes": "My AP's note",
"moveMapMarker": true,
"switchProfileId": "1234",
"floorPlanId": "g_2176982374"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the device"
},
"lat": {
"type": "number",
"format": "float",
"description": "Latitude of the device"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude of the device"
},
"address": {
"type": "string",
"description": "Physical address of the device"
},
"notes": {
"type": "string",
"description": "Notes for the device, limited to 255 characters"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of tags assigned to the device"
},
"networkId": {
"type": "string",
"description": "ID of the network the device belongs to"
},
"serial": {
"type": "string",
"description": "Serial number of the device"
},
"model": {
"type": "string",
"description": "Model of the device"
},
"imei": {
"type": "string",
"description": "IMEI of the device, if applicable"
},
"mac": {
"type": "string",
"description": "MAC address of the device"
},
"lanIp": {
"type": "string",
"description": "LAN IP address of the device"
},
"firmware": {
"type": "string",
"description": "Firmware version of the device"
},
"productType": {
"type": "string",
"description": "Product type of the device"
},
"floorPlanId": {
"type": "string",
"description": "The floor plan to associate to this device. null disassociates the device from the floorplan."
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Additional property name"
},
"value": {
"type": "string",
"description": "Additional property value"
}
}
},
"description": "Additional device information"
},
"beaconIdParams": {
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "The UUID to be used in the beacon identifier"
},
"major": {
"type": "integer",
"description": "The major number to be used in the beacon identifier"
},
"minor": {
"type": "integer",
"description": "The minor number to be used in the beacon identifier"
}
},
"description": "Beacon Id parameters with an identifier and major and minor versions"
}
}
},
"examples": {
"application/json": {
"name": "My AP",
"lat": 37.4180951010362,
"lng": -122.098531723022,
"address": "1600 Pennsylvania Ave",
"notes": "My AP's note",
"tags": [
" recently-added "
],
"networkId": "N_24329156",
"serial": "Q234-ABCD-5678",
"model": "MR34",
"imei": "123456789000000",
"mac": "00:11:22:33:44:55",
"lanIp": "1.2.3.4",
"firmware": "wireless-25-14",
"productType": "wireless",
"floorPlanId": "g_2176982374",
"details": [
{
"name": "Catalyst serial",
"value": "123ABC"
}
],
"beaconIdParams": {
"uuid": "00000000-0000-0000-0000-000000000000",
"major": 5,
"minor": 3
}
}
}
}
},
"summary": "Update the attributes of a device",
"tags": [
"devices",
"configure"
]
}
},
"/devices/{serial}/appliance/dhcp/subnets": {
"get": {
"description": "Return the DHCP subnet information for an appliance",
"operationId": "getDeviceApplianceDhcpSubnets",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"subnet": "192.168.1.0/24",
"vlanId": 100,
"usedCount": 2,
"freeCount": 251
}
]
}
}
},
"summary": "Return the DHCP subnet information for an appliance",
"tags": [
"appliance",
"monitor",
"dhcp",
"subnets"
]
}
},
"/devices/{serial}/appliance/performance": {
"get": {
"description": "Return the performance score for a single MX. Only primary MX devices supported. If no data is available, a 204 error code is returned.",
"operationId": "getDeviceAppliancePerformance",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"perfScore": 10
}
}
}
},
"summary": "Return the performance score for a single MX",
"tags": [
"appliance",
"monitor",
"performance"
]
}
},
"/devices/{serial}/appliance/prefixes/delegated": {
"get": {
"description": "Return current delegated IPv6 prefixes on an appliance.",
"operationId": "getDeviceAppliancePrefixesDelegated",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"origin": {
"interface": "wan1"
},
"prefix": "2001:db8:3c4d:15::/64",
"counts": {
"assigned": 2,
"available": 253
},
"method": "auto",
"description": "My ISP provider",
"isPreferred": true,
"expiresAt": "2018-05-12T00:00:00Z"
}
]
}
}
},
"summary": "Return current delegated IPv6 prefixes on an appliance.",
"tags": [
"appliance",
"monitor",
"prefixes",
"delegated"
]
}
},
"/devices/{serial}/appliance/prefixes/delegated/vlanAssignments": {
"get": {
"description": "Return prefixes assigned to all IPv6 enabled VLANs on an appliance.",
"operationId": "getDeviceAppliancePrefixesDelegatedVlanAssignments",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"vlan": {
"id": 100,
"name": "My VLAN"
},
"origin": {
"interface": "wan1",
"prefix": "2001:db8:3c4d:15::/64"
},
"status": "Active",
"ipv6": {
"prefix": "2001:db8:3c4d:15::/64",
"address": "2001:db8:3c4d:15::1",
"linkLocal": {
"address": "2001:db8:3c4d:15::1"
},
"solicitedNodeMulticast": {
"address": "2001:db8:3c4d:15::1"
}
}
}
]
}
}
},
"summary": "Return prefixes assigned to all IPv6 enabled VLANs on an appliance.",
"tags": [
"appliance",
"monitor",
"prefixes",
"delegated",
"vlanAssignments"
]
}
},
"/devices/{serial}/appliance/radio/settings": {
"get": {
"description": "Return the radio settings of an appliance",
"operationId": "getDeviceApplianceRadioSettings",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "The device serial"
},
"rfProfileId": {
"type": "string",
"description": "RF Profile ID"
},
"twoFourGhzSettings": {
"type": "object",
"properties": {
"channel": {
"type": "integer",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14
],
"description": "Manual channel for 2.4 GHz"
},
"targetPower": {
"type": "integer",
"description": "Manual target power for 2.4 GHz"
}
},
"description": "Manual radio settings for 2.4 GHz"
},
"fiveGhzSettings": {
"type": "object",
"properties": {
"channel": {
"type": "integer",
"enum": [
36,
40,
44,
48,
52,
56,
60,
64,
100,
104,
108,
112,
116,
120,
124,
128,
132,
136,
140,
144,
149,
153,
157,
161,
165,
169,
173,
177
],
"description": "Manual channel for 5 GHz"
},
"channelWidth": {
"type": "integer",
"enum": [
0,
20,
40,
80,
160
],
"description": "Manual channel width for 5 GHz"
},
"targetPower": {
"type": "integer",
"description": "Manual target power for 5 GHz"
}
},
"description": "Manual radio settings for 5 GHz"
}
}
},
"examples": {
"application/json": {
"serial": "Q234-ABCD-5678",
"rfProfileId": "1234",
"twoFourGhzSettings": {
"channel": 11,
"targetPower": 21
},
"fiveGhzSettings": {
"channel": 149,
"channelWidth": 20,
"targetPower": 15
}
}
}
}
},
"summary": "Return the radio settings of an appliance",
"tags": [
"appliance",
"configure",
"radio",
"settings"
]
},
"put": {
"description": "Update the radio settings of an appliance",
"operationId": "updateDeviceApplianceRadioSettings",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "updateDeviceApplianceRadioSettings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rfProfileId": {
"type": "string",
"description": "The ID of an RF profile to assign to the device. If the value of this parameter is null, the appropriate basic RF profile (indoor or outdoor) will be assigned to the device. Assigning an RF profile will clear ALL manually configured overrides on the device (channel width, channel, power)."
},
"twoFourGhzSettings": {
"type": "object",
"properties": {
"channel": {
"type": "integer",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14
],
"description": "Sets a manual channel for 2.4 GHz. Can be '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13' or '14' or null for using auto channel."
},
"targetPower": {
"type": "integer",
"description": "Set a manual target power for 2.4 GHz. Can be between '5' or '30' or null for using auto power range."
}
},
"description": "Manual radio settings for 2.4 GHz."
},
"fiveGhzSettings": {
"type": "object",
"properties": {
"channel": {
"type": "integer",
"enum": [
36,
40,
44,
48,
52,
56,
60,
64,
100,
104,
108,
112,
116,
120,
124,
128,
132,
136,
140,
144,
149,
153,
157,
161,
165,
169,
173,
177
],
"description": "Sets a manual channel for 5 GHz. Can be '36', '40', '44', '48', '52', '56', '60', '64', '100', '104', '108', '112', '116', '120', '124', '128', '132', '136', '140', '144', '149', '153', '157', '161', '165', '169', '173' or '177' or null for using auto channel."
},
"channelWidth": {
"type": "integer",
"enum": [
0,
20,
40,
80,
160
],
"description": "Sets a manual channel width for 5 GHz. Can be '0', '20', '40', '80' or '160' or null for using auto channel width."
},
"targetPower": {
"type": "integer",
"description": "Set a manual target power for 5 GHz. Can be between '8' or '30' or null for using auto power range."
}
},
"description": "Manual radio settings for 5 GHz."
}
},
"example": {
"rfProfileId": "1234",
"twoFourGhzSettings": {
"channel": 11,
"targetPower": 21
},
"fiveGhzSettings": {
"channel": 149,
"channelWidth": 20,
"targetPower": 15
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "The device serial"
},
"rfProfileId": {
"type": "string",
"description": "RF Profile ID"
},
"twoFourGhzSettings": {
"type": "object",
"properties": {
"channel": {
"type": "integer",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14
],
"description": "Manual channel for 2.4 GHz"
},
"targetPower": {
"type": "integer",
"description": "Manual target power for 2.4 GHz"
}
},
"description": "Manual radio settings for 2.4 GHz"
},
"fiveGhzSettings": {
"type": "object",
"properties": {
"channel": {
"type": "integer",
"enum": [
36,
40,
44,
48,
52,
56,
60,
64,
100,
104,
108,
112,
116,
120,
124,
128,
132,
136,
140,
144,
149,
153,
157,
161,
165,
169,
173,
177
],
"description": "Manual channel for 5 GHz"
},
"channelWidth": {
"type": "integer",
"enum": [
0,
20,
40,
80,
160
],
"description": "Manual channel width for 5 GHz"
},
"targetPower": {
"type": "integer",
"description": "Manual target power for 5 GHz"
}
},
"description": "Manual radio settings for 5 GHz"
}
}
},
"examples": {
"application/json": {
"serial": "Q234-ABCD-5678",
"rfProfileId": "1234",
"twoFourGhzSettings": {
"channel": 11,
"targetPower": 21
},
"fiveGhzSettings": {
"channel": 149,
"channelWidth": 20,
"targetPower": 15
}
}
}
}
},
"summary": "Update the radio settings of an appliance",
"tags": [
"appliance",
"configure",
"radio",
"settings"
]
}
},
"/devices/{serial}/appliance/uplinks/settings": {
"get": {
"description": "Return the uplink settings for an MX appliance",
"operationId": "getDeviceApplianceUplinksSettings",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"interfaces": {
"type": "object",
"properties": {
"wan1": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable or disable the interface."
},
"vlanTagging": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether VLAN tagging is enabled."
},
"vlanId": {
"type": "integer",
"description": "The ID of the VLAN to use for VLAN tagging."
}
},
"description": "VLAN tagging settings."
},
"svis": {
"type": "object",
"properties": {
"ipv4": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"dynamic",
"static"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "IP address and subnet mask when in static mode."
},
"gateway": {
"type": "string",
"description": "Gateway IP address when in static mode."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv4 settings for static/dynamic mode."
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"dynamic",
"static"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "Static address that will override the one(s) received by SLAAC."
},
"gateway": {
"type": "string",
"description": "Static gateway that will override the one received by autoconf."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv6 settings for static/dynamic mode."
}
},
"description": "SVI settings by protocol."
},
"pppoe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE is enabled."
},
"authentication": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE authentication is enabled."
},
"username": {
"type": "string",
"description": "Username for PPPoE authentication."
}
},
"description": "Settings for PPPoE Authentication."
}
},
"description": "Configuration options for PPPoE."
},
"sgt": {
"type": "object",
"properties": {
"peerSgtCapable": {
"type": "boolean",
"description": "Whether SGT traffic will be propagated on the WAN port. This can only be set to true when in passthrough mode"
}
},
"description": "Configuration options for SGT",
"x-release-stage": "beta"
}
},
"description": "WAN 1 settings."
},
"wan2": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable or disable the interface."
},
"vlanTagging": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether VLAN tagging is enabled."
},
"vlanId": {
"type": "integer",
"description": "The ID of the VLAN to use for VLAN tagging."
}
},
"description": "VLAN tagging settings."
},
"svis": {
"type": "object",
"properties": {
"ipv4": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"dynamic",
"static"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "IP address and subnet mask when in static mode."
},
"gateway": {
"type": "string",
"description": "Gateway IP address when in static mode."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv4 settings for static/dynamic mode."
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"dynamic",
"static"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "Static address that will override the one(s) received by SLAAC."
},
"gateway": {
"type": "string",
"description": "Static gateway that will override the one received by autoconf."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv6 settings for static/dynamic mode."
}
},
"description": "SVI settings by protocol."
},
"pppoe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE is enabled."
},
"authentication": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE authentication is enabled."
},
"username": {
"type": "string",
"description": "Username for PPPoE authentication."
}
},
"description": "Settings for PPPoE Authentication."
}
},
"description": "Configuration options for PPPoE."
},
"sgt": {
"type": "object",
"properties": {
"peerSgtCapable": {
"type": "boolean",
"description": "Whether SGT traffic will be propagated on the WAN port. This can only be set to true when in passthrough mode"
}
},
"description": "Configuration options for SGT",
"x-release-stage": "beta"
}
},
"description": "WAN 2 settings."
}
},
"description": "Interface settings."
}
}
},
"examples": {
"application/json": {
"interfaces": {
"wan1": {
"enabled": true,
"vlanTagging": {
"enabled": true,
"vlanId": 1
},
"svis": {
"ipv4": {
"assignmentMode": "static",
"address": "9.10.11.10/16",
"gateway": "13.14.15.16",
"nameservers": {
"addresses": [
"1.2.3.4"
]
}
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3::4",
"gateway": "1:2:3::5",
"nameservers": {
"addresses": [
"1001:4860:4860::8888",
"1001:4860:4860::8844"
]
}
}
},
"pppoe": {
"enabled": true,
"authentication": {
"enabled": true,
"username": "username"
}
},
"sgt": {
"peerSgtCapable": true
}
},
"wan2": {
"enabled": true,
"vlanTagging": {
"enabled": true,
"vlanId": 1
},
"svis": {
"ipv4": {
"assignmentMode": "static",
"address": "9.10.11.10/16",
"gateway": "13.14.15.16",
"nameservers": {
"addresses": [
"1.2.3.4"
]
}
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3::4",
"gateway": "1:2:3::5",
"nameservers": {
"addresses": [
"1001:4860:4860::8888",
"1001:4860:4860::8844"
]
}
}
},
"pppoe": {
"enabled": true,
"authentication": {
"enabled": true,
"username": "username"
}
},
"sgt": {
"peerSgtCapable": true
}
}
}
}
}
}
},
"summary": "Return the uplink settings for an MX appliance",
"tags": [
"appliance",
"configure",
"uplinks",
"settings"
]
},
"put": {
"description": "Update the uplink settings for an MX appliance",
"operationId": "updateDeviceApplianceUplinksSettings",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "updateDeviceApplianceUplinksSettings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"interfaces": {
"type": "object",
"properties": {
"wan1": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable or disable the interface."
},
"vlanTagging": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether VLAN tagging is enabled."
},
"vlanId": {
"type": "integer",
"description": "The ID of the VLAN to use for VLAN tagging."
}
},
"description": "VLAN tagging settings."
},
"svis": {
"type": "object",
"properties": {
"ipv4": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"dynamic",
"static"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "IP address and subnet mask when in static mode."
},
"gateway": {
"type": "string",
"description": "Gateway IP address when in static mode."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv4 settings for static/dynamic mode."
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"dynamic",
"static"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "Static address that will override the one(s) received by SLAAC."
},
"gateway": {
"type": "string",
"description": "Static gateway that will override the one received by autoconf."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv6 settings for static/dynamic mode."
}
},
"description": "SVI settings by protocol."
},
"pppoe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE is enabled."
},
"authentication": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE authentication is enabled."
},
"username": {
"type": "string",
"description": "Username for PPPoE authentication."
},
"password": {
"type": "string",
"description": "Password for PPPoE authentication. This parameter is not returned."
}
},
"description": "Settings for PPPoE Authentication."
}
},
"description": "Configuration options for PPPoE."
},
"sgt": {
"type": "object",
"properties": {
"peerSgtCapable": {
"type": "boolean",
"description": "Whether SGT traffic will be propagated on the WAN port. This can only be set to true when in passthrough mode"
}
},
"description": "Configuration options for SGT",
"x-release-stage": "beta"
}
},
"description": "WAN 1 settings."
},
"wan2": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable or disable the interface."
},
"vlanTagging": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether VLAN tagging is enabled."
},
"vlanId": {
"type": "integer",
"description": "The ID of the VLAN to use for VLAN tagging."
}
},
"description": "VLAN tagging settings."
},
"svis": {
"type": "object",
"properties": {
"ipv4": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"dynamic",
"static"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "IP address and subnet mask when in static mode."
},
"gateway": {
"type": "string",
"description": "Gateway IP address when in static mode."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv4 settings for static/dynamic mode."
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"dynamic",
"static"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "Static address that will override the one(s) received by SLAAC."
},
"gateway": {
"type": "string",
"description": "Static gateway that will override the one received by autoconf."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv6 settings for static/dynamic mode."
}
},
"description": "SVI settings by protocol."
},
"pppoe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE is enabled."
},
"authentication": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE authentication is enabled."
},
"username": {
"type": "string",
"description": "Username for PPPoE authentication."
},
"password": {
"type": "string",
"description": "Password for PPPoE authentication. This parameter is not returned."
}
},
"description": "Settings for PPPoE Authentication."
}
},
"description": "Configuration options for PPPoE."
}
},
"description": "WAN 2 settings."
}
},
"description": "Interface settings."
}
},
"example": {
"interfaces": {
"wan1": {
"enabled": true,
"vlanTagging": {
"enabled": true,
"vlanId": 1
},
"svis": {
"ipv4": {
"assignmentMode": "static",
"address": "9.10.11.10/16",
"gateway": "13.14.15.16",
"nameservers": {
"addresses": [
"1.2.3.4"
]
}
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3::4",
"gateway": "1:2:3::5",
"nameservers": {
"addresses": [
"1001:4860:4860::8888",
"1001:4860:4860::8844"
]
}
}
},
"pppoe": {
"enabled": true,
"authentication": {
"enabled": true,
"username": "username",
"password": "password"
}
},
"sgt": {
"peerSgtCapable": true
}
},
"wan2": {
"enabled": true,
"vlanTagging": {
"enabled": true,
"vlanId": 1
},
"svis": {
"ipv4": {
"assignmentMode": "static",
"address": "9.10.11.10/16",
"gateway": "13.14.15.16",
"nameservers": {
"addresses": [
"1.2.3.4"
]
}
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3::4",
"gateway": "1:2:3::5",
"nameservers": {
"addresses": [
"1001:4860:4860::8888",
"1001:4860:4860::8844"
]
}
}
},
"pppoe": {
"enabled": true,
"authentication": {
"enabled": true,
"username": "username",
"password": "password"
}
}
}
}
},
"required": [
"interfaces"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"interfaces": {
"type": "object",
"properties": {
"wan1": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable or disable the interface."
},
"vlanTagging": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether VLAN tagging is enabled."
},
"vlanId": {
"type": "integer",
"description": "The ID of the VLAN to use for VLAN tagging."
}
},
"description": "VLAN tagging settings."
},
"svis": {
"type": "object",
"properties": {
"ipv4": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"dynamic",
"static"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "IP address and subnet mask when in static mode."
},
"gateway": {
"type": "string",
"description": "Gateway IP address when in static mode."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv4 settings for static/dynamic mode."
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"dynamic",
"static"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "Static address that will override the one(s) received by SLAAC."
},
"gateway": {
"type": "string",
"description": "Static gateway that will override the one received by autoconf."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv6 settings for static/dynamic mode."
}
},
"description": "SVI settings by protocol."
},
"pppoe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE is enabled."
},
"authentication": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE authentication is enabled."
},
"username": {
"type": "string",
"description": "Username for PPPoE authentication."
}
},
"description": "Settings for PPPoE Authentication."
}
},
"description": "Configuration options for PPPoE."
},
"sgt": {
"type": "object",
"properties": {
"peerSgtCapable": {
"type": "boolean",
"description": "Whether SGT traffic will be propagated on the WAN port. This can only be set to true when in passthrough mode"
}
},
"description": "Configuration options for SGT",
"x-release-stage": "beta"
}
},
"description": "WAN 1 settings."
},
"wan2": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable or disable the interface."
},
"vlanTagging": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether VLAN tagging is enabled."
},
"vlanId": {
"type": "integer",
"description": "The ID of the VLAN to use for VLAN tagging."
}
},
"description": "VLAN tagging settings."
},
"svis": {
"type": "object",
"properties": {
"ipv4": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"dynamic",
"static"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "IP address and subnet mask when in static mode."
},
"gateway": {
"type": "string",
"description": "Gateway IP address when in static mode."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv4 settings for static/dynamic mode."
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"enum": [
"dynamic",
"static"
],
"description": "The assignment mode for this SVI. Applies only when PPPoE is disabled."
},
"address": {
"type": "string",
"description": "Static address that will override the one(s) received by SLAAC."
},
"gateway": {
"type": "string",
"description": "Static gateway that will override the one received by autoconf."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The nameserver settings for this SVI."
}
},
"description": "IPv6 settings for static/dynamic mode."
}
},
"description": "SVI settings by protocol."
},
"pppoe": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE is enabled."
},
"authentication": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether PPPoE authentication is enabled."
},
"username": {
"type": "string",
"description": "Username for PPPoE authentication."
}
},
"description": "Settings for PPPoE Authentication."
}
},
"description": "Configuration options for PPPoE."
},
"sgt": {
"type": "object",
"properties": {
"peerSgtCapable": {
"type": "boolean",
"description": "Whether SGT traffic will be propagated on the WAN port. This can only be set to true when in passthrough mode"
}
},
"description": "Configuration options for SGT",
"x-release-stage": "beta"
}
},
"description": "WAN 2 settings."
}
},
"description": "Interface settings."
}
}
},
"examples": {
"application/json": {
"interfaces": {
"wan1": {
"enabled": true,
"vlanTagging": {
"enabled": true,
"vlanId": 1
},
"svis": {
"ipv4": {
"assignmentMode": "static",
"address": "9.10.11.10/16",
"gateway": "13.14.15.16",
"nameservers": {
"addresses": [
"1.2.3.4"
]
}
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3::4",
"gateway": "1:2:3::5",
"nameservers": {
"addresses": [
"1001:4860:4860::8888",
"1001:4860:4860::8844"
]
}
}
},
"pppoe": {
"enabled": true,
"authentication": {
"enabled": true,
"username": "username"
}
},
"sgt": {
"peerSgtCapable": true
}
},
"wan2": {
"enabled": true,
"vlanTagging": {
"enabled": true,
"vlanId": 1
},
"svis": {
"ipv4": {
"assignmentMode": "static",
"address": "9.10.11.10/16",
"gateway": "13.14.15.16",
"nameservers": {
"addresses": [
"1.2.3.4"
]
}
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3::4",
"gateway": "1:2:3::5",
"nameservers": {
"addresses": [
"1001:4860:4860::8888",
"1001:4860:4860::8844"
]
}
}
},
"pppoe": {
"enabled": true,
"authentication": {
"enabled": true,
"username": "username"
}
},
"sgt": {
"peerSgtCapable": true
}
}
}
}
}
}
},
"summary": "Update the uplink settings for an MX appliance",
"tags": [
"appliance",
"configure",
"uplinks",
"settings"
]
}
},
"/devices/{serial}/appliance/vmx/authenticationToken": {
"post": {
"description": "Generate a new vMX authentication token",
"operationId": "createDeviceApplianceVmxAuthenticationToken",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "The newly generated authentication token for the vMX instance"
},
"expiresAt": {
"type": "string",
"description": "The expiration time for the token, in ISO 8601 format"
}
}
},
"examples": {
"application/json": {
"token": "ffc0b7b578b61be5bd1d172132c78044/9af03bd84d474",
"expiresAt": "2021-06-18T12:40:10Z"
}
}
}
},
"summary": "Generate a new vMX authentication token",
"tags": [
"appliance",
"configure",
"vmx",
"authenticationToken"
]
}
},
"/devices/{serial}/blinkLeds": {
"post": {
"description": "Blink the LEDs on a device",
"operationId": "blinkDeviceLeds",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "blinkDeviceLeds",
"in": "body",
"schema": {
"type": "object",
"properties": {
"duration": {
"type": "integer",
"description": "The duration in seconds. Must be between 5 and 120. Default is 20 seconds"
},
"period": {
"type": "integer",
"description": "The period in milliseconds. Must be between 100 and 1000. Default is 160 milliseconds"
},
"duty": {
"type": "integer",
"description": "The duty cycle as the percent active. Must be between 10 and 90. Default is 50."
}
},
"example": {
"duration": 20,
"period": 160,
"duty": 50
}
}
}
],
"responses": {
"202": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"duration": {
"type": "integer",
"description": "The duration in seconds. Will be between 5 and 120. Default is 20 seconds"
},
"period": {
"type": "integer",
"description": "The period in milliseconds. Will be between 100 and 1000. Default is 160 milliseconds"
},
"duty": {
"type": "integer",
"description": "The duty cycle as the percent active. Will be between 10 and 90. Default is 50"
}
}
},
"examples": {
"application/json": {
"duration": 20,
"period": 160,
"duty": 50
}
}
}
},
"summary": "Blink the LEDs on a device",
"tags": [
"devices",
"liveTools"
]
}
},
"/devices/{serial}/camera/analytics/live": {
"get": {
"deprecated": true,
"description": "Returns live state from camera analytics zones",
"operationId": "getDeviceCameraAnalyticsLive",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"ts": {
"type": "string",
"description": "The current time"
},
"zones": {
"type": "object",
"properties": {
"zoneId": {
"type": "object",
"properties": {
"person": {
"type": "integer",
"description": "The count per type, dynamic"
}
},
"description": "The zone state, dynamic"
}
},
"description": "The zones state"
}
}
},
"examples": {
"application/json": {
"ts": "2018-08-15T18:32:38.123Z",
"zones": {
"zoneId": {
"person": 0
}
}
}
}
}
},
"summary": "Returns live state from camera analytics zones",
"tags": [
"camera",
"monitor",
"analytics",
"live"
]
}
},
"/devices/{serial}/camera/analytics/overview": {
"get": {
"deprecated": true,
"description": "Returns an overview of aggregate analytics data for a timespan",
"operationId": "getDeviceCameraAnalyticsOverview",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 365 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 7 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 604800,
"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 7 days. The default is 1 hour."
},
{
"type": "string",
"enum": [
"person",
"vehicle"
],
"name": "objectType",
"in": "query",
"description": "[optional] The object type for which analytics will be retrieved. The default object type is person. The available types are [person, vehicle]."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startTs": {
"type": "string",
"format": "date-time",
"description": "The start time"
},
"endTs": {
"type": "string",
"format": "date-time",
"description": "The end time"
},
"zoneId": {
"type": "integer",
"description": "The zone id"
},
"entrances": {
"type": "integer",
"description": "The number of sentrances"
},
"averageCount": {
"type": "number",
"format": "float",
"description": "The average count"
}
}
}
},
"examples": {
"application/json": [
{
"startTs": "2018-08-15T18:32:38.123Z",
"endTs": "2018-08-15T18:33:38.123Z",
"zoneId": 0,
"entrances": 254,
"averageCount": 5.0
}
]
}
}
},
"summary": "Returns an overview of aggregate analytics data for a timespan",
"tags": [
"camera",
"monitor",
"analytics",
"overview"
]
}
},
"/devices/{serial}/camera/analytics/recent": {
"get": {
"deprecated": true,
"description": "Returns most recent record for analytics zones",
"operationId": "getDeviceCameraAnalyticsRecent",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"type": "string",
"enum": [
"person",
"vehicle"
],
"name": "objectType",
"in": "query",
"description": "[optional] The object type for which analytics will be retrieved. The default object type is person. The available types are [person, vehicle]."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startTs": {
"type": "string",
"format": "date-time",
"description": "The start time"
},
"endTs": {
"type": "string",
"format": "date-time",
"description": "The end time"
},
"zoneId": {
"type": "integer",
"description": "The zone id"
},
"entrances": {
"type": "integer",
"description": "The number of entrances"
},
"averageCount": {
"type": "number",
"format": "float",
"description": "The average count"
}
}
}
},
"examples": {
"application/json": [
{
"startTs": "2018-08-15T18:32:38.123Z",
"endTs": "2018-08-15T18:33:38.123Z",
"zoneId": 0,
"entrances": 10,
"averageCount": 2.54
}
]
}
}
},
"summary": "Returns most recent record for analytics zones",
"tags": [
"camera",
"monitor",
"analytics",
"recent"
]
}
},
"/devices/{serial}/camera/analytics/zones": {
"get": {
"deprecated": true,
"description": "Returns all configured analytic zones for this camera",
"operationId": "getDeviceCameraAnalyticsZones",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The zone ID"
},
"type": {
"type": "string",
"description": "The zone type"
},
"label": {
"type": "string",
"description": "The zone label"
},
"regionOfInterest": {
"type": "object",
"properties": {
"x0": {
"type": "string",
"description": "The x0 coordinate"
},
"y0": {
"type": "string",
"description": "The y0 coordinate"
},
"x1": {
"type": "string",
"description": "The x1 coordinate"
},
"y1": {
"type": "string",
"description": "The y1 coordinate"
}
},
"description": "The region of interest"
}
}
}
},
"examples": {
"application/json": [
{
"id": "0",
"type": "occupancy",
"label": "Full Frame",
"regionOfInterest": {
"x0": "0.00",
"y0": "0.00",
"x1": "1.00",
"y1": "1.00"
}
}
]
}
}
},
"summary": "Returns all configured analytic zones for this camera",
"tags": [
"camera",
"monitor",
"analytics",
"zones"
]
}
},
"/devices/{serial}/camera/analytics/zones/{zoneId}/history": {
"get": {
"deprecated": true,
"description": "Return historical records for analytic zones",
"operationId": "getDeviceCameraAnalyticsZoneHistory",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "zoneId",
"in": "path",
"description": "Zone ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 365 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 14 hours after t0."
},
{
"type": "number",
"format": "float",
"maximum": 50400,
"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 14 hours. The default is 1 hour."
},
{
"type": "integer",
"name": "resolution",
"in": "query",
"description": "The time resolution in seconds for returned data. The valid resolutions are: 60. The default is 60."
},
{
"type": "string",
"enum": [
"person",
"vehicle"
],
"name": "objectType",
"in": "query",
"description": "[optional] The object type for which analytics will be retrieved. The default object type is person. The available types are [person, vehicle]."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startTs": {
"type": "string",
"format": "date-time",
"description": "The start time"
},
"endTs": {
"type": "string",
"format": "date-time",
"description": "The end time"
},
"entrances": {
"type": "integer",
"description": "The number of entrances"
},
"averageCount": {
"type": "number",
"format": "float",
"description": "The average count"
}
}
}
},
"examples": {
"application/json": [
{
"startTs": "2018-08-15T18:32:38.123Z",
"endTs": "2018-08-15T18:33:38.123Z",
"entrances": 5,
"averageCount": 1.5
}
]
}
}
},
"summary": "Return historical records for analytic zones",
"tags": [
"camera",
"monitor",
"analytics",
"zones",
"history"
]
}
},
"/devices/{serial}/camera/customAnalytics": {
"get": {
"description": "Return custom analytics settings for a camera",
"operationId": "getDeviceCameraCustomAnalytics",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether custom analytics is enabled"
},
"artifactId": {
"type": "string",
"description": "Custom analytics artifact ID"
},
"parameters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the parameter"
},
"value": {
"type": "number",
"format": "float",
"description": "Value of the parameter"
}
}
},
"description": "Parameters for the custom analytics workload"
}
}
},
"examples": {
"application/json": {
"enabled": true,
"artifactId": "1",
"parameters": [
{
"name": "detection_threshold",
"value": 0.5
}
]
}
}
}
},
"summary": "Return custom analytics settings for a camera",
"tags": [
"camera",
"configure",
"customAnalytics"
]
},
"put": {
"description": "Update custom analytics settings for a camera",
"operationId": "updateDeviceCameraCustomAnalytics",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "updateDeviceCameraCustomAnalytics",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable custom analytics"
},
"artifactId": {
"type": "string",
"description": "The ID of the custom analytics artifact"
},
"parameters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the parameter"
},
"value": {
"type": "string",
"description": "Value of the parameter"
}
},
"required": [
"name",
"value"
]
},
"description": "Parameters for the custom analytics workload"
}
},
"example": {
"enabled": true,
"artifactId": "1",
"parameters": [
{
"name": "detection_threshold",
"value": "0.5"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether custom analytics is enabled"
},
"artifactId": {
"type": "string",
"description": "Custom analytics artifact ID"
},
"parameters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the parameter"
},
"value": {
"type": "number",
"format": "float",
"description": "Value of the parameter"
}
}
},
"description": "Parameters for the custom analytics workload"
}
}
},
"examples": {
"application/json": {
"enabled": true,
"artifactId": "1",
"parameters": [
{
"name": "detection_threshold",
"value": 0.5
}
]
}
}
}
},
"summary": "Update custom analytics settings for a camera",
"tags": [
"camera",
"configure",
"customAnalytics"
]
}
},
"/devices/{serial}/camera/generateSnapshot": {
"post": {
"description": "Generate a snapshot of what the camera sees at the specified time and return a link to that image.",
"operationId": "generateDeviceCameraSnapshot",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "generateDeviceCameraSnapshot",
"in": "body",
"schema": {
"type": "object",
"properties": {
"timestamp": {
"type": "string",
"format": "date-time",
"description": "[optional] The snapshot will be taken from this time on the camera. The timestamp is expected to be in ISO 8601 format. If no timestamp is specified, we will assume current time."
},
"fullframe": {
"type": "boolean",
"description": "[optional] If set to \"true\" the snapshot will be taken at full sensor resolution. This will error if used with timestamp."
}
},
"example": {
"timestamp": "2021-04-30T15:18:08Z",
"fullframe": false
}
}
}
],
"responses": {
"202": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"url": "https://spn4.meraki.com/stream/jpeg/snapshot/b2d123asdf423qd22d2",
"expiry": "Access to the image will expire at 2018-12-11T03:12:39Z."
}
}
}
},
"summary": "Generate a snapshot of what the camera sees at the specified time and return a link to that image.",
"tags": [
"camera",
"monitor"
]
}
},
"/devices/{serial}/camera/qualityAndRetention": {
"get": {
"description": "Returns quality and retention settings for the given camera",
"operationId": "getDeviceCameraQualityAndRetention",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"motionBasedRetentionEnabled": false,
"audioRecordingEnabled": false,
"restrictedBandwidthModeEnabled": false,
"profileId": "1234",
"quality": "Standard",
"motionDetectorVersion": 2,
"resolution": "1280x720"
}
}
}
},
"summary": "Returns quality and retention settings for the given camera",
"tags": [
"camera",
"configure",
"qualityAndRetention"
]
},
"put": {
"description": "Update quality and retention settings for the given camera",
"operationId": "updateDeviceCameraQualityAndRetention",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "updateDeviceCameraQualityAndRetention",
"in": "body",
"schema": {
"type": "object",
"properties": {
"profileId": {
"type": "string",
"description": "The ID of a quality and retention profile to assign to the camera. The profile's settings will override all of the per-camera quality and retention settings. If the value of this parameter is null, any existing profile will be unassigned from the camera."
},
"motionBasedRetentionEnabled": {
"type": "boolean",
"description": "Boolean indicating if motion-based retention is enabled(true) or disabled(false) on the camera."
},
"audioRecordingEnabled": {
"type": "boolean",
"description": "Boolean indicating if audio recording is enabled(true) or disabled(false) on the camera"
},
"restrictedBandwidthModeEnabled": {
"type": "boolean",
"description": "Boolean indicating if restricted bandwidth is enabled(true) or disabled(false) on the camera. This setting does not apply to MV2 cameras."
},
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'High' or 'Enhanced'. Not all qualities are supported by every camera model."
},
"resolution": {
"type": "string",
"enum": [
"1080x1080",
"1280x720",
"1920x1080",
"2112x2112",
"2688x1512",
"2880x2880",
"3840x2160"
],
"description": "Resolution of the camera. Can be one of '1280x720', '1920x1080', '1080x1080', '2112x2112', '2880x2880', '2688x1512' or '3840x2160'.Not all resolutions are supported by every camera model."
},
"motionDetectorVersion": {
"type": "integer",
"enum": [
1,
2
],
"description": "The version of the motion detector that will be used by the camera. Only applies to Gen 2 cameras. Defaults to v2."
}
},
"example": {
"motionBasedRetentionEnabled": false,
"audioRecordingEnabled": false,
"restrictedBandwidthModeEnabled": false,
"profileId": "1234",
"quality": "Standard",
"motionDetectorVersion": 2,
"resolution": "1280x720"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"motionBasedRetentionEnabled": false,
"audioRecordingEnabled": false,
"restrictedBandwidthModeEnabled": false,
"profileId": "1234",
"quality": "Standard",
"motionDetectorVersion": 2,
"resolution": "1280x720"
}
}
}
},
"summary": "Update quality and retention settings for the given camera",
"tags": [
"camera",
"configure",
"qualityAndRetention"
]
}
},
"/devices/{serial}/camera/sense": {
"get": {
"description": "Returns sense settings for a given camera",
"operationId": "getDeviceCameraSense",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"senseEnabled": true,
"audioDetection": {
"enabled": false
},
"mqttBrokerId": "1234",
"mqttTopics": [
"/merakimv/Q2AA-AAAA-1111/raw_detections",
"/merakimv/Q2AA-AAAA-1111/light"
]
}
}
}
},
"summary": "Returns sense settings for a given camera",
"tags": [
"camera",
"configure",
"sense"
]
},
"put": {
"description": "Update sense settings for the given camera",
"operationId": "updateDeviceCameraSense",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "updateDeviceCameraSense",
"in": "body",
"schema": {
"type": "object",
"properties": {
"senseEnabled": {
"type": "boolean",
"description": "Boolean indicating if sense(license) is enabled(true) or disabled(false) on the camera"
},
"mqttBrokerId": {
"type": "string",
"description": "The ID of the MQTT broker to be enabled on the camera. A value of null will disable MQTT on the camera"
},
"audioDetection": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Boolean indicating if audio detection is enabled(true) or disabled(false) on the camera"
}
},
"description": "The details of the audio detection config."
},
"detectionModelId": {
"type": "string",
"description": "The ID of the object detection model"
}
},
"example": {
"senseEnabled": true,
"audioDetection": {
"enabled": false
},
"mqttBrokerId": "1234"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"senseEnabled": true,
"audioDetection": {
"enabled": false
},
"mqttBrokerId": "1234",
"mqttTopics": [
"/merakimv/Q2AA-AAAA-1111/raw_detections",
"/merakimv/Q2AA-AAAA-1111/light"
]
}
}
}
},
"summary": "Update sense settings for the given camera",
"tags": [
"camera",
"configure",
"sense"
]
}
},
"/devices/{serial}/camera/sense/objectDetectionModels": {
"get": {
"description": "Returns the MV Sense object detection model list for the given camera",
"operationId": "getDeviceCameraSenseObjectDetectionModels",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"id": "0",
"description": "Model A"
}
]
}
}
},
"summary": "Returns the MV Sense object detection model list for the given camera",
"tags": [
"camera",
"configure",
"sense",
"objectDetectionModels"
]
}
},
"/devices/{serial}/camera/video/settings": {
"get": {
"description": "Returns video settings for the given camera",
"operationId": "getDeviceCameraVideoSettings",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"externalRtspEnabled": {
"type": "boolean",
"description": "Boolean indicating if external rtsp stream is exposed"
},
"rtspUrl": {
"type": "string",
"description": "External rstp url. Will only be returned if external rtsp stream is exposed"
}
}
},
"examples": {
"application/json": {
"externalRtspEnabled": true,
"rtspUrl": "rtsp://10.0.0.1:9000/live"
}
}
}
},
"summary": "Returns video settings for the given camera",
"tags": [
"camera",
"configure",
"video",
"settings"
]
},
"put": {
"description": "Update video settings for the given camera",
"operationId": "updateDeviceCameraVideoSettings",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "updateDeviceCameraVideoSettings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"externalRtspEnabled": {
"type": "boolean",
"description": "Boolean indicating if external rtsp stream is exposed"
}
},
"example": {
"externalRtspEnabled": true
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"externalRtspEnabled": {
"type": "boolean",
"description": "Boolean indicating if external rtsp stream is exposed"
},
"rtspUrl": {
"type": "string",
"description": "External rstp url. Will only be returned if external rtsp stream is exposed"
}
}
},
"examples": {
"application/json": {
"externalRtspEnabled": true,
"rtspUrl": "rtsp://10.0.0.1:9000/live"
}
}
}
},
"summary": "Update video settings for the given camera",
"tags": [
"camera",
"configure",
"video",
"settings"
]
}
},
"/devices/{serial}/camera/videoLink": {
"get": {
"description": "Returns video link to the specified camera. If a timestamp is supplied, it links to that timestamp.",
"operationId": "getDeviceCameraVideoLink",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"type": "string",
"format": "date-time",
"name": "timestamp",
"in": "query",
"description": "[optional] The video link will start at this time. The timestamp should be a string in ISO8601 format. If no timestamp is specified, we will assume current time."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"url": "https://nxx.meraki.com/office-cameras/n/bs0a1k/manage/nodes/new_list/29048243992402?timestamp=1535732570077",
"visionUrl": "https://vision.meraki.com/n/6482158978508419/cameras/29048243992402?ts=1535732570077"
}
}
}
},
"summary": "Returns video link to the specified camera",
"tags": [
"camera",
"configure",
"videoLink"
]
}
},
"/devices/{serial}/camera/wirelessProfiles": {
"get": {
"description": "Returns wireless profile assigned to the given camera",
"operationId": "getDeviceCameraWirelessProfiles",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"ids": {
"primary": "3",
"secondary": "2",
"backup": "1"
}
}
}
}
},
"summary": "Returns wireless profile assigned to the given camera",
"tags": [
"camera",
"configure",
"wirelessProfiles"
]
},
"put": {
"description": "Assign wireless profiles to the given camera. Incremental updates are not supported, all profile assignment need to be supplied at once.",
"operationId": "updateDeviceCameraWirelessProfiles",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "updateDeviceCameraWirelessProfiles",
"in": "body",
"schema": {
"type": "object",
"properties": {
"ids": {
"type": "object",
"properties": {
"primary": {
"type": "string",
"description": "The id of the primary wireless profile"
},
"secondary": {
"type": "string",
"description": "The id of the secondary wireless profile"
},
"backup": {
"type": "string",
"description": "The id of the backup wireless profile"
}
},
"description": "The ids of the wireless profile to assign to the given camera"
}
},
"example": {
"ids": {
"primary": "3",
"secondary": "2",
"backup": "1"
}
},
"required": [
"ids"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"ids": {
"primary": "3",
"secondary": "2",
"backup": "1"
}
}
}
}
},
"summary": "Assign wireless profiles to the given camera",
"tags": [
"camera",
"configure",
"wirelessProfiles"
]
}
},
"/devices/{serial}/cellular/sims": {
"get": {
"description": "Return the SIM and APN configurations for a cellular device.",
"operationId": "getDeviceCellularSims",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"sims": [
{
"slot": "sim1",
"isPrimary": true,
"apns": [
{
"name": "internet",
"allowedIpTypes": [
"ipv4",
"ipv6"
],
"authentication": {
"type": "pap",
"username": "milesmeraki"
}
}
]
}
]
}
}
}
},
"summary": "Return the SIM and APN configurations for a cellular device.",
"tags": [
"devices",
"configure",
"cellular",
"sims"
]
},
"put": {
"description": "Updates the SIM and APN configurations for a cellular device.",
"operationId": "updateDeviceCellularSims",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "updateDeviceCellularSims",
"in": "body",
"schema": {
"type": "object",
"properties": {
"sims": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slot": {
"type": "string",
"enum": [
"sim1",
"sim2"
],
"description": "SIM slot being configured. Must be 'sim1' on single-sim devices."
},
"isPrimary": {
"type": "boolean",
"description": "If true, this SIM is used for boot. Must be true on single-sim devices.",
"default": false
},
"apns": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "APN name."
},
"allowedIpTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "IP versions to support (permitted values include 'ipv4', 'ipv6')."
},
"authentication": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"chap",
"none",
"pap"
],
"description": "APN auth type.",
"default": "none"
},
"username": {
"type": "string",
"description": "APN username, if type is set."
},
"password": {
"type": "string",
"description": "APN password, if type is set (if APN password is not supplied, the password is left unchanged)."
}
},
"description": "APN authentication configurations."
}
},
"required": [
"name",
"allowedIpTypes"
]
},
"description": "APN configurations. If empty, the default APN will be used.",
"default": [
]
}
}
},
"description": "List of SIMs. If a SIM was previously configured and not specified in this request, it will remain unchanged."
},
"simFailover": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Failover to secondary SIM (optional)"
},
"timeout": {
"type": "integer",
"description": "Failover timeout in seconds (optional)"
}
},
"description": "SIM Failover settings."
}
},
"example": {
"slot": "sim1",
"isPrimary": true,
"apns": [
{
"name": "internet",
"allowedIpTypes": [
"ipv4",
"ipv6"
],
"authentication": {
"type": "pap",
"username": "milesmeraki",
"password": "secret"
}
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"sims": [
{
"slot": "sim1",
"isPrimary": true,
"apns": [
{
"name": "internet",
"allowedIpTypes": [
"ipv4",
"ipv6"
],
"authentication": {
"type": "pap",
"username": "milesmeraki"
}
}
]
}
]
}
}
}
},
"summary": "Updates the SIM and APN configurations for a cellular device.",
"tags": [
"devices",
"configure",
"cellular",
"sims"
]
}
},
"/devices/{serial}/cellularGateway/lan": {
"get": {
"description": "Show the LAN Settings of a MG",
"operationId": "getDeviceCellularGatewayLan",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"deviceName": {
"type": "string",
"description": "Name of the MG."
},
"deviceLanIp": {
"type": "string",
"description": "Lan IP of the MG"
},
"deviceSubnet": {
"type": "string",
"description": "Subnet configuration of the MG."
},
"fixedIpAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A descriptive name of the assignment"
},
"ip": {
"type": "string",
"description": "The IP address you want to assign to a specific server or device"
},
"mac": {
"type": "string",
"description": "The MAC address of the server or device that hosts the internal resource that you wish to receive the specified IP address"
}
}
},
"description": "list of all fixed IP assignments for a single MG"
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "Starting IP included in the reserved range of IPs"
},
"end": {
"type": "string",
"description": "Ending IP included in the reserved range of IPs"
},
"comment": {
"type": "string",
"description": "Comment explaining the reserved IP range"
}
}
},
"description": "list of all reserved IP ranges for a single MG"
}
}
},
"examples": {
"application/json": {
"deviceName": "name of the MG",
"deviceLanIp": "192.168.0.33",
"deviceSubnet": "192.168.0.32/27",
"fixedIpAssignments": [
{
"name": "server 1",
"ip": "192.168.0.10",
"mac": "0b:00:00:00:00:ac"
}
],
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
]
}
}
}
},
"summary": "Show the LAN Settings of a MG",
"tags": [
"cellularGateway",
"configure",
"lan"
]
},
"put": {
"description": "Update the LAN Settings for a single MG.",
"operationId": "updateDeviceCellularGatewayLan",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "updateDeviceCellularGatewayLan",
"in": "body",
"schema": {
"type": "object",
"properties": {
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "Starting IP included in the reserved range of IPs"
},
"end": {
"type": "string",
"description": "Ending IP included in the reserved range of IPs"
},
"comment": {
"type": "string",
"description": "Comment explaining the reserved IP range"
}
},
"required": [
"start",
"end",
"comment"
]
},
"description": "list of all reserved IP ranges for a single MG"
},
"fixedIpAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A descriptive name of the assignment"
},
"ip": {
"type": "string",
"description": "The IP address you want to assign to a specific server or device"
},
"mac": {
"type": "string",
"description": "The MAC address of the server or device that hosts the internal resource that you wish to receive the specified IP address"
}
},
"required": [
"ip",
"mac"
]
},
"description": "list of all fixed IP assignments for a single MG"
}
},
"example": {
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
],
"fixedIpAssignments": [
{
"name": "server 1",
"ip": "192.168.0.10",
"mac": "0b:00:00:00:00:ac"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"deviceName": {
"type": "string",
"description": "Name of the MG."
},
"deviceLanIp": {
"type": "string",
"description": "Lan IP of the MG"
},
"deviceSubnet": {
"type": "string",
"description": "Subnet configuration of the MG."
},
"fixedIpAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A descriptive name of the assignment"
},
"ip": {
"type": "string",
"description": "The IP address you want to assign to a specific server or device"
},
"mac": {
"type": "string",
"description": "The MAC address of the server or device that hosts the internal resource that you wish to receive the specified IP address"
}
}
},
"description": "list of all fixed IP assignments for a single MG"
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "Starting IP included in the reserved range of IPs"
},
"end": {
"type": "string",
"description": "Ending IP included in the reserved range of IPs"
},
"comment": {
"type": "string",
"description": "Comment explaining the reserved IP range"
}
}
},
"description": "list of all reserved IP ranges for a single MG"
}
}
},
"examples": {
"application/json": {
"deviceName": "name of the MG",
"deviceLanIp": "192.168.0.33",
"deviceSubnet": "192.168.0.32/27",
"fixedIpAssignments": [
{
"name": "server 1",
"ip": "192.168.0.10",
"mac": "0b:00:00:00:00:ac"
}
],
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
]
}
}
}
},
"summary": "Update the LAN Settings for a single MG.",
"tags": [
"cellularGateway",
"configure",
"lan"
]
}
},
"/devices/{serial}/cellularGateway/portForwardingRules": {
"get": {
"description": "Returns the port forwarding rules for a single MG.",
"operationId": "getDeviceCellularGatewayPortForwardingRules",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A descriptive name for the rule"
},
"lanIp": {
"type": "string",
"description": "The IP address of the server or device that hosts the internal resource that you wish to make available on the WAN"
},
"publicPort": {
"type": "string",
"description": "A port or port ranges that will be forwarded to the host on the LAN"
},
"localPort": {
"type": "string",
"description": "A port or port ranges that will receive the forwarded traffic from the WAN"
},
"allowedIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of ranges of WAN IP addresses that are allowed to make inbound connections on the specified ports or port ranges."
},
"protocol": {
"type": "string",
"description": "TCP or UDP"
},
"access": {
"type": "string",
"description": "`any` or `restricted`. Specify the right to make inbound connections on the specified ports or port ranges. If `restricted`, a list of allowed IPs is mandatory."
}
}
},
"description": "An array of port forwarding params"
}
}
},
"examples": {
"application/json": {
"rules": [
{
"name": "test",
"lanIp": "172.31.128.5",
"publicPort": "11-12",
"localPort": "4",
"allowedIps": [
"10.10.10.10",
"10.10.10.11"
],
"protocol": "tcp",
"access": "any"
}
]
}
}
}
},
"summary": "Returns the port forwarding rules for a single MG.",
"tags": [
"cellularGateway",
"configure",
"portForwardingRules"
]
},
"put": {
"description": "Updates the port forwarding rules for a single MG.",
"operationId": "updateDeviceCellularGatewayPortForwardingRules",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "updateDeviceCellularGatewayPortForwardingRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A descriptive name for the rule"
},
"lanIp": {
"type": "string",
"description": "The IP address of the server or device that hosts the internal resource that you wish to make available on the WAN"
},
"publicPort": {
"type": "string",
"description": "A port or port ranges that will be forwarded to the host on the LAN"
},
"localPort": {
"type": "string",
"description": "A port or port ranges that will receive the forwarded traffic from the WAN"
},
"allowedIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of ranges of WAN IP addresses that are allowed to make inbound connections on the specified ports or port ranges."
},
"protocol": {
"type": "string",
"description": "TCP or UDP"
},
"access": {
"type": "string",
"description": "`any` or `restricted`. Specify the right to make inbound connections on the specified ports or port ranges. If `restricted`, a list of allowed IPs is mandatory."
}
},
"required": [
"lanIp",
"publicPort",
"localPort",
"protocol",
"access"
]
},
"description": "An array of port forwarding params"
}
},
"example": {
"rules": [
{
"name": "test",
"lanIp": "172.31.128.5",
"publicPort": "11-12",
"localPort": "4",
"allowedIps": [
"10.10.10.10",
"10.10.10.11"
],
"protocol": "tcp",
"access": "any"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A descriptive name for the rule"
},
"lanIp": {
"type": "string",
"description": "The IP address of the server or device that hosts the internal resource that you wish to make available on the WAN"
},
"publicPort": {
"type": "string",
"description": "A port or port ranges that will be forwarded to the host on the LAN"
},
"localPort": {
"type": "string",
"description": "A port or port ranges that will receive the forwarded traffic from the WAN"
},
"allowedIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of ranges of WAN IP addresses that are allowed to make inbound connections on the specified ports or port ranges."
},
"protocol": {
"type": "string",
"description": "TCP or UDP"
},
"access": {
"type": "string",
"description": "`any` or `restricted`. Specify the right to make inbound connections on the specified ports or port ranges. If `restricted`, a list of allowed IPs is mandatory."
}
}
},
"description": "An array of port forwarding params"
}
}
},
"examples": {
"application/json": {
"rules": [
{
"name": "test",
"lanIp": "172.31.128.5",
"publicPort": "11-12",
"localPort": "4",
"allowedIps": [
"10.10.10.10",
"10.10.10.11"
],
"protocol": "tcp",
"access": "any"
}
]
}
}
}
},
"summary": "Updates the port forwarding rules for a single MG.",
"tags": [
"cellularGateway",
"configure",
"portForwardingRules"
]
}
},
"/devices/{serial}/clients": {
"get": {
"description": "List the clients of a device, up to a maximum of a month ago. The usage of each client is returned in kilobytes. If the device is a switch, the switchport is returned; otherwise the switchport field is null.",
"operationId": "getDeviceClients",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameter t0. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the client"
},
"mac": {
"type": "string",
"description": "The MAC address of the client"
},
"description": {
"type": "string",
"description": "Short description of the client"
},
"mdnsName": {
"type": "string",
"description": "The client's MDNS name"
},
"dhcpHostname": {
"type": "string",
"description": "The client's DHCP hostname"
},
"user": {
"type": "string",
"description": "The client user's name"
},
"ip": {
"type": "string",
"description": "The IP address of the client"
},
"vlan": {
"type": "string",
"description": "The client-assigned name of the VLAN the client is connected to"
},
"namedVlan": {
"type": "string",
"description": "The owner-assigned name of the VLAN the client is connected to"
},
"switchport": {
"type": "string",
"description": "The name of the switchport with clients on it, if the device is a switch"
},
"adaptivePolicyGroup": {
"type": "string",
"description": "A description of the adaptive policy group"
},
"usage": {
"type": "object",
"properties": {
"sent": {
"type": "number",
"format": "float",
"description": "Usage sent by the client"
},
"recv": {
"type": "number",
"format": "float",
"description": "Usage received by the client"
}
},
"description": "Client usage data for sent and received"
}
}
}
},
"examples": {
"application/json": [
{
"id": "k74272e",
"mac": "22:33:44:55:66:77",
"description": "Miles's phone",
"mdnsName": "Miles's phone",
"dhcpHostname": "MilesPhone",
"user": "milesmeraki",
"ip": "1.2.3.4",
"vlan": "100",
"namedVlan": "My VLAN",
"switchport": "My switch port",
"adaptivePolicyGroup": "101",
"usage": {
"sent": 138.0,
"recv": 61.0
}
}
]
}
}
},
"summary": "List the clients of a device, up to a maximum of a month ago",
"tags": [
"devices",
"monitor",
"clients"
]
}
},
"/devices/{serial}/liveTools/aclHitCount": {
"post": {
"description": "Enqueue a job to perform an ACL hit count for the device.",
"operationId": "createDeviceLiveToolsAclHitCount",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "createDeviceLiveToolsAclHitCount",
"in": "body",
"schema": {
"type": "object",
"properties": {
"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": {
"callback": {
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"sharedSecret": "secret",
"httpServer": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
},
"payloadTemplate": {
"id": "wpt_2100"
}
}
}
}
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"aclHitCountId": {
"type": "string",
"description": "Id of the ACL hit count request. Used to check the status of the request."
},
"url": {
"type": "string",
"description": "GET this url to check the status of your ACL hit count request."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
}
},
"description": "ACL hit count request parameters"
},
"status": {
"type": "string",
"enum": [
"complete",
"failed",
"new",
"ready",
"running",
"scheduled"
],
"description": "Status of the ACL hit count request."
},
"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"
}
}
},
"examples": {
"application/json": {
"aclHitCountId": "1284392014819",
"url": "/devices/Q234-ABCD-5678/liveTools/aclHitCount/1284392014819",
"request": {
"serial": "Q234-ABCD-5678"
},
"status": "complete",
"callback": {
"id": "1284392014819",
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"status": "new"
}
}
}
}
},
"summary": "Enqueue a job to perform an ACL hit count for the device.",
"tags": [
"devices",
"liveTools",
"aclHitCount"
],
"x-release-stage": "beta"
}
},
"/devices/{serial}/liveTools/aclHitCount/{id}": {
"get": {
"description": "Return an ACL hit count live tool job.",
"operationId": "getDeviceLiveToolsAclHitCount",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"aclHitCountId": {
"type": "string",
"description": "Id of the ACL hit count request. Used to check the status of the request."
},
"url": {
"type": "string",
"description": "GET this url to check the status of your ACL hit count request."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
}
},
"description": "ACL hit count request parameters"
},
"status": {
"type": "string",
"enum": [
"complete",
"failed",
"new",
"ready",
"running",
"scheduled"
],
"description": "Status of the ACL hit count request."
},
"acls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"policy": {
"type": "string",
"enum": [
"allow",
"deny"
],
"description": "Action to be taken on packets matching the rule"
},
"ipVersion": {
"type": "string",
"enum": [
"any",
"ipv4",
"ipv6"
],
"description": "IP Version for the rule, or \"any\""
},
"ipProtocol": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"any",
"number",
"objectGroup"
],
"description": "The type of protocol rule for this ACL"
},
"number": {
"type": "integer",
"description": "IP Protocol Number for the rule, if the type is \"number\". See https://www.iana.org/assignments/protocol-numbers/protocol-numbers.txt."
},
"objectGroup": {
"type": "string",
"description": "The object group for this protocol rule, if the type is \"objectGroup\""
}
},
"description": "IP Protocol for the rule. This allows the ACL to filter on specific protocols, such as TCP"
},
"counts": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "Total number of matched packets across all IP versions"
},
"ipv4": {
"type": "integer",
"description": "Total number of matched IPv4 packets"
},
"ipv6": {
"type": "integer",
"description": "Total number of matched IPv6 packets"
}
},
"description": "Number of packets matched by this ACL"
},
"source": {
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "Source IP address for the rule, or \"any\""
},
"port": {
"type": "object",
"properties": {
"operator": {
"type": "string",
"enum": [
"any",
"equals",
"greaterThan",
"lesserThan",
"notEquals",
"range"
],
"description": "Specifies what operator to use while checking if the protocol port matches the given port(s)"
},
"ports": {
"type": "array",
"items": {
"type": "integer"
},
"description": "When the operator is \"lesserThan\" or \"greaterThan\" then the port list will have one entry for the operator. When the operator is \"range\" then port list will have two values with the range being between the values. When the operator is \"equals\" and \"notEquals\", then there may be any number of ports. When the operator is \"any\", then the port property will not be present."
}
},
"description": "Source port configuration for the rule."
}
},
"description": "Source address and port configuration for the rule"
},
"destination": {
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "Destination IP address for the rule, or \"any\""
},
"port": {
"type": "array",
"items": {
"type": "object",
"properties": {
"operator": {
"type": "string",
"enum": [
"any",
"equals",
"greaterThan",
"lesserThan",
"notEquals",
"range"
],
"description": "Specifies what operator to use while checking if the protocol port matches the given port(s)"
},
"ports": {
"type": "array",
"items": {
"type": "integer"
},
"description": "When the operator is \"lesserThan\" or \"greaterThan\" then the port list will have one entry for the operator. When the operator is \"range\" then port list will have two values with the range being between the values. When the operator is \"equals\" and \"notEquals\", then there may be any number of ports. When the operator is \"any\", then the port property will not be present."
}
}
},
"description": "Destination port configuration for the rule."
}
},
"description": "Destination address and port configuration for the rule"
}
}
},
"description": "Results of the ACL hit count request, one for each ACL rule."
},
"error": {
"type": "string",
"description": "An error message for a failed execution"
}
}
},
"examples": {
"application/json": {
"aclHitCountId": "1284392014819",
"url": "/devices/Q234-ABCD-5678/liveTools/aclHitCount/1284392014819",
"request": {
"serial": "Q234-ABCD-5678"
},
"status": "complete",
"acls": [
{
"policy": "allow",
"ipVersion": "any",
"ipProtocol": {
"type": "number",
"number": 6,
"objectGroup": "object-group-123"
},
"counts": {
"total": 1234,
"ipv4": 1234,
"ipv6": 0
},
"source": {
"address": "1.2.3.4",
"port": {
"operator": "equals",
"ports": [
80,
443
]
}
},
"destination": {
"address": "2.3.4.5",
"port": [
{
"operator": "range",
"ports": [
80,
89
]
}
]
}
}
],
"error": "The device is unreachable."
}
}
}
},
"summary": "Return an ACL hit count live tool job.",
"tags": [
"devices",
"liveTools",
"aclHitCount"
],
"x-release-stage": "beta"
}
},
"/devices/{serial}/liveTools/arpTable": {
"post": {
"description": "Enqueue a job to perform a ARP table request for the device. This endpoint currently supports switches.",
"operationId": "createDeviceLiveToolsArpTable",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "createDeviceLiveToolsArpTable",
"in": "body",
"schema": {
"type": "object",
"properties": {
"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": {
"callback": {
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"sharedSecret": "secret",
"httpServer": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
},
"payloadTemplate": {
"id": "wpt_2100"
}
}
}
}
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"arpTableId": {
"type": "string",
"description": "Id of the ARP table request. Used to check the status of the request."
},
"url": {
"type": "string",
"description": "GET this url to check the status of your ARP table request."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
}
},
"description": "ARP table request parameters"
},
"status": {
"type": "string",
"enum": [
"complete",
"failed",
"new",
"ready",
"running",
"scheduled"
],
"description": "Status of the ARP table request."
},
"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"
}
}
},
"examples": {
"application/json": {
"arpTableId": "1284392014819",
"url": "/devices/Q234-ABCD-5678/liveTools/arpTable/1284392014819",
"request": {
"serial": "Q234-ABCD-5678"
},
"status": "complete",
"callback": {
"id": "1284392014819",
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"status": "new"
}
}
}
}
},
"summary": "Enqueue a job to perform a ARP table request for the device",
"tags": [
"devices",
"liveTools",
"arpTable"
]
}
},
"/devices/{serial}/liveTools/arpTable/{arpTableId}": {
"get": {
"description": "Return an ARP table live tool job.",
"operationId": "getDeviceLiveToolsArpTable",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "arpTableId",
"in": "path",
"description": "Arp table ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"arpTableId": {
"type": "string",
"description": "Id of the ARP table request. Used to check the status of the request."
},
"url": {
"type": "string",
"description": "GET this url to check the status of your ARP table request."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
}
},
"description": "ARP table request parameters"
},
"status": {
"type": "string",
"enum": [
"complete",
"failed",
"new",
"ready",
"running",
"scheduled"
],
"description": "Status of the ARP table request."
},
"entries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "The IP address of the ARP table entry"
},
"mac": {
"type": "string",
"description": "The MAC address of the ARP table entry"
},
"vlanId": {
"type": "integer",
"description": "The VLAN ID of the ARP table entry"
},
"lastUpdatedAt": {
"type": "string",
"format": "date-time",
"description": "Time of the last update of the ARP table entry"
}
}
},
"description": "The ARP table entries"
},
"error": {
"type": "string",
"description": "An error message for a failed execution"
}
}
},
"examples": {
"application/json": {
"arpTableId": "1284392014819",
"url": "/devices/Q234-ABCD-5678/liveTools/arpTable/1284392014819",
"request": {
"serial": "Q234-ABCD-5678"
},
"status": "complete",
"entries": [
{
"ip": "10.0.0.0/24",
"mac": "00:11:22:33:44:55",
"vlanId": 100,
"lastUpdatedAt": "2018-02-11T00:00:00.090210Z"
}
],
"error": "The device is unreachable."
}
}
}
},
"summary": "Return an ARP table live tool job.",
"tags": [
"devices",
"liveTools",
"arpTable"
]
}
},
"/devices/{serial}/liveTools/cableTest": {
"post": {
"description": "Enqueue a job to perform a cable test for the device on the specified ports.",
"operationId": "createDeviceLiveToolsCableTest",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "createDeviceLiveToolsCableTest",
"in": "body",
"schema": {
"type": "object",
"properties": {
"ports": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of ports for which to perform the cable test."
},
"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": {
"ports": [
"2",
"8"
],
"callback": {
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"sharedSecret": "secret",
"httpServer": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
},
"payloadTemplate": {
"id": "wpt_2100"
}
}
},
"required": [
"ports"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"cableTestId": {
"type": "string",
"description": "Id of the cable test request. Used to check the status of the request."
},
"url": {
"type": "string",
"description": "GET this url to check the status of your cable test request."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
},
"ports": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of ports for which to perform the cable test."
}
},
"description": "Cable test request parameters"
},
"status": {
"type": "string",
"enum": [
"complete",
"failed",
"new",
"ready",
"running",
"scheduled"
],
"description": "Status of the cable test request."
},
"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"
}
}
},
"examples": {
"application/json": {
"cableTestId": "1284392014819",
"url": "/devices/Q234-ABCD-5678/liveTools/cableTest/1284392014819",
"request": {
"serial": "Q234-ABCD-5678",
"ports": [
"2",
"8"
]
},
"status": "complete",
"callback": {
"id": "1284392014819",
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"status": "new"
}
}
}
}
},
"summary": "Enqueue a job to perform a cable test for the device on the specified ports.",
"tags": [
"devices",
"liveTools",
"cableTest"
]
}
},
"/devices/{serial}/liveTools/cableTest/{id}": {
"get": {
"description": "Return a cable test live tool job.",
"operationId": "getDeviceLiveToolsCableTest",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"cableTestId": {
"type": "string",
"description": "Id of the cable test request. Used to check the status of the request."
},
"url": {
"type": "string",
"description": "GET this url to check the status of your cable test request."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
},
"ports": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of ports for which to perform the cable test."
}
},
"description": "Cable test request parameters"
},
"status": {
"type": "string",
"enum": [
"complete",
"failed",
"new",
"ready",
"running",
"scheduled"
],
"description": "Status of the cable test request."
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "The port for which the test was performed."
},
"status": {
"type": "string",
"enum": [
"down",
"error",
"in-progress",
"up"
],
"description": "The current status of the port. If the cable test is still being performed on the port, \"in-progress\" is used. If an error occurred during the cable test, \"error\" is used and the error property will be populated."
},
"speedMbps": {
"type": "integer",
"description": "Speed in Mbps. A speed of 0 indicates the port is down or the port speed is automatic."
},
"error": {
"type": "string",
"description": "If an error occurred during the cable test, the error message will be populated here."
},
"pairs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"index": {
"type": "integer",
"enum": [
0,
1,
2,
3
],
"description": "The index of the twisted pair tested."
},
"status": {
"type": "string",
"enum": [
"abnormal",
"couplex",
"fail",
"forced",
"in-progress",
"invalid",
"not-supported",
"ok",
"open",
"open or short",
"short",
"short or abnormal",
"short or couplex",
"unknown"
],
"description": "The test result of the twisted pair tested."
},
"lengthMeters": {
"type": "integer",
"description": "The detected length of the twisted pair."
}
}
},
"description": "Results for each twisted pair within the cable."
}
}
},
"description": "Results of the cable test request, one for each requested port."
},
"error": {
"type": "string",
"description": "An error message for a failed execution"
}
}
},
"examples": {
"application/json": {
"cableTestId": "1284392014819",
"url": "/devices/Q234-ABCD-5678/liveTools/cableTest/1284392014819",
"request": {
"serial": "Q234-ABCD-5678",
"ports": [
"2",
"8"
]
},
"status": "complete",
"results": [
{
"port": "2",
"status": "up",
"speedMbps": 10000,
"error": "An unexpected error occurred during the execution of the cable test.",
"pairs": [
{
"index": 0,
"status": "ok",
"lengthMeters": 1
}
]
}
],
"error": "The device is unreachable."
}
}
}
},
"summary": "Return a cable test live tool job.",
"tags": [
"devices",
"liveTools",
"cableTest"
]
}
},
"/devices/{serial}/liveTools/cyclePort": {
"post": {
"description": "Enqueue a job to perform a cycle port for the device on the specified ports.",
"operationId": "createDeviceLiveToolsCyclePort",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "createDeviceLiveToolsCyclePort",
"in": "body",
"schema": {
"type": "object",
"properties": {
"ports": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of ports to cycle"
},
"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": {
"ports": [
"2",
"8"
],
"callback": {
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"sharedSecret": "secret",
"httpServer": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
},
"payloadTemplate": {
"id": "wpt_2100"
}
}
},
"required": [
"ports"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"cyclePortId": {
"type": "string",
"description": "ID of the cycle port request"
},
"url": {
"type": "string",
"description": "GET this URL to check the status of your cycle port request."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
},
"ports": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of ports to cycle"
}
},
"description": "Cycle port request parameters"
},
"status": {
"type": "string",
"enum": [
"complete",
"failed",
"new",
"ready",
"running",
"scheduled"
],
"description": "Status of the cycle port request"
},
"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"
}
}
},
"examples": {
"application/json": {
"cyclePortId": "1284392014819",
"url": "/devices/Q234-ABCD-5678/liveTools/cyclePort/1284392014819",
"request": {
"serial": "Q234-ABCD-5678",
"ports": [
"2",
"8"
]
},
"status": "complete",
"callback": {
"id": "1284392014819",
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"status": "new"
}
}
}
}
},
"summary": "Enqueue a job to perform a cycle port for the device on the specified ports.",
"tags": [
"devices",
"liveTools",
"cyclePort"
],
"x-release-stage": "beta"
}
},
"/devices/{serial}/liveTools/cyclePort/{id}": {
"get": {
"description": "Return a cycle port live tool job.",
"operationId": "getDeviceLiveToolsCyclePort",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"cyclePortId": {
"type": "string",
"description": "ID of the cycle port request"
},
"url": {
"type": "string",
"description": "GET this URL to check the status of your cycle port request."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
},
"ports": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of ports to cycle"
}
},
"description": "Cycle port request parameters"
},
"status": {
"type": "string",
"enum": [
"complete",
"failed",
"new",
"ready",
"running",
"scheduled"
],
"description": "Status of the cycle port request"
},
"error": {
"type": "string",
"description": "An error message for a failed cycle port execution, if present"
}
}
},
"examples": {
"application/json": {
"cyclePortId": "1284392014819",
"url": "/devices/Q234-ABCD-5678/liveTools/cyclePort/1284392014819",
"request": {
"serial": "Q234-ABCD-5678",
"ports": [
"2",
"8"
]
},
"status": "complete",
"error": "The device is unreachable."
}
}
}
},
"summary": "Return a cycle port live tool job.",
"tags": [
"devices",
"liveTools",
"cyclePort"
],
"x-release-stage": "beta"
}
},
"/devices/{serial}/liveTools/leds/blink": {
"post": {
"description": "Enqueue a job to blink leds on a device",
"operationId": "createDeviceLiveToolsLedsBlink",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "createDeviceLiveToolsLedsBlink",
"in": "body",
"schema": {
"type": "object",
"properties": {
"duration": {
"type": "integer",
"description": "The duration in secs to blink leds."
},
"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": {
"duration": 30,
"callback": {
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"sharedSecret": "secret",
"httpServer": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
},
"payloadTemplate": {
"id": "wpt_2100"
}
}
},
"required": [
"duration"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"ledsBlinkId": {
"type": "string",
"description": "ID of led blink job"
},
"url": {
"type": "string",
"description": "GET this url to check the status of your leds blink request"
},
"status": {
"type": "string",
"enum": [
"complete",
"failed",
"new",
"ready",
"running",
"scheduled"
],
"description": "Status of the leds blink request"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"acknowledged": {
"type": "boolean",
"description": "Show whether the device accepted the command."
}
}
},
"description": "Results of the leds blink request"
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
},
"duration": {
"type": "integer",
"description": "The duration to blink leds in seconds"
}
},
"description": "The parameters of the leds blink request"
},
"error": {
"type": "string",
"description": "Description of the error."
},
"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"
}
}
},
"examples": {
"application/json": {
"ledsBlinkId": "123",
"url": "/devices/QXXX-YYYY-ZZZZ/liveTools/leds/blink/1738",
"status": "complete",
"results": [
{
"acknowledged": true
}
],
"request": {
"serial": "Q234-ABCD-5678",
"duration": 30
},
"error": "error description",
"callback": {
"id": "1284392014819",
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"status": "new"
}
}
}
}
},
"summary": "Enqueue a job to blink leds on a device",
"tags": [
"devices",
"liveTools",
"leds",
"blink"
],
"x-release-stage": "beta"
}
},
"/devices/{serial}/liveTools/leds/blink/{ledsBlinkId}": {
"get": {
"description": "Return a leds blink job",
"operationId": "getDeviceLiveToolsLedsBlink",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "ledsBlinkId",
"in": "path",
"description": "Leds blink ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"ledsBlinkId": {
"type": "string",
"description": "ID of led blink job"
},
"url": {
"type": "string",
"description": "GET this url to check the status of your leds blink request"
},
"status": {
"type": "string",
"enum": [
"complete",
"failed",
"new",
"ready",
"running",
"scheduled"
],
"description": "Status of the leds blink request"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"acknowledged": {
"type": "boolean",
"description": "Show whether the device accepted the command."
}
}
},
"description": "Results of the leds blink request"
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
},
"duration": {
"type": "integer",
"description": "The duration to blink leds in seconds"
}
},
"description": "The parameters of the leds blink request"
},
"error": {
"type": "string",
"description": "Description of the error."
}
}
},
"examples": {
"application/json": {
"ledsBlinkId": "123",
"url": "/devices/QXXX-YYYY-ZZZZ/liveTools/leds/blink/1738",
"status": "complete",
"results": [
{
"acknowledged": true
}
],
"request": {
"serial": "Q234-ABCD-5678",
"duration": 30
},
"error": "error description"
}
}
}
},
"summary": "Return a leds blink job",
"tags": [
"devices",
"liveTools",
"leds",
"blink"
],
"x-release-stage": "beta"
}
},
"/devices/{serial}/liveTools/macTable": {
"post": {
"description": "Enqueue a job to request the MAC table from the device. Switches currently support this feature..",
"operationId": "createDeviceLiveToolsMacTable",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "createDeviceLiveToolsMacTable",
"in": "body",
"schema": {
"type": "object",
"properties": {
"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": {
"callback": {
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"sharedSecret": "secret",
"httpServer": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
},
"payloadTemplate": {
"id": "wpt_2100"
}
}
}
}
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"macTableId": {
"type": "string",
"description": "ID of the MAC table request. Used to check the status of the request."
},
"url": {
"type": "string",
"description": "GET this url to check the status of your MAC table request."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
}
},
"description": "MAC table request parameters"
},
"status": {
"type": "string",
"enum": [
"complete",
"failed",
"new",
"ready",
"running",
"scheduled"
],
"description": "Status of the MAC table request."
},
"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"
}
}
},
"examples": {
"application/json": {
"macTableId": "1284392014819",
"url": "/devices/Q234-ABCD-5678/liveTools/macTable/1284392014819",
"request": {
"serial": "Q234-ABCD-5678"
},
"status": "complete",
"callback": {
"id": "1284392014819",
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"status": "new"
}
}
}
}
},
"summary": "Enqueue a job to request the MAC table from the device",
"tags": [
"devices",
"liveTools",
"macTable"
],
"x-release-stage": "beta"
}
},
"/devices/{serial}/liveTools/macTable/{macTableId}": {
"get": {
"description": "Return a MAC table live tool job.",
"operationId": "getDeviceLiveToolsMacTable",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "macTableId",
"in": "path",
"description": "Mac table ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"macTableId": {
"type": "string",
"description": "ID of the MAC table request. Used to check the status of the request."
},
"url": {
"type": "string",
"description": "GET this url to check the status of your MAC table request."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
}
},
"description": "MAC table request parameters"
},
"status": {
"type": "string",
"enum": [
"complete",
"failed",
"new",
"ready",
"running",
"scheduled"
],
"description": "Status of the MAC table request."
},
"entries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "The MAC address of the MAC entry"
},
"port": {
"type": "string",
"description": "The name of the interface of the MAC entry"
},
"vlanId": {
"type": "integer",
"description": "The vlan id of the MAC entry"
}
}
},
"description": "MAC address table entries"
},
"error": {
"type": "string",
"description": "An error message for a failed execution"
}
}
},
"examples": {
"application/json": {
"macTableId": "1284392014819",
"url": "/devices/Q234-ABCD-5678/liveTools/macTable/1284392014819",
"request": {
"serial": "Q234-ABCD-5678"
},
"status": "complete",
"entries": [
{
"mac": "00:11:22:33:44:55",
"port": "Tw1/0/9",
"vlanId": 100
}
],
"error": "The device is unreachable."
}
}
}
},
"summary": "Return a MAC table live tool job.",
"tags": [
"devices",
"liveTools",
"macTable"
],
"x-release-stage": "beta"
}
},
"/devices/{serial}/liveTools/ping": {
"post": {
"description": "Enqueue a job to ping a target host from the device",
"operationId": "createDeviceLiveToolsPing",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "createDeviceLiveToolsPing",
"in": "body",
"schema": {
"type": "object",
"properties": {
"target": {
"type": "string",
"description": "FQDN, IPv4 or IPv6 address"
},
"count": {
"type": "integer",
"description": "Count parameter to pass to ping. [1..5], default 5"
},
"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": {
"target": "75.75.75.75",
"count": 2,
"callback": {
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"sharedSecret": "secret",
"httpServer": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
},
"payloadTemplate": {
"id": "wpt_2100"
}
}
},
"required": [
"target"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"pingId": {
"type": "string",
"description": "Id to check the status of your ping request."
},
"url": {
"type": "string",
"description": "GET this url to check the status of your ping request."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
},
"target": {
"type": "string",
"description": "IP address or FQDN to ping"
},
"count": {
"type": "integer",
"description": "Number of pings to send"
}
},
"description": "Ping request parameters"
},
"status": {
"type": "string",
"description": "Status of the ping request."
},
"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"
}
}
},
"examples": {
"application/json": {
"pingId": "1284392014819",
"url": "/devices/SERIAL/liveTools/ping/1284392014819",
"request": {
"serial": "Q234-ABCD-5678",
"target": "75.75.75.75",
"count": 2
},
"status": "complete",
"callback": {
"id": "1284392014819",
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"status": "new"
}
}
}
}
},
"summary": "Enqueue a job to ping a target host from the device",
"tags": [
"devices",
"liveTools",
"ping"
]
}
},
"/devices/{serial}/liveTools/ping/{id}": {
"get": {
"description": "Return a ping job. Latency unit in response is in milliseconds. Size is in bytes.",
"operationId": "getDeviceLiveToolsPing",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"pingId": {
"type": "string",
"description": "Id to check the status of your ping request."
},
"url": {
"type": "string",
"description": "GET this url to check the status of your ping request."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
},
"target": {
"type": "string",
"description": "IP address or FQDN to ping"
},
"count": {
"type": "integer",
"description": "Number of pings to send"
}
},
"description": "Ping request parameters"
},
"status": {
"type": "string",
"description": "Status of the ping request."
},
"results": {
"type": "object",
"properties": {
"sent": {
"type": "integer",
"description": "Number of packets sent"
},
"received": {
"type": "integer",
"description": "Number of packets received"
},
"loss": {
"type": "object",
"properties": {
"percentage": {
"type": "number",
"format": "float",
"description": "Percentage of packets lost"
}
},
"description": "Lost packets"
},
"latencies": {
"type": "object",
"properties": {
"minimum": {
"type": "number",
"format": "float",
"description": "Minimum latency"
},
"average": {
"type": "number",
"format": "float",
"description": "Average latency"
},
"maximum": {
"type": "number",
"format": "float",
"description": "Maximum latency"
}
},
"description": "Packet latency stats"
},
"replies": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sequenceId": {
"type": "integer",
"description": "Sequence ID of the packet"
},
"size": {
"type": "integer",
"description": "Size of the packet in bytes"
},
"latency": {
"type": "number",
"format": "float",
"description": "Latency of the packet in milliseconds"
}
}
},
"description": "Received packets"
}
},
"description": "Results of the ping request."
}
}
},
"examples": {
"application/json": {
"pingId": "1284392014819",
"url": "/devices/SERIAL/liveTools/ping/1284392014819",
"request": {
"serial": "Q234-ABCD-5678",
"target": "75.75.75.75",
"count": 2
},
"status": "complete",
"results": {
"sent": 5,
"received": 5,
"loss": {
"percentage": 0.0
},
"latencies": {
"minimum": 15.8,
"average": 15.8,
"maximum": 15.9
},
"replies": [
{
"sequenceId": 1,
"size": 84,
"latency": 15.7
}
]
}
}
}
}
},
"summary": "Return a ping job",
"tags": [
"devices",
"liveTools",
"ping"
]
}
},
"/devices/{serial}/liveTools/pingDevice": {
"post": {
"description": "Enqueue a job to check connectivity status to the device",
"operationId": "createDeviceLiveToolsPingDevice",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "createDeviceLiveToolsPingDevice",
"in": "body",
"schema": {
"type": "object",
"properties": {
"count": {
"type": "integer",
"description": "Count parameter to pass to ping. [1..5], default 5"
},
"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": {
"count": 3,
"callback": {
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"sharedSecret": "secret",
"httpServer": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
},
"payloadTemplate": {
"id": "wpt_2100"
}
}
}
}
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"pingId": {
"type": "string",
"description": "Id to check the status of your ping request."
},
"url": {
"type": "string",
"description": "GET this url to check the status of your ping request."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
},
"target": {
"type": "string",
"description": "IP address or FQDN to ping"
},
"count": {
"type": "integer",
"description": "Number of pings to send"
}
},
"description": "Ping request parameters"
},
"status": {
"type": "string",
"description": "Status of the ping request."
},
"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"
}
}
},
"examples": {
"application/json": {
"pingId": "1284392014819",
"url": "/devices/SERIAL/liveTools/ping/1284392014819",
"request": {
"serial": "Q234-ABCD-5678",
"target": "75.75.75.75",
"count": 2
},
"status": "complete",
"callback": {
"id": "1284392014819",
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"status": "new"
}
}
}
}
},
"summary": "Enqueue a job to check connectivity status to the device",
"tags": [
"devices",
"liveTools",
"pingDevice"
]
}
},
"/devices/{serial}/liveTools/pingDevice/{id}": {
"get": {
"description": "Return a ping device job. Latency unit in response is in milliseconds. Size is in bytes.",
"operationId": "getDeviceLiveToolsPingDevice",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"pingId": {
"type": "string",
"description": "Id to check the status of your ping request."
},
"url": {
"type": "string",
"description": "GET this url to check the status of your ping request."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
},
"target": {
"type": "string",
"description": "IP address or FQDN to ping"
},
"count": {
"type": "integer",
"description": "Number of pings to send"
}
},
"description": "Ping request parameters"
},
"status": {
"type": "string",
"description": "Status of the ping request."
},
"results": {
"type": "object",
"properties": {
"sent": {
"type": "integer",
"description": "Number of packets sent"
},
"received": {
"type": "integer",
"description": "Number of packets received"
},
"loss": {
"type": "object",
"properties": {
"percentage": {
"type": "number",
"format": "float",
"description": "Percentage of packets lost"
}
},
"description": "Lost packets"
},
"latencies": {
"type": "object",
"properties": {
"minimum": {
"type": "number",
"format": "float",
"description": "Minimum latency"
},
"average": {
"type": "number",
"format": "float",
"description": "Average latency"
},
"maximum": {
"type": "number",
"format": "float",
"description": "Maximum latency"
}
},
"description": "Packet latency stats"
},
"replies": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sequenceId": {
"type": "integer",
"description": "Sequence ID of the packet"
},
"size": {
"type": "integer",
"description": "Size of the packet in bytes"
},
"latency": {
"type": "number",
"format": "float",
"description": "Latency of the packet in milliseconds"
}
}
},
"description": "Received packets"
}
},
"description": "Results of the ping request."
},
"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"
}
}
},
"examples": {
"application/json": {
"pingId": "1284392014819",
"url": "/devices/SERIAL/liveTools/ping/1284392014819",
"request": {
"serial": "Q234-ABCD-5678",
"target": "75.75.75.75",
"count": 2
},
"status": "complete",
"results": {
"sent": 5,
"received": 5,
"loss": {
"percentage": 0.0
},
"latencies": {
"minimum": 15.8,
"average": 15.8,
"maximum": 15.9
},
"replies": [
{
"sequenceId": 1,
"size": 84,
"latency": 15.7
}
]
},
"callback": {
"id": "1284392014819",
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"status": "new"
}
}
}
}
},
"summary": "Return a ping device job",
"tags": [
"devices",
"liveTools",
"pingDevice"
]
}
},
"/devices/{serial}/liveTools/routingTable": {
"post": {
"description": "Enqueue a job to perform a routing table request for the device. Only native Catalyst switches are supported.",
"operationId": "createDeviceLiveToolsRoutingTable",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "createDeviceLiveToolsRoutingTable",
"in": "body",
"schema": {
"type": "object",
"properties": {
"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": {
"callback": {
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"sharedSecret": "secret",
"httpServer": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
},
"payloadTemplate": {
"id": "wpt_2100"
}
}
}
}
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"routingTableId": {
"type": "string",
"description": "Id of the routing table request. Used to check the status of the request."
},
"url": {
"type": "string",
"description": "GET this url to check the status of your routing table request."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
}
},
"description": "Routing table request parameters"
},
"status": {
"type": "string",
"enum": [
"complete",
"failed",
"new",
"ready",
"running",
"scheduled"
],
"description": "Status of the routing table request."
},
"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"
}
}
},
"examples": {
"application/json": {
"routingTableId": "1284392014819",
"url": "/devices/Q234-ABCD-5678/liveTools/routingTable/1284392014819",
"request": {
"serial": "Q234-ABCD-5678"
},
"status": "complete",
"callback": {
"id": "1284392014819",
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"status": "new"
}
}
}
}
},
"summary": "Enqueue a job to perform a routing table request for the device",
"tags": [
"devices",
"liveTools",
"routingTable"
],
"x-release-stage": "beta"
}
},
"/devices/{serial}/liveTools/routingTable/{id}": {
"get": {
"description": "Return an routing table live tool job.",
"operationId": "getDeviceLiveToolsRoutingTable",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"routingTableId": {
"type": "string",
"description": "Id of the routing table request. Used to check the status of the request."
},
"url": {
"type": "string",
"description": "GET this url to check the status of your routing table request."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
}
},
"description": "Routing table request parameters"
},
"status": {
"type": "string",
"enum": [
"complete",
"failed",
"new",
"ready",
"running",
"scheduled"
],
"description": "Status of the routing table request."
},
"entries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"anycon_vpn",
"client_vpn",
"ipsec_vpn",
"l3_vpn",
"local_uplink",
"local_vlan",
"ospf",
"static"
],
"description": "The type of route defined"
},
"subnet": {
"type": "string",
"description": "The subnet of the route in CIDR format"
},
"staticGateway": {
"type": "string",
"description": "The static gateway IP address of the route, if the type is \"static\" or \"ospf\""
}
}
},
"description": "Routing table entries"
},
"error": {
"type": "string",
"description": "An error message for a failed execution"
}
}
},
"examples": {
"application/json": {
"routingTableId": "1284392014819",
"url": "/devices/Q234-ABCD-5678/liveTools/routingTable/1284392014819",
"request": {
"serial": "Q234-ABCD-5678"
},
"status": "complete",
"entries": [
{
"type": "static",
"subnet": "10.200.10.1/32",
"staticGateway": "22.22.22.21"
}
],
"error": "The device is unreachable"
}
}
}
},
"summary": "Return an routing table live tool job.",
"tags": [
"devices",
"liveTools",
"routingTable"
],
"x-release-stage": "beta"
}
},
"/devices/{serial}/liveTools/speedTest": {
"post": {
"description": "Enqueue a job to execute a speed test from a device",
"operationId": "createDeviceLiveToolsSpeedTest",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "createDeviceLiveToolsSpeedTest",
"in": "body",
"schema": {
"type": "object",
"properties": {
"interface": {
"type": "string",
"enum": [
"wan1",
"wan2"
],
"description": "Optional filter for a specific WAN interface. Valid interfaces are wan1, wan2. Default will return wan1."
}
},
"example": {
"interface": "wan1"
}
}
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"speedTestId": {
"type": "string",
"description": "The Meraki device Id."
},
"url": {
"type": "string",
"description": "The url of the test."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Serial number."
},
"interface": {
"type": "string",
"description": "WAN interface."
}
},
"description": "Request details."
},
"status": {
"type": "string",
"description": "Status of the test."
},
"startedAt": {
"type": "string",
"format": "date-time",
"description": "Time that the test is started."
},
"completionTimeEstimateSecs": {
"type": "integer",
"description": "How many seconds the test is expected to take."
},
"results": {
"type": "object",
"properties": {
"speeds": {
"type": "object",
"properties": {
"average": {
"type": "number",
"format": "float",
"description": "Average speed."
},
"maximum": {
"type": "number",
"format": "float",
"description": "Maximum speed."
},
"minimum": {
"type": "number",
"format": "float",
"description": "Minimum speed."
}
},
"description": "Speeds."
}
},
"description": "Results of the test."
}
}
},
"examples": {
"application/json": {
"speedTestId": "1284392014819",
"url": "/devices/SERIAL/liveTools/speedTest/1284392014819",
"request": {
"serial": "Q234-ABCD-5678",
"interface": "wan1"
},
"status": "complete",
"startedAt": "2021-10-01T15:55:39.000000Z",
"completionTimeEstimateSecs": 60,
"results": {
"speeds": {
"average": 123.45,
"maximum": 400.12,
"minimum": 1.1
}
}
}
}
}
},
"summary": "Enqueue a job to execute a speed test from a device",
"tags": [
"devices",
"liveTools",
"speedTest"
],
"x-release-stage": "beta"
}
},
"/devices/{serial}/liveTools/speedTest/{id}": {
"get": {
"description": "Returns a speed test result in megabits per second. If test is not complete, no results are present.",
"operationId": "getDeviceLiveToolsSpeedTest",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"speedTestId": {
"type": "string",
"description": "The Meraki device Id."
},
"url": {
"type": "string",
"description": "The url of the test."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Serial number."
},
"interface": {
"type": "string",
"description": "WAN interface."
}
},
"description": "Request details."
},
"status": {
"type": "string",
"description": "Status of the test."
},
"startedAt": {
"type": "string",
"format": "date-time",
"description": "Time that the test is started."
},
"completionTimeEstimateSecs": {
"type": "integer",
"description": "How many seconds the test is expected to take."
},
"results": {
"type": "object",
"properties": {
"speeds": {
"type": "object",
"properties": {
"average": {
"type": "number",
"format": "float",
"description": "Average speed."
},
"maximum": {
"type": "number",
"format": "float",
"description": "Maximum speed."
},
"minimum": {
"type": "number",
"format": "float",
"description": "Minimum speed."
}
},
"description": "Speeds."
}
},
"description": "Results of the test."
}
}
},
"examples": {
"application/json": {
"speedTestId": "1284392014819",
"url": "/devices/SERIAL/liveTools/speedTest/1284392014819",
"request": {
"serial": "Q234-ABCD-5678",
"interface": "wan1"
},
"status": "complete",
"startedAt": "2021-10-01T15:55:39.000000Z",
"completionTimeEstimateSecs": 60,
"results": {
"speeds": {
"average": 123.45,
"maximum": 400.12,
"minimum": 1.1
}
}
}
}
}
},
"summary": "Returns a speed test result in megabits per second",
"tags": [
"devices",
"liveTools",
"speedTest"
],
"x-release-stage": "beta"
}
},
"/devices/{serial}/liveTools/throughputTest": {
"post": {
"description": "Enqueue a job to test a device throughput, the test will run for 10 secs to test throughput",
"operationId": "createDeviceLiveToolsThroughputTest",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "createDeviceLiveToolsThroughputTest",
"in": "body",
"schema": {
"type": "object",
"properties": {
"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": {
"callback": {
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"sharedSecret": "secret",
"httpServer": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
},
"payloadTemplate": {
"id": "wpt_2100"
}
}
}
}
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"throughputTestId": {
"type": "string",
"description": "ID of throughput test job"
},
"url": {
"type": "string",
"description": "GET this url to check the status of your throughput test request"
},
"status": {
"type": "string",
"enum": [
"complete",
"failed",
"new",
"ready",
"running",
"scheduled"
],
"description": "Status of the throughput test request"
},
"result": {
"type": "object",
"properties": {
"speeds": {
"type": "object",
"properties": {
"downstream": {
"type": "integer",
"description": "Shows the download speed from shard (Mbps)"
}
},
"description": "Shows the speeds (Mbps)"
}
},
"description": "Result of the throughput test request"
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
}
},
"description": "The parameters of the throughput test request"
},
"error": {
"type": "string",
"description": "Description of the error."
},
"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"
}
}
},
"examples": {
"application/json": {
"throughputTestId": "123",
"url": "/devices/QXXX-YYYY-ZZZZ/liveTools/throughputTest/123",
"status": "complete",
"result": {
"speeds": {
"downstream": 1337
}
},
"request": {
"serial": "Q234-ABCD-5678"
},
"error": "error description",
"callback": {
"id": "1284392014819",
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"status": "new"
}
}
}
}
},
"summary": "Enqueue a job to test a device throughput, the test will run for 10 secs to test throughput",
"tags": [
"devices",
"liveTools",
"throughputTest"
]
}
},
"/devices/{serial}/liveTools/throughputTest/{throughputTestId}": {
"get": {
"description": "Return a throughput test job",
"operationId": "getDeviceLiveToolsThroughputTest",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "throughputTestId",
"in": "path",
"description": "Throughput test ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"throughputTestId": {
"type": "string",
"description": "ID of throughput test job"
},
"url": {
"type": "string",
"description": "GET this url to check the status of your throughput test request"
},
"status": {
"type": "string",
"enum": [
"complete",
"failed",
"new",
"ready",
"running",
"scheduled"
],
"description": "Status of the throughput test request"
},
"result": {
"type": "object",
"properties": {
"speeds": {
"type": "object",
"properties": {
"downstream": {
"type": "integer",
"description": "Shows the download speed from shard (Mbps)"
}
},
"description": "Shows the speeds (Mbps)"
}
},
"description": "Result of the throughput test request"
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
}
},
"description": "The parameters of the throughput test request"
},
"error": {
"type": "string",
"description": "Description of the error."
}
}
},
"examples": {
"application/json": {
"throughputTestId": "123",
"url": "/devices/QXXX-YYYY-ZZZZ/liveTools/throughputTest/123",
"status": "complete",
"result": {
"speeds": {
"downstream": 1337
}
},
"request": {
"serial": "Q234-ABCD-5678"
},
"error": "error description"
}
}
}
},
"summary": "Return a throughput test job",
"tags": [
"devices",
"liveTools",
"throughputTest"
]
}
},
"/devices/{serial}/liveTools/traceRoute": {
"post": {
"description": "Enqueue a job to run trace route in the device",
"operationId": "createDeviceLiveToolsTraceRoute",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "createDeviceLiveToolsTraceRoute",
"in": "body",
"schema": {
"type": "object",
"properties": {
"target": {
"type": "string",
"description": "Destination Host name or address"
},
"sourceInterface": {
"type": "string",
"description": "Source Interface IP address"
},
"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": {
"target": "www.cisco.com",
"sourceInterface": "100.100.0.1",
"callback": {
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"sharedSecret": "secret",
"httpServer": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
},
"payloadTemplate": {
"id": "wpt_2100"
}
}
},
"required": [
"target",
"sourceInterface"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"traceRouteId": {
"type": "string",
"description": "Id of the trace route request. Used to check the status of the request."
},
"url": {
"type": "string",
"description": "GET this url to check the status of your trace route request."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
},
"target": {
"type": "string",
"description": "Destination Host name or address"
},
"sourceInterface": {
"type": "string",
"description": "Source Interface IP address"
}
},
"description": "traceroute request parameters"
},
"status": {
"type": "string",
"enum": [
"complete",
"failed",
"new",
"ready",
"running",
"scheduled"
],
"description": "Status of the trace route request"
},
"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"
}
}
},
"examples": {
"application/json": {
"traceRouteId": "123",
"url": "/devices/QXXX-YYYY-ZZZZ/liveTools/traceroute/123",
"request": {
"serial": "Q234-ABCD-5678",
"target": "www.cisco.com",
"sourceInterface": "100.100.0.1"
},
"status": "complete",
"callback": {
"id": "1284392014819",
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"status": "new"
}
}
}
}
},
"summary": "Enqueue a job to run trace route in the device",
"tags": [
"devices",
"liveTools",
"traceRoute"
],
"x-release-stage": "beta"
}
},
"/devices/{serial}/liveTools/traceRoute/{traceRouteId}": {
"get": {
"description": "Return a trace route job",
"operationId": "getDeviceLiveToolsTraceRoute",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "traceRouteId",
"in": "path",
"description": "Trace route ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"traceRouteId": {
"type": "string",
"description": "Id of the trace route request. Used to check the status of the request."
},
"url": {
"type": "string",
"description": "GET this url to check the status of your trace route request."
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
},
"target": {
"type": "string",
"description": "Destination Host name or address"
},
"sourceInterface": {
"type": "string",
"description": "Source Interface IP address"
}
},
"description": "traceroute request parameters"
},
"status": {
"type": "string",
"enum": [
"complete",
"failed",
"new",
"ready",
"running",
"scheduled"
],
"description": "Status of the trace route request"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"hop": {
"type": "integer",
"description": "Hop number in the trace route result"
},
"ip": {
"type": "string",
"description": "IP address of the hop if known"
},
"rttAvg": {
"type": "number",
"format": "float",
"description": "Average round trip time in seconds"
},
"count": {
"type": "integer",
"description": "Probe Count"
}
}
},
"description": "Results of the trace route"
},
"error": {
"type": "string",
"description": "An error message for a failed execution"
}
}
},
"examples": {
"application/json": {
"traceRouteId": "123",
"url": "/devices/QXXX-YYYY-ZZZZ/liveTools/traceroute/123",
"request": {
"serial": "Q234-ABCD-5678",
"target": "www.cisco.com",
"sourceInterface": "100.100.0.1"
},
"status": "complete",
"results": [
{
"hop": 0,
"ip": "100.100.0.1",
"rttAvg": 5.0e-05,
"count": 3
}
],
"error": "The device is unreachable."
}
}
}
},
"summary": "Return a trace route job",
"tags": [
"devices",
"liveTools",
"traceRoute"
],
"x-release-stage": "beta"
}
},
"/devices/{serial}/liveTools/wakeOnLan": {
"post": {
"description": "Enqueue a job to send a Wake-on-LAN packet from the device",
"operationId": "createDeviceLiveToolsWakeOnLan",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "createDeviceLiveToolsWakeOnLan",
"in": "body",
"schema": {
"type": "object",
"properties": {
"vlanId": {
"type": "integer",
"description": "The target's VLAN (1 to 4094)"
},
"mac": {
"type": "string",
"description": "The target's MAC address"
},
"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": {
"vlanId": 12,
"mac": "00:11:22:33:44:55",
"callback": {
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"sharedSecret": "secret",
"httpServer": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
},
"payloadTemplate": {
"id": "wpt_2100"
}
}
},
"required": [
"vlanId",
"mac"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"wakeOnLanId": {
"type": "string",
"description": "ID of the Wake-on-LAN job"
},
"url": {
"type": "string",
"description": "GET this url to check the status of your ping request"
},
"status": {
"type": "string",
"enum": [
"complete",
"failed",
"new",
"ready",
"running",
"scheduled"
],
"description": "Status of the Wake-on-LAN request"
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
},
"vlanId": {
"type": "integer",
"description": "The target's VLAN (1 to 4094)"
},
"mac": {
"type": "string",
"description": "The target's MAC address"
}
},
"description": "The parameters of the Wake-on-LAN request"
},
"error": {
"type": "string",
"description": "An error message for a failed execution"
},
"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"
}
}
},
"examples": {
"application/json": {
"wakeOnLanId": "123",
"url": "/devices/QXXX-YYYY-ZZZZ/liveTools/wakeOnLan/1738",
"status": "complete",
"request": {
"serial": "Q234-ABCD-5678",
"vlanId": 12,
"mac": "00:11:22:33:44:55"
},
"error": "The device is unreachable.",
"callback": {
"id": "1284392014819",
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"status": "new"
}
}
}
}
},
"summary": "Enqueue a job to send a Wake-on-LAN packet from the device",
"tags": [
"devices",
"liveTools",
"wakeOnLan"
]
}
},
"/devices/{serial}/liveTools/wakeOnLan/{wakeOnLanId}": {
"get": {
"description": "Return a Wake-on-LAN job",
"operationId": "getDeviceLiveToolsWakeOnLan",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "wakeOnLanId",
"in": "path",
"description": "Wake on lan ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"wakeOnLanId": {
"type": "string",
"description": "ID of the Wake-on-LAN job"
},
"url": {
"type": "string",
"description": "GET this url to check the status of your ping request"
},
"status": {
"type": "string",
"enum": [
"complete",
"failed",
"new",
"ready",
"running",
"scheduled"
],
"description": "Status of the Wake-on-LAN request"
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
},
"vlanId": {
"type": "integer",
"description": "The target's VLAN (1 to 4094)"
},
"mac": {
"type": "string",
"description": "The target's MAC address"
}
},
"description": "The parameters of the Wake-on-LAN request"
},
"error": {
"type": "string",
"description": "An error message for a failed execution"
}
}
},
"examples": {
"application/json": {
"wakeOnLanId": "123",
"url": "/devices/QXXX-YYYY-ZZZZ/liveTools/wakeOnLan/1738",
"status": "complete",
"request": {
"serial": "Q234-ABCD-5678",
"vlanId": 12,
"mac": "00:11:22:33:44:55"
},
"error": "The device is unreachable."
}
}
}
},
"summary": "Return a Wake-on-LAN job",
"tags": [
"devices",
"liveTools",
"wakeOnLan"
]
}
},
"/devices/{serial}/lldpCdp": {
"get": {
"description": "List LLDP and CDP information for a device",
"operationId": "getDeviceLldpCdp",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"sourceMac": {
"type": "string",
"description": "Source MAC address"
},
"ports": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"lldp": {
"type": "object",
"properties": {
"systemName": {
"type": "string",
"description": "Device system name"
},
"portId": {
"type": "string",
"description": "ID for the port"
},
"managementAddress": {
"type": "string",
"description": "Management mac address"
},
"sourcePort": {
"type": "string",
"description": "Source port"
}
},
"description": "lldp information"
},
"cdp": {
"type": "object",
"properties": {
"deviceId": {
"type": "string",
"description": "ID for the device"
},
"portId": {
"type": "string",
"description": "ID for the port"
},
"address": {
"type": "string",
"description": "MAC address"
},
"sourcePort": {
"type": "string",
"description": "Source port"
}
},
"description": "cdp information"
}
},
"description": "lldp and/or cdp information, keyed by port"
},
"description": "Mapping of ports to lldp and/or cdp information"
}
}
},
"examples": {
"application/json": {
"sourceMac": "00:11:22:33:44:55",
"ports": {
"22": {
"lldp": {
"systemName": "Meraki MS350-24X - Phineas",
"portId": "Port 10",
"managementAddress": "00:11:22:33:44:55",
"sourcePort": "9"
},
"cdp": {
"deviceId": "e0553d8cdf53",
"portId": "Port 10",
"address": "00:11:22:33:44:55",
"sourcePort": "9"
}
}
}
}
}
}
},
"summary": "List LLDP and CDP information for a device",
"tags": [
"devices",
"monitor",
"lldpCdp"
]
}
},
"/devices/{serial}/lossAndLatencyHistory": {
"get": {
"description": "Get the uplink loss percentage and latency in milliseconds, and goodput in kilobits per second for MX, MG and Z devices.",
"operationId": "getDeviceLossAndLatencyHistory",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 60 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
},
{
"type": "integer",
"name": "resolution",
"in": "query",
"description": "The time resolution in seconds for returned data. The valid resolutions are: 60, 600, 3600, 86400. The default is 60."
},
{
"type": "string",
"enum": [
"cellular",
"wan1",
"wan2",
"wan3"
],
"name": "uplink",
"in": "query",
"description": "The WAN uplink used to obtain the requested stats. Valid uplinks are wan1, wan2, wan3, cellular. The default is wan1."
},
{
"type": "string",
"name": "ip",
"in": "query",
"required": true,
"description": "The destination IP used to obtain the requested stats. This is required."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startTime": {
"type": "string",
"format": "date-time",
"description": "Start time of the sample"
},
"endTime": {
"type": "string",
"format": "date-time",
"description": "End time of the sample"
},
"lossPercent": {
"type": "number",
"format": "float",
"description": "Percentage of packets lost"
},
"latencyMs": {
"type": "number",
"format": "float",
"description": "Latency in milliseconds"
},
"goodput": {
"type": "integer",
"description": "Number of useful information bits delivered"
},
"jitter": {
"type": "number",
"format": "float",
"description": "Jitter, in milliseconds"
}
}
}
},
"examples": {
"application/json": [
{
"startTime": "2018-10-09T22:18:27Z",
"endTime": "2018-10-09T22:19:27Z",
"lossPercent": 5.23,
"latencyMs": 324.12,
"goodput": 1493,
"jitter": 11.2
}
]
}
}
},
"summary": "Get the uplink loss percentage and latency in milliseconds, and goodput in kilobits per second for MX, MG and Z devices.",
"tags": [
"devices",
"monitor",
"uplinks",
"lossAndLatencyHistory"
]
}
},
"/devices/{serial}/managementInterface": {
"get": {
"description": "Return the management interface settings for a device",
"operationId": "getDeviceManagementInterface",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"ddnsHostnames": {
"type": "object",
"properties": {
"activeDdnsHostname": {
"type": "string",
"description": "Active dynamic DNS hostname."
},
"ddnsHostnameWan1": {
"type": "string",
"description": "WAN 1 dynamic DNS hostname."
},
"ddnsHostnameWan2": {
"type": "string",
"description": "WAN 2 dynamic DNS hostname."
}
},
"description": "Dynamic DNS hostnames."
},
"wan1": {
"type": "object",
"properties": {
"wanEnabled": {
"type": "string",
"description": "Enable or disable the interface (only for MX devices). Valid values are 'enabled', 'disabled', and 'not configured'."
},
"usingStaticIp": {
"type": "boolean",
"description": "Configure the interface to have static IP settings or use DHCP."
},
"staticIp": {
"type": "string",
"description": "The IP the device should use on the WAN."
},
"staticSubnetMask": {
"type": "string",
"description": "The subnet mask for the WAN."
},
"staticGatewayIp": {
"type": "string",
"description": "The IP of the gateway on the WAN."
},
"staticDns": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to two DNS IPs."
},
"vlan": {
"type": "integer",
"description": "The VLAN that management traffic should be tagged with. Applies whether usingStaticIp is true or false."
}
},
"description": "WAN 1 settings"
},
"wan2": {
"type": "object",
"properties": {
"wanEnabled": {
"type": "string",
"description": "Enable or disable the interface (only for MX devices). Valid values are 'enabled', 'disabled', and 'not configured'."
},
"usingStaticIp": {
"type": "boolean",
"description": "Configure the interface to have static IP settings or use DHCP."
},
"staticIp": {
"type": "string",
"description": "The IP the device should use on the WAN."
},
"staticSubnetMask": {
"type": "string",
"description": "The subnet mask for the WAN."
},
"staticGatewayIp": {
"type": "string",
"description": "The IP of the gateway on the WAN."
},
"staticDns": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to two DNS IPs."
},
"vlan": {
"type": "integer",
"description": "The VLAN that management traffic should be tagged with. Applies whether usingStaticIp is true or false."
}
},
"description": "WAN 2 settings (only for MX devices)"
}
}
},
"examples": {
"application/json": {
"ddnsHostnames": {
"activeDdnsHostname": "mx1-sample.dynamic-m.com",
"ddnsHostnameWan1": "mx1-sample-1.dynamic-m.com",
"ddnsHostnameWan2": "mx1-sample-2.dynamic-m.com"
},
"wan1": {
"wanEnabled": "not configured",
"usingStaticIp": true,
"staticIp": "1.2.3.4",
"staticSubnetMask": "255.255.255.0",
"staticGatewayIp": "1.2.3.1",
"staticDns": [
"1.2.3.2",
"1.2.3.3"
],
"vlan": 7
},
"wan2": {
"wanEnabled": "enabled",
"usingStaticIp": false,
"staticIp": "1.2.3.4",
"staticSubnetMask": "255.255.255.0",
"staticGatewayIp": "1.2.3.1",
"staticDns": [
"1.2.3.2",
"1.2.3.3"
],
"vlan": 2
}
}
}
}
},
"summary": "Return the management interface settings for a device",
"tags": [
"devices",
"configure",
"managementInterface"
]
},
"put": {
"description": "Update the management interface settings for a device",
"operationId": "updateDeviceManagementInterface",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "updateDeviceManagementInterface",
"in": "body",
"schema": {
"type": "object",
"properties": {
"wan1": {
"type": "object",
"properties": {
"wanEnabled": {
"type": "string",
"enum": [
"disabled",
"enabled",
"not configured"
],
"description": "Enable or disable the interface (only for MX devices). Valid values are 'enabled', 'disabled', and 'not configured'."
},
"usingStaticIp": {
"type": "boolean",
"description": "Configure the interface to have static IP settings or use DHCP."
},
"staticIp": {
"type": "string",
"description": "The IP the device should use on the WAN."
},
"staticGatewayIp": {
"type": "string",
"description": "The IP of the gateway on the WAN."
},
"staticSubnetMask": {
"type": "string",
"description": "The subnet mask for the WAN."
},
"staticDns": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to two DNS IPs."
},
"vlan": {
"type": "integer",
"description": "The VLAN that management traffic should be tagged with. Applies whether usingStaticIp is true or false."
}
},
"description": "WAN 1 settings"
},
"wan2": {
"type": "object",
"properties": {
"wanEnabled": {
"type": "string",
"enum": [
"disabled",
"enabled",
"not configured"
],
"description": "Enable or disable the interface (only for MX devices). Valid values are 'enabled', 'disabled', and 'not configured'."
},
"usingStaticIp": {
"type": "boolean",
"description": "Configure the interface to have static IP settings or use DHCP."
},
"staticIp": {
"type": "string",
"description": "The IP the device should use on the WAN."
},
"staticGatewayIp": {
"type": "string",
"description": "The IP of the gateway on the WAN."
},
"staticSubnetMask": {
"type": "string",
"description": "The subnet mask for the WAN."
},
"staticDns": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to two DNS IPs."
},
"vlan": {
"type": "integer",
"description": "The VLAN that management traffic should be tagged with. Applies whether usingStaticIp is true or false."
}
},
"description": "WAN 2 settings (only for MX devices)"
}
},
"example": {
"wan1": {
"wanEnabled": "not configured",
"usingStaticIp": true,
"staticIp": "1.2.3.4",
"staticGatewayIp": "1.2.3.1",
"staticSubnetMask": "255.255.255.0",
"staticDns": [
"1.2.3.2",
"1.2.3.3"
],
"vlan": 7
},
"wan2": {
"wanEnabled": "enabled",
"usingStaticIp": false,
"staticIp": "1.2.3.4",
"staticGatewayIp": "1.2.3.1",
"staticSubnetMask": "255.255.255.0",
"staticDns": [
"1.2.3.2",
"1.2.3.3"
],
"vlan": 2
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"ddnsHostnames": {
"type": "object",
"properties": {
"activeDdnsHostname": {
"type": "string",
"description": "Active dynamic DNS hostname."
},
"ddnsHostnameWan1": {
"type": "string",
"description": "WAN 1 dynamic DNS hostname."
},
"ddnsHostnameWan2": {
"type": "string",
"description": "WAN 2 dynamic DNS hostname."
}
},
"description": "Dynamic DNS hostnames."
},
"wan1": {
"type": "object",
"properties": {
"wanEnabled": {
"type": "string",
"description": "Enable or disable the interface (only for MX devices). Valid values are 'enabled', 'disabled', and 'not configured'."
},
"usingStaticIp": {
"type": "boolean",
"description": "Configure the interface to have static IP settings or use DHCP."
},
"staticIp": {
"type": "string",
"description": "The IP the device should use on the WAN."
},
"staticSubnetMask": {
"type": "string",
"description": "The subnet mask for the WAN."
},
"staticGatewayIp": {
"type": "string",
"description": "The IP of the gateway on the WAN."
},
"staticDns": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to two DNS IPs."
},
"vlan": {
"type": "integer",
"description": "The VLAN that management traffic should be tagged with. Applies whether usingStaticIp is true or false."
}
},
"description": "WAN 1 settings"
},
"wan2": {
"type": "object",
"properties": {
"wanEnabled": {
"type": "string",
"description": "Enable or disable the interface (only for MX devices). Valid values are 'enabled', 'disabled', and 'not configured'."
},
"usingStaticIp": {
"type": "boolean",
"description": "Configure the interface to have static IP settings or use DHCP."
},
"staticIp": {
"type": "string",
"description": "The IP the device should use on the WAN."
},
"staticSubnetMask": {
"type": "string",
"description": "The subnet mask for the WAN."
},
"staticGatewayIp": {
"type": "string",
"description": "The IP of the gateway on the WAN."
},
"staticDns": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to two DNS IPs."
},
"vlan": {
"type": "integer",
"description": "The VLAN that management traffic should be tagged with. Applies whether usingStaticIp is true or false."
}
},
"description": "WAN 2 settings (only for MX devices)"
}
}
},
"examples": {
"application/json": {
"ddnsHostnames": {
"activeDdnsHostname": "mx1-sample.dynamic-m.com",
"ddnsHostnameWan1": "mx1-sample-1.dynamic-m.com",
"ddnsHostnameWan2": "mx1-sample-2.dynamic-m.com"
},
"wan1": {
"wanEnabled": "not configured",
"usingStaticIp": true,
"staticIp": "1.2.3.4",
"staticSubnetMask": "255.255.255.0",
"staticGatewayIp": "1.2.3.1",
"staticDns": [
"1.2.3.2",
"1.2.3.3"
],
"vlan": 7
},
"wan2": {
"wanEnabled": "enabled",
"usingStaticIp": false,
"staticIp": "1.2.3.4",
"staticSubnetMask": "255.255.255.0",
"staticGatewayIp": "1.2.3.1",
"staticDns": [
"1.2.3.2",
"1.2.3.3"
],
"vlan": 2
}
}
}
}
},
"summary": "Update the management interface settings for a device",
"tags": [
"devices",
"configure",
"managementInterface"
]
}
},
"/devices/{serial}/reboot": {
"post": {
"description": "Reboot a device",
"operationId": "rebootDevice",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"202": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Shows the success of the reboot"
}
}
},
"examples": {
"application/json": {
"success": true
}
}
}
},
"summary": "Reboot a device",
"tags": [
"devices",
"liveTools"
]
}
},
"/devices/{serial}/sensor/commands": {
"get": {
"description": "Returns a historical log of all commands",
"operationId": "getDeviceSensorCommands",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "operations",
"in": "query",
"description": "Optional parameter to filter commands by operation. Allowed values are disableDownstreamPower, enableDownstreamPower, cycleDownstreamPower, and refreshData."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 10."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"enum": [
"ascending",
"descending"
],
"name": "sortOrder",
"in": "query",
"description": "Sorted order of entries. Order options are 'ascending' and 'descending'. Default is 'descending'."
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 30 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 30 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 2592000,
"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 30 days. The default is 30 days."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"commandId": {
"type": "string",
"description": "ID to check the status of the command request"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Time when the command was triggered"
},
"completedAt": {
"type": "string",
"format": "date-time",
"description": "Time when the command was completed"
},
"createdBy": {
"type": "object",
"properties": {
"adminId": {
"type": "string",
"description": "ID of the admin"
},
"name": {
"type": "string",
"description": "Name of the admin"
},
"email": {
"type": "string",
"description": "Email of the admin"
}
},
"description": "Information about the admin who triggered the command"
},
"operation": {
"type": "string",
"enum": [
"cycleDownstreamPower",
"disableDownstreamPower",
"enableDownstreamPower",
"refreshData"
],
"description": "Operation run on the sensor"
},
"status": {
"type": "string",
"enum": [
"completed",
"failed",
"in_progress",
"pending"
],
"description": "Status of the command request"
},
"errors": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of errors if failed"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"commandId": "1284392014819",
"createdAt": "2018-02-11T00:00:00Z",
"completedAt": "2018-05-12T00:00:00Z",
"createdBy": {
"adminId": "212406",
"name": "Miles Meraki",
"email": "miles@meraki.com"
},
"operation": "disableDownstreamPower",
"status": "completed",
"errors": [
]
}
]
}
}
},
"summary": "Returns a historical log of all commands",
"tags": [
"sensor",
"configure",
"commands"
]
},
"post": {
"description": "Sends a command to a sensor",
"operationId": "createDeviceSensorCommand",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "createDeviceSensorCommand",
"in": "body",
"schema": {
"type": "object",
"properties": {
"operation": {
"type": "string",
"description": "Operation to run on the sensor. 'enableDownstreamPower', 'disableDownstreamPower', and 'cycleDownstreamPower' turn power on/off to the device that is connected downstream of an MT40 power monitor. 'refreshData' causes an MT15 or MT40 device to upload its latest readings so that they are immediately available in the Dashboard API."
}
},
"example": {
"operation": "disableDownstreamPower"
},
"required": [
"operation"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"commandId": {
"type": "string",
"description": "ID to check the status of the command request"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Time when the command was triggered"
},
"completedAt": {
"type": "string",
"format": "date-time",
"description": "Time when the command was completed"
},
"createdBy": {
"type": "object",
"properties": {
"adminId": {
"type": "string",
"description": "ID of the admin"
},
"name": {
"type": "string",
"description": "Name of the admin"
},
"email": {
"type": "string",
"description": "Email of the admin"
}
},
"description": "Information about the admin who triggered the command"
},
"operation": {
"type": "string",
"enum": [
"cycleDownstreamPower",
"disableDownstreamPower",
"enableDownstreamPower",
"refreshData"
],
"description": "Operation run on the sensor"
},
"status": {
"type": "string",
"enum": [
"completed",
"failed",
"in_progress",
"pending"
],
"description": "Status of the command request"
},
"errors": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of errors if failed"
}
}
},
"examples": {
"application/json": {
"commandId": "1284392014819",
"createdAt": "2018-02-11T00:00:00Z",
"completedAt": "2018-05-12T00:00:00Z",
"createdBy": {
"adminId": "212406",
"name": "Miles Meraki",
"email": "miles@meraki.com"
},
"operation": "disableDownstreamPower",
"status": "completed",
"errors": [
]
}
}
}
},
"summary": "Sends a command to a sensor",
"tags": [
"sensor",
"configure",
"commands"
]
}
},
"/devices/{serial}/sensor/commands/{commandId}": {
"get": {
"description": "Returns information about the command's execution, including the status",
"operationId": "getDeviceSensorCommand",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "commandId",
"in": "path",
"description": "Command ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"commandId": {
"type": "string",
"description": "ID to check the status of the command request"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Time when the command was triggered"
},
"completedAt": {
"type": "string",
"format": "date-time",
"description": "Time when the command was completed"
},
"createdBy": {
"type": "object",
"properties": {
"adminId": {
"type": "string",
"description": "ID of the admin"
},
"name": {
"type": "string",
"description": "Name of the admin"
},
"email": {
"type": "string",
"description": "Email of the admin"
}
},
"description": "Information about the admin who triggered the command"
},
"operation": {
"type": "string",
"enum": [
"cycleDownstreamPower",
"disableDownstreamPower",
"enableDownstreamPower",
"refreshData"
],
"description": "Operation run on the sensor"
},
"status": {
"type": "string",
"enum": [
"completed",
"failed",
"in_progress",
"pending"
],
"description": "Status of the command request"
},
"errors": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of errors if failed"
}
}
},
"examples": {
"application/json": {
"commandId": "1284392014819",
"createdAt": "2018-02-11T00:00:00Z",
"completedAt": "2018-05-12T00:00:00Z",
"createdBy": {
"adminId": "212406",
"name": "Miles Meraki",
"email": "miles@meraki.com"
},
"operation": "disableDownstreamPower",
"status": "completed",
"errors": [
]
}
}
}
},
"summary": "Returns information about the command's execution, including the status",
"tags": [
"sensor",
"configure",
"commands"
]
}
},
"/devices/{serial}/sensor/relationships": {
"get": {
"description": "List the sensor roles for a given sensor or camera device.",
"operationId": "getDeviceSensorRelationships",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"livestream": {
"type": "object",
"properties": {
"relatedDevices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "The serial of the related device"
},
"productType": {
"type": "string",
"enum": [
"camera",
"sensor"
],
"description": "The product type of the related device"
}
}
},
"description": "An array of the related devices for the role"
}
},
"description": "A role defined between an MT sensor and an MV camera that adds the camera's livestream to the sensor's details page. Snapshots from the camera will also appear in alert notifications that the sensor triggers."
}
}
},
"examples": {
"application/json": {
"livestream": {
"relatedDevices": [
{
"serial": "Q234-ABCD-5678",
"productType": "camera"
}
]
}
}
}
}
},
"summary": "List the sensor roles for a given sensor or camera device.",
"tags": [
"sensor",
"configure",
"relationships"
]
},
"put": {
"description": "Assign one or more sensor roles to a given sensor or camera device.",
"operationId": "updateDeviceSensorRelationships",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "updateDeviceSensorRelationships",
"in": "body",
"schema": {
"type": "object",
"properties": {
"livestream": {
"type": "object",
"properties": {
"relatedDevices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "The serial of the related device"
}
},
"required": [
"serial"
]
},
"description": "An array of the related devices for the role"
}
},
"description": "A role defined between an MT sensor and an MV camera that adds the camera's livestream to the sensor's details page. Snapshots from the camera will also appear in alert notifications that the sensor triggers."
}
},
"example": {
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"livestream": {
"type": "object",
"properties": {
"relatedDevices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "The serial of the related device"
},
"productType": {
"type": "string",
"enum": [
"camera",
"sensor"
],
"description": "The product type of the related device"
}
}
},
"description": "An array of the related devices for the role"
}
},
"description": "A role defined between an MT sensor and an MV camera that adds the camera's livestream to the sensor's details page. Snapshots from the camera will also appear in alert notifications that the sensor triggers."
}
}
},
"examples": {
"application/json": {
"livestream": {
"relatedDevices": [
{
"serial": "Q234-ABCD-5678",
"productType": "camera"
}
]
}
}
}
}
},
"summary": "Assign one or more sensor roles to a given sensor or camera device.",
"tags": [
"sensor",
"configure",
"relationships"
]
}
},
"/devices/{serial}/switch/ports": {
"get": {
"description": "List the switch ports for a switch",
"operationId": "getDeviceSwitchPorts",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"portId": {
"type": "string",
"description": "The identifier of the switch port."
},
"name": {
"type": "string",
"description": "The name of the switch port."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of tags of the switch port."
},
"enabled": {
"type": "boolean",
"description": "The status of the switch port."
},
"poeEnabled": {
"type": "boolean",
"description": "The PoE status of the switch port."
},
"type": {
"type": "string",
"enum": [
"access",
"stack",
"trunk"
],
"description": "The type of the switch port ('trunk', 'access' or 'stack')."
},
"vlan": {
"type": "integer",
"description": "The VLAN of the switch port. For a trunk port, this is the native VLAN. A null value will clear the value set for trunk ports."
},
"voiceVlan": {
"type": "integer",
"description": "The voice VLAN of the switch port. Only applicable to access ports."
},
"allowedVlans": {
"type": "string",
"description": "The VLANs allowed on the switch port. Only applicable to trunk ports."
},
"isolationEnabled": {
"type": "boolean",
"description": "The isolation status of the switch port."
},
"rstpEnabled": {
"type": "boolean",
"description": "The rapid spanning tree protocol status."
},
"stpGuard": {
"type": "string",
"enum": [
"bpdu guard",
"disabled",
"loop guard",
"root guard"
],
"description": "The state of the STP guard ('disabled', 'root guard', 'bpdu guard' or 'loop guard')."
},
"linkNegotiation": {
"type": "string",
"description": "The link speed for the switch port."
},
"linkNegotiationCapabilities": {
"type": "array",
"items": {
"type": "string"
},
"description": "Available link speeds for the switch port."
},
"portScheduleId": {
"type": "string",
"description": "The ID of the port schedule. A value of null will clear the port schedule."
},
"udld": {
"type": "string",
"enum": [
"Alert only",
"Enforce"
],
"description": "The action to take when Unidirectional Link is detected (Alert only, Enforce). Default configuration is Alert only."
},
"accessPolicyType": {
"type": "string",
"enum": [
"Custom access policy",
"MAC allow list",
"Open",
"Sticky MAC allow list"
],
"description": "The type of the access policy of the switch port. Only applicable to access ports. Can be one of 'Open', 'Custom access policy', 'MAC allow list' or 'Sticky MAC allow list'."
},
"accessPolicyNumber": {
"type": "integer",
"description": "The number of a custom access policy to configure on the switch port. Only applicable when 'accessPolicyType' is 'Custom access policy'."
},
"macAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only devices with MAC addresses specified in this list will have access to this port. Up to 20 MAC addresses can be defined. Only applicable when 'accessPolicyType' is 'MAC allow list'."
},
"stickyMacAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "The initial list of MAC addresses for sticky Mac allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stickyMacAllowListLimit": {
"type": "integer",
"description": "The maximum number of MAC addresses for sticky MAC allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stormControlEnabled": {
"type": "boolean",
"description": "The storm control status of the switch port."
},
"adaptivePolicyGroupId": {
"type": "string",
"description": "The adaptive policy group ID that will be used to tag traffic through this switch port. This ID must pre-exist during the configuration, else needs to be created using adaptivePolicy/groups API. Cannot be applied to a port on a switch bound to profile."
},
"peerSgtCapable": {
"type": "boolean",
"description": "If true, Peer SGT is enabled for traffic through this switch port. Applicable to trunk port only, not access port. Cannot be applied to a port on a switch bound to profile."
},
"flexibleStackingEnabled": {
"type": "boolean",
"description": "For supported switches (e.g. MS420/MS425), whether or not the port has flexible stacking enabled."
},
"daiTrusted": {
"type": "boolean",
"description": "If true, ARP packets for this port will be considered trusted, and Dynamic ARP Inspection will allow the traffic."
},
"profile": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "When enabled, override this port's configuration with a port profile."
},
"id": {
"type": "string",
"description": "When enabled, the ID of the port profile used to override the port's configuration."
},
"iname": {
"type": "string",
"description": "When enabled, the IName of the profile."
}
},
"description": "Profile attributes"
},
"module": {
"type": "object",
"properties": {
"model": {
"type": "string",
"description": "The model of the expansion module."
}
},
"description": "Expansion module"
},
"mirror": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"Destination port",
"Not mirroring traffic",
"Source port"
],
"description": "The port mirror mode. Can be one of ('Destination port', 'Source port' or 'Not mirroring traffic')."
}
},
"description": "Port mirror"
}
}
}
},
"examples": {
"application/json": [
{
"portId": "1",
"name": "My switch port",
"tags": [
"tag1",
"tag2"
],
"enabled": true,
"poeEnabled": true,
"type": "access",
"vlan": 10,
"voiceVlan": 20,
"allowedVlans": "1,3,5-10",
"isolationEnabled": false,
"rstpEnabled": true,
"stpGuard": "disabled",
"linkNegotiation": "Auto negotiate",
"linkNegotiationCapabilities": [
"Auto negotiate",
"1 Gigabit full duplex (auto)"
],
"portScheduleId": "1234",
"udld": "Alert only",
"accessPolicyType": "Sticky MAC allow list",
"accessPolicyNumber": 2,
"macAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowListLimit": 5,
"stormControlEnabled": true,
"adaptivePolicyGroupId": "123",
"peerSgtCapable": false,
"flexibleStackingEnabled": true,
"daiTrusted": false,
"profile": {
"enabled": false,
"id": "1284392014819",
"iname": "iname"
},
"module": {
"model": "MA-MOD-4X10G"
},
"mirror": {
"mode": "Not mirroring traffic"
}
}
]
}
}
},
"summary": "List the switch ports for a switch",
"tags": [
"switch",
"configure",
"ports"
]
}
},
"/devices/{serial}/switch/ports/cycle": {
"post": {
"description": "Cycle a set of switch ports",
"operationId": "cycleDeviceSwitchPorts",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "cycleDeviceSwitchPorts",
"in": "body",
"schema": {
"type": "object",
"properties": {
"ports": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of switch ports"
}
},
"example": {
"ports": [
"1",
"2-5",
"1_MA-MOD-8X10G_1",
"1_MA-MOD-8X10G_2-1_MA-MOD-8X10G_8"
]
},
"required": [
"ports"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"ports": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of switch ports"
}
}
},
"examples": {
"application/json": {
"ports": [
"1",
"2-5",
"1_MA-MOD-8X10G_1",
"1_MA-MOD-8X10G_2-1_MA-MOD-8X10G_8"
]
}
}
}
},
"summary": "Cycle a set of switch ports",
"tags": [
"switch",
"liveTools",
"ports"
]
}
},
"/devices/{serial}/switch/ports/statuses": {
"get": {
"description": "Return the status for all the ports of a switch",
"operationId": "getDeviceSwitchPortsStatuses",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameter t0. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"portId": {
"type": "string",
"description": "The string identifier of this port on the switch. This is commonly just the port number but may contain additional identifying information such as the slot and module-type if the port is located on a port module."
},
"enabled": {
"type": "boolean",
"description": "Whether the port is configured to be enabled."
},
"status": {
"type": "string",
"enum": [
"Connected",
"Disabled",
"Disconnected"
],
"description": "The current connection status of the port."
},
"spanningTree": {
"type": "object",
"properties": {
"statuses": {
"type": "array",
"items": {
"type": "string"
},
"description": "The current Spanning Tree Protocol statuses of the port."
}
},
"description": "The Spanning Tree Protocol (STP) information of the connected device."
},
"isUplink": {
"type": "boolean",
"description": "Whether the port is the switch's uplink."
},
"errors": {
"type": "array",
"items": {
"type": "string"
},
"description": "All errors present on the port."
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "All warnings present on the port."
},
"speed": {
"type": "string",
"enum": [
"",
"1 Gbps",
"10 Gbps",
"10 Mbps",
"100 Gbps",
"100 Mbps",
"2.5 Gbps",
"20 Gbps",
"40 Gbps",
"5 Gbps"
],
"description": "The current data transfer rate which the port is operating at."
},
"duplex": {
"type": "string",
"enum": [
"",
"full",
"half"
],
"description": "The current duplex of a connected port."
},
"usageInKb": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "The total amount of data sent and received (in kilobytes)."
},
"sent": {
"type": "integer",
"description": "The amount of data sent (in kilobytes)."
},
"recv": {
"type": "integer",
"description": "The amount of data received (in kilobytes)."
}
},
"description": "A breakdown of how many kilobytes have passed through this port during the timespan."
},
"cdp": {
"type": "object",
"properties": {
"systemName": {
"type": "string",
"description": "The system name."
},
"platform": {
"type": "string",
"description": "Identifies the hardware platform of the device."
},
"deviceId": {
"type": "string",
"description": "Identifies the device name."
},
"portId": {
"type": "string",
"description": "Identifies the port from which the CDP packet was sent."
},
"nativeVlan": {
"type": "integer",
"description": "Indicates, per interface, the assumed VLAN for untagged packets on the interface."
},
"address": {
"type": "string",
"description": "Contains network addresses of both receiving and sending devices."
},
"managementAddress": {
"type": "string",
"description": "The device's management IP."
},
"version": {
"type": "string",
"description": "Contains the device software release information."
},
"vtpManagementDomain": {
"type": "string",
"description": "Advertises the configured VLAN Trunking Protocl (VTP)-management-domain name of the system."
},
"capabilities": {
"type": "string",
"description": "Identifies the device type, which indicates the functional capabilities of the device."
}
},
"description": "The Cisco Discovery Protocol (CDP) information of the connected device."
},
"lldp": {
"type": "object",
"properties": {
"systemName": {
"type": "string",
"description": "The device's system name."
},
"systemDescription": {
"type": "string",
"description": "The device's system description."
},
"chassisId": {
"type": "string",
"description": "The device's chassis ID."
},
"portId": {
"type": "string",
"description": "Identifies the port from which the LLDP packet was sent"
},
"managementVlan": {
"type": "integer",
"description": "The device's management VLAN."
},
"portVlan": {
"type": "integer",
"description": "The port's VLAN."
},
"managementAddress": {
"type": "string",
"description": "The device's management IP."
},
"portDescription": {
"type": "string",
"description": "Description of the port from which the LLDP packet was sent."
},
"systemCapabilities": {
"type": "string",
"description": "Identifies the device type, which indicates the functional capabilities of the device."
}
},
"description": "The Link Layer Discovery Protocol (LLDP) information of the connected device."
},
"clientCount": {
"type": "integer",
"description": "The number of clients connected through this port."
},
"powerUsageInWh": {
"type": "number",
"format": "float",
"description": "How much power (in watt-hours) has been delivered by this port during the timespan."
},
"trafficInKbps": {
"type": "object",
"properties": {
"total": {
"type": "number",
"format": "float",
"description": "The average speed of the data sent and received (in kilobits-per-second)."
},
"sent": {
"type": "number",
"format": "float",
"description": "The average speed of the data sent (in kilobits-per-second)."
},
"recv": {
"type": "number",
"format": "float",
"description": "The average speed of the data received (in kilobits-per-second)."
}
},
"description": "A breakdown of the average speed of data that has passed through this port during the timespan."
},
"securePort": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether Secure Port is turned on for this port."
},
"active": {
"type": "boolean",
"description": "Whether Secure Port is currently active for this port."
},
"authenticationStatus": {
"type": "string",
"enum": [
"Authentication failure",
"Authentication in progress",
"Authentication successful",
"Authentication timed out",
"Disabled",
"Enabled"
],
"description": "The current Secure Port status."
},
"configOverrides": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"access",
"stack",
"trunk"
],
"description": "The type of the ('trunk', 'access' or 'stack')."
},
"vlan": {
"type": "integer",
"description": "The VLAN of the . For a trunk port, this is the native VLAN. A null value will clear the value set for trunk ports."
},
"voiceVlan": {
"type": "integer",
"description": "The voice VLAN of the . Only applicable to access ports."
},
"allowedVlans": {
"type": "string",
"description": "The VLANs allowed on the . Only applicable to trunk ports."
}
},
"description": "The configuration overrides applied to this port when Secure Port is active."
}
},
"description": "The Secure Port status of the port."
},
"poe": {
"type": "object",
"properties": {
"isAllocated": {
"type": "boolean",
"description": "Whether the port is drawing power"
}
},
"description": "PoE status of the port."
}
}
}
},
"examples": {
"application/json": [
{
"portId": "1",
"enabled": true,
"status": "Connected",
"spanningTree": {
"statuses": [
"Learning"
]
},
"isUplink": false,
"errors": [
"PoE overload",
"Very high proportion of CRC errors"
],
"warnings": [
"SecurePort authentication in progress",
"PoE port was denied power",
"High proportion of CRC errors"
],
"speed": "10 Gbps",
"duplex": "full",
"usageInKb": {
"total": 40867,
"sent": 23008,
"recv": 17859
},
"cdp": {
"systemName": "",
"platform": "MS350-24X",
"deviceId": "0c8ddbddee:ff",
"portId": "Port 20",
"nativeVlan": 1,
"address": "10.0,0.1",
"managementAddress": "10.0.0.100",
"version": "1",
"vtpManagementDomain": "",
"capabilities": "Switch"
},
"lldp": {
"systemName": "MS350-24X - Test",
"systemDescription": "MS350-24X Cloud Managed PoE Switch",
"chassisId": "0c:8d:db:dd:ee:ff",
"portId": "20",
"managementVlan": 1,
"portVlan": 1,
"managementAddress": "10.0.0.100",
"portDescription": "Port 20",
"systemCapabilities": "switch"
},
"clientCount": 10,
"powerUsageInWh": 55.9,
"trafficInKbps": {
"total": 2.2,
"sent": 1.2,
"recv": 1.0
},
"securePort": {
"enabled": true,
"active": true,
"authenticationStatus": "Authentication in progress",
"configOverrides": {
"type": "trunk",
"vlan": 12,
"voiceVlan": 34,
"allowedVlans": "all"
}
},
"poe": {
"isAllocated": false
}
}
]
}
}
},
"summary": "Return the status for all the ports of a switch",
"tags": [
"switch",
"monitor",
"ports",
"statuses"
]
}
},
"/devices/{serial}/switch/ports/statuses/packets": {
"get": {
"description": "Return the packet counters for all the ports of a switch",
"operationId": "getDeviceSwitchPortsStatusesPackets",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 1 day from today."
},
{
"type": "number",
"format": "float",
"maximum": 86400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameter t0. The value must be in seconds and be less than or equal to 1 day. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"portId": {
"type": "string",
"description": "The string identifier of this port on the switch. This is commonly just the port number but may contain additional identifying information such as the slot and module-type if the port is located on a port module."
},
"packets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"desc": {
"type": "string",
"description": "The type of packets being counted."
},
"total": {
"type": "integer",
"description": "The total count of sent and received packets."
},
"sent": {
"type": "integer",
"description": "The total count of packets sent by the switch during the timespan."
},
"recv": {
"type": "integer",
"description": "The total count of packets received by the switch during the timespan."
},
"ratePerSec": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "The rate of all packets sent and received during the timespan"
},
"sent": {
"type": "integer",
"description": "The rate of packets sent during the timespan"
},
"recv": {
"type": "integer",
"description": "The rate of packets received during the timespan"
}
},
"description": "Packet rates measured in packets per second."
}
}
},
"description": "The packet counts on the switch."
}
}
}
},
"examples": {
"application/json": [
{
"portId": "1",
"packets": [
{
"desc": "Total",
"total": 112081,
"sent": 104135,
"recv": 7946,
"ratePerSec": {
"total": 1,
"sent": 1,
"recv": 0
}
}
]
}
]
}
}
},
"summary": "Return the packet counters for all the ports of a switch",
"tags": [
"switch",
"monitor",
"ports",
"statuses",
"packets"
]
}
},
"/devices/{serial}/switch/ports/{portId}": {
"get": {
"description": "Return a switch port",
"operationId": "getDeviceSwitchPort",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "portId",
"in": "path",
"description": "Port ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"portId": {
"type": "string",
"description": "The identifier of the switch port."
},
"name": {
"type": "string",
"description": "The name of the switch port."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of tags of the switch port."
},
"enabled": {
"type": "boolean",
"description": "The status of the switch port."
},
"poeEnabled": {
"type": "boolean",
"description": "The PoE status of the switch port."
},
"type": {
"type": "string",
"enum": [
"access",
"stack",
"trunk"
],
"description": "The type of the switch port ('trunk', 'access' or 'stack')."
},
"vlan": {
"type": "integer",
"description": "The VLAN of the switch port. For a trunk port, this is the native VLAN. A null value will clear the value set for trunk ports."
},
"voiceVlan": {
"type": "integer",
"description": "The voice VLAN of the switch port. Only applicable to access ports."
},
"allowedVlans": {
"type": "string",
"description": "The VLANs allowed on the switch port. Only applicable to trunk ports."
},
"isolationEnabled": {
"type": "boolean",
"description": "The isolation status of the switch port."
},
"rstpEnabled": {
"type": "boolean",
"description": "The rapid spanning tree protocol status."
},
"stpGuard": {
"type": "string",
"enum": [
"bpdu guard",
"disabled",
"loop guard",
"root guard"
],
"description": "The state of the STP guard ('disabled', 'root guard', 'bpdu guard' or 'loop guard')."
},
"linkNegotiation": {
"type": "string",
"description": "The link speed for the switch port."
},
"linkNegotiationCapabilities": {
"type": "array",
"items": {
"type": "string"
},
"description": "Available link speeds for the switch port."
},
"portScheduleId": {
"type": "string",
"description": "The ID of the port schedule. A value of null will clear the port schedule."
},
"udld": {
"type": "string",
"enum": [
"Alert only",
"Enforce"
],
"description": "The action to take when Unidirectional Link is detected (Alert only, Enforce). Default configuration is Alert only."
},
"accessPolicyType": {
"type": "string",
"enum": [
"Custom access policy",
"MAC allow list",
"Open",
"Sticky MAC allow list"
],
"description": "The type of the access policy of the switch port. Only applicable to access ports. Can be one of 'Open', 'Custom access policy', 'MAC allow list' or 'Sticky MAC allow list'."
},
"accessPolicyNumber": {
"type": "integer",
"description": "The number of a custom access policy to configure on the switch port. Only applicable when 'accessPolicyType' is 'Custom access policy'."
},
"macAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only devices with MAC addresses specified in this list will have access to this port. Up to 20 MAC addresses can be defined. Only applicable when 'accessPolicyType' is 'MAC allow list'."
},
"stickyMacAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "The initial list of MAC addresses for sticky Mac allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stickyMacAllowListLimit": {
"type": "integer",
"description": "The maximum number of MAC addresses for sticky MAC allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stormControlEnabled": {
"type": "boolean",
"description": "The storm control status of the switch port."
},
"adaptivePolicyGroupId": {
"type": "string",
"description": "The adaptive policy group ID that will be used to tag traffic through this switch port. This ID must pre-exist during the configuration, else needs to be created using adaptivePolicy/groups API. Cannot be applied to a port on a switch bound to profile."
},
"peerSgtCapable": {
"type": "boolean",
"description": "If true, Peer SGT is enabled for traffic through this switch port. Applicable to trunk port only, not access port. Cannot be applied to a port on a switch bound to profile."
},
"flexibleStackingEnabled": {
"type": "boolean",
"description": "For supported switches (e.g. MS420/MS425), whether or not the port has flexible stacking enabled."
},
"daiTrusted": {
"type": "boolean",
"description": "If true, ARP packets for this port will be considered trusted, and Dynamic ARP Inspection will allow the traffic."
},
"profile": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "When enabled, override this port's configuration with a port profile."
},
"id": {
"type": "string",
"description": "When enabled, the ID of the port profile used to override the port's configuration."
},
"iname": {
"type": "string",
"description": "When enabled, the IName of the profile."
}
},
"description": "Profile attributes"
},
"module": {
"type": "object",
"properties": {
"model": {
"type": "string",
"description": "The model of the expansion module."
}
},
"description": "Expansion module"
},
"mirror": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"Destination port",
"Not mirroring traffic",
"Source port"
],
"description": "The port mirror mode. Can be one of ('Destination port', 'Source port' or 'Not mirroring traffic')."
}
},
"description": "Port mirror"
}
}
},
"examples": {
"application/json": {
"portId": "1",
"name": "My switch port",
"tags": [
"tag1",
"tag2"
],
"enabled": true,
"poeEnabled": true,
"type": "access",
"vlan": 10,
"voiceVlan": 20,
"allowedVlans": "1,3,5-10",
"isolationEnabled": false,
"rstpEnabled": true,
"stpGuard": "disabled",
"linkNegotiation": "Auto negotiate",
"linkNegotiationCapabilities": [
"Auto negotiate",
"1 Gigabit full duplex (auto)"
],
"portScheduleId": "1234",
"udld": "Alert only",
"accessPolicyType": "Sticky MAC allow list",
"accessPolicyNumber": 2,
"macAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowListLimit": 5,
"stormControlEnabled": true,
"adaptivePolicyGroupId": "123",
"peerSgtCapable": false,
"flexibleStackingEnabled": true,
"daiTrusted": false,
"profile": {
"enabled": false,
"id": "1284392014819",
"iname": "iname"
},
"module": {
"model": "MA-MOD-4X10G"
},
"mirror": {
"mode": "Not mirroring traffic"
}
}
}
}
},
"summary": "Return a switch port",
"tags": [
"switch",
"configure",
"ports"
]
},
"put": {
"description": "Update a switch port",
"operationId": "updateDeviceSwitchPort",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "portId",
"in": "path",
"description": "Port ID",
"type": "string",
"required": true
},
{
"name": "updateDeviceSwitchPort",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the switch port."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of tags of the switch port."
},
"enabled": {
"type": "boolean",
"description": "The status of the switch port."
},
"poeEnabled": {
"type": "boolean",
"description": "The PoE status of the switch port."
},
"type": {
"type": "string",
"enum": [
"access",
"stack",
"trunk"
],
"description": "The type of the switch port ('trunk', 'access' or 'stack')."
},
"vlan": {
"type": "integer",
"description": "The VLAN of the switch port. For a trunk port, this is the native VLAN. A null value will clear the value set for trunk ports."
},
"voiceVlan": {
"type": "integer",
"description": "The voice VLAN of the switch port. Only applicable to access ports."
},
"allowedVlans": {
"type": "string",
"description": "The VLANs allowed on the switch port. Only applicable to trunk ports."
},
"isolationEnabled": {
"type": "boolean",
"description": "The isolation status of the switch port."
},
"rstpEnabled": {
"type": "boolean",
"description": "The rapid spanning tree protocol status."
},
"stpGuard": {
"type": "string",
"enum": [
"bpdu guard",
"disabled",
"loop guard",
"root guard"
],
"description": "The state of the STP guard ('disabled', 'root guard', 'bpdu guard' or 'loop guard')."
},
"linkNegotiation": {
"type": "string",
"description": "The link speed for the switch port."
},
"portScheduleId": {
"type": "string",
"description": "The ID of the port schedule. A value of null will clear the port schedule."
},
"udld": {
"type": "string",
"enum": [
"Alert only",
"Enforce"
],
"description": "The action to take when Unidirectional Link is detected (Alert only, Enforce). Default configuration is Alert only."
},
"accessPolicyType": {
"type": "string",
"enum": [
"Custom access policy",
"MAC allow list",
"Open",
"Sticky MAC allow list"
],
"description": "The type of the access policy of the switch port. Only applicable to access ports. Can be one of 'Open', 'Custom access policy', 'MAC allow list' or 'Sticky MAC allow list'."
},
"accessPolicyNumber": {
"type": "integer",
"description": "The number of a custom access policy to configure on the switch port. Only applicable when 'accessPolicyType' is 'Custom access policy'."
},
"macAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only devices with MAC addresses specified in this list will have access to this port. Up to 20 MAC addresses can be defined. Only applicable when 'accessPolicyType' is 'MAC allow list'."
},
"stickyMacAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "The initial list of MAC addresses for sticky Mac allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stickyMacAllowListLimit": {
"type": "integer",
"description": "The maximum number of MAC addresses for sticky MAC allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stormControlEnabled": {
"type": "boolean",
"description": "The storm control status of the switch port."
},
"adaptivePolicyGroupId": {
"type": "string",
"description": "The adaptive policy group ID that will be used to tag traffic through this switch port. This ID must pre-exist during the configuration, else needs to be created using adaptivePolicy/groups API. Cannot be applied to a port on a switch bound to profile."
},
"peerSgtCapable": {
"type": "boolean",
"description": "If true, Peer SGT is enabled for traffic through this switch port. Applicable to trunk port only, not access port. Cannot be applied to a port on a switch bound to profile."
},
"flexibleStackingEnabled": {
"type": "boolean",
"description": "For supported switches (e.g. MS420/MS425), whether or not the port has flexible stacking enabled."
},
"daiTrusted": {
"type": "boolean",
"description": "If true, ARP packets for this port will be considered trusted, and Dynamic ARP Inspection will allow the traffic."
},
"profile": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "When enabled, override this port's configuration with a port profile."
},
"id": {
"type": "string",
"description": "When enabled, the ID of the port profile used to override the port's configuration."
},
"iname": {
"type": "string",
"description": "When enabled, the IName of the profile."
}
},
"description": "Profile attributes"
}
},
"example": {
"name": "My switch port",
"tags": [
"tag1",
"tag2"
],
"enabled": true,
"poeEnabled": true,
"type": "access",
"vlan": 10,
"voiceVlan": 20,
"allowedVlans": "1,3,5-10",
"isolationEnabled": false,
"rstpEnabled": true,
"stpGuard": "disabled",
"linkNegotiation": "Auto negotiate",
"portScheduleId": "1234",
"udld": "Alert only",
"accessPolicyType": "Sticky MAC allow list",
"accessPolicyNumber": 2,
"macAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowListLimit": 5,
"stormControlEnabled": true,
"adaptivePolicyGroupId": "123",
"peerSgtCapable": false,
"flexibleStackingEnabled": true,
"daiTrusted": false,
"profile": {
"enabled": false,
"id": "1284392014819",
"iname": "iname"
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"portId": {
"type": "string",
"description": "The identifier of the switch port."
},
"name": {
"type": "string",
"description": "The name of the switch port."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of tags of the switch port."
},
"enabled": {
"type": "boolean",
"description": "The status of the switch port."
},
"poeEnabled": {
"type": "boolean",
"description": "The PoE status of the switch port."
},
"type": {
"type": "string",
"enum": [
"access",
"stack",
"trunk"
],
"description": "The type of the switch port ('trunk', 'access' or 'stack')."
},
"vlan": {
"type": "integer",
"description": "The VLAN of the switch port. For a trunk port, this is the native VLAN. A null value will clear the value set for trunk ports."
},
"voiceVlan": {
"type": "integer",
"description": "The voice VLAN of the switch port. Only applicable to access ports."
},
"allowedVlans": {
"type": "string",
"description": "The VLANs allowed on the switch port. Only applicable to trunk ports."
},
"isolationEnabled": {
"type": "boolean",
"description": "The isolation status of the switch port."
},
"rstpEnabled": {
"type": "boolean",
"description": "The rapid spanning tree protocol status."
},
"stpGuard": {
"type": "string",
"enum": [
"bpdu guard",
"disabled",
"loop guard",
"root guard"
],
"description": "The state of the STP guard ('disabled', 'root guard', 'bpdu guard' or 'loop guard')."
},
"linkNegotiation": {
"type": "string",
"description": "The link speed for the switch port."
},
"linkNegotiationCapabilities": {
"type": "array",
"items": {
"type": "string"
},
"description": "Available link speeds for the switch port."
},
"portScheduleId": {
"type": "string",
"description": "The ID of the port schedule. A value of null will clear the port schedule."
},
"udld": {
"type": "string",
"enum": [
"Alert only",
"Enforce"
],
"description": "The action to take when Unidirectional Link is detected (Alert only, Enforce). Default configuration is Alert only."
},
"accessPolicyType": {
"type": "string",
"enum": [
"Custom access policy",
"MAC allow list",
"Open",
"Sticky MAC allow list"
],
"description": "The type of the access policy of the switch port. Only applicable to access ports. Can be one of 'Open', 'Custom access policy', 'MAC allow list' or 'Sticky MAC allow list'."
},
"accessPolicyNumber": {
"type": "integer",
"description": "The number of a custom access policy to configure on the switch port. Only applicable when 'accessPolicyType' is 'Custom access policy'."
},
"macAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only devices with MAC addresses specified in this list will have access to this port. Up to 20 MAC addresses can be defined. Only applicable when 'accessPolicyType' is 'MAC allow list'."
},
"stickyMacAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "The initial list of MAC addresses for sticky Mac allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stickyMacAllowListLimit": {
"type": "integer",
"description": "The maximum number of MAC addresses for sticky MAC allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stormControlEnabled": {
"type": "boolean",
"description": "The storm control status of the switch port."
},
"adaptivePolicyGroupId": {
"type": "string",
"description": "The adaptive policy group ID that will be used to tag traffic through this switch port. This ID must pre-exist during the configuration, else needs to be created using adaptivePolicy/groups API. Cannot be applied to a port on a switch bound to profile."
},
"peerSgtCapable": {
"type": "boolean",
"description": "If true, Peer SGT is enabled for traffic through this switch port. Applicable to trunk port only, not access port. Cannot be applied to a port on a switch bound to profile."
},
"flexibleStackingEnabled": {
"type": "boolean",
"description": "For supported switches (e.g. MS420/MS425), whether or not the port has flexible stacking enabled."
},
"daiTrusted": {
"type": "boolean",
"description": "If true, ARP packets for this port will be considered trusted, and Dynamic ARP Inspection will allow the traffic."
},
"profile": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "When enabled, override this port's configuration with a port profile."
},
"id": {
"type": "string",
"description": "When enabled, the ID of the port profile used to override the port's configuration."
},
"iname": {
"type": "string",
"description": "When enabled, the IName of the profile."
}
},
"description": "Profile attributes"
},
"module": {
"type": "object",
"properties": {
"model": {
"type": "string",
"description": "The model of the expansion module."
}
},
"description": "Expansion module"
},
"mirror": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"Destination port",
"Not mirroring traffic",
"Source port"
],
"description": "The port mirror mode. Can be one of ('Destination port', 'Source port' or 'Not mirroring traffic')."
}
},
"description": "Port mirror"
}
}
},
"examples": {
"application/json": {
"portId": "1",
"name": "My switch port",
"tags": [
"tag1",
"tag2"
],
"enabled": true,
"poeEnabled": true,
"type": "access",
"vlan": 10,
"voiceVlan": 20,
"allowedVlans": "1,3,5-10",
"isolationEnabled": false,
"rstpEnabled": true,
"stpGuard": "disabled",
"linkNegotiation": "Auto negotiate",
"linkNegotiationCapabilities": [
"Auto negotiate",
"1 Gigabit full duplex (auto)"
],
"portScheduleId": "1234",
"udld": "Alert only",
"accessPolicyType": "Sticky MAC allow list",
"accessPolicyNumber": 2,
"macAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowListLimit": 5,
"stormControlEnabled": true,
"adaptivePolicyGroupId": "123",
"peerSgtCapable": false,
"flexibleStackingEnabled": true,
"daiTrusted": false,
"profile": {
"enabled": false,
"id": "1284392014819",
"iname": "iname"
},
"module": {
"model": "MA-MOD-4X10G"
},
"mirror": {
"mode": "Not mirroring traffic"
}
}
}
}
},
"summary": "Update a switch port",
"tags": [
"switch",
"configure",
"ports"
]
}
},
"/devices/{serial}/switch/routing/interfaces": {
"get": {
"description": "List layer 3 interfaces for a switch. Those for a stack may be found under switch stack routing.",
"operationId": "getDeviceSwitchRoutingInterfaces",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"interfaceId": {
"type": "string",
"description": "The id"
},
"name": {
"type": "string",
"description": "The name"
},
"subnet": {
"type": "string",
"description": "IPv4 subnet"
},
"interfaceIp": {
"type": "string",
"description": "IPv4 address"
},
"multicastRouting": {
"type": "string",
"description": "Multicast routing status"
},
"vlanId": {
"type": "integer",
"description": "VLAN id"
},
"ospfSettings": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv4 area"
}
},
"description": "IPv4 OSPF Settings"
},
"ospfV3": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv6 area"
}
},
"description": "IPv6 OSPF Settings"
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"description": "Assignment mode"
},
"address": {
"type": "string",
"description": "IPv6 address"
},
"prefix": {
"type": "string",
"description": "IPv6 subnet"
},
"gateway": {
"type": "string",
"description": "IPv6 gateway"
}
},
"description": "IPv6 addressing"
},
"defaultGateway": {
"type": "string",
"description": "IPv4 default gateway"
}
}
}
},
"examples": {
"application/json": [
{
"interfaceId": "1234",
"name": "L3 interface",
"subnet": "192.168.1.0/24",
"interfaceIp": "192.168.1.2",
"multicastRouting": "disabled",
"vlanId": 100,
"ospfSettings": {
"area": "0",
"cost": 1,
"isPassiveEnabled": true
},
"ospfV3": {
"area": "1",
"cost": 2,
"isPassiveEnabled": true
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3:4::1",
"prefix": "1:2:3:4::/48",
"gateway": "1:2:3:4::2"
},
"defaultGateway": "192.168.1.1"
}
]
}
}
},
"summary": "List layer 3 interfaces for a switch",
"tags": [
"switch",
"configure",
"routing",
"interfaces"
]
},
"post": {
"description": "Create a layer 3 interface for a switch",
"operationId": "createDeviceSwitchRoutingInterface",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "createDeviceSwitchRoutingInterface",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A friendly name or description for the interface or VLAN."
},
"subnet": {
"type": "string",
"description": "The network that this routed interface is on, in CIDR notation (ex. 10.1.1.0/24)."
},
"interfaceIp": {
"type": "string",
"description": "The IP address this switch will use for layer 3 routing on this VLAN or subnet. This cannot be the same as the switch's management IP."
},
"multicastRouting": {
"type": "string",
"enum": [
"IGMP snooping querier",
"disabled",
"enabled"
],
"description": "Enable multicast support if, multicast routing between VLANs is required. Options are: 'disabled', 'enabled' or 'IGMP snooping querier'. Default is 'disabled'."
},
"vlanId": {
"type": "integer",
"description": "The VLAN this routed interface is on. VLAN must be between 1 and 4094."
},
"defaultGateway": {
"type": "string",
"description": "The next hop for any traffic that isn't going to a directly connected subnet or over a static route. This IP address must exist in a subnet with a routed interface. Required if this is the first IPv4 interface."
},
"ospfSettings": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "The OSPF area to which this interface should belong. Can be either 'disabled' or the identifier of an existing OSPF area. Defaults to 'disabled'."
},
"cost": {
"type": "integer",
"description": "The path cost for this interface. Defaults to 1, but can be increased up to 65535 to give lower priority."
},
"isPassiveEnabled": {
"type": "boolean",
"description": "When enabled, OSPF will not run on the interface, but the subnet will still be advertised."
}
},
"description": "The OSPF routing settings of the interface."
},
"ospfV3": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "The OSPFv3 area to which this interface should belong. Can be either 'disabled' or the identifier of an existing OSPFv3 area. Defaults to 'disabled'."
},
"cost": {
"type": "integer",
"description": "The path cost for this interface. Defaults to 1, but can be increased up to 65535 to give lower priority."
},
"isPassiveEnabled": {
"type": "boolean",
"description": "When enabled, OSPFv3 will not run on the interface, but the subnet will still be advertised."
}
},
"description": "The OSPFv3 routing settings of the interface."
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"description": "The IPv6 assignment mode for the interface. Can be either 'eui-64' or 'static'."
},
"prefix": {
"type": "string",
"description": "The IPv6 prefix of the interface. Required if IPv6 object is included."
},
"address": {
"type": "string",
"description": "The IPv6 address of the interface. Required if assignmentMode is 'static'. Must not be included if assignmentMode is 'eui-64'."
},
"gateway": {
"type": "string",
"description": "The IPv6 default gateway of the interface. Required if prefix is defined and this is the first interface with IPv6 configured for the switch."
}
},
"description": "The IPv6 settings of the interface."
}
},
"example": {
"name": "L3 interface",
"subnet": "192.168.1.0/24",
"interfaceIp": "192.168.1.2",
"multicastRouting": "disabled",
"vlanId": 100,
"defaultGateway": "192.168.1.1",
"ospfSettings": {
"area": "0",
"cost": 1,
"isPassiveEnabled": true
},
"ospfV3": {
"area": "1",
"cost": 2,
"isPassiveEnabled": true
},
"ipv6": {
"assignmentMode": "static",
"prefix": "1:2:3:4::/48",
"address": "1:2:3:4::1",
"gateway": "1:2:3:4::2"
}
}
}
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"interfaceId": {
"type": "string",
"description": "The id"
},
"name": {
"type": "string",
"description": "The name"
},
"subnet": {
"type": "string",
"description": "IPv4 subnet"
},
"interfaceIp": {
"type": "string",
"description": "IPv4 address"
},
"multicastRouting": {
"type": "string",
"description": "Multicast routing status"
},
"vlanId": {
"type": "integer",
"description": "VLAN id"
},
"ospfSettings": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv4 area"
}
},
"description": "IPv4 OSPF Settings"
},
"ospfV3": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv6 area"
}
},
"description": "IPv6 OSPF Settings"
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"description": "Assignment mode"
},
"address": {
"type": "string",
"description": "IPv6 address"
},
"prefix": {
"type": "string",
"description": "IPv6 subnet"
},
"gateway": {
"type": "string",
"description": "IPv6 gateway"
}
},
"description": "IPv6 addressing"
},
"defaultGateway": {
"type": "string",
"description": "IPv4 default gateway"
}
}
},
"examples": {
"application/json": {
"interfaceId": "1234",
"name": "L3 interface",
"subnet": "192.168.1.0/24",
"interfaceIp": "192.168.1.2",
"multicastRouting": "disabled",
"vlanId": 100,
"ospfSettings": {
"area": "0",
"cost": 1,
"isPassiveEnabled": true
},
"ospfV3": {
"area": "1",
"cost": 2,
"isPassiveEnabled": true
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3:4::1",
"prefix": "1:2:3:4::/48",
"gateway": "1:2:3:4::2"
},
"defaultGateway": "192.168.1.1"
}
}
}
},
"summary": "Create a layer 3 interface for a switch",
"tags": [
"switch",
"configure",
"routing",
"interfaces"
]
}
},
"/devices/{serial}/switch/routing/interfaces/{interfaceId}": {
"get": {
"description": "Return a layer 3 interface for a switch",
"operationId": "getDeviceSwitchRoutingInterface",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "interfaceId",
"in": "path",
"description": "Interface ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"interfaceId": {
"type": "string",
"description": "The id"
},
"name": {
"type": "string",
"description": "The name"
},
"subnet": {
"type": "string",
"description": "IPv4 subnet"
},
"interfaceIp": {
"type": "string",
"description": "IPv4 address"
},
"multicastRouting": {
"type": "string",
"description": "Multicast routing status"
},
"vlanId": {
"type": "integer",
"description": "VLAN id"
},
"ospfSettings": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv4 area"
}
},
"description": "IPv4 OSPF Settings"
},
"ospfV3": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv6 area"
}
},
"description": "IPv6 OSPF Settings"
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"description": "Assignment mode"
},
"address": {
"type": "string",
"description": "IPv6 address"
},
"prefix": {
"type": "string",
"description": "IPv6 subnet"
},
"gateway": {
"type": "string",
"description": "IPv6 gateway"
}
},
"description": "IPv6 addressing"
},
"defaultGateway": {
"type": "string",
"description": "IPv4 default gateway"
}
}
},
"examples": {
"application/json": {
"interfaceId": "1234",
"name": "L3 interface",
"subnet": "192.168.1.0/24",
"interfaceIp": "192.168.1.2",
"multicastRouting": "disabled",
"vlanId": 100,
"ospfSettings": {
"area": "0",
"cost": 1,
"isPassiveEnabled": true
},
"ospfV3": {
"area": "1",
"cost": 2,
"isPassiveEnabled": true
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3:4::1",
"prefix": "1:2:3:4::/48",
"gateway": "1:2:3:4::2"
},
"defaultGateway": "192.168.1.1"
}
}
}
},
"summary": "Return a layer 3 interface for a switch",
"tags": [
"switch",
"configure",
"routing",
"interfaces"
]
},
"put": {
"description": "Update a layer 3 interface for a switch",
"operationId": "updateDeviceSwitchRoutingInterface",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "interfaceId",
"in": "path",
"description": "Interface ID",
"type": "string",
"required": true
},
{
"name": "updateDeviceSwitchRoutingInterface",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A friendly name or description for the interface or VLAN."
},
"subnet": {
"type": "string",
"description": "The network that this routed interface is on, in CIDR notation (ex. 10.1.1.0/24)."
},
"interfaceIp": {
"type": "string",
"description": "The IP address this switch will use for layer 3 routing on this VLAN or subnet. This cannot be the same as the switch's management IP."
},
"multicastRouting": {
"type": "string",
"enum": [
"IGMP snooping querier",
"disabled",
"enabled"
],
"description": "Enable multicast support if, multicast routing between VLANs is required. Options are: 'disabled', 'enabled' or 'IGMP snooping querier'. Default is 'disabled'."
},
"vlanId": {
"type": "integer",
"description": "The VLAN this routed interface is on. VLAN must be between 1 and 4094."
},
"defaultGateway": {
"type": "string",
"description": "The next hop for any traffic that isn't going to a directly connected subnet or over a static route. This IP address must exist in a subnet with a routed interface. Required if this is the first IPv4 interface."
},
"ospfSettings": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "The OSPF area to which this interface should belong. Can be either 'disabled' or the identifier of an existing OSPF area. Defaults to 'disabled'."
},
"cost": {
"type": "integer",
"description": "The path cost for this interface. Defaults to 1, but can be increased up to 65535 to give lower priority."
},
"isPassiveEnabled": {
"type": "boolean",
"description": "When enabled, OSPF will not run on the interface, but the subnet will still be advertised."
}
},
"description": "The OSPF routing settings of the interface."
},
"ospfV3": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "The OSPFv3 area to which this interface should belong. Can be either 'disabled' or the identifier of an existing OSPFv3 area. Defaults to 'disabled'."
},
"cost": {
"type": "integer",
"description": "The path cost for this interface. Defaults to 1, but can be increased up to 65535 to give lower priority."
},
"isPassiveEnabled": {
"type": "boolean",
"description": "When enabled, OSPFv3 will not run on the interface, but the subnet will still be advertised."
}
},
"description": "The OSPFv3 routing settings of the interface."
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"description": "The IPv6 assignment mode for the interface. Can be either 'eui-64' or 'static'."
},
"prefix": {
"type": "string",
"description": "The IPv6 prefix of the interface. Required if IPv6 object is included."
},
"address": {
"type": "string",
"description": "The IPv6 address of the interface. Required if assignmentMode is 'static'. Must not be included if assignmentMode is 'eui-64'."
},
"gateway": {
"type": "string",
"description": "The IPv6 default gateway of the interface. Required if prefix is defined and this is the first interface with IPv6 configured for the switch."
}
},
"description": "The IPv6 settings of the interface."
}
},
"example": {
"name": "L3 interface",
"subnet": "192.168.1.0/24",
"interfaceIp": "192.168.1.2",
"multicastRouting": "disabled",
"vlanId": 100,
"defaultGateway": "192.168.1.1",
"ospfSettings": {
"area": "0",
"cost": 1,
"isPassiveEnabled": true
},
"ospfV3": {
"area": "1",
"cost": 2,
"isPassiveEnabled": true
},
"ipv6": {
"assignmentMode": "static",
"prefix": "1:2:3:4::/48",
"address": "1:2:3:4::1",
"gateway": "1:2:3:4::2"
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"interfaceId": {
"type": "string",
"description": "The id"
},
"name": {
"type": "string",
"description": "The name"
},
"subnet": {
"type": "string",
"description": "IPv4 subnet"
},
"interfaceIp": {
"type": "string",
"description": "IPv4 address"
},
"multicastRouting": {
"type": "string",
"description": "Multicast routing status"
},
"vlanId": {
"type": "integer",
"description": "VLAN id"
},
"ospfSettings": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv4 area"
}
},
"description": "IPv4 OSPF Settings"
},
"ospfV3": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv6 area"
}
},
"description": "IPv6 OSPF Settings"
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"description": "Assignment mode"
},
"address": {
"type": "string",
"description": "IPv6 address"
},
"prefix": {
"type": "string",
"description": "IPv6 subnet"
},
"gateway": {
"type": "string",
"description": "IPv6 gateway"
}
},
"description": "IPv6 addressing"
},
"defaultGateway": {
"type": "string",
"description": "IPv4 default gateway"
}
}
},
"examples": {
"application/json": {
"interfaceId": "1234",
"name": "L3 interface",
"subnet": "192.168.1.0/24",
"interfaceIp": "192.168.1.2",
"multicastRouting": "disabled",
"vlanId": 100,
"ospfSettings": {
"area": "0",
"cost": 1,
"isPassiveEnabled": true
},
"ospfV3": {
"area": "1",
"cost": 2,
"isPassiveEnabled": true
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3:4::1",
"prefix": "1:2:3:4::/48",
"gateway": "1:2:3:4::2"
},
"defaultGateway": "192.168.1.1"
}
}
}
},
"summary": "Update a layer 3 interface for a switch",
"tags": [
"switch",
"configure",
"routing",
"interfaces"
]
},
"delete": {
"description": "Delete a layer 3 interface from the switch",
"operationId": "deleteDeviceSwitchRoutingInterface",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "interfaceId",
"in": "path",
"description": "Interface ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a layer 3 interface from the switch",
"tags": [
"switch",
"configure",
"routing",
"interfaces"
]
}
},
"/devices/{serial}/switch/routing/interfaces/{interfaceId}/dhcp": {
"get": {
"description": "Return a layer 3 interface DHCP configuration for a switch",
"operationId": "getDeviceSwitchRoutingInterfaceDhcp",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "interfaceId",
"in": "path",
"description": "Interface ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"dhcpMode": {
"type": "string",
"description": "The DHCP mode options for the switch stack interface ('dhcpDisabled', 'dhcpRelay' or 'dhcpServer')"
},
"dhcpRelayServerIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "The DHCP relay server IPs to which DHCP packets would get relayed for the switch stack interface"
},
"dhcpLeaseTime": {
"type": "string",
"description": "The DHCP lease time config for the dhcp server running on the switch stack interface ('30 minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1 week')"
},
"dnsNameserversOption": {
"type": "string",
"description": "The DHCP name server option for the dhcp server running on the switch stack interface ('googlePublicDns', 'openDns' or 'custom')"
},
"dnsCustomNameservers": {
"type": "array",
"items": {
"type": "string"
},
"description": "The DHCP name server IPs when DHCP name server option is 'custom'"
},
"bootOptionsEnabled": {
"type": "boolean",
"description": "Enable DHCP boot options to provide PXE boot options configs for the dhcp server running on the switch stack interface"
},
"bootNextServer": {
"type": "string",
"description": "The PXE boot server IP for the DHCP server running on the switch stack interface"
},
"bootFileName": {
"type": "string",
"description": "The PXE boot server file name for the DHCP server running on the switch stack interface"
},
"dhcpOptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "The code for DHCP option which should be from 2 to 254"
},
"type": {
"type": "string",
"description": "The type of the DHCP option which should be one of ('text', 'ip', 'integer' or 'hex')"
},
"value": {
"type": "string",
"description": "The value of the DHCP option"
}
}
},
"description": "Array of DHCP options consisting of code, type and value for the DHCP server running on the switch stack interface"
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "The starting IP address of the reserved IP range"
},
"end": {
"type": "string",
"description": "The ending IP address of the reserved IP range"
},
"comment": {
"type": "string",
"description": "The comment for the reserved IP range"
}
}
},
"description": "Array of DHCP reserved IP assignments for the DHCP server running on the switch stack interface"
},
"fixedIpAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the client which has fixed IP address"
},
"mac": {
"type": "string",
"description": "The MAC address of the client which has fixed IP address"
},
"ip": {
"type": "string",
"description": "The IP address of the client which has fixed IP address assigned to it"
}
}
},
"description": "Array of DHCP reserved IP assignments for the DHCP server running on the switch stack interface"
}
}
},
"examples": {
"application/json": {
"dhcpMode": "dhcpServer",
"dhcpRelayServerIps": [
"1.2.3.4"
],
"dhcpLeaseTime": "1 day",
"dnsNameserversOption": "custom",
"dnsCustomNameservers": [
"8.8.8.8, 8.8.4.4"
],
"bootOptionsEnabled": true,
"bootNextServer": "1.2.3.4",
"bootFileName": "home_boot_file",
"dhcpOptions": [
{
"code": "5",
"type": "text",
"value": "five"
}
],
"reservedIpRanges": [
{
"start": "192.168.1.1",
"end": "192.168.1.10",
"comment": "A reserved IP range"
}
],
"fixedIpAssignments": [
{
"name": "Cisco Meraki valued client",
"mac": "22:33:44:55:66:77",
"ip": "192.168.1.12"
}
]
}
}
}
},
"summary": "Return a layer 3 interface DHCP configuration for a switch",
"tags": [
"switch",
"configure",
"routing",
"interfaces",
"dhcp"
]
},
"put": {
"description": "Update a layer 3 interface DHCP configuration for a switch",
"operationId": "updateDeviceSwitchRoutingInterfaceDhcp",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "interfaceId",
"in": "path",
"description": "Interface ID",
"type": "string",
"required": true
},
{
"name": "updateDeviceSwitchRoutingInterfaceDhcp",
"in": "body",
"schema": {
"type": "object",
"properties": {
"dhcpMode": {
"type": "string",
"enum": [
"dhcpDisabled",
"dhcpRelay",
"dhcpServer"
],
"description": "The DHCP mode options for the switch interface\n ('dhcpDisabled', 'dhcpRelay' or 'dhcpServer')"
},
"dhcpRelayServerIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "The DHCP relay server IPs to which DHCP packets would get relayed for the switch interface"
},
"dhcpLeaseTime": {
"type": "string",
"enum": [
"1 day",
"1 hour",
"1 week",
"12 hours",
"30 minutes",
"4 hours"
],
"description": "The DHCP lease time config for the dhcp server running on switch interface\n ('30 minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1 week')"
},
"dnsNameserversOption": {
"type": "string",
"enum": [
"custom",
"googlePublicDns",
"openDns"
],
"description": "The DHCP name server option for the dhcp server running on the switch interface\n ('googlePublicDns', 'openDns' or 'custom')"
},
"dnsCustomNameservers": {
"type": "array",
"items": {
"type": "string"
},
"description": "The DHCP name server IPs when DHCP name server option is\n 'custom'"
},
"bootOptionsEnabled": {
"type": "boolean",
"description": "Enable DHCP boot options to provide PXE boot options configs for the dhcp server running on the switch\n interface"
},
"bootNextServer": {
"type": "string",
"description": "The PXE boot server IP for the DHCP server running on the switch interface"
},
"bootFileName": {
"type": "string",
"description": "The PXE boot server filename for the DHCP server running on the switch interface"
},
"dhcpOptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "The code for DHCP option which should be from 2 to 254"
},
"type": {
"type": "string",
"enum": [
"hex",
"integer",
"ip",
"text"
],
"description": "The type of the DHCP option which should be one of\n ('text', 'ip', 'integer' or 'hex')"
},
"value": {
"type": "string",
"description": "The value of the DHCP option"
}
},
"required": [
"code",
"type",
"value"
]
},
"description": "Array of DHCP options consisting of code, type and value for the DHCP server running on the switch interface"
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "The starting IP address of the reserved IP range"
},
"end": {
"type": "string",
"description": "The ending IP address of the reserved IP range"
},
"comment": {
"type": "string",
"description": "The comment for the reserved IP range"
}
},
"required": [
"start",
"end"
]
},
"description": "Array of DHCP reserved IP assignments for the DHCP server running on the switch interface"
},
"fixedIpAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the client which has fixed IP address"
},
"mac": {
"type": "string",
"description": "The MAC address of the client which has fixed IP address"
},
"ip": {
"type": "string",
"description": "The IP address of the client which has fixed IP address assigned to it"
}
},
"required": [
"name",
"mac",
"ip"
]
},
"description": "Array of DHCP fixed IP assignments for the DHCP server running on the switch interface"
}
},
"example": {
"dhcpMode": "dhcpServer",
"dhcpRelayServerIps": [
"1.2.3.4"
],
"dhcpLeaseTime": "1 day",
"dnsNameserversOption": "custom",
"dnsCustomNameservers": [
"8.8.8.8, 8.8.4.4"
],
"bootOptionsEnabled": true,
"bootNextServer": "1.2.3.4",
"bootFileName": "home_boot_file",
"dhcpOptions": [
{
"code": "5",
"type": "text",
"value": "five"
}
],
"reservedIpRanges": [
{
"start": "192.168.1.1",
"end": "192.168.1.10",
"comment": "A reserved IP range"
}
],
"fixedIpAssignments": [
{
"name": "Cisco Meraki valued client",
"mac": "22:33:44:55:66:77",
"ip": "192.168.1.12"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"dhcpMode": {
"type": "string",
"description": "The DHCP mode options for the switch stack interface ('dhcpDisabled', 'dhcpRelay' or 'dhcpServer')"
},
"dhcpRelayServerIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "The DHCP relay server IPs to which DHCP packets would get relayed for the switch stack interface"
},
"dhcpLeaseTime": {
"type": "string",
"description": "The DHCP lease time config for the dhcp server running on the switch stack interface ('30 minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1 week')"
},
"dnsNameserversOption": {
"type": "string",
"description": "The DHCP name server option for the dhcp server running on the switch stack interface ('googlePublicDns', 'openDns' or 'custom')"
},
"dnsCustomNameservers": {
"type": "array",
"items": {
"type": "string"
},
"description": "The DHCP name server IPs when DHCP name server option is 'custom'"
},
"bootOptionsEnabled": {
"type": "boolean",
"description": "Enable DHCP boot options to provide PXE boot options configs for the dhcp server running on the switch stack interface"
},
"bootNextServer": {
"type": "string",
"description": "The PXE boot server IP for the DHCP server running on the switch stack interface"
},
"bootFileName": {
"type": "string",
"description": "The PXE boot server file name for the DHCP server running on the switch stack interface"
},
"dhcpOptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "The code for DHCP option which should be from 2 to 254"
},
"type": {
"type": "string",
"description": "The type of the DHCP option which should be one of ('text', 'ip', 'integer' or 'hex')"
},
"value": {
"type": "string",
"description": "The value of the DHCP option"
}
}
},
"description": "Array of DHCP options consisting of code, type and value for the DHCP server running on the switch stack interface"
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "The starting IP address of the reserved IP range"
},
"end": {
"type": "string",
"description": "The ending IP address of the reserved IP range"
},
"comment": {
"type": "string",
"description": "The comment for the reserved IP range"
}
}
},
"description": "Array of DHCP reserved IP assignments for the DHCP server running on the switch stack interface"
},
"fixedIpAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the client which has fixed IP address"
},
"mac": {
"type": "string",
"description": "The MAC address of the client which has fixed IP address"
},
"ip": {
"type": "string",
"description": "The IP address of the client which has fixed IP address assigned to it"
}
}
},
"description": "Array of DHCP reserved IP assignments for the DHCP server running on the switch stack interface"
}
}
},
"examples": {
"application/json": {
"dhcpMode": "dhcpServer",
"dhcpRelayServerIps": [
"1.2.3.4"
],
"dhcpLeaseTime": "1 day",
"dnsNameserversOption": "custom",
"dnsCustomNameservers": [
"8.8.8.8, 8.8.4.4"
],
"bootOptionsEnabled": true,
"bootNextServer": "1.2.3.4",
"bootFileName": "home_boot_file",
"dhcpOptions": [
{
"code": "5",
"type": "text",
"value": "five"
}
],
"reservedIpRanges": [
{
"start": "192.168.1.1",
"end": "192.168.1.10",
"comment": "A reserved IP range"
}
],
"fixedIpAssignments": [
{
"name": "Cisco Meraki valued client",
"mac": "22:33:44:55:66:77",
"ip": "192.168.1.12"
}
]
}
}
}
},
"summary": "Update a layer 3 interface DHCP configuration for a switch",
"tags": [
"switch",
"configure",
"routing",
"interfaces",
"dhcp"
]
}
},
"/devices/{serial}/switch/routing/staticRoutes": {
"get": {
"description": "List layer 3 static routes for a switch",
"operationId": "getDeviceSwitchRoutingStaticRoutes",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"staticRouteId": {
"type": "string",
"description": "The identifier of a layer 3 static route"
},
"name": {
"type": "string",
"description": "The name or description of the layer 3 static route"
},
"subnet": {
"type": "string",
"description": "The IP address of the subnetwork specified in CIDR notation (ex. 1.2.3.0/24)"
},
"nextHopIp": {
"type": "string",
"description": " The IP address of the router to which traffic for this destination network should be sent"
},
"advertiseViaOspfEnabled": {
"type": "boolean",
"description": "Option to advertise static routes via OSPF"
},
"preferOverOspfRoutesEnabled": {
"type": "boolean",
"description": "Option to prefer static routes over OSPF routes"
}
},
"required": [
"subnet",
"nextHopIp"
]
}
},
"examples": {
"application/json": [
{
"staticRouteId": "1234",
"name": "My route",
"subnet": "192.168.1.0/24",
"nextHopIp": "1.2.3.4",
"advertiseViaOspfEnabled": false,
"preferOverOspfRoutesEnabled": false
}
]
}
}
},
"summary": "List layer 3 static routes for a switch",
"tags": [
"switch",
"configure",
"routing",
"staticRoutes"
]
},
"post": {
"description": "Create a layer 3 static route for a switch",
"operationId": "createDeviceSwitchRoutingStaticRoute",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "createDeviceSwitchRoutingStaticRoute",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name or description for layer 3 static route"
},
"subnet": {
"type": "string",
"description": "The subnet which is routed via this static route and should be specified in CIDR notation (ex. 1.2.3.0/24)"
},
"nextHopIp": {
"type": "string",
"description": "IP address of the next hop device to which the device sends its traffic for the subnet"
},
"advertiseViaOspfEnabled": {
"type": "boolean",
"description": "Option to advertise static route via OSPF"
},
"preferOverOspfRoutesEnabled": {
"type": "boolean",
"description": "Option to prefer static route over OSPF routes"
}
},
"example": {
"name": "My route",
"subnet": "192.168.1.0/24",
"nextHopIp": "1.2.3.4",
"advertiseViaOspfEnabled": false,
"preferOverOspfRoutesEnabled": false
},
"required": [
"subnet",
"nextHopIp"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"staticRouteId": {
"type": "string",
"description": "The identifier of a layer 3 static route"
},
"name": {
"type": "string",
"description": "The name or description of the layer 3 static route"
},
"subnet": {
"type": "string",
"description": "The IP address of the subnetwork specified in CIDR notation (ex. 1.2.3.0/24)"
},
"nextHopIp": {
"type": "string",
"description": " The IP address of the router to which traffic for this destination network should be sent"
},
"advertiseViaOspfEnabled": {
"type": "boolean",
"description": "Option to advertise static routes via OSPF"
},
"preferOverOspfRoutesEnabled": {
"type": "boolean",
"description": "Option to prefer static routes over OSPF routes"
}
},
"required": [
"subnet",
"nextHopIp"
]
},
"examples": {
"application/json": {
"staticRouteId": "1234",
"name": "My route",
"subnet": "192.168.1.0/24",
"nextHopIp": "1.2.3.4",
"advertiseViaOspfEnabled": false,
"preferOverOspfRoutesEnabled": false
}
}
}
},
"summary": "Create a layer 3 static route for a switch",
"tags": [
"switch",
"configure",
"routing",
"staticRoutes"
]
}
},
"/devices/{serial}/switch/routing/staticRoutes/{staticRouteId}": {
"get": {
"description": "Return a layer 3 static route for a switch",
"operationId": "getDeviceSwitchRoutingStaticRoute",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "staticRouteId",
"in": "path",
"description": "Static route ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"staticRouteId": {
"type": "string",
"description": "The identifier of a layer 3 static route"
},
"name": {
"type": "string",
"description": "The name or description of the layer 3 static route"
},
"subnet": {
"type": "string",
"description": "The IP address of the subnetwork specified in CIDR notation (ex. 1.2.3.0/24)"
},
"nextHopIp": {
"type": "string",
"description": " The IP address of the router to which traffic for this destination network should be sent"
},
"advertiseViaOspfEnabled": {
"type": "boolean",
"description": "Option to advertise static routes via OSPF"
},
"preferOverOspfRoutesEnabled": {
"type": "boolean",
"description": "Option to prefer static routes over OSPF routes"
}
},
"required": [
"subnet",
"nextHopIp"
]
},
"examples": {
"application/json": {
"staticRouteId": "1234",
"name": "My route",
"subnet": "192.168.1.0/24",
"nextHopIp": "1.2.3.4",
"advertiseViaOspfEnabled": false,
"preferOverOspfRoutesEnabled": false
}
}
}
},
"summary": "Return a layer 3 static route for a switch",
"tags": [
"switch",
"configure",
"routing",
"staticRoutes"
]
},
"put": {
"description": "Update a layer 3 static route for a switch",
"operationId": "updateDeviceSwitchRoutingStaticRoute",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "staticRouteId",
"in": "path",
"description": "Static route ID",
"type": "string",
"required": true
},
{
"name": "updateDeviceSwitchRoutingStaticRoute",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name or description for layer 3 static route"
},
"subnet": {
"type": "string",
"description": "The subnet which is routed via this static route and should be specified in CIDR notation (ex. 1.2.3.0/24)"
},
"nextHopIp": {
"type": "string",
"description": "IP address of the next hop device to which the device sends its traffic for the subnet"
},
"advertiseViaOspfEnabled": {
"type": "boolean",
"description": "Option to advertise static route via OSPF"
},
"preferOverOspfRoutesEnabled": {
"type": "boolean",
"description": "Option to prefer static route over OSPF routes"
}
},
"example": {
"name": "My route",
"subnet": "192.168.1.0/24",
"nextHopIp": "1.2.3.4",
"advertiseViaOspfEnabled": false,
"preferOverOspfRoutesEnabled": false
}
}
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"staticRouteId": {
"type": "string",
"description": "The identifier of a layer 3 static route"
},
"name": {
"type": "string",
"description": "The name or description of the layer 3 static route"
},
"subnet": {
"type": "string",
"description": "The IP address of the subnetwork specified in CIDR notation (ex. 1.2.3.0/24)"
},
"nextHopIp": {
"type": "string",
"description": " The IP address of the router to which traffic for this destination network should be sent"
},
"advertiseViaOspfEnabled": {
"type": "boolean",
"description": "Option to advertise static routes via OSPF"
},
"preferOverOspfRoutesEnabled": {
"type": "boolean",
"description": "Option to prefer static routes over OSPF routes"
}
},
"required": [
"subnet",
"nextHopIp"
]
},
"examples": {
"application/json": {
"staticRouteId": "1234",
"name": "My route",
"subnet": "192.168.1.0/24",
"nextHopIp": "1.2.3.4",
"advertiseViaOspfEnabled": false,
"preferOverOspfRoutesEnabled": false
}
}
}
},
"summary": "Update a layer 3 static route for a switch",
"tags": [
"switch",
"configure",
"routing",
"staticRoutes"
]
},
"delete": {
"description": "Delete a layer 3 static route for a switch",
"operationId": "deleteDeviceSwitchRoutingStaticRoute",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "staticRouteId",
"in": "path",
"description": "Static route ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a layer 3 static route for a switch",
"tags": [
"switch",
"configure",
"routing",
"staticRoutes"
]
}
},
"/devices/{serial}/switch/warmSpare": {
"get": {
"description": "Return warm spare configuration for a switch",
"operationId": "getDeviceSwitchWarmSpare",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable or disable warm spare for a switch"
},
"primarySerial": {
"type": "string",
"description": "Serial number of the primary switch"
},
"spareSerial": {
"type": "string",
"description": "Serial number of the warm spare switch"
}
}
},
"examples": {
"application/json": {
"enabled": true,
"primarySerial": "Q234-ABCD-0001",
"spareSerial": "Q234-ABCD-0002"
}
}
}
},
"summary": "Return warm spare configuration for a switch",
"tags": [
"switch",
"configure",
"warmSpare"
]
},
"put": {
"description": "Update warm spare configuration for a switch. The spare will use the same L3 configuration as the primary. Note that this will irreversibly destroy any existing L3 configuration on the spare.",
"operationId": "updateDeviceSwitchWarmSpare",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "updateDeviceSwitchWarmSpare",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable or disable warm spare for a switch"
},
"spareSerial": {
"type": "string",
"description": "Serial number of the warm spare switch"
}
},
"example": {
"enabled": true,
"spareSerial": "Q234-ABCD-0002"
},
"required": [
"enabled"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable or disable warm spare for a switch"
},
"primarySerial": {
"type": "string",
"description": "Serial number of the primary switch"
},
"spareSerial": {
"type": "string",
"description": "Serial number of the warm spare switch"
}
}
},
"examples": {
"application/json": {
"enabled": true,
"primarySerial": "Q234-ABCD-0001",
"spareSerial": "Q234-ABCD-0002"
}
}
}
},
"summary": "Update warm spare configuration for a switch",
"tags": [
"switch",
"configure",
"warmSpare"
]
}
},
"/devices/{serial}/wireless/alternateManagementInterface/ipv6": {
"put": {
"description": "Update alternate management interface IPv6 address",
"operationId": "updateDeviceWirelessAlternateManagementInterfaceIpv6",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "updateDeviceWirelessAlternateManagementInterfaceIpv6",
"in": "body",
"schema": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"enum": [
"ipv4",
"ipv6"
],
"description": "The IP protocol used for the address"
},
"assignmentMode": {
"type": "string",
"enum": [
"dynamic",
"static"
],
"description": "The type of address assignment. Either static or dynamic."
},
"address": {
"type": "string",
"description": "The IP address configured for the alternate management interface"
},
"gateway": {
"type": "string",
"description": "The gateway address configured for the alternate managment interface"
},
"prefix": {
"type": "string",
"description": "The IPv6 prefix length of the IPv6 interface. Required if IPv6 object is included."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The DNS servers settings for this address."
}
}
},
"description": "configured alternate management interface addresses"
}
},
"example": {
"addresses": [
{
"protocol": "ipv6",
"assignmentMode": "static",
"address": "2001:db8:3c4d:15::1",
"gateway": "fe80:db8:c15:c0:d0c::10ca:1d02",
"prefix": "2001:db8:3c4d:15::/64",
"nameservers": {
"addresses": [
"2001:db8:3c4d:15::1",
"2001:db8:3c4d:15::1"
]
}
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"enum": [
"ipv4",
"ipv6"
],
"description": "The IP protocol used for the address"
},
"assignmentMode": {
"type": "string",
"enum": [
"dynamic",
"static"
],
"description": "The type of address assignment. Either static or dynamic."
},
"address": {
"type": "string",
"description": "The IP address configured for the alternate management interface"
},
"gateway": {
"type": "string",
"description": "The gateway address configured for the alternate managment interface"
},
"prefix": {
"type": "string",
"description": "The IPv6 prefix of the interface. Required if IPv6 object is included."
},
"nameservers": {
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Up to 2 nameserver addresses to use, ordered in priority from highest to lowest priority."
}
},
"description": "The DNS servers settings for this address."
}
}
},
"description": "configured alternate management interface addresses"
}
}
},
"examples": {
"application/json": {
"addresses": [
{
"protocol": "ipv6",
"assignmentMode": "static",
"address": "2001:db8:3c4d:15::1",
"gateway": "fe80:db8:c15:c0:d0c::10ca:1d02",
"prefix": "2001:db8:3c4d:15::/64",
"nameservers": {
"addresses": [
"2001:db8:3c4d:15::1",
"2001:db8:3c4d:15::1"
]
}
}
]
}
}
}
},
"summary": "Update alternate management interface IPv6 address",
"tags": [
"wireless",
"configure",
"alternateManagementInterface",
"ipv6"
]
}
},
"/devices/{serial}/wireless/bluetooth/settings": {
"get": {
"description": "Return the bluetooth settings for a wireless device",
"operationId": "getDeviceWirelessBluetoothSettings",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Desired UUID of the beacon. If the value is set to null it will reset to Dashboard's automatically generated value."
},
"major": {
"type": "integer",
"description": "Desired major value of the beacon. If the value is set to null it will reset to Dashboard's automatically generated value."
},
"minor": {
"type": "integer",
"description": "Desired minor value of the beacon. If the value is set to null it will reset to Dashboard's automatically generated value."
}
}
},
"examples": {
"application/json": {
"uuid": "00000000-0000-0000-000-000000000000",
"major": 13,
"minor": 125
}
}
}
},
"summary": "Return the bluetooth settings for a wireless device",
"tags": [
"wireless",
"configure",
"bluetooth",
"settings"
]
},
"put": {
"description": "Update the bluetooth settings for a wireless device",
"operationId": "updateDeviceWirelessBluetoothSettings",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "updateDeviceWirelessBluetoothSettings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Desired UUID of the beacon. If the value is set to null it will reset to Dashboard's automatically generated value."
},
"major": {
"type": "integer",
"description": "Desired major value of the beacon. If the value is set to null it will reset to Dashboard's automatically generated value."
},
"minor": {
"type": "integer",
"description": "Desired minor value of the beacon. If the value is set to null it will reset to Dashboard's automatically generated value."
}
},
"example": {
"uuid": "00000000-0000-0000-000-000000000000",
"major": 13,
"minor": 125
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "Desired UUID of the beacon. If the value is set to null it will reset to Dashboard's automatically generated value."
},
"major": {
"type": "integer",
"description": "Desired major value of the beacon. If the value is set to null it will reset to Dashboard's automatically generated value."
},
"minor": {
"type": "integer",
"description": "Desired minor value of the beacon. If the value is set to null it will reset to Dashboard's automatically generated value."
}
}
},
"examples": {
"application/json": {
"uuid": "00000000-0000-0000-000-000000000000",
"major": 13,
"minor": 125
}
}
}
},
"summary": "Update the bluetooth settings for a wireless device",
"tags": [
"wireless",
"configure",
"bluetooth",
"settings"
]
}
},
"/devices/{serial}/wireless/connectionStats": {
"get": {
"description": "Aggregated connectivity info for a given AP on this network",
"operationId": "getDeviceWirelessConnectionStats",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 180 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 7 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 604800,
"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 7 days."
},
{
"type": "string",
"enum": [
"2.4",
"5",
"6"
],
"name": "band",
"in": "query",
"description": "Filter results by band (either '2.4', '5' or '6'). Note that data prior to February 2020 will not have band information."
},
{
"type": "integer",
"name": "ssid",
"in": "query",
"description": "Filter results by SSID"
},
{
"type": "integer",
"name": "vlan",
"in": "query",
"description": "Filter results by VLAN"
},
{
"type": "string",
"name": "apTag",
"in": "query",
"description": "Filter results by AP Tag"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "The serial number for the device"
},
"connectionStats": {
"type": "object",
"properties": {
"assoc": {
"type": "integer",
"description": "The number of failed association attempts"
},
"auth": {
"type": "integer",
"description": "The number of failed authentication attempts"
},
"dhcp": {
"type": "integer",
"description": "The number of failed DHCP attempts"
},
"dns": {
"type": "integer",
"description": "The number of failed DNS attempts"
},
"success": {
"type": "integer",
"description": "The number of successful connection attempts"
}
},
"description": "The connection stats of the device"
}
}
},
"examples": {
"application/json": {
"serial": "Q234-ABCD-5678",
"connectionStats": {
"assoc": 0,
"auth": 1,
"dhcp": 0,
"dns": 0,
"success": 43
}
}
}
}
},
"summary": "Aggregated connectivity info for a given AP on this network",
"tags": [
"wireless",
"monitor",
"connectionStats"
]
}
},
"/devices/{serial}/wireless/healthScores": {
"get": {
"description": "Fetch the health scores for a given AP on this network",
"operationId": "getDeviceWirelessHealthScores",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"device": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "device serial number"
}
},
"description": "device information"
},
"performance": {
"type": "object",
"properties": {
"latest": {
"type": "integer",
"description": "device performance score"
}
},
"description": "performance information"
},
"onboarding": {
"type": "object",
"properties": {
"latest": {
"type": "integer",
"description": "device onboarding score"
}
},
"description": "onboarding information"
}
}
},
"examples": {
"application/json": {
"device": {
"serial": "Q234-ABCD-5678"
},
"performance": {
"latest": 80
},
"onboarding": {
"latest": 20
}
}
}
}
},
"summary": "Fetch the health scores for a given AP on this network",
"tags": [
"wireless",
"monitor",
"healthScores"
],
"x-release-stage": "beta"
}
},
"/devices/{serial}/wireless/latencyStats": {
"get": {
"description": "Aggregated latency info for a given AP on this network",
"operationId": "getDeviceWirelessLatencyStats",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 180 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 7 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 604800,
"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 7 days."
},
{
"type": "string",
"enum": [
"2.4",
"5",
"6"
],
"name": "band",
"in": "query",
"description": "Filter results by band (either '2.4', '5' or '6'). Note that data prior to February 2020 will not have band information."
},
{
"type": "integer",
"name": "ssid",
"in": "query",
"description": "Filter results by SSID"
},
{
"type": "integer",
"name": "vlan",
"in": "query",
"description": "Filter results by VLAN"
},
{
"type": "string",
"name": "apTag",
"in": "query",
"description": "Filter results by AP Tag"
},
{
"type": "string",
"name": "fields",
"in": "query",
"description": "Partial selection: If present, this call will return only the selected fields of [\"rawDistribution\", \"avg\"]. All fields will be returned by default. Selected fields must be entered as a comma separated string."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"serial": "Q2JC-2MJM-FHRD",
"latencyStats": {
"backgroundTraffic": {
"rawDistribution": {
"0": 1234,
"1": 2345,
"2": 3456,
"4": 4567,
"8": 5678,
"16": 6789,
"32": 7890,
"64": 8901,
"128": 9012,
"256": 83,
"512": 1234,
"1024": 2345,
"2048": 9999
},
"avg": 606.52
},
"bestEffortTraffic": "same shape as backgroundTraffic",
"videoTraffic": "same shape as backgroundTraffic",
"voiceTraffic": "same shape as backgroundTraffic"
}
}
}
}
},
"summary": "Aggregated latency info for a given AP on this network",
"tags": [
"wireless",
"monitor",
"latencyStats"
]
}
},
"/devices/{serial}/wireless/radio/settings": {
"get": {
"description": "Return the radio settings of a device",
"operationId": "getDeviceWirelessRadioSettings",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"serial": "Q234-ABCD-5678",
"rfProfileId": "1234",
"twoFourGhzSettings": {
"channel": 11,
"targetPower": 21
},
"fiveGhzSettings": {
"channel": 149,
"channelWidth": 20,
"targetPower": 15
}
}
}
}
},
"summary": "Return the radio settings of a device",
"tags": [
"wireless",
"configure",
"radio",
"settings"
]
},
"put": {
"description": "Update the radio settings of a device",
"operationId": "updateDeviceWirelessRadioSettings",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "updateDeviceWirelessRadioSettings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rfProfileId": {
"type": "string",
"description": "The ID of an RF profile to assign to the device. If the value of this parameter is null, the appropriate basic RF profile (indoor or outdoor) will be assigned to the device. Assigning an RF profile will clear ALL manually configured overrides on the device (channel width, channel, power)."
},
"twoFourGhzSettings": {
"type": "object",
"properties": {
"channel": {
"type": "integer",
"enum": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14
],
"description": "Sets a manual channel for 2.4 GHz. Can be '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13' or '14' or null for using auto channel."
},
"targetPower": {
"type": "integer",
"description": "Set a manual target power for 2.4 GHz. Can be between '5' or '30' or null for using auto power range."
}
},
"description": "Manual radio settings for 2.4 GHz."
},
"fiveGhzSettings": {
"type": "object",
"properties": {
"channel": {
"type": "integer",
"enum": [
36,
40,
44,
48,
52,
56,
60,
64,
100,
104,
108,
112,
116,
120,
124,
128,
132,
136,
140,
144,
149,
153,
157,
161,
165,
169,
173,
177
],
"description": "Sets a manual channel for 5 GHz. Can be '36', '40', '44', '48', '52', '56', '60', '64', '100', '104', '108', '112', '116', '120', '124', '128', '132', '136', '140', '144', '149', '153', '157', '161', '165', '169', '173' or '177' or null for using auto channel."
},
"channelWidth": {
"type": "integer",
"enum": [
0,
20,
40,
80,
160
],
"description": "Sets a manual channel for 5 GHz. Can be '0', '20', '40', '80' or '160' or null for using auto channel width."
},
"targetPower": {
"type": "integer",
"description": "Set a manual target power for 5 GHz. Can be between '8' or '30' or null for using auto power range."
}
},
"description": "Manual radio settings for 5 GHz."
}
},
"example": {
"rfProfileId": "1234",
"twoFourGhzSettings": {
"channel": 11,
"targetPower": 21
},
"fiveGhzSettings": {
"channel": 149,
"channelWidth": 20,
"targetPower": 15
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"serial": "Q234-ABCD-5678",
"rfProfileId": "1234",
"twoFourGhzSettings": {
"channel": 11,
"targetPower": 21
},
"fiveGhzSettings": {
"channel": 149,
"channelWidth": 20,
"targetPower": 15
}
}
}
}
},
"summary": "Update the radio settings of a device",
"tags": [
"wireless",
"configure",
"radio",
"settings"
]
}
},
"/devices/{serial}/wireless/status": {
"get": {
"description": "Return the SSID statuses of an access point",
"operationId": "getDeviceWirelessStatus",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"basicServiceSets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ssidName": {
"type": "string",
"description": "Name of wireless network"
},
"ssidNumber": {
"type": "integer",
"description": "Unique identifier of wireless network"
},
"enabled": {
"type": "boolean",
"description": "Status of wireless network"
},
"band": {
"type": "string",
"description": "Frequency range used by wireless network"
},
"bssid": {
"type": "string",
"description": "Unique identifier of wireless access point"
},
"channel": {
"type": "integer",
"description": "Frequency channel used by wireless network"
},
"channelWidth": {
"type": "string",
"description": "Width of frequency channel used by wireless network"
},
"power": {
"type": "string",
"description": "Strength of wireless signal"
},
"visible": {
"type": "boolean",
"description": "Whether the SSID is advertised or hidden"
},
"broadcasting": {
"type": "boolean",
"description": "Whether the SSID is broadcasting based on an availability schedule"
}
}
},
"description": "SSID status list"
}
}
},
"examples": {
"application/json": {
"basicServiceSets": [
{
"ssidName": "My SSID",
"ssidNumber": 0,
"enabled": true,
"band": "2.4 GHz",
"bssid": "8A:15:04:00:00:00",
"channel": 11,
"channelWidth": "20 MHz",
"power": "18 dBm",
"visible": true,
"broadcasting": true
}
]
}
}
}
},
"summary": "Return the SSID statuses of an access point",
"tags": [
"wireless",
"monitor",
"status"
]
}
},
"/devices/{serial}/wireless/zigbee/enrollments": {
"post": {
"description": "Enqueue a job to start enrolling doorlocks on zigbee configured MRs",
"operationId": "createDeviceWirelessZigbeeEnrollment",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enrollmentId": {
"type": "string",
"description": "Id to check the status of your enrollment request"
},
"url": {
"type": "string",
"description": "GET this url to check the status of your enrollment request"
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
}
},
"description": "Enrollment request parameters"
},
"status": {
"type": "string",
"description": "Status of the enrollment request"
}
}
},
"examples": {
"application/json": {
"enrollmentId": "1234",
"url": "/devices/SERIAL/wireless/zigbee/enrollments/1234",
"request": {
"serial": "Q234-ABCD-5678"
},
"status": "complete"
}
}
}
},
"summary": "Enqueue a job to start enrolling doorlocks on zigbee configured MRs",
"tags": [
"wireless",
"configure",
"zigbee",
"enrollments"
],
"x-release-stage": "beta"
}
},
"/devices/{serial}/wireless/zigbee/enrollments/{id}": {
"get": {
"description": "Return an enrollment job",
"operationId": "getDeviceWirelessZigbeeEnrollment",
"parameters": [
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enrollmentId": {
"type": "string",
"description": "Id to check the status of your enrollment request"
},
"url": {
"type": "string",
"description": "GET this url to check the status of your enrollment request"
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
}
},
"description": "Enrollment request parameters"
},
"status": {
"type": "string",
"description": "Status of the enrollment request"
},
"enrollmentStartedAt": {
"type": "string",
"description": "Enrollment started at"
},
"doorLocks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The Door Lock ID"
},
"displayName": {
"type": "string",
"description": "The Door lock name"
},
"shortId": {
"type": "string",
"description": "The Door lock short ID"
},
"lqi": {
"type": "string",
"description": "The Door lock L quality index"
},
"rssi": {
"type": "string",
"description": "The Door lock received signal strength indicator"
},
"status": {
"type": "string",
"enum": [
"offline",
"online"
],
"description": "The Door lock status, either online or offline."
},
"eui64": {
"type": "string",
"description": "The Door lock unique identifier per network"
},
"enrolledAt": {
"type": "string",
"format": "date-time",
"description": "Date time the door lock was enrolled"
},
"lastSeenAt": {
"type": "string",
"format": "date-time",
"description": "Date time the door lock last send any messages"
},
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network ID"
},
"name": {
"type": "string",
"description": "Network name"
}
},
"description": "Network this door lock is connected to"
},
"gateway": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "MR Device Name"
},
"serial": {
"type": "string",
"description": "Gateway serial"
}
},
"description": "Gateway this door lock is connected to"
}
}
},
"description": "Door Locks"
}
}
},
"examples": {
"application/json": {
"enrollmentId": "1234",
"url": "/devices/SERIAL/wireless/zigbee/enrollments/1234",
"request": {
"serial": "Q234-ABCD-5678"
},
"status": "complete",
"enrollmentStartedAt": "complete",
"doorLocks": [
{
"id": "1",
"displayName": "Door Lock 403",
"shortId": "ABE123",
"lqi": "1",
"rssi": "1",
"status": "online",
"eui64": "DL403",
"enrolledAt": "2023-08-14T19:57:06Z",
"lastSeenAt": "2023-08-14T19:59:01Z",
"network": {
"id": "N_24329156",
"name": "Main Office"
},
"gateway": {
"name": "My AP",
"serial": "Q234-ABCD-5678"
}
}
]
}
}
}
},
"summary": "Return an enrollment job",
"tags": [
"wireless",
"configure",
"zigbee",
"enrollments"
],
"x-release-stage": "beta"
}
},
"/networks/{networkId}": {
"get": {
"description": "Return a network",
"operationId": "getNetwork",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network ID"
},
"organizationId": {
"type": "string",
"description": "Organization ID"
},
"name": {
"type": "string",
"description": "Network name"
},
"productTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of the product types that the network supports"
},
"timeZone": {
"type": "string",
"description": "Timezone of the network"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Network tags"
},
"enrollmentString": {
"type": "string",
"description": "Enrollment string for the network"
},
"url": {
"type": "string",
"description": "URL to the network Dashboard UI"
},
"notes": {
"type": "string",
"description": "Notes for the network"
},
"isBoundToConfigTemplate": {
"type": "boolean",
"description": "If the network is bound to a config template"
}
}
},
"examples": {
"application/json": {
"id": "N_24329156",
"organizationId": "2930418",
"name": "Main Office",
"productTypes": [
"appliance",
"switch",
"wireless"
],
"timeZone": "America/Los_Angeles",
"tags": [
"tag1",
"tag2"
],
"enrollmentString": "my-enrollment-string",
"url": "https://n1.meraki.com//n//manage/nodes/list",
"notes": "Additional description of the network",
"isBoundToConfigTemplate": false
}
}
}
},
"summary": "Return a network",
"tags": [
"networks",
"configure"
]
},
"put": {
"description": "Update a network",
"operationId": "updateNetwork",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetwork",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the network"
},
"timeZone": {
"type": "string",
"description": "The timezone of the network. For a list of allowed timezones, please see the 'TZ' column in the table in this article. "
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of tags to be applied to the network"
},
"enrollmentString": {
"type": "string",
"description": "A unique identifier which can be used for device enrollment or easy access through the Meraki SM Registration page or the Self Service Portal. Please note that changing this field may cause existing bookmarks to break."
},
"notes": {
"type": "string",
"description": "Add any notes or additional information about this network here."
}
},
"example": {
"name": "Main Office",
"timeZone": "America/Los_Angeles",
"tags": [
"tag1",
"tag2"
],
"enrollmentString": "my-enrollment-string",
"notes": "Additional description of the network"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network ID"
},
"organizationId": {
"type": "string",
"description": "Organization ID"
},
"name": {
"type": "string",
"description": "Network name"
},
"productTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of the product types that the network supports"
},
"timeZone": {
"type": "string",
"description": "Timezone of the network"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Network tags"
},
"enrollmentString": {
"type": "string",
"description": "Enrollment string for the network"
},
"url": {
"type": "string",
"description": "URL to the network Dashboard UI"
},
"notes": {
"type": "string",
"description": "Notes for the network"
},
"isBoundToConfigTemplate": {
"type": "boolean",
"description": "If the network is bound to a config template"
}
}
},
"examples": {
"application/json": {
"id": "N_24329156",
"organizationId": "2930418",
"name": "Main Office",
"productTypes": [
"appliance",
"switch",
"wireless"
],
"timeZone": "America/Los_Angeles",
"tags": [
"tag1",
"tag2"
],
"enrollmentString": "my-enrollment-string",
"url": "https://n1.meraki.com//n//manage/nodes/list",
"notes": "Additional description of the network",
"isBoundToConfigTemplate": false
}
}
}
},
"summary": "Update a network",
"tags": [
"networks",
"configure"
]
},
"delete": {
"description": "Delete a network",
"operationId": "deleteNetwork",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a network",
"tags": [
"networks",
"configure"
]
}
},
"/networks/{networkId}/alerts/history": {
"get": {
"description": "Return the alert history for this network",
"operationId": "getNetworkAlertsHistory",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 100."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"occurredAt": {
"type": "string",
"description": "time when the event occurred"
},
"alertTypeId": {
"type": "string",
"description": "type of alert"
},
"alertType": {
"type": "string",
"description": "user friendly alert type"
},
"device": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "device serial"
}
},
"description": "info related to the device that caused the alert"
},
"destinations": {
"type": "object",
"properties": {
"email": {
"type": "object",
"properties": {
"sentAt": {
"type": "string",
"description": "time when the alert was sent to the user(s) for this channel"
}
},
"description": "email destinations for this alert"
},
"push": {
"type": "object",
"properties": {
"sentAt": {
"type": "string",
"description": "time when the alert was sent to the user(s) for this channel"
}
},
"description": "push destinations for this alert"
},
"sms": {
"type": "object",
"properties": {
"sentAt": {
"type": "string",
"description": "time when the alert was sent to the user(s) for this channel"
}
},
"description": "sms destinations for this alert"
},
"webhook": {
"type": "object",
"properties": {
"sentAt": {
"type": "string",
"description": "time when the alert was sent to the user(s) for this channel"
}
},
"description": "webhook destinations for this alert"
}
},
"description": "the destinations this alert is configured to be delivered to"
},
"alertData": {
"type": "object",
"description": "relevant data about the event that caused the alert"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"occurredAt": "2022-07-11T22:35:34Z",
"alertTypeId": "settings_changed",
"alertType": "Settings changed",
"device": {
"serial": "Q3CG-G6W8-BEVR"
},
"destinations": {
"email": {
"sentAt": "2022-07-11T22:40:34Z"
},
"push": {
"sentAt": "2022-07-11T22:40:34Z"
},
"sms": {
"sentAt": "2022-07-11T22:40:34Z"
},
"webhook": {
"sentAt": "2022-07-11T22:40:34Z"
}
}
}
]
}
}
},
"summary": "Return the alert history for this network",
"tags": [
"networks",
"monitor",
"alerts",
"history"
]
}
},
"/networks/{networkId}/alerts/settings": {
"get": {
"description": "Return the alert configuration for this network",
"operationId": "getNetworkAlertsSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"defaultDestinations": {
"type": "object",
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of emails that will receive the alert(s)."
},
"allAdmins": {
"type": "boolean",
"description": "If true, then all network admins will receive emails."
},
"snmp": {
"type": "boolean",
"description": "If true, then an SNMP trap will be sent if there is an SNMP trap server configured for this network."
},
"httpServerIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of HTTP server IDs to send a Webhook to"
}
},
"description": "The network-wide destinations for all alerts on the network."
},
"alerts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The type of alert"
},
"enabled": {
"type": "boolean",
"description": "A boolean depicting if the alert is turned on or off"
},
"alertDestinations": {
"type": "object",
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of emails that will receive information about the alert"
},
"allAdmins": {
"type": "boolean",
"description": "If true, then all network admins will receive emails for this alert"
},
"snmp": {
"type": "boolean",
"description": "If true, then an SNMP trap will be sent for this alert if there is an SNMP trap server configured for this network"
},
"httpServerIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of HTTP server IDs to send a Webhook to for this alert"
}
},
"description": "A hash of destinations for this specific alert"
},
"filters": {
"type": "object",
"properties": {
"conditions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Type of condition"
},
"unit": {
"type": "string",
"description": "Unit"
},
"duration": {
"type": "integer",
"description": "Duration"
},
"direction": {
"type": "string",
"enum": [
"+",
"-"
],
"description": "Direction"
},
"threshold": {
"type": "number",
"format": "float",
"description": "Threshold"
}
}
},
"description": "Conditions"
},
"failureType": {
"type": "string",
"description": "Failure Type"
},
"lookbackWindow": {
"type": "integer",
"description": "Loopback Window (in sec)"
},
"minDuration": {
"type": "integer",
"description": "Min Duration"
},
"name": {
"type": "string",
"description": "Name"
},
"period": {
"type": "integer",
"description": "Period"
},
"priority": {
"type": "string",
"description": "Priority"
},
"regex": {
"type": "string",
"description": "Regex"
},
"selector": {
"type": "string",
"description": "Selector"
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "Serials"
},
"ssidNum": {
"type": "integer",
"description": "SSID Number"
},
"tag": {
"type": "string",
"description": "Tag"
},
"threshold": {
"type": "integer",
"description": "Threshold"
},
"timeout": {
"type": "integer",
"description": "Timeout"
}
},
"description": "A hash of specific configuration data for the alert. Only filters specific to the alert will be updated."
}
},
"required": [
"type"
]
},
"description": "Alert-specific configuration for each type. Only alerts that pertain to the network can be updated."
},
"muting": {
"type": "object",
"properties": {
"byPortSchedules": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "If true, then wireless unreachable alerts will be muted when caused by a port schedule"
}
},
"description": "Mute wireless unreachable alerts based on switch port schedules"
}
},
"description": "Mute alerts under certain conditions"
}
}
},
"examples": {
"application/json": {
"defaultDestinations": {
"emails": [
"miles@meraki.com"
],
"allAdmins": true,
"snmp": true,
"httpServerIds": [
"aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
]
},
"alerts": [
{
"type": "gatewayDown",
"enabled": true,
"alertDestinations": {
"emails": [
"miles@meraki.com"
],
"allAdmins": false,
"snmp": false,
"httpServerIds": [
"aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
]
},
"filters": {
"conditions": [
{
"type": "temperature",
"unit": "celsius",
"duration": 0,
"direction": "+",
"threshold": 72.5
}
],
"failureType": "802.1X auth fail",
"lookbackWindow": 360,
"minDuration": 60,
"name": "Filter",
"period": 1800,
"priority": "",
"regex": "[a-z]",
"selector": "{\"smartSensitivity\":\"medium\",\"smartEnabled\":false,\"eventReminderPeriodSecs\":10800}",
"serials": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
],
"ssidNum": 1,
"tag": "tag1",
"threshold": 30,
"timeout": 60
}
}
],
"muting": {
"byPortSchedules": {
"enabled": true
}
}
}
}
}
},
"summary": "Return the alert configuration for this network",
"tags": [
"networks",
"configure",
"alerts",
"settings"
]
},
"put": {
"description": "Update the alert configuration for this network",
"operationId": "updateNetworkAlertsSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkAlertsSettings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"defaultDestinations": {
"type": "object",
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of emails that will receive the alert(s)."
},
"allAdmins": {
"type": "boolean",
"description": "If true, then all network admins will receive emails."
},
"snmp": {
"type": "boolean",
"description": "If true, then an SNMP trap will be sent if there is an SNMP trap server configured for this network."
},
"httpServerIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of HTTP server IDs to send a Webhook to"
}
},
"description": "The network-wide destinations for all alerts on the network."
},
"alerts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The type of alert"
},
"enabled": {
"type": "boolean",
"description": "A boolean depicting if the alert is turned on or off"
},
"alertDestinations": {
"type": "object",
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of emails that will receive information about the alert"
},
"allAdmins": {
"type": "boolean",
"description": "If true, then all network admins will receive emails for this alert"
},
"snmp": {
"type": "boolean",
"description": "If true, then an SNMP trap will be sent for this alert if there is an SNMP trap server configured for this network"
},
"httpServerIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of HTTP server IDs to send a Webhook to for this alert"
}
},
"description": "A hash of destinations for this specific alert"
},
"filters": {
"type": "object",
"properties": {
"conditions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Type of condition"
},
"unit": {
"type": "string",
"description": "Unit"
},
"duration": {
"type": "integer",
"description": "Duration"
},
"direction": {
"type": "string",
"enum": [
"+",
"-"
],
"description": "Direction"
},
"threshold": {
"type": "number",
"format": "float",
"description": "Threshold"
}
}
},
"description": "Conditions"
},
"failureType": {
"type": "string",
"description": "Failure Type"
},
"lookbackWindow": {
"type": "integer",
"description": "Loopback Window (in sec)"
},
"minDuration": {
"type": "integer",
"description": "Min Duration"
},
"name": {
"type": "string",
"description": "Name"
},
"period": {
"type": "integer",
"description": "Period"
},
"priority": {
"type": "string",
"description": "Priority"
},
"regex": {
"type": "string",
"description": "Regex"
},
"selector": {
"type": "string",
"description": "Selector"
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "Serials"
},
"ssidNum": {
"type": "integer",
"description": "SSID Number"
},
"tag": {
"type": "string",
"description": "Tag"
},
"threshold": {
"type": "integer",
"description": "Threshold"
},
"timeout": {
"type": "integer",
"description": "Timeout"
}
},
"description": "A hash of specific configuration data for the alert. Only filters specific to the alert will be updated."
}
},
"required": [
"type"
]
},
"description": "Alert-specific configuration for each type. Only alerts that pertain to the network can be updated."
},
"muting": {
"type": "object",
"properties": {
"byPortSchedules": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "If true, then wireless unreachable alerts will be muted when caused by a port schedule"
}
},
"description": "Mute wireless unreachable alerts based on switch port schedules"
}
},
"description": "Mute alerts under certain conditions"
}
},
"example": {
"defaultDestinations": {
"emails": [
"miles@meraki.com"
],
"allAdmins": true,
"snmp": true,
"httpServerIds": [
"aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
]
},
"alerts": [
{
"type": "gatewayDown",
"enabled": true,
"alertDestinations": {
"emails": [
"miles@meraki.com"
],
"allAdmins": false,
"snmp": false,
"httpServerIds": [
"aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
]
},
"filters": {
"conditions": [
{
"type": "temperature",
"unit": "celsius",
"duration": 0,
"direction": "+",
"threshold": 72.5
}
],
"failureType": "802.1X auth fail",
"lookbackWindow": 360,
"minDuration": 60,
"name": "Filter",
"period": 1800,
"priority": "",
"regex": "[a-z]",
"selector": "{\"smartSensitivity\":\"medium\",\"smartEnabled\":false,\"eventReminderPeriodSecs\":10800}",
"serials": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
],
"ssidNum": 1,
"tag": "tag1",
"threshold": 30,
"timeout": 60
}
}
],
"muting": {
"byPortSchedules": {
"enabled": true
}
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"defaultDestinations": {
"type": "object",
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of emails that will receive the alert(s)."
},
"allAdmins": {
"type": "boolean",
"description": "If true, then all network admins will receive emails."
},
"snmp": {
"type": "boolean",
"description": "If true, then an SNMP trap will be sent if there is an SNMP trap server configured for this network."
},
"httpServerIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of HTTP server IDs to send a Webhook to"
}
},
"description": "The network-wide destinations for all alerts on the network."
},
"alerts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The type of alert"
},
"enabled": {
"type": "boolean",
"description": "A boolean depicting if the alert is turned on or off"
},
"alertDestinations": {
"type": "object",
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of emails that will receive information about the alert"
},
"allAdmins": {
"type": "boolean",
"description": "If true, then all network admins will receive emails for this alert"
},
"snmp": {
"type": "boolean",
"description": "If true, then an SNMP trap will be sent for this alert if there is an SNMP trap server configured for this network"
},
"httpServerIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of HTTP server IDs to send a Webhook to for this alert"
}
},
"description": "A hash of destinations for this specific alert"
},
"filters": {
"type": "object",
"properties": {
"conditions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Type of condition"
},
"unit": {
"type": "string",
"description": "Unit"
},
"duration": {
"type": "integer",
"description": "Duration"
},
"direction": {
"type": "string",
"enum": [
"+",
"-"
],
"description": "Direction"
},
"threshold": {
"type": "number",
"format": "float",
"description": "Threshold"
}
}
},
"description": "Conditions"
},
"failureType": {
"type": "string",
"description": "Failure Type"
},
"lookbackWindow": {
"type": "integer",
"description": "Loopback Window (in sec)"
},
"minDuration": {
"type": "integer",
"description": "Min Duration"
},
"name": {
"type": "string",
"description": "Name"
},
"period": {
"type": "integer",
"description": "Period"
},
"priority": {
"type": "string",
"description": "Priority"
},
"regex": {
"type": "string",
"description": "Regex"
},
"selector": {
"type": "string",
"description": "Selector"
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "Serials"
},
"ssidNum": {
"type": "integer",
"description": "SSID Number"
},
"tag": {
"type": "string",
"description": "Tag"
},
"threshold": {
"type": "integer",
"description": "Threshold"
},
"timeout": {
"type": "integer",
"description": "Timeout"
}
},
"description": "A hash of specific configuration data for the alert. Only filters specific to the alert will be updated."
}
},
"required": [
"type"
]
},
"description": "Alert-specific configuration for each type. Only alerts that pertain to the network can be updated."
},
"muting": {
"type": "object",
"properties": {
"byPortSchedules": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "If true, then wireless unreachable alerts will be muted when caused by a port schedule"
}
},
"description": "Mute wireless unreachable alerts based on switch port schedules"
}
},
"description": "Mute alerts under certain conditions"
}
}
},
"examples": {
"application/json": {
"defaultDestinations": {
"emails": [
"miles@meraki.com"
],
"allAdmins": true,
"snmp": true,
"httpServerIds": [
"aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
]
},
"alerts": [
{
"type": "gatewayDown",
"enabled": true,
"alertDestinations": {
"emails": [
"miles@meraki.com"
],
"allAdmins": false,
"snmp": false,
"httpServerIds": [
"aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
]
},
"filters": {
"conditions": [
{
"type": "temperature",
"unit": "celsius",
"duration": 0,
"direction": "+",
"threshold": 72.5
}
],
"failureType": "802.1X auth fail",
"lookbackWindow": 360,
"minDuration": 60,
"name": "Filter",
"period": 1800,
"priority": "",
"regex": "[a-z]",
"selector": "{\"smartSensitivity\":\"medium\",\"smartEnabled\":false,\"eventReminderPeriodSecs\":10800}",
"serials": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
],
"ssidNum": 1,
"tag": "tag1",
"threshold": 30,
"timeout": 60
}
}
],
"muting": {
"byPortSchedules": {
"enabled": true
}
}
}
}
}
},
"summary": "Update the alert configuration for this network",
"tags": [
"networks",
"configure",
"alerts",
"settings"
]
}
},
"/networks/{networkId}/appliance/clients/{clientId}/security/events": {
"get": {
"description": "List the security events for a client. Clients can be identified by a client key or either the MAC or IP depending on whether the network uses Track-by-IP.",
"operationId": "getNetworkApplianceClientSecurityEvents",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "clientId",
"in": "path",
"description": "Client ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. Data is gathered after the specified t0 value. The maximum lookback period is 791 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 791 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 68342400,
"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 791 days. The default is 31 days."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 100."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"enum": [
"ascending",
"descending"
],
"name": "sortOrder",
"in": "query",
"description": "Sorted order of security events based on event detection time. Order options are 'ascending' or 'descending'. Default is ascending order."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"ts": "2018-02-11T00:00:00.090210Z",
"eventType": "File Scanned",
"clientName": "COMPUTER-M-V78J",
"clientMac": "10:dd:b1:eb:88:f8",
"clientIp": "192.168.128.2",
"srcIp": "192.168.128.2",
"destIp": "119.192.233.48",
"protocol": "http",
"uri": "http://www.favorite-icons.com/program/FavoriteIconsUninstall.exe",
"canonicalName": "PUA.Win.Dropper.Kraddare::1201",
"destinationPort": 80,
"fileHash": "3ec1b9a95fe62aa25fc959643a0f227b76d253094681934daaf628d3574b3463",
"fileType": "MS_EXE",
"fileSizeBytes": 193688,
"disposition": "Malicious",
"action": "Blocked"
},
{
"ts": "2018-02-11T00:00:00.090210Z",
"eventType": "IDS Alert",
"deviceMac": "00:18:0a:01:02:03",
"clientMac": "A1:B2:C3:D4:E5:F6",
"srcIp": "1.2.3.4:34195",
"destIp": "10.20.30.40:80",
"protocol": "tcp/ip",
"priority": "2",
"classification": "4",
"blocked": true,
"message": "SERVER-WEBAPP JBoss JMX console access attempt",
"signature": "1:21516:9",
"sigSource": "",
"ruleId": "meraki:intrusion/snort/GID/1/SID/26267"
}
]
}
}
},
"summary": "List the security events for a client",
"tags": [
"appliance",
"monitor",
"clients",
"security",
"events"
]
}
},
"/networks/{networkId}/appliance/connectivityMonitoringDestinations": {
"get": {
"description": "Return the connectivity testing destinations for an MX network",
"operationId": "getNetworkApplianceConnectivityMonitoringDestinations",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"destinations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "The IP address to test connectivity with"
},
"description": {
"type": "string",
"description": "Description of the testing destination. Optional, defaults to an empty string"
},
"default": {
"type": "boolean",
"description": "Boolean indicating whether this is the default testing destination (true) or not (false). Defaults to false. Only one default is allowed"
}
}
},
"description": "The list of connectivity monitoring destinations"
}
}
},
"examples": {
"application/json": {
"destinations": [
{
"ip": "1.2.3.4",
"description": "Google",
"default": false
}
]
}
}
}
},
"summary": "Return the connectivity testing destinations for an MX network",
"tags": [
"appliance",
"configure",
"connectivityMonitoringDestinations"
]
},
"put": {
"description": "Update the connectivity testing destinations for an MX network",
"operationId": "updateNetworkApplianceConnectivityMonitoringDestinations",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceConnectivityMonitoringDestinations",
"in": "body",
"schema": {
"type": "object",
"properties": {
"destinations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "The IP address to test connectivity with"
},
"description": {
"type": "string",
"description": "Description of the testing destination. Optional, defaults to null"
},
"default": {
"type": "boolean",
"description": "Boolean indicating whether this is the default testing destination (true) or not (false). Defaults to false. Only one default is allowed"
}
},
"required": [
"ip"
]
},
"description": "The list of connectivity monitoring destinations"
}
},
"example": {
"destinations": [
{
"ip": "1.2.3.4",
"description": "Google",
"default": false
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"destinations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "The IP address to test connectivity with"
},
"description": {
"type": "string",
"description": "Description of the testing destination. Optional, defaults to an empty string"
},
"default": {
"type": "boolean",
"description": "Boolean indicating whether this is the default testing destination (true) or not (false). Defaults to false. Only one default is allowed"
}
}
},
"description": "The list of connectivity monitoring destinations"
}
}
},
"examples": {
"application/json": {
"destinations": [
{
"ip": "1.2.3.4",
"description": "Google",
"default": false
}
]
}
}
}
},
"summary": "Update the connectivity testing destinations for an MX network",
"tags": [
"appliance",
"configure",
"connectivityMonitoringDestinations"
]
}
},
"/networks/{networkId}/appliance/contentFiltering": {
"get": {
"description": "Return the content filtering settings for an MX network",
"operationId": "getNetworkApplianceContentFiltering",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"allowedUrlPatterns": [
"http://www.example.org",
"http://help.com.au"
],
"blockedUrlPatterns": [
"http://www.example.com",
"http://www.betting.com"
],
"blockedUrlCategories": [
{
"id": "meraki:contentFiltering/category/1",
"name": "Real Estate"
},
{
"id": "meraki:contentFiltering/category/7",
"name": "Shopping"
}
],
"urlCategoryListSize": "topSites"
}
}
}
},
"summary": "Return the content filtering settings for an MX network",
"tags": [
"appliance",
"configure",
"contentFiltering"
]
},
"put": {
"description": "Update the content filtering settings for an MX network",
"operationId": "updateNetworkApplianceContentFiltering",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceContentFiltering",
"in": "body",
"schema": {
"type": "object",
"properties": {
"allowedUrlPatterns": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL patterns that are allowed"
},
"blockedUrlPatterns": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL patterns that are blocked"
},
"blockedUrlCategories": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL categories to block"
},
"urlCategoryListSize": {
"type": "string",
"enum": [
"fullList",
"topSites"
],
"description": "URL category list size which is either 'topSites' or 'fullList'"
}
},
"example": {
"allowedUrlPatterns": [
"http://www.example.org",
"http://help.com.au"
],
"blockedUrlPatterns": [
"http://www.example.com",
"http://www.betting.com"
],
"blockedUrlCategories": [
"meraki:contentFiltering/category/1",
"meraki:contentFiltering/category/7"
],
"urlCategoryListSize": "topSites"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"allowedUrlPatterns": [
"http://www.example.org",
"http://help.com.au"
],
"blockedUrlPatterns": [
"http://www.example.com",
"http://www.betting.com"
],
"blockedUrlCategories": [
{
"id": "meraki:contentFiltering/category/1",
"name": "Real Estate"
},
{
"id": "meraki:contentFiltering/category/7",
"name": "Shopping"
}
],
"urlCategoryListSize": "topSites"
}
}
}
},
"summary": "Update the content filtering settings for an MX network",
"tags": [
"appliance",
"configure",
"contentFiltering"
]
}
},
"/networks/{networkId}/appliance/contentFiltering/categories": {
"get": {
"description": "List all available content filtering categories for an MX network",
"operationId": "getNetworkApplianceContentFilteringCategories",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"categories": [
{
"id": "meraki:contentFiltering/category/1",
"name": "Real Estate"
},
{
"id": "meraki:contentFiltering/category/3",
"name": "Financial Services"
},
"...",
{
"id": "meraki:contentFiltering/category/11",
"name": "Adult and Pornography"
}
]
}
}
}
},
"summary": "List all available content filtering categories for an MX network",
"tags": [
"appliance",
"configure",
"contentFiltering",
"categories"
]
}
},
"/networks/{networkId}/appliance/firewall/cellularFirewallRules": {
"get": {
"description": "Return the cellular firewall rules for an MX network",
"operationId": "getNetworkApplianceFirewallCellularFirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"srcPort": "Any",
"srcCidr": "Any",
"syslogEnabled": false
}
]
}
}
}
},
"summary": "Return the cellular firewall rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"cellularFirewallRules"
]
},
"put": {
"description": "Update the cellular firewall rules of an MX network",
"operationId": "updateNetworkApplianceFirewallCellularFirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceFirewallCellularFirewallRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"enum": [
"allow",
"deny"
],
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"enum": [
"any",
"icmp",
"icmp6",
"tcp",
"udp"
],
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"srcPort": {
"type": "string",
"description": "Comma-separated list of source port(s) (integer in the range 1-65535), or 'any'"
},
"srcCidr": {
"type": "string",
"description": "Comma-separated list of source IP address(es) (in IP or CIDR notation), or 'any' (note: FQDN not supported for source addresses)"
},
"destPort": {
"type": "string",
"description": "Comma-separated list of destination port(s) (integer in the range 1-65535), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Comma-separated list of destination IP address(es) (in IP or CIDR notation), fully-qualified domain names (FQDN) or 'any'"
},
"syslogEnabled": {
"type": "boolean",
"description": "Log this rule to syslog (true or false, boolean value) - only applicable if a syslog has been configured (optional)"
}
},
"required": [
"policy",
"protocol",
"srcCidr",
"destCidr"
]
},
"description": "An ordered array of the firewall rules (not including the default rule)"
}
},
"example": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"srcPort": "Any",
"srcCidr": "Any",
"syslogEnabled": false
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"srcPort": "Any",
"srcCidr": "Any",
"syslogEnabled": false
}
]
}
}
}
},
"summary": "Update the cellular firewall rules of an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"cellularFirewallRules"
]
}
},
"/networks/{networkId}/appliance/firewall/firewalledServices": {
"get": {
"description": "List the appliance services and their accessibility rules",
"operationId": "getNetworkApplianceFirewallFirewalledServices",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"service": {
"type": "string",
"description": "Appliance service name"
},
"access": {
"type": "string",
"description": "A string indicating the rule for which IPs are allowed to use the specified service"
},
"allowedIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of allowed IPs that can access the service"
}
}
}
},
"examples": {
"application/json": [
{
"service": "web",
"access": "restricted",
"allowedIps": [
"123.123.123.1"
]
}
]
}
}
},
"summary": "List the appliance services and their accessibility rules",
"tags": [
"appliance",
"configure",
"firewall",
"firewalledServices"
]
}
},
"/networks/{networkId}/appliance/firewall/firewalledServices/{service}": {
"get": {
"description": "Return the accessibility settings of the given service ('ICMP', 'web', or 'SNMP')",
"operationId": "getNetworkApplianceFirewallFirewalledService",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "service",
"in": "path",
"description": "Service",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"service": {
"type": "string",
"description": "Appliance service name"
},
"access": {
"type": "string",
"description": "A string indicating the rule for which IPs are allowed to use the specified service"
},
"allowedIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of allowed IPs that can access the service"
}
}
},
"examples": {
"application/json": {
"service": "web",
"access": "restricted",
"allowedIps": [
"123.123.123.1"
]
}
}
}
},
"summary": "Return the accessibility settings of the given service ('ICMP', 'web', or 'SNMP')",
"tags": [
"appliance",
"configure",
"firewall",
"firewalledServices"
]
},
"put": {
"description": "Updates the accessibility settings for the given service ('ICMP', 'web', or 'SNMP')",
"operationId": "updateNetworkApplianceFirewallFirewalledService",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "service",
"in": "path",
"description": "Service",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceFirewallFirewalledService",
"in": "body",
"schema": {
"type": "object",
"properties": {
"access": {
"type": "string",
"enum": [
"blocked",
"restricted",
"unrestricted"
],
"description": "A string indicating the rule for which IPs are allowed to use the specified service. Acceptable values are \"blocked\" (no remote IPs can access the service), \"restricted\" (only allowed IPs can access the service), and \"unrestriced\" (any remote IP can access the service). This field is required"
},
"allowedIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of allowed IPs that can access the service. This field is required if \"access\" is set to \"restricted\". Otherwise this field is ignored"
}
},
"example": {
"access": "restricted",
"allowedIps": [
"123.123.123.1"
]
},
"required": [
"access"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"service": {
"type": "string",
"description": "Appliance service name"
},
"access": {
"type": "string",
"description": "A string indicating the rule for which IPs are allowed to use the specified service"
},
"allowedIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of allowed IPs that can access the service"
}
}
},
"examples": {
"application/json": {
"service": "web",
"access": "restricted",
"allowedIps": [
"123.123.123.1"
]
}
}
}
},
"summary": "Updates the accessibility settings for the given service ('ICMP', 'web', or 'SNMP')",
"tags": [
"appliance",
"configure",
"firewall",
"firewalledServices"
]
}
},
"/networks/{networkId}/appliance/firewall/inboundCellularFirewallRules": {
"get": {
"description": "Return the inbound cellular firewall rules for an MX network",
"operationId": "getNetworkApplianceFirewallInboundCellularFirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"srcPort": {
"type": "string",
"description": "Comma-separated list of source port(s) (integer in the range 1-65535), or 'any'"
},
"srcCidr": {
"type": "string",
"description": "Comma-separated list of source IP address(es) (in IP or CIDR notation), or 'any' (note: FQDN not supported for source addresses)"
},
"destPort": {
"type": "string",
"description": "Comma-separated list of destination port(s) (integer in the range 1-65535), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Comma-separated list of destination IP address(es) (in IP or CIDR notation), fully-qualified domain names (FQDN) or 'any'"
},
"syslogEnabled": {
"type": "boolean",
"description": "Log this rule to syslog (true or false, boolean value) - only applicable if a syslog has been configured (optional)"
}
}
},
"description": "An ordered array of the firewall rules (not including the default rule)"
}
}
},
"examples": {
"application/json": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"srcPort": "Any",
"srcCidr": "Any",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"syslogEnabled": false
}
]
}
}
}
},
"summary": "Return the inbound cellular firewall rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"inboundCellularFirewallRules"
]
},
"put": {
"description": "Update the inbound cellular firewall rules of an MX network",
"operationId": "updateNetworkApplianceFirewallInboundCellularFirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceFirewallInboundCellularFirewallRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"enum": [
"allow",
"deny"
],
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"enum": [
"any",
"icmp",
"icmp6",
"tcp",
"udp"
],
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"srcPort": {
"type": "string",
"description": "Comma-separated list of source port(s) (integer in the range 1-65535), or 'any'"
},
"srcCidr": {
"type": "string",
"description": "Comma-separated list of source IP address(es) (in IP or CIDR notation), or 'any' (note: FQDN not supported for source addresses)"
},
"destPort": {
"type": "string",
"description": "Comma-separated list of destination port(s) (integer in the range 1-65535), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Comma-separated list of destination IP address(es) (in IP or CIDR notation), fully-qualified domain names (FQDN) or 'any'"
},
"syslogEnabled": {
"type": "boolean",
"description": "Log this rule to syslog (true or false, boolean value) - only applicable if a syslog has been configured (optional)"
}
},
"required": [
"policy",
"protocol",
"srcCidr",
"destCidr"
]
},
"description": "An ordered array of the firewall rules (not including the default rule)"
}
},
"example": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"srcPort": "Any",
"srcCidr": "Any",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"syslogEnabled": false
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"srcPort": {
"type": "string",
"description": "Comma-separated list of source port(s) (integer in the range 1-65535), or 'any'"
},
"srcCidr": {
"type": "string",
"description": "Comma-separated list of source IP address(es) (in IP or CIDR notation), or 'any' (note: FQDN not supported for source addresses)"
},
"destPort": {
"type": "string",
"description": "Comma-separated list of destination port(s) (integer in the range 1-65535), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Comma-separated list of destination IP address(es) (in IP or CIDR notation), fully-qualified domain names (FQDN) or 'any'"
},
"syslogEnabled": {
"type": "boolean",
"description": "Log this rule to syslog (true or false, boolean value) - only applicable if a syslog has been configured (optional)"
}
}
},
"description": "An ordered array of the firewall rules (not including the default rule)"
}
}
},
"examples": {
"application/json": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"srcPort": "Any",
"srcCidr": "Any",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"syslogEnabled": false
}
]
}
}
}
},
"summary": "Update the inbound cellular firewall rules of an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"inboundCellularFirewallRules"
]
}
},
"/networks/{networkId}/appliance/firewall/inboundFirewallRules": {
"get": {
"description": "Return the inbound firewall rules for an MX network",
"operationId": "getNetworkApplianceFirewallInboundFirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"srcPort": {
"type": "string",
"description": "Comma-separated list of source port(s) (integer in the range 1-65535), or 'any'"
},
"srcCidr": {
"type": "string",
"description": "Comma-separated list of source IP address(es) (in IP or CIDR notation), or 'any' (note: FQDN not supported for source addresses)"
},
"destPort": {
"type": "string",
"description": "Comma-separated list of destination port(s) (integer in the range 1-65535), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Comma-separated list of destination IP address(es) (in IP or CIDR notation), fully-qualified domain names (FQDN) or 'any'"
},
"syslogEnabled": {
"type": "boolean",
"description": "Log this rule to syslog (true or false, boolean value) - only applicable if a syslog has been configured (optional)"
}
}
},
"description": "An ordered array of the firewall rules (not including the default rule)"
},
"syslogDefaultRule": {
"type": "boolean",
"description": "Log the special default rule (boolean value - enable only if you've configured a syslog server) (optional)"
}
}
},
"examples": {
"application/json": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"srcPort": "Any",
"srcCidr": "Any",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"syslogEnabled": false
}
],
"syslogDefaultRule": false
}
}
}
},
"summary": "Return the inbound firewall rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"inboundFirewallRules"
]
},
"put": {
"description": "Update the inbound firewall rules of an MX network",
"operationId": "updateNetworkApplianceFirewallInboundFirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceFirewallInboundFirewallRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"enum": [
"allow",
"deny"
],
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"enum": [
"any",
"icmp",
"icmp6",
"tcp",
"udp"
],
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"srcPort": {
"type": "string",
"description": "Comma-separated list of source port(s) (integer in the range 1-65535), or 'any'"
},
"srcCidr": {
"type": "string",
"description": "Comma-separated list of source IP address(es) (in IP or CIDR notation), or 'any' (note: FQDN not supported for source addresses)"
},
"destPort": {
"type": "string",
"description": "Comma-separated list of destination port(s) (integer in the range 1-65535), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Comma-separated list of destination IP address(es) (in IP or CIDR notation), fully-qualified domain names (FQDN) or 'any'"
},
"syslogEnabled": {
"type": "boolean",
"description": "Log this rule to syslog (true or false, boolean value) - only applicable if a syslog has been configured (optional)"
}
},
"required": [
"policy",
"protocol",
"srcCidr",
"destCidr"
]
},
"description": "An ordered array of the firewall rules (not including the default rule)"
},
"syslogDefaultRule": {
"type": "boolean",
"description": "Log the special default rule (boolean value - enable only if you've configured a syslog server) (optional)"
}
},
"example": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"srcPort": "Any",
"srcCidr": "Any",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"syslogEnabled": false
}
],
"syslogDefaultRule": true
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"srcPort": {
"type": "string",
"description": "Comma-separated list of source port(s) (integer in the range 1-65535), or 'any'"
},
"srcCidr": {
"type": "string",
"description": "Comma-separated list of source IP address(es) (in IP or CIDR notation), or 'any' (note: FQDN not supported for source addresses)"
},
"destPort": {
"type": "string",
"description": "Comma-separated list of destination port(s) (integer in the range 1-65535), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Comma-separated list of destination IP address(es) (in IP or CIDR notation), fully-qualified domain names (FQDN) or 'any'"
},
"syslogEnabled": {
"type": "boolean",
"description": "Log this rule to syslog (true or false, boolean value) - only applicable if a syslog has been configured (optional)"
}
}
},
"description": "An ordered array of the firewall rules (not including the default rule)"
},
"syslogDefaultRule": {
"type": "boolean",
"description": "Log the special default rule (boolean value - enable only if you've configured a syslog server) (optional)"
}
}
},
"examples": {
"application/json": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"srcPort": "Any",
"srcCidr": "Any",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"syslogEnabled": false
}
],
"syslogDefaultRule": false
}
}
}
},
"summary": "Update the inbound firewall rules of an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"inboundFirewallRules"
]
}
},
"/networks/{networkId}/appliance/firewall/l3FirewallRules": {
"get": {
"description": "Return the L3 firewall rules for an MX network",
"operationId": "getNetworkApplianceFirewallL3FirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"srcPort": "Any",
"srcCidr": "Any",
"syslogEnabled": false
}
]
}
}
}
},
"summary": "Return the L3 firewall rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"l3FirewallRules"
]
},
"put": {
"description": "Update the L3 firewall rules of an MX network",
"operationId": "updateNetworkApplianceFirewallL3FirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceFirewallL3FirewallRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"enum": [
"allow",
"deny"
],
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"enum": [
"any",
"icmp",
"icmp6",
"tcp",
"udp"
],
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"srcPort": {
"type": "string",
"description": "Comma-separated list of source port(s) (integer in the range 1-65535), or 'any'"
},
"srcCidr": {
"type": "string",
"description": "Comma-separated list of source IP address(es) (in IP or CIDR notation), or 'any' (note: FQDN not supported for source addresses)"
},
"destPort": {
"type": "string",
"description": "Comma-separated list of destination port(s) (integer in the range 1-65535), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Comma-separated list of destination IP address(es) (in IP or CIDR notation), fully-qualified domain names (FQDN) or 'any'"
},
"syslogEnabled": {
"type": "boolean",
"description": "Log this rule to syslog (true or false, boolean value) - only applicable if a syslog has been configured (optional)"
}
},
"required": [
"policy",
"protocol",
"srcCidr",
"destCidr"
]
},
"description": "An ordered array of the firewall rules (not including the default rule)"
},
"syslogDefaultRule": {
"type": "boolean",
"description": "Log the special default rule (boolean value - enable only if you've configured a syslog server) (optional)"
}
},
"example": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"srcPort": "Any",
"srcCidr": "Any",
"syslogEnabled": false
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"srcPort": "Any",
"srcCidr": "Any",
"syslogEnabled": false
}
]
}
}
}
},
"summary": "Update the L3 firewall rules of an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"l3FirewallRules"
]
}
},
"/networks/{networkId}/appliance/firewall/l7FirewallRules": {
"get": {
"description": "List the MX L7 firewall rules for an MX network",
"operationId": "getNetworkApplianceFirewallL7FirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"policy": "deny",
"type": "host",
"value": "google.com"
},
{
"policy": "deny",
"type": "port",
"value": "23"
},
{
"policy": "deny",
"type": "ipRange",
"value": "10.11.12.00/24"
},
{
"policy": "deny",
"type": "ipRange",
"value": "10.11.12.00/24:5555"
}
]
}
}
}
},
"summary": "List the MX L7 firewall rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"l7FirewallRules"
]
},
"put": {
"description": "Update the MX L7 firewall rules for an MX network",
"operationId": "updateNetworkApplianceFirewallL7FirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceFirewallL7FirewallRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"policy": {
"type": "string",
"enum": [
"deny"
],
"description": "'Deny' traffic specified by this rule"
},
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"host",
"ipRange",
"port"
],
"description": "Type of the L7 rule. One of: 'application', 'applicationCategory', 'host', 'port', 'ipRange'"
},
"value": {
"type": "string",
"description": "The 'value' of what you want to block. Format of 'value' varies depending on type of the rule. The application categories and application ids can be retrieved from the the 'MX L7 application categories' endpoint. The countries follow the two-letter ISO 3166-1 alpha-2 format."
}
}
},
"description": "An ordered array of the MX L7 firewall rules"
}
},
"example": {
"rules": [
{
"policy": "deny",
"type": "host",
"value": "google.com"
},
{
"policy": "deny",
"type": "port",
"value": "23"
},
{
"policy": "deny",
"type": "ipRange",
"value": "10.11.12.00/24"
},
{
"policy": "deny",
"type": "ipRange",
"value": "10.11.12.00/24:5555"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"policy": "deny",
"type": "host",
"value": "google.com"
},
{
"policy": "deny",
"type": "port",
"value": "23"
},
{
"policy": "deny",
"type": "ipRange",
"value": "10.11.12.00/24"
},
{
"policy": "deny",
"type": "ipRange",
"value": "10.11.12.00/24:5555"
}
]
}
}
}
},
"summary": "Update the MX L7 firewall rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"l7FirewallRules"
]
}
},
"/networks/{networkId}/appliance/firewall/l7FirewallRules/applicationCategories": {
"get": {
"description": "Return the L7 firewall application categories and their associated applications for an MX network",
"operationId": "getNetworkApplianceFirewallL7FirewallRulesApplicationCategories",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"applicationCategories": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The id of the category"
},
"name": {
"type": "string",
"description": "The name of the category"
},
"applications": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The id of the application"
},
"name": {
"type": "string",
"description": "The name of the application"
}
}
},
"description": "Details of the associated applications"
}
}
},
"description": " The L7 firewall application categories and their associated applications for an MX network"
}
}
},
"examples": {
"application/json": {
"applicationCategories": [
{
"id": "meraki:layer7/category/24",
"name": "Advertising",
"applications": [
{
"id": "meraki:layer7/application/5",
"name": "Advertising.com"
}
]
}
]
}
}
}
},
"summary": "Return the L7 firewall application categories and their associated applications for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"l7FirewallRules",
"applicationCategories"
]
}
},
"/networks/{networkId}/appliance/firewall/oneToManyNatRules": {
"get": {
"description": "Return the 1:Many NAT mapping rules for an MX network",
"operationId": "getNetworkApplianceFirewallOneToManyNatRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"publicIp": "146.11.11.13",
"uplink": "internet1",
"portRules": [
{
"name": "Rule 1",
"protocol": "tcp",
"publicPort": "9443",
"localIp": "192.168.128.1",
"localPort": "443",
"allowedIps": [
"any"
]
},
{
"name": "Rule 2",
"protocol": "tcp",
"publicPort": "8080",
"localIp": "192.168.128.1",
"localPort": "80",
"allowedIps": [
"10.82.110.0/24",
"10.82.111.0/24"
]
}
]
}
]
}
}
}
},
"summary": "Return the 1:Many NAT mapping rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"oneToManyNatRules"
]
},
"put": {
"description": "Set the 1:Many NAT mapping rules for an MX network",
"operationId": "updateNetworkApplianceFirewallOneToManyNatRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceFirewallOneToManyNatRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"publicIp": {
"type": "string",
"description": "The IP address that will be used to access the internal resource from the WAN"
},
"uplink": {
"type": "string",
"enum": [
"internet1",
"internet2"
],
"description": "The physical WAN interface on which the traffic will arrive ('internet1' or, if available, 'internet2')"
},
"portRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A description of the rule"
},
"protocol": {
"type": "string",
"enum": [
"tcp",
"udp"
],
"description": "'tcp' or 'udp'"
},
"publicPort": {
"type": "string",
"description": "Destination port of the traffic that is arriving on the WAN"
},
"localIp": {
"type": "string",
"description": "Local IP address to which traffic will be forwarded"
},
"localPort": {
"type": "string",
"description": "Destination port of the forwarded traffic that will be sent from the MX to the specified host on the LAN. If you simply wish to forward the traffic without translating the port, this should be the same as the Public port"
},
"allowedIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "Remote IP addresses or ranges that are permitted to access the internal resource via this port forwarding rule, or 'any'"
}
}
},
"description": "An array of associated forwarding rules"
}
},
"required": [
"publicIp",
"uplink",
"portRules"
]
},
"description": "An array of 1:Many nat rules"
}
},
"example": {
"rules": [
{
"publicIp": "146.11.11.13",
"uplink": "internet1",
"portRules": [
{
"name": "Rule 1",
"protocol": "tcp",
"publicPort": "9443",
"localIp": "192.168.128.1",
"localPort": "443",
"allowedIps": [
"any"
]
},
{
"name": "Rule 2",
"protocol": "tcp",
"publicPort": "8080",
"localIp": "192.168.128.1",
"localPort": "80",
"allowedIps": [
"10.82.110.0/24",
"10.82.111.0/24"
]
}
]
}
]
},
"required": [
"rules"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"publicIp": "146.11.11.13",
"uplink": "internet1",
"portRules": [
{
"name": "Rule 1",
"protocol": "tcp",
"publicPort": "9443",
"localIp": "192.168.128.1",
"localPort": "443",
"allowedIps": [
"any"
]
},
{
"name": "Rule 2",
"protocol": "tcp",
"publicPort": "8080",
"localIp": "192.168.128.1",
"localPort": "80",
"allowedIps": [
"10.82.110.0/24",
"10.82.111.0/24"
]
}
]
}
]
}
}
}
},
"summary": "Set the 1:Many NAT mapping rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"oneToManyNatRules"
]
}
},
"/networks/{networkId}/appliance/firewall/oneToOneNatRules": {
"get": {
"description": "Return the 1:1 NAT mapping rules for an MX network",
"operationId": "getNetworkApplianceFirewallOneToOneNatRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"name": "Service behind NAT",
"lanIp": "192.168.128.22",
"publicIp": "146.12.3.33",
"uplink": "internet1",
"allowedInbound": [
{
"protocol": "tcp",
"destinationPorts": [
"80"
],
"allowedIps": [
"10.82.112.0/24",
"10.82.0.0/16"
]
},
{
"protocol": "udp",
"destinationPorts": [
"8080"
],
"allowedIps": [
"10.81.110.5",
"10.81.0.0/16"
]
}
]
}
]
}
}
}
},
"summary": "Return the 1:1 NAT mapping rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"oneToOneNatRules"
]
},
"put": {
"description": "Set the 1:1 NAT mapping rules for an MX network",
"operationId": "updateNetworkApplianceFirewallOneToOneNatRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceFirewallOneToOneNatRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A descriptive name for the rule"
},
"publicIp": {
"type": "string",
"description": "The IP address that will be used to access the internal resource from the WAN"
},
"lanIp": {
"type": "string",
"description": "The IP address of the server or device that hosts the internal resource that you wish to make available on the WAN"
},
"uplink": {
"type": "string",
"enum": [
"internet1",
"internet2"
],
"description": "The physical WAN interface on which the traffic will arrive ('internet1' or, if available, 'internet2')"
},
"allowedInbound": {
"type": "array",
"items": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"enum": [
"any",
"icmp-ping",
"tcp",
"udp"
],
"description": "Either of the following: 'tcp', 'udp', 'icmp-ping' or 'any'"
},
"destinationPorts": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of ports or port ranges that will be forwarded to the host on the LAN"
},
"allowedIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of ranges of WAN IP addresses that are allowed to make inbound connections on the specified ports or port ranges, or 'any'"
}
}
},
"description": "The ports this mapping will provide access on, and the remote IPs that will be allowed access to the resource"
}
},
"required": [
"lanIp"
]
},
"description": "An array of 1:1 nat rules"
}
},
"example": {
"rules": [
{
"name": "Service behind NAT",
"lanIp": "192.168.128.22",
"publicIp": "146.12.3.33",
"uplink": "internet1",
"allowedInbound": [
{
"protocol": "tcp",
"destinationPorts": [
"80"
],
"allowedIps": [
"10.82.112.0/24",
"10.82.0.0/16"
]
},
{
"protocol": "udp",
"destinationPorts": [
"8080"
],
"allowedIps": [
"10.81.110.5",
"10.81.0.0/16"
]
}
]
}
]
},
"required": [
"rules"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"rules": [
{
"name": "Service behind NAT",
"lanIp": "192.168.128.22",
"publicIp": "146.12.3.33",
"uplink": "internet1",
"allowedInbound": [
{
"protocol": "tcp",
"destinationPorts": [
"80"
],
"allowedIps": [
"10.82.112.0/24",
"10.82.0.0/16"
]
},
{
"protocol": "udp",
"destinationPorts": [
"8080"
],
"allowedIps": [
"10.81.110.5",
"10.81.0.0/16"
]
}
]
}
]
}
}
}
},
"summary": "Set the 1:1 NAT mapping rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"oneToOneNatRules"
]
}
},
"/networks/{networkId}/appliance/firewall/portForwardingRules": {
"get": {
"description": "Return the port forwarding rules for an MX network",
"operationId": "getNetworkApplianceFirewallPortForwardingRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"lanIp": {
"type": "string",
"description": "IP address of the device subject to port forwarding"
},
"allowedIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of ranges of WAN IP addresses that are allowed to make inbound connections on the specified ports or port ranges (or any)"
},
"name": {
"type": "string",
"description": "Name of the rule"
},
"protocol": {
"type": "string",
"enum": [
"tcp",
"udp"
],
"description": "Protocol the rule applies to"
},
"publicPort": {
"type": "string",
"description": "The port or port range forwarded to the host on the LAN"
},
"localPort": {
"type": "string",
"description": "The port or port range that receives forwarded traffic from the WAN"
},
"uplink": {
"type": "string",
"enum": [
"both",
"internet1",
"internet2"
],
"description": "The physical WAN interface on which the traffic arrives"
}
}
},
"description": "An array of port forwarding rules"
}
}
},
"examples": {
"application/json": {
"rules": [
{
"lanIp": "192.168.128.1",
"allowedIps": [
"any"
],
"name": "Description of Port Forwarding Rule",
"protocol": "tcp",
"publicPort": "8100-8101",
"localPort": "442-443",
"uplink": "both"
}
]
}
}
}
},
"summary": "Return the port forwarding rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"portForwardingRules"
]
},
"put": {
"description": "Update the port forwarding rules for an MX network",
"operationId": "updateNetworkApplianceFirewallPortForwardingRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceFirewallPortForwardingRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A descriptive name for the rule"
},
"lanIp": {
"type": "string",
"description": "The IP address of the server or device that hosts the internal resource that you wish to make available on the WAN"
},
"uplink": {
"type": "string",
"enum": [
"both",
"internet1",
"internet2"
],
"description": "The physical WAN interface on which the traffic will arrive ('internet1' or, if available, 'internet2' or 'both')"
},
"publicPort": {
"type": "string",
"description": "A port or port ranges that will be forwarded to the host on the LAN"
},
"localPort": {
"type": "string",
"description": "A port or port ranges that will receive the forwarded traffic from the WAN"
},
"allowedIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of ranges of WAN IP addresses that are allowed to make inbound connections on the specified ports or port ranges (or any)"
},
"protocol": {
"type": "string",
"enum": [
"tcp",
"udp"
],
"description": "TCP or UDP"
}
},
"required": [
"lanIp",
"publicPort",
"localPort",
"allowedIps",
"protocol"
]
},
"description": "An array of port forwarding params"
}
},
"example": {
"rules": [
{
"name": "Description of Port Forwarding Rule",
"lanIp": "192.168.128.1",
"uplink": "both",
"publicPort": "8100-8101",
"localPort": "442-443",
"allowedIps": [
"any"
],
"protocol": "tcp"
}
]
},
"required": [
"rules"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"lanIp": {
"type": "string",
"description": "IP address of the device subject to port forwarding"
},
"allowedIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of ranges of WAN IP addresses that are allowed to make inbound connections on the specified ports or port ranges (or any)"
},
"name": {
"type": "string",
"description": "Name of the rule"
},
"protocol": {
"type": "string",
"enum": [
"tcp",
"udp"
],
"description": "Protocol the rule applies to"
},
"publicPort": {
"type": "string",
"description": "The port or port range forwarded to the host on the LAN"
},
"localPort": {
"type": "string",
"description": "The port or port range that receives forwarded traffic from the WAN"
},
"uplink": {
"type": "string",
"enum": [
"both",
"internet1",
"internet2"
],
"description": "The physical WAN interface on which the traffic arrives"
}
}
},
"description": "An array of port forwarding rules"
}
}
},
"examples": {
"application/json": {
"rules": [
{
"lanIp": "192.168.128.1",
"allowedIps": [
"any"
],
"name": "Description of Port Forwarding Rule",
"protocol": "tcp",
"publicPort": "8100-8101",
"localPort": "442-443",
"uplink": "both"
}
]
}
}
}
},
"summary": "Update the port forwarding rules for an MX network",
"tags": [
"appliance",
"configure",
"firewall",
"portForwardingRules"
]
}
},
"/networks/{networkId}/appliance/firewall/settings": {
"get": {
"description": "Return the firewall settings for this network",
"operationId": "getNetworkApplianceFirewallSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"spoofingProtection": {
"ipSourceGuard": {
"mode": "block"
}
}
}
}
}
},
"summary": "Return the firewall settings for this network",
"tags": [
"appliance",
"configure",
"firewall",
"settings"
]
},
"put": {
"description": "Update the firewall settings for this network",
"operationId": "updateNetworkApplianceFirewallSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceFirewallSettings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"spoofingProtection": {
"type": "object",
"properties": {
"ipSourceGuard": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"block",
"log"
],
"description": "Mode of protection"
}
},
"description": "IP source address spoofing settings"
}
},
"description": "Spoofing protection settings"
}
},
"example": {
"spoofingProtection": {
"ipSourceGuard": {
"mode": "block"
}
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"spoofingProtection": {
"ipSourceGuard": {
"mode": "block"
}
}
}
}
}
},
"summary": "Update the firewall settings for this network",
"tags": [
"appliance",
"configure",
"firewall",
"settings"
]
}
},
"/networks/{networkId}/appliance/ports": {
"get": {
"description": "List per-port VLAN settings for all ports of a MX.",
"operationId": "getNetworkAppliancePorts",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"description": "Number of the port"
},
"enabled": {
"type": "boolean",
"description": "The status of the port"
},
"type": {
"type": "string",
"description": "The type of the port: 'access' or 'trunk'."
},
"dropUntaggedTraffic": {
"type": "boolean",
"description": "Whether the trunk port can drop all untagged traffic."
},
"vlan": {
"type": "integer",
"description": "Native VLAN when the port is in Trunk mode. Access VLAN when the port is in Access mode."
},
"allowedVlans": {
"type": "string",
"description": "Comma-delimited list of the VLAN ID's allowed on the port, or 'all' to permit all VLAN's on the port."
},
"accessPolicy": {
"type": "string",
"description": "The name of the policy. Only applicable to Access ports."
},
"peerSgtCapable": {
"type": "boolean",
"description": "Whether the port should propagate SGT tags. Only applicable to Trunk ports",
"x-release-stage": "beta"
}
}
}
},
"examples": {
"application/json": [
{
"number": 1,
"enabled": true,
"type": "access",
"dropUntaggedTraffic": false,
"vlan": 3,
"allowedVlans": "all",
"accessPolicy": "open",
"peerSgtCapable": true
}
]
}
}
},
"summary": "List per-port VLAN settings for all ports of a MX.",
"tags": [
"appliance",
"configure",
"ports"
]
}
},
"/networks/{networkId}/appliance/ports/{portId}": {
"get": {
"description": "Return per-port VLAN settings for a single MX port.",
"operationId": "getNetworkAppliancePort",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "portId",
"in": "path",
"description": "Port ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"description": "Number of the port"
},
"enabled": {
"type": "boolean",
"description": "The status of the port"
},
"type": {
"type": "string",
"description": "The type of the port: 'access' or 'trunk'."
},
"dropUntaggedTraffic": {
"type": "boolean",
"description": "Whether the trunk port can drop all untagged traffic."
},
"vlan": {
"type": "integer",
"description": "Native VLAN when the port is in Trunk mode. Access VLAN when the port is in Access mode."
},
"allowedVlans": {
"type": "string",
"description": "Comma-delimited list of the VLAN ID's allowed on the port, or 'all' to permit all VLAN's on the port."
},
"accessPolicy": {
"type": "string",
"description": "The name of the policy. Only applicable to Access ports."
},
"peerSgtCapable": {
"type": "boolean",
"description": "Whether the port should propagate SGT tags. Only applicable to Trunk ports",
"x-release-stage": "beta"
}
}
},
"examples": {
"application/json": {
"number": 1,
"enabled": true,
"type": "access",
"dropUntaggedTraffic": false,
"vlan": 3,
"allowedVlans": "all",
"accessPolicy": "open",
"peerSgtCapable": true
}
}
}
},
"summary": "Return per-port VLAN settings for a single MX port.",
"tags": [
"appliance",
"configure",
"ports"
]
},
"put": {
"description": "Update the per-port VLAN settings for a single MX port.",
"operationId": "updateNetworkAppliancePort",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "portId",
"in": "path",
"description": "Port ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkAppliancePort",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "The status of the port"
},
"dropUntaggedTraffic": {
"type": "boolean",
"description": "Trunk port can Drop all Untagged traffic. When true, no VLAN is required. Access ports cannot have dropUntaggedTraffic set to true."
},
"type": {
"type": "string",
"description": "The type of the port: 'access' or 'trunk'."
},
"vlan": {
"type": "integer",
"description": "Native VLAN when the port is in Trunk mode. Access VLAN when the port is in Access mode."
},
"allowedVlans": {
"type": "string",
"description": "Comma-delimited list of the VLAN ID's allowed on the port, or 'all' to permit all VLAN's on the port."
},
"accessPolicy": {
"type": "string",
"description": "The name of the policy. Only applicable to Access ports. Valid values are: 'open', '8021x-radius', 'mac-radius', 'hybris-radius' for MX64 or Z3 or any MX supporting the per port authentication feature. Otherwise, 'open' is the only valid value and 'open' is the default value if the field is missing."
},
"peerSgtCapable": {
"type": "boolean",
"x-release-stage": "beta",
"description": "If true, Peer SGT is enabled for traffic through this port. Applicable to trunk port only, not access port."
},
"adaptivePolicyGroupId": {
"type": "string",
"x-release-stage": "beta",
"description": "Adaptive policy group ID that all traffic originating from this port is assigned to."
}
},
"example": {
"enabled": true,
"dropUntaggedTraffic": false,
"type": "access",
"vlan": 3,
"allowedVlans": "all",
"accessPolicy": "open",
"peerSgtCapable": true,
"adaptivePolicyGroupId": "1234"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"description": "Number of the port"
},
"enabled": {
"type": "boolean",
"description": "The status of the port"
},
"type": {
"type": "string",
"description": "The type of the port: 'access' or 'trunk'."
},
"dropUntaggedTraffic": {
"type": "boolean",
"description": "Whether the trunk port can drop all untagged traffic."
},
"vlan": {
"type": "integer",
"description": "Native VLAN when the port is in Trunk mode. Access VLAN when the port is in Access mode."
},
"allowedVlans": {
"type": "string",
"description": "Comma-delimited list of the VLAN ID's allowed on the port, or 'all' to permit all VLAN's on the port."
},
"accessPolicy": {
"type": "string",
"description": "The name of the policy. Only applicable to Access ports."
},
"peerSgtCapable": {
"type": "boolean",
"description": "Whether the port should propagate SGT tags. Only applicable to Trunk ports",
"x-release-stage": "beta"
}
}
},
"examples": {
"application/json": {
"number": 1,
"enabled": true,
"type": "access",
"dropUntaggedTraffic": false,
"vlan": 3,
"allowedVlans": "all",
"accessPolicy": "open",
"peerSgtCapable": true
}
}
}
},
"summary": "Update the per-port VLAN settings for a single MX port.",
"tags": [
"appliance",
"configure",
"ports"
]
}
},
"/networks/{networkId}/appliance/prefixes/delegated/statics": {
"get": {
"description": "List static delegated prefixes for a network",
"operationId": "getNetworkAppliancePrefixesDelegatedStatics",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"staticDelegatedPrefixId": {
"type": "string",
"description": "Static delegated prefix id."
},
"prefix": {
"type": "string",
"description": "IPv6 prefix/prefix length."
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Origin type"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Uplink provided or independent"
}
},
"description": "WAN1/WAN2/Independent prefix."
},
"description": {
"type": "string",
"description": "Identifying description for the prefix."
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Prefix creation time."
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Prefix Updated time."
}
}
}
},
"examples": {
"application/json": [
{
"staticDelegatedPrefixId": "1284392014819",
"prefix": "2001:db8:3c4d:15::/64",
"origin": {
"type": "internet",
"interfaces": [
"wan1"
]
},
"description": "Prefix on WAN 1 of Long Island Office network",
"createdAt": "2018-05-12T00:00:00Z",
"updatedAt": "2018-05-12T00:00:00Z"
}
]
}
}
},
"summary": "List static delegated prefixes for a network",
"tags": [
"appliance",
"configure",
"prefixes",
"delegated",
"statics"
]
},
"post": {
"description": "Add a static delegated prefix from a network",
"operationId": "createNetworkAppliancePrefixesDelegatedStatic",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkAppliancePrefixesDelegatedStatic",
"in": "body",
"schema": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"description": "A static IPv6 prefix"
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"independent",
"internet"
],
"description": "Type of the origin"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Interfaces associated with the prefix"
}
},
"description": "The origin of the prefix"
},
"description": {
"type": "string",
"description": "A name or description for the prefix"
}
},
"example": {
"prefix": "2001:db8:3c4d:15::/64",
"origin": {
"type": "internet",
"interfaces": [
"wan1"
]
},
"description": "Prefix on WAN 1 of Long Island Office network"
},
"required": [
"prefix",
"origin"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"staticDelegatedPrefixId": "1284392014819",
"prefix": "2001:db8:3c4d:15::/64",
"origin": {
"type": "internet",
"interfaces": [
"wan1"
]
},
"description": "Prefix on WAN 1 of Long Island Office network",
"createdAt": "2018-05-12T00:00:00Z",
"updatedAt": "2018-05-12T00:00:00Z"
}
}
}
},
"summary": "Add a static delegated prefix from a network",
"tags": [
"appliance",
"configure",
"prefixes",
"delegated",
"statics"
]
}
},
"/networks/{networkId}/appliance/prefixes/delegated/statics/{staticDelegatedPrefixId}": {
"get": {
"description": "Return a static delegated prefix from a network",
"operationId": "getNetworkAppliancePrefixesDelegatedStatic",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "staticDelegatedPrefixId",
"in": "path",
"description": "Static delegated prefix ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"staticDelegatedPrefixId": {
"type": "string",
"description": "Static delegated prefix id."
},
"prefix": {
"type": "string",
"description": "IPv6 prefix/prefix length."
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Origin type"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Uplink provided or independent"
}
},
"description": "WAN1/WAN2/Independent prefix."
},
"description": {
"type": "string",
"description": "Identifying description for the prefix."
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Prefix creation time."
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Prefix Updated time."
}
}
},
"examples": {
"application/json": {
"staticDelegatedPrefixId": "1284392014819",
"prefix": "2001:db8:3c4d:15::/64",
"origin": {
"type": "internet",
"interfaces": [
"wan1"
]
},
"description": "Prefix on WAN 1 of Long Island Office network",
"createdAt": "2018-05-12T00:00:00Z",
"updatedAt": "2018-05-12T00:00:00Z"
}
}
}
},
"summary": "Return a static delegated prefix from a network",
"tags": [
"appliance",
"configure",
"prefixes",
"delegated",
"statics"
]
},
"put": {
"description": "Update a static delegated prefix from a network",
"operationId": "updateNetworkAppliancePrefixesDelegatedStatic",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "staticDelegatedPrefixId",
"in": "path",
"description": "Static delegated prefix ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkAppliancePrefixesDelegatedStatic",
"in": "body",
"schema": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"description": "A static IPv6 prefix"
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"independent",
"internet"
],
"description": "Type of the origin"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Interfaces associated with the prefix"
}
},
"description": "The origin of the prefix"
},
"description": {
"type": "string",
"description": "A name or description for the prefix"
}
},
"example": {
"prefix": "2001:db8:3c4d:15::/64",
"origin": {
"type": "internet",
"interfaces": [
"wan1"
]
},
"description": "Prefix on WAN 1 of Long Island Office network"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"staticDelegatedPrefixId": "1284392014819",
"prefix": "2001:db8:3c4d:15::/64",
"origin": {
"type": "internet",
"interfaces": [
"wan1"
]
},
"description": "Prefix on WAN 1 of Long Island Office network",
"createdAt": "2018-05-12T00:00:00Z",
"updatedAt": "2018-05-12T00:00:00Z"
}
}
}
},
"summary": "Update a static delegated prefix from a network",
"tags": [
"appliance",
"configure",
"prefixes",
"delegated",
"statics"
]
},
"delete": {
"description": "Delete a static delegated prefix from a network",
"operationId": "deleteNetworkAppliancePrefixesDelegatedStatic",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "staticDelegatedPrefixId",
"in": "path",
"description": "Static delegated prefix ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a static delegated prefix from a network",
"tags": [
"appliance",
"configure",
"prefixes",
"delegated",
"statics"
]
}
},
"/networks/{networkId}/appliance/rfProfiles": {
"get": {
"description": "List the RF profiles for this network",
"operationId": "getNetworkApplianceRfProfiles",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"assigned": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the RF Profile."
},
"networkId": {
"type": "string",
"description": "ID of network this RF Profile belongs in."
},
"name": {
"type": "string",
"description": "The name of the profile."
},
"twoFourGhzSettings": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Min bitrate (Mbps) of 2.4Ghz band."
},
"axEnabled": {
"type": "boolean",
"description": "Whether ax radio on 2.4Ghz band is on or off."
}
},
"description": "Settings related to 2.4Ghz band."
},
"fiveGhzSettings": {
"type": "object",
"properties": {
"minBitrate": {
"type": "integer",
"description": "Min bitrate (Mbps) of 2.4Ghz band."
},
"axEnabled": {
"type": "boolean",
"description": "Whether ax radio on 5Ghz band is on or off."
}
},
"description": "Settings related to 5Ghz band."
},
"perSsidSettings": {
"type": "object",
"properties": {
"1": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"description": "Band mode of this SSID"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Whether this SSID steers clients to the most open band between 2.4 GHz and 5 GHz."
}
},
"description": "Settings for SSID 1."
},
"2": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"description": "Band mode of this SSID"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Whether this SSID steers clients to the most open band between 2.4 GHz and 5 GHz."
}
},
"description": "Settings for SSID 2."
},
"3": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"description": "Band mode of this SSID"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Whether this SSID steers clients to the most open band between 2.4 GHz and 5 GHz."
}
},
"description": "Settings for SSID 3."
},
"4": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"description": "Band mode of this SSID"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Whether this SSID steers clients to the most open band between 2.4 GHz and 5 GHz."
}
},
"description": "Settings for SSID 4."
}
},
"description": "Per-SSID radio settings by number."
}
}
},
"description": "RF Profiles"
}
}
},
"examples": {
"application/json": {
"assigned": [
{
"id": "1234",
"networkId": "N_24329156",
"name": "Some Custom RF Profile",
"twoFourGhzSettings": {
"minBitrate": 11.0,
"axEnabled": true
},
"fiveGhzSettings": {
"minBitrate": 12,
"axEnabled": true
},
"perSsidSettings": {
"1": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
},
"2": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
},
"3": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
},
"4": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
}
}
}
]
}
}
}
},
"summary": "List the RF profiles for this network",
"tags": [
"appliance",
"configure",
"rfProfiles"
]
},
"post": {
"description": "Creates new RF profile for this network",
"operationId": "createNetworkApplianceRfProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkApplianceRfProfile",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the new profile. Must be unique. This param is required on creation."
},
"twoFourGhzSettings": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of 2.4Ghz band. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'. Defaults to 11."
},
"axEnabled": {
"type": "boolean",
"description": "Determines whether ax radio on 2.4Ghz band is on or off. Can be either true or false. If false, we highly recommend disabling band steering. Defaults to true."
}
},
"description": "Settings related to 2.4Ghz band"
},
"fiveGhzSettings": {
"type": "object",
"properties": {
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of 5Ghz band. Can be one of '6', '9', '12', '18', '24', '36', '48' or '54'. Defaults to 12."
},
"axEnabled": {
"type": "boolean",
"description": "Determines whether ax radio on 5Ghz band is on or off. Can be either true or false. If false, we highly recommend disabling band steering. Defaults to true."
}
},
"description": "Settings related to 5Ghz band"
},
"perSsidSettings": {
"type": "object",
"properties": {
"1": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 1"
},
"2": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 2"
},
"3": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 3"
},
"4": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 4"
}
},
"description": "Per-SSID radio settings by number."
}
},
"example": {
"name": "MX RF Profile",
"twoFourGhzSettings": {
"minBitrate": 12.0,
"axEnabled": true
},
"fiveGhzSettings": {
"minBitrate": 48,
"axEnabled": true
},
"perSsidSettings": {
"1": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
},
"2": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
},
"3": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
},
"4": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
}
}
},
"required": [
"name"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the RF Profile."
},
"networkId": {
"type": "string",
"description": "ID of network this RF Profile belongs in."
},
"name": {
"type": "string",
"description": "The name of the profile."
},
"twoFourGhzSettings": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Min bitrate (Mbps) of 2.4Ghz band."
},
"axEnabled": {
"type": "boolean",
"description": "Whether ax radio on 2.4Ghz band is on or off."
}
},
"description": "Settings related to 2.4Ghz band."
},
"fiveGhzSettings": {
"type": "object",
"properties": {
"minBitrate": {
"type": "integer",
"description": "Min bitrate (Mbps) of 2.4Ghz band."
},
"axEnabled": {
"type": "boolean",
"description": "Whether ax radio on 5Ghz band is on or off."
}
},
"description": "Settings related to 5Ghz band."
},
"perSsidSettings": {
"type": "object",
"properties": {
"1": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"description": "Band mode of this SSID"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Whether this SSID steers clients to the most open band between 2.4 GHz and 5 GHz."
}
},
"description": "Settings for SSID 1."
},
"2": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"description": "Band mode of this SSID"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Whether this SSID steers clients to the most open band between 2.4 GHz and 5 GHz."
}
},
"description": "Settings for SSID 2."
},
"3": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"description": "Band mode of this SSID"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Whether this SSID steers clients to the most open band between 2.4 GHz and 5 GHz."
}
},
"description": "Settings for SSID 3."
},
"4": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"description": "Band mode of this SSID"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Whether this SSID steers clients to the most open band between 2.4 GHz and 5 GHz."
}
},
"description": "Settings for SSID 4."
}
},
"description": "Per-SSID radio settings by number."
}
}
},
"examples": {
"application/json": {
"id": "1234",
"networkId": "N_24329156",
"name": "Some Custom RF Profile",
"twoFourGhzSettings": {
"minBitrate": 11.0,
"axEnabled": true
},
"fiveGhzSettings": {
"minBitrate": 12,
"axEnabled": true
},
"perSsidSettings": {
"1": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
},
"2": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
},
"3": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
},
"4": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
}
}
}
}
}
},
"summary": "Creates new RF profile for this network",
"tags": [
"appliance",
"configure",
"rfProfiles"
]
}
},
"/networks/{networkId}/appliance/rfProfiles/{rfProfileId}": {
"put": {
"description": "Updates specified RF profile for this network",
"operationId": "updateNetworkApplianceRfProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "rfProfileId",
"in": "path",
"description": "Rf profile ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceRfProfile",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the new profile. Must be unique."
},
"twoFourGhzSettings": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of 2.4Ghz band. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"axEnabled": {
"type": "boolean",
"description": "Determines whether ax radio on 2.4Ghz band is on or off. Can be either true or false. If false, we highly recommend disabling band steering."
}
},
"description": "Settings related to 2.4Ghz band"
},
"fiveGhzSettings": {
"type": "object",
"properties": {
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of 5Ghz band. Can be one of '6', '9', '12', '18', '24', '36', '48' or '54'."
},
"axEnabled": {
"type": "boolean",
"description": "Determines whether ax radio on 5Ghz band is on or off. Can be either true or false. If false, we highly recommend disabling band steering."
}
},
"description": "Settings related to 5Ghz band"
},
"perSsidSettings": {
"type": "object",
"properties": {
"1": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 1"
},
"2": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 2"
},
"3": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 3"
},
"4": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 4"
}
},
"description": "Per-SSID radio settings by number."
}
},
"example": {
"name": "MX RF Profile",
"twoFourGhzSettings": {
"minBitrate": 12.0,
"axEnabled": true
},
"fiveGhzSettings": {
"minBitrate": 48,
"axEnabled": true
},
"perSsidSettings": {
"1": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
},
"2": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
},
"3": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
},
"4": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
}
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the RF Profile."
},
"networkId": {
"type": "string",
"description": "ID of network this RF Profile belongs in."
},
"name": {
"type": "string",
"description": "The name of the profile."
},
"twoFourGhzSettings": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Min bitrate (Mbps) of 2.4Ghz band."
},
"axEnabled": {
"type": "boolean",
"description": "Whether ax radio on 2.4Ghz band is on or off."
}
},
"description": "Settings related to 2.4Ghz band."
},
"fiveGhzSettings": {
"type": "object",
"properties": {
"minBitrate": {
"type": "integer",
"description": "Min bitrate (Mbps) of 2.4Ghz band."
},
"axEnabled": {
"type": "boolean",
"description": "Whether ax radio on 5Ghz band is on or off."
}
},
"description": "Settings related to 5Ghz band."
},
"perSsidSettings": {
"type": "object",
"properties": {
"1": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"description": "Band mode of this SSID"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Whether this SSID steers clients to the most open band between 2.4 GHz and 5 GHz."
}
},
"description": "Settings for SSID 1."
},
"2": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"description": "Band mode of this SSID"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Whether this SSID steers clients to the most open band between 2.4 GHz and 5 GHz."
}
},
"description": "Settings for SSID 2."
},
"3": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"description": "Band mode of this SSID"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Whether this SSID steers clients to the most open band between 2.4 GHz and 5 GHz."
}
},
"description": "Settings for SSID 3."
},
"4": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"description": "Band mode of this SSID"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Whether this SSID steers clients to the most open band between 2.4 GHz and 5 GHz."
}
},
"description": "Settings for SSID 4."
}
},
"description": "Per-SSID radio settings by number."
}
}
},
"examples": {
"application/json": {
"id": "1234",
"networkId": "N_24329156",
"name": "Some Custom RF Profile",
"twoFourGhzSettings": {
"minBitrate": 11.0,
"axEnabled": true
},
"fiveGhzSettings": {
"minBitrate": 12,
"axEnabled": true
},
"perSsidSettings": {
"1": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
},
"2": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
},
"3": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
},
"4": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
}
}
}
}
}
},
"summary": "Updates specified RF profile for this network",
"tags": [
"appliance",
"configure",
"rfProfiles"
]
},
"delete": {
"description": "Delete a RF Profile",
"operationId": "deleteNetworkApplianceRfProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "rfProfileId",
"in": "path",
"description": "Rf profile ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a RF Profile",
"tags": [
"appliance",
"configure",
"rfProfiles"
]
},
"get": {
"description": "Return a RF profile",
"operationId": "getNetworkApplianceRfProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "rfProfileId",
"in": "path",
"description": "Rf profile ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the RF Profile."
},
"networkId": {
"type": "string",
"description": "ID of network this RF Profile belongs in."
},
"name": {
"type": "string",
"description": "The name of the profile."
},
"twoFourGhzSettings": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Min bitrate (Mbps) of 2.4Ghz band."
},
"axEnabled": {
"type": "boolean",
"description": "Whether ax radio on 2.4Ghz band is on or off."
}
},
"description": "Settings related to 2.4Ghz band."
},
"fiveGhzSettings": {
"type": "object",
"properties": {
"minBitrate": {
"type": "integer",
"description": "Min bitrate (Mbps) of 2.4Ghz band."
},
"axEnabled": {
"type": "boolean",
"description": "Whether ax radio on 5Ghz band is on or off."
}
},
"description": "Settings related to 5Ghz band."
},
"perSsidSettings": {
"type": "object",
"properties": {
"1": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"description": "Band mode of this SSID"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Whether this SSID steers clients to the most open band between 2.4 GHz and 5 GHz."
}
},
"description": "Settings for SSID 1."
},
"2": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"description": "Band mode of this SSID"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Whether this SSID steers clients to the most open band between 2.4 GHz and 5 GHz."
}
},
"description": "Settings for SSID 2."
},
"3": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"description": "Band mode of this SSID"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Whether this SSID steers clients to the most open band between 2.4 GHz and 5 GHz."
}
},
"description": "Settings for SSID 3."
},
"4": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"description": "Band mode of this SSID"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Whether this SSID steers clients to the most open band between 2.4 GHz and 5 GHz."
}
},
"description": "Settings for SSID 4."
}
},
"description": "Per-SSID radio settings by number."
}
}
},
"examples": {
"application/json": {
"id": "1234",
"networkId": "N_24329156",
"name": "Some Custom RF Profile",
"twoFourGhzSettings": {
"minBitrate": 11.0,
"axEnabled": true
},
"fiveGhzSettings": {
"minBitrate": 12,
"axEnabled": true
},
"perSsidSettings": {
"1": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
},
"2": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
},
"3": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
},
"4": {
"bandOperationMode": "dual",
"bandSteeringEnabled": true
}
}
}
}
}
},
"summary": "Return a RF profile",
"tags": [
"appliance",
"configure",
"rfProfiles"
]
}
},
"/networks/{networkId}/appliance/sdwan/internetPolicies": {
"put": {
"description": "Update SDWAN internet traffic preferences for an MX network",
"operationId": "updateNetworkApplianceSdwanInternetPolicies",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceSdwanInternetPolicies",
"in": "body",
"schema": {
"type": "object",
"properties": {
"wanTrafficUplinkPreferences": {
"type": "array",
"items": {
"type": "object",
"properties": {
"preferredUplink": {
"type": "string",
"enum": [
"bestForVoIP",
"defaultUplink",
"loadBalancing",
"wan1",
"wan2"
],
"description": "Preferred uplink for uplink preference rule. Must be one of: 'wan1', 'wan2', 'bestForVoIP', 'loadBalancing' or 'defaultUplink'"
},
"failOverCriterion": {
"type": "string",
"enum": [
"poorPerformance",
"uplinkDown"
],
"description": "WAN failover and failback behavior"
},
"performanceClass": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"builtin",
"custom"
],
"description": "Type of this performance class. Must be one of: 'builtin' or 'custom'"
},
"builtinPerformanceClassName": {
"type": "string",
"enum": [
"VoIP"
],
"description": "Name of builtin performance class. Must be present when performanceClass type is 'builtin' and value must be one of: 'VoIP'"
},
"customPerformanceClassId": {
"type": "string",
"description": "ID of created custom performance class, must be present when performanceClass type is \"custom\""
}
},
"description": "Performance class setting for uplink preference rule"
},
"trafficFilters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"application",
"custom",
"majorApplication"
],
"description": "Traffic filter type. Must be 'custom', 'major_application', 'application (NBAR)', if type is 'application', you can pass either an NBAR App Category or Application"
},
"value": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"enum": [
"any",
"icmp6",
"tcp",
"udp"
],
"description": "Protocol of the traffic filter. Must be one of: 'tcp', 'udp', 'icmp6' or 'any'"
},
"source": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "E.g.: \"any\", \"0\" (also means \"any\"), \"8080\", \"1-1024\""
},
"cidr": {
"type": "string",
"description": "CIDR format address (e.g.\"192.168.10.1\", which is the same as \"192.168.10.1/32\"), or \"any\". Cannot be used in combination with the \"vlan\" property"
},
"vlan": {
"type": "integer",
"description": "VLAN ID of the configured VLAN in the Meraki network. Cannot be used in combination with the \"cidr\" property and is currently only available under a template network."
},
"host": {
"type": "integer",
"description": "Host ID in the VLAN. Should not exceed the VLAN subnet capacity. Must be used along with the \"vlan\" property and is currently only available under a template network."
}
},
"description": "Source of traffic filter"
},
"destination": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "E.g.: \"any\", \"0\" (also means \"any\"), \"8080\", \"1-1024\""
},
"cidr": {
"type": "string",
"description": "CIDR format address (e.g.\"192.168.10.1\", which is the same as \"192.168.10.1/32\"), or \"any\""
},
"applications": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id of the major application, or a list of NBAR Application Category or Application selections"
},
"name": {
"type": "string",
"description": "Name of the major application or application category selected"
},
"type": {
"type": "string",
"description": "app type (major or nbar)"
}
}
},
"description": "list of application objects (either majorApplication or nbar)"
}
},
"description": "Destination of 'custom' type traffic filter"
}
},
"required": [
"source",
"destination"
],
"description": "Value of traffic filter"
}
},
"required": [
"type",
"value"
]
},
"description": "Traffic filters"
}
},
"required": [
"preferredUplink",
"trafficFilters"
]
},
"description": "policies with respective traffic filters for an MX network"
}
},
"example": {
"wanTrafficUplinkPreferences": [
{
"preferredUplink": "wan1",
"failOverCriterion": "poorPerformance",
"performanceClass": {
"type": "custom",
"builtinPerformanceClassName": "VoIP",
"customPerformanceClassId": "123456"
},
"trafficFilters": [
{
"type": "custom",
"value": {
"protocol": "tcp",
"source": {
"port": "1-1024",
"cidr": "192.168.1.0/24",
"vlan": 10,
"host": 254
},
"destination": {
"port": "any",
"cidr": "any",
"applications": [
{
"id": "meraki:layer7/application/3",
"name": "DNS",
"type": "major"
}
]
}
}
}
]
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"wanTrafficUplinkPreferences": {
"type": "array",
"items": {
"type": "object",
"properties": {
"preferredUplink": {
"type": "string",
"enum": [
"bestForVoIP",
"defaultUplink",
"loadBalancing",
"wan1",
"wan2"
],
"description": "Preferred uplink for uplink preference rule. Must be one of: 'wan1', 'wan2', 'bestForVoIP', 'loadBalancing' or 'defaultUplink'"
},
"failOverCriterion": {
"type": "string",
"enum": [
"poorPerformance",
"uplinkDown"
],
"description": "WAN failover and failback behavior"
},
"performanceClass": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"builtin",
"custom"
],
"description": "Type of this performance class. Must be one of: 'builtin' or 'custom'"
},
"builtinPerformanceClassName": {
"type": "string",
"enum": [
"VoIP"
],
"description": "Name of builtin performance class. Must be present when performanceClass type is 'builtin' and value must be one of: 'VoIP'"
},
"customPerformanceClassId": {
"type": "string",
"description": "ID of created custom performance class, must be present when performanceClass type is \"custom\""
}
},
"description": "Performance class setting for uplink preference rule"
},
"trafficFilters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"application",
"custom",
"majorApplication"
],
"description": "Traffic filter type. Must be 'custom', 'major_application', 'application (NBAR)', if type is 'application', you can pass either an NBAR App Category or Application"
},
"value": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"enum": [
"any",
"icmp6",
"tcp",
"udp"
],
"description": "Protocol of the traffic filter. Must be one of: 'tcp', 'udp', 'icmp6' or 'any'"
},
"source": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "E.g.: \"any\", \"0\" (also means \"any\"), \"8080\", \"1-1024\""
},
"cidr": {
"type": "string",
"description": "CIDR format address (e.g.\"192.168.10.1\", which is the same as \"192.168.10.1/32\"), or \"any\". Cannot be used in combination with the \"vlan\" property"
},
"vlan": {
"type": "integer",
"description": "VLAN ID of the configured VLAN in the Meraki network. Cannot be used in combination with the \"cidr\" property and is currently only available under a template network."
},
"host": {
"type": "integer",
"description": "Host ID in the VLAN. Should not exceed the VLAN subnet capacity. Must be used along with the \"vlan\" property and is currently only available under a template network."
}
},
"description": "Source of traffic filter"
},
"destination": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "E.g.: \"any\", \"0\" (also means \"any\"), \"8080\", \"1-1024\""
},
"cidr": {
"type": "string",
"description": "CIDR format address (e.g.\"192.168.10.1\", which is the same as \"192.168.10.1/32\"), or \"any\""
},
"applications": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id of the major application, or a list of NBAR Application Category or Application selections"
},
"name": {
"type": "string",
"description": "Name of the major application or application category selected"
},
"type": {
"type": "string",
"description": "app type (major or nbar)"
}
}
},
"description": "list of application objects (either majorApplication or nbar)"
}
},
"description": "Destination of 'custom' type traffic filter"
}
},
"required": [
"source",
"destination"
],
"description": "Value of traffic filter"
}
},
"required": [
"type",
"value"
]
},
"description": "Traffic filters"
}
},
"required": [
"preferredUplink",
"trafficFilters"
]
},
"description": "policies with respective traffic filters for an MX network"
}
}
},
"examples": {
"application/json": {
"wanTrafficUplinkPreferences": [
{
"preferredUplink": "wan1",
"failOverCriterion": "poorPerformance",
"performanceClass": {
"type": "custom",
"builtinPerformanceClassName": "VoIP",
"customPerformanceClassId": "123456"
},
"trafficFilters": [
{
"type": "custom",
"value": {
"protocol": "tcp",
"source": {
"port": "1-1024",
"cidr": "192.168.1.0/24",
"vlan": 10,
"host": 254
},
"destination": {
"port": "any",
"cidr": "any",
"applications": [
{
"id": "meraki:layer7/application/3",
"name": "DNS",
"type": "major"
}
]
}
}
}
]
}
]
}
}
}
},
"summary": "Update SDWAN internet traffic preferences for an MX network",
"tags": [
"appliance",
"configure",
"sdwan",
"internetPolicies"
]
}
},
"/networks/{networkId}/appliance/security/events": {
"get": {
"description": "List the security events for a network",
"operationId": "getNetworkApplianceSecurityEvents",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. Data is gathered after the specified t0 value. The maximum lookback period is 365 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 365 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 31536000,
"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 365 days. The default is 31 days."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 100."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"enum": [
"ascending",
"descending"
],
"name": "sortOrder",
"in": "query",
"description": "Sorted order of security events based on event detection time. Order options are 'ascending' or 'descending'. Default is ascending order."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"ts": "2018-02-11T00:00:00.090210Z",
"eventType": "File Scanned",
"clientName": "COMPUTER-M-V78J",
"clientMac": "10:dd:b1:eb:88:f8",
"clientIp": "192.168.128.2",
"srcIp": "192.168.128.2",
"destIp": "119.192.233.48",
"protocol": "http",
"uri": "http://www.favorite-icons.com/program/FavoriteIconsUninstall.exe",
"canonicalName": "PUA.Win.Dropper.Kraddare::1201",
"destinationPort": 80,
"fileHash": "3ec1b9a95fe62aa25fc959643a0f227b76d253094681934daaf628d3574b3463",
"fileType": "MS_EXE",
"fileSizeBytes": 193688,
"disposition": "Malicious",
"action": "Blocked"
},
{
"ts": "2018-02-11T00:00:00.090210Z",
"eventType": "IDS Alert",
"deviceMac": "00:18:0a:01:02:03",
"clientMac": "A1:B2:C3:D4:E5:F6",
"srcIp": "1.2.3.4:34195",
"destIp": "10.20.30.40:80",
"protocol": "tcp/ip",
"priority": "2",
"classification": "4",
"blocked": true,
"message": "SERVER-WEBAPP JBoss JMX console access attempt",
"signature": "1:21516:9",
"sigSource": "",
"ruleId": "meraki:intrusion/snort/GID/1/SID/26267"
}
]
}
}
},
"summary": "List the security events for a network",
"tags": [
"appliance",
"monitor",
"security",
"events"
]
}
},
"/networks/{networkId}/appliance/security/intrusion": {
"get": {
"description": "Returns all supported intrusion settings for an MX network",
"operationId": "getNetworkApplianceSecurityIntrusion",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"description": "Intrusion detection mode"
},
"idsRulesets": {
"type": "string",
"description": "Intrusion detection ruleset"
},
"protectedNetworks": {
"type": "object",
"properties": {
"useDefault": {
"type": "boolean",
"description": "Whether special IPv4 addresses should be used (see: https://tools.ietf.org/html/rfc5735)"
},
"includedCidr": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of IP addresses or subnets being protected"
},
"excludedCidr": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of IP addresses or subnets being excluded from protection"
}
},
"description": "Networks included in and excluded from the detection engine"
}
}
},
"examples": {
"application/json": {
"mode": "prevention",
"idsRulesets": "balanced",
"protectedNetworks": {
"useDefault": false,
"includedCidr": [
"10.0.0.0/8",
"127.0.0.0/8",
"169.254.0.0/16",
"172.16.0.0/12"
],
"excludedCidr": [
"10.0.0.0/8",
"127.0.0.0/8"
]
}
}
}
}
},
"summary": "Returns all supported intrusion settings for an MX network",
"tags": [
"appliance",
"configure",
"security",
"intrusion"
]
},
"put": {
"description": "Set the supported intrusion settings for an MX network",
"operationId": "updateNetworkApplianceSecurityIntrusion",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceSecurityIntrusion",
"in": "body",
"schema": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"detection",
"disabled",
"prevention"
],
"description": "Set mode to 'disabled'/'detection'/'prevention' (optional - omitting will leave current config unchanged)"
},
"idsRulesets": {
"type": "string",
"enum": [
"balanced",
"connectivity",
"security"
],
"description": "Set the detection ruleset 'connectivity'/'balanced'/'security' (optional - omitting will leave current config unchanged). Default value is 'balanced' if none currently saved"
},
"protectedNetworks": {
"type": "object",
"properties": {
"useDefault": {
"type": "boolean",
"description": "true/false whether to use special IPv4 addresses: https://tools.ietf.org/html/rfc5735 (required). Default value is true if none currently saved"
},
"includedCidr": {
"type": "array",
"items": {
"type": "string"
},
"description": "list of IP addresses or subnets being protected (required if 'useDefault' is false)"
},
"excludedCidr": {
"type": "array",
"items": {
"type": "string"
},
"description": "list of IP addresses or subnets being excluded from protection (required if 'useDefault' is false)"
}
},
"description": "Set the included/excluded networks from the intrusion engine (optional - omitting will leave current config unchanged). This is available only in 'passthrough' mode"
}
},
"example": {
"mode": "prevention",
"idsRulesets": "balanced",
"protectedNetworks": {
"useDefault": false,
"includedCidr": [
"10.0.0.0/8",
"127.0.0.0/8",
"169.254.0.0/16",
"172.16.0.0/12"
],
"excludedCidr": [
"10.0.0.0/8",
"127.0.0.0/8"
]
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"description": "Intrusion detection mode"
},
"idsRulesets": {
"type": "string",
"description": "Intrusion detection ruleset"
},
"protectedNetworks": {
"type": "object",
"properties": {
"useDefault": {
"type": "boolean",
"description": "Whether special IPv4 addresses should be used (see: https://tools.ietf.org/html/rfc5735)"
},
"includedCidr": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of IP addresses or subnets being protected"
},
"excludedCidr": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of IP addresses or subnets being excluded from protection"
}
},
"description": "Networks included in and excluded from the detection engine"
}
}
},
"examples": {
"application/json": {
"mode": "prevention",
"idsRulesets": "balanced",
"protectedNetworks": {
"useDefault": false,
"includedCidr": [
"10.0.0.0/8",
"127.0.0.0/8",
"169.254.0.0/16",
"172.16.0.0/12"
],
"excludedCidr": [
"10.0.0.0/8",
"127.0.0.0/8"
]
}
}
}
}
},
"summary": "Set the supported intrusion settings for an MX network",
"tags": [
"appliance",
"configure",
"security",
"intrusion"
]
}
},
"/networks/{networkId}/appliance/security/malware": {
"get": {
"description": "Returns all supported malware settings for an MX network",
"operationId": "getNetworkApplianceSecurityMalware",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"description": "Current status of malware prevention"
},
"allowedUrls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The allowed URL"
},
"comment": {
"type": "string",
"description": "Comment about the allowed URL"
}
}
},
"description": "URLs permitted by the malware detection engine"
},
"allowedFiles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sha256": {
"type": "string",
"description": "The sha256 digest of allowed file"
},
"comment": {
"type": "string",
"description": "Comment about the allowed file"
}
}
},
"description": "Sha256 digests of files permitted by the malware detection engine"
}
}
},
"examples": {
"application/json": {
"mode": "enabled",
"allowedUrls": [
{
"url": "help.com.au",
"comment": "allow help.com.au"
}
],
"allowedFiles": [
{
"sha256": "e82c5f7d75004727e1f3b94426b9a11c8bc4c312a9170ac9a73abace40aef503",
"comment": "allow ZIP file"
}
]
}
}
}
},
"summary": "Returns all supported malware settings for an MX network",
"tags": [
"appliance",
"configure",
"security",
"malware"
]
},
"put": {
"description": "Set the supported malware settings for an MX network",
"operationId": "updateNetworkApplianceSecurityMalware",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceSecurityMalware",
"in": "body",
"schema": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"disabled",
"enabled"
],
"description": "Set mode to 'enabled' to enable malware prevention, otherwise 'disabled'"
},
"allowedUrls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The url to allow"
},
"comment": {
"type": "string",
"description": "Comment about the allowed entity"
}
},
"required": [
"url",
"comment"
]
},
"description": "The urls that should be permitted by the malware detection engine. If omitted, the current config will remain unchanged. This is available only if your network supports AMP allow listing"
},
"allowedFiles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sha256": {
"type": "string",
"description": "The file sha256 hash to allow"
},
"comment": {
"type": "string",
"description": "Comment about the allowed entity"
}
},
"required": [
"sha256",
"comment"
]
},
"description": "The sha256 digests of files that should be permitted by the malware detection engine. If omitted, the current config will remain unchanged. This is available only if your network supports AMP allow listing"
}
},
"example": {
"mode": "enabled",
"allowedUrls": [
{
"url": "help.com.au",
"comment": "allow help.com.au"
}
],
"allowedFiles": [
{
"sha256": "e82c5f7d75004727e1f3b94426b9a11c8bc4c312a9170ac9a73abace40aef503",
"comment": "allow ZIP file"
}
]
},
"required": [
"mode"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"description": "Current status of malware prevention"
},
"allowedUrls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The allowed URL"
},
"comment": {
"type": "string",
"description": "Comment about the allowed URL"
}
}
},
"description": "URLs permitted by the malware detection engine"
},
"allowedFiles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sha256": {
"type": "string",
"description": "The sha256 digest of allowed file"
},
"comment": {
"type": "string",
"description": "Comment about the allowed file"
}
}
},
"description": "Sha256 digests of files permitted by the malware detection engine"
}
}
},
"examples": {
"application/json": {
"mode": "enabled",
"allowedUrls": [
{
"url": "help.com.au",
"comment": "allow help.com.au"
}
],
"allowedFiles": [
{
"sha256": "e82c5f7d75004727e1f3b94426b9a11c8bc4c312a9170ac9a73abace40aef503",
"comment": "allow ZIP file"
}
]
}
}
}
},
"summary": "Set the supported malware settings for an MX network",
"tags": [
"appliance",
"configure",
"security",
"malware"
]
}
},
"/networks/{networkId}/appliance/settings": {
"get": {
"description": "Return the appliance settings for a network",
"operationId": "getNetworkApplianceSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"clientTrackingMethod": {
"type": "string",
"enum": [
"IP address",
"MAC address",
"Unique client identifier"
],
"description": "Client tracking method of a network"
},
"deploymentMode": {
"type": "string",
"enum": [
"passthrough",
"routed"
],
"description": "Deployment mode of a network"
},
"dynamicDns": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Dynamic DNS enabled"
},
"prefix": {
"type": "string",
"description": "Dynamic DNS url prefix. DDNS must be enabled to update"
},
"url": {
"type": "string",
"description": "Dynamic DNS url. DDNS must be enabled to update"
}
},
"description": "Dynamic DNS settings for a network"
}
}
},
"examples": {
"application/json": {
"clientTrackingMethod": "MAC address",
"deploymentMode": "routed",
"dynamicDns": {
"enabled": true,
"prefix": "test",
"url": "test-adfgnnhjea.meraki.com"
}
}
}
}
},
"summary": "Return the appliance settings for a network",
"tags": [
"appliance",
"configure",
"settings"
]
},
"put": {
"description": "Update the appliance settings for a network",
"operationId": "updateNetworkApplianceSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceSettings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"clientTrackingMethod": {
"type": "string",
"enum": [
"IP address",
"MAC address",
"Unique client identifier"
],
"description": "Client tracking method of a network"
},
"deploymentMode": {
"type": "string",
"enum": [
"passthrough",
"routed"
],
"description": "Deployment mode of a network"
},
"dynamicDns": {
"type": "object",
"properties": {
"prefix": {
"type": "string",
"description": "Dynamic DNS url prefix. DDNS must be enabled to update"
},
"enabled": {
"type": "boolean",
"description": "Dynamic DNS enabled"
}
},
"description": "Dynamic DNS settings for a network"
}
},
"example": {
"clientTrackingMethod": "MAC address",
"deploymentMode": "routed",
"dynamicDns": {
"prefix": "test",
"enabled": true
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"clientTrackingMethod": {
"type": "string",
"enum": [
"IP address",
"MAC address",
"Unique client identifier"
],
"description": "Client tracking method of a network"
},
"deploymentMode": {
"type": "string",
"enum": [
"passthrough",
"routed"
],
"description": "Deployment mode of a network"
},
"dynamicDns": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Dynamic DNS enabled"
},
"prefix": {
"type": "string",
"description": "Dynamic DNS url prefix. DDNS must be enabled to update"
},
"url": {
"type": "string",
"description": "Dynamic DNS url. DDNS must be enabled to update"
}
},
"description": "Dynamic DNS settings for a network"
}
}
},
"examples": {
"application/json": {
"clientTrackingMethod": "MAC address",
"deploymentMode": "routed",
"dynamicDns": {
"enabled": true,
"prefix": "test",
"url": "test-adfgnnhjea.meraki.com"
}
}
}
}
},
"summary": "Update the appliance settings for a network",
"tags": [
"appliance",
"configure",
"settings"
]
}
},
"/networks/{networkId}/appliance/singleLan": {
"get": {
"description": "Return single LAN configuration",
"operationId": "getNetworkApplianceSingleLan",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"subnet": {
"type": "string",
"description": "The subnet of the single LAN"
},
"applianceIp": {
"type": "string",
"description": "The local IP of the appliance on the single LAN"
},
"mandatoryDhcp": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable Mandatory DHCP on single LAN."
}
},
"description": "Mandatory DHCP will enforce that clients connecting to this single LAN must use the IP address assigned by the DHCP server. Clients who use a static IP address won't be able to associate. Only available on firmware versions 17.0 and above"
},
"ipv6": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable IPv6 on single LAN"
},
"prefixAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"autonomous": {
"type": "boolean",
"description": "Auto assign a /64 prefix from the origin to the single LAN"
},
"staticPrefix": {
"type": "string",
"description": "Manual configuration of a /64 prefix on the single LAN"
},
"staticApplianceIp6": {
"type": "string",
"description": "Manual configuration of the IPv6 Appliance IP"
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"independent",
"internet"
],
"description": "Type of the origin"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Interfaces associated with the prefix"
}
},
"description": "The origin of the prefix"
}
}
},
"description": "Prefix assignments on the single LAN"
}
},
"description": "IPv6 configuration on the single LAN"
}
}
},
"examples": {
"application/json": {
"subnet": "192.168.1.0/24",
"applianceIp": "192.168.1.2",
"mandatoryDhcp": {
"enabled": true
},
"ipv6": {
"enabled": true,
"prefixAssignments": [
{
"autonomous": false,
"staticPrefix": "2001:db8:3c4d:15::/64",
"staticApplianceIp6": "2001:db8:3c4d:15::1",
"origin": {
"type": "internet",
"interfaces": [
"wan0"
]
}
}
]
}
}
}
}
},
"summary": "Return single LAN configuration",
"tags": [
"appliance",
"configure",
"singleLan"
]
},
"put": {
"description": "Update single LAN configuration",
"operationId": "updateNetworkApplianceSingleLan",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceSingleLan",
"in": "body",
"schema": {
"type": "object",
"properties": {
"subnet": {
"type": "string",
"description": "The subnet of the single LAN configuration"
},
"applianceIp": {
"type": "string",
"description": "The appliance IP address of the single LAN"
},
"ipv6": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable IPv6 on VLAN."
},
"prefixAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"autonomous": {
"type": "boolean",
"description": "Auto assign a /64 prefix from the origin to the VLAN"
},
"staticPrefix": {
"type": "string",
"description": "Manual configuration of a /64 prefix on the VLAN"
},
"staticApplianceIp6": {
"type": "string",
"description": "Manual configuration of the IPv6 Appliance IP"
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"independent",
"internet"
],
"description": "Type of the origin"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Interfaces associated with the prefix"
}
},
"required": [
"type"
],
"description": "The origin of the prefix"
}
}
},
"description": "Prefix assignments on the VLAN"
}
},
"description": "IPv6 configuration on the VLAN"
},
"mandatoryDhcp": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable Mandatory DHCP on LAN."
}
},
"description": "Mandatory DHCP will enforce that clients connecting to this LAN must use the IP address assigned by the DHCP server. Clients who use a static IP address won't be able to associate. Only available on firmware versions 17.0 and above"
}
},
"example": {
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"subnet": {
"type": "string",
"description": "The subnet of the single LAN"
},
"applianceIp": {
"type": "string",
"description": "The local IP of the appliance on the single LAN"
},
"mandatoryDhcp": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable Mandatory DHCP on single LAN."
}
},
"description": "Mandatory DHCP will enforce that clients connecting to this single LAN must use the IP address assigned by the DHCP server. Clients who use a static IP address won't be able to associate. Only available on firmware versions 17.0 and above"
},
"ipv6": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable IPv6 on single LAN"
},
"prefixAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"autonomous": {
"type": "boolean",
"description": "Auto assign a /64 prefix from the origin to the single LAN"
},
"staticPrefix": {
"type": "string",
"description": "Manual configuration of a /64 prefix on the single LAN"
},
"staticApplianceIp6": {
"type": "string",
"description": "Manual configuration of the IPv6 Appliance IP"
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"independent",
"internet"
],
"description": "Type of the origin"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Interfaces associated with the prefix"
}
},
"description": "The origin of the prefix"
}
}
},
"description": "Prefix assignments on the single LAN"
}
},
"description": "IPv6 configuration on the single LAN"
}
}
},
"examples": {
"application/json": {
"subnet": "192.168.1.0/24",
"applianceIp": "192.168.1.2",
"mandatoryDhcp": {
"enabled": true
},
"ipv6": {
"enabled": true,
"prefixAssignments": [
{
"autonomous": false,
"staticPrefix": "2001:db8:3c4d:15::/64",
"staticApplianceIp6": "2001:db8:3c4d:15::1",
"origin": {
"type": "internet",
"interfaces": [
"wan0"
]
}
}
]
}
}
}
}
},
"summary": "Update single LAN configuration",
"tags": [
"appliance",
"configure",
"singleLan"
]
}
},
"/networks/{networkId}/appliance/ssids": {
"get": {
"description": "List the MX SSIDs in a network",
"operationId": "getNetworkApplianceSsids",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"description": "The number of the SSID."
},
"name": {
"type": "string",
"description": "The name of the SSID."
},
"enabled": {
"type": "boolean",
"description": "Whether or not the SSID is enabled."
},
"defaultVlanId": {
"type": "integer",
"description": "The VLAN ID of the VLAN associated to this SSID."
},
"authMode": {
"type": "string",
"description": "The association control method for the SSID."
},
"radiusServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "The IP address of your RADIUS server."
},
"port": {
"type": "integer",
"description": "The UDP port your RADIUS servers listens on for Access-requests."
}
}
},
"description": "The RADIUS 802.1x servers to be used for authentication."
},
"encryptionMode": {
"type": "string",
"description": "The psk encryption mode for the SSID."
},
"wpaEncryptionMode": {
"type": "string",
"description": "WPA encryption mode for the SSID."
},
"visible": {
"type": "boolean",
"description": "Boolean indicating whether the MX should advertise or hide this SSID."
}
}
}
},
"examples": {
"application/json": [
{
"number": 1,
"name": "My SSID",
"enabled": true,
"defaultVlanId": 1,
"authMode": "8021x-radius",
"radiusServers": [
{
"host": "0.0.0.0",
"port": 1000
}
],
"encryptionMode": "wpa",
"wpaEncryptionMode": "WPA2 only",
"visible": true
}
]
}
}
},
"summary": "List the MX SSIDs in a network",
"tags": [
"appliance",
"configure",
"ssids"
]
}
},
"/networks/{networkId}/appliance/ssids/{number}": {
"get": {
"description": "Return a single MX SSID",
"operationId": "getNetworkApplianceSsid",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"description": "The number of the SSID."
},
"name": {
"type": "string",
"description": "The name of the SSID."
},
"enabled": {
"type": "boolean",
"description": "Whether or not the SSID is enabled."
},
"defaultVlanId": {
"type": "integer",
"description": "The VLAN ID of the VLAN associated to this SSID."
},
"authMode": {
"type": "string",
"description": "The association control method for the SSID."
},
"radiusServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "The IP address of your RADIUS server."
},
"port": {
"type": "integer",
"description": "The UDP port your RADIUS servers listens on for Access-requests."
}
}
},
"description": "The RADIUS 802.1x servers to be used for authentication."
},
"encryptionMode": {
"type": "string",
"description": "The psk encryption mode for the SSID."
},
"wpaEncryptionMode": {
"type": "string",
"description": "WPA encryption mode for the SSID."
},
"visible": {
"type": "boolean",
"description": "Boolean indicating whether the MX should advertise or hide this SSID."
}
}
},
"examples": {
"application/json": {
"number": 1,
"name": "My SSID",
"enabled": true,
"defaultVlanId": 1,
"authMode": "8021x-radius",
"radiusServers": [
{
"host": "0.0.0.0",
"port": 1000
}
],
"encryptionMode": "wpa",
"wpaEncryptionMode": "WPA2 only",
"visible": true
}
}
}
},
"summary": "Return a single MX SSID",
"tags": [
"appliance",
"configure",
"ssids"
]
},
"put": {
"description": "Update the attributes of an MX SSID",
"operationId": "updateNetworkApplianceSsid",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceSsid",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the SSID."
},
"enabled": {
"type": "boolean",
"description": "Whether or not the SSID is enabled."
},
"defaultVlanId": {
"type": "integer",
"description": "The VLAN ID of the VLAN associated to this SSID. This parameter is only valid if the network is in routed mode."
},
"authMode": {
"type": "string",
"enum": [
"8021x-meraki",
"8021x-radius",
"open",
"psk"
],
"description": "The association control method for the SSID ('open', 'psk', '8021x-meraki' or '8021x-radius')."
},
"psk": {
"type": "string",
"description": "The passkey for the SSID. This param is only valid if the authMode is 'psk'."
},
"radiusServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "The IP address of your RADIUS server."
},
"port": {
"type": "integer",
"description": "The UDP port your RADIUS servers listens on for Access-requests."
},
"secret": {
"type": "string",
"description": "The RADIUS client shared secret."
}
}
},
"description": "The RADIUS 802.1x servers to be used for authentication. This param is only valid if the authMode is '8021x-radius'."
},
"encryptionMode": {
"type": "string",
"enum": [
"wep",
"wpa"
],
"description": "The psk encryption mode for the SSID ('wep' or 'wpa'). This param is only valid if the authMode is 'psk'."
},
"wpaEncryptionMode": {
"type": "string",
"enum": [
"WPA1 and WPA2",
"WPA2 only",
"WPA3 Transition Mode",
"WPA3 only"
],
"description": "The types of WPA encryption. ('WPA1 and WPA2', 'WPA2 only', 'WPA3 Transition Mode' or 'WPA3 only'). This param is only valid if (1) the authMode is 'psk' & the encryptionMode is 'wpa' OR (2) the authMode is '8021x-meraki' OR (3) the authMode is '8021x-radius'"
},
"visible": {
"type": "boolean",
"description": "Boolean indicating whether the MX should advertise or hide this SSID."
},
"dhcpEnforcedDeauthentication": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable DCHP Enforced Deauthentication on the SSID."
}
},
"description": "DHCP Enforced Deauthentication enables the disassociation of wireless clients in addition to Mandatory DHCP. This param is only valid on firmware versions >= MX 17.0 where the associated LAN has Mandatory DHCP Enabled "
},
"dot11w": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether 802.11w is enabled or not."
},
"required": {
"type": "boolean",
"description": "(Optional) Whether 802.11w is required or not."
}
},
"description": "The current setting for Protected Management Frames (802.11w)."
}
},
"example": {
"name": "My SSID",
"enabled": true,
"defaultVlanId": 1,
"authMode": "8021x-radius",
"psk": "psk",
"radiusServers": [
{
"host": "0.0.0.0",
"port": 1000,
"secret": "secret"
}
],
"encryptionMode": "wpa",
"wpaEncryptionMode": "WPA2 only",
"visible": true,
"dhcpEnforcedDeauthentication": {
"enabled": true
},
"dot11w": {
"enabled": true,
"required": true
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"description": "The number of the SSID."
},
"name": {
"type": "string",
"description": "The name of the SSID."
},
"enabled": {
"type": "boolean",
"description": "Whether or not the SSID is enabled."
},
"defaultVlanId": {
"type": "integer",
"description": "The VLAN ID of the VLAN associated to this SSID."
},
"authMode": {
"type": "string",
"description": "The association control method for the SSID."
},
"radiusServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "The IP address of your RADIUS server."
},
"port": {
"type": "integer",
"description": "The UDP port your RADIUS servers listens on for Access-requests."
}
}
},
"description": "The RADIUS 802.1x servers to be used for authentication."
},
"encryptionMode": {
"type": "string",
"description": "The psk encryption mode for the SSID."
},
"wpaEncryptionMode": {
"type": "string",
"description": "WPA encryption mode for the SSID."
},
"visible": {
"type": "boolean",
"description": "Boolean indicating whether the MX should advertise or hide this SSID."
}
}
},
"examples": {
"application/json": {
"number": 1,
"name": "My SSID",
"enabled": true,
"defaultVlanId": 1,
"authMode": "8021x-radius",
"radiusServers": [
{
"host": "0.0.0.0",
"port": 1000
}
],
"encryptionMode": "wpa",
"wpaEncryptionMode": "WPA2 only",
"visible": true
}
}
}
},
"summary": "Update the attributes of an MX SSID",
"tags": [
"appliance",
"configure",
"ssids"
]
}
},
"/networks/{networkId}/appliance/staticRoutes": {
"get": {
"description": "List the static routes for an MX or teleworker network",
"operationId": "getNetworkApplianceStaticRoutes",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Route ID"
},
"ipVersion": {
"type": "integer",
"description": "IP protocol version"
},
"networkId": {
"type": "string",
"description": "Network ID"
},
"enabled": {
"type": "boolean",
"description": "Whether the route is enabled or not"
},
"name": {
"type": "string",
"description": "Name of the route"
},
"subnet": {
"type": "string",
"description": "Subnet of the route"
},
"gatewayIp": {
"type": "string",
"description": "Gateway IP address (next hop)"
},
"fixedIpAssignments": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "Assigned IP address"
},
"name": {
"type": "string",
"description": "Client name"
}
},
"description": "An object mapping MAC addresses to IP addresses and client names"
},
"description": "Fixed DHCP IP assignments on the route"
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "First address in the reserved range"
},
"end": {
"type": "string",
"description": "Last address in the reserved range"
},
"comment": {
"type": "string",
"description": "Description of the range"
}
}
},
"description": "DHCP reserved IP ranges"
},
"gatewayVlanId": {
"type": "integer",
"description": "Gateway VLAN ID"
}
}
}
},
"examples": {
"application/json": [
{
"id": "d7fa4948-7921-4dfa-af6b-ae8b16c20c39",
"ipVersion": 4,
"networkId": "N_24329156",
"enabled": true,
"name": "My route",
"subnet": "192.168.1.0/24",
"gatewayIp": "1.2.3.5",
"fixedIpAssignments": {
"22:33:44:55:66:77": {
"ip": "1.2.3.4",
"name": "Some client name"
}
},
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
],
"gatewayVlanId": 100
}
]
}
}
},
"summary": "List the static routes for an MX or teleworker network",
"tags": [
"appliance",
"configure",
"staticRoutes"
]
},
"post": {
"description": "Add a static route for an MX or teleworker network",
"operationId": "createNetworkApplianceStaticRoute",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkApplianceStaticRoute",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the route"
},
"subnet": {
"type": "string",
"description": "Subnet of the route"
},
"gatewayIp": {
"type": "string",
"description": "Gateway IP address (next hop)"
},
"gatewayVlanId": {
"type": "string",
"description": "Gateway VLAN ID"
}
},
"example": {
"name": "My route",
"subnet": "192.168.1.0/24",
"gatewayIp": "1.2.3.5",
"gatewayVlanId": "100"
},
"required": [
"name",
"subnet",
"gatewayIp"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Route ID"
},
"ipVersion": {
"type": "integer",
"description": "IP protocol version"
},
"networkId": {
"type": "string",
"description": "Network ID"
},
"enabled": {
"type": "boolean",
"description": "Whether the route is enabled or not"
},
"name": {
"type": "string",
"description": "Name of the route"
},
"subnet": {
"type": "string",
"description": "Subnet of the route"
},
"gatewayIp": {
"type": "string",
"description": "Gateway IP address (next hop)"
},
"fixedIpAssignments": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "Assigned IP address"
},
"name": {
"type": "string",
"description": "Client name"
}
},
"description": "An object mapping MAC addresses to IP addresses and client names"
},
"description": "Fixed DHCP IP assignments on the route"
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "First address in the reserved range"
},
"end": {
"type": "string",
"description": "Last address in the reserved range"
},
"comment": {
"type": "string",
"description": "Description of the range"
}
}
},
"description": "DHCP reserved IP ranges"
},
"gatewayVlanId": {
"type": "integer",
"description": "Gateway VLAN ID"
}
}
},
"examples": {
"application/json": {
"id": "d7fa4948-7921-4dfa-af6b-ae8b16c20c39",
"ipVersion": 4,
"networkId": "N_24329156",
"enabled": true,
"name": "My route",
"subnet": "192.168.1.0/24",
"gatewayIp": "1.2.3.5",
"fixedIpAssignments": {
"22:33:44:55:66:77": {
"ip": "1.2.3.4",
"name": "Some client name"
}
},
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
],
"gatewayVlanId": 100
}
}
}
},
"summary": "Add a static route for an MX or teleworker network",
"tags": [
"appliance",
"configure",
"staticRoutes"
]
}
},
"/networks/{networkId}/appliance/staticRoutes/{staticRouteId}": {
"get": {
"description": "Return a static route for an MX or teleworker network",
"operationId": "getNetworkApplianceStaticRoute",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "staticRouteId",
"in": "path",
"description": "Static route ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Route ID"
},
"ipVersion": {
"type": "integer",
"description": "IP protocol version"
},
"networkId": {
"type": "string",
"description": "Network ID"
},
"enabled": {
"type": "boolean",
"description": "Whether the route is enabled or not"
},
"name": {
"type": "string",
"description": "Name of the route"
},
"subnet": {
"type": "string",
"description": "Subnet of the route"
},
"gatewayIp": {
"type": "string",
"description": "Gateway IP address (next hop)"
},
"fixedIpAssignments": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "Assigned IP address"
},
"name": {
"type": "string",
"description": "Client name"
}
},
"description": "An object mapping MAC addresses to IP addresses and client names"
},
"description": "Fixed DHCP IP assignments on the route"
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "First address in the reserved range"
},
"end": {
"type": "string",
"description": "Last address in the reserved range"
},
"comment": {
"type": "string",
"description": "Description of the range"
}
}
},
"description": "DHCP reserved IP ranges"
},
"gatewayVlanId": {
"type": "integer",
"description": "Gateway VLAN ID"
}
}
},
"examples": {
"application/json": {
"id": "d7fa4948-7921-4dfa-af6b-ae8b16c20c39",
"ipVersion": 4,
"networkId": "N_24329156",
"enabled": true,
"name": "My route",
"subnet": "192.168.1.0/24",
"gatewayIp": "1.2.3.5",
"fixedIpAssignments": {
"22:33:44:55:66:77": {
"ip": "1.2.3.4",
"name": "Some client name"
}
},
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
],
"gatewayVlanId": 100
}
}
}
},
"summary": "Return a static route for an MX or teleworker network",
"tags": [
"appliance",
"configure",
"staticRoutes"
]
},
"put": {
"description": "Update a static route for an MX or teleworker network",
"operationId": "updateNetworkApplianceStaticRoute",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "staticRouteId",
"in": "path",
"description": "Static route ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceStaticRoute",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the route"
},
"subnet": {
"type": "string",
"description": "Subnet of the route"
},
"gatewayIp": {
"type": "string",
"description": "Gateway IP address (next hop)"
},
"gatewayVlanId": {
"type": "string",
"description": "Gateway VLAN ID"
},
"enabled": {
"type": "boolean",
"description": "Whether the route should be enabled or not"
},
"fixedIpAssignments": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "Assigned IP address"
},
"name": {
"type": "string",
"description": "Client name"
}
},
"description": "An object mapping MAC addresses to IP addresses and client names"
},
"description": "Fixed DHCP IP assignments on the route"
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "First address in the reserved range"
},
"end": {
"type": "string",
"description": "Last address in the reserved range"
},
"comment": {
"type": "string",
"description": "Description of the range"
}
},
"required": [
"start",
"end",
"comment"
]
},
"description": "DHCP reserved IP ranges"
}
},
"example": {
"name": "My route",
"subnet": "192.168.1.0/24",
"gatewayIp": "1.2.3.5",
"gatewayVlanId": "100",
"enabled": true,
"fixedIpAssignments": {
"22:33:44:55:66:77": {
"ip": "1.2.3.4",
"name": "Some client name"
}
},
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Route ID"
},
"ipVersion": {
"type": "integer",
"description": "IP protocol version"
},
"networkId": {
"type": "string",
"description": "Network ID"
},
"enabled": {
"type": "boolean",
"description": "Whether the route is enabled or not"
},
"name": {
"type": "string",
"description": "Name of the route"
},
"subnet": {
"type": "string",
"description": "Subnet of the route"
},
"gatewayIp": {
"type": "string",
"description": "Gateway IP address (next hop)"
},
"fixedIpAssignments": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "Assigned IP address"
},
"name": {
"type": "string",
"description": "Client name"
}
},
"description": "An object mapping MAC addresses to IP addresses and client names"
},
"description": "Fixed DHCP IP assignments on the route"
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "First address in the reserved range"
},
"end": {
"type": "string",
"description": "Last address in the reserved range"
},
"comment": {
"type": "string",
"description": "Description of the range"
}
}
},
"description": "DHCP reserved IP ranges"
},
"gatewayVlanId": {
"type": "integer",
"description": "Gateway VLAN ID"
}
}
},
"examples": {
"application/json": {
"id": "d7fa4948-7921-4dfa-af6b-ae8b16c20c39",
"ipVersion": 4,
"networkId": "N_24329156",
"enabled": true,
"name": "My route",
"subnet": "192.168.1.0/24",
"gatewayIp": "1.2.3.5",
"fixedIpAssignments": {
"22:33:44:55:66:77": {
"ip": "1.2.3.4",
"name": "Some client name"
}
},
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
],
"gatewayVlanId": 100
}
}
}
},
"summary": "Update a static route for an MX or teleworker network",
"tags": [
"appliance",
"configure",
"staticRoutes"
]
},
"delete": {
"description": "Delete a static route from an MX or teleworker network",
"operationId": "deleteNetworkApplianceStaticRoute",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "staticRouteId",
"in": "path",
"description": "Static route ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a static route from an MX or teleworker network",
"tags": [
"appliance",
"configure",
"staticRoutes"
]
}
},
"/networks/{networkId}/appliance/trafficShaping": {
"get": {
"description": "Display the traffic shaping settings for an MX network",
"operationId": "getNetworkApplianceTrafficShaping",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"globalBandwidthLimits": {
"limitUp": 2048,
"limitDown": 5120
}
}
}
}
},
"summary": "Display the traffic shaping settings for an MX network",
"tags": [
"appliance",
"configure",
"trafficShaping"
]
},
"put": {
"description": "Update the traffic shaping settings for an MX network",
"operationId": "updateNetworkApplianceTrafficShaping",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceTrafficShaping",
"in": "body",
"schema": {
"type": "object",
"properties": {
"globalBandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The upload bandwidth limit in Kbps. (0 represents no limit.)"
},
"limitDown": {
"type": "integer",
"description": "The download bandwidth limit in Kbps. (0 represents no limit.)"
}
},
"description": "Global per-client bandwidth limit"
}
},
"example": {
"globalBandwidthLimits": {
"limitUp": 2048,
"limitDown": 5120
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"globalBandwidthLimits": {
"limitUp": 2048,
"limitDown": 5120
}
}
}
}
},
"summary": "Update the traffic shaping settings for an MX network",
"tags": [
"appliance",
"configure",
"trafficShaping"
]
}
},
"/networks/{networkId}/appliance/trafficShaping/customPerformanceClasses": {
"get": {
"description": "List all custom performance classes for an MX network",
"operationId": "getNetworkApplianceTrafficShapingCustomPerformanceClasses",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the custom performance class"
},
"customPerformanceClassId": {
"type": "string",
"description": "ID of the custom performance class"
},
"maxLatency": {
"type": "integer",
"description": "Maximum latency in milliseconds"
},
"maxJitter": {
"type": "integer",
"description": "Maximum jitter in milliseconds"
},
"maxLossPercentage": {
"type": "integer",
"description": "Maximum percentage of packet loss"
}
}
}
},
"examples": {
"application/json": [
{
"name": "myCustomPerformanceClass",
"customPerformanceClassId": "123",
"maxLatency": 100,
"maxJitter": 100,
"maxLossPercentage": 5
}
]
}
}
},
"summary": "List all custom performance classes for an MX network",
"tags": [
"appliance",
"configure",
"trafficShaping",
"customPerformanceClasses"
]
},
"post": {
"description": "Add a custom performance class for an MX network",
"operationId": "createNetworkApplianceTrafficShapingCustomPerformanceClass",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkApplianceTrafficShapingCustomPerformanceClass",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the custom performance class"
},
"maxLatency": {
"type": "integer",
"description": "Maximum latency in milliseconds"
},
"maxJitter": {
"type": "integer",
"description": "Maximum jitter in milliseconds"
},
"maxLossPercentage": {
"type": "integer",
"description": "Maximum percentage of packet loss"
}
},
"example": {
"name": "myCustomPerformanceClass",
"maxLatency": 100,
"maxJitter": 100,
"maxLossPercentage": 5
},
"required": [
"name"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the custom performance class"
},
"customPerformanceClassId": {
"type": "string",
"description": "ID of the custom performance class"
},
"maxLatency": {
"type": "integer",
"description": "Maximum latency in milliseconds"
},
"maxJitter": {
"type": "integer",
"description": "Maximum jitter in milliseconds"
},
"maxLossPercentage": {
"type": "integer",
"description": "Maximum percentage of packet loss"
}
}
},
"examples": {
"application/json": {
"name": "myCustomPerformanceClass",
"customPerformanceClassId": "123",
"maxLatency": 100,
"maxJitter": 100,
"maxLossPercentage": 5
}
}
}
},
"summary": "Add a custom performance class for an MX network",
"tags": [
"appliance",
"configure",
"trafficShaping",
"customPerformanceClasses"
]
}
},
"/networks/{networkId}/appliance/trafficShaping/customPerformanceClasses/{customPerformanceClassId}": {
"get": {
"description": "Return a custom performance class for an MX network",
"operationId": "getNetworkApplianceTrafficShapingCustomPerformanceClass",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "customPerformanceClassId",
"in": "path",
"description": "Custom performance class ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the custom performance class"
},
"customPerformanceClassId": {
"type": "string",
"description": "ID of the custom performance class"
},
"maxLatency": {
"type": "integer",
"description": "Maximum latency in milliseconds"
},
"maxJitter": {
"type": "integer",
"description": "Maximum jitter in milliseconds"
},
"maxLossPercentage": {
"type": "integer",
"description": "Maximum percentage of packet loss"
}
}
},
"examples": {
"application/json": {
"name": "myCustomPerformanceClass",
"customPerformanceClassId": "123",
"maxLatency": 100,
"maxJitter": 100,
"maxLossPercentage": 5
}
}
}
},
"summary": "Return a custom performance class for an MX network",
"tags": [
"appliance",
"configure",
"trafficShaping",
"customPerformanceClasses"
]
},
"put": {
"description": "Update a custom performance class for an MX network",
"operationId": "updateNetworkApplianceTrafficShapingCustomPerformanceClass",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "customPerformanceClassId",
"in": "path",
"description": "Custom performance class ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceTrafficShapingCustomPerformanceClass",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the custom performance class"
},
"maxLatency": {
"type": "integer",
"description": "Maximum latency in milliseconds"
},
"maxJitter": {
"type": "integer",
"description": "Maximum jitter in milliseconds"
},
"maxLossPercentage": {
"type": "integer",
"description": "Maximum percentage of packet loss"
}
},
"example": {
"name": "myCustomPerformanceClass",
"maxLatency": 100,
"maxJitter": 100,
"maxLossPercentage": 5
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the custom performance class"
},
"customPerformanceClassId": {
"type": "string",
"description": "ID of the custom performance class"
},
"maxLatency": {
"type": "integer",
"description": "Maximum latency in milliseconds"
},
"maxJitter": {
"type": "integer",
"description": "Maximum jitter in milliseconds"
},
"maxLossPercentage": {
"type": "integer",
"description": "Maximum percentage of packet loss"
}
}
},
"examples": {
"application/json": {
"name": "myCustomPerformanceClass",
"customPerformanceClassId": "123",
"maxLatency": 100,
"maxJitter": 100,
"maxLossPercentage": 5
}
}
}
},
"summary": "Update a custom performance class for an MX network",
"tags": [
"appliance",
"configure",
"trafficShaping",
"customPerformanceClasses"
]
},
"delete": {
"description": "Delete a custom performance class from an MX network",
"operationId": "deleteNetworkApplianceTrafficShapingCustomPerformanceClass",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "customPerformanceClassId",
"in": "path",
"description": "Custom performance class ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a custom performance class from an MX network",
"tags": [
"appliance",
"configure",
"trafficShaping",
"customPerformanceClasses"
]
}
},
"/networks/{networkId}/appliance/trafficShaping/rules": {
"put": {
"description": "Update the traffic shaping settings rules for an MX network",
"operationId": "updateNetworkApplianceTrafficShapingRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceTrafficShapingRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"defaultRulesEnabled": {
"type": "boolean",
"description": "Whether default traffic shaping rules are enabled (true) or disabled (false). There are 4 default rules, which can be seen on your network's traffic shaping page. Note that default rules count against the rule limit of 8."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"definitions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"host",
"ipRange",
"localNet",
"port"
],
"description": "The type of definition. Can be one of 'application', 'applicationCategory', 'host', 'port', 'ipRange' or 'localNet'."
},
"value": {
"type": "string",
"description": " If \"type\" is 'host', 'port', 'ipRange' or 'localNet', then \"value\" must be a string, matching either\n a hostname (e.g. \"somesite.com\"), a port (e.g. 8080), or an IP range (\"192.1.0.0\",\n \"192.1.0.0/16\", or \"10.1.0.0/16:80\"). 'localNet' also supports CIDR notation, excluding\n custom ports.\n If \"type\" is 'application' or 'applicationCategory', then \"value\" must be an object\n with the structure { \"id\": \"meraki:layer7/...\" }, where \"id\" is the application category or\n application ID (for a list of IDs for your network, use the trafficShaping/applicationCategories\n endpoint).\n"
}
},
"required": [
"type",
"value"
]
},
"description": " A list of objects describing the definitions of your traffic shaping rule. At least one definition is required.\n"
},
"perClientBandwidthLimits": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"description": "How bandwidth limits are applied by your rule. Can be one of 'network default', 'ignore' or 'custom'."
},
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps)."
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps)."
}
},
"description": "The bandwidth limits object, specifying the upload ('limitUp') and download ('limitDown') speed in Kbps. These are only enforced if 'settings' is set to 'custom'."
}
},
"description": " An object describing the bandwidth settings for your rule.\n"
},
"dscpTagValue": {
"type": "integer",
"description": " The DSCP tag applied by your rule. null means 'Do not change DSCP tag'.\n For a list of possible tag values, use the trafficShaping/dscpTaggingOptions endpoint.\n"
},
"priority": {
"type": "string",
"description": " A string, indicating the priority level for packets bound to your rule.\n Can be 'low', 'normal' or 'high'.\n"
}
},
"required": [
"definitions"
]
},
"description": " An array of traffic shaping rules. Rules are applied in the order that\n they are specified in. An empty list (or null) means no rules. Note that\n you are allowed a maximum of 8 rules.\n"
}
},
"example": {
"defaultRulesEnabled": true,
"rules": [
{
"definitions": [
{
"type": "host",
"value": "google.com"
},
{
"type": "port",
"value": "9090"
},
{
"type": "ipRange",
"value": "192.1.0.0"
},
{
"type": "ipRange",
"value": "192.1.0.0/16"
},
{
"type": "ipRange",
"value": "10.1.0.0/16:80"
},
{
"type": "localNet",
"value": "192.168.0.0/16"
}
],
"perClientBandwidthLimits": {
"settings": "custom",
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
}
},
"dscpTagValue": 0,
"priority": "normal"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"defaultRulesEnabled": true,
"rules": [
{
"definitions": [
{
"type": "host",
"value": "google.com"
},
{
"type": "port",
"value": "9090"
},
{
"type": "ipRange",
"value": "192.1.0.0"
},
{
"type": "ipRange",
"value": "192.1.0.0/16"
},
{
"type": "ipRange",
"value": "10.1.0.0/16:80"
},
{
"type": "localNet",
"value": "192.168.0.0/16"
}
],
"perClientBandwidthLimits": {
"settings": "custom",
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
}
},
"dscpTagValue": 0,
"priority": "normal"
}
]
}
}
}
},
"summary": "Update the traffic shaping settings rules for an MX network",
"tags": [
"appliance",
"configure",
"trafficShaping",
"rules"
]
},
"get": {
"description": "Display the traffic shaping settings rules for an MX network",
"operationId": "getNetworkApplianceTrafficShapingRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"defaultRulesEnabled": true,
"rules": [
{
"definitions": [
{
"type": "host",
"value": "google.com"
},
{
"type": "port",
"value": "9090"
},
{
"type": "ipRange",
"value": "192.1.0.0"
},
{
"type": "ipRange",
"value": "192.1.0.0/16"
},
{
"type": "ipRange",
"value": "10.1.0.0/16:80"
},
{
"type": "localNet",
"value": "192.168.0.0/16"
}
],
"perClientBandwidthLimits": {
"settings": "custom",
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
}
},
"dscpTagValue": 0,
"priority": "normal"
}
]
}
}
}
},
"summary": "Display the traffic shaping settings rules for an MX network",
"tags": [
"appliance",
"configure",
"trafficShaping",
"rules"
]
}
},
"/networks/{networkId}/appliance/trafficShaping/uplinkBandwidth": {
"get": {
"description": "Returns the uplink bandwidth limits for your MX network. This may not reflect the affected device's hardware capabilities. For more information on your device's hardware capabilities, please consult our MX Family Datasheet - [https://meraki.cisco.com/product-collateral/mx-family-datasheet/?file]",
"operationId": "getNetworkApplianceTrafficShapingUplinkBandwidth",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"bandwidthLimits": {
"type": "object",
"properties": {
"wan1": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "configured UP limit for the uplink (in Kbps). Null indicated unlimited"
},
"limitDown": {
"type": "integer",
"description": "configured DOWN limit for the uplink (in Kbps). Null indicated unlimited"
}
},
"description": "uplink wan1 configured limits [optional]"
},
"wan2": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "configured UP limit for the uplink (in Kbps). Null indicated unlimited"
},
"limitDown": {
"type": "integer",
"description": "configured DOWN limit for the uplink (in Kbps). Null indicated unlimited"
}
},
"description": "uplink wan2 configured limits [optional]"
},
"cellular": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "configured UP limit for the uplink (in Kbps). Null indicated unlimited"
},
"limitDown": {
"type": "integer",
"description": "configured DOWN limit for the uplink (in Kbps). Null indicated unlimited"
}
},
"description": "uplink cellular configured limits [optional]"
}
},
"description": "A hash uplink keys and their configured settings for the Appliance"
}
}
},
"examples": {
"application/json": {
"bandwidthLimits": {
"wan1": {
"limitUp": 1000000,
"limitDown": 1000000
},
"wan2": {
"limitUp": 1000000,
"limitDown": 1000000
},
"cellular": {
"limitUp": 51200,
"limitDown": 51200
}
}
}
}
}
},
"summary": "Returns the uplink bandwidth limits for your MX network",
"tags": [
"appliance",
"configure",
"trafficShaping",
"uplinkBandwidth"
]
},
"put": {
"description": "Updates the uplink bandwidth settings for your MX network.",
"operationId": "updateNetworkApplianceTrafficShapingUplinkBandwidth",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceTrafficShapingUplinkBandwidth",
"in": "body",
"schema": {
"type": "object",
"properties": {
"bandwidthLimits": {
"type": "object",
"properties": {
"wan1": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps). null indicates no limit"
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps). null indicates no limit"
}
},
"description": "The bandwidth settings for the 'wan1' uplink"
},
"wan2": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps). null indicates no limit"
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps). null indicates no limit"
}
},
"description": "The bandwidth settings for the 'wan2' uplink"
},
"cellular": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps). null indicates no limit"
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps). null indicates no limit"
}
},
"description": "The bandwidth settings for the 'cellular' uplink"
}
},
"description": "A mapping of uplinks to their bandwidth settings (be sure to check which uplinks are supported for your network)"
}
},
"example": {
"bandwidthLimits": {
"wan1": {
"limitUp": 1000000,
"limitDown": 1000000
},
"wan2": {
"limitUp": 1000000,
"limitDown": 1000000
},
"cellular": {
"limitUp": 1000000,
"limitDown": 1000000
}
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"bandwidthLimits": {
"wan1": {
"limitUp": 1000000,
"limitDown": 1000000
},
"wan2": {
"limitUp": 1000000,
"limitDown": 1000000
},
"cellular": {
"limitUp": 51200,
"limitDown": 51200
}
}
}
}
}
},
"summary": "Updates the uplink bandwidth settings for your MX network.",
"tags": [
"appliance",
"configure",
"trafficShaping",
"uplinkBandwidth"
]
}
},
"/networks/{networkId}/appliance/trafficShaping/uplinkSelection": {
"get": {
"description": "Show uplink selection settings for an MX network",
"operationId": "getNetworkApplianceTrafficShapingUplinkSelection",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"activeActiveAutoVpnEnabled": {
"type": "boolean",
"description": "Whether active-active AutoVPN is enabled"
},
"defaultUplink": {
"type": "string",
"enum": [
"wan1",
"wan2"
],
"description": "The default uplink. Must be one of: 'wan1' or 'wan2'"
},
"loadBalancingEnabled": {
"type": "boolean",
"description": "Whether load balancing is enabled"
},
"failoverAndFailback": {
"type": "object",
"properties": {
"immediate": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether immediate WAN failover and failback is enabled"
}
},
"required": [
"enabled"
],
"description": "Immediate WAN failover and failback"
}
},
"description": "WAN failover and failback"
},
"wanTrafficUplinkPreferences": {
"type": "array",
"items": {
"type": "object",
"properties": {
"trafficFilters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"custom"
],
"description": "Traffic filter type. Must be \"custom\""
},
"value": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"enum": [
"any",
"icmp6",
"tcp",
"udp"
],
"description": "Protocol of 'custom' type traffic filter. Must be one of: 'tcp', 'udp', 'icmp6' or 'any'"
},
"source": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "E.g.: \"any\", \"0\" (also means \"any\"), \"8080\", \"1-1024\""
},
"cidr": {
"type": "string",
"description": "CIDR format address (e.g.\"192.168.10.1\", which is the same as \"192.168.10.1/32\"), or \"any\". Cannot be used in combination with the \"vlan\" property"
},
"vlan": {
"type": "integer",
"description": "VLAN ID of the configured VLAN in the Meraki network. Cannot be used in combination with the \"cidr\" property and is currently only available under a template network."
},
"host": {
"type": "integer",
"description": "Host ID in the VLAN. Should not exceed the VLAN subnet capacity. Must be used along with the \"vlan\" property and is currently only available under a template network."
}
},
"description": "Source of 'custom' type traffic filter"
},
"destination": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "E.g.: \"any\", \"0\" (also means \"any\"), \"8080\", \"1-1024\""
},
"cidr": {
"type": "string",
"description": "CIDR format address (e.g.\"192.168.10.1\", which is the same as \"192.168.10.1/32\"), or \"any\""
},
"applications": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id of the major application, or a list of NBAR Application Category or Application selections"
},
"name": {
"type": "string",
"description": "Name of the major application or application category selected"
},
"type": {
"type": "string",
"description": "app type (major or nbar)"
}
}
},
"description": "list of application objects (either majorApplication or nbar)"
}
},
"description": "Destination of 'custom' type traffic filter"
}
},
"required": [
"source",
"destination"
],
"description": "Value of traffic filter"
}
},
"required": [
"type",
"value"
]
},
"description": "Traffic filters"
},
"preferredUplink": {
"type": "string",
"enum": [
"wan1",
"wan2"
],
"description": "Preferred uplink for uplink preference rule. Must be one of: 'wan1' or 'wan2'"
}
},
"required": [
"trafficFilters",
"preferredUplink"
]
},
"description": "Uplink preference rules for WAN traffic"
},
"vpnTrafficUplinkPreferences": {
"type": "array",
"items": {
"type": "object",
"properties": {
"trafficFilters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"custom"
],
"description": "Traffic filter type. Must be one of: 'applicationCategory', 'application' or 'custom'"
},
"value": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of 'applicationCategory' or 'application' type traffic filter"
},
"protocol": {
"type": "string",
"enum": [
"any",
"icmp",
"icmp6",
"tcp",
"udp"
],
"description": "Protocol of 'custom' type traffic filter. Must be one of: 'tcp', 'udp', 'icmp', 'icmp6' or 'any'"
},
"source": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "E.g.: \"any\", \"0\" (also means \"any\"), \"8080\", \"1-1024\""
},
"cidr": {
"type": "string",
"description": "CIDR format address (e.g.\"192.168.10.1\", which is the same as \"192.168.10.1/32\"), or \"any\". Cannot be used in combination with the \"vlan\" property"
},
"network": {
"type": "string",
"description": "Meraki network ID. Currently only available under a template network, and the value should be ID of either same template network, or another template network currently. E.g.: \"L_12345678\"."
},
"vlan": {
"type": "integer",
"description": "VLAN ID of the configured VLAN in the Meraki network. Cannot be used in combination with the \"cidr\" property and is currently only available under a template network."
},
"host": {
"type": "integer",
"description": "Host ID in the VLAN. Should not exceed the VLAN subnet capacity. Must be used along with the \"vlan\" property and is currently only available under a template network."
}
},
"description": "Source of 'custom' type traffic filter"
},
"destination": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "E.g.: \"any\", \"0\" (also means \"any\"), \"8080\", \"1-1024\""
},
"cidr": {
"type": "string",
"description": "CIDR format address (e.g.\"192.168.10.1\", which is the same as \"192.168.10.1/32\"), or \"any\". Cannot be used in combination with the \"vlan\" or \"fqdn\" property"
},
"network": {
"type": "string",
"description": "Meraki network ID. Currently only available under a template network, and the value should be ID of either same template network, or another template network currently. E.g.: \"L_12345678\"."
},
"vlan": {
"type": "integer",
"description": "VLAN ID of the configured VLAN in the Meraki network. Cannot be used in combination with the \"cidr\" or \"fqdn\" property and is currently only available under a template network."
},
"host": {
"type": "integer",
"description": "Host ID in the VLAN. Should not exceed the VLAN subnet capacity. Must be used along with the \"vlan\" property and is currently only available under a template network."
},
"fqdn": {
"type": "string",
"description": "FQDN format address. Cannot be used in combination with the \"cidr\" or \"fqdn\" property and is currently only available in the \"destination\" object of the \"vpnTrafficUplinkPreference\" object. E.g.: \"www.google.com\""
}
},
"description": "Destination of 'custom' type traffic filter"
}
},
"description": "Value of traffic filter"
}
},
"required": [
"type",
"value"
]
},
"description": "Traffic filters"
},
"preferredUplink": {
"type": "string",
"enum": [
"bestForVoIP",
"defaultUplink",
"loadBalancing",
"wan1",
"wan2"
],
"description": "Preferred uplink for uplink preference rule. Must be one of: 'wan1', 'wan2', 'bestForVoIP', 'loadBalancing' or 'defaultUplink'"
},
"failOverCriterion": {
"type": "string",
"enum": [
"poorPerformance",
"uplinkDown"
],
"description": "Fail over criterion for uplink preference rule. Must be one of: 'poorPerformance' or 'uplinkDown'"
},
"performanceClass": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"builtin",
"custom"
],
"description": "Type of this performance class. Must be one of: 'builtin' or 'custom'"
},
"builtinPerformanceClassName": {
"type": "string",
"enum": [
"VoIP"
],
"description": "Name of builtin performance class. Must be present when performanceClass type is 'builtin' and value must be one of: 'VoIP'"
},
"customPerformanceClassId": {
"type": "string",
"description": "ID of created custom performance class, must be present when performanceClass type is \"custom\""
}
},
"required": [
"type"
],
"description": "Performance class setting for uplink preference rule"
}
},
"required": [
"trafficFilters",
"preferredUplink"
]
},
"description": "Uplink preference rules for VPN traffic"
}
}
},
"examples": {
"application/json": {
"activeActiveAutoVpnEnabled": true,
"defaultUplink": "wan1",
"loadBalancingEnabled": true,
"failoverAndFailback": {
"immediate": {
"enabled": true
}
},
"wanTrafficUplinkPreferences": [
{
"trafficFilters": [
{
"type": "custom",
"value": {
"protocol": "tcp",
"source": {
"port": "1-1024",
"cidr": "192.168.1.0/24",
"vlan": 10,
"host": 254
},
"destination": {
"port": "any",
"cidr": "any",
"applications": [
{
"id": "meraki:layer7/application/3",
"name": "DNS",
"type": "major"
}
]
}
}
}
],
"preferredUplink": "wan1"
}
],
"vpnTrafficUplinkPreferences": [
{
"trafficFilters": [
{
"type": "applicationCategory",
"value": {
"id": "meraki:layer7/category/1",
"protocol": "tcp",
"source": {
"port": "any",
"cidr": "192.168.1.0/24",
"network": "L_23456789",
"vlan": 20,
"host": 200
},
"destination": {
"port": "1-1024",
"cidr": "any",
"network": "L_12345678",
"vlan": 10,
"host": 254,
"fqdn": "www.google.com"
}
}
}
],
"preferredUplink": "bestForVoIP",
"failOverCriterion": "poorPerformance",
"performanceClass": {
"type": "custom",
"builtinPerformanceClassName": "VoIP",
"customPerformanceClassId": "123456"
}
}
]
}
}
}
},
"summary": "Show uplink selection settings for an MX network",
"tags": [
"appliance",
"configure",
"trafficShaping",
"uplinkSelection"
]
},
"put": {
"description": "Update uplink selection settings for an MX network",
"operationId": "updateNetworkApplianceTrafficShapingUplinkSelection",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceTrafficShapingUplinkSelection",
"in": "body",
"schema": {
"type": "object",
"properties": {
"activeActiveAutoVpnEnabled": {
"type": "boolean",
"description": "Toggle for enabling or disabling active-active AutoVPN"
},
"defaultUplink": {
"type": "string",
"enum": [
"wan1",
"wan2"
],
"description": "The default uplink. Must be one of: 'wan1' or 'wan2'"
},
"loadBalancingEnabled": {
"type": "boolean",
"description": "Toggle for enabling or disabling load balancing"
},
"failoverAndFailback": {
"type": "object",
"properties": {
"immediate": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Toggle for enabling or disabling immediate WAN failover and failback"
}
},
"required": [
"enabled"
],
"description": "Immediate WAN transition terminates all flows (new and existing) on current WAN when it is deemed unreliable."
}
},
"description": "WAN failover and failback behavior"
},
"wanTrafficUplinkPreferences": {
"type": "array",
"items": {
"type": "object",
"properties": {
"trafficFilters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"custom"
],
"description": "Type of this traffic filter. Must be one of: 'custom'"
},
"value": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"enum": [
"any",
"icmp6",
"tcp",
"udp"
],
"description": "Protocol of this custom type traffic filter. Must be one of: 'tcp', 'udp', 'icmp6' or 'any'"
},
"source": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "E.g.: \"any\", \"0\" (also means \"any\"), \"8080\", \"1-1024\""
},
"cidr": {
"type": "string",
"description": "CIDR format address, or \"any\". E.g.: \"192.168.10.0/24\", \"192.168.10.1\" (same as \"192.168.10.1/32\"), \"0.0.0.0/0\" (same as \"any\")"
},
"vlan": {
"type": "integer",
"description": "VLAN ID of the configured VLAN in the Meraki network. Currently only available under a template network."
},
"host": {
"type": "integer",
"description": "Host ID in the VLAN, should be used along with 'vlan', and not exceed the vlan subnet capacity. Currently only available under a template network."
}
},
"description": "Source of this custom type traffic filter"
},
"destination": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "E.g.: \"any\", \"0\" (also means \"any\"), \"8080\", \"1-1024\""
},
"cidr": {
"type": "string",
"description": "CIDR format address, or \"any\". E.g.: \"192.168.10.0/24\", \"192.168.10.1\" (same as \"192.168.10.1/32\"), \"0.0.0.0/0\" (same as \"any\")"
}
},
"description": "Destination of this custom type traffic filter"
}
},
"required": [
"source",
"destination"
],
"description": "Value object of this traffic filter"
}
},
"required": [
"type",
"value"
]
},
"description": "Array of traffic filters for this uplink preference rule"
},
"preferredUplink": {
"type": "string",
"enum": [
"wan1",
"wan2"
],
"description": "Preferred uplink for this uplink preference rule. Must be one of: 'wan1' or 'wan2'"
}
},
"required": [
"trafficFilters",
"preferredUplink"
]
},
"description": "Array of uplink preference rules for WAN traffic"
},
"vpnTrafficUplinkPreferences": {
"type": "array",
"items": {
"type": "object",
"properties": {
"trafficFilters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"custom"
],
"description": "Type of this traffic filter. Must be one of: 'applicationCategory', 'application' or 'custom'"
},
"value": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of this applicationCategory or application type traffic filter. E.g.: \"meraki:layer7/category/1\", \"meraki:layer7/application/4\""
},
"protocol": {
"type": "string",
"enum": [
"any",
"icmp",
"icmp6",
"tcp",
"udp"
],
"description": "Protocol of this custom type traffic filter. Must be one of: 'tcp', 'udp', 'icmp', 'icmp6' or 'any'"
},
"source": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "E.g.: \"any\", \"0\" (also means \"any\"), \"8080\", \"1-1024\""
},
"cidr": {
"type": "string",
"description": "CIDR format address, or \"any\". E.g.: \"192.168.10.0/24\", \"192.168.10.1\" (same as \"192.168.10.1/32\"), \"0.0.0.0/0\" (same as \"any\")"
},
"network": {
"type": "string",
"description": "Meraki network ID. Currently only available under a template network, and the value should be ID of either same template network, or another template network currently. E.g.: \"L_12345678\"."
},
"vlan": {
"type": "integer",
"description": "VLAN ID of the configured VLAN in the Meraki network. Currently only available under a template network."
},
"host": {
"type": "integer",
"description": "Host ID in the VLAN, should be used along with 'vlan', and not exceed the vlan subnet capacity. Currently only available under a template network."
}
},
"description": "Source of this custom type traffic filter"
},
"destination": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "E.g.: \"any\", \"0\" (also means \"any\"), \"8080\", \"1-1024\""
},
"cidr": {
"type": "string",
"description": "CIDR format address, or \"any\". E.g.: \"192.168.10.0/24\", \"192.168.10.1\" (same as \"192.168.10.1/32\"), \"0.0.0.0/0\" (same as \"any\")"
},
"network": {
"type": "string",
"description": "Meraki network ID. Currently only available under a template network, and the value should be ID of either same template network, or another template network currently. E.g.: \"L_12345678\"."
},
"vlan": {
"type": "integer",
"description": "VLAN ID of the configured VLAN in the Meraki network. Currently only available under a template network."
},
"host": {
"type": "integer",
"description": "Host ID in the VLAN, should be used along with 'vlan', and not exceed the vlan subnet capacity. Currently only available under a template network."
},
"fqdn": {
"type": "string",
"description": "FQDN format address. Currently only availabe in 'destination' of 'vpnTrafficUplinkPreference' object. E.g.: 'www.google.com'"
}
},
"description": "Destination of this custom type traffic filter"
}
},
"description": "Value object of this traffic filter"
}
},
"required": [
"type",
"value"
]
},
"description": "Array of traffic filters for this uplink preference rule"
},
"preferredUplink": {
"type": "string",
"enum": [
"bestForVoIP",
"defaultUplink",
"loadBalancing",
"wan1",
"wan2"
],
"description": "Preferred uplink for this uplink preference rule. Must be one of: 'wan1', 'wan2', 'bestForVoIP', 'loadBalancing' or 'defaultUplink'"
},
"failOverCriterion": {
"type": "string",
"enum": [
"poorPerformance",
"uplinkDown"
],
"description": "Fail over criterion for this uplink preference rule. Must be one of: 'poorPerformance' or 'uplinkDown'"
},
"performanceClass": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"builtin",
"custom"
],
"description": "Type of this performance class. Must be one of: 'builtin' or 'custom'"
},
"builtinPerformanceClassName": {
"type": "string",
"enum": [
"VoIP"
],
"description": "Name of builtin performance class, must be present when performanceClass type is 'builtin', and value must be one of: 'VoIP'"
},
"customPerformanceClassId": {
"type": "string",
"description": "ID of created custom performance class, must be present when performanceClass type is 'custom'"
}
},
"required": [
"type"
],
"description": "Performance class setting for this uplink preference rule"
}
},
"required": [
"trafficFilters",
"preferredUplink"
]
},
"description": "Array of uplink preference rules for VPN traffic"
}
},
"example": {
"activeActiveAutoVpnEnabled": true,
"defaultUplink": "wan1",
"loadBalancingEnabled": true,
"failoverAndFailback": {
"immediate": {
"enabled": true
}
},
"wanTrafficUplinkPreferences": [
{
"trafficFilters": [
{
"type": "custom",
"value": {
"protocol": "tcp",
"source": {
"port": "1-1024",
"cidr": "192.168.1.0/24",
"vlan": 10,
"host": 254
},
"destination": {
"port": "any",
"cidr": "any"
}
}
}
],
"preferredUplink": "wan1"
}
],
"vpnTrafficUplinkPreferences": [
{
"trafficFilters": [
{
"type": "applicationCategory",
"value": {
"id": "meraki:layer7/category/1",
"protocol": "tcp",
"source": {
"port": "any",
"cidr": "192.168.1.0/24",
"network": "L_23456789",
"vlan": 20,
"host": 200
},
"destination": {
"port": "1-1024",
"cidr": "any",
"network": "L_12345678",
"vlan": 10,
"host": 254,
"fqdn": "www.google.com"
}
}
}
],
"preferredUplink": "bestForVoIP",
"failOverCriterion": "poorPerformance",
"performanceClass": {
"type": "custom",
"builtinPerformanceClassName": "VoIP",
"customPerformanceClassId": "123456"
}
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"activeActiveAutoVpnEnabled": {
"type": "boolean",
"description": "Whether active-active AutoVPN is enabled"
},
"defaultUplink": {
"type": "string",
"enum": [
"wan1",
"wan2"
],
"description": "The default uplink. Must be one of: 'wan1' or 'wan2'"
},
"loadBalancingEnabled": {
"type": "boolean",
"description": "Whether load balancing is enabled"
},
"failoverAndFailback": {
"type": "object",
"properties": {
"immediate": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether immediate WAN failover and failback is enabled"
}
},
"required": [
"enabled"
],
"description": "Immediate WAN failover and failback"
}
},
"description": "WAN failover and failback"
},
"wanTrafficUplinkPreferences": {
"type": "array",
"items": {
"type": "object",
"properties": {
"trafficFilters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"custom"
],
"description": "Traffic filter type. Must be \"custom\""
},
"value": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"enum": [
"any",
"icmp6",
"tcp",
"udp"
],
"description": "Protocol of 'custom' type traffic filter. Must be one of: 'tcp', 'udp', 'icmp6' or 'any'"
},
"source": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "E.g.: \"any\", \"0\" (also means \"any\"), \"8080\", \"1-1024\""
},
"cidr": {
"type": "string",
"description": "CIDR format address (e.g.\"192.168.10.1\", which is the same as \"192.168.10.1/32\"), or \"any\". Cannot be used in combination with the \"vlan\" property"
},
"vlan": {
"type": "integer",
"description": "VLAN ID of the configured VLAN in the Meraki network. Cannot be used in combination with the \"cidr\" property and is currently only available under a template network."
},
"host": {
"type": "integer",
"description": "Host ID in the VLAN. Should not exceed the VLAN subnet capacity. Must be used along with the \"vlan\" property and is currently only available under a template network."
}
},
"description": "Source of 'custom' type traffic filter"
},
"destination": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "E.g.: \"any\", \"0\" (also means \"any\"), \"8080\", \"1-1024\""
},
"cidr": {
"type": "string",
"description": "CIDR format address (e.g.\"192.168.10.1\", which is the same as \"192.168.10.1/32\"), or \"any\""
},
"applications": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id of the major application, or a list of NBAR Application Category or Application selections"
},
"name": {
"type": "string",
"description": "Name of the major application or application category selected"
},
"type": {
"type": "string",
"description": "app type (major or nbar)"
}
}
},
"description": "list of application objects (either majorApplication or nbar)"
}
},
"description": "Destination of 'custom' type traffic filter"
}
},
"required": [
"source",
"destination"
],
"description": "Value of traffic filter"
}
},
"required": [
"type",
"value"
]
},
"description": "Traffic filters"
},
"preferredUplink": {
"type": "string",
"enum": [
"wan1",
"wan2"
],
"description": "Preferred uplink for uplink preference rule. Must be one of: 'wan1' or 'wan2'"
}
},
"required": [
"trafficFilters",
"preferredUplink"
]
},
"description": "Uplink preference rules for WAN traffic"
},
"vpnTrafficUplinkPreferences": {
"type": "array",
"items": {
"type": "object",
"properties": {
"trafficFilters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"custom"
],
"description": "Traffic filter type. Must be one of: 'applicationCategory', 'application' or 'custom'"
},
"value": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of 'applicationCategory' or 'application' type traffic filter"
},
"protocol": {
"type": "string",
"enum": [
"any",
"icmp",
"icmp6",
"tcp",
"udp"
],
"description": "Protocol of 'custom' type traffic filter. Must be one of: 'tcp', 'udp', 'icmp', 'icmp6' or 'any'"
},
"source": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "E.g.: \"any\", \"0\" (also means \"any\"), \"8080\", \"1-1024\""
},
"cidr": {
"type": "string",
"description": "CIDR format address (e.g.\"192.168.10.1\", which is the same as \"192.168.10.1/32\"), or \"any\". Cannot be used in combination with the \"vlan\" property"
},
"network": {
"type": "string",
"description": "Meraki network ID. Currently only available under a template network, and the value should be ID of either same template network, or another template network currently. E.g.: \"L_12345678\"."
},
"vlan": {
"type": "integer",
"description": "VLAN ID of the configured VLAN in the Meraki network. Cannot be used in combination with the \"cidr\" property and is currently only available under a template network."
},
"host": {
"type": "integer",
"description": "Host ID in the VLAN. Should not exceed the VLAN subnet capacity. Must be used along with the \"vlan\" property and is currently only available under a template network."
}
},
"description": "Source of 'custom' type traffic filter"
},
"destination": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "E.g.: \"any\", \"0\" (also means \"any\"), \"8080\", \"1-1024\""
},
"cidr": {
"type": "string",
"description": "CIDR format address (e.g.\"192.168.10.1\", which is the same as \"192.168.10.1/32\"), or \"any\". Cannot be used in combination with the \"vlan\" or \"fqdn\" property"
},
"network": {
"type": "string",
"description": "Meraki network ID. Currently only available under a template network, and the value should be ID of either same template network, or another template network currently. E.g.: \"L_12345678\"."
},
"vlan": {
"type": "integer",
"description": "VLAN ID of the configured VLAN in the Meraki network. Cannot be used in combination with the \"cidr\" or \"fqdn\" property and is currently only available under a template network."
},
"host": {
"type": "integer",
"description": "Host ID in the VLAN. Should not exceed the VLAN subnet capacity. Must be used along with the \"vlan\" property and is currently only available under a template network."
},
"fqdn": {
"type": "string",
"description": "FQDN format address. Cannot be used in combination with the \"cidr\" or \"fqdn\" property and is currently only available in the \"destination\" object of the \"vpnTrafficUplinkPreference\" object. E.g.: \"www.google.com\""
}
},
"description": "Destination of 'custom' type traffic filter"
}
},
"description": "Value of traffic filter"
}
},
"required": [
"type",
"value"
]
},
"description": "Traffic filters"
},
"preferredUplink": {
"type": "string",
"enum": [
"bestForVoIP",
"defaultUplink",
"loadBalancing",
"wan1",
"wan2"
],
"description": "Preferred uplink for uplink preference rule. Must be one of: 'wan1', 'wan2', 'bestForVoIP', 'loadBalancing' or 'defaultUplink'"
},
"failOverCriterion": {
"type": "string",
"enum": [
"poorPerformance",
"uplinkDown"
],
"description": "Fail over criterion for uplink preference rule. Must be one of: 'poorPerformance' or 'uplinkDown'"
},
"performanceClass": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"builtin",
"custom"
],
"description": "Type of this performance class. Must be one of: 'builtin' or 'custom'"
},
"builtinPerformanceClassName": {
"type": "string",
"enum": [
"VoIP"
],
"description": "Name of builtin performance class. Must be present when performanceClass type is 'builtin' and value must be one of: 'VoIP'"
},
"customPerformanceClassId": {
"type": "string",
"description": "ID of created custom performance class, must be present when performanceClass type is \"custom\""
}
},
"required": [
"type"
],
"description": "Performance class setting for uplink preference rule"
}
},
"required": [
"trafficFilters",
"preferredUplink"
]
},
"description": "Uplink preference rules for VPN traffic"
}
}
},
"examples": {
"application/json": {
"activeActiveAutoVpnEnabled": true,
"defaultUplink": "wan1",
"loadBalancingEnabled": true,
"failoverAndFailback": {
"immediate": {
"enabled": true
}
},
"wanTrafficUplinkPreferences": [
{
"trafficFilters": [
{
"type": "custom",
"value": {
"protocol": "tcp",
"source": {
"port": "1-1024",
"cidr": "192.168.1.0/24",
"vlan": 10,
"host": 254
},
"destination": {
"port": "any",
"cidr": "any",
"applications": [
{
"id": "meraki:layer7/application/3",
"name": "DNS",
"type": "major"
}
]
}
}
}
],
"preferredUplink": "wan1"
}
],
"vpnTrafficUplinkPreferences": [
{
"trafficFilters": [
{
"type": "applicationCategory",
"value": {
"id": "meraki:layer7/category/1",
"protocol": "tcp",
"source": {
"port": "any",
"cidr": "192.168.1.0/24",
"network": "L_23456789",
"vlan": 20,
"host": 200
},
"destination": {
"port": "1-1024",
"cidr": "any",
"network": "L_12345678",
"vlan": 10,
"host": 254,
"fqdn": "www.google.com"
}
}
}
],
"preferredUplink": "bestForVoIP",
"failOverCriterion": "poorPerformance",
"performanceClass": {
"type": "custom",
"builtinPerformanceClassName": "VoIP",
"customPerformanceClassId": "123456"
}
}
]
}
}
}
},
"summary": "Update uplink selection settings for an MX network",
"tags": [
"appliance",
"configure",
"trafficShaping",
"uplinkSelection"
]
}
},
"/networks/{networkId}/appliance/trafficShaping/vpnExclusions": {
"put": {
"description": "Update VPN exclusion rules for an MX network.",
"operationId": "updateNetworkApplianceTrafficShapingVpnExclusions",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceTrafficShapingVpnExclusions",
"in": "body",
"schema": {
"type": "object",
"properties": {
"custom": {
"type": "array",
"items": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"enum": [
"any",
"dns",
"icmp",
"tcp",
"udp"
],
"description": "Protocol."
},
"destination": {
"type": "string",
"description": "Destination address; hostname required for DNS, IPv4 otherwise."
},
"port": {
"type": "string",
"description": "Destination port."
}
},
"required": [
"protocol"
]
},
"description": "Custom VPN exclusion rules. Pass an empty array to clear existing rules."
},
"majorApplications": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Application's Meraki ID."
},
"name": {
"type": "string",
"enum": [
"AWS",
"Box",
"Office 365 Sharepoint",
"Office 365 Suite",
"Oracle",
"SAP",
"Salesforce",
"Skype & Teams",
"Slack",
"Webex",
"Webex Calling",
"Webex Meetings",
"Zoom"
],
"description": "Application's name."
}
},
"required": [
"id"
]
},
"description": "Major Application based VPN exclusion rules. Pass an empty array to clear existing rules."
}
},
"example": {
"custom": [
{
"protocol": "tcp",
"destination": "192.168.3.0/24",
"port": "8000"
}
],
"majorApplications": [
{
"id": "meraki:vpnExclusion/application/2",
"name": "Office 365 Sharepoint"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "ID of the network whose VPN exclusion rules are returned."
},
"networkName": {
"type": "string",
"description": "Name of the network whose VPN exclusion rules are returned."
},
"custom": {
"type": "array",
"items": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"enum": [
"any",
"dns",
"icmp",
"tcp",
"udp"
],
"description": "Protocol."
},
"destination": {
"type": "string",
"description": "Destination address; hostname required for DNS, IPv4 otherwise."
},
"port": {
"type": "string",
"description": "Destination port."
}
},
"required": [
"protocol",
"destination",
"port"
]
},
"description": "Custom VPN exclusion rules."
},
"majorApplications": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Application's Meraki ID."
},
"name": {
"type": "string",
"enum": [
"AWS",
"Box",
"Office 365 Sharepoint",
"Office 365 Suite",
"Oracle",
"SAP",
"Salesforce",
"Skype & Teams",
"Slack",
"Webex",
"Webex Calling",
"Webex Meetings",
"Zoom"
],
"description": "Application's name."
}
},
"required": [
"id",
"name"
]
},
"description": "Major Application based VPN exclusion rules."
}
},
"required": [
"networkId",
"networkName",
"custom",
"majorApplications"
]
},
"examples": {
"application/json": {
"networkId": "N_24329156",
"networkName": "Main Office",
"custom": [
{
"protocol": "tcp",
"destination": "192.168.3.0/24",
"port": "8000"
}
],
"majorApplications": [
{
"id": "meraki:vpnExclusion/application/2",
"name": "Office 365 Sharepoint"
}
]
}
}
}
},
"summary": "Update VPN exclusion rules for an MX network.",
"tags": [
"appliance",
"configure",
"trafficShaping",
"vpnExclusions"
]
}
},
"/networks/{networkId}/appliance/uplinks/usageHistory": {
"get": {
"description": "Get the sent and received bytes for each uplink of a network.",
"operationId": "getNetworkApplianceUplinksUsageHistory",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 365 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"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 10 minutes."
},
{
"type": "integer",
"name": "resolution",
"in": "query",
"description": "The time resolution in seconds for returned data. The valid resolutions are: 60, 300, 600, 1800, 3600, 86400. The default is 60."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"startTime": "2021-07-22T02:00:00Z",
"endTime": "2021-07-22T03:00:00Z",
"byInterface": [
{
"interface": "wan1",
"sent": 1562063,
"received": 9528787
},
{
"interface": "wan2",
"sent": 396646,
"received": 2747782
}
]
},
{
"startTime": "2021-07-22T03:00:00Z",
"endTime": "2021-07-22T04:00:00Z",
"byInterface": [
{
"interface": "wan1",
"sent": 6326222,
"received": 12253346
},
{
"interface": "wan2",
"sent": 402850,
"received": 2981021
}
]
}
]
}
}
},
"summary": "Get the sent and received bytes for each uplink of a network.",
"tags": [
"appliance",
"monitor",
"uplinks",
"usageHistory"
]
}
},
"/networks/{networkId}/appliance/vlans": {
"get": {
"description": "List the VLANs for an MX network",
"operationId": "getNetworkApplianceVlans",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The VLAN ID of the VLAN"
},
"interfaceId": {
"type": "string",
"description": "The interface ID of the VLAN"
},
"name": {
"type": "string",
"description": "The name of the VLAN"
},
"subnet": {
"type": "string",
"description": "The subnet of the VLAN"
},
"applianceIp": {
"type": "string",
"description": "The local IP of the appliance on the VLAN"
},
"groupPolicyId": {
"type": "string",
"description": "The id of the desired group policy to apply to the VLAN"
},
"templateVlanType": {
"type": "string",
"enum": [
"same",
"unique"
],
"description": "Type of subnetting of the VLAN. Applicable only for template network.",
"default": "same"
},
"cidr": {
"type": "string",
"description": "CIDR of the pool of subnets. Applicable only for template network. Each network bound to the template will automatically pick a subnet from this pool to build its own VLAN."
},
"mask": {
"type": "integer",
"description": "Mask used for the subnet of all bound to the template networks. Applicable only for template network."
},
"dhcpRelayServerIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "The IPs of the DHCP servers that DHCP requests should be relayed to"
},
"dhcpHandling": {
"type": "string",
"enum": [
"Do not respond to DHCP requests",
"Relay DHCP to another server",
"Run a DHCP server"
],
"description": "The appliance's handling of DHCP requests on this VLAN. One of: 'Run a DHCP server', 'Relay DHCP to another server' or 'Do not respond to DHCP requests'"
},
"dhcpLeaseTime": {
"type": "string",
"enum": [
"1 day",
"1 hour",
"1 week",
"12 hours",
"30 minutes",
"4 hours"
],
"description": "The term of DHCP leases if the appliance is running a DHCP server on this VLAN. One of: '30 minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1 week'"
},
"dhcpBootOptionsEnabled": {
"type": "boolean",
"description": "Use DHCP boot options specified in other properties"
},
"dhcpBootNextServer": {
"type": "string",
"description": "DHCP boot option to direct boot clients to the server to load the boot file from"
},
"dhcpBootFilename": {
"type": "string",
"description": "DHCP boot option for boot filename"
},
"fixedIpAssignments": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "IP address of the assignment"
},
"name": {
"type": "string",
"description": "Name of the IP assignment"
}
},
"description": "IP assignment information, keyed by MAC address of the device"
},
"description": "The DHCP fixed IP assignments on the VLAN. This should be an object that contains mappings from MAC addresses to objects that themselves each contain \"ip\" and \"name\" string fields. See the sample request/response for more details."
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "The first IP in the reserved range"
},
"end": {
"type": "string",
"description": "The last IP in the reserved range"
},
"comment": {
"type": "string",
"description": "A text comment for the reserved range"
}
}
},
"description": "The DHCP reserved IP ranges on the VLAN"
},
"dnsNameservers": {
"type": "string",
"description": "The DNS nameservers used for DHCP responses, either \"upstream_dns\", \"google_dns\", \"opendns\", or a newline seperated string of IP addresses or domain names"
},
"dhcpOptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "The code for the DHCP option. This should be an integer between 2 and 254."
},
"type": {
"type": "string",
"enum": [
"hex",
"integer",
"ip",
"text"
],
"description": "The type for the DHCP option. One of: 'text', 'ip', 'hex' or 'integer'"
},
"value": {
"type": "string",
"description": "The value for the DHCP option"
}
},
"required": [
"code",
"type",
"value"
]
},
"description": "The list of DHCP options that will be included in DHCP responses. Each object in the list should have \"code\", \"type\", and \"value\" properties."
},
"vpnNatSubnet": {
"type": "string",
"description": "The translated VPN subnet if VPN and VPN subnet translation are enabled on the VLAN"
},
"mandatoryDhcp": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable Mandatory DHCP on VLAN."
}
},
"description": "Mandatory DHCP will enforce that clients connecting to this VLAN must use the IP address assigned by the DHCP server. Clients who use a static IP address won't be able to associate. Only available on firmware versions 17.0 and above"
},
"ipv6": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable IPv6 on VLAN"
},
"prefixAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"autonomous": {
"type": "boolean",
"description": "Auto assign a /64 prefix from the origin to the VLAN"
},
"staticPrefix": {
"type": "string",
"description": "Manual configuration of a /64 prefix on the VLAN"
},
"staticApplianceIp6": {
"type": "string",
"description": "Manual configuration of the IPv6 Appliance IP"
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"independent",
"internet"
],
"description": "Type of the origin"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Interfaces associated with the prefix"
}
},
"description": "The origin of the prefix"
}
}
},
"description": "Prefix assignments on the VLAN"
}
},
"description": "IPv6 configuration on the VLAN"
}
}
}
},
"examples": {
"application/json": [
{
"id": "1234",
"interfaceId": "1284392014819",
"name": "My VLAN",
"subnet": "192.168.1.0/24",
"applianceIp": "192.168.1.2",
"groupPolicyId": "101",
"templateVlanType": "same",
"cidr": "192.168.1.0/24",
"mask": 28,
"dhcpRelayServerIps": [
"192.168.1.0/24",
"192.168.128.0/24"
],
"dhcpHandling": "Run a DHCP server",
"dhcpLeaseTime": "1 day",
"dhcpBootOptionsEnabled": false,
"dhcpBootNextServer": "1.2.3.4",
"dhcpBootFilename": "sample.file",
"fixedIpAssignments": {
"00:11:22:33:44:55": {
"ip": "1.2.3.4",
"name": "My favorite IP"
}
},
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
],
"dnsNameservers": "google_dns",
"dhcpOptions": [
{
"code": "5",
"type": "text",
"value": "five"
}
],
"vpnNatSubnet": "192.168.1.0/24",
"mandatoryDhcp": {
"enabled": true
},
"ipv6": {
"enabled": true,
"prefixAssignments": [
{
"autonomous": false,
"staticPrefix": "2001:db8:3c4d:15::/64",
"staticApplianceIp6": "2001:db8:3c4d:15::1",
"origin": {
"type": "internet",
"interfaces": [
"wan0"
]
}
}
]
}
}
]
}
}
},
"summary": "List the VLANs for an MX network",
"tags": [
"appliance",
"configure",
"vlans"
]
},
"post": {
"description": "Add a VLAN",
"operationId": "createNetworkApplianceVlan",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkApplianceVlan",
"in": "body",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The VLAN ID of the new VLAN (must be between 1 and 4094)"
},
"name": {
"type": "string",
"description": "The name of the new VLAN"
},
"subnet": {
"type": "string",
"description": "The subnet of the VLAN"
},
"applianceIp": {
"type": "string",
"description": "The local IP of the appliance on the VLAN"
},
"groupPolicyId": {
"type": "string",
"description": "The id of the desired group policy to apply to the VLAN"
},
"templateVlanType": {
"type": "string",
"enum": [
"same",
"unique"
],
"description": "Type of subnetting of the VLAN. Applicable only for template network.",
"default": "same"
},
"cidr": {
"type": "string",
"description": "CIDR of the pool of subnets. Applicable only for template network. Each network bound to the template will automatically pick a subnet from this pool to build its own VLAN."
},
"mask": {
"type": "integer",
"description": "Mask used for the subnet of all bound to the template networks. Applicable only for template network."
},
"ipv6": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable IPv6 on VLAN."
},
"prefixAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"autonomous": {
"type": "boolean",
"description": "Auto assign a /64 prefix from the origin to the VLAN"
},
"staticPrefix": {
"type": "string",
"description": "Manual configuration of a /64 prefix on the VLAN"
},
"staticApplianceIp6": {
"type": "string",
"description": "Manual configuration of the IPv6 Appliance IP"
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"independent",
"internet"
],
"description": "Type of the origin"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Interfaces associated with the prefix"
}
},
"required": [
"type"
],
"description": "The origin of the prefix"
}
}
},
"description": "Prefix assignments on the VLAN"
}
},
"description": "IPv6 configuration on the VLAN"
},
"mandatoryDhcp": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable Mandatory DHCP on VLAN."
}
},
"description": "Mandatory DHCP will enforce that clients connecting to this VLAN must use the IP address assigned by the DHCP server. Clients who use a static IP address won't be able to associate. Only available on firmware versions 17.0 and above"
},
"adaptivePolicyGroupId": {
"type": "string",
"x-release-stage": "beta",
"description": "Adaptive policy group ID this VLAN is assigned to."
}
},
"example": {
"id": "1234",
"name": "My VLAN",
"subnet": "192.168.1.0/24",
"applianceIp": "192.168.1.2",
"groupPolicyId": "101",
"templateVlanType": "same",
"cidr": "192.168.1.0/24",
"mask": 28,
"ipv6": {
"enabled": true,
"prefixAssignments": [
{
"autonomous": false,
"staticPrefix": "2001:db8:3c4d:15::/64",
"staticApplianceIp6": "2001:db8:3c4d:15::1",
"origin": {
"type": "internet",
"interfaces": [
"wan0"
]
}
}
]
},
"mandatoryDhcp": {
"enabled": true
},
"adaptivePolicyGroupId": "1234"
},
"required": [
"id",
"name"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The VLAN ID of the VLAN"
},
"interfaceId": {
"type": "string",
"description": "The interface ID of the VLAN"
},
"name": {
"type": "string",
"description": "The name of the VLAN"
},
"subnet": {
"type": "string",
"description": "The subnet of the VLAN"
},
"applianceIp": {
"type": "string",
"description": "The local IP of the appliance on the VLAN"
},
"groupPolicyId": {
"type": "string",
"description": "The id of the desired group policy to apply to the VLAN"
},
"templateVlanType": {
"type": "string",
"enum": [
"same",
"unique"
],
"description": "Type of subnetting of the VLAN. Applicable only for template network.",
"default": "same"
},
"cidr": {
"type": "string",
"description": "CIDR of the pool of subnets. Applicable only for template network. Each network bound to the template will automatically pick a subnet from this pool to build its own VLAN."
},
"mask": {
"type": "integer",
"description": "Mask used for the subnet of all bound to the template networks. Applicable only for template network."
},
"mandatoryDhcp": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable Mandatory DHCP on VLAN."
}
},
"description": "Mandatory DHCP will enforce that clients connecting to this VLAN must use the IP address assigned by the DHCP server. Clients who use a static IP address won't be able to associate. Only available on firmware versions 17.0 and above"
},
"ipv6": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable IPv6 on VLAN"
},
"prefixAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"autonomous": {
"type": "boolean",
"description": "Auto assign a /64 prefix from the origin to the VLAN"
},
"staticPrefix": {
"type": "string",
"description": "Manual configuration of a /64 prefix on the VLAN"
},
"staticApplianceIp6": {
"type": "string",
"description": "Manual configuration of the IPv6 Appliance IP"
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"independent",
"internet"
],
"description": "Type of the origin"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Interfaces associated with the prefix"
}
},
"description": "The origin of the prefix"
}
}
},
"description": "Prefix assignments on the VLAN"
}
},
"description": "IPv6 configuration on the VLAN"
}
}
},
"examples": {
"application/json": {
"id": "1234",
"interfaceId": "1284392014819",
"name": "My VLAN",
"subnet": "192.168.1.0/24",
"applianceIp": "192.168.1.2",
"groupPolicyId": "101",
"templateVlanType": "same",
"cidr": "192.168.1.0/24",
"mask": 28,
"mandatoryDhcp": {
"enabled": true
},
"ipv6": {
"enabled": true,
"prefixAssignments": [
{
"autonomous": false,
"staticPrefix": "2001:db8:3c4d:15::/64",
"staticApplianceIp6": "2001:db8:3c4d:15::1",
"origin": {
"type": "internet",
"interfaces": [
"wan0"
]
}
}
]
}
}
}
}
},
"summary": "Add a VLAN",
"tags": [
"appliance",
"configure",
"vlans"
]
}
},
"/networks/{networkId}/appliance/vlans/settings": {
"get": {
"description": "Returns the enabled status of VLANs for the network",
"operationId": "getNetworkApplianceVlansSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"vlansEnabled": {
"type": "boolean",
"description": "Boolean indicating whether VLANs are enabled (true) or disabled (false) for the network"
}
}
},
"examples": {
"application/json": {
"vlansEnabled": true
}
}
}
},
"summary": "Returns the enabled status of VLANs for the network",
"tags": [
"appliance",
"configure",
"vlans",
"settings"
]
},
"put": {
"description": "Enable/Disable VLANs for the given network",
"operationId": "updateNetworkApplianceVlansSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceVlansSettings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"vlansEnabled": {
"type": "boolean",
"description": "Boolean indicating whether to enable (true) or disable (false) VLANs for the network"
}
},
"example": {
"vlansEnabled": true
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"vlansEnabled": {
"type": "boolean",
"description": "Boolean indicating whether VLANs are enabled (true) or disabled (false) for the network"
}
}
},
"examples": {
"application/json": {
"vlansEnabled": true
}
}
}
},
"summary": "Enable/Disable VLANs for the given network",
"tags": [
"appliance",
"configure",
"vlans",
"settings"
]
}
},
"/networks/{networkId}/appliance/vlans/{vlanId}": {
"get": {
"description": "Return a VLAN",
"operationId": "getNetworkApplianceVlan",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "vlanId",
"in": "path",
"description": "Vlan ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The VLAN ID of the VLAN"
},
"interfaceId": {
"type": "string",
"description": "The interface ID of the VLAN"
},
"name": {
"type": "string",
"description": "The name of the VLAN"
},
"subnet": {
"type": "string",
"description": "The subnet of the VLAN"
},
"applianceIp": {
"type": "string",
"description": "The local IP of the appliance on the VLAN"
},
"groupPolicyId": {
"type": "string",
"description": "The id of the desired group policy to apply to the VLAN"
},
"templateVlanType": {
"type": "string",
"enum": [
"same",
"unique"
],
"description": "Type of subnetting of the VLAN. Applicable only for template network.",
"default": "same"
},
"cidr": {
"type": "string",
"description": "CIDR of the pool of subnets. Applicable only for template network. Each network bound to the template will automatically pick a subnet from this pool to build its own VLAN."
},
"mask": {
"type": "integer",
"description": "Mask used for the subnet of all bound to the template networks. Applicable only for template network."
},
"dhcpRelayServerIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "The IPs of the DHCP servers that DHCP requests should be relayed to"
},
"dhcpHandling": {
"type": "string",
"enum": [
"Do not respond to DHCP requests",
"Relay DHCP to another server",
"Run a DHCP server"
],
"description": "The appliance's handling of DHCP requests on this VLAN. One of: 'Run a DHCP server', 'Relay DHCP to another server' or 'Do not respond to DHCP requests'"
},
"dhcpLeaseTime": {
"type": "string",
"enum": [
"1 day",
"1 hour",
"1 week",
"12 hours",
"30 minutes",
"4 hours"
],
"description": "The term of DHCP leases if the appliance is running a DHCP server on this VLAN. One of: '30 minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1 week'"
},
"dhcpBootOptionsEnabled": {
"type": "boolean",
"description": "Use DHCP boot options specified in other properties"
},
"dhcpBootNextServer": {
"type": "string",
"description": "DHCP boot option to direct boot clients to the server to load the boot file from"
},
"dhcpBootFilename": {
"type": "string",
"description": "DHCP boot option for boot filename"
},
"fixedIpAssignments": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "IP address of the assignment"
},
"name": {
"type": "string",
"description": "Name of the IP assignment"
}
},
"description": "IP assignment information, keyed by MAC address of the device"
},
"description": "The DHCP fixed IP assignments on the VLAN. This should be an object that contains mappings from MAC addresses to objects that themselves each contain \"ip\" and \"name\" string fields. See the sample request/response for more details."
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "The first IP in the reserved range"
},
"end": {
"type": "string",
"description": "The last IP in the reserved range"
},
"comment": {
"type": "string",
"description": "A text comment for the reserved range"
}
}
},
"description": "The DHCP reserved IP ranges on the VLAN"
},
"dnsNameservers": {
"type": "string",
"description": "The DNS nameservers used for DHCP responses, either \"upstream_dns\", \"google_dns\", \"opendns\", or a newline seperated string of IP addresses or domain names"
},
"dhcpOptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "The code for the DHCP option. This should be an integer between 2 and 254."
},
"type": {
"type": "string",
"enum": [
"hex",
"integer",
"ip",
"text"
],
"description": "The type for the DHCP option. One of: 'text', 'ip', 'hex' or 'integer'"
},
"value": {
"type": "string",
"description": "The value for the DHCP option"
}
},
"required": [
"code",
"type",
"value"
]
},
"description": "The list of DHCP options that will be included in DHCP responses. Each object in the list should have \"code\", \"type\", and \"value\" properties."
},
"vpnNatSubnet": {
"type": "string",
"description": "The translated VPN subnet if VPN and VPN subnet translation are enabled on the VLAN"
},
"mandatoryDhcp": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable Mandatory DHCP on VLAN."
}
},
"description": "Mandatory DHCP will enforce that clients connecting to this VLAN must use the IP address assigned by the DHCP server. Clients who use a static IP address won't be able to associate. Only available on firmware versions 17.0 and above"
},
"ipv6": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable IPv6 on VLAN"
},
"prefixAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"autonomous": {
"type": "boolean",
"description": "Auto assign a /64 prefix from the origin to the VLAN"
},
"staticPrefix": {
"type": "string",
"description": "Manual configuration of a /64 prefix on the VLAN"
},
"staticApplianceIp6": {
"type": "string",
"description": "Manual configuration of the IPv6 Appliance IP"
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"independent",
"internet"
],
"description": "Type of the origin"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Interfaces associated with the prefix"
}
},
"description": "The origin of the prefix"
}
}
},
"description": "Prefix assignments on the VLAN"
}
},
"description": "IPv6 configuration on the VLAN"
}
}
},
"examples": {
"application/json": {
"id": "1234",
"interfaceId": "1284392014819",
"name": "My VLAN",
"subnet": "192.168.1.0/24",
"applianceIp": "192.168.1.2",
"groupPolicyId": "101",
"templateVlanType": "same",
"cidr": "192.168.1.0/24",
"mask": 28,
"dhcpRelayServerIps": [
"192.168.1.0/24",
"192.168.128.0/24"
],
"dhcpHandling": "Run a DHCP server",
"dhcpLeaseTime": "1 day",
"dhcpBootOptionsEnabled": false,
"dhcpBootNextServer": "1.2.3.4",
"dhcpBootFilename": "sample.file",
"fixedIpAssignments": {
"00:11:22:33:44:55": {
"ip": "1.2.3.4",
"name": "My favorite IP"
}
},
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
],
"dnsNameservers": "google_dns",
"dhcpOptions": [
{
"code": "5",
"type": "text",
"value": "five"
}
],
"vpnNatSubnet": "192.168.1.0/24",
"mandatoryDhcp": {
"enabled": true
},
"ipv6": {
"enabled": true,
"prefixAssignments": [
{
"autonomous": false,
"staticPrefix": "2001:db8:3c4d:15::/64",
"staticApplianceIp6": "2001:db8:3c4d:15::1",
"origin": {
"type": "internet",
"interfaces": [
"wan0"
]
}
}
]
}
}
}
}
},
"summary": "Return a VLAN",
"tags": [
"appliance",
"configure",
"vlans"
]
},
"put": {
"description": "Update a VLAN",
"operationId": "updateNetworkApplianceVlan",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "vlanId",
"in": "path",
"description": "Vlan ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceVlan",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the VLAN"
},
"subnet": {
"type": "string",
"description": "The subnet of the VLAN"
},
"applianceIp": {
"type": "string",
"description": "The local IP of the appliance on the VLAN"
},
"groupPolicyId": {
"type": "string",
"description": "The id of the desired group policy to apply to the VLAN"
},
"vpnNatSubnet": {
"type": "string",
"description": "The translated VPN subnet if VPN and VPN subnet translation are enabled on the VLAN"
},
"dhcpHandling": {
"type": "string",
"enum": [
"Do not respond to DHCP requests",
"Relay DHCP to another server",
"Run a DHCP server"
],
"description": "The appliance's handling of DHCP requests on this VLAN. One of: 'Run a DHCP server', 'Relay DHCP to another server' or 'Do not respond to DHCP requests'"
},
"dhcpRelayServerIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "The IPs of the DHCP servers that DHCP requests should be relayed to"
},
"dhcpLeaseTime": {
"type": "string",
"enum": [
"1 day",
"1 hour",
"1 week",
"12 hours",
"30 minutes",
"4 hours"
],
"description": "The term of DHCP leases if the appliance is running a DHCP server on this VLAN. One of: '30 minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1 week'"
},
"dhcpBootOptionsEnabled": {
"type": "boolean",
"description": "Use DHCP boot options specified in other properties"
},
"dhcpBootNextServer": {
"type": "string",
"description": "DHCP boot option to direct boot clients to the server to load the boot file from"
},
"dhcpBootFilename": {
"type": "string",
"description": "DHCP boot option for boot filename"
},
"fixedIpAssignments": {
"type": "object",
"description": "The DHCP fixed IP assignments on the VLAN. This should be an object that contains mappings from MAC addresses to objects that themselves each contain \"ip\" and \"name\" string fields. See the sample request/response for more details."
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "The first IP in the reserved range"
},
"end": {
"type": "string",
"description": "The last IP in the reserved range"
},
"comment": {
"type": "string",
"description": "A text comment for the reserved range"
}
},
"required": [
"start",
"end",
"comment"
]
},
"description": "The DHCP reserved IP ranges on the VLAN"
},
"dnsNameservers": {
"type": "string",
"description": "The DNS nameservers used for DHCP responses, either \"upstream_dns\", \"google_dns\", \"opendns\", or a newline seperated string of IP addresses or domain names"
},
"dhcpOptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "The code for the DHCP option. This should be an integer between 2 and 254."
},
"type": {
"type": "string",
"enum": [
"hex",
"integer",
"ip",
"text"
],
"description": "The type for the DHCP option. One of: 'text', 'ip', 'hex' or 'integer'"
},
"value": {
"type": "string",
"description": "The value for the DHCP option"
}
},
"required": [
"code",
"type",
"value"
]
},
"description": "The list of DHCP options that will be included in DHCP responses. Each object in the list should have \"code\", \"type\", and \"value\" properties."
},
"templateVlanType": {
"type": "string",
"enum": [
"same",
"unique"
],
"description": "Type of subnetting of the VLAN. Applicable only for template network."
},
"cidr": {
"type": "string",
"description": "CIDR of the pool of subnets. Applicable only for template network. Each network bound to the template will automatically pick a subnet from this pool to build its own VLAN."
},
"mask": {
"type": "integer",
"description": "Mask used for the subnet of all bound to the template networks. Applicable only for template network."
},
"ipv6": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable IPv6 on VLAN."
},
"prefixAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"autonomous": {
"type": "boolean",
"description": "Auto assign a /64 prefix from the origin to the VLAN"
},
"staticPrefix": {
"type": "string",
"description": "Manual configuration of a /64 prefix on the VLAN"
},
"staticApplianceIp6": {
"type": "string",
"description": "Manual configuration of the IPv6 Appliance IP"
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"independent",
"internet"
],
"description": "Type of the origin"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Interfaces associated with the prefix"
}
},
"required": [
"type"
],
"description": "The origin of the prefix"
}
}
},
"description": "Prefix assignments on the VLAN"
}
},
"description": "IPv6 configuration on the VLAN"
},
"mandatoryDhcp": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable Mandatory DHCP on VLAN."
}
},
"description": "Mandatory DHCP will enforce that clients connecting to this VLAN must use the IP address assigned by the DHCP server. Clients who use a static IP address won't be able to associate. Only available on firmware versions 17.0 and above"
},
"adaptivePolicyGroupId": {
"type": "string",
"x-release-stage": "beta",
"description": "Adaptive policy group ID that all traffic originating from this VLAN is assigned to."
}
},
"example": {
"name": "My VLAN",
"applianceIp": "192.168.1.2",
"subnet": "192.168.1.0/24",
"groupPolicyId": "101",
"templateVlanType": "same",
"cidr": "192.168.1.0/24",
"mask": 28,
"fixedIpAssignments": {
"22:33:44:55:66:77": {
"ip": "1.2.3.4",
"name": "Some client name"
}
},
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
],
"dnsNameservers": "google_dns",
"dhcpHandling": "Run a DHCP server",
"dhcpLeaseTime": "1 day",
"dhcpBootOptionsEnabled": false,
"dhcpBootNextServer": "1.2.3.4",
"dhcpBootFilename": "sample.file",
"dhcpOptions": [
{
"code": "5",
"type": "text",
"value": "five"
}
],
"ipv6": {
"enabled": true,
"prefixAssignments": [
{
"autonomous": false,
"staticPrefix": "2001:db8:3c4d:15::/64",
"staticApplianceIp6": "2001:db8:3c4d:15::1",
"origin": {
"type": "internet",
"interfaces": [
"wan0"
]
}
}
]
},
"mandatoryDhcp": {
"enabled": true
},
"adaptivePolicyGroupId": "1234",
"dhcpRelayServerIps": [
"192.168.1.0/24",
"192.168.128.0/24"
],
"vpnNatSubnet": "192.168.1.0/24"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The VLAN ID of the VLAN"
},
"interfaceId": {
"type": "string",
"description": "The interface ID of the VLAN"
},
"name": {
"type": "string",
"description": "The name of the VLAN"
},
"subnet": {
"type": "string",
"description": "The subnet of the VLAN"
},
"applianceIp": {
"type": "string",
"description": "The local IP of the appliance on the VLAN"
},
"groupPolicyId": {
"type": "string",
"description": "The id of the desired group policy to apply to the VLAN"
},
"templateVlanType": {
"type": "string",
"enum": [
"same",
"unique"
],
"description": "Type of subnetting of the VLAN. Applicable only for template network.",
"default": "same"
},
"cidr": {
"type": "string",
"description": "CIDR of the pool of subnets. Applicable only for template network. Each network bound to the template will automatically pick a subnet from this pool to build its own VLAN."
},
"mask": {
"type": "integer",
"description": "Mask used for the subnet of all bound to the template networks. Applicable only for template network."
},
"dhcpRelayServerIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "The IPs of the DHCP servers that DHCP requests should be relayed to"
},
"dhcpHandling": {
"type": "string",
"enum": [
"Do not respond to DHCP requests",
"Relay DHCP to another server",
"Run a DHCP server"
],
"description": "The appliance's handling of DHCP requests on this VLAN. One of: 'Run a DHCP server', 'Relay DHCP to another server' or 'Do not respond to DHCP requests'"
},
"dhcpLeaseTime": {
"type": "string",
"enum": [
"1 day",
"1 hour",
"1 week",
"12 hours",
"30 minutes",
"4 hours"
],
"description": "The term of DHCP leases if the appliance is running a DHCP server on this VLAN. One of: '30 minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1 week'"
},
"dhcpBootOptionsEnabled": {
"type": "boolean",
"description": "Use DHCP boot options specified in other properties"
},
"dhcpBootNextServer": {
"type": "string",
"description": "DHCP boot option to direct boot clients to the server to load the boot file from"
},
"dhcpBootFilename": {
"type": "string",
"description": "DHCP boot option for boot filename"
},
"fixedIpAssignments": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "IP address of the assignment"
},
"name": {
"type": "string",
"description": "Name of the IP assignment"
}
},
"description": "IP assignment information, keyed by MAC address of the device"
},
"description": "The DHCP fixed IP assignments on the VLAN. This should be an object that contains mappings from MAC addresses to objects that themselves each contain \"ip\" and \"name\" string fields. See the sample request/response for more details."
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "The first IP in the reserved range"
},
"end": {
"type": "string",
"description": "The last IP in the reserved range"
},
"comment": {
"type": "string",
"description": "A text comment for the reserved range"
}
}
},
"description": "The DHCP reserved IP ranges on the VLAN"
},
"dnsNameservers": {
"type": "string",
"description": "The DNS nameservers used for DHCP responses, either \"upstream_dns\", \"google_dns\", \"opendns\", or a newline seperated string of IP addresses or domain names"
},
"dhcpOptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "The code for the DHCP option. This should be an integer between 2 and 254."
},
"type": {
"type": "string",
"enum": [
"hex",
"integer",
"ip",
"text"
],
"description": "The type for the DHCP option. One of: 'text', 'ip', 'hex' or 'integer'"
},
"value": {
"type": "string",
"description": "The value for the DHCP option"
}
},
"required": [
"code",
"type",
"value"
]
},
"description": "The list of DHCP options that will be included in DHCP responses. Each object in the list should have \"code\", \"type\", and \"value\" properties."
},
"vpnNatSubnet": {
"type": "string",
"description": "The translated VPN subnet if VPN and VPN subnet translation are enabled on the VLAN"
},
"mandatoryDhcp": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable Mandatory DHCP on VLAN."
}
},
"description": "Mandatory DHCP will enforce that clients connecting to this VLAN must use the IP address assigned by the DHCP server. Clients who use a static IP address won't be able to associate. Only available on firmware versions 17.0 and above"
},
"ipv6": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable IPv6 on VLAN"
},
"prefixAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"autonomous": {
"type": "boolean",
"description": "Auto assign a /64 prefix from the origin to the VLAN"
},
"staticPrefix": {
"type": "string",
"description": "Manual configuration of a /64 prefix on the VLAN"
},
"staticApplianceIp6": {
"type": "string",
"description": "Manual configuration of the IPv6 Appliance IP"
},
"origin": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"independent",
"internet"
],
"description": "Type of the origin"
},
"interfaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "Interfaces associated with the prefix"
}
},
"description": "The origin of the prefix"
}
}
},
"description": "Prefix assignments on the VLAN"
}
},
"description": "IPv6 configuration on the VLAN"
}
}
},
"examples": {
"application/json": {
"id": "1234",
"interfaceId": "1284392014819",
"name": "My VLAN",
"subnet": "192.168.1.0/24",
"applianceIp": "192.168.1.2",
"groupPolicyId": "101",
"templateVlanType": "same",
"cidr": "192.168.1.0/24",
"mask": 28,
"dhcpRelayServerIps": [
"192.168.1.0/24",
"192.168.128.0/24"
],
"dhcpHandling": "Run a DHCP server",
"dhcpLeaseTime": "1 day",
"dhcpBootOptionsEnabled": false,
"dhcpBootNextServer": "1.2.3.4",
"dhcpBootFilename": "sample.file",
"fixedIpAssignments": {
"00:11:22:33:44:55": {
"ip": "1.2.3.4",
"name": "My favorite IP"
}
},
"reservedIpRanges": [
{
"start": "192.168.1.0",
"end": "192.168.1.1",
"comment": "A reserved IP range"
}
],
"dnsNameservers": "google_dns",
"dhcpOptions": [
{
"code": "5",
"type": "text",
"value": "five"
}
],
"vpnNatSubnet": "192.168.1.0/24",
"mandatoryDhcp": {
"enabled": true
},
"ipv6": {
"enabled": true,
"prefixAssignments": [
{
"autonomous": false,
"staticPrefix": "2001:db8:3c4d:15::/64",
"staticApplianceIp6": "2001:db8:3c4d:15::1",
"origin": {
"type": "internet",
"interfaces": [
"wan0"
]
}
}
]
}
}
}
}
},
"summary": "Update a VLAN",
"tags": [
"appliance",
"configure",
"vlans"
]
},
"delete": {
"description": "Delete a VLAN from a network",
"operationId": "deleteNetworkApplianceVlan",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "vlanId",
"in": "path",
"description": "Vlan ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a VLAN from a network",
"tags": [
"appliance",
"configure",
"vlans"
]
}
},
"/networks/{networkId}/appliance/vpn/bgp": {
"get": {
"description": "Return a Hub BGP Configuration",
"operationId": "getNetworkApplianceVpnBgp",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"enabled": true,
"asNumber": 64515,
"ibgpHoldTimer": 120,
"neighbors": [
{
"ip": "10.10.10.22",
"remoteAsNumber": 64343,
"receiveLimit": 120,
"allowTransit": true,
"ebgpHoldTimer": 180,
"ebgpMultihop": 2
}
]
}
}
}
},
"summary": "Return a Hub BGP Configuration",
"tags": [
"appliance",
"configure",
"vpn",
"bgp"
]
},
"put": {
"description": "Update a Hub BGP Configuration",
"operationId": "updateNetworkApplianceVpnBgp",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceVpnBgp",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Boolean value to enable or disable the BGP configuration. When BGP is enabled, the asNumber (ASN) will be autopopulated with the preconfigured ASN at other Hubs or a default value if there is no ASN configured."
},
"asNumber": {
"type": "integer",
"description": "An Autonomous System Number (ASN) is required if you are to run BGP and peer with another BGP Speaker outside of the Auto VPN domain. This ASN will be applied to the entire Auto VPN domain. The entire 4-byte ASN range is supported. So, the ASN must be an integer between 1 and 4294967295. When absent, this field is not updated. If no value exists then it defaults to 64512."
},
"ibgpHoldTimer": {
"type": "integer",
"description": "The iBGP holdtimer in seconds. The iBGP holdtimer must be an integer between 12 and 240. When absent, this field is not updated. If no value exists then it defaults to 240."
},
"neighbors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "The IPv4 address of the neighbor"
},
"ipv6": {
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "The IPv6 address of the neighbor."
}
},
"required": [
"address"
],
"description": "Information regarding IPv6 address of the neighbor, Required if `ip` is not present."
},
"remoteAsNumber": {
"type": "integer",
"description": "Remote ASN of the neighbor. The remote ASN must be an integer between 1 and 4294967295."
},
"receiveLimit": {
"type": "integer",
"description": "The receive limit is the maximum number of routes that can be received from any BGP peer. The receive limit must be an integer between 0 and 4294967295. When absent, it defaults to 0."
},
"allowTransit": {
"type": "boolean",
"description": "When this feature is on, the Meraki device will advertise routes learned from other Autonomous Systems, thereby allowing traffic between Autonomous Systems to transit this AS. When absent, it defaults to false."
},
"ebgpHoldTimer": {
"type": "integer",
"description": "The eBGP hold timer in seconds for each neighbor. The eBGP hold timer must be an integer between 12 and 240."
},
"ebgpMultihop": {
"type": "integer",
"description": "Configure this if the neighbor is not adjacent. The eBGP multi-hop must be an integer between 1 and 255."
},
"sourceInterface": {
"type": "string",
"description": "The output interface for peering with the remote BGP peer. Valid values are: 'wan1', 'wan2' or 'vlan{VLAN ID}'(e.g. 'vlan123')."
},
"nextHopIp": {
"type": "string",
"description": "The IPv4 address of the remote BGP peer that will establish a TCP session with the local MX."
},
"ttlSecurity": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Boolean value to enable or disable BGP TTL security."
}
},
"description": "Settings for BGP TTL security to protect BGP peering sessions from forged IP attacks."
},
"authentication": {
"type": "object",
"properties": {
"password": {
"type": "string",
"description": "Password to configure MD5 authentication between BGP peers."
}
},
"description": "Authentication settings between BGP peers."
}
},
"required": [
"remoteAsNumber",
"ebgpHoldTimer",
"ebgpMultihop"
]
},
"description": "List of BGP neighbors. This list replaces the existing set of neighbors. When absent, this field is not updated."
}
},
"example": {
"enabled": true,
"asNumber": 64515,
"ibgpHoldTimer": 120,
"neighbors": [
{
"ip": "10.10.10.22",
"remoteAsNumber": 64343,
"receiveLimit": 120,
"allowTransit": true,
"ebgpHoldTimer": 180,
"ebgpMultihop": 2
}
]
},
"required": [
"enabled"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"enabled": true,
"asNumber": 64515,
"ibgpHoldTimer": 120,
"neighbors": [
{
"ip": "10.10.10.22",
"remoteAsNumber": 64343,
"receiveLimit": 120,
"allowTransit": true,
"ebgpHoldTimer": 180,
"ebgpMultihop": 2
}
]
}
}
}
},
"summary": "Update a Hub BGP Configuration",
"tags": [
"appliance",
"configure",
"vpn",
"bgp"
]
}
},
"/networks/{networkId}/appliance/vpn/siteToSiteVpn": {
"get": {
"description": "Return the site-to-site VPN settings of a network. Only valid for MX networks.",
"operationId": "getNetworkApplianceVpnSiteToSiteVpn",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"description": "The site-to-site VPN mode."
},
"hubs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"hubId": {
"type": "string",
"description": "The network ID of the hub."
},
"useDefaultRoute": {
"type": "boolean",
"description": "Indicates whether default route traffic should be sent to this hub."
}
}
},
"description": "The list of VPN hubs, in order of preference."
},
"subnets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"localSubnet": {
"type": "string",
"description": "The CIDR notation subnet used within the VPN"
},
"useVpn": {
"type": "boolean",
"description": "Indicates the presence of the subnet in the VPN"
}
}
},
"description": "The list of subnets and their VPN presence."
}
}
},
"examples": {
"application/json": {
"mode": "spoke",
"hubs": [
{
"hubId": "N_4901849",
"useDefaultRoute": true
}
],
"subnets": [
{
"localSubnet": "192.168.1.0/24",
"useVpn": true
}
]
}
}
}
},
"summary": "Return the site-to-site VPN settings of a network",
"tags": [
"appliance",
"configure",
"vpn",
"siteToSiteVpn"
]
},
"put": {
"description": "Update the site-to-site VPN settings of a network. Only valid for MX networks in NAT mode.",
"operationId": "updateNetworkApplianceVpnSiteToSiteVpn",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceVpnSiteToSiteVpn",
"in": "body",
"schema": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"hub",
"none",
"spoke"
],
"description": "The site-to-site VPN mode. Can be one of 'none', 'spoke' or 'hub'"
},
"hubs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"hubId": {
"type": "string",
"description": "The network ID of the hub."
},
"useDefaultRoute": {
"type": "boolean",
"description": "Only valid in 'spoke' mode. Indicates whether default route traffic should be sent to this hub."
}
},
"required": [
"hubId"
]
},
"description": "The list of VPN hubs, in order of preference. In spoke mode, at least 1 hub is required."
},
"subnets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"localSubnet": {
"type": "string",
"description": "The CIDR notation subnet used within the VPN"
},
"useVpn": {
"type": "boolean",
"description": "Indicates the presence of the subnet in the VPN"
}
},
"required": [
"localSubnet"
]
},
"description": "The list of subnets and their VPN presence."
}
},
"example": {
"mode": "spoke",
"hubs": [
{
"hubId": "N_4901849",
"useDefaultRoute": true
}
],
"subnets": [
{
"localSubnet": "192.168.1.0/24",
"useVpn": true
}
]
},
"required": [
"mode"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"description": "The site-to-site VPN mode."
},
"hubs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"hubId": {
"type": "string",
"description": "The network ID of the hub."
},
"useDefaultRoute": {
"type": "boolean",
"description": "Indicates whether default route traffic should be sent to this hub."
}
}
},
"description": "The list of VPN hubs, in order of preference."
},
"subnets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"localSubnet": {
"type": "string",
"description": "The CIDR notation subnet used within the VPN"
},
"useVpn": {
"type": "boolean",
"description": "Indicates the presence of the subnet in the VPN"
}
}
},
"description": "The list of subnets and their VPN presence."
}
}
},
"examples": {
"application/json": {
"mode": "spoke",
"hubs": [
{
"hubId": "N_4901849",
"useDefaultRoute": true
}
],
"subnets": [
{
"localSubnet": "192.168.1.0/24",
"useVpn": true
}
]
}
}
}
},
"summary": "Update the site-to-site VPN settings of a network",
"tags": [
"appliance",
"configure",
"vpn",
"siteToSiteVpn"
]
}
},
"/networks/{networkId}/appliance/warmSpare": {
"get": {
"description": "Return MX warm spare settings",
"operationId": "getNetworkApplianceWarmSpare",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Is the warm spare enabled"
},
"primarySerial": {
"type": "string",
"description": "Serial number of the primary appliance"
},
"spareSerial": {
"type": "string",
"description": "Serial number of the warm spare appliance"
},
"uplinkMode": {
"type": "string",
"description": "Uplink mode, either virtual or public"
},
"wan1": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "IP address used for WAN 1"
},
"subnet": {
"type": "string",
"description": "Subnet used for WAN 1"
}
},
"description": "WAN 1 IP and subnet"
},
"wan2": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "IP address used for WAN 2"
},
"subnet": {
"type": "string",
"description": "Subnet used for WAN 2"
}
},
"description": "WAN 2 IP and subnet"
}
}
},
"examples": {
"application/json": {
"enabled": true,
"primarySerial": "Q234-ABCD-5678",
"spareSerial": "Q234-ABCD-5678",
"uplinkMode": "virtual",
"wan1": {
"ip": "1.2.3.4",
"subnet": "192.168.1.0/24"
},
"wan2": {
"ip": "1.2.3.4",
"subnet": "192.168.1.0/24"
}
}
}
}
},
"summary": "Return MX warm spare settings",
"tags": [
"appliance",
"configure",
"warmSpare"
]
},
"put": {
"description": "Update MX warm spare settings",
"operationId": "updateNetworkApplianceWarmSpare",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkApplianceWarmSpare",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable warm spare"
},
"spareSerial": {
"type": "string",
"description": "Serial number of the warm spare appliance"
},
"uplinkMode": {
"type": "string",
"description": "Uplink mode, either virtual or public"
},
"virtualIp1": {
"type": "string",
"description": "The WAN 1 shared IP"
},
"virtualIp2": {
"type": "string",
"description": "The WAN 2 shared IP"
}
},
"example": {
"enabled": true,
"spareSerial": "Q234-ABCD-5678",
"uplinkMode": "virtual",
"virtualIp1": "1.2.3.4",
"virtualIp2": "1.2.3.4"
},
"required": [
"enabled"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Is the warm spare enabled"
},
"primarySerial": {
"type": "string",
"description": "Serial number of the primary appliance"
},
"spareSerial": {
"type": "string",
"description": "Serial number of the warm spare appliance"
},
"uplinkMode": {
"type": "string",
"description": "Uplink mode, either virtual or public"
},
"wan1": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "IP address used for WAN 1"
},
"subnet": {
"type": "string",
"description": "Subnet used for WAN 1"
}
},
"description": "WAN 1 IP and subnet"
},
"wan2": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "IP address used for WAN 2"
},
"subnet": {
"type": "string",
"description": "Subnet used for WAN 2"
}
},
"description": "WAN 2 IP and subnet"
}
}
},
"examples": {
"application/json": {
"enabled": true,
"primarySerial": "Q234-ABCD-5678",
"spareSerial": "Q234-ABCD-5678",
"uplinkMode": "virtual",
"wan1": {
"ip": "1.2.3.4",
"subnet": "192.168.1.0/24"
},
"wan2": {
"ip": "1.2.3.4",
"subnet": "192.168.1.0/24"
}
}
}
}
},
"summary": "Update MX warm spare settings",
"tags": [
"appliance",
"configure",
"warmSpare"
]
}
},
"/networks/{networkId}/appliance/warmSpare/swap": {
"post": {
"description": "Swap MX primary and warm spare appliances",
"operationId": "swapNetworkApplianceWarmSpare",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Is the warm spare enabled"
},
"primarySerial": {
"type": "string",
"description": "Serial number of the primary appliance"
},
"spareSerial": {
"type": "string",
"description": "Serial number of the warm spare appliance"
},
"uplinkMode": {
"type": "string",
"description": "Uplink mode, either virtual or public"
},
"wan1": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "IP address used for WAN 1"
},
"subnet": {
"type": "string",
"description": "Subnet used for WAN 1"
}
},
"description": "WAN 1 IP and subnet"
},
"wan2": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "IP address used for WAN 2"
},
"subnet": {
"type": "string",
"description": "Subnet used for WAN 2"
}
},
"description": "WAN 2 IP and subnet"
}
}
},
"examples": {
"application/json": {
"enabled": true,
"primarySerial": "Q234-ABCD-5678",
"spareSerial": "Q234-ABCD-5678",
"uplinkMode": "virtual",
"wan1": {
"ip": "1.2.3.4",
"subnet": "192.168.1.0/24"
},
"wan2": {
"ip": "1.2.3.4",
"subnet": "192.168.1.0/24"
}
}
}
}
},
"summary": "Swap MX primary and warm spare appliances",
"tags": [
"appliance",
"configure",
"warmSpare"
]
}
},
"/networks/{networkId}/bind": {
"post": {
"description": "Bind a network to a template.",
"operationId": "bindNetwork",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "bindNetwork",
"in": "body",
"schema": {
"type": "object",
"properties": {
"configTemplateId": {
"type": "string",
"description": "The ID of the template to which the network should be bound."
},
"autoBind": {
"type": "boolean",
"description": "Optional boolean indicating whether the network's switches should automatically bind to profiles of the same model. Defaults to false if left unspecified. This option only affects switch networks and switch templates. Auto-bind is not valid unless the switch template has at least one profile and has at most one profile per switch model."
}
},
"example": {
"configTemplateId": "N_23952905",
"autoBind": false
},
"required": [
"configTemplateId"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network ID"
},
"organizationId": {
"type": "string",
"description": "Organization ID"
},
"name": {
"type": "string",
"description": "Network name"
},
"productTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of the product types that the network supports"
},
"timeZone": {
"type": "string",
"description": "Timezone of the network"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Network tags"
},
"enrollmentString": {
"type": "string",
"description": "Enrollment string for the network"
},
"url": {
"type": "string",
"description": "URL to the network Dashboard UI"
},
"notes": {
"type": "string",
"description": "Notes for the network"
},
"isBoundToConfigTemplate": {
"type": "boolean",
"description": "If the network is bound to a config template"
},
"configTemplateId": {
"type": "string",
"description": "ID of the config template the network is being bound to"
}
}
},
"examples": {
"application/json": {
"id": "N_24329156",
"organizationId": "2930418",
"name": "Main Office",
"productTypes": [
"appliance",
"switch",
"wireless"
],
"timeZone": "America/Los_Angeles",
"tags": [
"tag1",
"tag2"
],
"enrollmentString": "my-enrollment-string",
"url": "https://n1.meraki.com//n//manage/nodes/list",
"notes": "Additional description of the network",
"isBoundToConfigTemplate": false,
"configTemplateId": "N_24329156"
}
}
}
},
"summary": "Bind a network to a template.",
"tags": [
"networks",
"configure"
]
}
},
"/networks/{networkId}/bluetoothClients": {
"get": {
"description": "List the Bluetooth clients seen by APs in this network",
"operationId": "getNetworkBluetoothClients",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 7 days from today."
},
{
"type": "number",
"format": "float",
"maximum": 604800,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameter t0. The value must be in seconds and be less than or equal to 7 days. The default is 1 day."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 5 - 1000. Default is 10."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "boolean",
"name": "includeConnectivityHistory",
"in": "query",
"description": "Include the connectivity history for this client"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"id": "1284392014819",
"mac": "22:33:44:55:66:77",
"networkId": "N_24329156",
"name": "Miles's phone",
"deviceName": "Bose QuietComfort 35",
"manufacturer": "Bose",
"lastSeen": 1526087474,
"seenByDeviceMac": "00:11:22:33:44:55",
"inSightAlert": false,
"outOfSightAlert": false,
"tags": [
"tag1",
"tag2"
]
}
]
}
}
},
"summary": "List the Bluetooth clients seen by APs in this network",
"tags": [
"networks",
"monitor",
"bluetoothClients"
]
}
},
"/networks/{networkId}/bluetoothClients/{bluetoothClientId}": {
"get": {
"description": "Return a Bluetooth client. Bluetooth clients can be identified by their ID or their MAC.",
"operationId": "getNetworkBluetoothClient",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "bluetoothClientId",
"in": "path",
"description": "Bluetooth client ID",
"type": "string",
"required": true
},
{
"type": "boolean",
"name": "includeConnectivityHistory",
"in": "query",
"description": "Include the connectivity history for this client"
},
{
"type": "integer",
"name": "connectivityHistoryTimespan",
"in": "query",
"description": "The timespan, in seconds, for the connectivityHistory data. By default 1 day, 86400, will be used."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"id": "1284392014819",
"mac": "22:33:44:55:66:77",
"networkId": "N_24329156",
"name": "Miles's phone",
"deviceName": "Bose QuietComfort 35",
"manufacturer": "Bose",
"lastSeen": 1526087474,
"seenByDeviceMac": "00:11:22:33:44:55",
"inSightAlert": false,
"outOfSightAlert": false,
"tags": [
"tag1",
"tag2"
]
}
}
}
},
"summary": "Return a Bluetooth client",
"tags": [
"networks",
"monitor",
"bluetoothClients"
]
}
},
"/networks/{networkId}/camera/qualityRetentionProfiles": {
"get": {
"description": "List the quality retention profiles for this network",
"operationId": "getNetworkCameraQualityRetentionProfiles",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"id": "1234",
"networkId": "N_24329156",
"name": "Sample quality retention profile",
"restrictedBandwidthModeEnabled": true,
"motionBasedRetentionEnabled": false,
"audioRecordingEnabled": false,
"cloudArchiveEnabled": false,
"maxRetentionDays": 7,
"scheduleId": null,
"motionDetectorVersion": 2,
"videoSettings": {
"MV32": {
"quality": "Enhanced",
"resolution": "1080x1080"
},
"MV21/MV71": {
"quality": "High",
"resolution": "1280x720"
},
"MV12/MV22/MV72": {
"quality": "High",
"resolution": "1920x1080"
},
"MV12WE": {
"quality": "High",
"resolution": "1920x1080"
}
}
}
]
}
}
},
"summary": "List the quality retention profiles for this network",
"tags": [
"camera",
"configure",
"qualityRetentionProfiles"
]
},
"post": {
"description": "Creates new quality retention profile for this network.",
"operationId": "createNetworkCameraQualityRetentionProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkCameraQualityRetentionProfile",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the new profile. Must be unique. This parameter is required."
},
"motionBasedRetentionEnabled": {
"type": "boolean",
"description": "Deletes footage older than 3 days in which no motion was detected. Can be either true or false. Defaults to false. This setting does not apply to MV2 cameras."
},
"restrictedBandwidthModeEnabled": {
"type": "boolean",
"description": "Disable features that require additional bandwidth such as Motion Recap. Can be either true or false. Defaults to false. This setting does not apply to MV2 cameras."
},
"audioRecordingEnabled": {
"type": "boolean",
"description": "Whether or not to record audio. Can be either true or false. Defaults to false."
},
"cloudArchiveEnabled": {
"type": "boolean",
"description": "Create redundant video backup using Cloud Archive. Can be either true or false. Defaults to false."
},
"motionDetectorVersion": {
"type": "integer",
"description": "The version of the motion detector that will be used by the camera. Only applies to Gen 2 cameras. Defaults to v2."
},
"scheduleId": {
"type": "string",
"description": "Schedule for which this camera will record video, or 'null' to always record."
},
"maxRetentionDays": {
"type": "integer",
"description": "The maximum number of days for which the data will be stored, or 'null' to keep data until storage space runs out. If the former, it can be one of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14, 30, 60, 90] days."
},
"videoSettings": {
"type": "object",
"properties": {
"MV21/MV71": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1280x720"
],
"description": "Resolution of the camera. Can be one of '1280x720'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV21/MV71 camera models."
},
"MV12/MV22/MV72": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1280x720",
"1920x1080"
],
"description": "Resolution of the camera. Can be one of '1280x720' or '1920x1080'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV12/MV22/MV72 camera models."
},
"MV32": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1080x1080",
"2112x2112"
],
"description": "Resolution of the camera. Can be one of '1080x1080' or '2112x2112'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV32 camera models."
},
"MV33": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1080x1080",
"2112x2112",
"2880x2880"
],
"description": "Resolution of the camera. Can be one of '1080x1080', '2112x2112' or '2880x2880'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV33 camera models."
},
"MV12WE": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1280x720",
"1920x1080"
],
"description": "Resolution of the camera. Can be one of '1280x720' or '1920x1080'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV12WE camera models."
},
"MV13": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1920x1080",
"2688x1512",
"3840x2160"
],
"description": "Resolution of the camera. Can be one of '1920x1080', '2688x1512' or '3840x2160'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV13 camera models."
},
"MV22X/MV72X": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1280x720",
"1920x1080",
"2688x1512"
],
"description": "Resolution of the camera. Can be one of '1280x720', '1920x1080' or '2688x1512'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV22X/MV72X camera models."
},
"MV52": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1280x720",
"1920x1080",
"2688x1512",
"3840x2160"
],
"description": "Resolution of the camera. Can be one of '1280x720', '1920x1080', '2688x1512' or '3840x2160'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV52 camera models."
},
"MV63": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1920x1080",
"2688x1512"
],
"description": "Resolution of the camera. Can be one of '1920x1080' or '2688x1512'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV63 camera models."
},
"MV93": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1080x1080",
"2112x2112"
],
"description": "Resolution of the camera. Can be one of '1080x1080' or '2112x2112'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV93 camera models."
},
"MV63X": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1920x1080",
"2688x1512",
"3840x2160"
],
"description": "Resolution of the camera. Can be one of '1920x1080', '2688x1512' or '3840x2160'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV63X camera models."
},
"MV93X": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1080x1080",
"2112x2112",
"2880x2880"
],
"description": "Resolution of the camera. Can be one of '1080x1080', '2112x2112' or '2880x2880'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV93X camera models."
}
},
"description": "Video quality and resolution settings for all the camera models."
}
},
"example": {
"name": "Sample quality retention profile"
},
"required": [
"name"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"id": "1234",
"networkId": "N_24329156",
"name": "Sample quality retention profile",
"restrictedBandwidthModeEnabled": true,
"motionBasedRetentionEnabled": false,
"audioRecordingEnabled": false,
"cloudArchiveEnabled": false,
"maxRetentionDays": 7,
"scheduleId": null,
"motionDetectorVersion": 2,
"videoSettings": {
"MV32": {
"quality": "Enhanced",
"resolution": "1080x1080"
},
"MV21/MV71": {
"quality": "High",
"resolution": "1280x720"
},
"MV12/MV22/MV72": {
"quality": "High",
"resolution": "1920x1080"
},
"MV12WE": {
"quality": "High",
"resolution": "1920x1080"
}
}
}
}
}
},
"summary": "Creates new quality retention profile for this network.",
"tags": [
"camera",
"configure",
"qualityRetentionProfiles"
]
}
},
"/networks/{networkId}/camera/qualityRetentionProfiles/{qualityRetentionProfileId}": {
"get": {
"description": "Retrieve a single quality retention profile",
"operationId": "getNetworkCameraQualityRetentionProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "qualityRetentionProfileId",
"in": "path",
"description": "Quality retention profile ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"id": "1234",
"networkId": "N_24329156",
"name": "Sample quality retention profile",
"restrictedBandwidthModeEnabled": true,
"motionBasedRetentionEnabled": false,
"audioRecordingEnabled": false,
"cloudArchiveEnabled": false,
"maxRetentionDays": 7,
"scheduleId": null,
"motionDetectorVersion": 2,
"videoSettings": {
"MV32": {
"quality": "Enhanced",
"resolution": "1080x1080"
},
"MV21/MV71": {
"quality": "High",
"resolution": "1280x720"
},
"MV12/MV22/MV72": {
"quality": "High",
"resolution": "1920x1080"
},
"MV12WE": {
"quality": "High",
"resolution": "1920x1080"
}
}
}
}
}
},
"summary": "Retrieve a single quality retention profile",
"tags": [
"camera",
"configure",
"qualityRetentionProfiles"
]
},
"put": {
"description": "Update an existing quality retention profile for this network.",
"operationId": "updateNetworkCameraQualityRetentionProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "qualityRetentionProfileId",
"in": "path",
"description": "Quality retention profile ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkCameraQualityRetentionProfile",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the new profile. Must be unique."
},
"motionBasedRetentionEnabled": {
"type": "boolean",
"description": "Deletes footage older than 3 days in which no motion was detected. Can be either true or false. Defaults to false. This setting does not apply to MV2 cameras."
},
"restrictedBandwidthModeEnabled": {
"type": "boolean",
"description": "Disable features that require additional bandwidth such as Motion Recap. Can be either true or false. Defaults to false. This setting does not apply to MV2 cameras."
},
"audioRecordingEnabled": {
"type": "boolean",
"description": "Whether or not to record audio. Can be either true or false. Defaults to false."
},
"cloudArchiveEnabled": {
"type": "boolean",
"description": "Create redundant video backup using Cloud Archive. Can be either true or false. Defaults to false."
},
"motionDetectorVersion": {
"type": "integer",
"description": "The version of the motion detector that will be used by the camera. Only applies to Gen 2 cameras. Defaults to v2."
},
"scheduleId": {
"type": "string",
"description": "Schedule for which this camera will record video, or 'null' to always record."
},
"maxRetentionDays": {
"type": "integer",
"description": "The maximum number of days for which the data will be stored, or 'null' to keep data until storage space runs out. If the former, it can be one of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14, 30, 60, 90] days."
},
"videoSettings": {
"type": "object",
"properties": {
"MV21/MV71": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1280x720"
],
"description": "Resolution of the camera. Can be one of '1280x720'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV21/MV71 camera models."
},
"MV12/MV22/MV72": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1280x720",
"1920x1080"
],
"description": "Resolution of the camera. Can be one of '1280x720' or '1920x1080'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV12/MV22/MV72 camera models."
},
"MV32": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1080x1080",
"2112x2112"
],
"description": "Resolution of the camera. Can be one of '1080x1080' or '2112x2112'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV32 camera models."
},
"MV33": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1080x1080",
"2112x2112",
"2880x2880"
],
"description": "Resolution of the camera. Can be one of '1080x1080', '2112x2112' or '2880x2880'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV33 camera models."
},
"MV12WE": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1280x720",
"1920x1080"
],
"description": "Resolution of the camera. Can be one of '1280x720' or '1920x1080'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV12WE camera models."
},
"MV13": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1920x1080",
"2688x1512",
"3840x2160"
],
"description": "Resolution of the camera. Can be one of '1920x1080', '2688x1512' or '3840x2160'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV13 camera models."
},
"MV22X/MV72X": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1280x720",
"1920x1080",
"2688x1512"
],
"description": "Resolution of the camera. Can be one of '1280x720', '1920x1080' or '2688x1512'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV22X/MV72X camera models."
},
"MV52": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1280x720",
"1920x1080",
"2688x1512",
"3840x2160"
],
"description": "Resolution of the camera. Can be one of '1280x720', '1920x1080', '2688x1512' or '3840x2160'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV52 camera models."
},
"MV63": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1920x1080",
"2688x1512"
],
"description": "Resolution of the camera. Can be one of '1920x1080' or '2688x1512'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV63 camera models."
},
"MV93": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1080x1080",
"2112x2112"
],
"description": "Resolution of the camera. Can be one of '1080x1080' or '2112x2112'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV93 camera models."
},
"MV63X": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1920x1080",
"2688x1512",
"3840x2160"
],
"description": "Resolution of the camera. Can be one of '1920x1080', '2688x1512' or '3840x2160'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV63X camera models."
},
"MV93X": {
"type": "object",
"properties": {
"quality": {
"type": "string",
"enum": [
"Enhanced",
"High",
"Standard"
],
"description": "Quality of the camera. Can be one of 'Standard', 'Enhanced' or 'High'."
},
"resolution": {
"type": "string",
"enum": [
"1080x1080",
"2112x2112",
"2880x2880"
],
"description": "Resolution of the camera. Can be one of '1080x1080', '2112x2112' or '2880x2880'."
}
},
"required": [
"quality",
"resolution"
],
"description": "Quality and resolution for MV93X camera models."
}
},
"description": "Video quality and resolution settings for all the camera models."
}
},
"example": {
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"id": "1234",
"networkId": "N_24329156",
"name": "Sample quality retention profile",
"restrictedBandwidthModeEnabled": true,
"motionBasedRetentionEnabled": false,
"audioRecordingEnabled": false,
"cloudArchiveEnabled": false,
"maxRetentionDays": 7,
"scheduleId": null,
"motionDetectorVersion": 2,
"videoSettings": {
"MV32": {
"quality": "Enhanced",
"resolution": "1080x1080"
},
"MV21/MV71": {
"quality": "High",
"resolution": "1280x720"
},
"MV12/MV22/MV72": {
"quality": "High",
"resolution": "1920x1080"
},
"MV12WE": {
"quality": "High",
"resolution": "1920x1080"
}
}
}
}
}
},
"summary": "Update an existing quality retention profile for this network.",
"tags": [
"camera",
"configure",
"qualityRetentionProfiles"
]
},
"delete": {
"description": "Delete an existing quality retention profile for this network.",
"operationId": "deleteNetworkCameraQualityRetentionProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "qualityRetentionProfileId",
"in": "path",
"description": "Quality retention profile ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete an existing quality retention profile for this network.",
"tags": [
"camera",
"configure",
"qualityRetentionProfiles"
]
}
},
"/networks/{networkId}/camera/schedules": {
"get": {
"description": "Returns a list of all camera recording schedules.",
"operationId": "getNetworkCameraSchedules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Schedule id"
},
"name": {
"type": "string",
"description": "Schedule name"
}
}
}
},
"examples": {
"application/json": [
{
"id": "123",
"name": "Weekday schedule"
}
]
}
}
},
"summary": "Returns a list of all camera recording schedules.",
"tags": [
"camera",
"configure",
"schedules"
]
}
},
"/networks/{networkId}/camera/wirelessProfiles": {
"post": {
"description": "Creates a new camera wireless profile for this network.",
"operationId": "createNetworkCameraWirelessProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkCameraWirelessProfile",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the camera wireless profile. This parameter is required."
},
"ssid": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the SSID."
},
"authMode": {
"type": "string",
"enum": [
"8021x-radius",
"psk"
],
"description": "The auth mode of the SSID. It can be set to ('psk', '8021x-radius')."
},
"encryptionMode": {
"type": "string",
"description": "The encryption mode of the SSID. It can be set to ('wpa', 'wpa-eap'). With 'wpa' mode, the authMode should be 'psk' and with 'wpa-eap' the authMode should be '8021x-radius'"
},
"psk": {
"type": "string",
"description": "The pre-shared key of the SSID."
}
},
"description": "The details of the SSID config."
},
"identity": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "The username of the identity."
},
"password": {
"type": "string",
"description": "The password of the identity."
}
},
"description": "The identity of the wireless profile. Required for creating wireless profiles in 8021x-radius auth mode."
}
},
"example": {
"name": "wireless profile A",
"ssid": {
"name": "ssid test",
"authMode": "8021x-radius",
"encryptionMode": "wpa-eap",
"psk": "sampleKey"
},
"identity": {
"username": "identityname",
"password": "password123"
}
},
"required": [
"name",
"ssid"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the camera wireless profile."
},
"name": {
"type": "string",
"description": "The name of the camera wireless profile."
},
"appliedDeviceCount": {
"type": "integer",
"description": "The count of the applied devices."
},
"ssid": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the SSID."
},
"authMode": {
"type": "string",
"description": "The auth mode of the SSID. It can be set to ('psk', '8021x-radius')."
},
"encryptionMode": {
"type": "string",
"description": "The encryption mode of the SSID."
},
"psk": {
"type": "string",
"description": "The pre-shared key of the SSID, if mode is PSK"
}
},
"description": "The details of the SSID config."
},
"identity": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "The username of the identity."
},
"password": {
"type": "string",
"description": "The password of the identity."
}
},
"description": "The identity of the wireless profile. Required for creating wireless profiles in 8021x-radius auth mode."
}
}
},
"examples": {
"application/json": {
"id": "152",
"name": "wireless profile A",
"appliedDeviceCount": 0,
"ssid": {
"name": "ssid test",
"authMode": "8021x-radius",
"encryptionMode": "wpa-eap",
"psk": "sampleKey"
},
"identity": {
"username": "identityname",
"password": "password123"
}
}
}
}
},
"summary": "Creates a new camera wireless profile for this network.",
"tags": [
"camera",
"configure",
"wirelessProfiles"
]
},
"get": {
"description": "List the camera wireless profiles for this network.",
"operationId": "getNetworkCameraWirelessProfiles",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the camera wireless profile."
},
"name": {
"type": "string",
"description": "The name of the camera wireless profile."
},
"appliedDeviceCount": {
"type": "integer",
"description": "The count of the applied devices."
},
"ssid": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the SSID."
},
"authMode": {
"type": "string",
"description": "The auth mode of the SSID. It can be set to ('psk', '8021x-radius')."
},
"encryptionMode": {
"type": "string",
"description": "The encryption mode of the SSID."
},
"psk": {
"type": "string",
"description": "The pre-shared key of the SSID, if mode is PSK"
}
},
"description": "The details of the SSID config."
},
"identity": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "The username of the identity."
},
"password": {
"type": "string",
"description": "The password of the identity."
}
},
"description": "The identity of the wireless profile. Required for creating wireless profiles in 8021x-radius auth mode."
}
}
}
},
"examples": {
"application/json": [
{
"id": "152",
"name": "wireless profile A",
"appliedDeviceCount": 0,
"ssid": {
"name": "ssid test",
"authMode": "8021x-radius",
"encryptionMode": "wpa-eap",
"psk": "sampleKey"
},
"identity": {
"username": "identityname",
"password": "password123"
}
}
]
}
}
},
"summary": "List the camera wireless profiles for this network.",
"tags": [
"camera",
"configure",
"wirelessProfiles"
]
}
},
"/networks/{networkId}/camera/wirelessProfiles/{wirelessProfileId}": {
"get": {
"description": "Retrieve a single camera wireless profile.",
"operationId": "getNetworkCameraWirelessProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "wirelessProfileId",
"in": "path",
"description": "Wireless profile ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the camera wireless profile."
},
"name": {
"type": "string",
"description": "The name of the camera wireless profile."
},
"appliedDeviceCount": {
"type": "integer",
"description": "The count of the applied devices."
},
"ssid": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the SSID."
},
"authMode": {
"type": "string",
"description": "The auth mode of the SSID. It can be set to ('psk', '8021x-radius')."
},
"encryptionMode": {
"type": "string",
"description": "The encryption mode of the SSID."
},
"psk": {
"type": "string",
"description": "The pre-shared key of the SSID, if mode is PSK"
}
},
"description": "The details of the SSID config."
},
"identity": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "The username of the identity."
},
"password": {
"type": "string",
"description": "The password of the identity."
}
},
"description": "The identity of the wireless profile. Required for creating wireless profiles in 8021x-radius auth mode."
}
}
},
"examples": {
"application/json": {
"id": "152",
"name": "wireless profile A",
"appliedDeviceCount": 0,
"ssid": {
"name": "ssid test",
"authMode": "8021x-radius",
"encryptionMode": "wpa-eap",
"psk": "sampleKey"
},
"identity": {
"username": "identityname",
"password": "password123"
}
}
}
}
},
"summary": "Retrieve a single camera wireless profile.",
"tags": [
"camera",
"configure",
"wirelessProfiles"
]
},
"put": {
"description": "Update an existing camera wireless profile in this network.",
"operationId": "updateNetworkCameraWirelessProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "wirelessProfileId",
"in": "path",
"description": "Wireless profile ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkCameraWirelessProfile",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the camera wireless profile."
},
"ssid": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the SSID."
},
"authMode": {
"type": "string",
"enum": [
"8021x-radius",
"psk"
],
"description": "The auth mode of the SSID. It can be set to ('psk', '8021x-radius')."
},
"encryptionMode": {
"type": "string",
"description": "The encryption mode of the SSID. It can be set to ('wpa', 'wpa-eap'). With 'wpa' mode, the authMode should be 'psk' and with 'wpa-eap' the authMode should be '8021x-radius'"
},
"psk": {
"type": "string",
"description": "The pre-shared key of the SSID."
}
},
"description": "The details of the SSID config."
},
"identity": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "The username of the identity."
},
"password": {
"type": "string",
"description": "The password of the identity."
}
},
"description": "The identity of the wireless profile. Required for creating wireless profiles in 8021x-radius auth mode."
}
},
"example": {
"name": "wireless profile A",
"ssid": {
"name": "ssid test",
"authMode": "8021x-radius",
"encryptionMode": "wpa-eap",
"psk": "sampleKey"
},
"identity": {
"username": "identityname",
"password": "password123"
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the camera wireless profile."
},
"name": {
"type": "string",
"description": "The name of the camera wireless profile."
},
"appliedDeviceCount": {
"type": "integer",
"description": "The count of the applied devices."
},
"ssid": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the SSID."
},
"authMode": {
"type": "string",
"description": "The auth mode of the SSID. It can be set to ('psk', '8021x-radius')."
},
"encryptionMode": {
"type": "string",
"description": "The encryption mode of the SSID."
},
"psk": {
"type": "string",
"description": "The pre-shared key of the SSID, if mode is PSK"
}
},
"description": "The details of the SSID config."
},
"identity": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "The username of the identity."
},
"password": {
"type": "string",
"description": "The password of the identity."
}
},
"description": "The identity of the wireless profile. Required for creating wireless profiles in 8021x-radius auth mode."
}
}
},
"examples": {
"application/json": {
"id": "152",
"name": "wireless profile A",
"appliedDeviceCount": 0,
"ssid": {
"name": "ssid test",
"authMode": "8021x-radius",
"encryptionMode": "wpa-eap",
"psk": "sampleKey"
},
"identity": {
"username": "identityname",
"password": "password123"
}
}
}
}
},
"summary": "Update an existing camera wireless profile in this network.",
"tags": [
"camera",
"configure",
"wirelessProfiles"
]
},
"delete": {
"description": "Delete an existing camera wireless profile for this network.",
"operationId": "deleteNetworkCameraWirelessProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "wirelessProfileId",
"in": "path",
"description": "Wireless profile ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete an existing camera wireless profile for this network.",
"tags": [
"camera",
"configure",
"wirelessProfiles"
]
}
},
"/networks/{networkId}/cellularGateway/connectivityMonitoringDestinations": {
"get": {
"description": "Return the connectivity testing destinations for an MG network",
"operationId": "getNetworkCellularGatewayConnectivityMonitoringDestinations",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"destinations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "The IP address to test connectivity with"
},
"description": {
"type": "string",
"description": "Description of the testing destination. Optional, defaults to an empty string"
},
"default": {
"type": "boolean",
"description": "Boolean indicating whether this is the default testing destination (true) or not (false). Defaults to false. Only one default is allowed"
}
}
},
"description": "The list of connectivity monitoring destinations"
}
}
},
"examples": {
"application/json": {
"destinations": [
{
"ip": "1.2.3.4",
"description": "Google",
"default": false
}
]
}
}
}
},
"summary": "Return the connectivity testing destinations for an MG network",
"tags": [
"cellularGateway",
"configure",
"connectivityMonitoringDestinations"
]
},
"put": {
"description": "Update the connectivity testing destinations for an MG network",
"operationId": "updateNetworkCellularGatewayConnectivityMonitoringDestinations",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkCellularGatewayConnectivityMonitoringDestinations",
"in": "body",
"schema": {
"type": "object",
"properties": {
"destinations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "The IP address to test connectivity with"
},
"description": {
"type": "string",
"description": "Description of the testing destination. Optional, defaults to an empty string",
"default": ""
},
"default": {
"type": "boolean",
"description": "Boolean indicating whether this is the default testing destination (true) or not (false). Defaults to false. Only one default is allowed",
"default": false
}
},
"required": [
"ip"
]
},
"description": "The list of connectivity monitoring destinations"
}
},
"example": {
"destinations": [
{
"ip": "1.2.3.4",
"description": "Google",
"default": false
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"destinations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "The IP address to test connectivity with"
},
"description": {
"type": "string",
"description": "Description of the testing destination. Optional, defaults to an empty string"
},
"default": {
"type": "boolean",
"description": "Boolean indicating whether this is the default testing destination (true) or not (false). Defaults to false. Only one default is allowed"
}
}
},
"description": "The list of connectivity monitoring destinations"
}
}
},
"examples": {
"application/json": {
"destinations": [
{
"ip": "1.2.3.4",
"description": "Google",
"default": false
}
]
}
}
}
},
"summary": "Update the connectivity testing destinations for an MG network",
"tags": [
"cellularGateway",
"configure",
"connectivityMonitoringDestinations"
]
}
},
"/networks/{networkId}/cellularGateway/dhcp": {
"get": {
"description": "List common DHCP settings of MGs",
"operationId": "getNetworkCellularGatewayDhcp",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"dhcpLeaseTime": {
"type": "string",
"enum": [
"1 day",
"1 hour",
"1 week",
"12 hours",
"30 minutes",
"4 hours"
],
"description": "DHCP Lease time for all MG in the network."
},
"dnsNameservers": {
"type": "string",
"enum": [
"custom",
"google_dns",
"opendns",
"upstream_dns"
],
"description": "DNS name servers mode for all MG in the network."
},
"dnsCustomNameservers": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of fixed IPs representing the the DNS Name servers when the mode is 'custom'."
}
}
},
"examples": {
"application/json": {
"dhcpLeaseTime": "1 hour",
"dnsNameservers": "custom",
"dnsCustomNameservers": [
"172.16.2.111",
"172.16.2.30"
]
}
}
}
},
"summary": "List common DHCP settings of MGs",
"tags": [
"cellularGateway",
"configure",
"dhcp"
]
},
"put": {
"description": "Update common DHCP settings of MGs",
"operationId": "updateNetworkCellularGatewayDhcp",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkCellularGatewayDhcp",
"in": "body",
"schema": {
"type": "object",
"properties": {
"dhcpLeaseTime": {
"type": "string",
"description": "DHCP Lease time for all MG of the network. Possible values are '30 minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1 week'."
},
"dnsNameservers": {
"type": "string",
"description": "DNS name servers mode for all MG of the network. Possible values are: 'upstream_dns', 'google_dns', 'opendns', 'custom'."
},
"dnsCustomNameservers": {
"type": "array",
"items": {
"type": "string"
},
"description": "list of fixed IPs representing the the DNS Name servers when the mode is 'custom'"
}
},
"example": {
"dhcpLeaseTime": "1 hour",
"dnsNameservers": "custom",
"dnsCustomNameservers": [
"172.16.2.111",
"172.16.2.30"
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"dhcpLeaseTime": {
"type": "string",
"enum": [
"1 day",
"1 hour",
"1 week",
"12 hours",
"30 minutes",
"4 hours"
],
"description": "DHCP Lease time for all MG in the network."
},
"dnsNameservers": {
"type": "string",
"enum": [
"custom",
"google_dns",
"opendns",
"upstream_dns"
],
"description": "DNS name servers mode for all MG in the network."
},
"dnsCustomNameservers": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of fixed IPs representing the the DNS Name servers when the mode is 'custom'."
}
}
},
"examples": {
"application/json": {
"dhcpLeaseTime": "1 hour",
"dnsNameservers": "custom",
"dnsCustomNameservers": [
"172.16.2.111",
"172.16.2.30"
]
}
}
}
},
"summary": "Update common DHCP settings of MGs",
"tags": [
"cellularGateway",
"configure",
"dhcp"
]
}
},
"/networks/{networkId}/cellularGateway/subnetPool": {
"get": {
"description": "Return the subnet pool and mask configured for MGs in the network.",
"operationId": "getNetworkCellularGatewaySubnetPool",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"deploymentMode": {
"type": "string",
"description": "Deployment mode for the cellular gateways in the network. (Passthrough/Routed)"
},
"cidr": {
"type": "string",
"description": "CIDR of the pool of subnets. Each MG in this network will automatically pick a subnet from this pool."
},
"mask": {
"type": "integer",
"description": "Mask used for the subnet of all MGs in this network."
},
"subnets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Serial Number of the MG."
},
"name": {
"type": "string",
"description": "Name of the MG."
},
"applianceIp": {
"type": "string",
"description": "Appliance IP of the MG device."
},
"subnet": {
"type": "string",
"description": "Subnet of MG device."
}
}
},
"description": "List of subnets of all MGs in this network."
}
}
},
"examples": {
"application/json": {
"deploymentMode": "routed",
"cidr": "192.168.0.0/16",
"mask": 24,
"subnets": [
{
"serial": "AAAA-AAAA-AAAA",
"name": "my first MG",
"applianceIp": "192.168.0.1",
"subnet": "192.168.0.0/24"
}
]
}
}
}
},
"summary": "Return the subnet pool and mask configured for MGs in the network.",
"tags": [
"cellularGateway",
"configure",
"subnetPool"
]
},
"put": {
"description": "Update the subnet pool and mask configuration for MGs in the network.",
"operationId": "updateNetworkCellularGatewaySubnetPool",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkCellularGatewaySubnetPool",
"in": "body",
"schema": {
"type": "object",
"properties": {
"mask": {
"type": "integer",
"description": "Mask used for the subnet of all MGs in this network."
},
"cidr": {
"type": "string",
"description": "CIDR of the pool of subnets. Each MG in this network will automatically pick a subnet from this pool."
}
},
"example": {
"mask": 24,
"cidr": "192.168.0.0/16"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"deploymentMode": {
"type": "string",
"description": "Deployment mode for the cellular gateways in the network. (Passthrough/Routed)"
},
"cidr": {
"type": "string",
"description": "CIDR of the pool of subnets. Each MG in this network will automatically pick a subnet from this pool."
},
"mask": {
"type": "integer",
"description": "Mask used for the subnet of all MGs in this network."
},
"subnets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Serial Number of the MG."
},
"name": {
"type": "string",
"description": "Name of the MG."
},
"applianceIp": {
"type": "string",
"description": "Appliance IP of the MG device."
},
"subnet": {
"type": "string",
"description": "Subnet of MG device."
}
}
},
"description": "List of subnets of all MGs in this network."
}
}
},
"examples": {
"application/json": {
"deploymentMode": "routed",
"cidr": "192.168.0.0/16",
"mask": 24,
"subnets": [
{
"serial": "AAAA-AAAA-AAAA",
"name": "my first MG",
"applianceIp": "192.168.0.1",
"subnet": "192.168.0.0/24"
}
]
}
}
}
},
"summary": "Update the subnet pool and mask configuration for MGs in the network.",
"tags": [
"cellularGateway",
"configure",
"subnetPool"
]
}
},
"/networks/{networkId}/cellularGateway/uplink": {
"get": {
"description": "Returns the uplink settings for your MG network.",
"operationId": "getNetworkCellularGatewayUplink",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps). 'null' indicates no limit."
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps). 'null' indicates no limit."
}
},
"description": "The bandwidth settings for the 'cellular' uplink"
}
}
},
"examples": {
"application/json": {
"bandwidthLimits": {
"limitUp": 51200,
"limitDown": 51200
}
}
}
}
},
"summary": "Returns the uplink settings for your MG network.",
"tags": [
"cellularGateway",
"configure",
"uplink"
]
},
"put": {
"description": "Updates the uplink settings for your MG network.",
"operationId": "updateNetworkCellularGatewayUplink",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkCellularGatewayUplink",
"in": "body",
"schema": {
"type": "object",
"properties": {
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps). null indicates no limit"
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps). null indicates no limit"
}
},
"description": "The bandwidth settings for the 'cellular' uplink"
}
},
"example": {
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps). 'null' indicates no limit."
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps). 'null' indicates no limit."
}
},
"description": "The bandwidth settings for the 'cellular' uplink"
}
}
},
"examples": {
"application/json": {
"bandwidthLimits": {
"limitUp": 51200,
"limitDown": 51200
}
}
}
}
},
"summary": "Updates the uplink settings for your MG network.",
"tags": [
"cellularGateway",
"configure",
"uplink"
]
}
},
"/networks/{networkId}/clients": {
"get": {
"description": "List the clients that have used this network in the timespan. The data is updated at most once every five minutes.",
"operationId": "getNetworkClients",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameter t0. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 5000. Default is 10."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"Offline",
"Online"
]
},
"name": "statuses",
"in": "query",
"description": "Filters clients based on status. Can be one of 'Online' or 'Offline'."
},
{
"type": "string",
"name": "ip",
"in": "query",
"description": "Filters clients based on a partial or full match for the ip address field."
},
{
"type": "string",
"name": "ip6",
"in": "query",
"description": "Filters clients based on a partial or full match for the ip6 address field."
},
{
"type": "string",
"name": "ip6Local",
"in": "query",
"description": "Filters clients based on a partial or full match for the ip6Local address field."
},
{
"type": "string",
"name": "mac",
"in": "query",
"description": "Filters clients based on a partial or full match for the mac address field."
},
{
"type": "string",
"name": "os",
"in": "query",
"description": "Filters clients based on a partial or full match for the os (operating system) field."
},
{
"type": "string",
"name": "pskGroup",
"in": "query",
"description": "Filters clients based on partial or full match for the iPSK name field."
},
{
"type": "string",
"name": "description",
"in": "query",
"description": "Filters clients based on a partial or full match for the description field."
},
{
"type": "string",
"name": "vlan",
"in": "query",
"description": "Filters clients based on the full match for the VLAN field."
},
{
"type": "string",
"name": "namedVlan",
"in": "query",
"description": "Filters clients based on the partial or full match for the named VLAN field."
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"Wired",
"Wireless"
]
},
"name": "recentDeviceConnections",
"in": "query",
"description": "Filters clients based on recent connection type. Can be one of 'Wired' or 'Wireless'."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the client"
},
"mac": {
"type": "string",
"description": "The MAC address of the client"
},
"ip": {
"type": "string",
"description": "The IP address of the client"
},
"ip6": {
"type": "string",
"description": "The IPv6 address of the client"
},
"description": {
"type": "string",
"description": "Short description of the client"
},
"firstSeen": {
"type": "integer",
"description": "Timestamp client was first seen in the network"
},
"lastSeen": {
"type": "integer",
"description": "Timestamp client was last seen in the network"
},
"manufacturer": {
"type": "string",
"description": "Manufacturer of the client"
},
"os": {
"type": "string",
"description": "The operating system of the client"
},
"user": {
"type": "string",
"description": "The username of the user of the client"
},
"vlan": {
"type": "string",
"description": "The name of the VLAN that the client is connected to"
},
"ssid": {
"type": "string",
"description": "The name of the SSID that the client is connected to"
},
"switchport": {
"type": "string",
"description": "The switch port that the client is connected to"
},
"wirelessCapabilities": {
"type": "string",
"description": "Wireless capabilities of the client"
},
"smInstalled": {
"type": "boolean",
"description": "Status of SM for the client"
},
"recentDeviceMac": {
"type": "string",
"description": "The MAC address of the node that the device was last connected to"
},
"status": {
"type": "string",
"enum": [
"Offline",
"Online"
],
"description": "The connection status of the client"
},
"usage": {
"type": "object",
"properties": {
"sent": {
"type": "number",
"format": "float",
"description": "Usage sent by the client"
},
"recv": {
"type": "number",
"format": "float",
"description": "Usage received by the client"
}
},
"description": "Usage, sent and received"
},
"namedVlan": {
"type": "string",
"description": "Named VLAN of the client"
},
"adaptivePolicyGroup": {
"type": "string",
"description": "The adaptive policy group of the client"
},
"deviceTypePrediction": {
"type": "string",
"description": "Prediction of the client's device type"
},
"recentDeviceSerial": {
"type": "string",
"description": "The serial of the node the device was last connected to"
},
"recentDeviceName": {
"type": "string",
"description": "The name of the node the device was last connected to"
},
"recentDeviceConnection": {
"type": "string",
"enum": [
"Wired",
"Wireless"
],
"description": "Client's most recent connection type"
},
"notes": {
"type": "string",
"description": "Notes on the client"
},
"ip6Local": {
"type": "string",
"description": "Local IPv6 address of the client"
},
"groupPolicy8021x": {
"type": "string",
"description": "802.1x group policy of the client"
},
"pskGroup": {
"type": "string",
"description": "iPSK name of the client"
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": {
"id": "k74272e",
"mac": "22:33:44:55:66:77",
"ip": "1.2.3.4",
"ip6": "2001:db8:3c4d:15::1",
"description": "Miles's phone",
"firstSeen": 1518365681,
"lastSeen": 1526087474,
"manufacturer": "Apple",
"os": "iOS",
"user": "milesmeraki",
"vlan": "100",
"ssid": "My SSID",
"switchport": "My switch port",
"wirelessCapabilities": "802.11b - 2.4 GHz",
"smInstalled": true,
"recentDeviceMac": "22:33:44:55:66:77",
"status": "Online",
"usage": {
"sent": 138.0,
"recv": 61.0
},
"namedVlan": "My VLAN",
"adaptivePolicyGroup": "2: Infrastructure",
"deviceTypePrediction": "iPhone SE, iOS9.3.5",
"recentDeviceSerial": "00:11:22:33:44:55",
"recentDeviceName": "Q234-ABCD-5678",
"recentDeviceConnection": "Wired",
"notes": "My AP's note",
"ip6Local": "fe80:0:0:0:1430:aac1:6826:75ab",
"groupPolicy8021x": "Student_Access",
"pskGroup": "Group 1"
}
}
}
},
"summary": "List the clients that have used this network in the timespan",
"tags": [
"networks",
"monitor",
"clients"
]
}
},
"/networks/{networkId}/clients/applicationUsage": {
"get": {
"description": "Return the application usage data for clients. Usage data is in kilobytes. Clients can be identified by client keys or either the MACs or IPs depending on whether the network uses Track-by-IP.",
"operationId": "getNetworkClientsApplicationUsage",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "clients",
"in": "query",
"required": true,
"description": "A list of client keys, MACs or IPs separated by comma."
},
{
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14
],
"name": "ssidNumber",
"in": "query",
"description": "An SSID number to include. If not specified, eveusage histories application usagents for all SSIDs will be returned."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"clientId": "k74272e",
"clientIp": "1.2.3.4",
"clientMac": "00:11:22:33:44:55",
"applicationUsage": [
{
"application": "Google",
"recv": 383,
"sent": 56
}
]
}
]
}
}
},
"summary": "Return the application usage data for clients",
"tags": [
"networks",
"monitor",
"clients",
"applicationUsage"
]
}
},
"/networks/{networkId}/clients/bandwidthUsageHistory": {
"get": {
"description": "Returns a timeseries of total traffic consumption rates for all clients on a network within a given timespan, in megabits per second.",
"operationId": "getNetworkClientsBandwidthUsageHistory",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 30 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ts": {
"type": "string",
"format": "date-time",
"description": "The timestamp"
},
"total": {
"type": "number",
"format": "float",
"description": "The total traffic over a time range for clients on a network"
},
"upstream": {
"type": "number",
"format": "float",
"description": "The upstream traffic over a time range for clients on a network"
},
"downstream": {
"type": "number",
"format": "float",
"description": "The downstream traffic over a time range for clients on a network"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"ts": "2018-02-11T00:00:00.090210Z",
"total": 345.0,
"upstream": 200.0,
"downstream": 145.0
}
]
}
}
},
"summary": "Returns a timeseries of total traffic consumption rates for all clients on a network within a given timespan, in megabits per second.",
"tags": [
"networks",
"monitor",
"clients",
"bandwidthUsageHistory"
]
}
},
"/networks/{networkId}/clients/overview": {
"get": {
"description": "Return overview statistics for network clients",
"operationId": "getNetworkClientsOverview",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
},
{
"type": "integer",
"name": "resolution",
"in": "query",
"description": "The time resolution in seconds for returned data. The valid resolutions are: 7200, 86400, 604800, 2592000. The default is 604800."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"counts": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "The total number of clients on a network"
},
"withHeavyUsage": {
"type": "integer",
"description": "The total number of clients with heavy usage on a network"
}
},
"description": "The number of clients on a network over a given time range"
},
"usages": {
"type": "object",
"properties": {
"average": {
"type": "integer",
"description": "The average usage of all clients on a network"
},
"withHeavyUsageAverage": {
"type": "integer",
"description": "The average usage of all clients with heavy usage on a network"
}
},
"description": "The average usage of the clients on a network over a given time range"
}
}
},
"examples": {
"application/json": {
"counts": {
"total": 100,
"withHeavyUsage": 2
},
"usages": {
"average": 2048,
"withHeavyUsageAverage": 5345
}
}
}
}
},
"summary": "Return overview statistics for network clients",
"tags": [
"networks",
"monitor",
"clients",
"overview"
]
}
},
"/networks/{networkId}/clients/provision": {
"post": {
"description": "Provisions a client with a name and policy. Clients can be provisioned before they associate to the network.",
"operationId": "provisionNetworkClients",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "provisionNetworkClients",
"in": "body",
"schema": {
"type": "object",
"properties": {
"clients": {
"type": "array",
"items": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "The MAC address of the client. Required."
},
"name": {
"type": "string",
"description": "The display name for the client. Optional. Limited to 255 bytes."
}
},
"required": [
"mac"
]
},
"description": "The array of clients to provision"
},
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Group policy",
"Normal",
"Per connection"
],
"description": "The policy to apply to the specified client. Can be 'Group policy', 'Allowed', 'Blocked', 'Per connection' or 'Normal'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
},
"policiesBySecurityAppliance": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Normal"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked' or 'Normal'. Required."
}
},
"description": "An object, describing what the policy-connection association is for the security appliance. (Only relevant if the security appliance is actually within the network)"
},
"policiesBySsid": {
"type": "object",
"properties": {
"0": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Group policy",
"Normal"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"1": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Group policy",
"Normal"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"2": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Group policy",
"Normal"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"3": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Group policy",
"Normal"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"4": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Group policy",
"Normal"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"5": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Group policy",
"Normal"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"6": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Group policy",
"Normal"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"7": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Group policy",
"Normal"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"8": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Group policy",
"Normal"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"9": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Group policy",
"Normal"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"10": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Group policy",
"Normal"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"11": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Group policy",
"Normal"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"12": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Group policy",
"Normal"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"13": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Group policy",
"Normal"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
},
"14": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Group policy",
"Normal"
],
"description": "The policy to apply to the specified client. Can be 'Allowed', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "The ID of the desired group policy to apply to the client. Required if 'devicePolicy' is set to \"Group policy\". Otherwise this is ignored."
}
},
"required": [
"devicePolicy"
],
"description": "The number for the SSID"
}
},
"description": "An object, describing the policy-connection associations for each active SSID within the network. Keys should be the number of enabled SSIDs, mapping to an object describing the client's policy"
}
},
"example": {
"clients": [
{
"mac": "00:11:22:33:44:55",
"name": "Miles's phone"
}
],
"devicePolicy": "Group policy",
"groupPolicyId": "101",
"policiesBySecurityAppliance": {
"devicePolicy": "Normal"
},
"policiesBySsid": {
"0": {
"devicePolicy": "Group policy",
"groupPolicyId": "101"
},
"1": {
"devicePolicy": "Group policy",
"groupPolicyId": "101"
},
"2": {
"devicePolicy": "Group policy",
"groupPolicyId": "101"
},
"3": {
"devicePolicy": "Group policy",
"groupPolicyId": "101"
},
"4": {
"devicePolicy": "Group policy",
"groupPolicyId": "101"
},
"5": {
"devicePolicy": "Group policy",
"groupPolicyId": "101"
},
"6": {
"devicePolicy": "Group policy",
"groupPolicyId": "101"
},
"7": {
"devicePolicy": "Group policy",
"groupPolicyId": "101"
},
"8": {
"devicePolicy": "Group policy",
"groupPolicyId": "101"
},
"9": {
"devicePolicy": "Group policy",
"groupPolicyId": "101"
},
"10": {
"devicePolicy": "Group policy",
"groupPolicyId": "101"
},
"11": {
"devicePolicy": "Group policy",
"groupPolicyId": "101"
},
"12": {
"devicePolicy": "Group policy",
"groupPolicyId": "101"
},
"13": {
"devicePolicy": "Group policy",
"groupPolicyId": "101"
},
"14": {
"devicePolicy": "Group policy",
"groupPolicyId": "101"
}
}
},
"required": [
"clients",
"devicePolicy"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"clients": {
"type": "array",
"items": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "The MAC address of the client"
},
"clientId": {
"type": "string",
"description": "The identifier of the client"
},
"name": {
"type": "string",
"description": "The name of the client"
},
"message": {
"type": "string",
"description": "The client's display message if its group policy is 'Blocked'"
}
}
},
"description": "The list of clients to provision"
},
"devicePolicy": {
"type": "string",
"description": "The name of the client's policy"
},
"groupPolicyId": {
"type": "string",
"description": "The group policy identifier of the client"
}
}
},
"examples": {
"application/json": {
"clients": [
{
"mac": "00:11:22:33:44:55",
"clientId": "k74272e",
"name": "Miles's phone",
"message": "Blocked message for client"
}
],
"devicePolicy": "Group policy",
"groupPolicyId": "101"
}
}
}
},
"summary": "Provisions a client with a name and policy",
"tags": [
"networks",
"configure",
"clients"
]
}
},
"/networks/{networkId}/clients/usageHistories": {
"get": {
"description": "Return the usage histories for clients. Usage data is in kilobytes. Clients can be identified by client keys or either the MACs or IPs depending on whether the network uses Track-by-IP.",
"operationId": "getNetworkClientsUsageHistories",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "clients",
"in": "query",
"required": true,
"description": "A list of client keys, MACs or IPs separated by comma."
},
{
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14
],
"name": "ssidNumber",
"in": "query",
"description": "An SSID number to include. If not specified, events for all SSIDs will be returned."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"clientId": "k74272e",
"clientIp": "1.2.3.4",
"clientMac": "00:11:22:33:44:55",
"usageHistory": [
{
"ts": "2018-02-11T00:00:00.090210Z",
"recv": 383,
"sent": 56
}
]
}
]
}
}
},
"summary": "Return the usage histories for clients",
"tags": [
"networks",
"monitor",
"clients",
"usageHistories"
]
}
},
"/networks/{networkId}/clients/{clientId}": {
"get": {
"description": "Return the client associated with the given identifier. Clients can be identified by a client key or either the MAC or IP depending on whether the network uses Track-by-IP.",
"operationId": "getNetworkClient",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "clientId",
"in": "path",
"description": "Client ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the client"
},
"mac": {
"type": "string",
"description": "The MAC address of the client"
},
"ip": {
"type": "string",
"description": "The IP address of the client"
},
"ip6": {
"type": "string",
"description": "The IPv6 address of the client"
},
"description": {
"type": "string",
"description": "Short description of the client"
},
"firstSeen": {
"type": "integer",
"description": "Timestamp client was first seen in the network"
},
"lastSeen": {
"type": "integer",
"description": "Timestamp client was last seen in the network"
},
"manufacturer": {
"type": "string",
"description": "Manufacturer of the client"
},
"os": {
"type": "string",
"description": "The operating system of the client"
},
"user": {
"type": "string",
"description": "The username of the user of the client"
},
"vlan": {
"type": "string",
"description": "The name of the VLAN that the client is connected to"
},
"ssid": {
"type": "string",
"description": "The name of the SSID that the client is connected to"
},
"switchport": {
"type": "string",
"description": "The switch port that the client is connected to"
},
"wirelessCapabilities": {
"type": "string",
"description": "Wireless capabilities of the client"
},
"smInstalled": {
"type": "boolean",
"description": "Status of SM for the client"
},
"recentDeviceMac": {
"type": "string",
"description": "The MAC address of the node that the device was last connected to"
},
"clientVpnConnections": {
"type": "array",
"items": {
"type": "object",
"properties": {
"remoteIp": {
"type": "string",
"description": "The IP address of the VPN the client last connected to"
},
"connectedAt": {
"type": "integer",
"description": "The time the client last connected to the VPN"
},
"disconnectedAt": {
"type": "integer",
"description": "The time the client last disconnectd from the VPN"
}
}
},
"description": "VPN connections associated with the client"
},
"lldp": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "The link layer discover protocol settings for the client"
},
"cdp": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "The Cisco discover protocol settings for the client"
},
"status": {
"type": "string",
"enum": [
"Offline",
"Online"
],
"description": "The connection status of the client"
}
}
},
"examples": {
"application/json": {
"id": "k74272e",
"mac": "22:33:44:55:66:77",
"ip": "1.2.3.4",
"ip6": "2001:db8:3c4d:15::1",
"description": "Miles's phone",
"firstSeen": 1518365681,
"lastSeen": 1526087474,
"manufacturer": "Apple",
"os": "iOS",
"user": "milesmeraki",
"vlan": "100",
"ssid": "My SSID",
"switchport": "My switch port",
"wirelessCapabilities": "802.11b - 2.4 GHz",
"smInstalled": true,
"recentDeviceMac": "22:33:44:55:66:77",
"clientVpnConnections": [
{
"remoteIp": "1.2.3.4",
"connectedAt": 1522613355,
"disconnectedAt": 1522613360
}
],
"lldp": [
[
"System name",
"Some system name"
],
[
"System description",
"Some system description"
],
[
"Port ID",
"1"
],
[
"Chassis ID",
"00:18:0a:00:00:00"
],
[
"Port description",
"eth0"
],
[
"System capabilities",
"Two-port MAC Relay"
]
],
"cdp": [
[
"System name",
"Some system name"
],
[
"System description",
"Some system description"
],
[
"Port ID",
"1"
],
[
"Chassis ID",
"00:18:0a:00:00:00"
],
[
"Port description",
"eth0"
],
[
"System capabilities",
"Two-port MAC Relay"
]
],
"status": "Online"
}
}
}
},
"summary": "Return the client associated with the given identifier",
"tags": [
"networks",
"monitor",
"clients"
]
}
},
"/networks/{networkId}/clients/{clientId}/policy": {
"get": {
"description": "Return the policy assigned to a client on the network. Clients can be identified by a client key or either the MAC or IP depending on whether the network uses Track-by-IP.",
"operationId": "getNetworkClientPolicy",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "clientId",
"in": "path",
"description": "Client ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "The MAC address of the client"
},
"devicePolicy": {
"type": "string",
"description": "The name of the client's policy"
},
"groupPolicyId": {
"type": "string",
"description": "The group policy identifier of the client"
}
}
},
"examples": {
"application/json": {
"mac": "00:11:22:33:44:55",
"devicePolicy": "Group policy",
"groupPolicyId": "101"
}
}
}
},
"summary": "Return the policy assigned to a client on the network",
"tags": [
"networks",
"configure",
"clients",
"policy"
]
},
"put": {
"description": "Update the policy assigned to a client on the network. Clients can be identified by a client key or either the MAC or IP depending on whether the network uses Track-by-IP.",
"operationId": "updateNetworkClientPolicy",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "clientId",
"in": "path",
"description": "Client ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkClientPolicy",
"in": "body",
"schema": {
"type": "object",
"properties": {
"devicePolicy": {
"type": "string",
"description": "The policy to assign. Can be 'Whitelisted', 'Blocked', 'Normal' or 'Group policy'. Required."
},
"groupPolicyId": {
"type": "string",
"description": "[Optional] If 'devicePolicy' is set to 'Group policy' this param is used to specify the group policy ID."
}
},
"example": {
"devicePolicy": "Group policy",
"groupPolicyId": "101"
},
"required": [
"devicePolicy"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "The MAC address of the client"
},
"devicePolicy": {
"type": "string",
"description": "The name of the client's policy"
},
"groupPolicyId": {
"type": "string",
"description": "The group policy identifier of the client"
}
}
},
"examples": {
"application/json": {
"mac": "00:11:22:33:44:55",
"devicePolicy": "Group policy",
"groupPolicyId": "101"
}
}
}
},
"summary": "Update the policy assigned to a client on the network",
"tags": [
"networks",
"configure",
"clients",
"policy"
]
}
},
"/networks/{networkId}/clients/{clientId}/splashAuthorizationStatus": {
"get": {
"description": "Return the splash authorization for a client, for each SSID they've associated with through splash. Only enabled SSIDs with Click-through splash enabled will be included. Clients can be identified by a client key or either the MAC or IP depending on whether the network uses Track-by-IP.",
"operationId": "getNetworkClientSplashAuthorizationStatus",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "clientId",
"in": "path",
"description": "Client ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"ssids": {
"0": {
"isAuthorized": true,
"authorizedAt": "2017-07-19 16:24:13 UTC",
"expiresAt": "2017-07-20 16:24:13 UTC"
},
"2": {
"isAuthorized": false
}
}
}
}
}
},
"summary": "Return the splash authorization for a client, for each SSID they've associated with through splash",
"tags": [
"networks",
"configure",
"clients",
"splashAuthorizationStatus"
]
},
"put": {
"description": "Update a client's splash authorization. Clients can be identified by a client key or either the MAC or IP depending on whether the network uses Track-by-IP.",
"operationId": "updateNetworkClientSplashAuthorizationStatus",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "clientId",
"in": "path",
"description": "Client ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkClientSplashAuthorizationStatus",
"in": "body",
"schema": {
"type": "object",
"properties": {
"ssids": {
"type": "object",
"properties": {
"0": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 0"
},
"1": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 1"
},
"2": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 2"
},
"3": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 3"
},
"4": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 4"
},
"5": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 5"
},
"6": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 6"
},
"7": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 7"
},
"8": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 8"
},
"9": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 9"
},
"10": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 10"
},
"11": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 11"
},
"12": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 12"
},
"13": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 13"
},
"14": {
"type": "object",
"properties": {
"isAuthorized": {
"type": "boolean",
"description": "New authorization status for the SSID (true, false)."
}
},
"description": "Splash authorization for SSID 14"
}
},
"description": "The target SSIDs. Each SSID must be enabled and must have Click-through splash enabled. For each SSID where isAuthorized is true, the expiration time will automatically be set according to the SSID's splash frequency. Not all networks support configuring all SSIDs"
}
},
"example": {
"ssids": {
"0": {
"isAuthorized": true
},
"2": {
"isAuthorized": false
}
}
},
"required": [
"ssids"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"ssids": {
"0": {
"isAuthorized": true,
"authorizedAt": "2017-07-19 16:24:13 UTC",
"expiresAt": "2017-07-20 16:24:13 UTC"
},
"2": {
"isAuthorized": false
}
}
}
}
}
},
"summary": "Update a client's splash authorization",
"tags": [
"networks",
"configure",
"clients",
"splashAuthorizationStatus"
]
}
},
"/networks/{networkId}/clients/{clientId}/trafficHistory": {
"get": {
"description": "Return the client's network traffic data over time. Usage data is in kilobytes. This endpoint requires detailed traffic analysis to be enabled on the Network-wide > General page. Clients can be identified by a client key or either the MAC or IP depending on whether the network uses Track-by-IP.",
"operationId": "getNetworkClientTrafficHistory",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "clientId",
"in": "path",
"description": "Client ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ts": {
"type": "string",
"format": "date-time",
"description": "The timestamp of when the client was connected to an application"
},
"application": {
"type": "string",
"description": "The name of the application the client is connected to"
},
"destination": {
"type": "string",
"description": "The IP or web address the client is connected to"
},
"protocol": {
"type": "string",
"description": "The client protocol"
},
"port": {
"type": "integer",
"description": "The port the client is connected to"
},
"recv": {
"type": "number",
"format": "float",
"description": "Usage received by the client"
},
"sent": {
"type": "number",
"format": "float",
"description": "Usage sent by the client"
},
"numFlows": {
"type": "integer",
"description": "The number of flows the client has"
},
"activeSeconds": {
"type": "integer",
"description": "The amount of seconds the client was active"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"ts": "2018-02-11T00:00:00.090210Z",
"application": "Google",
"destination": "www.google.com",
"protocol": "TCP",
"port": 443,
"recv": 61.0,
"sent": 138.0,
"numFlows": 5,
"activeSeconds": 240
}
]
}
}
},
"summary": "Return the client's network traffic data over time",
"tags": [
"networks",
"monitor",
"clients",
"trafficHistory"
]
}
},
"/networks/{networkId}/clients/{clientId}/usageHistory": {
"get": {
"description": "Return the client's daily usage history. Usage data is in kilobytes. Clients can be identified by a client key or either the MAC or IP depending on whether the network uses Track-by-IP.",
"operationId": "getNetworkClientUsageHistory",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "clientId",
"in": "path",
"description": "Client ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"received": {
"type": "number",
"format": "float",
"description": "Usage received by the client on a given day"
},
"sent": {
"type": "number",
"format": "float",
"description": "Usage sent by the client on a given day"
},
"ts": {
"type": "string",
"format": "date-time",
"description": "The day's timestamp"
}
}
}
},
"examples": {
"application/json": [
{
"received": 61.0,
"sent": 138.0,
"ts": "2018-02-11T00:00:00.090210Z"
}
]
}
}
},
"summary": "Return the client's daily usage history",
"tags": [
"networks",
"monitor",
"clients",
"usageHistory"
]
}
},
"/networks/{networkId}/devices": {
"get": {
"description": "List the devices in a network",
"operationId": "getNetworkDevices",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the device"
},
"lat": {
"type": "number",
"format": "float",
"description": "Latitude of the device"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude of the device"
},
"address": {
"type": "string",
"description": "Physical address of the device"
},
"notes": {
"type": "string",
"description": "Notes for the device, limited to 255 characters"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of tags assigned to the device"
},
"networkId": {
"type": "string",
"description": "ID of the network the device belongs to"
},
"serial": {
"type": "string",
"description": "Serial number of the device"
},
"model": {
"type": "string",
"description": "Model of the device"
},
"imei": {
"type": "string",
"description": "IMEI of the device, if applicable"
},
"mac": {
"type": "string",
"description": "MAC address of the device"
},
"lanIp": {
"type": "string",
"description": "LAN IP address of the device"
},
"firmware": {
"type": "string",
"description": "Firmware version of the device"
},
"productType": {
"type": "string",
"description": "Product type of the device"
},
"floorPlanId": {
"type": "string",
"description": "The floor plan to associate to this device. null disassociates the device from the floorplan."
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Additional property name"
},
"value": {
"type": "string",
"description": "Additional property value"
}
}
},
"description": "Additional device information"
},
"beaconIdParams": {
"type": "object",
"properties": {
"uuid": {
"type": "string",
"description": "The UUID to be used in the beacon identifier"
},
"major": {
"type": "integer",
"description": "The major number to be used in the beacon identifier"
},
"minor": {
"type": "integer",
"description": "The minor number to be used in the beacon identifier"
}
},
"description": "Beacon Id parameters with an identifier and major and minor versions"
}
}
}
},
"examples": {
"application/json": [
{
"name": "My AP",
"lat": 37.4180951010362,
"lng": -122.098531723022,
"address": "1600 Pennsylvania Ave",
"notes": "My AP's note",
"tags": [
" recently-added "
],
"networkId": "N_24329156",
"serial": "Q234-ABCD-5678",
"model": "MR34",
"imei": "123456789000000",
"mac": "00:11:22:33:44:55",
"lanIp": "1.2.3.4",
"firmware": "wireless-25-14",
"productType": "wireless",
"floorPlanId": "g_2176982374",
"details": [
{
"name": "Catalyst serial",
"value": "123ABC"
}
],
"beaconIdParams": {
"uuid": "00000000-0000-0000-0000-000000000000",
"major": 5,
"minor": 3
}
}
]
}
}
},
"summary": "List the devices in a network",
"tags": [
"networks",
"configure",
"devices"
]
}
},
"/networks/{networkId}/devices/claim": {
"post": {
"description": "Claim devices into a network. (Note: for recently claimed devices, it may take a few minutes for API requests against that device to succeed). This operation can be used up to ten times within a single five minute window.",
"operationId": "claimNetworkDevices",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "claimNetworkDevices",
"in": "body",
"schema": {
"type": "object",
"properties": {
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of serials of devices to claim"
}
},
"example": {
"serials": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
]
},
"required": [
"serials"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "The serials of the devices"
}
}
},
"examples": {
"application/json": {
"serials": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
]
}
}
}
},
"summary": "Claim devices into a network. (Note: for recently claimed devices, it may take a few minutes for API requests against that device to succeed)",
"tags": [
"networks",
"configure",
"devices"
]
}
},
"/networks/{networkId}/devices/claim/vmx": {
"post": {
"description": "Claim a vMX into a network",
"operationId": "vmxNetworkDevicesClaim",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "vmxNetworkDevicesClaim",
"in": "body",
"schema": {
"type": "object",
"properties": {
"size": {
"type": "string",
"enum": [
"100",
"large",
"medium",
"small",
"xlarge"
],
"description": "The size of the vMX you claim. It can be one of: small, medium, large, xlarge, 100"
}
},
"example": {
"size": "small"
},
"required": [
"size"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the device"
},
"lat": {
"type": "number",
"format": "float",
"description": "Latitude of the device"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude of the device"
},
"address": {
"type": "string",
"description": "Physical address of the device"
},
"notes": {
"type": "string",
"description": "Notes for the device, limited to 255 characters"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of tags assigned to the device"
},
"networkId": {
"type": "string",
"description": "ID of the network the device belongs to"
},
"serial": {
"type": "string",
"description": "Serial number of the device"
},
"model": {
"type": "string",
"description": "Model of the device"
},
"imei": {
"type": "string",
"description": "IMEI of the device, if applicable"
},
"mac": {
"type": "string",
"description": "MAC address of the device"
},
"lanIp": {
"type": "string",
"description": "LAN IP address of the device"
},
"firmware": {
"type": "string",
"description": "Firmware version of the device"
},
"productType": {
"type": "string",
"description": "Product type of the device"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Additional property name"
},
"value": {
"type": "string",
"description": "Additional property value"
}
}
},
"description": "Additional device information"
}
}
},
"examples": {
"application/json": {
"name": "My AP",
"lat": 37.4180951010362,
"lng": -122.098531723022,
"address": "1600 Pennsylvania Ave",
"notes": "My AP's note",
"tags": [
"recently-added"
],
"networkId": "N_24329156",
"serial": "Q234-ABCD-5678",
"model": "MR34",
"imei": "123456789000000",
"mac": "00:11:22:33:44:55",
"lanIp": "1.2.3.4",
"firmware": "wireless-25-14",
"productType": "wireless",
"details": [
{
"name": "Catalyst serial",
"value": "123ABC"
}
]
}
}
}
},
"summary": "Claim a vMX into a network",
"tags": [
"networks",
"configure",
"devices",
"claim"
]
}
},
"/networks/{networkId}/devices/remove": {
"post": {
"description": "Remove a single device",
"operationId": "removeNetworkDevices",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "removeNetworkDevices",
"in": "body",
"schema": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "The serial of a device"
}
},
"example": {
"serial": "Q234-ABCD-5678"
},
"required": [
"serial"
]
},
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Remove a single device",
"tags": [
"networks",
"configure",
"devices"
]
}
},
"/networks/{networkId}/events": {
"get": {
"description": "List the events for the network",
"operationId": "getNetworkEvents",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"enum": [
"appliance",
"camera",
"cellularGateway",
"switch",
"systemsManager",
"wireless"
],
"name": "productType",
"in": "query",
"description": "The product type to fetch events for. This parameter is required for networks with multiple device types. Valid types are wireless, appliance, switch, systemsManager, camera, and cellularGateway"
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "includedEventTypes",
"in": "query",
"description": "A list of event types. The returned events will be filtered to only include events with these types."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "excludedEventTypes",
"in": "query",
"description": "A list of event types. The returned events will be filtered to exclude events with these types."
},
{
"type": "string",
"name": "deviceMac",
"in": "query",
"description": "The MAC address of the Meraki device which the list of events will be filtered with"
},
{
"type": "string",
"name": "deviceSerial",
"in": "query",
"description": "The serial of the Meraki device which the list of events will be filtered with"
},
{
"type": "string",
"name": "deviceName",
"in": "query",
"description": "The name of the Meraki device which the list of events will be filtered with"
},
{
"type": "string",
"name": "clientIp",
"in": "query",
"description": "The IP of the client which the list of events will be filtered with. Only supported for track-by-IP networks."
},
{
"type": "string",
"name": "clientMac",
"in": "query",
"description": "The MAC address of the client which the list of events will be filtered with. Only supported for track-by-MAC networks."
},
{
"type": "string",
"name": "clientName",
"in": "query",
"description": "The name, or partial name, of the client which the list of events will be filtered with"
},
{
"type": "string",
"name": "smDeviceMac",
"in": "query",
"description": "The MAC address of the Systems Manager device which the list of events will be filtered with"
},
{
"type": "string",
"name": "smDeviceName",
"in": "query",
"description": "The name of the Systems Manager device which the list of events will be filtered with"
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 10."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "A message regarding the events sent. Usually 'null' unless there are no events"
},
"pageStartAt": {
"type": "string",
"description": "An UTC ISO8601 string of the earliest occured at time of the listed events of the page."
},
"pageEndAt": {
"type": "string",
"description": "An UTC ISO8601 string of the latest occured at time of the listed events of the page."
},
"events": {
"type": "array",
"items": {
"type": "object",
"properties": {
"occurredAt": {
"type": "string",
"description": "An UTC ISO8601 string of the time the event occurred at."
},
"networkId": {
"type": "string",
"description": "The ID of the network."
},
"type": {
"type": "string",
"description": "The type of event being listed."
},
"description": {
"type": "string",
"description": "A description of the event the happened."
},
"category": {
"type": "string",
"description": "The category that the event type belongs to"
},
"clientId": {
"type": "string",
"description": "A string identifying the client. This could be a client's MAC or IP address"
},
"clientDescription": {
"type": "string",
"description": "A description of the client. This is usually the client's device name."
},
"clientMac": {
"type": "string",
"description": "The client's MAC address."
},
"deviceSerial": {
"type": "string",
"description": "The serial number of the device. Only shown if the device is an access point."
},
"deviceName": {
"type": "string",
"description": "The name of the device. Only shown if the device is an access point."
},
"ssidNumber": {
"type": "integer",
"description": "The SSID number of the device."
},
"eventData": {
"type": "object",
"properties": {
"radio": {
"type": "string",
"description": "The radio band number the client is trying to connect to."
},
"vap": {
"type": "string",
"description": "The virtual access point (VAP) number the client is connecting to."
},
"client_mac": {
"type": "string",
"description": "The client's MAC address"
},
"client_ip": {
"type": "string",
"description": "The client's IP address"
},
"channel": {
"type": "string",
"description": "The radio channel the client is connecting to."
},
"rssi": {
"type": "string",
"description": "The current received signal strength indication (RSSI) of the client connected to an AP."
},
"aid": {
"type": "string",
"description": "The association ID of the client."
}
},
"description": "An object containing more data related to the event."
}
}
},
"description": "An array of events that took place in the network."
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": {
"message": "Some error",
"pageStartAt": "2018-02-11T00:00:00.090210Z",
"pageEndAt": "2018-02-11T00:00:00.090210Z",
"events": [
{
"occurredAt": "2018-02-11T00:00:00.090210Z",
"networkId": "N_24329156",
"type": "association",
"description": "802.11 association",
"category": "80211",
"clientId": "k74272e",
"clientDescription": "Miles's phone",
"clientMac": "22:33:44:55:66:77",
"deviceSerial": "Q234-ABCD-5678",
"deviceName": "My AP",
"ssidNumber": 1,
"eventData": {
"radio": "1",
"vap": "1",
"client_mac": "22:33:44:55:66:77",
"client_ip": "1.2.3.4",
"channel": "36",
"rssi": "12",
"aid": "2104009183"
}
}
]
}
}
}
},
"summary": "List the events for the network",
"tags": [
"networks",
"monitor",
"events"
]
}
},
"/networks/{networkId}/events/eventTypes": {
"get": {
"description": "List the event type to human-readable description",
"operationId": "getNetworkEventsEventTypes",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Event category"
},
"type": {
"type": "string",
"description": "Event type"
},
"description": {
"type": "string",
"description": "Description of the event"
}
}
}
},
"examples": {
"application/json": [
{
"category": "802.11",
"type": "association",
"description": "802.11 association"
}
]
}
}
},
"summary": "List the event type to human-readable description",
"tags": [
"networks",
"monitor",
"events",
"eventTypes"
]
}
},
"/networks/{networkId}/firmwareUpgrades": {
"get": {
"description": "Get firmware upgrade information for a network",
"operationId": "getNetworkFirmwareUpgrades",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"upgradeWindow": {
"type": "object",
"properties": {
"dayOfWeek": {
"type": "string",
"enum": [
"fri",
"friday",
"mon",
"monday",
"sat",
"saturday",
"sun",
"sunday",
"thu",
"thursday",
"tue",
"tuesday",
"wed",
"wednesday"
],
"description": "Day of the week"
},
"hourOfDay": {
"type": "string",
"enum": [
"0:00",
"10:00",
"11:00",
"12:00",
"13:00",
"14:00",
"15:00",
"16:00",
"17:00",
"18:00",
"19:00",
"1:00",
"20:00",
"21:00",
"22:00",
"23:00",
"2:00",
"3:00",
"4:00",
"5:00",
"6:00",
"7:00",
"8:00",
"9:00"
],
"description": "Hour of the day"
}
},
"description": "Upgrade window for devices in network"
},
"timezone": {
"type": "string",
"description": "The timezone for the network"
},
"products": {
"type": "object",
"properties": {
"wireless": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"upgradeStrategy": {
"type": "string",
"enum": [
"minimizeClientDowntime",
"minimizeUpgradeTime"
],
"description": "The strategy that network devices will use to perform the upgrade. If unspecified, the scheduled upgrade will use the default strategy for the network.",
"x-release-stage": "beta"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"appliance": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"switch": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"camera": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"cellularGateway": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"sensor": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
}
},
"description": "The network devices to be updated"
}
}
},
"examples": {
"application/json": {
"upgradeWindow": {
"dayOfWeek": "sun",
"hourOfDay": "4:00"
},
"timezone": "America/Los_Angeles",
"products": {
"wireless": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"upgradeStrategy": "minimizeUpgradeTime",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
},
"appliance": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
},
"switch": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
},
"camera": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
},
"cellularGateway": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
},
"sensor": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
}
}
}
}
}
},
"summary": "Get firmware upgrade information for a network",
"tags": [
"networks",
"configure",
"firmwareUpgrades"
]
},
"put": {
"description": "Update firmware upgrade information for a network",
"operationId": "updateNetworkFirmwareUpgrades",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkFirmwareUpgrades",
"in": "body",
"schema": {
"type": "object",
"properties": {
"upgradeWindow": {
"type": "object",
"properties": {
"dayOfWeek": {
"type": "string",
"enum": [
"fri",
"friday",
"mon",
"monday",
"sat",
"saturday",
"sun",
"sunday",
"thu",
"thursday",
"tue",
"tuesday",
"wed",
"wednesday"
],
"description": "Day of the week"
},
"hourOfDay": {
"type": "string",
"enum": [
"0:00",
"10:00",
"11:00",
"12:00",
"13:00",
"14:00",
"15:00",
"16:00",
"17:00",
"18:00",
"19:00",
"1:00",
"20:00",
"21:00",
"22:00",
"23:00",
"2:00",
"3:00",
"4:00",
"5:00",
"6:00",
"7:00",
"8:00",
"9:00"
],
"description": "Hour of the day"
}
},
"description": "Upgrade window for devices in network"
},
"timezone": {
"type": "string",
"description": "The timezone for the network"
},
"products": {
"type": "object",
"properties": {
"wireless": {
"type": "object",
"properties": {
"nextUpgrade": {
"type": "object",
"properties": {
"upgradeStrategy": {
"type": "string",
"enum": [
"minimizeClientDowntime",
"minimizeUpgradeTime"
],
"description": "The strategy that network devices will use to perform the upgrade. If unspecified, the scheduled upgrade will use the default strategy for the network.",
"x-release-stage": "beta"
},
"time": {
"type": "string",
"description": "The time of the last successful upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The version ID"
}
},
"description": "The version to be updated to"
}
},
"description": "The pending firmware upgrade if it exists"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"appliance": {
"type": "object",
"properties": {
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"description": "The time of the last successful upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The version ID"
}
},
"description": "The version to be updated to"
}
},
"description": "The pending firmware upgrade if it exists"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"switch": {
"type": "object",
"properties": {
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"description": "The time of the last successful upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The version ID"
}
},
"description": "The version to be updated to"
}
},
"description": "The pending firmware upgrade if it exists"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"camera": {
"type": "object",
"properties": {
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"description": "The time of the last successful upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The version ID"
}
},
"description": "The version to be updated to"
}
},
"description": "The pending firmware upgrade if it exists"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"cellularGateway": {
"type": "object",
"properties": {
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"description": "The time of the last successful upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The version ID"
}
},
"description": "The version to be updated to"
}
},
"description": "The pending firmware upgrade if it exists"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"sensor": {
"type": "object",
"properties": {
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"description": "The time of the last successful upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The version ID"
}
},
"description": "The version to be updated to"
}
},
"description": "The pending firmware upgrade if it exists"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"switchCatalyst": {
"type": "object",
"properties": {
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"description": "The time of the last successful upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The version ID"
}
},
"description": "The version to be updated to"
}
},
"description": "The pending firmware upgrade if it exists"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
}
},
"description": "Contains information about the network to update"
}
},
"example": {
"upgradeWindow": {
"dayOfWeek": "sun",
"hourOfDay": "4:00"
},
"timezone": "America/Los_Angeles",
"products": {
"wireless": {
"nextUpgrade": {
"upgradeStrategy": "minimizeUpgradeTime",
"time": "2019-03-17T17:22:52Z",
"toVersion": {
"id": "1000"
}
},
"participateInNextBetaRelease": false
},
"appliance": {
"nextUpgrade": {
"time": "2019-03-17T17:22:52Z",
"toVersion": {
"id": "1001"
}
},
"participateInNextBetaRelease": false
},
"switch": {
"nextUpgrade": {
"time": "2019-03-17T17:22:52Z",
"toVersion": {
"id": "1002"
}
},
"participateInNextBetaRelease": false
},
"camera": {
"nextUpgrade": {
"time": "2019-03-17T17:22:52Z",
"toVersion": {
"id": "1003"
}
},
"participateInNextBetaRelease": false
},
"cellularGateway": {
"nextUpgrade": {
"time": "2019-03-17T17:22:52Z",
"toVersion": {
"id": "1004"
}
},
"participateInNextBetaRelease": false
},
"sensor": {
"nextUpgrade": {
"time": "2019-03-17T17:22:52Z",
"toVersion": {
"id": "1005"
}
},
"participateInNextBetaRelease": false
},
"switchCatalyst": {
"nextUpgrade": {
"time": "2019-03-17T17:22:52Z",
"toVersion": {
"id": "1234"
}
},
"participateInNextBetaRelease": false
}
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"upgradeWindow": {
"type": "object",
"properties": {
"dayOfWeek": {
"type": "string",
"enum": [
"fri",
"friday",
"mon",
"monday",
"sat",
"saturday",
"sun",
"sunday",
"thu",
"thursday",
"tue",
"tuesday",
"wed",
"wednesday"
],
"description": "Day of the week"
},
"hourOfDay": {
"type": "string",
"enum": [
"0:00",
"10:00",
"11:00",
"12:00",
"13:00",
"14:00",
"15:00",
"16:00",
"17:00",
"18:00",
"19:00",
"1:00",
"20:00",
"21:00",
"22:00",
"23:00",
"2:00",
"3:00",
"4:00",
"5:00",
"6:00",
"7:00",
"8:00",
"9:00"
],
"description": "Hour of the day"
}
},
"description": "Upgrade window for devices in network"
},
"timezone": {
"type": "string",
"description": "The timezone for the network"
},
"products": {
"type": "object",
"properties": {
"wireless": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"upgradeStrategy": {
"type": "string",
"enum": [
"minimizeClientDowntime",
"minimizeUpgradeTime"
],
"description": "The strategy that network devices will use to perform the upgrade. If unspecified, the scheduled upgrade will use the default strategy for the network.",
"x-release-stage": "beta"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"appliance": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"switch": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"camera": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"cellularGateway": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
},
"sensor": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the current version on the device"
},
"lastUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful firmware upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded from"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device upgraded to"
}
},
"description": "Details of the last firmware upgrade on the device"
},
"nextUpgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the next scheduled firmware upgrade"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Details of the version the device will upgrade to if it exists"
}
},
"description": "Details of the next firmware upgrade on the device"
},
"availableVersions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
}
},
"description": "Firmware versions available for upgrade"
},
"participateInNextBetaRelease": {
"type": "boolean",
"description": "Whether or not the network wants beta firmware"
}
},
"description": "The network device to be updated"
}
},
"description": "The network devices to be updated"
}
}
},
"examples": {
"application/json": {
"upgradeWindow": {
"dayOfWeek": "sun",
"hourOfDay": "4:00"
},
"timezone": "America/Los_Angeles",
"products": {
"wireless": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"upgradeStrategy": "minimizeUpgradeTime",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
},
"appliance": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
},
"switch": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
},
"camera": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
},
"cellularGateway": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
},
"sensor": {
"currentVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2020-03-17T17:22:52Z"
},
"lastUpgrade": {
"time": "2021-05-17T17:22:52Z",
"fromVersion": {
"id": "1234",
"firmware": "camera-10-8-1",
"shortName": "MV 10.8.1",
"releaseType": "stable",
"releaseDate": "2021-03-17T17:22:52Z"
},
"toVersion": {
"id": "4321",
"firmware": "camera-11-2-1",
"shortName": "MV 11.2.1",
"releaseType": "stable",
"releaseDate": "2019-03-17T17:22:52Z"
}
},
"nextUpgrade": {
"time": "2021-05-17T17:22:52Z",
"toVersion": {
"id": "2134",
"firmware": "camera-15-5-2",
"shortName": "MV 25.5.2",
"releaseType": "stable",
"releaseDate": "2021-05-28T17:22:52Z"
}
},
"availableVersions": [
{
"id": "3421",
"firmware": "camera-16-x-y",
"shortName": "MV 16.x.y",
"releaseType": "beta",
"releaseDate": "2020-11-28T17:22:52Z"
}
],
"participateInNextBetaRelease": false
}
}
}
}
}
},
"summary": "Update firmware upgrade information for a network",
"tags": [
"networks",
"configure",
"firmwareUpgrades"
]
}
},
"/networks/{networkId}/firmwareUpgrades/rollbacks": {
"post": {
"description": "Rollback a Firmware Upgrade For A Network",
"operationId": "createNetworkFirmwareUpgradesRollback",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkFirmwareUpgradesRollback",
"in": "body",
"schema": {
"type": "object",
"properties": {
"product": {
"type": "string",
"enum": [
"appliance",
"camera",
"cellularGateway",
"switch",
"switchCatalyst",
"wireless"
],
"description": "Product type to rollback (if the network is a combined network)"
},
"time": {
"type": "string",
"format": "date-time",
"description": "Scheduled time for the rollback"
},
"reasons": {
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"broke old features",
"other",
"performance",
"stability",
"testing",
"unifying networks versions"
],
"description": "Reason for the rollback"
},
"comment": {
"type": "string",
"description": "Additional comment about the rollback"
}
},
"required": [
"category",
"comment"
]
},
"description": "Reasons for the rollback"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The version ID"
}
},
"description": "Version to downgrade to (if the network has firmware flexibility)"
}
},
"example": {
"product": "switch",
"time": "2020-10-21T02:00:00Z",
"reasons": [
{
"category": "performance",
"comment": "Network was slower with the upgrade"
}
],
"toVersion": {
"id": "7857"
}
},
"required": [
"reasons"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"product": {
"type": "string",
"enum": [
"appliance",
"camera",
"cellularGateway",
"switch",
"switchCatalyst",
"wireless"
],
"description": "Product type to rollback (if the network is a combined network)"
},
"status": {
"type": "string",
"enum": [
"canceled",
"completed",
"in_progress",
"pending"
],
"description": "Status of the rollback"
},
"upgradeBatchId": {
"type": "string",
"description": "Batch ID of the firmware rollback"
},
"time": {
"type": "string",
"format": "date-time",
"description": "Scheduled time for the rollback"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version identifier"
},
"firmware": {
"type": "string",
"description": "Name of the firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "Version to downgrade to (if the network has firmware flexibility)"
},
"reasons": {
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"broke old features",
"other",
"performance",
"stability",
"testing",
"unifying networks versions"
],
"description": "Reason for the rollback"
},
"comment": {
"type": "string",
"description": "Additional comment about the rollback"
}
}
},
"description": "Reasons for the rollback"
}
}
},
"examples": {
"application/json": {
"product": "switch",
"status": "pending",
"upgradeBatchId": "23456",
"time": "2020-10-21T02:00:00Z",
"toVersion": {
"id": "7857",
"firmware": "switch-15-5-2",
"shortName": "MS 25.5.2",
"releaseType": "stable",
"releaseDate": "2020-03-28T17:22:52Z"
},
"reasons": [
{
"category": "performance",
"comment": "Network was slower with the upgrade"
}
]
}
}
}
},
"summary": "Rollback a Firmware Upgrade For A Network",
"tags": [
"networks",
"configure",
"firmwareUpgrades",
"rollbacks"
]
}
},
"/networks/{networkId}/firmwareUpgrades/staged/events": {
"get": {
"description": "Get the Staged Upgrade Event from a network",
"operationId": "getNetworkFirmwareUpgradesStagedEvents",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"products": {
"type": "object",
"properties": {
"switch": {
"type": "object",
"properties": {
"nextUpgrade": {
"type": "object",
"properties": {
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id of the Version being upgraded to"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
}
},
"description": "Details of the version the device will upgrade to"
}
},
"description": "Details of the next firmware upgrade"
}
},
"description": "The Switch network to be updated"
}
},
"description": "The network devices to be updated"
},
"stages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"group": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id of the Staged Upgrade Group"
},
"name": {
"type": "string",
"description": "Name of the Staged Upgrade Group"
},
"description": {
"type": "string",
"description": "Description of the Staged Upgrade Group"
}
},
"description": "The staged upgrade group"
},
"milestones": {
"type": "object",
"properties": {
"scheduledFor": {
"type": "string",
"format": "date-time",
"description": "Scheduled start time for the group"
},
"startedAt": {
"type": "string",
"format": "date-time",
"description": "Start time for the group"
},
"completedAt": {
"type": "string",
"format": "date-time",
"description": "Finish time for the group"
},
"canceledAt": {
"type": "string",
"format": "date-time",
"description": "Time that the group was canceled"
}
},
"description": "The Staged Upgrade Milestones for the stage"
},
"status": {
"type": "string",
"description": "Current upgrade status of the group"
}
}
},
"description": "The ordered stages in the network"
},
"reasons": {
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"broke old features",
"other",
"performance",
"stability",
"testing",
"unifying networks versions"
],
"description": "Reason for the rollback"
},
"comment": {
"type": "string",
"description": "Additional comment about the rollback"
}
}
},
"description": "Reasons for the rollback"
}
}
},
"examples": {
"application/json": {
"products": {
"switch": {
"nextUpgrade": {
"toVersion": {
"id": "1234",
"shortName": "MS 15.2.1"
}
}
}
},
"stages": [
{
"group": {
"id": "1234",
"name": "My Staged Upgrade Group",
"description": "My Staged Upgrade Group Description"
},
"milestones": {
"scheduledFor": "2018-02-11T00:00:00Z",
"startedAt": "2018-02-11T00:00:00Z",
"completedAt": "2018-02-11T00:00:00Z",
"canceledAt": "2018-02-11T00:00:00Z"
},
"status": "Completed"
}
],
"reasons": [
{
"category": "performance",
"comment": "Network was slower with the upgrade"
}
]
}
}
}
},
"summary": "Get the Staged Upgrade Event from a network",
"tags": [
"networks",
"configure",
"firmwareUpgrades",
"staged",
"events"
]
},
"post": {
"description": "Create a Staged Upgrade Event for a network",
"operationId": "createNetworkFirmwareUpgradesStagedEvent",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkFirmwareUpgradesStagedEvent",
"in": "body",
"schema": {
"type": "object",
"properties": {
"products": {
"type": "object",
"properties": {
"switch": {
"type": "object",
"properties": {
"nextUpgrade": {
"type": "object",
"properties": {
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The version ID"
}
},
"required": [
"id"
],
"description": "The version to be updated to for switch devices"
}
},
"description": "The next upgrade version for the switch network"
}
},
"description": "Version information for the switch network being upgraded"
},
"switchCatalyst": {
"type": "object",
"properties": {
"nextUpgrade": {
"type": "object",
"properties": {
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The version ID"
}
},
"required": [
"id"
],
"description": "The version to be updated to for switch Catalyst devices"
}
},
"description": "The next upgrade version for the switch network"
}
},
"description": "Version information for the switch network being upgraded"
}
},
"description": "Contains firmware upgrade version information"
},
"stages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"group": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the Staged Upgrade Group"
}
},
"required": [
"id"
],
"description": "The Staged Upgrade Group containing the name and ID"
},
"milestones": {
"type": "object",
"properties": {
"scheduledFor": {
"type": "string",
"description": "The start time of the staged upgrade stage. (In ISO-8601 format, in the time zone of the network.)"
}
},
"required": [
"scheduledFor"
],
"description": "The Staged Upgrade Milestones for the specific stage"
}
}
},
"description": "All firmware upgrade stages in the network with their start time."
}
},
"example": {
"products": {
"switch": {
"nextUpgrade": {
"toVersion": {
"id": "1234"
}
}
},
"switchCatalyst": {
"nextUpgrade": {
"toVersion": {
"id": "4321"
}
}
}
},
"stages": [
{
"group": {
"id": "1234"
},
"milestones": {
"scheduledFor": "2018-02-11T00:00:00Z"
}
}
]
},
"required": [
"stages"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"products": {
"type": "object",
"properties": {
"switch": {
"type": "object",
"properties": {
"nextUpgrade": {
"type": "object",
"properties": {
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id of the Version being upgraded to"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
}
},
"description": "Details of the version the device will upgrade to"
}
},
"description": "Details of the next firmware upgrade"
}
},
"description": "The Switch network to be updated"
}
},
"description": "The network devices to be updated"
},
"stages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"group": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id of the Staged Upgrade Group"
},
"name": {
"type": "string",
"description": "Name of the Staged Upgrade Group"
},
"description": {
"type": "string",
"description": "Description of the Staged Upgrade Group"
}
},
"description": "The staged upgrade group"
},
"milestones": {
"type": "object",
"properties": {
"scheduledFor": {
"type": "string",
"format": "date-time",
"description": "Scheduled start time for the group"
},
"startedAt": {
"type": "string",
"format": "date-time",
"description": "Start time for the group"
},
"completedAt": {
"type": "string",
"format": "date-time",
"description": "Finish time for the group"
},
"canceledAt": {
"type": "string",
"format": "date-time",
"description": "Time that the group was canceled"
}
},
"description": "The Staged Upgrade Milestones for the stage"
},
"status": {
"type": "string",
"description": "Current upgrade status of the group"
}
}
},
"description": "The ordered stages in the network"
},
"reasons": {
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"broke old features",
"other",
"performance",
"stability",
"testing",
"unifying networks versions"
],
"description": "Reason for the rollback"
},
"comment": {
"type": "string",
"description": "Additional comment about the rollback"
}
}
},
"description": "Reasons for the rollback"
}
}
},
"examples": {
"application/json": {
"products": {
"switch": {
"nextUpgrade": {
"toVersion": {
"id": "1234",
"shortName": "MS 15.2.1"
}
}
}
},
"stages": [
{
"group": {
"id": "1234",
"name": "My Staged Upgrade Group",
"description": "My Staged Upgrade Group Description"
},
"milestones": {
"scheduledFor": "2018-02-11T00:00:00Z",
"startedAt": "2018-02-11T00:00:00Z",
"completedAt": "2018-02-11T00:00:00Z",
"canceledAt": "2018-02-11T00:00:00Z"
},
"status": "Completed"
}
],
"reasons": [
{
"category": "performance",
"comment": "Network was slower with the upgrade"
}
]
}
}
}
},
"summary": "Create a Staged Upgrade Event for a network",
"tags": [
"networks",
"configure",
"firmwareUpgrades",
"staged",
"events"
]
},
"put": {
"description": "Update the Staged Upgrade Event for a network",
"operationId": "updateNetworkFirmwareUpgradesStagedEvents",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkFirmwareUpgradesStagedEvents",
"in": "body",
"schema": {
"type": "object",
"properties": {
"stages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"group": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the Staged Upgrade Group"
}
},
"required": [
"id"
],
"description": "The Staged Upgrade Group containing the name and ID"
},
"milestones": {
"type": "object",
"properties": {
"scheduledFor": {
"type": "string",
"description": "The start time of the staged upgrade stage. (In ISO-8601 format, in the time zone of the network.)"
}
},
"required": [
"scheduledFor"
],
"description": "The Staged Upgrade Milestones for the specific stage"
}
}
},
"description": "All firmware upgrade stages in the network with their start time."
}
},
"example": {
"stages": [
{
"group": {
"id": "1234"
},
"milestones": {
"scheduledFor": "2018-02-11T00:00:00Z"
}
}
]
},
"required": [
"stages"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"products": {
"type": "object",
"properties": {
"switch": {
"type": "object",
"properties": {
"nextUpgrade": {
"type": "object",
"properties": {
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id of the Version being upgraded to"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
}
},
"description": "Details of the version the device will upgrade to"
}
},
"description": "Details of the next firmware upgrade"
}
},
"description": "The Switch network to be updated"
}
},
"description": "The network devices to be updated"
},
"stages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"group": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id of the Staged Upgrade Group"
},
"name": {
"type": "string",
"description": "Name of the Staged Upgrade Group"
},
"description": {
"type": "string",
"description": "Description of the Staged Upgrade Group"
}
},
"description": "The staged upgrade group"
},
"milestones": {
"type": "object",
"properties": {
"scheduledFor": {
"type": "string",
"format": "date-time",
"description": "Scheduled start time for the group"
},
"startedAt": {
"type": "string",
"format": "date-time",
"description": "Start time for the group"
},
"completedAt": {
"type": "string",
"format": "date-time",
"description": "Finish time for the group"
},
"canceledAt": {
"type": "string",
"format": "date-time",
"description": "Time that the group was canceled"
}
},
"description": "The Staged Upgrade Milestones for the stage"
},
"status": {
"type": "string",
"description": "Current upgrade status of the group"
}
}
},
"description": "The ordered stages in the network"
},
"reasons": {
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"broke old features",
"other",
"performance",
"stability",
"testing",
"unifying networks versions"
],
"description": "Reason for the rollback"
},
"comment": {
"type": "string",
"description": "Additional comment about the rollback"
}
}
},
"description": "Reasons for the rollback"
}
}
},
"examples": {
"application/json": {
"products": {
"switch": {
"nextUpgrade": {
"toVersion": {
"id": "1234",
"shortName": "MS 15.2.1"
}
}
}
},
"stages": [
{
"group": {
"id": "1234",
"name": "My Staged Upgrade Group",
"description": "My Staged Upgrade Group Description"
},
"milestones": {
"scheduledFor": "2018-02-11T00:00:00Z",
"startedAt": "2018-02-11T00:00:00Z",
"completedAt": "2018-02-11T00:00:00Z",
"canceledAt": "2018-02-11T00:00:00Z"
},
"status": "Completed"
}
],
"reasons": [
{
"category": "performance",
"comment": "Network was slower with the upgrade"
}
]
}
}
}
},
"summary": "Update the Staged Upgrade Event for a network",
"tags": [
"networks",
"configure",
"firmwareUpgrades",
"staged",
"events"
]
}
},
"/networks/{networkId}/firmwareUpgrades/staged/events/defer": {
"post": {
"description": "Postpone by 1 week all pending staged upgrade stages for a network",
"operationId": "deferNetworkFirmwareUpgradesStagedEvents",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"products": {
"type": "object",
"properties": {
"switch": {
"type": "object",
"properties": {
"nextUpgrade": {
"type": "object",
"properties": {
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id of the Version being upgraded to"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
}
},
"description": "Details of the version the device will upgrade to"
}
},
"description": "Details of the next firmware upgrade"
}
},
"description": "The Switch network to be updated"
}
},
"description": "The network devices to be updated"
},
"stages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"group": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id of the Staged Upgrade Group"
},
"name": {
"type": "string",
"description": "Name of the Staged Upgrade Group"
},
"description": {
"type": "string",
"description": "Description of the Staged Upgrade Group"
}
},
"description": "The staged upgrade group"
},
"milestones": {
"type": "object",
"properties": {
"scheduledFor": {
"type": "string",
"format": "date-time",
"description": "Scheduled start time for the group"
},
"startedAt": {
"type": "string",
"format": "date-time",
"description": "Start time for the group"
},
"completedAt": {
"type": "string",
"format": "date-time",
"description": "Finish time for the group"
},
"canceledAt": {
"type": "string",
"format": "date-time",
"description": "Time that the group was canceled"
}
},
"description": "The Staged Upgrade Milestones for the stage"
},
"status": {
"type": "string",
"description": "Current upgrade status of the group"
}
}
},
"description": "The ordered stages in the network"
},
"reasons": {
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"broke old features",
"other",
"performance",
"stability",
"testing",
"unifying networks versions"
],
"description": "Reason for the rollback"
},
"comment": {
"type": "string",
"description": "Additional comment about the rollback"
}
}
},
"description": "Reasons for the rollback"
}
}
},
"examples": {
"application/json": {
"products": {
"switch": {
"nextUpgrade": {
"toVersion": {
"id": "1234",
"shortName": "MS 15.2.1"
}
}
}
},
"stages": [
{
"group": {
"id": "1234",
"name": "My Staged Upgrade Group",
"description": "My Staged Upgrade Group Description"
},
"milestones": {
"scheduledFor": "2018-02-11T00:00:00Z",
"startedAt": "2018-02-11T00:00:00Z",
"completedAt": "2018-02-11T00:00:00Z",
"canceledAt": "2018-02-11T00:00:00Z"
},
"status": "Completed"
}
],
"reasons": [
{
"category": "performance",
"comment": "Network was slower with the upgrade"
}
]
}
}
}
},
"summary": "Postpone by 1 week all pending staged upgrade stages for a network",
"tags": [
"networks",
"configure",
"firmwareUpgrades",
"staged",
"events"
]
}
},
"/networks/{networkId}/firmwareUpgrades/staged/events/rollbacks": {
"post": {
"description": "Rollback a Staged Upgrade Event for a network",
"operationId": "rollbacksNetworkFirmwareUpgradesStagedEvents",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "rollbacksNetworkFirmwareUpgradesStagedEvents",
"in": "body",
"schema": {
"type": "object",
"properties": {
"stages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"group": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the Staged Upgrade Group"
}
},
"required": [
"id"
],
"description": "The Staged Upgrade Group containing the name and ID"
},
"milestones": {
"type": "object",
"properties": {
"scheduledFor": {
"type": "string",
"description": "The start time of the staged upgrade stage. (In ISO-8601 format, in the time zone of the network.)"
}
},
"required": [
"scheduledFor"
],
"description": "The Staged Upgrade Milestones for the specific stage"
}
}
},
"description": "All completed or in-progress stages in the network with their new start times. All pending stages will be canceled"
},
"reasons": {
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"broke old features",
"other",
"performance",
"stability",
"testing",
"unifying networks versions"
],
"description": "Reason for the rollback"
},
"comment": {
"type": "string",
"description": "Additional comment about the rollback"
}
},
"required": [
"category",
"comment"
]
},
"description": "The reason for rolling back the staged upgrade"
}
},
"example": {
"stages": [
{
"group": {
"id": "1234"
},
"milestones": {
"scheduledFor": "2018-02-11T00:00:00Z"
}
}
],
"reasons": [
{
"category": "performance",
"comment": "Network was slower with the upgrade"
}
]
},
"required": [
"stages"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"products": {
"type": "object",
"properties": {
"switch": {
"type": "object",
"properties": {
"nextUpgrade": {
"type": "object",
"properties": {
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id of the Version being upgraded to"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
}
},
"description": "Details of the version the device will upgrade to"
}
},
"description": "Details of the next firmware upgrade"
}
},
"description": "The Switch network to be updated"
}
},
"description": "The network devices to be updated"
},
"stages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"group": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id of the Staged Upgrade Group"
},
"name": {
"type": "string",
"description": "Name of the Staged Upgrade Group"
},
"description": {
"type": "string",
"description": "Description of the Staged Upgrade Group"
}
},
"description": "The staged upgrade group"
},
"milestones": {
"type": "object",
"properties": {
"scheduledFor": {
"type": "string",
"format": "date-time",
"description": "Scheduled start time for the group"
},
"startedAt": {
"type": "string",
"format": "date-time",
"description": "Start time for the group"
},
"completedAt": {
"type": "string",
"format": "date-time",
"description": "Finish time for the group"
},
"canceledAt": {
"type": "string",
"format": "date-time",
"description": "Time that the group was canceled"
}
},
"description": "The Staged Upgrade Milestones for the stage"
},
"status": {
"type": "string",
"description": "Current upgrade status of the group"
}
}
},
"description": "The ordered stages in the network"
},
"reasons": {
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"broke old features",
"other",
"performance",
"stability",
"testing",
"unifying networks versions"
],
"description": "Reason for the rollback"
},
"comment": {
"type": "string",
"description": "Additional comment about the rollback"
}
}
},
"description": "Reasons for the rollback"
}
}
},
"examples": {
"application/json": {
"products": {
"switch": {
"nextUpgrade": {
"toVersion": {
"id": "1234",
"shortName": "MS 15.2.1"
}
}
}
},
"stages": [
{
"group": {
"id": "1234",
"name": "My Staged Upgrade Group",
"description": "My Staged Upgrade Group Description"
},
"milestones": {
"scheduledFor": "2018-02-11T00:00:00Z",
"startedAt": "2018-02-11T00:00:00Z",
"completedAt": "2018-02-11T00:00:00Z",
"canceledAt": "2018-02-11T00:00:00Z"
},
"status": "Completed"
}
],
"reasons": [
{
"category": "performance",
"comment": "Network was slower with the upgrade"
}
]
}
}
}
},
"summary": "Rollback a Staged Upgrade Event for a network",
"tags": [
"networks",
"configure",
"firmwareUpgrades",
"staged",
"events"
]
}
},
"/networks/{networkId}/firmwareUpgrades/staged/groups": {
"get": {
"description": "List of Staged Upgrade Groups in a network",
"operationId": "getNetworkFirmwareUpgradesStagedGroups",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"groupId": {
"type": "string",
"description": "Id of staged upgrade group"
},
"name": {
"type": "string",
"description": "Name of the Staged Upgrade Group"
},
"description": {
"type": "string",
"description": "Description of the Staged Upgrade Group"
},
"isDefault": {
"type": "boolean",
"description": "Boolean indicating the default Group. Any device that does not have a group explicitly assigned will upgrade with this group"
},
"assignedDevices": {
"type": "object",
"properties": {
"devices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Serial of the device"
},
"name": {
"type": "string",
"description": "Name of the device"
}
}
},
"description": "Data Array of Devices containing the name and serial"
},
"switchStacks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the Switch Stack"
},
"name": {
"type": "string",
"description": "Name of the Switch Stack"
}
}
},
"description": "Data Array of Switch Stacks containing the name and id"
}
},
"description": "The devices and Switch Stacks assigned to the Group"
}
}
}
},
"examples": {
"application/json": [
{
"groupId": "1234",
"name": "My Staged Upgrade Group",
"description": "The description of the group",
"isDefault": false,
"assignedDevices": {
"devices": [
{
"serial": "Q234-ABCD-5678",
"name": "Device Name"
}
],
"switchStacks": [
{
"id": "1234",
"name": "Stack Name"
}
]
}
}
]
}
}
},
"summary": "List of Staged Upgrade Groups in a network",
"tags": [
"networks",
"configure",
"firmwareUpgrades",
"staged",
"groups"
]
},
"post": {
"description": "Create a Staged Upgrade Group for a network",
"operationId": "createNetworkFirmwareUpgradesStagedGroup",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkFirmwareUpgradesStagedGroup",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the Staged Upgrade Group. Length must be 1 to 255 characters"
},
"description": {
"type": "string",
"description": "Description of the Staged Upgrade Group. Length must be 1 to 255 characters"
},
"isDefault": {
"type": "boolean",
"description": "Boolean indicating the default Group. Any device that does not have a group explicitly assigned will upgrade with this group"
},
"assignedDevices": {
"type": "object",
"properties": {
"devices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Serial of the device"
},
"name": {
"type": "string",
"description": "Name of the device"
}
},
"required": [
"serial"
]
},
"description": "Data Array of Devices containing the name and serial"
},
"switchStacks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the Switch Stack"
},
"name": {
"type": "string",
"description": "Name of the Switch Stack"
}
},
"required": [
"id"
]
},
"description": "Data Array of Switch Stacks containing the name and id"
}
},
"description": "The devices and Switch Stacks assigned to the Group"
}
},
"example": {
"name": "My Staged Upgrade Group",
"description": "The description of the group",
"isDefault": false,
"assignedDevices": {
"devices": [
{
"serial": "Q234-ABCD-5678",
"name": "Device Name"
}
],
"switchStacks": [
{
"id": "1234",
"name": "Stack Name"
}
]
}
},
"required": [
"name",
"isDefault"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"groupId": {
"type": "string",
"description": "Id of staged upgrade group"
},
"name": {
"type": "string",
"description": "Name of the Staged Upgrade Group"
},
"description": {
"type": "string",
"description": "Description of the Staged Upgrade Group"
},
"isDefault": {
"type": "boolean",
"description": "Boolean indicating the default Group. Any device that does not have a group explicitly assigned will upgrade with this group"
},
"assignedDevices": {
"type": "object",
"properties": {
"devices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Serial of the device"
},
"name": {
"type": "string",
"description": "Name of the device"
}
}
},
"description": "Data Array of Devices containing the name and serial"
},
"switchStacks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the Switch Stack"
},
"name": {
"type": "string",
"description": "Name of the Switch Stack"
}
}
},
"description": "Data Array of Switch Stacks containing the name and id"
}
},
"description": "The devices and Switch Stacks assigned to the Group"
}
}
},
"examples": {
"application/json": {
"groupId": "1234",
"name": "My Staged Upgrade Group",
"description": "The description of the group",
"isDefault": false,
"assignedDevices": {
"devices": [
{
"serial": "Q234-ABCD-5678",
"name": "Device Name"
}
],
"switchStacks": [
{
"id": "1234",
"name": "Stack Name"
}
]
}
}
}
}
},
"summary": "Create a Staged Upgrade Group for a network",
"tags": [
"networks",
"configure",
"firmwareUpgrades",
"staged",
"groups"
]
}
},
"/networks/{networkId}/firmwareUpgrades/staged/groups/{groupId}": {
"get": {
"description": "Get a Staged Upgrade Group from a network",
"operationId": "getNetworkFirmwareUpgradesStagedGroup",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "groupId",
"in": "path",
"description": "Group ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"groupId": {
"type": "string",
"description": "Id of staged upgrade group"
},
"name": {
"type": "string",
"description": "Name of the Staged Upgrade Group"
},
"description": {
"type": "string",
"description": "Description of the Staged Upgrade Group"
},
"isDefault": {
"type": "boolean",
"description": "Boolean indicating the default Group. Any device that does not have a group explicitly assigned will upgrade with this group"
},
"assignedDevices": {
"type": "object",
"properties": {
"devices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Serial of the device"
},
"name": {
"type": "string",
"description": "Name of the device"
}
}
},
"description": "Data Array of Devices containing the name and serial"
},
"switchStacks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the Switch Stack"
},
"name": {
"type": "string",
"description": "Name of the Switch Stack"
}
}
},
"description": "Data Array of Switch Stacks containing the name and id"
}
},
"description": "The devices and Switch Stacks assigned to the Group"
}
}
},
"examples": {
"application/json": {
"groupId": "1234",
"name": "My Staged Upgrade Group",
"description": "The description of the group",
"isDefault": false,
"assignedDevices": {
"devices": [
{
"serial": "Q234-ABCD-5678",
"name": "Device Name"
}
],
"switchStacks": [
{
"id": "1234",
"name": "Stack Name"
}
]
}
}
}
}
},
"summary": "Get a Staged Upgrade Group from a network",
"tags": [
"networks",
"configure",
"firmwareUpgrades",
"staged",
"groups"
]
},
"put": {
"description": "Update a Staged Upgrade Group for a network",
"operationId": "updateNetworkFirmwareUpgradesStagedGroup",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "groupId",
"in": "path",
"description": "Group ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkFirmwareUpgradesStagedGroup",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the Staged Upgrade Group. Length must be 1 to 255 characters"
},
"description": {
"type": "string",
"description": "Description of the Staged Upgrade Group. Length must be 1 to 255 characters"
},
"isDefault": {
"type": "boolean",
"description": "Boolean indicating the default Group. Any device that does not have a group explicitly assigned will upgrade with this group"
},
"assignedDevices": {
"type": "object",
"properties": {
"devices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Serial of the device"
},
"name": {
"type": "string",
"description": "Name of the device"
}
},
"required": [
"serial"
]
},
"description": "Data Array of Devices containing the name and serial"
},
"switchStacks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the Switch Stack"
},
"name": {
"type": "string",
"description": "Name of the Switch Stack"
}
},
"required": [
"id"
]
},
"description": "Data Array of Switch Stacks containing the name and id"
}
},
"description": "The devices and Switch Stacks assigned to the Group"
}
},
"example": {
"name": "My Staged Upgrade Group",
"description": "The description of the group",
"isDefault": false,
"assignedDevices": {
"devices": [
{
"serial": "Q234-ABCD-5678",
"name": "Device Name"
}
],
"switchStacks": [
{
"id": "1234",
"name": "Stack Name"
}
]
}
},
"required": [
"name",
"isDefault"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"groupId": {
"type": "string",
"description": "Id of staged upgrade group"
},
"name": {
"type": "string",
"description": "Name of the Staged Upgrade Group"
},
"description": {
"type": "string",
"description": "Description of the Staged Upgrade Group"
},
"isDefault": {
"type": "boolean",
"description": "Boolean indicating the default Group. Any device that does not have a group explicitly assigned will upgrade with this group"
},
"assignedDevices": {
"type": "object",
"properties": {
"devices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Serial of the device"
},
"name": {
"type": "string",
"description": "Name of the device"
}
}
},
"description": "Data Array of Devices containing the name and serial"
},
"switchStacks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the Switch Stack"
},
"name": {
"type": "string",
"description": "Name of the Switch Stack"
}
}
},
"description": "Data Array of Switch Stacks containing the name and id"
}
},
"description": "The devices and Switch Stacks assigned to the Group"
}
}
},
"examples": {
"application/json": {
"groupId": "1234",
"name": "My Staged Upgrade Group",
"description": "The description of the group",
"isDefault": false,
"assignedDevices": {
"devices": [
{
"serial": "Q234-ABCD-5678",
"name": "Device Name"
}
],
"switchStacks": [
{
"id": "1234",
"name": "Stack Name"
}
]
}
}
}
}
},
"summary": "Update a Staged Upgrade Group for a network",
"tags": [
"networks",
"configure",
"firmwareUpgrades",
"staged",
"groups"
]
},
"delete": {
"description": "Delete a Staged Upgrade Group",
"operationId": "deleteNetworkFirmwareUpgradesStagedGroup",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "groupId",
"in": "path",
"description": "Group ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a Staged Upgrade Group",
"tags": [
"networks",
"configure",
"firmwareUpgrades",
"staged",
"groups"
]
}
},
"/networks/{networkId}/firmwareUpgrades/staged/stages": {
"get": {
"description": "Order of Staged Upgrade Groups in a network",
"operationId": "getNetworkFirmwareUpgradesStagedStages",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"group": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id of the Staged Upgrade Group"
},
"name": {
"type": "string",
"description": "Name of the Staged Upgrade Group"
},
"description": {
"type": "string",
"description": "Description of the Staged Upgrade Group"
}
},
"description": "The Staged Upgrade Group"
}
}
}
},
"examples": {
"application/json": [
{
"group": {
"id": "1234",
"name": "My Staged Upgrade Group",
"description": "My Staged Upgrade Description"
}
}
]
}
}
},
"summary": "Order of Staged Upgrade Groups in a network",
"tags": [
"networks",
"configure",
"firmwareUpgrades",
"staged",
"stages"
]
},
"put": {
"description": "Assign Staged Upgrade Group order in the sequence.",
"operationId": "updateNetworkFirmwareUpgradesStagedStages",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkFirmwareUpgradesStagedStages",
"in": "body",
"schema": {
"type": "object",
"properties": {
"_json": {
"type": "array",
"items": {
"type": "object",
"properties": {
"group": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the Staged Upgrade Group"
}
},
"required": [
"id"
],
"description": "The Staged Upgrade Group"
}
}
},
"description": "Array of Staged Upgrade Groups"
}
},
"example": {
"_json": [
{
"group": {
"id": "1234"
}
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"group": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id of the Staged Upgrade Group"
},
"name": {
"type": "string",
"description": "Name of the Staged Upgrade Group"
},
"description": {
"type": "string",
"description": "Description of the Staged Upgrade Group"
}
},
"description": "The Staged Upgrade Group"
}
}
}
},
"examples": {
"application/json": [
{
"group": {
"id": "1234",
"name": "My Staged Upgrade Group",
"description": "My Staged Upgrade Description"
}
}
]
}
}
},
"summary": "Assign Staged Upgrade Group order in the sequence.",
"tags": [
"networks",
"configure",
"firmwareUpgrades",
"staged",
"stages"
]
}
},
"/networks/{networkId}/floorPlans": {
"get": {
"description": "List the floor plans that belong to your network",
"operationId": "getNetworkFloorPlans",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"floorPlanId": {
"type": "string",
"description": "Floor plan ID"
},
"imageUrl": {
"type": "string",
"description": "The url link for the floor plan image."
},
"imageUrlExpiresAt": {
"type": "string",
"description": "The time the image url link will expire."
},
"imageExtension": {
"type": "string",
"description": "The format type of the image."
},
"imageMd5": {
"type": "string",
"format": "byte",
"description": "The file contents (a base 64 encoded string) of your new image. Supported formats are PNG, GIF, and JPG. Note that all images are saved as PNG files, regardless of the format they are uploaded in. If you upload a new image, and you do NOT specify any new geolocation fields ('center, 'topLeftCorner', etc), the floor plan will be recentered with no rotation in order to maintain the aspect ratio of your new image."
},
"name": {
"type": "string",
"description": "The name of your floor plan."
},
"devices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the device"
},
"lat": {
"type": "number",
"format": "float",
"description": "Latitude of the device"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude of the device"
},
"address": {
"type": "string",
"description": "Physical address of the device"
},
"notes": {
"type": "string",
"description": "Notes for the device, limited to 255 characters"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of tags assigned to the device"
},
"networkId": {
"type": "string",
"description": "ID of the network the device belongs to"
},
"serial": {
"type": "string",
"description": "Serial number of the device"
},
"model": {
"type": "string",
"description": "Model of the device"
},
"imei": {
"type": "string",
"description": "IMEI of the device, if applicable"
},
"mac": {
"type": "string",
"description": "MAC address of the device"
},
"lanIp": {
"type": "string",
"description": "LAN IP address of the device"
},
"firmware": {
"type": "string",
"description": "Firmware version of the device"
},
"productType": {
"type": "string",
"description": "Product type of the device"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Additional property name"
},
"value": {
"type": "string",
"description": "Additional property value"
}
}
},
"description": "Additional device information"
}
}
},
"description": "List of devices for the floorplan"
},
"width": {
"type": "number",
"format": "float",
"description": "The width of your floor plan."
},
"height": {
"type": "number",
"format": "float",
"description": "The height of your floor plan."
},
"center": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the center of your floor plan. The 'center' or two adjacent corners (e.g. 'topLeftCorner' and 'bottomLeftCorner') must be specified. If 'center' is specified, the floor plan is placed over that point with no rotation. If two adjacent corners are specified, the floor plan is rotated to line up with the two specified points. The aspect ratio of the floor plan's image is preserved regardless of which corners/center are specified. (This means if that more than two corners are specified, only two corners may be used to preserve the floor plan's aspect ratio.). No two points can have the same latitude, longitude pair."
},
"bottomLeftCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the bottom left corner of your floor plan."
},
"bottomRightCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the bottom right corner of your floor plan."
},
"topLeftCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the top left corner of your floor plan."
},
"topRightCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the top right corner of your floor plan."
}
}
}
},
"examples": {
"application/json": [
{
"floorPlanId": "g_1234567",
"imageUrl": "https://meraki-na.s3.amazonaws.com/assets/...",
"imageUrlExpiresAt": "2019-06-11 16:04:54 +00:00",
"imageExtension": "png",
"imageMd5": "2a9edd3f4ffd80130c647d13eacb59f3",
"name": "HQ Floor Plan",
"devices": [
{
"name": "My AP",
"lat": 37.4180951010362,
"lng": -122.098531723022,
"address": "1600 Pennsylvania Ave",
"notes": "My AP's note",
"tags": [
"recently-added"
],
"networkId": "N_24329156",
"serial": "Q234-ABCD-5678",
"model": "MR34",
"imei": "123456789000000",
"mac": "00:11:22:33:44:55",
"lanIp": "1.2.3.4",
"firmware": "wireless-25-14",
"productType": "wireless",
"details": [
{
"name": "Catalyst serial",
"value": "123ABC"
}
]
}
],
"width": 100.0,
"height": 150.1,
"center": {
"lat": 37.770040510499996,
"lng": -122.38714009525
},
"bottomLeftCorner": {
"lat": 37.7696461495,
"lng": -122.3880815506
},
"bottomRightCorner": {
"lat": 37.771524649766654,
"lng": -122.38795275055205
},
"topLeftCorner": {
"lat": 37.769700101836364,
"lng": -122.3888684251381
},
"topRightCorner": {
"lat": 37.77157860210302,
"lng": -122.38873962509012
}
}
]
}
}
},
"summary": "List the floor plans that belong to your network",
"tags": [
"networks",
"configure",
"floorPlans"
]
},
"post": {
"description": "Upload a floor plan",
"operationId": "createNetworkFloorPlan",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkFloorPlan",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of your floor plan."
},
"center": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the center of your floor plan. The 'center' or two adjacent corners (e.g. 'topLeftCorner' and 'bottomLeftCorner') must be specified. If 'center' is specified, the floor plan is placed over that point with no rotation. If two adjacent corners are specified, the floor plan is rotated to line up with the two specified points. The aspect ratio of the floor plan's image is preserved regardless of which corners/center are specified. (This means if that more than two corners are specified, only two corners may be used to preserve the floor plan's aspect ratio.). No two points can have the same latitude, longitude pair."
},
"bottomLeftCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the bottom left corner of your floor plan."
},
"bottomRightCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the bottom right corner of your floor plan."
},
"topLeftCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the top left corner of your floor plan."
},
"topRightCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the top right corner of your floor plan."
},
"imageContents": {
"type": "string",
"format": "byte",
"description": "The file contents (a base 64 encoded string) of your image. Supported formats are PNG, GIF, and JPG. Note that all images are saved as PNG files, regardless of the format they are uploaded in."
}
},
"example": {
"name": "HQ Floor Plan",
"center": {
"lat": 37.770040510499996,
"lng": -122.38714009525
},
"bottomLeftCorner": {
"lat": 37.770040510499996,
"lng": -122.38714009525
},
"bottomRightCorner": {
"lat": 37.770040510499996,
"lng": -122.38714009525
},
"topLeftCorner": {
"lat": 37.770040510499996,
"lng": -122.38714009525
},
"topRightCorner": {
"lat": 37.770040510499996,
"lng": -122.38714009525
},
"imageContents": "2a9edd3f4ffd80130c647d13eacb59f3"
},
"required": [
"name",
"imageContents"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"floorPlanId": {
"type": "string",
"description": "Floor plan ID"
},
"imageUrl": {
"type": "string",
"description": "The url link for the floor plan image."
},
"imageUrlExpiresAt": {
"type": "string",
"description": "The time the image url link will expire."
},
"imageExtension": {
"type": "string",
"description": "The format type of the image."
},
"imageMd5": {
"type": "string",
"format": "byte",
"description": "The file contents (a base 64 encoded string) of your new image. Supported formats are PNG, GIF, and JPG. Note that all images are saved as PNG files, regardless of the format they are uploaded in. If you upload a new image, and you do NOT specify any new geolocation fields ('center, 'topLeftCorner', etc), the floor plan will be recentered with no rotation in order to maintain the aspect ratio of your new image."
},
"name": {
"type": "string",
"description": "The name of your floor plan."
},
"devices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the device"
},
"lat": {
"type": "number",
"format": "float",
"description": "Latitude of the device"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude of the device"
},
"address": {
"type": "string",
"description": "Physical address of the device"
},
"notes": {
"type": "string",
"description": "Notes for the device, limited to 255 characters"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of tags assigned to the device"
},
"networkId": {
"type": "string",
"description": "ID of the network the device belongs to"
},
"serial": {
"type": "string",
"description": "Serial number of the device"
},
"model": {
"type": "string",
"description": "Model of the device"
},
"imei": {
"type": "string",
"description": "IMEI of the device, if applicable"
},
"mac": {
"type": "string",
"description": "MAC address of the device"
},
"lanIp": {
"type": "string",
"description": "LAN IP address of the device"
},
"firmware": {
"type": "string",
"description": "Firmware version of the device"
},
"productType": {
"type": "string",
"description": "Product type of the device"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Additional property name"
},
"value": {
"type": "string",
"description": "Additional property value"
}
}
},
"description": "Additional device information"
}
}
},
"description": "List of devices for the floorplan"
},
"width": {
"type": "number",
"format": "float",
"description": "The width of your floor plan."
},
"height": {
"type": "number",
"format": "float",
"description": "The height of your floor plan."
},
"center": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the center of your floor plan. The 'center' or two adjacent corners (e.g. 'topLeftCorner' and 'bottomLeftCorner') must be specified. If 'center' is specified, the floor plan is placed over that point with no rotation. If two adjacent corners are specified, the floor plan is rotated to line up with the two specified points. The aspect ratio of the floor plan's image is preserved regardless of which corners/center are specified. (This means if that more than two corners are specified, only two corners may be used to preserve the floor plan's aspect ratio.). No two points can have the same latitude, longitude pair."
},
"bottomLeftCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the bottom left corner of your floor plan."
},
"bottomRightCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the bottom right corner of your floor plan."
},
"topLeftCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the top left corner of your floor plan."
},
"topRightCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the top right corner of your floor plan."
}
}
},
"examples": {
"application/json": {
"floorPlanId": "g_1234567",
"imageUrl": "https://meraki-na.s3.amazonaws.com/assets/...",
"imageUrlExpiresAt": "2019-06-11 16:04:54 +00:00",
"imageExtension": "png",
"imageMd5": "2a9edd3f4ffd80130c647d13eacb59f3",
"name": "HQ Floor Plan",
"devices": [
{
"name": "My AP",
"lat": 37.4180951010362,
"lng": -122.098531723022,
"address": "1600 Pennsylvania Ave",
"notes": "My AP's note",
"tags": [
"recently-added"
],
"networkId": "N_24329156",
"serial": "Q234-ABCD-5678",
"model": "MR34",
"imei": "123456789000000",
"mac": "00:11:22:33:44:55",
"lanIp": "1.2.3.4",
"firmware": "wireless-25-14",
"productType": "wireless",
"details": [
{
"name": "Catalyst serial",
"value": "123ABC"
}
]
}
],
"width": 100.0,
"height": 150.1,
"center": {
"lat": 37.770040510499996,
"lng": -122.38714009525
},
"bottomLeftCorner": {
"lat": 37.7696461495,
"lng": -122.3880815506
},
"bottomRightCorner": {
"lat": 37.771524649766654,
"lng": -122.38795275055205
},
"topLeftCorner": {
"lat": 37.769700101836364,
"lng": -122.3888684251381
},
"topRightCorner": {
"lat": 37.77157860210302,
"lng": -122.38873962509012
}
}
}
}
},
"summary": "Upload a floor plan",
"tags": [
"networks",
"configure",
"floorPlans"
]
}
},
"/networks/{networkId}/floorPlans/{floorPlanId}": {
"get": {
"description": "Find a floor plan by ID",
"operationId": "getNetworkFloorPlan",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "floorPlanId",
"in": "path",
"description": "Floor plan ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"floorPlanId": {
"type": "string",
"description": "Floor plan ID"
},
"imageUrl": {
"type": "string",
"description": "The url link for the floor plan image."
},
"imageUrlExpiresAt": {
"type": "string",
"description": "The time the image url link will expire."
},
"imageExtension": {
"type": "string",
"description": "The format type of the image."
},
"imageMd5": {
"type": "string",
"format": "byte",
"description": "The file contents (a base 64 encoded string) of your new image. Supported formats are PNG, GIF, and JPG. Note that all images are saved as PNG files, regardless of the format they are uploaded in. If you upload a new image, and you do NOT specify any new geolocation fields ('center, 'topLeftCorner', etc), the floor plan will be recentered with no rotation in order to maintain the aspect ratio of your new image."
},
"name": {
"type": "string",
"description": "The name of your floor plan."
},
"devices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the device"
},
"lat": {
"type": "number",
"format": "float",
"description": "Latitude of the device"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude of the device"
},
"address": {
"type": "string",
"description": "Physical address of the device"
},
"notes": {
"type": "string",
"description": "Notes for the device, limited to 255 characters"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of tags assigned to the device"
},
"networkId": {
"type": "string",
"description": "ID of the network the device belongs to"
},
"serial": {
"type": "string",
"description": "Serial number of the device"
},
"model": {
"type": "string",
"description": "Model of the device"
},
"imei": {
"type": "string",
"description": "IMEI of the device, if applicable"
},
"mac": {
"type": "string",
"description": "MAC address of the device"
},
"lanIp": {
"type": "string",
"description": "LAN IP address of the device"
},
"firmware": {
"type": "string",
"description": "Firmware version of the device"
},
"productType": {
"type": "string",
"description": "Product type of the device"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Additional property name"
},
"value": {
"type": "string",
"description": "Additional property value"
}
}
},
"description": "Additional device information"
}
}
},
"description": "List of devices for the floorplan"
},
"width": {
"type": "number",
"format": "float",
"description": "The width of your floor plan."
},
"height": {
"type": "number",
"format": "float",
"description": "The height of your floor plan."
},
"center": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the center of your floor plan. The 'center' or two adjacent corners (e.g. 'topLeftCorner' and 'bottomLeftCorner') must be specified. If 'center' is specified, the floor plan is placed over that point with no rotation. If two adjacent corners are specified, the floor plan is rotated to line up with the two specified points. The aspect ratio of the floor plan's image is preserved regardless of which corners/center are specified. (This means if that more than two corners are specified, only two corners may be used to preserve the floor plan's aspect ratio.). No two points can have the same latitude, longitude pair."
},
"bottomLeftCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the bottom left corner of your floor plan."
},
"bottomRightCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the bottom right corner of your floor plan."
},
"topLeftCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the top left corner of your floor plan."
},
"topRightCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the top right corner of your floor plan."
}
}
},
"examples": {
"application/json": {
"floorPlanId": "g_1234567",
"imageUrl": "https://meraki-na.s3.amazonaws.com/assets/...",
"imageUrlExpiresAt": "2019-06-11 16:04:54 +00:00",
"imageExtension": "png",
"imageMd5": "2a9edd3f4ffd80130c647d13eacb59f3",
"name": "HQ Floor Plan",
"devices": [
{
"name": "My AP",
"lat": 37.4180951010362,
"lng": -122.098531723022,
"address": "1600 Pennsylvania Ave",
"notes": "My AP's note",
"tags": [
"recently-added"
],
"networkId": "N_24329156",
"serial": "Q234-ABCD-5678",
"model": "MR34",
"imei": "123456789000000",
"mac": "00:11:22:33:44:55",
"lanIp": "1.2.3.4",
"firmware": "wireless-25-14",
"productType": "wireless",
"details": [
{
"name": "Catalyst serial",
"value": "123ABC"
}
]
}
],
"width": 100.0,
"height": 150.1,
"center": {
"lat": 37.770040510499996,
"lng": -122.38714009525
},
"bottomLeftCorner": {
"lat": 37.7696461495,
"lng": -122.3880815506
},
"bottomRightCorner": {
"lat": 37.771524649766654,
"lng": -122.38795275055205
},
"topLeftCorner": {
"lat": 37.769700101836364,
"lng": -122.3888684251381
},
"topRightCorner": {
"lat": 37.77157860210302,
"lng": -122.38873962509012
}
}
}
}
},
"summary": "Find a floor plan by ID",
"tags": [
"networks",
"configure",
"floorPlans"
]
},
"put": {
"description": "Update a floor plan's geolocation and other meta data",
"operationId": "updateNetworkFloorPlan",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "floorPlanId",
"in": "path",
"description": "Floor plan ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkFloorPlan",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of your floor plan."
},
"center": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the center of your floor plan. If you want to change the geolocation data of your floor plan, either the 'center' or two adjacent corners (e.g. 'topLeftCorner' and 'bottomLeftCorner') must be specified. If 'center' is specified, the floor plan is placed over that point with no rotation. If two adjacent corners are specified, the floor plan is rotated to line up with the two specified points. The aspect ratio of the floor plan's image is preserved regardless of which corners/center are specified. (This means if that more than two corners are specified, only two corners may be used to preserve the floor plan's aspect ratio.). No two points can have the same latitude, longitude pair."
},
"bottomLeftCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the bottom left corner of your floor plan."
},
"bottomRightCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the bottom right corner of your floor plan."
},
"topLeftCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the top left corner of your floor plan."
},
"topRightCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the top right corner of your floor plan."
},
"imageContents": {
"type": "string",
"format": "byte",
"description": "The file contents (a base 64 encoded string) of your new image. Supported formats are PNG, GIF, and JPG. Note that all images are saved as PNG files, regardless of the format they are uploaded in. If you upload a new image, and you do NOT specify any new geolocation fields ('center, 'topLeftCorner', etc), the floor plan will be recentered with no rotation in order to maintain the aspect ratio of your new image."
}
},
"example": {
"name": "HQ Floor Plan",
"center": {
"lat": 37.770040510499996,
"lng": -122.38714009525
},
"bottomLeftCorner": {
"lat": 37.770040510499996,
"lng": -122.38714009525
},
"bottomRightCorner": {
"lat": 37.770040510499996,
"lng": -122.38714009525
},
"topLeftCorner": {
"lat": 37.770040510499996,
"lng": -122.38714009525
},
"topRightCorner": {
"lat": 37.770040510499996,
"lng": -122.38714009525
},
"imageContents": "2a9edd3f4ffd80130c647d13eacb59f3"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"floorPlanId": {
"type": "string",
"description": "Floor plan ID"
},
"imageUrl": {
"type": "string",
"description": "The url link for the floor plan image."
},
"imageUrlExpiresAt": {
"type": "string",
"description": "The time the image url link will expire."
},
"imageExtension": {
"type": "string",
"description": "The format type of the image."
},
"imageMd5": {
"type": "string",
"format": "byte",
"description": "The file contents (a base 64 encoded string) of your new image. Supported formats are PNG, GIF, and JPG. Note that all images are saved as PNG files, regardless of the format they are uploaded in. If you upload a new image, and you do NOT specify any new geolocation fields ('center, 'topLeftCorner', etc), the floor plan will be recentered with no rotation in order to maintain the aspect ratio of your new image."
},
"name": {
"type": "string",
"description": "The name of your floor plan."
},
"devices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the device"
},
"lat": {
"type": "number",
"format": "float",
"description": "Latitude of the device"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude of the device"
},
"address": {
"type": "string",
"description": "Physical address of the device"
},
"notes": {
"type": "string",
"description": "Notes for the device, limited to 255 characters"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of tags assigned to the device"
},
"networkId": {
"type": "string",
"description": "ID of the network the device belongs to"
},
"serial": {
"type": "string",
"description": "Serial number of the device"
},
"model": {
"type": "string",
"description": "Model of the device"
},
"imei": {
"type": "string",
"description": "IMEI of the device, if applicable"
},
"mac": {
"type": "string",
"description": "MAC address of the device"
},
"lanIp": {
"type": "string",
"description": "LAN IP address of the device"
},
"firmware": {
"type": "string",
"description": "Firmware version of the device"
},
"productType": {
"type": "string",
"description": "Product type of the device"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Additional property name"
},
"value": {
"type": "string",
"description": "Additional property value"
}
}
},
"description": "Additional device information"
}
}
},
"description": "List of devices for the floorplan"
},
"width": {
"type": "number",
"format": "float",
"description": "The width of your floor plan."
},
"height": {
"type": "number",
"format": "float",
"description": "The height of your floor plan."
},
"center": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the center of your floor plan. The 'center' or two adjacent corners (e.g. 'topLeftCorner' and 'bottomLeftCorner') must be specified. If 'center' is specified, the floor plan is placed over that point with no rotation. If two adjacent corners are specified, the floor plan is rotated to line up with the two specified points. The aspect ratio of the floor plan's image is preserved regardless of which corners/center are specified. (This means if that more than two corners are specified, only two corners may be used to preserve the floor plan's aspect ratio.). No two points can have the same latitude, longitude pair."
},
"bottomLeftCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the bottom left corner of your floor plan."
},
"bottomRightCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the bottom right corner of your floor plan."
},
"topLeftCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the top left corner of your floor plan."
},
"topRightCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the top right corner of your floor plan."
}
}
},
"examples": {
"application/json": {
"floorPlanId": "g_1234567",
"imageUrl": "https://meraki-na.s3.amazonaws.com/assets/...",
"imageUrlExpiresAt": "2019-06-11 16:04:54 +00:00",
"imageExtension": "png",
"imageMd5": "2a9edd3f4ffd80130c647d13eacb59f3",
"name": "HQ Floor Plan",
"devices": [
{
"name": "My AP",
"lat": 37.4180951010362,
"lng": -122.098531723022,
"address": "1600 Pennsylvania Ave",
"notes": "My AP's note",
"tags": [
"recently-added"
],
"networkId": "N_24329156",
"serial": "Q234-ABCD-5678",
"model": "MR34",
"imei": "123456789000000",
"mac": "00:11:22:33:44:55",
"lanIp": "1.2.3.4",
"firmware": "wireless-25-14",
"productType": "wireless",
"details": [
{
"name": "Catalyst serial",
"value": "123ABC"
}
]
}
],
"width": 100.0,
"height": 150.1,
"center": {
"lat": 37.770040510499996,
"lng": -122.38714009525
},
"bottomLeftCorner": {
"lat": 37.7696461495,
"lng": -122.3880815506
},
"bottomRightCorner": {
"lat": 37.771524649766654,
"lng": -122.38795275055205
},
"topLeftCorner": {
"lat": 37.769700101836364,
"lng": -122.3888684251381
},
"topRightCorner": {
"lat": 37.77157860210302,
"lng": -122.38873962509012
}
}
}
}
},
"summary": "Update a floor plan's geolocation and other meta data",
"tags": [
"networks",
"configure",
"floorPlans"
]
},
"delete": {
"description": "Destroy a floor plan",
"operationId": "deleteNetworkFloorPlan",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "floorPlanId",
"in": "path",
"description": "Floor plan ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"floorPlanId": {
"type": "string",
"description": "Floor plan ID"
},
"imageUrl": {
"type": "string",
"description": "The url link for the floor plan image."
},
"imageUrlExpiresAt": {
"type": "string",
"description": "The time the image url link will expire."
},
"imageExtension": {
"type": "string",
"description": "The format type of the image."
},
"imageMd5": {
"type": "string",
"format": "byte",
"description": "The file contents (a base 64 encoded string) of your new image. Supported formats are PNG, GIF, and JPG. Note that all images are saved as PNG files, regardless of the format they are uploaded in. If you upload a new image, and you do NOT specify any new geolocation fields ('center, 'topLeftCorner', etc), the floor plan will be recentered with no rotation in order to maintain the aspect ratio of your new image."
},
"name": {
"type": "string",
"description": "The name of your floor plan."
},
"devices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the device"
},
"lat": {
"type": "number",
"format": "float",
"description": "Latitude of the device"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude of the device"
},
"address": {
"type": "string",
"description": "Physical address of the device"
},
"notes": {
"type": "string",
"description": "Notes for the device, limited to 255 characters"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of tags assigned to the device"
},
"networkId": {
"type": "string",
"description": "ID of the network the device belongs to"
},
"serial": {
"type": "string",
"description": "Serial number of the device"
},
"model": {
"type": "string",
"description": "Model of the device"
},
"imei": {
"type": "string",
"description": "IMEI of the device, if applicable"
},
"mac": {
"type": "string",
"description": "MAC address of the device"
},
"lanIp": {
"type": "string",
"description": "LAN IP address of the device"
},
"firmware": {
"type": "string",
"description": "Firmware version of the device"
},
"productType": {
"type": "string",
"description": "Product type of the device"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Additional property name"
},
"value": {
"type": "string",
"description": "Additional property value"
}
}
},
"description": "Additional device information"
}
}
},
"description": "List of devices for the floorplan"
},
"width": {
"type": "number",
"format": "float",
"description": "The width of your floor plan."
},
"height": {
"type": "number",
"format": "float",
"description": "The height of your floor plan."
},
"center": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the center of your floor plan. The 'center' or two adjacent corners (e.g. 'topLeftCorner' and 'bottomLeftCorner') must be specified. If 'center' is specified, the floor plan is placed over that point with no rotation. If two adjacent corners are specified, the floor plan is rotated to line up with the two specified points. The aspect ratio of the floor plan's image is preserved regardless of which corners/center are specified. (This means if that more than two corners are specified, only two corners may be used to preserve the floor plan's aspect ratio.). No two points can have the same latitude, longitude pair."
},
"bottomLeftCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the bottom left corner of your floor plan."
},
"bottomRightCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the bottom right corner of your floor plan."
},
"topLeftCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the top left corner of your floor plan."
},
"topRightCorner": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"format": "float",
"description": "Latitude"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude"
}
},
"description": "The longitude and latitude of the top right corner of your floor plan."
}
}
},
"examples": {
"application/json": {
"floorPlanId": "g_1234567",
"imageUrl": "https://meraki-na.s3.amazonaws.com/assets/...",
"imageUrlExpiresAt": "2019-06-11 16:04:54 +00:00",
"imageExtension": "png",
"imageMd5": "2a9edd3f4ffd80130c647d13eacb59f3",
"name": "HQ Floor Plan",
"devices": [
{
"name": "My AP",
"lat": 37.4180951010362,
"lng": -122.098531723022,
"address": "1600 Pennsylvania Ave",
"notes": "My AP's note",
"tags": [
"recently-added"
],
"networkId": "N_24329156",
"serial": "Q234-ABCD-5678",
"model": "MR34",
"imei": "123456789000000",
"mac": "00:11:22:33:44:55",
"lanIp": "1.2.3.4",
"firmware": "wireless-25-14",
"productType": "wireless",
"details": [
{
"name": "Catalyst serial",
"value": "123ABC"
}
]
}
],
"width": 100.0,
"height": 150.1,
"center": {
"lat": 37.770040510499996,
"lng": -122.38714009525
},
"bottomLeftCorner": {
"lat": 37.7696461495,
"lng": -122.3880815506
},
"bottomRightCorner": {
"lat": 37.771524649766654,
"lng": -122.38795275055205
},
"topLeftCorner": {
"lat": 37.769700101836364,
"lng": -122.3888684251381
},
"topRightCorner": {
"lat": 37.77157860210302,
"lng": -122.38873962509012
}
}
}
}
},
"summary": "Destroy a floor plan",
"tags": [
"networks",
"configure",
"floorPlans"
]
}
},
"/networks/{networkId}/groupPolicies": {
"get": {
"description": "List the group policies in a network",
"operationId": "getNetworkGroupPolicies",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"groupPolicyId": {
"type": "string",
"description": "The ID of the group policy"
},
"scheduling": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether scheduling is enabled (true) or disabled (false). Defaults to false. If true, the schedule objects for each day of the week (monday - sunday) are parsed."
},
"monday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Monday."
},
"tuesday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Tuesday."
},
"wednesday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Wednesday."
},
"thursday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Thursday."
},
"friday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Friday."
},
"saturday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Saturday."
},
"sunday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Sunday."
}
},
"description": " The schedule for the group policy. Schedules are applied to days of the week.\n"
},
"bandwidth": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How bandwidth limits are enforced. Can be 'network default', 'ignore' or 'custom'."
},
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps). null indicates no limit"
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps). null indicates no limit"
}
},
"description": "The bandwidth limits object, specifying upload and download speed for clients bound to the group policy. These are only enforced if 'settings' is set to 'custom'."
}
},
"description": " The bandwidth settings for clients bound to your group policy.\n"
},
"firewallAndTrafficShaping": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How firewall and traffic shaping rules are enforced. Can be 'network default', 'ignore' or 'custom'."
},
"trafficShapingRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"definitions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"host",
"ipRange",
"localNet",
"port"
],
"description": "The type of definition. Can be one of 'application', 'applicationCategory', 'host', 'port', 'ipRange' or 'localNet'."
},
"value": {
"type": "string",
"description": " If \"type\" is 'host', 'port', 'ipRange' or 'localNet', then \"value\" must be a string, matching either\n a hostname (e.g. \"somesite.com\"), a port (e.g. 8080), or an IP range (\"192.1.0.0\",\n \"192.1.0.0/16\", or \"10.1.0.0/16:80\"). 'localNet' also supports CIDR notation, excluding\n custom ports.\n If \"type\" is 'application' or 'applicationCategory', then \"value\" must be an object\n with the structure { \"id\": \"meraki:layer7/...\" }, where \"id\" is the application category or\n application ID (for a list of IDs for your network, use the trafficShaping/applicationCategories\n endpoint).\n"
}
},
"required": [
"type",
"value"
]
},
"description": " A list of objects describing the definitions of your traffic shaping rule. At least one definition is required.\n"
},
"perClientBandwidthLimits": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"description": "How bandwidth limits are applied by your rule. Can be one of 'network default', 'ignore' or 'custom'."
},
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps)."
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps)."
}
},
"description": "The bandwidth limits object, specifying the upload ('limitUp') and download ('limitDown') speed in Kbps. These are only enforced if 'settings' is set to 'custom'."
}
},
"description": " An object describing the bandwidth settings for your rule.\n"
},
"dscpTagValue": {
"type": "integer",
"description": " The DSCP tag applied by your rule. null means 'Do not change DSCP tag'.\n For a list of possible tag values, use the trafficShaping/dscpTaggingOptions endpoint.\n"
},
"pcpTagValue": {
"type": "integer",
"description": " The PCP tag applied by your rule. Can be 0 (lowest priority) through 7 (highest priority).\n null means 'Do not set PCP tag'.\n"
},
"priority": {
"type": "string",
"description": " A string, indicating the priority level for packets bound to your rule.\n Can be 'low', 'normal' or 'high'.\n"
}
},
"required": [
"definitions"
]
},
"description": " An array of traffic shaping rules. Rules are applied in the order that\n they are specified in. An empty list (or null) means no rules. Note that\n you are allowed a maximum of 8 rules.\n"
},
"l3FirewallRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"destPort": {
"type": "string",
"description": "Destination port (integer in the range 1-65535), a port range (e.g. 8080-9090), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Destination IP address (in IP or CIDR notation), a fully-qualified domain name (FQDN, if your network supports it) or 'any'."
}
},
"required": [
"policy",
"protocol",
"destCidr"
]
},
"description": "An ordered array of the L3 firewall rules"
},
"l7FirewallRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"policy": {
"type": "string",
"enum": [
"deny"
],
"description": "The policy applied to matching traffic. Must be 'deny'."
},
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"host",
"ipRange",
"port"
],
"description": "Type of the L7 Rule. Must be 'application', 'applicationCategory', 'host', 'port' or 'ipRange'"
},
"value": {
"type": "string",
"description": "The 'value' of what you want to block. If 'type' is 'host', 'port' or 'ipRange', 'value' must be a string matching either a hostname (e.g. somewhere.com), a port (e.g. 8080), or an IP range (e.g. 192.1.0.0/16). If 'type' is 'application' or 'applicationCategory', then 'value' must be an object with an ID for the application."
}
}
},
"description": "An ordered array of L7 firewall rules"
}
},
"description": " The firewall and traffic shaping rules and settings for your policy.\n"
},
"contentFiltering": {
"type": "object",
"properties": {
"allowedUrlPatterns": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"append",
"network default",
"override"
],
"description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'."
},
"patterns": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL patterns that are allowed"
}
},
"description": "Settings for allowed URL patterns"
},
"blockedUrlPatterns": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"append",
"network default",
"override"
],
"description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'."
},
"patterns": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL patterns that are blocked"
}
},
"description": "Settings for blocked URL patterns"
},
"blockedUrlCategories": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"append",
"network default",
"override"
],
"description": "How URL categories are applied. Can be 'network default', 'append' or 'override'."
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL categories to block"
}
},
"description": "Settings for blocked URL categories"
}
},
"description": "The content filtering settings for your group policy"
},
"splashAuthSettings": {
"type": "string",
"enum": [
"bypass",
"network default"
],
"description": "Whether clients bound to your policy will bypass splash authorization or behave according to the network's rules. Can be one of 'network default' or 'bypass'. Only available if your network has a wireless configuration."
},
"vlanTagging": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How VLAN tagging is applied. Can be 'network default', 'ignore' or 'custom'."
},
"vlanId": {
"type": "string",
"description": "The ID of the vlan you want to tag. This only applies if 'settings' is set to 'custom'."
}
},
"description": "The VLAN tagging settings for your group policy. Only available if your network has a wireless configuration."
},
"bonjourForwarding": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How Bonjour rules are applied. Can be 'network default', 'ignore' or 'custom'."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "A description for your Bonjour forwarding rule. Optional."
},
"vlanId": {
"type": "string",
"description": "The ID of the service VLAN. Required."
},
"services": {
"type": "array",
"items": {
"type": "string",
"enum": [
"AFP",
"AirPlay",
"All Services",
"BitTorrent",
"FTP",
"Printers",
"SSH",
"Samba",
"Scanners",
"iChat",
"iTunes"
]
},
"description": "A list of Bonjour services. At least one service must be specified. Available services are 'All Services', 'AirPlay', 'AFP', 'BitTorrent', 'FTP', 'iChat', 'iTunes', 'Printers', 'Samba', 'Scanners' and 'SSH'"
}
},
"required": [
"vlanId",
"services"
]
},
"description": "A list of the Bonjour forwarding rules for your group policy. If 'settings' is set to 'custom', at least one rule must be specified."
}
},
"description": "The Bonjour settings for your group policy. Only valid if your network has a wireless configuration."
}
}
}
},
"examples": {
"application/json": [
{
"groupPolicyId": "101",
"scheduling": {
"enabled": true,
"monday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"tuesday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"wednesday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"thursday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"friday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"saturday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"sunday": {
"active": true,
"from": "9:00",
"to": "17:00"
}
},
"bandwidth": {
"settings": "custom",
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
}
},
"firewallAndTrafficShaping": {
"settings": "custom",
"trafficShapingRules": [
{
"definitions": [
{
"type": "host",
"value": "google.com"
}
],
"perClientBandwidthLimits": {
"settings": "custom",
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
}
},
"dscpTagValue": 0,
"pcpTagValue": 0,
"priority": "normal"
}
],
"l3FirewallRules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24"
}
],
"l7FirewallRules": [
{
"policy": "deny",
"type": "host",
"value": "google.com"
}
]
},
"contentFiltering": {
"allowedUrlPatterns": {
"settings": "network default",
"patterns": [
]
},
"blockedUrlPatterns": {
"settings": "append",
"patterns": [
"http://www.example.com",
"http://www.betting.com"
]
},
"blockedUrlCategories": {
"settings": "override",
"categories": [
"meraki:contentFiltering/category/1",
"meraki:contentFiltering/category/7"
]
}
},
"splashAuthSettings": "bypass",
"vlanTagging": {
"settings": "custom",
"vlanId": "1"
},
"bonjourForwarding": {
"settings": "custom",
"rules": [
{
"description": "A simple bonjour rule",
"vlanId": "1",
"services": [
"All Services"
]
}
]
}
}
]
}
}
},
"summary": "List the group policies in a network",
"tags": [
"networks",
"configure",
"groupPolicies"
]
},
"post": {
"description": "Create a group policy",
"operationId": "createNetworkGroupPolicy",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkGroupPolicy",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name for your group policy. Required."
},
"scheduling": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether scheduling is enabled (true) or disabled (false). Defaults to false. If true, the schedule objects for each day of the week (monday - sunday) are parsed."
},
"monday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Monday."
},
"tuesday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Tuesday."
},
"wednesday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Wednesday."
},
"thursday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Thursday."
},
"friday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Friday."
},
"saturday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Saturday."
},
"sunday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Sunday."
}
},
"description": " The schedule for the group policy. Schedules are applied to days of the week.\n"
},
"bandwidth": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How bandwidth limits are enforced. Can be 'network default', 'ignore' or 'custom'."
},
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps). null indicates no limit"
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps). null indicates no limit"
}
},
"description": "The bandwidth limits object, specifying upload and download speed for clients bound to the group policy. These are only enforced if 'settings' is set to 'custom'."
}
},
"description": " The bandwidth settings for clients bound to your group policy.\n"
},
"firewallAndTrafficShaping": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How firewall and traffic shaping rules are enforced. Can be 'network default', 'ignore' or 'custom'."
},
"trafficShapingRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"definitions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"host",
"ipRange",
"localNet",
"port"
],
"description": "The type of definition. Can be one of 'application', 'applicationCategory', 'host', 'port', 'ipRange' or 'localNet'."
},
"value": {
"type": "string",
"description": " If \"type\" is 'host', 'port', 'ipRange' or 'localNet', then \"value\" must be a string, matching either\n a hostname (e.g. \"somesite.com\"), a port (e.g. 8080), or an IP range (\"192.1.0.0\",\n \"192.1.0.0/16\", or \"10.1.0.0/16:80\"). 'localNet' also supports CIDR notation, excluding\n custom ports.\n If \"type\" is 'application' or 'applicationCategory', then \"value\" must be an object\n with the structure { \"id\": \"meraki:layer7/...\" }, where \"id\" is the application category or\n application ID (for a list of IDs for your network, use the trafficShaping/applicationCategories\n endpoint).\n"
}
},
"required": [
"type",
"value"
]
},
"description": " A list of objects describing the definitions of your traffic shaping rule. At least one definition is required.\n"
},
"perClientBandwidthLimits": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"description": "How bandwidth limits are applied by your rule. Can be one of 'network default', 'ignore' or 'custom'."
},
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps)."
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps)."
}
},
"description": "The bandwidth limits object, specifying the upload ('limitUp') and download ('limitDown') speed in Kbps. These are only enforced if 'settings' is set to 'custom'."
}
},
"description": " An object describing the bandwidth settings for your rule.\n"
},
"dscpTagValue": {
"type": "integer",
"description": " The DSCP tag applied by your rule. null means 'Do not change DSCP tag'.\n For a list of possible tag values, use the trafficShaping/dscpTaggingOptions endpoint.\n"
},
"pcpTagValue": {
"type": "integer",
"description": " The PCP tag applied by your rule. Can be 0 (lowest priority) through 7 (highest priority).\n null means 'Do not set PCP tag'.\n"
},
"priority": {
"type": "string",
"description": " A string, indicating the priority level for packets bound to your rule.\n Can be 'low', 'normal' or 'high'.\n"
}
},
"required": [
"definitions"
]
},
"description": " An array of traffic shaping rules. Rules are applied in the order that\n they are specified in. An empty list (or null) means no rules. Note that\n you are allowed a maximum of 8 rules.\n"
},
"l3FirewallRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"destPort": {
"type": "string",
"description": "Destination port (integer in the range 1-65535), a port range (e.g. 8080-9090), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Destination IP address (in IP or CIDR notation), a fully-qualified domain name (FQDN, if your network supports it) or 'any'."
}
},
"required": [
"policy",
"protocol",
"destCidr"
]
},
"description": "An ordered array of the L3 firewall rules"
},
"l7FirewallRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"policy": {
"type": "string",
"enum": [
"deny"
],
"description": "The policy applied to matching traffic. Must be 'deny'."
},
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"host",
"ipRange",
"port"
],
"description": "Type of the L7 Rule. Must be 'application', 'applicationCategory', 'host', 'port' or 'ipRange'"
},
"value": {
"type": "string",
"description": "The 'value' of what you want to block. If 'type' is 'host', 'port' or 'ipRange', 'value' must be a string matching either a hostname (e.g. somewhere.com), a port (e.g. 8080), or an IP range (e.g. 192.1.0.0/16). If 'type' is 'application' or 'applicationCategory', then 'value' must be an object with an ID for the application."
}
}
},
"description": "An ordered array of L7 firewall rules"
}
},
"description": " The firewall and traffic shaping rules and settings for your policy.\n"
},
"contentFiltering": {
"type": "object",
"properties": {
"allowedUrlPatterns": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"append",
"network default",
"override"
],
"description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'."
},
"patterns": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL patterns that are allowed"
}
},
"description": "Settings for allowed URL patterns"
},
"blockedUrlPatterns": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"append",
"network default",
"override"
],
"description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'."
},
"patterns": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL patterns that are blocked"
}
},
"description": "Settings for blocked URL patterns"
},
"blockedUrlCategories": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"append",
"network default",
"override"
],
"description": "How URL categories are applied. Can be 'network default', 'append' or 'override'."
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL categories to block"
}
},
"description": "Settings for blocked URL categories"
}
},
"description": "The content filtering settings for your group policy"
},
"splashAuthSettings": {
"type": "string",
"enum": [
"bypass",
"network default"
],
"description": "Whether clients bound to your policy will bypass splash authorization or behave according to the network's rules. Can be one of 'network default' or 'bypass'. Only available if your network has a wireless configuration."
},
"vlanTagging": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How VLAN tagging is applied. Can be 'network default', 'ignore' or 'custom'."
},
"vlanId": {
"type": "string",
"description": "The ID of the vlan you want to tag. This only applies if 'settings' is set to 'custom'."
}
},
"description": "The VLAN tagging settings for your group policy. Only available if your network has a wireless configuration."
},
"bonjourForwarding": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How Bonjour rules are applied. Can be 'network default', 'ignore' or 'custom'."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "A description for your Bonjour forwarding rule. Optional."
},
"vlanId": {
"type": "string",
"description": "The ID of the service VLAN. Required."
},
"services": {
"type": "array",
"items": {
"type": "string",
"enum": [
"AFP",
"AirPlay",
"All Services",
"BitTorrent",
"FTP",
"Printers",
"SSH",
"Samba",
"Scanners",
"iChat",
"iTunes"
]
},
"description": "A list of Bonjour services. At least one service must be specified. Available services are 'All Services', 'AirPlay', 'AFP', 'BitTorrent', 'FTP', 'iChat', 'iTunes', 'Printers', 'Samba', 'Scanners' and 'SSH'"
}
},
"required": [
"vlanId",
"services"
]
},
"description": "A list of the Bonjour forwarding rules for your group policy. If 'settings' is set to 'custom', at least one rule must be specified."
}
},
"description": "The Bonjour settings for your group policy. Only valid if your network has a wireless configuration."
}
},
"example": {
"name": "No video streaming",
"scheduling": {
"enabled": true,
"monday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"tuesday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"wednesday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"thursday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"friday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"saturday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"sunday": {
"active": true,
"from": "9:00",
"to": "17:00"
}
},
"bandwidth": {
"settings": "custom",
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
}
},
"firewallAndTrafficShaping": {
"settings": "custom",
"trafficShapingRules": [
{
"definitions": [
{
"type": "host",
"value": "google.com"
}
],
"perClientBandwidthLimits": {
"settings": "custom",
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
}
},
"dscpTagValue": 0,
"pcpTagValue": 0,
"priority": "normal"
}
],
"l3FirewallRules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24"
}
],
"l7FirewallRules": [
{
"policy": "deny",
"type": "host",
"value": "google.com"
}
]
},
"contentFiltering": {
"allowedUrlPatterns": {
"settings": "network default",
"patterns": [
]
},
"blockedUrlPatterns": {
"settings": "append",
"patterns": [
"http://www.example.com",
"http://www.betting.com"
]
},
"blockedUrlCategories": {
"settings": "override",
"categories": [
"meraki:contentFiltering/category/1",
"meraki:contentFiltering/category/7"
]
}
},
"splashAuthSettings": "bypass",
"vlanTagging": {
"settings": "custom",
"vlanId": "1"
},
"bonjourForwarding": {
"settings": "custom",
"rules": [
{
"description": "A simple bonjour rule",
"vlanId": "1",
"services": [
"All Services"
]
}
]
}
},
"required": [
"name"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"groupPolicyId": {
"type": "string",
"description": "The ID of the group policy"
},
"scheduling": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether scheduling is enabled (true) or disabled (false). Defaults to false. If true, the schedule objects for each day of the week (monday - sunday) are parsed."
},
"monday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Monday."
},
"tuesday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Tuesday."
},
"wednesday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Wednesday."
},
"thursday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Thursday."
},
"friday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Friday."
},
"saturday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Saturday."
},
"sunday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Sunday."
}
},
"description": " The schedule for the group policy. Schedules are applied to days of the week.\n"
},
"bandwidth": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How bandwidth limits are enforced. Can be 'network default', 'ignore' or 'custom'."
},
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps). null indicates no limit"
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps). null indicates no limit"
}
},
"description": "The bandwidth limits object, specifying upload and download speed for clients bound to the group policy. These are only enforced if 'settings' is set to 'custom'."
}
},
"description": " The bandwidth settings for clients bound to your group policy.\n"
},
"firewallAndTrafficShaping": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How firewall and traffic shaping rules are enforced. Can be 'network default', 'ignore' or 'custom'."
},
"trafficShapingRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"definitions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"host",
"ipRange",
"localNet",
"port"
],
"description": "The type of definition. Can be one of 'application', 'applicationCategory', 'host', 'port', 'ipRange' or 'localNet'."
},
"value": {
"type": "string",
"description": " If \"type\" is 'host', 'port', 'ipRange' or 'localNet', then \"value\" must be a string, matching either\n a hostname (e.g. \"somesite.com\"), a port (e.g. 8080), or an IP range (\"192.1.0.0\",\n \"192.1.0.0/16\", or \"10.1.0.0/16:80\"). 'localNet' also supports CIDR notation, excluding\n custom ports.\n If \"type\" is 'application' or 'applicationCategory', then \"value\" must be an object\n with the structure { \"id\": \"meraki:layer7/...\" }, where \"id\" is the application category or\n application ID (for a list of IDs for your network, use the trafficShaping/applicationCategories\n endpoint).\n"
}
},
"required": [
"type",
"value"
]
},
"description": " A list of objects describing the definitions of your traffic shaping rule. At least one definition is required.\n"
},
"perClientBandwidthLimits": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"description": "How bandwidth limits are applied by your rule. Can be one of 'network default', 'ignore' or 'custom'."
},
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps)."
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps)."
}
},
"description": "The bandwidth limits object, specifying the upload ('limitUp') and download ('limitDown') speed in Kbps. These are only enforced if 'settings' is set to 'custom'."
}
},
"description": " An object describing the bandwidth settings for your rule.\n"
},
"dscpTagValue": {
"type": "integer",
"description": " The DSCP tag applied by your rule. null means 'Do not change DSCP tag'.\n For a list of possible tag values, use the trafficShaping/dscpTaggingOptions endpoint.\n"
},
"pcpTagValue": {
"type": "integer",
"description": " The PCP tag applied by your rule. Can be 0 (lowest priority) through 7 (highest priority).\n null means 'Do not set PCP tag'.\n"
},
"priority": {
"type": "string",
"description": " A string, indicating the priority level for packets bound to your rule.\n Can be 'low', 'normal' or 'high'.\n"
}
},
"required": [
"definitions"
]
},
"description": " An array of traffic shaping rules. Rules are applied in the order that\n they are specified in. An empty list (or null) means no rules. Note that\n you are allowed a maximum of 8 rules.\n"
},
"l3FirewallRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"destPort": {
"type": "string",
"description": "Destination port (integer in the range 1-65535), a port range (e.g. 8080-9090), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Destination IP address (in IP or CIDR notation), a fully-qualified domain name (FQDN, if your network supports it) or 'any'."
}
},
"required": [
"policy",
"protocol",
"destCidr"
]
},
"description": "An ordered array of the L3 firewall rules"
},
"l7FirewallRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"policy": {
"type": "string",
"enum": [
"deny"
],
"description": "The policy applied to matching traffic. Must be 'deny'."
},
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"host",
"ipRange",
"port"
],
"description": "Type of the L7 Rule. Must be 'application', 'applicationCategory', 'host', 'port' or 'ipRange'"
},
"value": {
"type": "string",
"description": "The 'value' of what you want to block. If 'type' is 'host', 'port' or 'ipRange', 'value' must be a string matching either a hostname (e.g. somewhere.com), a port (e.g. 8080), or an IP range (e.g. 192.1.0.0/16). If 'type' is 'application' or 'applicationCategory', then 'value' must be an object with an ID for the application."
}
}
},
"description": "An ordered array of L7 firewall rules"
}
},
"description": " The firewall and traffic shaping rules and settings for your policy.\n"
},
"contentFiltering": {
"type": "object",
"properties": {
"allowedUrlPatterns": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"append",
"network default",
"override"
],
"description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'."
},
"patterns": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL patterns that are allowed"
}
},
"description": "Settings for allowed URL patterns"
},
"blockedUrlPatterns": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"append",
"network default",
"override"
],
"description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'."
},
"patterns": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL patterns that are blocked"
}
},
"description": "Settings for blocked URL patterns"
},
"blockedUrlCategories": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"append",
"network default",
"override"
],
"description": "How URL categories are applied. Can be 'network default', 'append' or 'override'."
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL categories to block"
}
},
"description": "Settings for blocked URL categories"
}
},
"description": "The content filtering settings for your group policy"
},
"splashAuthSettings": {
"type": "string",
"enum": [
"bypass",
"network default"
],
"description": "Whether clients bound to your policy will bypass splash authorization or behave according to the network's rules. Can be one of 'network default' or 'bypass'. Only available if your network has a wireless configuration."
},
"vlanTagging": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How VLAN tagging is applied. Can be 'network default', 'ignore' or 'custom'."
},
"vlanId": {
"type": "string",
"description": "The ID of the vlan you want to tag. This only applies if 'settings' is set to 'custom'."
}
},
"description": "The VLAN tagging settings for your group policy. Only available if your network has a wireless configuration."
},
"bonjourForwarding": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How Bonjour rules are applied. Can be 'network default', 'ignore' or 'custom'."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "A description for your Bonjour forwarding rule. Optional."
},
"vlanId": {
"type": "string",
"description": "The ID of the service VLAN. Required."
},
"services": {
"type": "array",
"items": {
"type": "string",
"enum": [
"AFP",
"AirPlay",
"All Services",
"BitTorrent",
"FTP",
"Printers",
"SSH",
"Samba",
"Scanners",
"iChat",
"iTunes"
]
},
"description": "A list of Bonjour services. At least one service must be specified. Available services are 'All Services', 'AirPlay', 'AFP', 'BitTorrent', 'FTP', 'iChat', 'iTunes', 'Printers', 'Samba', 'Scanners' and 'SSH'"
}
},
"required": [
"vlanId",
"services"
]
},
"description": "A list of the Bonjour forwarding rules for your group policy. If 'settings' is set to 'custom', at least one rule must be specified."
}
},
"description": "The Bonjour settings for your group policy. Only valid if your network has a wireless configuration."
}
}
},
"examples": {
"application/json": {
"groupPolicyId": "101",
"scheduling": {
"enabled": true,
"monday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"tuesday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"wednesday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"thursday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"friday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"saturday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"sunday": {
"active": true,
"from": "9:00",
"to": "17:00"
}
},
"bandwidth": {
"settings": "custom",
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
}
},
"firewallAndTrafficShaping": {
"settings": "custom",
"trafficShapingRules": [
{
"definitions": [
{
"type": "host",
"value": "google.com"
}
],
"perClientBandwidthLimits": {
"settings": "custom",
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
}
},
"dscpTagValue": 0,
"pcpTagValue": 0,
"priority": "normal"
}
],
"l3FirewallRules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24"
}
],
"l7FirewallRules": [
{
"policy": "deny",
"type": "host",
"value": "google.com"
}
]
},
"contentFiltering": {
"allowedUrlPatterns": {
"settings": "network default",
"patterns": [
]
},
"blockedUrlPatterns": {
"settings": "append",
"patterns": [
"http://www.example.com",
"http://www.betting.com"
]
},
"blockedUrlCategories": {
"settings": "override",
"categories": [
"meraki:contentFiltering/category/1",
"meraki:contentFiltering/category/7"
]
}
},
"splashAuthSettings": "bypass",
"vlanTagging": {
"settings": "custom",
"vlanId": "1"
},
"bonjourForwarding": {
"settings": "custom",
"rules": [
{
"description": "A simple bonjour rule",
"vlanId": "1",
"services": [
"All Services"
]
}
]
}
}
}
}
},
"summary": "Create a group policy",
"tags": [
"networks",
"configure",
"groupPolicies"
]
}
},
"/networks/{networkId}/groupPolicies/{groupPolicyId}": {
"get": {
"description": "Display a group policy",
"operationId": "getNetworkGroupPolicy",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "groupPolicyId",
"in": "path",
"description": "Group policy ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"groupPolicyId": {
"type": "string",
"description": "The ID of the group policy"
},
"scheduling": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether scheduling is enabled (true) or disabled (false). Defaults to false. If true, the schedule objects for each day of the week (monday - sunday) are parsed."
},
"monday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Monday."
},
"tuesday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Tuesday."
},
"wednesday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Wednesday."
},
"thursday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Thursday."
},
"friday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Friday."
},
"saturday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Saturday."
},
"sunday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Sunday."
}
},
"description": " The schedule for the group policy. Schedules are applied to days of the week.\n"
},
"bandwidth": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How bandwidth limits are enforced. Can be 'network default', 'ignore' or 'custom'."
},
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps). null indicates no limit"
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps). null indicates no limit"
}
},
"description": "The bandwidth limits object, specifying upload and download speed for clients bound to the group policy. These are only enforced if 'settings' is set to 'custom'."
}
},
"description": " The bandwidth settings for clients bound to your group policy.\n"
},
"firewallAndTrafficShaping": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How firewall and traffic shaping rules are enforced. Can be 'network default', 'ignore' or 'custom'."
},
"trafficShapingRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"definitions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"host",
"ipRange",
"localNet",
"port"
],
"description": "The type of definition. Can be one of 'application', 'applicationCategory', 'host', 'port', 'ipRange' or 'localNet'."
},
"value": {
"type": "string",
"description": " If \"type\" is 'host', 'port', 'ipRange' or 'localNet', then \"value\" must be a string, matching either\n a hostname (e.g. \"somesite.com\"), a port (e.g. 8080), or an IP range (\"192.1.0.0\",\n \"192.1.0.0/16\", or \"10.1.0.0/16:80\"). 'localNet' also supports CIDR notation, excluding\n custom ports.\n If \"type\" is 'application' or 'applicationCategory', then \"value\" must be an object\n with the structure { \"id\": \"meraki:layer7/...\" }, where \"id\" is the application category or\n application ID (for a list of IDs for your network, use the trafficShaping/applicationCategories\n endpoint).\n"
}
},
"required": [
"type",
"value"
]
},
"description": " A list of objects describing the definitions of your traffic shaping rule. At least one definition is required.\n"
},
"perClientBandwidthLimits": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"description": "How bandwidth limits are applied by your rule. Can be one of 'network default', 'ignore' or 'custom'."
},
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps)."
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps)."
}
},
"description": "The bandwidth limits object, specifying the upload ('limitUp') and download ('limitDown') speed in Kbps. These are only enforced if 'settings' is set to 'custom'."
}
},
"description": " An object describing the bandwidth settings for your rule.\n"
},
"dscpTagValue": {
"type": "integer",
"description": " The DSCP tag applied by your rule. null means 'Do not change DSCP tag'.\n For a list of possible tag values, use the trafficShaping/dscpTaggingOptions endpoint.\n"
},
"pcpTagValue": {
"type": "integer",
"description": " The PCP tag applied by your rule. Can be 0 (lowest priority) through 7 (highest priority).\n null means 'Do not set PCP tag'.\n"
},
"priority": {
"type": "string",
"description": " A string, indicating the priority level for packets bound to your rule.\n Can be 'low', 'normal' or 'high'.\n"
}
},
"required": [
"definitions"
]
},
"description": " An array of traffic shaping rules. Rules are applied in the order that\n they are specified in. An empty list (or null) means no rules. Note that\n you are allowed a maximum of 8 rules.\n"
},
"l3FirewallRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"destPort": {
"type": "string",
"description": "Destination port (integer in the range 1-65535), a port range (e.g. 8080-9090), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Destination IP address (in IP or CIDR notation), a fully-qualified domain name (FQDN, if your network supports it) or 'any'."
}
},
"required": [
"policy",
"protocol",
"destCidr"
]
},
"description": "An ordered array of the L3 firewall rules"
},
"l7FirewallRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"policy": {
"type": "string",
"enum": [
"deny"
],
"description": "The policy applied to matching traffic. Must be 'deny'."
},
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"host",
"ipRange",
"port"
],
"description": "Type of the L7 Rule. Must be 'application', 'applicationCategory', 'host', 'port' or 'ipRange'"
},
"value": {
"type": "string",
"description": "The 'value' of what you want to block. If 'type' is 'host', 'port' or 'ipRange', 'value' must be a string matching either a hostname (e.g. somewhere.com), a port (e.g. 8080), or an IP range (e.g. 192.1.0.0/16). If 'type' is 'application' or 'applicationCategory', then 'value' must be an object with an ID for the application."
}
}
},
"description": "An ordered array of L7 firewall rules"
}
},
"description": " The firewall and traffic shaping rules and settings for your policy.\n"
},
"contentFiltering": {
"type": "object",
"properties": {
"allowedUrlPatterns": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"append",
"network default",
"override"
],
"description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'."
},
"patterns": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL patterns that are allowed"
}
},
"description": "Settings for allowed URL patterns"
},
"blockedUrlPatterns": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"append",
"network default",
"override"
],
"description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'."
},
"patterns": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL patterns that are blocked"
}
},
"description": "Settings for blocked URL patterns"
},
"blockedUrlCategories": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"append",
"network default",
"override"
],
"description": "How URL categories are applied. Can be 'network default', 'append' or 'override'."
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL categories to block"
}
},
"description": "Settings for blocked URL categories"
}
},
"description": "The content filtering settings for your group policy"
},
"splashAuthSettings": {
"type": "string",
"enum": [
"bypass",
"network default"
],
"description": "Whether clients bound to your policy will bypass splash authorization or behave according to the network's rules. Can be one of 'network default' or 'bypass'. Only available if your network has a wireless configuration."
},
"vlanTagging": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How VLAN tagging is applied. Can be 'network default', 'ignore' or 'custom'."
},
"vlanId": {
"type": "string",
"description": "The ID of the vlan you want to tag. This only applies if 'settings' is set to 'custom'."
}
},
"description": "The VLAN tagging settings for your group policy. Only available if your network has a wireless configuration."
},
"bonjourForwarding": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How Bonjour rules are applied. Can be 'network default', 'ignore' or 'custom'."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "A description for your Bonjour forwarding rule. Optional."
},
"vlanId": {
"type": "string",
"description": "The ID of the service VLAN. Required."
},
"services": {
"type": "array",
"items": {
"type": "string",
"enum": [
"AFP",
"AirPlay",
"All Services",
"BitTorrent",
"FTP",
"Printers",
"SSH",
"Samba",
"Scanners",
"iChat",
"iTunes"
]
},
"description": "A list of Bonjour services. At least one service must be specified. Available services are 'All Services', 'AirPlay', 'AFP', 'BitTorrent', 'FTP', 'iChat', 'iTunes', 'Printers', 'Samba', 'Scanners' and 'SSH'"
}
},
"required": [
"vlanId",
"services"
]
},
"description": "A list of the Bonjour forwarding rules for your group policy. If 'settings' is set to 'custom', at least one rule must be specified."
}
},
"description": "The Bonjour settings for your group policy. Only valid if your network has a wireless configuration."
}
}
},
"examples": {
"application/json": {
"groupPolicyId": "101",
"scheduling": {
"enabled": true,
"monday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"tuesday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"wednesday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"thursday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"friday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"saturday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"sunday": {
"active": true,
"from": "9:00",
"to": "17:00"
}
},
"bandwidth": {
"settings": "custom",
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
}
},
"firewallAndTrafficShaping": {
"settings": "custom",
"trafficShapingRules": [
{
"definitions": [
{
"type": "host",
"value": "google.com"
}
],
"perClientBandwidthLimits": {
"settings": "custom",
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
}
},
"dscpTagValue": 0,
"pcpTagValue": 0,
"priority": "normal"
}
],
"l3FirewallRules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24"
}
],
"l7FirewallRules": [
{
"policy": "deny",
"type": "host",
"value": "google.com"
}
]
},
"contentFiltering": {
"allowedUrlPatterns": {
"settings": "network default",
"patterns": [
]
},
"blockedUrlPatterns": {
"settings": "append",
"patterns": [
"http://www.example.com",
"http://www.betting.com"
]
},
"blockedUrlCategories": {
"settings": "override",
"categories": [
"meraki:contentFiltering/category/1",
"meraki:contentFiltering/category/7"
]
}
},
"splashAuthSettings": "bypass",
"vlanTagging": {
"settings": "custom",
"vlanId": "1"
},
"bonjourForwarding": {
"settings": "custom",
"rules": [
{
"description": "A simple bonjour rule",
"vlanId": "1",
"services": [
"All Services"
]
}
]
}
}
}
}
},
"summary": "Display a group policy",
"tags": [
"networks",
"configure",
"groupPolicies"
]
},
"put": {
"description": "Update a group policy",
"operationId": "updateNetworkGroupPolicy",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "groupPolicyId",
"in": "path",
"description": "Group policy ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkGroupPolicy",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name for your group policy."
},
"scheduling": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether scheduling is enabled (true) or disabled (false). Defaults to false. If true, the schedule objects for each day of the week (monday - sunday) are parsed."
},
"monday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Monday."
},
"tuesday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Tuesday."
},
"wednesday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Wednesday."
},
"thursday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Thursday."
},
"friday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Friday."
},
"saturday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Saturday."
},
"sunday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Sunday."
}
},
"description": " The schedule for the group policy. Schedules are applied to days of the week.\n"
},
"bandwidth": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How bandwidth limits are enforced. Can be 'network default', 'ignore' or 'custom'."
},
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps). null indicates no limit"
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps). null indicates no limit"
}
},
"description": "The bandwidth limits object, specifying upload and download speed for clients bound to the group policy. These are only enforced if 'settings' is set to 'custom'."
}
},
"description": " The bandwidth settings for clients bound to your group policy.\n"
},
"firewallAndTrafficShaping": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How firewall and traffic shaping rules are enforced. Can be 'network default', 'ignore' or 'custom'."
},
"trafficShapingRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"definitions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"host",
"ipRange",
"localNet",
"port"
],
"description": "The type of definition. Can be one of 'application', 'applicationCategory', 'host', 'port', 'ipRange' or 'localNet'."
},
"value": {
"type": "string",
"description": " If \"type\" is 'host', 'port', 'ipRange' or 'localNet', then \"value\" must be a string, matching either\n a hostname (e.g. \"somesite.com\"), a port (e.g. 8080), or an IP range (\"192.1.0.0\",\n \"192.1.0.0/16\", or \"10.1.0.0/16:80\"). 'localNet' also supports CIDR notation, excluding\n custom ports.\n If \"type\" is 'application' or 'applicationCategory', then \"value\" must be an object\n with the structure { \"id\": \"meraki:layer7/...\" }, where \"id\" is the application category or\n application ID (for a list of IDs for your network, use the trafficShaping/applicationCategories\n endpoint).\n"
}
},
"required": [
"type",
"value"
]
},
"description": " A list of objects describing the definitions of your traffic shaping rule. At least one definition is required.\n"
},
"perClientBandwidthLimits": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"description": "How bandwidth limits are applied by your rule. Can be one of 'network default', 'ignore' or 'custom'."
},
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps)."
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps)."
}
},
"description": "The bandwidth limits object, specifying the upload ('limitUp') and download ('limitDown') speed in Kbps. These are only enforced if 'settings' is set to 'custom'."
}
},
"description": " An object describing the bandwidth settings for your rule.\n"
},
"dscpTagValue": {
"type": "integer",
"description": " The DSCP tag applied by your rule. null means 'Do not change DSCP tag'.\n For a list of possible tag values, use the trafficShaping/dscpTaggingOptions endpoint.\n"
},
"pcpTagValue": {
"type": "integer",
"description": " The PCP tag applied by your rule. Can be 0 (lowest priority) through 7 (highest priority).\n null means 'Do not set PCP tag'.\n"
},
"priority": {
"type": "string",
"description": " A string, indicating the priority level for packets bound to your rule.\n Can be 'low', 'normal' or 'high'.\n"
}
},
"required": [
"definitions"
]
},
"description": " An array of traffic shaping rules. Rules are applied in the order that\n they are specified in. An empty list (or null) means no rules. Note that\n you are allowed a maximum of 8 rules.\n"
},
"l3FirewallRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"destPort": {
"type": "string",
"description": "Destination port (integer in the range 1-65535), a port range (e.g. 8080-9090), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Destination IP address (in IP or CIDR notation), a fully-qualified domain name (FQDN, if your network supports it) or 'any'."
}
},
"required": [
"policy",
"protocol",
"destCidr"
]
},
"description": "An ordered array of the L3 firewall rules"
},
"l7FirewallRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"policy": {
"type": "string",
"enum": [
"deny"
],
"description": "The policy applied to matching traffic. Must be 'deny'."
},
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"host",
"ipRange",
"port"
],
"description": "Type of the L7 Rule. Must be 'application', 'applicationCategory', 'host', 'port' or 'ipRange'"
},
"value": {
"type": "string",
"description": "The 'value' of what you want to block. If 'type' is 'host', 'port' or 'ipRange', 'value' must be a string matching either a hostname (e.g. somewhere.com), a port (e.g. 8080), or an IP range (e.g. 192.1.0.0/16). If 'type' is 'application' or 'applicationCategory', then 'value' must be an object with an ID for the application."
}
}
},
"description": "An ordered array of L7 firewall rules"
}
},
"description": " The firewall and traffic shaping rules and settings for your policy.\n"
},
"contentFiltering": {
"type": "object",
"properties": {
"allowedUrlPatterns": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"append",
"network default",
"override"
],
"description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'."
},
"patterns": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL patterns that are allowed"
}
},
"description": "Settings for allowed URL patterns"
},
"blockedUrlPatterns": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"append",
"network default",
"override"
],
"description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'."
},
"patterns": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL patterns that are blocked"
}
},
"description": "Settings for blocked URL patterns"
},
"blockedUrlCategories": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"append",
"network default",
"override"
],
"description": "How URL categories are applied. Can be 'network default', 'append' or 'override'."
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL categories to block"
}
},
"description": "Settings for blocked URL categories"
}
},
"description": "The content filtering settings for your group policy"
},
"splashAuthSettings": {
"type": "string",
"enum": [
"bypass",
"network default"
],
"description": "Whether clients bound to your policy will bypass splash authorization or behave according to the network's rules. Can be one of 'network default' or 'bypass'. Only available if your network has a wireless configuration."
},
"vlanTagging": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How VLAN tagging is applied. Can be 'network default', 'ignore' or 'custom'."
},
"vlanId": {
"type": "string",
"description": "The ID of the vlan you want to tag. This only applies if 'settings' is set to 'custom'."
}
},
"description": "The VLAN tagging settings for your group policy. Only available if your network has a wireless configuration."
},
"bonjourForwarding": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How Bonjour rules are applied. Can be 'network default', 'ignore' or 'custom'."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "A description for your Bonjour forwarding rule. Optional."
},
"vlanId": {
"type": "string",
"description": "The ID of the service VLAN. Required."
},
"services": {
"type": "array",
"items": {
"type": "string",
"enum": [
"AFP",
"AirPlay",
"All Services",
"BitTorrent",
"FTP",
"Printers",
"SSH",
"Samba",
"Scanners",
"iChat",
"iTunes"
]
},
"description": "A list of Bonjour services. At least one service must be specified. Available services are 'All Services', 'AirPlay', 'AFP', 'BitTorrent', 'FTP', 'iChat', 'iTunes', 'Printers', 'Samba', 'Scanners' and 'SSH'"
}
},
"required": [
"vlanId",
"services"
]
},
"description": "A list of the Bonjour forwarding rules for your group policy. If 'settings' is set to 'custom', at least one rule must be specified."
}
},
"description": "The Bonjour settings for your group policy. Only valid if your network has a wireless configuration."
}
},
"example": {
"name": "No video streaming",
"scheduling": {
"enabled": true,
"monday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"tuesday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"wednesday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"thursday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"friday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"saturday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"sunday": {
"active": true,
"from": "9:00",
"to": "17:00"
}
},
"bandwidth": {
"settings": "custom",
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
}
},
"firewallAndTrafficShaping": {
"settings": "custom",
"trafficShapingRules": [
{
"definitions": [
{
"type": "host",
"value": "google.com"
}
],
"perClientBandwidthLimits": {
"settings": "custom",
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
}
},
"dscpTagValue": 0,
"pcpTagValue": 0,
"priority": "normal"
}
],
"l3FirewallRules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24"
}
],
"l7FirewallRules": [
{
"policy": "deny",
"type": "host",
"value": "google.com"
}
]
},
"contentFiltering": {
"allowedUrlPatterns": {
"settings": "network default",
"patterns": [
]
},
"blockedUrlPatterns": {
"settings": "append",
"patterns": [
"http://www.example.com",
"http://www.betting.com"
]
},
"blockedUrlCategories": {
"settings": "override",
"categories": [
"meraki:contentFiltering/category/1",
"meraki:contentFiltering/category/7"
]
}
},
"splashAuthSettings": "bypass",
"vlanTagging": {
"settings": "custom",
"vlanId": "1"
},
"bonjourForwarding": {
"settings": "custom",
"rules": [
{
"description": "A simple bonjour rule",
"vlanId": "1",
"services": [
"All Services"
]
}
]
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"groupPolicyId": {
"type": "string",
"description": "The ID of the group policy"
},
"scheduling": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether scheduling is enabled (true) or disabled (false). Defaults to false. If true, the schedule objects for each day of the week (monday - sunday) are parsed."
},
"monday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Monday."
},
"tuesday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Tuesday."
},
"wednesday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Wednesday."
},
"thursday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Thursday."
},
"friday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Friday."
},
"saturday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Saturday."
},
"sunday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Sunday."
}
},
"description": " The schedule for the group policy. Schedules are applied to days of the week.\n"
},
"bandwidth": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How bandwidth limits are enforced. Can be 'network default', 'ignore' or 'custom'."
},
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps). null indicates no limit"
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps). null indicates no limit"
}
},
"description": "The bandwidth limits object, specifying upload and download speed for clients bound to the group policy. These are only enforced if 'settings' is set to 'custom'."
}
},
"description": " The bandwidth settings for clients bound to your group policy.\n"
},
"firewallAndTrafficShaping": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How firewall and traffic shaping rules are enforced. Can be 'network default', 'ignore' or 'custom'."
},
"trafficShapingRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"definitions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"host",
"ipRange",
"localNet",
"port"
],
"description": "The type of definition. Can be one of 'application', 'applicationCategory', 'host', 'port', 'ipRange' or 'localNet'."
},
"value": {
"type": "string",
"description": " If \"type\" is 'host', 'port', 'ipRange' or 'localNet', then \"value\" must be a string, matching either\n a hostname (e.g. \"somesite.com\"), a port (e.g. 8080), or an IP range (\"192.1.0.0\",\n \"192.1.0.0/16\", or \"10.1.0.0/16:80\"). 'localNet' also supports CIDR notation, excluding\n custom ports.\n If \"type\" is 'application' or 'applicationCategory', then \"value\" must be an object\n with the structure { \"id\": \"meraki:layer7/...\" }, where \"id\" is the application category or\n application ID (for a list of IDs for your network, use the trafficShaping/applicationCategories\n endpoint).\n"
}
},
"required": [
"type",
"value"
]
},
"description": " A list of objects describing the definitions of your traffic shaping rule. At least one definition is required.\n"
},
"perClientBandwidthLimits": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"description": "How bandwidth limits are applied by your rule. Can be one of 'network default', 'ignore' or 'custom'."
},
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps)."
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps)."
}
},
"description": "The bandwidth limits object, specifying the upload ('limitUp') and download ('limitDown') speed in Kbps. These are only enforced if 'settings' is set to 'custom'."
}
},
"description": " An object describing the bandwidth settings for your rule.\n"
},
"dscpTagValue": {
"type": "integer",
"description": " The DSCP tag applied by your rule. null means 'Do not change DSCP tag'.\n For a list of possible tag values, use the trafficShaping/dscpTaggingOptions endpoint.\n"
},
"pcpTagValue": {
"type": "integer",
"description": " The PCP tag applied by your rule. Can be 0 (lowest priority) through 7 (highest priority).\n null means 'Do not set PCP tag'.\n"
},
"priority": {
"type": "string",
"description": " A string, indicating the priority level for packets bound to your rule.\n Can be 'low', 'normal' or 'high'.\n"
}
},
"required": [
"definitions"
]
},
"description": " An array of traffic shaping rules. Rules are applied in the order that\n they are specified in. An empty list (or null) means no rules. Note that\n you are allowed a maximum of 8 rules.\n"
},
"l3FirewallRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"destPort": {
"type": "string",
"description": "Destination port (integer in the range 1-65535), a port range (e.g. 8080-9090), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Destination IP address (in IP or CIDR notation), a fully-qualified domain name (FQDN, if your network supports it) or 'any'."
}
},
"required": [
"policy",
"protocol",
"destCidr"
]
},
"description": "An ordered array of the L3 firewall rules"
},
"l7FirewallRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"policy": {
"type": "string",
"enum": [
"deny"
],
"description": "The policy applied to matching traffic. Must be 'deny'."
},
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"host",
"ipRange",
"port"
],
"description": "Type of the L7 Rule. Must be 'application', 'applicationCategory', 'host', 'port' or 'ipRange'"
},
"value": {
"type": "string",
"description": "The 'value' of what you want to block. If 'type' is 'host', 'port' or 'ipRange', 'value' must be a string matching either a hostname (e.g. somewhere.com), a port (e.g. 8080), or an IP range (e.g. 192.1.0.0/16). If 'type' is 'application' or 'applicationCategory', then 'value' must be an object with an ID for the application."
}
}
},
"description": "An ordered array of L7 firewall rules"
}
},
"description": " The firewall and traffic shaping rules and settings for your policy.\n"
},
"contentFiltering": {
"type": "object",
"properties": {
"allowedUrlPatterns": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"append",
"network default",
"override"
],
"description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'."
},
"patterns": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL patterns that are allowed"
}
},
"description": "Settings for allowed URL patterns"
},
"blockedUrlPatterns": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"append",
"network default",
"override"
],
"description": "How URL patterns are applied. Can be 'network default', 'append' or 'override'."
},
"patterns": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL patterns that are blocked"
}
},
"description": "Settings for blocked URL patterns"
},
"blockedUrlCategories": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"append",
"network default",
"override"
],
"description": "How URL categories are applied. Can be 'network default', 'append' or 'override'."
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of URL categories to block"
}
},
"description": "Settings for blocked URL categories"
}
},
"description": "The content filtering settings for your group policy"
},
"splashAuthSettings": {
"type": "string",
"enum": [
"bypass",
"network default"
],
"description": "Whether clients bound to your policy will bypass splash authorization or behave according to the network's rules. Can be one of 'network default' or 'bypass'. Only available if your network has a wireless configuration."
},
"vlanTagging": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How VLAN tagging is applied. Can be 'network default', 'ignore' or 'custom'."
},
"vlanId": {
"type": "string",
"description": "The ID of the vlan you want to tag. This only applies if 'settings' is set to 'custom'."
}
},
"description": "The VLAN tagging settings for your group policy. Only available if your network has a wireless configuration."
},
"bonjourForwarding": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"enum": [
"custom",
"ignore",
"network default"
],
"description": "How Bonjour rules are applied. Can be 'network default', 'ignore' or 'custom'."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "A description for your Bonjour forwarding rule. Optional."
},
"vlanId": {
"type": "string",
"description": "The ID of the service VLAN. Required."
},
"services": {
"type": "array",
"items": {
"type": "string",
"enum": [
"AFP",
"AirPlay",
"All Services",
"BitTorrent",
"FTP",
"Printers",
"SSH",
"Samba",
"Scanners",
"iChat",
"iTunes"
]
},
"description": "A list of Bonjour services. At least one service must be specified. Available services are 'All Services', 'AirPlay', 'AFP', 'BitTorrent', 'FTP', 'iChat', 'iTunes', 'Printers', 'Samba', 'Scanners' and 'SSH'"
}
},
"required": [
"vlanId",
"services"
]
},
"description": "A list of the Bonjour forwarding rules for your group policy. If 'settings' is set to 'custom', at least one rule must be specified."
}
},
"description": "The Bonjour settings for your group policy. Only valid if your network has a wireless configuration."
}
}
},
"examples": {
"application/json": {
"groupPolicyId": "101",
"scheduling": {
"enabled": true,
"monday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"tuesday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"wednesday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"thursday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"friday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"saturday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"sunday": {
"active": true,
"from": "9:00",
"to": "17:00"
}
},
"bandwidth": {
"settings": "custom",
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
}
},
"firewallAndTrafficShaping": {
"settings": "custom",
"trafficShapingRules": [
{
"definitions": [
{
"type": "host",
"value": "google.com"
}
],
"perClientBandwidthLimits": {
"settings": "custom",
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
}
},
"dscpTagValue": 0,
"pcpTagValue": 0,
"priority": "normal"
}
],
"l3FirewallRules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24"
}
],
"l7FirewallRules": [
{
"policy": "deny",
"type": "host",
"value": "google.com"
}
]
},
"contentFiltering": {
"allowedUrlPatterns": {
"settings": "network default",
"patterns": [
]
},
"blockedUrlPatterns": {
"settings": "append",
"patterns": [
"http://www.example.com",
"http://www.betting.com"
]
},
"blockedUrlCategories": {
"settings": "override",
"categories": [
"meraki:contentFiltering/category/1",
"meraki:contentFiltering/category/7"
]
}
},
"splashAuthSettings": "bypass",
"vlanTagging": {
"settings": "custom",
"vlanId": "1"
},
"bonjourForwarding": {
"settings": "custom",
"rules": [
{
"description": "A simple bonjour rule",
"vlanId": "1",
"services": [
"All Services"
]
}
]
}
}
}
}
},
"summary": "Update a group policy",
"tags": [
"networks",
"configure",
"groupPolicies"
]
},
"delete": {
"description": "Delete a group policy",
"operationId": "deleteNetworkGroupPolicy",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "groupPolicyId",
"in": "path",
"description": "Group policy ID",
"type": "string",
"required": true
},
{
"name": "deleteNetworkGroupPolicy",
"in": "body",
"schema": {
"type": "object",
"properties": {
"forceDeletion": {
"type": "boolean",
"x-release-stage": "beta",
"description": "If true, the system deletes the GP even if there are active clients using the GP. After deletion, active clients that were assigned to that Group Policy will be left without any policy applied. Default is false."
}
},
"example": {
"forceDeletion": false
}
}
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a group policy",
"tags": [
"networks",
"configure",
"groupPolicies"
]
}
},
"/networks/{networkId}/health/alerts": {
"get": {
"description": "Return all global alerts on this network",
"operationId": "getNetworkHealthAlerts",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Alert identifier. Value can be empty"
},
"category": {
"type": "string",
"description": "Category of the alert"
},
"type": {
"type": "string",
"description": "Alert type"
},
"severity": {
"type": "string",
"enum": [
"error",
"info",
"warning"
],
"description": "Severity of the alert"
},
"scope": {
"type": "object",
"properties": {
"devices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "URL to the device"
},
"name": {
"type": "string",
"description": "Name of the device"
},
"productType": {
"type": "string",
"description": "Product type of the device"
},
"serial": {
"type": "string",
"description": "Serial number of the device"
},
"mac": {
"type": "string",
"description": "The mac address of the device"
},
"lldp": {
"type": "object",
"properties": {
"portId": {
"type": "string",
"description": "Port Id"
}
},
"description": "Lldp information"
},
"clients": {
"type": "array",
"items": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "Mac address of the client"
}
}
},
"description": "Clients related to the device"
}
}
},
"description": "Devices related to the alert"
},
"applications": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "URL to the application"
},
"name": {
"type": "string",
"description": "Name of the application"
}
}
},
"description": "Applications related to the alert"
},
"peers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "URL to the peer"
},
"network": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the network"
},
"id": {
"type": "string",
"description": "Id of the network"
}
},
"description": "Network of the peer"
}
}
},
"description": "Peers related to the alert"
}
},
"description": "The scope of the alert"
}
}
}
},
"examples": {
"application/json": [
{
"id": "1234",
"category": "Connectivity",
"type": "Poor connectivity to the Meraki cloud",
"severity": "info",
"scope": {
"devices": [
{
"url": "https://n1.meraki.com//n//manage/nodes/new_list/000000000000",
"name": "My AP",
"productType": "switch",
"serial": "Q234-ABCD-5678",
"mac": "00:11:22:33:44:55",
"lldp": {
"portId": "1"
},
"clients": [
{
"mac": "22:33:44:55:66:77"
}
]
}
],
"applications": [
{
"url": "https://n1.meraki.com//n//manage/nodes/list",
"name": "Application on application server"
}
],
"peers": [
{
"url": "https://n1.meraki.com//n//manage/nodes/list",
"network": {
"name": "Main Office",
"id": "N_24329156"
}
}
]
}
}
]
}
}
},
"summary": "Return all global alerts on this network",
"tags": [
"networks",
"configure",
"health",
"alerts"
]
}
},
"/networks/{networkId}/insight/applications/{applicationId}/healthByTime": {
"get": {
"description": "Get application health by time",
"operationId": "getNetworkInsightApplicationHealthByTime",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "applicationId",
"in": "path",
"description": "Application ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 7 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 7 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 604800,
"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 7 days. The default is 2 hours."
},
{
"type": "integer",
"name": "resolution",
"in": "query",
"description": "The time resolution in seconds for returned data. The valid resolutions are: 60, 300, 3600, 86400. The default is 300."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startTs": {
"type": "string",
"format": "date-time",
"description": "The start time of the query range"
},
"endTs": {
"type": "string",
"format": "date-time",
"description": "The end time of the query range"
},
"wanGoodput": {
"type": "integer",
"description": "WAN goodput (Number of useful information bits delivered over a WAN per unit of time)"
},
"lanGoodput": {
"type": "integer",
"description": "LAN goodput (Number of useful information bits delivered over a LAN per unit of time)"
},
"wanLatencyMs": {
"type": "number",
"format": "float",
"description": "WAN latency in milliseconds"
},
"lanLatencyMs": {
"type": "number",
"format": "float",
"description": "LAN latency in milliseconds"
},
"wanLossPercent": {
"type": "number",
"format": "float",
"description": "WAN loss percentage"
},
"lanLossPercent": {
"type": "number",
"format": "float",
"description": "LAN loss percentage"
},
"responseDuration": {
"type": "integer",
"description": "Duration of the response, in milliseconds"
},
"sent": {
"type": "integer",
"description": "Sent kilobytes-per-second"
},
"recv": {
"type": "integer",
"description": "Received kilobytes-per-second"
},
"numClients": {
"type": "integer",
"description": "Number of clients"
}
}
}
},
"examples": {
"application/json": [
{
"startTs": "2018-02-11T00:00:00Z",
"endTs": "2018-05-12T00:00:00Z",
"wanGoodput": 20000000,
"lanGoodput": 100000000,
"wanLatencyMs": 10.1,
"lanLatencyMs": 3.2,
"wanLossPercent": 0.2,
"lanLossPercent": 0.0,
"responseDuration": 210,
"sent": 1000,
"recv": 5000,
"numClients": 2
}
]
}
}
},
"summary": "Get application health by time",
"tags": [
"insight",
"monitor",
"applications",
"healthByTime"
]
}
},
"/networks/{networkId}/locationScanning": {
"get": {
"description": "Return scanning API settings",
"operationId": "getNetworkLocationScanning",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"analyticsEnabled": {
"type": "boolean",
"description": "Whether to enable collection of location and scanning analytics."
},
"scanningApiEnabled": {
"type": "boolean",
"description": "Whether to enable push API for scanning events. Analytics must be enabled to enable scanning API."
},
"validator": {
"type": "string",
"description": "Validator for push API."
}
}
},
"examples": {
"application/json": {
"analyticsEnabled": true,
"scanningApiEnabled": true,
"validator": "xxyzzy"
}
}
}
},
"summary": "Return scanning API settings",
"tags": [
"networks",
"configure",
"locationScanning"
],
"x-release-stage": "beta"
},
"put": {
"description": "Change scanning API settings",
"operationId": "updateNetworkLocationScanning",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkLocationScanning",
"in": "body",
"schema": {
"type": "object",
"properties": {
"analyticsEnabled": {
"type": "boolean",
"description": "Collect location and scanning analytics"
},
"scanningApiEnabled": {
"type": "boolean",
"description": "Enable push API for scanning events, analytics must be enabled"
}
},
"example": {
"analyticsEnabled": true,
"scanningApiEnabled": true
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"analyticsEnabled": {
"type": "boolean",
"description": "Whether to enable collection of location and scanning analytics."
},
"scanningApiEnabled": {
"type": "boolean",
"description": "Whether to enable push API for scanning events. Analytics must be enabled to enable scanning API."
},
"validator": {
"type": "string",
"description": "Validator for push API."
}
}
},
"examples": {
"application/json": {
"analyticsEnabled": true,
"scanningApiEnabled": true,
"validator": "xxyzzy"
}
}
}
},
"summary": "Change scanning API settings",
"tags": [
"networks",
"configure",
"locationScanning"
],
"x-release-stage": "beta"
}
},
"/networks/{networkId}/locationScanning/httpServers": {
"get": {
"description": "Return list of scanning API receivers",
"operationId": "getNetworkLocationScanningHttpServers",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"endpoints": {
"type": "array",
"items": {
"type": "object",
"properties": {
"httpServer": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Identifier for the HTTP server"
},
"name": {
"type": "string",
"description": "The name of the HTTP server"
},
"networkId": {
"type": "string",
"description": "A Meraki network ID."
},
"url": {
"type": "string",
"description": "URL where the HTTP server may be reached"
},
"sharedSecret": {
"type": "string",
"description": "Shared secret for the HTTP server"
},
"validator": {
"type": "string",
"description": "Validator for the HTTP server"
},
"validatedAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp, in ISO8601 format, when the HTTP server was validated"
}
},
"description": "Endpoint http server information"
},
"scanningApiVersion": {
"type": "integer",
"description": "Version of the scanning API"
},
"radioType": {
"type": "string",
"enum": [
"BLE",
"WiFi"
],
"description": "Radio type to use for scanning: 'WiFi' or 'BLE'"
},
"successAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp, in ISO8601, when the operation was completed successfully"
},
"errorAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp, in ISO8601, when the operation was completed successfully"
},
"postErrors": {
"type": "string",
"description": "Errors, if any, in JSON format"
}
}
},
"description": "List of location scanning endpoints"
}
}
}
},
"examples": {
"application/json": [
{
"endpoints": [
{
"httpServer": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vbXlfY3VzdG9tX3dlYmhvb2s=",
"name": "Example Webhook Server",
"networkId": "N_12345678",
"url": "https://www.example.com/my_custom_webhook",
"sharedSecret": "******",
"validator": "xxx",
"validatedAt": "2018-02-11T00:00:00Z"
},
"scanningApiVersion": 123,
"radioType": "WiFi",
"successAt": "2018-05-12T00:00:00Z",
"errorAt": "2018-02-11T00:00:00Z",
"postErrors": "[{\"code\":200,\"delay\":{\"inMillis\":612},\"timestamp\":{\"millisFromEpoch\":1597255325467}}]"
}
]
}
]
}
}
},
"summary": "Return list of scanning API receivers",
"tags": [
"networks",
"configure",
"locationScanning",
"httpServers"
],
"x-release-stage": "beta"
},
"put": {
"description": "Set the list of scanning API receivers. Old receivers will be removed",
"operationId": "updateNetworkLocationScanningHttpServers",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkLocationScanningHttpServers",
"in": "body",
"schema": {
"type": "object",
"properties": {
"endpoints": {
"type": "array",
"items": {
"type": "object",
"properties": {
"scanningApiVersion": {
"type": "integer",
"enum": [
1,
2,
3
],
"description": "API version that the receiver expects to get; '1', '2' or '3'"
},
"radioType": {
"type": "string",
"enum": [
"BLE",
"WiFi"
],
"description": "Radio type to use for scanning; 'WiFi' or 'BLE'"
},
"httpServer": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The URL of the HTTP server"
},
"sharedSecret": {
"type": "string",
"description": "A shared secret that will be included in POSTs sent to the HTTP server. This secret can be used to verify that the request was sent by Meraki."
}
},
"required": [
"url",
"sharedSecret"
],
"description": "An http server object"
}
},
"required": [
"scanningApiVersion",
"radioType",
"httpServer"
]
},
"description": "A set of http server configurations"
}
},
"example": {
"endpoints": [
{
"scanningApiVersion": 3,
"radioType": "WiFi",
"httpServer": {
"url": "https://example.com",
"sharedSecret": "shhh"
}
}
]
},
"required": [
"endpoints"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"endpoints": {
"type": "array",
"items": {
"type": "object",
"properties": {
"httpServer": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Identifier for the HTTP server"
},
"name": {
"type": "string",
"description": "The name of the HTTP server"
},
"networkId": {
"type": "string",
"description": "A Meraki network ID."
},
"url": {
"type": "string",
"description": "URL where the HTTP server may be reached"
},
"sharedSecret": {
"type": "string",
"description": "Shared secret for the HTTP server"
},
"validator": {
"type": "string",
"description": "Validator for the HTTP server"
},
"validatedAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp, in ISO8601 format, when the HTTP server was validated"
}
},
"description": "Endpoint http server information"
},
"scanningApiVersion": {
"type": "integer",
"description": "Version of the scanning API"
},
"radioType": {
"type": "string",
"enum": [
"BLE",
"WiFi"
],
"description": "Radio type to use for scanning: 'WiFi' or 'BLE'"
},
"successAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp, in ISO8601, when the operation was completed successfully"
},
"errorAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp, in ISO8601, when the operation was completed successfully"
},
"postErrors": {
"type": "string",
"description": "Errors, if any, in JSON format"
}
}
},
"description": "List of location scanning endpoints"
}
}
},
"examples": {
"application/json": {
"endpoints": [
{
"httpServer": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vbXlfY3VzdG9tX3dlYmhvb2s=",
"name": "Example Webhook Server",
"networkId": "N_12345678",
"url": "https://www.example.com/my_custom_webhook",
"sharedSecret": "******",
"validator": "xxx",
"validatedAt": "2018-02-11T00:00:00Z"
},
"scanningApiVersion": 123,
"radioType": "WiFi",
"successAt": "2018-05-12T00:00:00Z",
"errorAt": "2018-02-11T00:00:00Z",
"postErrors": "[{\"code\":200,\"delay\":{\"inMillis\":612},\"timestamp\":{\"millisFromEpoch\":1597255325467}}]"
}
]
}
}
}
},
"summary": "Set the list of scanning API receivers",
"tags": [
"networks",
"configure",
"locationScanning",
"httpServers"
],
"x-release-stage": "beta"
}
},
"/networks/{networkId}/merakiAuthUsers": {
"get": {
"description": "List the users configured under Meraki Authentication for a network (splash guest or RADIUS users for a wireless network, or client VPN users for a MX network)",
"operationId": "getNetworkMerakiAuthUsers",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Meraki auth user id"
},
"email": {
"type": "string",
"description": "Email address of the user"
},
"name": {
"type": "string",
"description": "Name of the user"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Creation time of the user"
},
"accountType": {
"type": "string",
"description": "Authorization type for user."
},
"isAdmin": {
"type": "boolean",
"description": "Whether or not the user is a Dashboard administrator"
},
"authorizations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ssidNumber": {
"type": "integer",
"description": "SSID number"
},
"authorizedZone": {
"type": "string",
"description": "Authorized zone of the user"
},
"expiresAt": {
"type": "string",
"format": "date-time",
"description": "Authorization expiration time"
},
"authorizedByName": {
"type": "string",
"description": "User is authorized by the account name"
},
"authorizedByEmail": {
"type": "string",
"description": "User is authorized by the account email address"
}
}
},
"description": "User authorization info"
}
}
}
},
"examples": {
"application/json": [
{
"id": "aGlAaGkuY29t",
"email": "miles@meraki.com",
"name": "Miles Meraki",
"createdAt": "2018-02-11T00:00:00.090210Z",
"accountType": "802.1X",
"isAdmin": false,
"authorizations": [
{
"ssidNumber": 1,
"authorizedZone": "Store WiFi",
"expiresAt": "2018-03-13T00:00:00.090210Z",
"authorizedByName": "Miles Meraki",
"authorizedByEmail": "miles@meraki.com"
}
]
}
]
}
}
},
"summary": "List the users configured under Meraki Authentication for a network (splash guest or RADIUS users for a wireless network, or client VPN users for a MX network)",
"tags": [
"networks",
"configure",
"merakiAuthUsers"
]
},
"post": {
"description": "Authorize a user configured with Meraki Authentication for a network (currently supports 802.1X, splash guest, and client VPN users, and currently, organizations have a 50,000 user cap)",
"operationId": "createNetworkMerakiAuthUser",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkMerakiAuthUser",
"in": "body",
"schema": {
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "Email address of the user"
},
"name": {
"type": "string",
"description": "Name of the user. Only required If the user is not a Dashboard administrator."
},
"password": {
"type": "string",
"description": "The password for this user account. Only required If the user is not a Dashboard administrator."
},
"accountType": {
"type": "string",
"enum": [
"802.1X",
"Client VPN",
"Guest"
],
"description": "Authorization type for user. Can be 'Guest' or '802.1X' for wireless networks, or 'Client VPN' for MX networks. Defaults to '802.1X'.",
"default": "802.1X"
},
"emailPasswordToUser": {
"type": "boolean",
"description": "Whether or not Meraki should email the password to user. Default is false."
},
"isAdmin": {
"type": "boolean",
"description": "Whether or not the user is a Dashboard administrator."
},
"authorizations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ssidNumber": {
"type": "integer",
"description": "Required for wireless networks. The SSID for which the user is being authorized, which must be configured for the user's given accountType."
},
"expiresAt": {
"type": "string",
"description": "Date for authorization to expire. Set to 'Never' for the authorization to not expire, which is the default.",
"default": "Never"
}
}
},
"description": "Authorization zones and expiration dates for the user."
}
},
"example": {
"email": "miles@meraki.com",
"name": "Miles Meraki",
"password": "secret",
"accountType": "802.1X",
"emailPasswordToUser": false,
"isAdmin": false,
"authorizations": [
{
"ssidNumber": 1,
"expiresAt": "2018-03-13T00:00:00.090210Z"
}
]
},
"required": [
"email",
"authorizations"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Meraki auth user id"
},
"email": {
"type": "string",
"description": "Email address of the user"
},
"name": {
"type": "string",
"description": "Name of the user"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Creation time of the user"
},
"accountType": {
"type": "string",
"description": "Authorization type for user."
},
"isAdmin": {
"type": "boolean",
"description": "Whether or not the user is a Dashboard administrator"
},
"authorizations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ssidNumber": {
"type": "integer",
"description": "SSID number"
},
"authorizedZone": {
"type": "string",
"description": "Authorized zone of the user"
},
"expiresAt": {
"type": "string",
"format": "date-time",
"description": "Authorization expiration time"
},
"authorizedByName": {
"type": "string",
"description": "User is authorized by the account name"
},
"authorizedByEmail": {
"type": "string",
"description": "User is authorized by the account email address"
}
}
},
"description": "User authorization info"
}
}
},
"examples": {
"application/json": {
"id": "aGlAaGkuY29t",
"email": "miles@meraki.com",
"name": "Miles Meraki",
"createdAt": "2018-02-11T00:00:00.090210Z",
"accountType": "802.1X",
"isAdmin": false,
"authorizations": [
{
"ssidNumber": 1,
"authorizedZone": "Store WiFi",
"expiresAt": "2018-03-13T00:00:00.090210Z",
"authorizedByName": "Miles Meraki",
"authorizedByEmail": "miles@meraki.com"
}
]
}
}
}
},
"summary": "Authorize a user configured with Meraki Authentication for a network (currently supports 802.1X, splash guest, and client VPN users, and currently, organizations have a 50,000 user cap)",
"tags": [
"networks",
"configure",
"merakiAuthUsers"
]
}
},
"/networks/{networkId}/merakiAuthUsers/{merakiAuthUserId}": {
"get": {
"description": "Return the Meraki Auth splash guest, RADIUS, or client VPN user",
"operationId": "getNetworkMerakiAuthUser",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "merakiAuthUserId",
"in": "path",
"description": "Meraki auth user ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Meraki auth user id"
},
"email": {
"type": "string",
"description": "Email address of the user"
},
"name": {
"type": "string",
"description": "Name of the user"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Creation time of the user"
},
"accountType": {
"type": "string",
"description": "Authorization type for user."
},
"isAdmin": {
"type": "boolean",
"description": "Whether or not the user is a Dashboard administrator"
},
"authorizations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ssidNumber": {
"type": "integer",
"description": "SSID number"
},
"authorizedZone": {
"type": "string",
"description": "Authorized zone of the user"
},
"expiresAt": {
"type": "string",
"format": "date-time",
"description": "Authorization expiration time"
},
"authorizedByName": {
"type": "string",
"description": "User is authorized by the account name"
},
"authorizedByEmail": {
"type": "string",
"description": "User is authorized by the account email address"
}
}
},
"description": "User authorization info"
}
}
},
"examples": {
"application/json": {
"id": "aGlAaGkuY29t",
"email": "miles@meraki.com",
"name": "Miles Meraki",
"createdAt": "2018-02-11T00:00:00.090210Z",
"accountType": "802.1X",
"isAdmin": false,
"authorizations": [
{
"ssidNumber": 1,
"authorizedZone": "Store WiFi",
"expiresAt": "2018-03-13T00:00:00.090210Z",
"authorizedByName": "Miles Meraki",
"authorizedByEmail": "miles@meraki.com"
}
]
}
}
}
},
"summary": "Return the Meraki Auth splash guest, RADIUS, or client VPN user",
"tags": [
"networks",
"configure",
"merakiAuthUsers"
]
},
"delete": {
"description": "Delete an 802.1X RADIUS user, or deauthorize and optionally delete a splash guest or client VPN user.",
"operationId": "deleteNetworkMerakiAuthUser",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "merakiAuthUserId",
"in": "path",
"description": "Meraki auth user ID",
"type": "string",
"required": true
},
{
"type": "boolean",
"name": "delete",
"in": "query",
"description": "If the ID supplied is for a splash guest or client VPN user, and that user is not authorized for any other networks in the organization, then also delete the user. 802.1X RADIUS users are always deleted regardless of this optional attribute."
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete an 802.1X RADIUS user, or deauthorize and optionally delete a splash guest or client VPN user.",
"tags": [
"networks",
"configure",
"merakiAuthUsers"
]
},
"put": {
"description": "Update a user configured with Meraki Authentication (currently, 802.1X RADIUS, splash guest, and client VPN users can be updated)",
"operationId": "updateNetworkMerakiAuthUser",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "merakiAuthUserId",
"in": "path",
"description": "Meraki auth user ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkMerakiAuthUser",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the user. Only allowed If the user is not Dashboard administrator."
},
"password": {
"type": "string",
"description": "The password for this user account. Only allowed If the user is not Dashboard administrator."
},
"emailPasswordToUser": {
"type": "boolean",
"description": "Whether or not Meraki should email the password to user. Default is false."
},
"authorizations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ssidNumber": {
"type": "integer",
"description": "SSID for which the user is being authorized"
},
"expiresAt": {
"type": "string",
"description": "Date for authorization to expire. Default is for authorization to not expire.",
"default": "Never"
}
},
"required": [
"ssidNumber"
]
},
"description": "Authorization zones and expiration dates for the user."
}
},
"example": {
"name": "Miles Meraki",
"password": "secret",
"emailPasswordToUser": false,
"authorizations": [
{
"ssidNumber": 1,
"expiresAt": "2018-03-13T00:00:00.090210Z"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Meraki auth user id"
},
"email": {
"type": "string",
"description": "Email address of the user"
},
"name": {
"type": "string",
"description": "Name of the user"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Creation time of the user"
},
"accountType": {
"type": "string",
"description": "Authorization type for user."
},
"isAdmin": {
"type": "boolean",
"description": "Whether or not the user is a Dashboard administrator"
},
"authorizations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ssidNumber": {
"type": "integer",
"description": "SSID number"
},
"authorizedZone": {
"type": "string",
"description": "Authorized zone of the user"
},
"expiresAt": {
"type": "string",
"format": "date-time",
"description": "Authorization expiration time"
},
"authorizedByName": {
"type": "string",
"description": "User is authorized by the account name"
},
"authorizedByEmail": {
"type": "string",
"description": "User is authorized by the account email address"
}
}
},
"description": "User authorization info"
}
}
},
"examples": {
"application/json": {
"id": "aGlAaGkuY29t",
"email": "miles@meraki.com",
"name": "Miles Meraki",
"createdAt": "2018-02-11T00:00:00.090210Z",
"accountType": "802.1X",
"isAdmin": false,
"authorizations": [
{
"ssidNumber": 1,
"authorizedZone": "Store WiFi",
"expiresAt": "2018-03-13T00:00:00.090210Z",
"authorizedByName": "Miles Meraki",
"authorizedByEmail": "miles@meraki.com"
}
]
}
}
}
},
"summary": "Update a user configured with Meraki Authentication (currently, 802.1X RADIUS, splash guest, and client VPN users can be updated)",
"tags": [
"networks",
"configure",
"merakiAuthUsers"
]
}
},
"/networks/{networkId}/mqttBrokers": {
"get": {
"description": "List the MQTT brokers for this network",
"operationId": "getNetworkMqttBrokers",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the MQTT Broker."
},
"name": {
"type": "string",
"description": "Name of the MQTT Broker."
},
"host": {
"type": "string",
"description": "Host name/IP address where the MQTT broker runs."
},
"port": {
"type": "integer",
"description": "Host port though which the MQTT broker can be reached."
},
"security": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"description": "Security protocol of the MQTT broker."
},
"tls": {
"type": "object",
"properties": {
"hasCaCertificate": {
"type": "boolean",
"description": "Indicates whether the CA certificate is set"
},
"verifyHostnames": {
"type": "boolean",
"description": "Whether the TLS hostname verification is enabled for the MQTT broker."
}
},
"description": "TLS settings of the MQTT broker."
}
},
"description": "Security settings of the MQTT broker."
},
"authentication": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "Username for the MQTT broker."
}
},
"description": "Authentication settings of the MQTT broker"
}
}
}
},
"examples": {
"application/json": [
{
"id": "1234",
"name": "MQTT_Broker_1",
"host": "1.2.3.4",
"port": 443,
"security": {
"mode": "tls",
"tls": {
"hasCaCertificate": true,
"verifyHostnames": true
}
},
"authentication": {
"username": "milesmeraki"
}
}
]
}
}
},
"summary": "List the MQTT brokers for this network",
"tags": [
"networks",
"configure",
"mqttBrokers"
]
},
"post": {
"description": "Add an MQTT broker",
"operationId": "createNetworkMqttBroker",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkMqttBroker",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the MQTT broker."
},
"host": {
"type": "string",
"description": "Host name/IP address where the MQTT broker runs."
},
"port": {
"type": "integer",
"description": "Host port though which the MQTT broker can be reached."
},
"security": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"description": "Security protocol of the MQTT broker."
},
"tls": {
"type": "object",
"properties": {
"caCertificate": {
"type": "string",
"description": "CA Certificate of the MQTT broker."
},
"verifyHostnames": {
"type": "boolean",
"description": "Whether the TLS hostname verification is enabled for the MQTT broker."
}
},
"description": "TLS settings of the MQTT broker."
}
},
"description": "Security settings of the MQTT broker."
},
"authentication": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "Username for the MQTT broker."
},
"password": {
"type": "string",
"description": "Password for the MQTT broker."
}
},
"description": "Authentication settings of the MQTT broker"
}
},
"example": {
"name": "MQTT_Broker_1",
"host": "1.2.3.4",
"port": 443,
"security": {
"mode": "tls",
"tls": {
"caCertificate": "*****",
"verifyHostnames": true
}
},
"authentication": {
"username": "milesmeraki",
"password": "*****"
}
},
"required": [
"name",
"host",
"port"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the MQTT Broker."
},
"name": {
"type": "string",
"description": "Name of the MQTT Broker."
},
"host": {
"type": "string",
"description": "Host name/IP address where the MQTT broker runs."
},
"port": {
"type": "integer",
"description": "Host port though which the MQTT broker can be reached."
},
"security": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"description": "Security protocol of the MQTT broker."
},
"tls": {
"type": "object",
"properties": {
"hasCaCertificate": {
"type": "boolean",
"description": "Indicates whether the CA certificate is set"
},
"verifyHostnames": {
"type": "boolean",
"description": "Whether the TLS hostname verification is enabled for the MQTT broker."
}
},
"description": "TLS settings of the MQTT broker."
}
},
"description": "Security settings of the MQTT broker."
},
"authentication": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "Username for the MQTT broker."
}
},
"description": "Authentication settings of the MQTT broker"
}
}
},
"examples": {
"application/json": {
"id": "1234",
"name": "MQTT_Broker_1",
"host": "1.2.3.4",
"port": 443,
"security": {
"mode": "tls",
"tls": {
"hasCaCertificate": true,
"verifyHostnames": true
}
},
"authentication": {
"username": "milesmeraki"
}
}
}
}
},
"summary": "Add an MQTT broker",
"tags": [
"networks",
"configure",
"mqttBrokers"
]
}
},
"/networks/{networkId}/mqttBrokers/{mqttBrokerId}": {
"get": {
"description": "Return an MQTT broker",
"operationId": "getNetworkMqttBroker",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "mqttBrokerId",
"in": "path",
"description": "Mqtt broker ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the MQTT Broker."
},
"name": {
"type": "string",
"description": "Name of the MQTT Broker."
},
"host": {
"type": "string",
"description": "Host name/IP address where the MQTT broker runs."
},
"port": {
"type": "integer",
"description": "Host port though which the MQTT broker can be reached."
},
"security": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"description": "Security protocol of the MQTT broker."
},
"tls": {
"type": "object",
"properties": {
"hasCaCertificate": {
"type": "boolean",
"description": "Indicates whether the CA certificate is set"
},
"verifyHostnames": {
"type": "boolean",
"description": "Whether the TLS hostname verification is enabled for the MQTT broker."
}
},
"description": "TLS settings of the MQTT broker."
}
},
"description": "Security settings of the MQTT broker."
},
"authentication": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "Username for the MQTT broker."
}
},
"description": "Authentication settings of the MQTT broker"
}
}
},
"examples": {
"application/json": {
"id": "1234",
"name": "MQTT_Broker_1",
"host": "1.2.3.4",
"port": 443,
"security": {
"mode": "tls",
"tls": {
"hasCaCertificate": true,
"verifyHostnames": true
}
},
"authentication": {
"username": "milesmeraki"
}
}
}
}
},
"summary": "Return an MQTT broker",
"tags": [
"networks",
"configure",
"mqttBrokers"
]
},
"put": {
"description": "Update an MQTT broker",
"operationId": "updateNetworkMqttBroker",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "mqttBrokerId",
"in": "path",
"description": "Mqtt broker ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkMqttBroker",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the MQTT broker."
},
"host": {
"type": "string",
"description": "Host name/IP address where the MQTT broker runs."
},
"port": {
"type": "integer",
"description": "Host port though which the MQTT broker can be reached."
},
"security": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"description": "Security protocol of the MQTT broker."
},
"tls": {
"type": "object",
"properties": {
"caCertificate": {
"type": "string",
"description": "CA Certificate of the MQTT broker."
},
"verifyHostnames": {
"type": "boolean",
"description": "Whether the TLS hostname verification is enabled for the MQTT broker."
}
},
"description": "TLS settings of the MQTT broker."
}
},
"description": "Security settings of the MQTT broker."
},
"authentication": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "Username for the MQTT broker."
},
"password": {
"type": "string",
"description": "Password for the MQTT broker."
}
},
"description": "Authentication settings of the MQTT broker"
}
},
"example": {
"name": "MQTT_Broker_1",
"host": "1.2.3.4",
"port": 443,
"security": {
"mode": "tls",
"tls": {
"caCertificate": "******",
"verifyHostnames": true
}
},
"authentication": {
"username": "milesmeraki",
"password": "*****"
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the MQTT Broker."
},
"name": {
"type": "string",
"description": "Name of the MQTT Broker."
},
"host": {
"type": "string",
"description": "Host name/IP address where the MQTT broker runs."
},
"port": {
"type": "integer",
"description": "Host port though which the MQTT broker can be reached."
},
"security": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"description": "Security protocol of the MQTT broker."
},
"tls": {
"type": "object",
"properties": {
"hasCaCertificate": {
"type": "boolean",
"description": "Indicates whether the CA certificate is set"
},
"verifyHostnames": {
"type": "boolean",
"description": "Whether the TLS hostname verification is enabled for the MQTT broker."
}
},
"description": "TLS settings of the MQTT broker."
}
},
"description": "Security settings of the MQTT broker."
},
"authentication": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "Username for the MQTT broker."
}
},
"description": "Authentication settings of the MQTT broker"
}
}
},
"examples": {
"application/json": {
"id": "1234",
"name": "MQTT_Broker_1",
"host": "1.2.3.4",
"port": 443,
"security": {
"mode": "tls",
"tls": {
"hasCaCertificate": true,
"verifyHostnames": true
}
},
"authentication": {
"username": "milesmeraki"
}
}
}
}
},
"summary": "Update an MQTT broker",
"tags": [
"networks",
"configure",
"mqttBrokers"
]
},
"delete": {
"description": "Delete an MQTT broker",
"operationId": "deleteNetworkMqttBroker",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "mqttBrokerId",
"in": "path",
"description": "Mqtt broker ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete an MQTT broker",
"tags": [
"networks",
"configure",
"mqttBrokers"
]
}
},
"/networks/{networkId}/netflow": {
"get": {
"description": "Return the NetFlow traffic reporting settings for a network",
"operationId": "getNetworkNetflow",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"reportingEnabled": {
"type": "boolean",
"description": "Boolean indicating whether NetFlow traffic reporting is enabled (true) or disabled (false)."
},
"collectorIp": {
"type": "string",
"description": "The IPv4 address of the NetFlow collector."
},
"collectorPort": {
"type": "integer",
"description": "The port that the NetFlow collector will be listening on."
},
"etaEnabled": {
"type": "boolean",
"description": "Boolean indicating whether Encrypted Traffic Analytics is enabled (true) or disabled (false)."
},
"etaDstPort": {
"type": "integer",
"description": "The port that the Encrypted Traffic Analytics collector will be listening on."
}
}
},
"examples": {
"application/json": {
"reportingEnabled": true,
"collectorIp": "1.2.3.4",
"collectorPort": 443,
"etaEnabled": true,
"etaDstPort": 443
}
}
}
},
"summary": "Return the NetFlow traffic reporting settings for a network",
"tags": [
"networks",
"configure",
"netflow"
]
},
"put": {
"description": "Update the NetFlow traffic reporting settings for a network",
"operationId": "updateNetworkNetflow",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkNetflow",
"in": "body",
"schema": {
"type": "object",
"properties": {
"reportingEnabled": {
"type": "boolean",
"description": "Boolean indicating whether NetFlow traffic reporting is enabled (true) or disabled (false)."
},
"collectorIp": {
"type": "string",
"description": "The IPv4 address of the NetFlow collector."
},
"collectorPort": {
"type": "integer",
"description": "The port that the NetFlow collector will be listening on."
},
"etaEnabled": {
"type": "boolean",
"description": "Boolean indicating whether Encrypted Traffic Analytics is enabled (true) or disabled (false)."
},
"etaDstPort": {
"type": "integer",
"description": "The port that the Encrypted Traffic Analytics collector will be listening on."
}
},
"example": {
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"reportingEnabled": {
"type": "boolean",
"description": "Boolean indicating whether NetFlow traffic reporting is enabled (true) or disabled (false)."
},
"collectorIp": {
"type": "string",
"description": "The IPv4 address of the NetFlow collector."
},
"collectorPort": {
"type": "integer",
"description": "The port that the NetFlow collector will be listening on."
},
"etaEnabled": {
"type": "boolean",
"description": "Boolean indicating whether Encrypted Traffic Analytics is enabled (true) or disabled (false)."
},
"etaDstPort": {
"type": "integer",
"description": "The port that the Encrypted Traffic Analytics collector will be listening on."
}
}
},
"examples": {
"application/json": {
"reportingEnabled": true,
"collectorIp": "1.2.3.4",
"collectorPort": 443,
"etaEnabled": true,
"etaDstPort": 443
}
}
}
},
"summary": "Update the NetFlow traffic reporting settings for a network",
"tags": [
"networks",
"configure",
"netflow"
]
}
},
"/networks/{networkId}/networkHealth/channelUtilization": {
"get": {
"description": "Get the channel utilization over each radio for all APs in a network.",
"operationId": "getNetworkNetworkHealthChannelUtilization",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
},
{
"type": "integer",
"name": "resolution",
"in": "query",
"description": "The time resolution in seconds for returned data. The valid resolutions are: 600. The default is 600."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 100. Default is 10."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial"
},
"model": {
"type": "string",
"description": "Device model."
},
"tags": {
"type": "string",
"description": "Device tags."
},
"wifi0": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startTime": {
"type": "string",
"format": "date-time",
"description": "The start time of the channel utilization interval."
},
"endTime": {
"type": "string",
"format": "date-time",
"description": "The end time of the channel utilization interval."
},
"utilizationTotal": {
"type": "number",
"format": "float",
"description": "Percentage of total channel utiliation for the given radio."
},
"utilization80211": {
"type": "number",
"format": "float",
"description": "Percentage of wifi channel utiliation for the given radio."
},
"utilizationNon80211": {
"type": "number",
"format": "float",
"description": "Percentage of non-wifi channel utiliation for the given radio."
}
}
},
"description": "Channel utilization for first wifi radio of device."
},
"wifi1": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startTime": {
"type": "string",
"format": "date-time",
"description": "The start time of the channel utilization interval."
},
"endTime": {
"type": "string",
"format": "date-time",
"description": "The end time of the channel utilization interval."
},
"utilizationTotal": {
"type": "number",
"format": "float",
"description": "Percentage of total channel utiliation for the given radio."
},
"utilization80211": {
"type": "number",
"format": "float",
"description": "Percentage of wifi channel utiliation for the given radio."
},
"utilizationNon80211": {
"type": "number",
"format": "float",
"description": "Percentage of non-wifi channel utiliation for the given radio."
}
}
},
"description": "Channel utilization for second wifi radio of device."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"serial": "Q234-ABCD-5678",
"model": "MR34",
"tags": " recently-added ",
"wifi0": [
{
"startTime": "2018-10-09T22:18:27Z",
"endTime": "2018-10-09T22:19:27Z",
"utilizationTotal": 33.84,
"utilization80211": 32.0,
"utilizationNon80211": 1.84
}
],
"wifi1": [
{
"startTime": "2018-10-09T22:18:27Z",
"endTime": "2018-10-09T22:19:27Z",
"utilizationTotal": 33.84,
"utilization80211": 32.0,
"utilizationNon80211": 1.84
}
]
}
]
}
}
},
"summary": "Get the channel utilization over each radio for all APs in a network.",
"tags": [
"networks",
"monitor",
"networkHealth",
"channelUtilization"
]
}
},
"/networks/{networkId}/pii/piiKeys": {
"get": {
"description": "List the keys required to access Personally Identifiable Information (PII) for a given identifier. Exactly one identifier will be accepted. If the organization contains org-wide Systems Manager users matching the key provided then there will be an entry with the key \"0\" containing the applicable keys.\n\n## ALTERNATE PATH\n\n```\n/organizations/{organizationId}/pii/piiKeys\n```",
"operationId": "getNetworkPiiPiiKeys",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "username",
"in": "query",
"description": "The username of a Systems Manager user"
},
{
"type": "string",
"name": "email",
"in": "query",
"description": "The email of a network user account or a Systems Manager device"
},
{
"type": "string",
"name": "mac",
"in": "query",
"description": "The MAC of a network client device or a Systems Manager device"
},
{
"type": "string",
"name": "serial",
"in": "query",
"description": "The serial of a Systems Manager device"
},
{
"type": "string",
"name": "imei",
"in": "query",
"description": "The IMEI of a Systems Manager device"
},
{
"type": "string",
"name": "bluetoothMac",
"in": "query",
"description": "The MAC of a Bluetooth client"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"macs": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of mac addresses"
},
"emails": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of email addresses"
},
"usernames": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of usernames"
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of device serials"
},
"imeis": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of IMEIs"
},
"bluetoothMacs": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of bluetooth mac addresses"
}
},
"description": "List of pii keys"
}
},
"examples": {
"application/json": {
"N_1234": {
"macs": [
"00:77:00:77:00:77"
],
"emails": [
"fake@example.com"
],
"usernames": [
"fakename"
],
"serials": [
"Q234-ABCD-0001"
],
"imeis": [
"990000862471854"
],
"bluetoothMacs": [
"00:77:00:77:00:77"
]
}
}
}
}
},
"summary": "List the keys required to access Personally Identifiable Information (PII) for a given identifier",
"tags": [
"networks",
"configure",
"pii",
"piiKeys"
]
}
},
"/networks/{networkId}/pii/requests": {
"get": {
"description": "List the PII requests for this network or organization\n\n## ALTERNATE PATH\n\n```\n/organizations/{organizationId}/pii/requests\n```",
"operationId": "getNetworkPiiRequests",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The network or organization identifier"
},
"organizationWide": {
"type": "boolean",
"description": "If the data returned is organization-wide. False indicates the data is network-wide."
},
"networkId": {
"type": "string",
"description": "The network identifier"
},
"type": {
"type": "string",
"description": "The type of PII request"
},
"mac": {
"type": "string",
"description": "The MAC address of the PII request"
},
"datasets": {
"type": "string",
"description": "The stringified array of datasets related to the provided key that should be deleted."
},
"status": {
"type": "string",
"description": "The status of the PII request"
},
"createdAt": {
"type": "integer",
"description": "The request's creation time"
},
"completedAt": {
"type": "integer",
"description": "The request's completion time"
}
}
}
},
"examples": {
"application/json": [
{
"id": "1234",
"organizationWide": false,
"networkId": "N_1234",
"type": "delete",
"mac": "00:77:00:77:00:77",
"datasets": "['usage', 'events']",
"status": "Completed",
"createdAt": 1524692227,
"completedAt": 1524702227
}
]
}
}
},
"summary": "List the PII requests for this network or organization",
"tags": [
"networks",
"configure",
"pii",
"requests"
]
},
"post": {
"description": "Submit a new delete or restrict processing PII request\n\n## ALTERNATE PATH\n\n```\n/organizations/{organizationId}/pii/requests\n```",
"operationId": "createNetworkPiiRequest",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkPiiRequest",
"in": "body",
"schema": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"delete",
"restrict processing"
],
"description": "One of \"delete\" or \"restrict processing\""
},
"datasets": {
"type": "array",
"items": {
"type": "string"
},
"description": "The datasets related to the provided key that should be deleted. Only applies to \"delete\" requests. The value \"all\" will be expanded to all datasets applicable to this type. The datasets by applicable to each type are: mac (usage, events, traffic), email (users, loginAttempts), username (users, loginAttempts), bluetoothMac (client, connectivity), smDeviceId (device), smUserId (user)"
},
"username": {
"type": "string",
"description": "The username of a network log in. Only applies to \"delete\" requests."
},
"email": {
"type": "string",
"description": "The email of a network user account. Only applies to \"delete\" requests."
},
"mac": {
"type": "string",
"description": "The MAC of a network client device. Applies to both \"restrict processing\" and \"delete\" requests."
},
"smDeviceId": {
"type": "string",
"description": "The sm_device_id of a Systems Manager device. The only way to \"restrict processing\" or \"delete\" a Systems Manager device. Must include \"device\" in the dataset for a \"delete\" request to destroy the device."
},
"smUserId": {
"type": "string",
"description": "The sm_user_id of a Systems Manager user. The only way to \"restrict processing\" or \"delete\" a Systems Manager user. Must include \"user\" in the dataset for a \"delete\" request to destroy the user."
}
},
"example": {
"type": "delete",
"datasets": [
"usage",
"events"
],
"username": "milesmeraki",
"email": "miles@meraki.com",
"mac": "00:11:22:33:44:55",
"smDeviceId": "15551677676480",
"smUserId": "212406"
}
}
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The network or organization identifier"
},
"organizationWide": {
"type": "boolean",
"description": "If the data returned is organization-wide. False indicates the data is network-wide."
},
"networkId": {
"type": "string",
"description": "The network identifier"
},
"type": {
"type": "string",
"description": "The type of PII request"
},
"mac": {
"type": "string",
"description": "The MAC address of the PII request"
},
"datasets": {
"type": "string",
"description": "The stringified array of datasets related to the provided key that should be deleted."
},
"status": {
"type": "string",
"description": "The status of the PII request"
},
"createdAt": {
"type": "integer",
"description": "The request's creation time"
},
"completedAt": {
"type": "integer",
"description": "The request's completion time"
}
}
},
"examples": {
"application/json": {
"id": "1234",
"organizationWide": false,
"networkId": "N_1234",
"type": "delete",
"mac": "00:77:00:77:00:77",
"datasets": "['usage', 'events']",
"status": "Completed",
"createdAt": 1524692227,
"completedAt": 1524702227
}
}
}
},
"summary": "Submit a new delete or restrict processing PII request",
"tags": [
"networks",
"configure",
"pii",
"requests"
]
}
},
"/networks/{networkId}/pii/requests/{requestId}": {
"get": {
"description": "Return a PII request\n\n## ALTERNATE PATH\n\n```\n/organizations/{organizationId}/pii/requests/{requestId}\n```",
"operationId": "getNetworkPiiRequest",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "requestId",
"in": "path",
"description": "Request ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The network or organization identifier"
},
"organizationWide": {
"type": "boolean",
"description": "If the data returned is organization-wide. False indicates the data is network-wide."
},
"networkId": {
"type": "string",
"description": "The network identifier"
},
"type": {
"type": "string",
"description": "The type of PII request"
},
"mac": {
"type": "string",
"description": "The MAC address of the PII request"
},
"datasets": {
"type": "string",
"description": "The stringified array of datasets related to the provided key that should be deleted."
},
"status": {
"type": "string",
"description": "The status of the PII request"
},
"createdAt": {
"type": "integer",
"description": "The request's creation time"
},
"completedAt": {
"type": "integer",
"description": "The request's completion time"
}
}
},
"examples": {
"application/json": {
"id": "1234",
"organizationWide": false,
"networkId": "N_1234",
"type": "delete",
"mac": "00:77:00:77:00:77",
"datasets": "['usage', 'events']",
"status": "Completed",
"createdAt": 1524692227,
"completedAt": 1524702227
}
}
}
},
"summary": "Return a PII request",
"tags": [
"networks",
"configure",
"pii",
"requests"
]
},
"delete": {
"description": "Delete a restrict processing PII request\n\n## ALTERNATE PATH\n\n```\n/organizations/{organizationId}/pii/requests/{requestId}\n```",
"operationId": "deleteNetworkPiiRequest",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "requestId",
"in": "path",
"description": "Request ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a restrict processing PII request",
"tags": [
"networks",
"configure",
"pii",
"requests"
]
}
},
"/networks/{networkId}/pii/smDevicesForKey": {
"get": {
"description": "Given a piece of Personally Identifiable Information (PII), return the Systems Manager device ID(s) associated with that identifier. These device IDs can be used with the Systems Manager API endpoints to retrieve device details. Exactly one identifier will be accepted.\n\n## ALTERNATE PATH\n\n```\n/organizations/{organizationId}/pii/smDevicesForKey\n```",
"operationId": "getNetworkPiiSmDevicesForKey",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "username",
"in": "query",
"description": "The username of a Systems Manager user"
},
{
"type": "string",
"name": "email",
"in": "query",
"description": "The email of a network user account or a Systems Manager device"
},
{
"type": "string",
"name": "mac",
"in": "query",
"description": "The MAC of a network client device or a Systems Manager device"
},
{
"type": "string",
"name": "serial",
"in": "query",
"description": "The serial of a Systems Manager device"
},
{
"type": "string",
"name": "imei",
"in": "query",
"description": "The IMEI of a Systems Manager device"
},
{
"type": "string",
"name": "bluetoothMac",
"in": "query",
"description": "The MAC of a Bluetooth client"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
},
"description": "list of System Manager device ID(s)"
}
},
"examples": {
"application/json": {
"N_1234": [
"1099541095293"
]
}
}
}
},
"summary": "Given a piece of Personally Identifiable Information (PII), return the Systems Manager device ID(s) associated with that identifier",
"tags": [
"networks",
"configure",
"pii",
"smDevicesForKey"
]
}
},
"/networks/{networkId}/pii/smOwnersForKey": {
"get": {
"description": "Given a piece of Personally Identifiable Information (PII), return the Systems Manager owner ID(s) associated with that identifier. These owner IDs can be used with the Systems Manager API endpoints to retrieve owner details. Exactly one identifier will be accepted.\n\n## ALTERNATE PATH\n\n```\n/organizations/{organizationId}/pii/smOwnersForKey\n```",
"operationId": "getNetworkPiiSmOwnersForKey",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "username",
"in": "query",
"description": "The username of a Systems Manager user"
},
{
"type": "string",
"name": "email",
"in": "query",
"description": "The email of a network user account or a Systems Manager device"
},
{
"type": "string",
"name": "mac",
"in": "query",
"description": "The MAC of a network client device or a Systems Manager device"
},
{
"type": "string",
"name": "serial",
"in": "query",
"description": "The serial of a Systems Manager device"
},
{
"type": "string",
"name": "imei",
"in": "query",
"description": "The IMEI of a Systems Manager device"
},
{
"type": "string",
"name": "bluetoothMac",
"in": "query",
"description": "The MAC of a Bluetooth client"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
},
"description": "list of System Manager owner ID(s)"
}
},
"examples": {
"application/json": {
"N_1234": [
"1099541095293"
]
}
}
}
},
"summary": "Given a piece of Personally Identifiable Information (PII), return the Systems Manager owner ID(s) associated with that identifier",
"tags": [
"networks",
"configure",
"pii",
"smOwnersForKey"
]
}
},
"/networks/{networkId}/policies/byClient": {
"get": {
"description": "Get policies for all clients with policies",
"operationId": "getNetworkPoliciesByClient",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 50."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameter t0. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of client"
},
"clientId": {
"type": "string",
"description": "ID of client"
},
"assigned": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "name of policy"
},
"type": {
"type": "string",
"description": "type of policy"
},
"groupPolicyId": {
"type": "string",
"description": "id of policy"
},
"ssid": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ssidNumber": {
"type": "integer",
"description": "number of ssid"
}
}
},
"description": "ssid"
}
}
},
"description": "Assigned policies"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"name": "my phone",
"clientId": "abc",
"assigned": [
{
"name": "Allowed",
"type": "ssid",
"groupPolicyId": "100",
"ssid": [
{
"ssidNumber": 1
}
]
}
]
}
]
}
}
},
"summary": "Get policies for all clients with policies",
"tags": [
"networks",
"configure",
"policies",
"byClient"
]
}
},
"/networks/{networkId}/sensor/alerts/current/overview/byMetric": {
"get": {
"description": "Return an overview of currently alerting sensors by metric",
"operationId": "getNetworkSensorAlertsCurrentOverviewByMetric",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"supportedMetrics": {
"type": "array",
"items": {
"type": "string",
"enum": [
"apparentPower",
"co2",
"current",
"door",
"frequency",
"humidity",
"indoorAirQuality",
"noise",
"pm25",
"powerFactor",
"realPower",
"temperature",
"tvoc",
"upstreamPower",
"voltage",
"water"
]
},
"description": "List of metrics that are supported for alerts, based on available sensor devices in the network"
},
"counts": {
"type": "object",
"properties": {
"apparentPower": {
"type": "integer",
"description": "Number of sensors that are currently alerting due to apparent power readings"
},
"co2": {
"type": "integer",
"description": "Number of sensors that are currently alerting due to CO2 readings"
},
"current": {
"type": "integer",
"description": "Number of sensors that are currently alerting due to electrical current readings"
},
"door": {
"type": "integer",
"description": "Number of sensors that are currently alerting due to an open door"
},
"frequency": {
"type": "integer",
"description": "Number of sensors that are currently alerting due to frequency readings"
},
"humidity": {
"type": "integer",
"description": "Number of sensors that are currently alerting due to humidity readings"
},
"indoorAirQuality": {
"type": "integer",
"description": "Number of sensors that are currently alerting due to indoor air quality readings"
},
"noise": {
"type": "object",
"properties": {
"ambient": {
"type": "integer",
"description": "Number of sensors that are currently alerting due to ambient noise readings"
}
},
"description": "Object containing the number of sensors that are currently alerting due to noise readings"
},
"pm25": {
"type": "integer",
"description": "Number of sensors that are currently alerting due to PM2.5 readings"
},
"powerFactor": {
"type": "integer",
"description": "Number of sensors that are currently alerting due to power factor readings"
},
"realPower": {
"type": "integer",
"description": "Number of sensors that are currently alerting due to real power readings"
},
"temperature": {
"type": "integer",
"description": "Number of sensors that are currently alerting due to temperature readings"
},
"tvoc": {
"type": "integer",
"description": "Number of sensors that are currently alerting due to TVOC readings"
},
"upstreamPower": {
"type": "integer",
"description": "Number of sensors that are currently alerting due to an upstream power outage"
},
"voltage": {
"type": "integer",
"description": "Number of sensors that are currently alerting due to voltage readings"
},
"water": {
"type": "integer",
"description": "Number of sensors that are currently alerting due to the presence of water"
}
},
"description": "Counts of currently alerting sensors, aggregated by alerting metric"
}
}
},
"examples": {
"application/json": {
"supportedMetrics": [
"temperature",
"humidity",
"door"
],
"counts": {
"apparentPower": 0,
"co2": 0,
"current": 0,
"door": 0,
"frequency": 0,
"humidity": 1,
"indoorAirQuality": 0,
"noise": {
"ambient": 0
},
"pm25": 0,
"powerFactor": 0,
"realPower": 0,
"temperature": 4,
"tvoc": 0,
"upstreamPower": 0,
"voltage": 0,
"water": 0
}
}
}
}
},
"summary": "Return an overview of currently alerting sensors by metric",
"tags": [
"sensor",
"monitor",
"alerts",
"current",
"overview",
"byMetric"
]
}
},
"/networks/{networkId}/sensor/alerts/overview/byMetric": {
"get": {
"description": "Return an overview of alert occurrences over a timespan, by metric",
"operationId": "getNetworkSensorAlertsOverviewByMetric",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 365 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"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 7 days."
},
{
"type": "integer",
"name": "interval",
"in": "query",
"description": "The time interval in seconds for returned data. The valid intervals are: 86400, 604800. The default is 604800."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startTs": {
"type": "string",
"format": "date-time",
"description": "Start of the timespan over which sensor alerts are counted"
},
"endTs": {
"type": "string",
"format": "date-time",
"description": "End of the timespan over which sensor alerts are counted"
},
"counts": {
"type": "object",
"properties": {
"apparentPower": {
"type": "integer",
"description": "Number of sensor alerts that occurred due to apparent power readings"
},
"co2": {
"type": "integer",
"description": "Number of sensors that are currently alerting due to CO2 readings"
},
"current": {
"type": "integer",
"description": "Number of sensor alerts that occurred due to electrical current readings"
},
"door": {
"type": "integer",
"description": "Number of sensor alerts that occurred due to an open door"
},
"frequency": {
"type": "integer",
"description": "Number of sensor alerts that occurred due to frequency readings"
},
"humidity": {
"type": "integer",
"description": "Number of sensor alerts that occurred due to humidity readings"
},
"indoorAirQuality": {
"type": "integer",
"description": "Number of sensor alerts that occurred due to indoor air quality readings"
},
"noise": {
"type": "object",
"properties": {
"ambient": {
"type": "integer",
"description": "Number of sensor alerts that occurred due to ambient noise readings"
}
},
"description": "Object containing the number of sensor alerts that occurred due to noise readings"
},
"pm25": {
"type": "integer",
"description": "Number of sensor alerts that occurred due to PM2.5 readings"
},
"powerFactor": {
"type": "integer",
"description": "Number of sensor alerts that occurred due to power factor readings"
},
"realPower": {
"type": "integer",
"description": "Number of sensor alerts that occurred due to real power readings"
},
"temperature": {
"type": "integer",
"description": "Number of sensor alerts that occurred due to temperature readings"
},
"tvoc": {
"type": "integer",
"description": "Number of sensor alerts that occurred due to TVOC readings"
},
"upstreamPower": {
"type": "integer",
"description": "Number of sensor alerts that occurred due to upstream power outages"
},
"voltage": {
"type": "integer",
"description": "Number of sensor alerts that occurred due to voltage readings"
},
"water": {
"type": "integer",
"description": "Number of sensor alerts that occurred due to the presence of water"
}
},
"description": "Counts of sensor alerts over the timespan, by reading metric"
}
}
}
},
"examples": {
"application/json": [
{
"startTs": "2022-08-21T00:00:00Z",
"endTs": "2022-08-27T23:59:59Z",
"counts": {
"apparentPower": 0,
"co2": 0,
"current": 0,
"door": 0,
"frequency": 1,
"humidity": 1,
"indoorAirQuality": 0,
"noise": {
"ambient": 2
},
"pm25": 0,
"powerFactor": 0,
"realPower": 0,
"temperature": 4,
"tvoc": 0,
"upstreamPower": 0,
"voltage": 0,
"water": 0
}
}
]
}
}
},
"summary": "Return an overview of alert occurrences over a timespan, by metric",
"tags": [
"sensor",
"monitor",
"alerts",
"overview",
"byMetric"
]
}
},
"/networks/{networkId}/sensor/alerts/profiles": {
"get": {
"description": "Lists all sensor alert profiles for a network.",
"operationId": "getNetworkSensorAlertsProfiles",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"profileId": {
"type": "string",
"description": "ID of the sensor alert profile."
},
"name": {
"type": "string",
"description": "Name of the sensor alert profile."
},
"schedule": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the sensor schedule to use with the alert profile. If not defined, the alert profile will be active at all times."
},
"name": {
"type": "string",
"description": "Name of the sensor schedule to use with the alert profile."
}
},
"description": "The sensor schedule to use with the alert profile."
},
"conditions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"metric": {
"type": "string",
"enum": [
"apparentPower",
"co2",
"current",
"door",
"frequency",
"humidity",
"indoorAirQuality",
"noise",
"pm25",
"powerFactor",
"realPower",
"temperature",
"tvoc",
"upstreamPower",
"voltage",
"water"
],
"description": "The type of sensor metric that will be monitored for changes."
},
"threshold": {
"type": "object",
"properties": {
"temperature": {
"type": "object",
"properties": {
"celsius": {
"type": "number",
"format": "float",
"description": "Alerting threshold in degrees Celsius."
},
"fahrenheit": {
"type": "number",
"format": "float",
"description": "Alerting threshold in degrees Fahrenheit."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative temperature level."
}
},
"description": "Temperature threshold. One of 'celsius', 'fahrenheit', or 'quality' must be provided."
},
"humidity": {
"type": "object",
"properties": {
"relativePercentage": {
"type": "integer",
"description": "Alerting threshold in %RH."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative humidity level."
}
},
"description": "Humidity threshold. One of 'relativePercentage' or 'quality' must be provided."
},
"water": {
"type": "object",
"properties": {
"present": {
"type": "boolean",
"description": "Alerting threshold for a water detection event. Must be set to true."
}
},
"required": [
"present"
],
"description": "Water detection threshold. 'present' must be provided and set to true."
},
"door": {
"type": "object",
"properties": {
"open": {
"type": "boolean",
"description": "Alerting threshold for a door open event. Must be set to true."
}
},
"required": [
"open"
],
"description": "Door open threshold. 'open' must be provided and set to true."
},
"tvoc": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "Alerting threshold as TVOC micrograms per cubic meter."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative TVOC level."
}
},
"description": "TVOC concentration threshold. One of 'concentration' or 'quality' must be provided."
},
"pm25": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "Alerting threshold as PM2.5 parts per million."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative PM2.5 level."
}
},
"description": "PM2.5 concentration threshold. One of 'concentration' or 'quality' must be provided."
},
"noise": {
"type": "object",
"properties": {
"ambient": {
"type": "object",
"properties": {
"level": {
"type": "integer",
"description": "Alerting threshold as adjusted decibels."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative ambient noise level."
}
},
"description": "Ambient noise threshold. One of 'level' or 'quality' must be provided."
}
},
"required": [
"ambient"
],
"description": "Noise threshold. 'ambient' must be provided."
},
"indoorAirQuality": {
"type": "object",
"properties": {
"score": {
"type": "integer",
"description": "Alerting threshold as indoor air quality score."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative indoor air quality level."
}
},
"description": "Indoor air quality score threshold. One of 'score' or 'quality' must be provided."
},
"realPower": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Alerting threshold in watts. Must be between 0 and 3750."
}
},
"required": [
"draw"
],
"description": "Real power threshold. 'draw' must be provided."
},
"apparentPower": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Alerting threshold in volt-amps. Must be between 0 and 3750."
}
},
"required": [
"draw"
],
"description": "Apparent power threshold. 'draw' must be provided."
},
"powerFactor": {
"type": "object",
"properties": {
"percentage": {
"type": "integer",
"description": "Alerting threshold as the ratio of active power to apparent power. Must be between 0 and 100."
}
},
"required": [
"percentage"
],
"description": "Power factor threshold. 'percentage' must be provided."
},
"current": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Alerting threshold in amps. Must be between 0 and 15."
}
},
"required": [
"draw"
],
"description": "Electrical current threshold. 'level' must be provided."
},
"voltage": {
"type": "object",
"properties": {
"level": {
"type": "number",
"format": "float",
"description": "Alerting threshold in volts. Must be between 0 and 250."
}
},
"required": [
"level"
],
"description": "Voltage threshold. 'level' must be provided."
},
"frequency": {
"type": "object",
"properties": {
"level": {
"type": "number",
"format": "float",
"description": "Alerting threshold in hertz. Must be between 0 and 60."
}
},
"required": [
"level"
],
"description": "Electrical frequency threshold. 'level' must be provided."
},
"upstreamPower": {
"type": "object",
"properties": {
"outageDetected": {
"type": "boolean",
"description": "Alerting threshold for an upstream power event. Must be set to true."
}
},
"required": [
"outageDetected"
],
"description": "Upstream power threshold. 'outageDetected' must be provided and set to true."
}
},
"description": "Threshold for sensor readings that will cause an alert to be sent. This object should contain a single property key matching the condition's 'metric' value."
},
"direction": {
"type": "string",
"enum": [
"above",
"below"
],
"description": "If 'above', an alert will be sent when a sensor reads above the threshold. If 'below', an alert will be sent when a sensor reads below the threshold. Only applicable for temperature, humidity, realPower, apparentPower, powerFactor, voltage, current, and frequency thresholds."
},
"duration": {
"type": "integer",
"enum": [
0,
60,
120,
180,
240,
300,
600,
900,
1800,
3600,
7200,
14400,
28800
],
"description": "Length of time in seconds that the triggering state must persist before an alert is sent. Available options are 0 seconds, 1 minute, 2 minutes, 3 minutes, 4 minutes, 5 minutes, 10 minutes, 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours, and 8 hours. Default is 0.",
"default": 0
}
},
"required": [
"metric",
"threshold"
]
},
"description": "List of conditions that will cause the profile to send an alert."
},
"recipients": {
"type": "object",
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of emails that will receive information about the alert."
},
"smsNumbers": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of SMS numbers that will receive information about the alert."
},
"httpServerIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of webhook endpoint IDs that will receive information about the alert."
}
},
"description": "List of recipients that will receive the alert."
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of device serials assigned to this sensor alert profile."
}
},
"required": [
"conditions"
]
}
},
"examples": {
"application/json": [
{
"profileId": "1",
"name": "My Sensor Alert Profile",
"schedule": {
"id": "5",
"name": "My Schedule"
},
"conditions": [
{
"metric": "temperature",
"threshold": {
"temperature": {
"celsius": 20.5,
"fahrenheit": 70.0,
"quality": "good"
},
"humidity": {
"relativePercentage": 65,
"quality": "inadequate"
},
"water": {
"present": true
},
"door": {
"open": true
},
"tvoc": {
"concentration": 400,
"quality": "poor"
},
"pm25": {
"concentration": 90,
"quality": "fair"
},
"noise": {
"ambient": {
"level": 120,
"quality": "poor"
}
},
"indoorAirQuality": {
"score": 80,
"quality": "fair"
},
"realPower": {
"draw": 14.1
},
"apparentPower": {
"draw": 17.2
},
"powerFactor": {
"percentage": 81
},
"current": {
"draw": 0.14
},
"voltage": {
"level": 119.5
},
"frequency": {
"level": 58.8
},
"upstreamPower": {
"outageDetected": true
}
},
"direction": "above",
"duration": 60
}
],
"recipients": {
"emails": [
"miles@meraki.com"
],
"smsNumbers": [
"+15555555555"
],
"httpServerIds": [
"aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
]
},
"serials": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
]
}
]
}
}
},
"summary": "Lists all sensor alert profiles for a network.",
"tags": [
"sensor",
"configure",
"alerts",
"profiles"
]
},
"post": {
"description": "Creates a sensor alert profile for a network.",
"operationId": "createNetworkSensorAlertsProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkSensorAlertsProfile",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the sensor alert profile."
},
"schedule": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the sensor schedule to use with the alert profile. If not defined, the alert profile will be active at all times."
}
},
"description": "The sensor schedule to use with the alert profile."
},
"conditions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"metric": {
"type": "string",
"enum": [
"apparentPower",
"co2",
"current",
"door",
"frequency",
"humidity",
"indoorAirQuality",
"noise",
"pm25",
"powerFactor",
"realPower",
"temperature",
"tvoc",
"upstreamPower",
"voltage",
"water"
],
"description": "The type of sensor metric that will be monitored for changes."
},
"threshold": {
"type": "object",
"properties": {
"temperature": {
"type": "object",
"properties": {
"celsius": {
"type": "number",
"format": "float",
"description": "Alerting threshold in degrees Celsius."
},
"fahrenheit": {
"type": "number",
"format": "float",
"description": "Alerting threshold in degrees Fahrenheit."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative temperature level."
}
},
"description": "Temperature threshold. One of 'celsius', 'fahrenheit', or 'quality' must be provided."
},
"humidity": {
"type": "object",
"properties": {
"relativePercentage": {
"type": "integer",
"description": "Alerting threshold in %RH."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative humidity level."
}
},
"description": "Humidity threshold. One of 'relativePercentage' or 'quality' must be provided."
},
"water": {
"type": "object",
"properties": {
"present": {
"type": "boolean",
"description": "Alerting threshold for a water detection event. Must be set to true."
}
},
"required": [
"present"
],
"description": "Water detection threshold. 'present' must be provided and set to true."
},
"door": {
"type": "object",
"properties": {
"open": {
"type": "boolean",
"description": "Alerting threshold for a door open event. Must be set to true."
}
},
"required": [
"open"
],
"description": "Door open threshold. 'open' must be provided and set to true."
},
"tvoc": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "Alerting threshold as TVOC micrograms per cubic meter."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative TVOC level."
}
},
"description": "TVOC concentration threshold. One of 'concentration' or 'quality' must be provided."
},
"pm25": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "Alerting threshold as PM2.5 parts per million."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative PM2.5 level."
}
},
"description": "PM2.5 concentration threshold. One of 'concentration' or 'quality' must be provided."
},
"noise": {
"type": "object",
"properties": {
"ambient": {
"type": "object",
"properties": {
"level": {
"type": "integer",
"description": "Alerting threshold as adjusted decibels."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative ambient noise level."
}
},
"description": "Ambient noise threshold. One of 'level' or 'quality' must be provided."
}
},
"required": [
"ambient"
],
"description": "Noise threshold. 'ambient' must be provided."
},
"indoorAirQuality": {
"type": "object",
"properties": {
"score": {
"type": "integer",
"description": "Alerting threshold as indoor air quality score."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative indoor air quality level."
}
},
"description": "Indoor air quality score threshold. One of 'score' or 'quality' must be provided."
},
"realPower": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Alerting threshold in watts. Must be between 0 and 3750."
}
},
"required": [
"draw"
],
"description": "Real power threshold. 'draw' must be provided."
},
"apparentPower": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Alerting threshold in volt-amps. Must be between 0 and 3750."
}
},
"required": [
"draw"
],
"description": "Apparent power threshold. 'draw' must be provided."
},
"powerFactor": {
"type": "object",
"properties": {
"percentage": {
"type": "integer",
"description": "Alerting threshold as the ratio of active power to apparent power. Must be between 0 and 100."
}
},
"required": [
"percentage"
],
"description": "Power factor threshold. 'percentage' must be provided."
},
"current": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Alerting threshold in amps. Must be between 0 and 15."
}
},
"required": [
"draw"
],
"description": "Electrical current threshold. 'level' must be provided."
},
"voltage": {
"type": "object",
"properties": {
"level": {
"type": "number",
"format": "float",
"description": "Alerting threshold in volts. Must be between 0 and 250."
}
},
"required": [
"level"
],
"description": "Voltage threshold. 'level' must be provided."
},
"frequency": {
"type": "object",
"properties": {
"level": {
"type": "number",
"format": "float",
"description": "Alerting threshold in hertz. Must be between 0 and 60."
}
},
"required": [
"level"
],
"description": "Electrical frequency threshold. 'level' must be provided."
},
"upstreamPower": {
"type": "object",
"properties": {
"outageDetected": {
"type": "boolean",
"description": "Alerting threshold for an upstream power event. Must be set to true."
}
},
"required": [
"outageDetected"
],
"description": "Upstream power threshold. 'outageDetected' must be provided and set to true."
}
},
"description": "Threshold for sensor readings that will cause an alert to be sent. This object should contain a single property key matching the condition's 'metric' value."
},
"direction": {
"type": "string",
"enum": [
"above",
"below"
],
"description": "If 'above', an alert will be sent when a sensor reads above the threshold. If 'below', an alert will be sent when a sensor reads below the threshold. Only applicable for temperature, humidity, realPower, apparentPower, powerFactor, voltage, current, and frequency thresholds."
},
"duration": {
"type": "integer",
"enum": [
0,
60,
120,
180,
240,
300,
600,
900,
1800,
3600,
7200,
14400,
28800
],
"description": "Length of time in seconds that the triggering state must persist before an alert is sent. Available options are 0 seconds, 1 minute, 2 minutes, 3 minutes, 4 minutes, 5 minutes, 10 minutes, 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours, and 8 hours. Default is 0.",
"default": 0
}
},
"required": [
"metric",
"threshold"
]
},
"description": "List of conditions that will cause the profile to send an alert."
},
"recipients": {
"type": "object",
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of emails that will receive information about the alert."
},
"smsNumbers": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of SMS numbers that will receive information about the alert."
},
"httpServerIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of webhook endpoint IDs that will receive information about the alert."
}
},
"description": "List of recipients that will receive the alert."
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of device serials assigned to this sensor alert profile."
}
},
"example": {
"name": "My Sensor Alert Profile",
"schedule": {
"id": "5"
},
"conditions": [
{
"metric": "temperature",
"threshold": {
"temperature": {
"celsius": 20.5,
"fahrenheit": 70.0,
"quality": "good"
},
"humidity": {
"relativePercentage": 65,
"quality": "inadequate"
},
"water": {
"present": true
},
"door": {
"open": true
},
"tvoc": {
"concentration": 400,
"quality": "poor"
},
"pm25": {
"concentration": 90,
"quality": "fair"
},
"noise": {
"ambient": {
"level": 120,
"quality": "poor"
}
},
"indoorAirQuality": {
"score": 80,
"quality": "fair"
},
"realPower": {
"draw": 14.1
},
"apparentPower": {
"draw": 17.2
},
"powerFactor": {
"percentage": 81
},
"current": {
"draw": 0.14
},
"voltage": {
"level": 119.5
},
"frequency": {
"level": 58.8
},
"upstreamPower": {
"outageDetected": true
}
},
"direction": "above",
"duration": 60
}
],
"recipients": {
"emails": [
"miles@meraki.com"
],
"smsNumbers": [
"+15555555555"
],
"httpServerIds": [
"aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
]
},
"serials": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
]
},
"required": [
"name",
"conditions"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"profileId": {
"type": "string",
"description": "ID of the sensor alert profile."
},
"name": {
"type": "string",
"description": "Name of the sensor alert profile."
},
"schedule": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the sensor schedule to use with the alert profile. If not defined, the alert profile will be active at all times."
},
"name": {
"type": "string",
"description": "Name of the sensor schedule to use with the alert profile."
}
},
"description": "The sensor schedule to use with the alert profile."
},
"conditions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"metric": {
"type": "string",
"enum": [
"apparentPower",
"co2",
"current",
"door",
"frequency",
"humidity",
"indoorAirQuality",
"noise",
"pm25",
"powerFactor",
"realPower",
"temperature",
"tvoc",
"upstreamPower",
"voltage",
"water"
],
"description": "The type of sensor metric that will be monitored for changes."
},
"threshold": {
"type": "object",
"properties": {
"temperature": {
"type": "object",
"properties": {
"celsius": {
"type": "number",
"format": "float",
"description": "Alerting threshold in degrees Celsius."
},
"fahrenheit": {
"type": "number",
"format": "float",
"description": "Alerting threshold in degrees Fahrenheit."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative temperature level."
}
},
"description": "Temperature threshold. One of 'celsius', 'fahrenheit', or 'quality' must be provided."
},
"humidity": {
"type": "object",
"properties": {
"relativePercentage": {
"type": "integer",
"description": "Alerting threshold in %RH."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative humidity level."
}
},
"description": "Humidity threshold. One of 'relativePercentage' or 'quality' must be provided."
},
"water": {
"type": "object",
"properties": {
"present": {
"type": "boolean",
"description": "Alerting threshold for a water detection event. Must be set to true."
}
},
"required": [
"present"
],
"description": "Water detection threshold. 'present' must be provided and set to true."
},
"door": {
"type": "object",
"properties": {
"open": {
"type": "boolean",
"description": "Alerting threshold for a door open event. Must be set to true."
}
},
"required": [
"open"
],
"description": "Door open threshold. 'open' must be provided and set to true."
},
"tvoc": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "Alerting threshold as TVOC micrograms per cubic meter."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative TVOC level."
}
},
"description": "TVOC concentration threshold. One of 'concentration' or 'quality' must be provided."
},
"pm25": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "Alerting threshold as PM2.5 parts per million."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative PM2.5 level."
}
},
"description": "PM2.5 concentration threshold. One of 'concentration' or 'quality' must be provided."
},
"noise": {
"type": "object",
"properties": {
"ambient": {
"type": "object",
"properties": {
"level": {
"type": "integer",
"description": "Alerting threshold as adjusted decibels."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative ambient noise level."
}
},
"description": "Ambient noise threshold. One of 'level' or 'quality' must be provided."
}
},
"required": [
"ambient"
],
"description": "Noise threshold. 'ambient' must be provided."
},
"indoorAirQuality": {
"type": "object",
"properties": {
"score": {
"type": "integer",
"description": "Alerting threshold as indoor air quality score."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative indoor air quality level."
}
},
"description": "Indoor air quality score threshold. One of 'score' or 'quality' must be provided."
},
"realPower": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Alerting threshold in watts. Must be between 0 and 3750."
}
},
"required": [
"draw"
],
"description": "Real power threshold. 'draw' must be provided."
},
"apparentPower": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Alerting threshold in volt-amps. Must be between 0 and 3750."
}
},
"required": [
"draw"
],
"description": "Apparent power threshold. 'draw' must be provided."
},
"powerFactor": {
"type": "object",
"properties": {
"percentage": {
"type": "integer",
"description": "Alerting threshold as the ratio of active power to apparent power. Must be between 0 and 100."
}
},
"required": [
"percentage"
],
"description": "Power factor threshold. 'percentage' must be provided."
},
"current": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Alerting threshold in amps. Must be between 0 and 15."
}
},
"required": [
"draw"
],
"description": "Electrical current threshold. 'level' must be provided."
},
"voltage": {
"type": "object",
"properties": {
"level": {
"type": "number",
"format": "float",
"description": "Alerting threshold in volts. Must be between 0 and 250."
}
},
"required": [
"level"
],
"description": "Voltage threshold. 'level' must be provided."
},
"frequency": {
"type": "object",
"properties": {
"level": {
"type": "number",
"format": "float",
"description": "Alerting threshold in hertz. Must be between 0 and 60."
}
},
"required": [
"level"
],
"description": "Electrical frequency threshold. 'level' must be provided."
},
"upstreamPower": {
"type": "object",
"properties": {
"outageDetected": {
"type": "boolean",
"description": "Alerting threshold for an upstream power event. Must be set to true."
}
},
"required": [
"outageDetected"
],
"description": "Upstream power threshold. 'outageDetected' must be provided and set to true."
}
},
"description": "Threshold for sensor readings that will cause an alert to be sent. This object should contain a single property key matching the condition's 'metric' value."
},
"direction": {
"type": "string",
"enum": [
"above",
"below"
],
"description": "If 'above', an alert will be sent when a sensor reads above the threshold. If 'below', an alert will be sent when a sensor reads below the threshold. Only applicable for temperature, humidity, realPower, apparentPower, powerFactor, voltage, current, and frequency thresholds."
},
"duration": {
"type": "integer",
"enum": [
0,
60,
120,
180,
240,
300,
600,
900,
1800,
3600,
7200,
14400,
28800
],
"description": "Length of time in seconds that the triggering state must persist before an alert is sent. Available options are 0 seconds, 1 minute, 2 minutes, 3 minutes, 4 minutes, 5 minutes, 10 minutes, 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours, and 8 hours. Default is 0.",
"default": 0
}
},
"required": [
"metric",
"threshold"
]
},
"description": "List of conditions that will cause the profile to send an alert."
},
"recipients": {
"type": "object",
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of emails that will receive information about the alert."
},
"smsNumbers": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of SMS numbers that will receive information about the alert."
},
"httpServerIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of webhook endpoint IDs that will receive information about the alert."
}
},
"description": "List of recipients that will receive the alert."
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of device serials assigned to this sensor alert profile."
}
},
"required": [
"conditions"
]
},
"examples": {
"application/json": {
"profileId": "1",
"name": "My Sensor Alert Profile",
"schedule": {
"id": "5",
"name": "My Schedule"
},
"conditions": [
{
"metric": "temperature",
"threshold": {
"temperature": {
"celsius": 20.5,
"fahrenheit": 70.0,
"quality": "good"
},
"humidity": {
"relativePercentage": 65,
"quality": "inadequate"
},
"water": {
"present": true
},
"door": {
"open": true
},
"tvoc": {
"concentration": 400,
"quality": "poor"
},
"pm25": {
"concentration": 90,
"quality": "fair"
},
"noise": {
"ambient": {
"level": 120,
"quality": "poor"
}
},
"indoorAirQuality": {
"score": 80,
"quality": "fair"
},
"realPower": {
"draw": 14.1
},
"apparentPower": {
"draw": 17.2
},
"powerFactor": {
"percentage": 81
},
"current": {
"draw": 0.14
},
"voltage": {
"level": 119.5
},
"frequency": {
"level": 58.8
},
"upstreamPower": {
"outageDetected": true
}
},
"direction": "above",
"duration": 60
}
],
"recipients": {
"emails": [
"miles@meraki.com"
],
"smsNumbers": [
"+15555555555"
],
"httpServerIds": [
"aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
]
},
"serials": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
]
}
}
}
},
"summary": "Creates a sensor alert profile for a network.",
"tags": [
"sensor",
"configure",
"alerts",
"profiles"
]
}
},
"/networks/{networkId}/sensor/alerts/profiles/{id}": {
"get": {
"description": "Show details of a sensor alert profile for a network.",
"operationId": "getNetworkSensorAlertsProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"profileId": {
"type": "string",
"description": "ID of the sensor alert profile."
},
"name": {
"type": "string",
"description": "Name of the sensor alert profile."
},
"schedule": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the sensor schedule to use with the alert profile. If not defined, the alert profile will be active at all times."
},
"name": {
"type": "string",
"description": "Name of the sensor schedule to use with the alert profile."
}
},
"description": "The sensor schedule to use with the alert profile."
},
"conditions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"metric": {
"type": "string",
"enum": [
"apparentPower",
"co2",
"current",
"door",
"frequency",
"humidity",
"indoorAirQuality",
"noise",
"pm25",
"powerFactor",
"realPower",
"temperature",
"tvoc",
"upstreamPower",
"voltage",
"water"
],
"description": "The type of sensor metric that will be monitored for changes."
},
"threshold": {
"type": "object",
"properties": {
"temperature": {
"type": "object",
"properties": {
"celsius": {
"type": "number",
"format": "float",
"description": "Alerting threshold in degrees Celsius."
},
"fahrenheit": {
"type": "number",
"format": "float",
"description": "Alerting threshold in degrees Fahrenheit."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative temperature level."
}
},
"description": "Temperature threshold. One of 'celsius', 'fahrenheit', or 'quality' must be provided."
},
"humidity": {
"type": "object",
"properties": {
"relativePercentage": {
"type": "integer",
"description": "Alerting threshold in %RH."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative humidity level."
}
},
"description": "Humidity threshold. One of 'relativePercentage' or 'quality' must be provided."
},
"water": {
"type": "object",
"properties": {
"present": {
"type": "boolean",
"description": "Alerting threshold for a water detection event. Must be set to true."
}
},
"required": [
"present"
],
"description": "Water detection threshold. 'present' must be provided and set to true."
},
"door": {
"type": "object",
"properties": {
"open": {
"type": "boolean",
"description": "Alerting threshold for a door open event. Must be set to true."
}
},
"required": [
"open"
],
"description": "Door open threshold. 'open' must be provided and set to true."
},
"tvoc": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "Alerting threshold as TVOC micrograms per cubic meter."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative TVOC level."
}
},
"description": "TVOC concentration threshold. One of 'concentration' or 'quality' must be provided."
},
"pm25": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "Alerting threshold as PM2.5 parts per million."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative PM2.5 level."
}
},
"description": "PM2.5 concentration threshold. One of 'concentration' or 'quality' must be provided."
},
"noise": {
"type": "object",
"properties": {
"ambient": {
"type": "object",
"properties": {
"level": {
"type": "integer",
"description": "Alerting threshold as adjusted decibels."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative ambient noise level."
}
},
"description": "Ambient noise threshold. One of 'level' or 'quality' must be provided."
}
},
"required": [
"ambient"
],
"description": "Noise threshold. 'ambient' must be provided."
},
"indoorAirQuality": {
"type": "object",
"properties": {
"score": {
"type": "integer",
"description": "Alerting threshold as indoor air quality score."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative indoor air quality level."
}
},
"description": "Indoor air quality score threshold. One of 'score' or 'quality' must be provided."
},
"realPower": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Alerting threshold in watts. Must be between 0 and 3750."
}
},
"required": [
"draw"
],
"description": "Real power threshold. 'draw' must be provided."
},
"apparentPower": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Alerting threshold in volt-amps. Must be between 0 and 3750."
}
},
"required": [
"draw"
],
"description": "Apparent power threshold. 'draw' must be provided."
},
"powerFactor": {
"type": "object",
"properties": {
"percentage": {
"type": "integer",
"description": "Alerting threshold as the ratio of active power to apparent power. Must be between 0 and 100."
}
},
"required": [
"percentage"
],
"description": "Power factor threshold. 'percentage' must be provided."
},
"current": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Alerting threshold in amps. Must be between 0 and 15."
}
},
"required": [
"draw"
],
"description": "Electrical current threshold. 'level' must be provided."
},
"voltage": {
"type": "object",
"properties": {
"level": {
"type": "number",
"format": "float",
"description": "Alerting threshold in volts. Must be between 0 and 250."
}
},
"required": [
"level"
],
"description": "Voltage threshold. 'level' must be provided."
},
"frequency": {
"type": "object",
"properties": {
"level": {
"type": "number",
"format": "float",
"description": "Alerting threshold in hertz. Must be between 0 and 60."
}
},
"required": [
"level"
],
"description": "Electrical frequency threshold. 'level' must be provided."
},
"upstreamPower": {
"type": "object",
"properties": {
"outageDetected": {
"type": "boolean",
"description": "Alerting threshold for an upstream power event. Must be set to true."
}
},
"required": [
"outageDetected"
],
"description": "Upstream power threshold. 'outageDetected' must be provided and set to true."
}
},
"description": "Threshold for sensor readings that will cause an alert to be sent. This object should contain a single property key matching the condition's 'metric' value."
},
"direction": {
"type": "string",
"enum": [
"above",
"below"
],
"description": "If 'above', an alert will be sent when a sensor reads above the threshold. If 'below', an alert will be sent when a sensor reads below the threshold. Only applicable for temperature, humidity, realPower, apparentPower, powerFactor, voltage, current, and frequency thresholds."
},
"duration": {
"type": "integer",
"enum": [
0,
60,
120,
180,
240,
300,
600,
900,
1800,
3600,
7200,
14400,
28800
],
"description": "Length of time in seconds that the triggering state must persist before an alert is sent. Available options are 0 seconds, 1 minute, 2 minutes, 3 minutes, 4 minutes, 5 minutes, 10 minutes, 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours, and 8 hours. Default is 0.",
"default": 0
}
},
"required": [
"metric",
"threshold"
]
},
"description": "List of conditions that will cause the profile to send an alert."
},
"recipients": {
"type": "object",
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of emails that will receive information about the alert."
},
"smsNumbers": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of SMS numbers that will receive information about the alert."
},
"httpServerIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of webhook endpoint IDs that will receive information about the alert."
}
},
"description": "List of recipients that will receive the alert."
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of device serials assigned to this sensor alert profile."
}
},
"required": [
"conditions"
]
},
"examples": {
"application/json": {
"profileId": "1",
"name": "My Sensor Alert Profile",
"schedule": {
"id": "5",
"name": "My Schedule"
},
"conditions": [
{
"metric": "temperature",
"threshold": {
"temperature": {
"celsius": 20.5,
"fahrenheit": 70.0,
"quality": "good"
},
"humidity": {
"relativePercentage": 65,
"quality": "inadequate"
},
"water": {
"present": true
},
"door": {
"open": true
},
"tvoc": {
"concentration": 400,
"quality": "poor"
},
"pm25": {
"concentration": 90,
"quality": "fair"
},
"noise": {
"ambient": {
"level": 120,
"quality": "poor"
}
},
"indoorAirQuality": {
"score": 80,
"quality": "fair"
},
"realPower": {
"draw": 14.1
},
"apparentPower": {
"draw": 17.2
},
"powerFactor": {
"percentage": 81
},
"current": {
"draw": 0.14
},
"voltage": {
"level": 119.5
},
"frequency": {
"level": 58.8
},
"upstreamPower": {
"outageDetected": true
}
},
"direction": "above",
"duration": 60
}
],
"recipients": {
"emails": [
"miles@meraki.com"
],
"smsNumbers": [
"+15555555555"
],
"httpServerIds": [
"aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
]
},
"serials": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
]
}
}
}
},
"summary": "Show details of a sensor alert profile for a network.",
"tags": [
"sensor",
"configure",
"alerts",
"profiles"
]
},
"put": {
"description": "Updates a sensor alert profile for a network.",
"operationId": "updateNetworkSensorAlertsProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSensorAlertsProfile",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the sensor alert profile."
},
"schedule": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the sensor schedule to use with the alert profile. If not defined, the alert profile will be active at all times."
}
},
"description": "The sensor schedule to use with the alert profile."
},
"conditions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"metric": {
"type": "string",
"enum": [
"apparentPower",
"co2",
"current",
"door",
"frequency",
"humidity",
"indoorAirQuality",
"noise",
"pm25",
"powerFactor",
"realPower",
"temperature",
"tvoc",
"upstreamPower",
"voltage",
"water"
],
"description": "The type of sensor metric that will be monitored for changes."
},
"threshold": {
"type": "object",
"properties": {
"temperature": {
"type": "object",
"properties": {
"celsius": {
"type": "number",
"format": "float",
"description": "Alerting threshold in degrees Celsius."
},
"fahrenheit": {
"type": "number",
"format": "float",
"description": "Alerting threshold in degrees Fahrenheit."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative temperature level."
}
},
"description": "Temperature threshold. One of 'celsius', 'fahrenheit', or 'quality' must be provided."
},
"humidity": {
"type": "object",
"properties": {
"relativePercentage": {
"type": "integer",
"description": "Alerting threshold in %RH."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative humidity level."
}
},
"description": "Humidity threshold. One of 'relativePercentage' or 'quality' must be provided."
},
"water": {
"type": "object",
"properties": {
"present": {
"type": "boolean",
"description": "Alerting threshold for a water detection event. Must be set to true."
}
},
"required": [
"present"
],
"description": "Water detection threshold. 'present' must be provided and set to true."
},
"door": {
"type": "object",
"properties": {
"open": {
"type": "boolean",
"description": "Alerting threshold for a door open event. Must be set to true."
}
},
"required": [
"open"
],
"description": "Door open threshold. 'open' must be provided and set to true."
},
"tvoc": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "Alerting threshold as TVOC micrograms per cubic meter."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative TVOC level."
}
},
"description": "TVOC concentration threshold. One of 'concentration' or 'quality' must be provided."
},
"pm25": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "Alerting threshold as PM2.5 parts per million."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative PM2.5 level."
}
},
"description": "PM2.5 concentration threshold. One of 'concentration' or 'quality' must be provided."
},
"noise": {
"type": "object",
"properties": {
"ambient": {
"type": "object",
"properties": {
"level": {
"type": "integer",
"description": "Alerting threshold as adjusted decibels."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative ambient noise level."
}
},
"description": "Ambient noise threshold. One of 'level' or 'quality' must be provided."
}
},
"required": [
"ambient"
],
"description": "Noise threshold. 'ambient' must be provided."
},
"indoorAirQuality": {
"type": "object",
"properties": {
"score": {
"type": "integer",
"description": "Alerting threshold as indoor air quality score."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative indoor air quality level."
}
},
"description": "Indoor air quality score threshold. One of 'score' or 'quality' must be provided."
},
"realPower": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Alerting threshold in watts. Must be between 0 and 3750."
}
},
"required": [
"draw"
],
"description": "Real power threshold. 'draw' must be provided."
},
"apparentPower": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Alerting threshold in volt-amps. Must be between 0 and 3750."
}
},
"required": [
"draw"
],
"description": "Apparent power threshold. 'draw' must be provided."
},
"powerFactor": {
"type": "object",
"properties": {
"percentage": {
"type": "integer",
"description": "Alerting threshold as the ratio of active power to apparent power. Must be between 0 and 100."
}
},
"required": [
"percentage"
],
"description": "Power factor threshold. 'percentage' must be provided."
},
"current": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Alerting threshold in amps. Must be between 0 and 15."
}
},
"required": [
"draw"
],
"description": "Electrical current threshold. 'level' must be provided."
},
"voltage": {
"type": "object",
"properties": {
"level": {
"type": "number",
"format": "float",
"description": "Alerting threshold in volts. Must be between 0 and 250."
}
},
"required": [
"level"
],
"description": "Voltage threshold. 'level' must be provided."
},
"frequency": {
"type": "object",
"properties": {
"level": {
"type": "number",
"format": "float",
"description": "Alerting threshold in hertz. Must be between 0 and 60."
}
},
"required": [
"level"
],
"description": "Electrical frequency threshold. 'level' must be provided."
},
"upstreamPower": {
"type": "object",
"properties": {
"outageDetected": {
"type": "boolean",
"description": "Alerting threshold for an upstream power event. Must be set to true."
}
},
"required": [
"outageDetected"
],
"description": "Upstream power threshold. 'outageDetected' must be provided and set to true."
}
},
"description": "Threshold for sensor readings that will cause an alert to be sent. This object should contain a single property key matching the condition's 'metric' value."
},
"direction": {
"type": "string",
"enum": [
"above",
"below"
],
"description": "If 'above', an alert will be sent when a sensor reads above the threshold. If 'below', an alert will be sent when a sensor reads below the threshold. Only applicable for temperature, humidity, realPower, apparentPower, powerFactor, voltage, current, and frequency thresholds."
},
"duration": {
"type": "integer",
"enum": [
0,
60,
120,
180,
240,
300,
600,
900,
1800,
3600,
7200,
14400,
28800
],
"description": "Length of time in seconds that the triggering state must persist before an alert is sent. Available options are 0 seconds, 1 minute, 2 minutes, 3 minutes, 4 minutes, 5 minutes, 10 minutes, 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours, and 8 hours. Default is 0.",
"default": 0
}
},
"required": [
"metric",
"threshold"
]
},
"description": "List of conditions that will cause the profile to send an alert."
},
"recipients": {
"type": "object",
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of emails that will receive information about the alert."
},
"smsNumbers": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of SMS numbers that will receive information about the alert."
},
"httpServerIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of webhook endpoint IDs that will receive information about the alert."
}
},
"description": "List of recipients that will receive the alert."
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of device serials assigned to this sensor alert profile."
}
},
"example": {
"name": "My Sensor Alert Profile",
"schedule": {
"id": "5"
},
"conditions": [
{
"metric": "temperature",
"threshold": {
"temperature": {
"celsius": 20.5,
"fahrenheit": 70.0,
"quality": "good"
},
"humidity": {
"relativePercentage": 65,
"quality": "inadequate"
},
"water": {
"present": true
},
"door": {
"open": true
},
"tvoc": {
"concentration": 400,
"quality": "poor"
},
"pm25": {
"concentration": 90,
"quality": "fair"
},
"noise": {
"ambient": {
"level": 120,
"quality": "poor"
}
},
"indoorAirQuality": {
"score": 80,
"quality": "fair"
},
"realPower": {
"draw": 14.1
},
"apparentPower": {
"draw": 17.2
},
"powerFactor": {
"percentage": 81
},
"current": {
"draw": 0.14
},
"voltage": {
"level": 119.5
},
"frequency": {
"level": 58.8
},
"upstreamPower": {
"outageDetected": true
}
},
"direction": "above",
"duration": 60
}
],
"recipients": {
"emails": [
"miles@meraki.com"
],
"smsNumbers": [
"+15555555555"
],
"httpServerIds": [
"aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
]
},
"serials": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"profileId": {
"type": "string",
"description": "ID of the sensor alert profile."
},
"name": {
"type": "string",
"description": "Name of the sensor alert profile."
},
"schedule": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the sensor schedule to use with the alert profile. If not defined, the alert profile will be active at all times."
},
"name": {
"type": "string",
"description": "Name of the sensor schedule to use with the alert profile."
}
},
"description": "The sensor schedule to use with the alert profile."
},
"conditions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"metric": {
"type": "string",
"enum": [
"apparentPower",
"co2",
"current",
"door",
"frequency",
"humidity",
"indoorAirQuality",
"noise",
"pm25",
"powerFactor",
"realPower",
"temperature",
"tvoc",
"upstreamPower",
"voltage",
"water"
],
"description": "The type of sensor metric that will be monitored for changes."
},
"threshold": {
"type": "object",
"properties": {
"temperature": {
"type": "object",
"properties": {
"celsius": {
"type": "number",
"format": "float",
"description": "Alerting threshold in degrees Celsius."
},
"fahrenheit": {
"type": "number",
"format": "float",
"description": "Alerting threshold in degrees Fahrenheit."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative temperature level."
}
},
"description": "Temperature threshold. One of 'celsius', 'fahrenheit', or 'quality' must be provided."
},
"humidity": {
"type": "object",
"properties": {
"relativePercentage": {
"type": "integer",
"description": "Alerting threshold in %RH."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative humidity level."
}
},
"description": "Humidity threshold. One of 'relativePercentage' or 'quality' must be provided."
},
"water": {
"type": "object",
"properties": {
"present": {
"type": "boolean",
"description": "Alerting threshold for a water detection event. Must be set to true."
}
},
"required": [
"present"
],
"description": "Water detection threshold. 'present' must be provided and set to true."
},
"door": {
"type": "object",
"properties": {
"open": {
"type": "boolean",
"description": "Alerting threshold for a door open event. Must be set to true."
}
},
"required": [
"open"
],
"description": "Door open threshold. 'open' must be provided and set to true."
},
"tvoc": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "Alerting threshold as TVOC micrograms per cubic meter."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative TVOC level."
}
},
"description": "TVOC concentration threshold. One of 'concentration' or 'quality' must be provided."
},
"pm25": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "Alerting threshold as PM2.5 parts per million."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative PM2.5 level."
}
},
"description": "PM2.5 concentration threshold. One of 'concentration' or 'quality' must be provided."
},
"noise": {
"type": "object",
"properties": {
"ambient": {
"type": "object",
"properties": {
"level": {
"type": "integer",
"description": "Alerting threshold as adjusted decibels."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative ambient noise level."
}
},
"description": "Ambient noise threshold. One of 'level' or 'quality' must be provided."
}
},
"required": [
"ambient"
],
"description": "Noise threshold. 'ambient' must be provided."
},
"indoorAirQuality": {
"type": "object",
"properties": {
"score": {
"type": "integer",
"description": "Alerting threshold as indoor air quality score."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative indoor air quality level."
}
},
"description": "Indoor air quality score threshold. One of 'score' or 'quality' must be provided."
},
"realPower": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Alerting threshold in watts. Must be between 0 and 3750."
}
},
"required": [
"draw"
],
"description": "Real power threshold. 'draw' must be provided."
},
"apparentPower": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Alerting threshold in volt-amps. Must be between 0 and 3750."
}
},
"required": [
"draw"
],
"description": "Apparent power threshold. 'draw' must be provided."
},
"powerFactor": {
"type": "object",
"properties": {
"percentage": {
"type": "integer",
"description": "Alerting threshold as the ratio of active power to apparent power. Must be between 0 and 100."
}
},
"required": [
"percentage"
],
"description": "Power factor threshold. 'percentage' must be provided."
},
"current": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Alerting threshold in amps. Must be between 0 and 15."
}
},
"required": [
"draw"
],
"description": "Electrical current threshold. 'level' must be provided."
},
"voltage": {
"type": "object",
"properties": {
"level": {
"type": "number",
"format": "float",
"description": "Alerting threshold in volts. Must be between 0 and 250."
}
},
"required": [
"level"
],
"description": "Voltage threshold. 'level' must be provided."
},
"frequency": {
"type": "object",
"properties": {
"level": {
"type": "number",
"format": "float",
"description": "Alerting threshold in hertz. Must be between 0 and 60."
}
},
"required": [
"level"
],
"description": "Electrical frequency threshold. 'level' must be provided."
},
"upstreamPower": {
"type": "object",
"properties": {
"outageDetected": {
"type": "boolean",
"description": "Alerting threshold for an upstream power event. Must be set to true."
}
},
"required": [
"outageDetected"
],
"description": "Upstream power threshold. 'outageDetected' must be provided and set to true."
}
},
"description": "Threshold for sensor readings that will cause an alert to be sent. This object should contain a single property key matching the condition's 'metric' value."
},
"direction": {
"type": "string",
"enum": [
"above",
"below"
],
"description": "If 'above', an alert will be sent when a sensor reads above the threshold. If 'below', an alert will be sent when a sensor reads below the threshold. Only applicable for temperature, humidity, realPower, apparentPower, powerFactor, voltage, current, and frequency thresholds."
},
"duration": {
"type": "integer",
"enum": [
0,
60,
120,
180,
240,
300,
600,
900,
1800,
3600,
7200,
14400,
28800
],
"description": "Length of time in seconds that the triggering state must persist before an alert is sent. Available options are 0 seconds, 1 minute, 2 minutes, 3 minutes, 4 minutes, 5 minutes, 10 minutes, 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours, and 8 hours. Default is 0.",
"default": 0
}
},
"required": [
"metric",
"threshold"
]
},
"description": "List of conditions that will cause the profile to send an alert."
},
"recipients": {
"type": "object",
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of emails that will receive information about the alert."
},
"smsNumbers": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of SMS numbers that will receive information about the alert."
},
"httpServerIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of webhook endpoint IDs that will receive information about the alert."
}
},
"description": "List of recipients that will receive the alert."
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of device serials assigned to this sensor alert profile."
}
},
"required": [
"conditions"
]
},
"examples": {
"application/json": {
"profileId": "1",
"name": "My Sensor Alert Profile",
"schedule": {
"id": "5",
"name": "My Schedule"
},
"conditions": [
{
"metric": "temperature",
"threshold": {
"temperature": {
"celsius": 20.5,
"fahrenheit": 70.0,
"quality": "good"
},
"humidity": {
"relativePercentage": 65,
"quality": "inadequate"
},
"water": {
"present": true
},
"door": {
"open": true
},
"tvoc": {
"concentration": 400,
"quality": "poor"
},
"pm25": {
"concentration": 90,
"quality": "fair"
},
"noise": {
"ambient": {
"level": 120,
"quality": "poor"
}
},
"indoorAirQuality": {
"score": 80,
"quality": "fair"
},
"realPower": {
"draw": 14.1
},
"apparentPower": {
"draw": 17.2
},
"powerFactor": {
"percentage": 81
},
"current": {
"draw": 0.14
},
"voltage": {
"level": 119.5
},
"frequency": {
"level": 58.8
},
"upstreamPower": {
"outageDetected": true
}
},
"direction": "above",
"duration": 60
}
],
"recipients": {
"emails": [
"miles@meraki.com"
],
"smsNumbers": [
"+15555555555"
],
"httpServerIds": [
"aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
]
},
"serials": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
]
}
}
}
},
"summary": "Updates a sensor alert profile for a network.",
"tags": [
"sensor",
"configure",
"alerts",
"profiles"
]
},
"delete": {
"description": "Deletes a sensor alert profile from a network.",
"operationId": "deleteNetworkSensorAlertsProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Deletes a sensor alert profile from a network.",
"tags": [
"sensor",
"configure",
"alerts",
"profiles"
]
}
},
"/networks/{networkId}/sensor/mqttBrokers": {
"get": {
"description": "List the sensor settings of all MQTT brokers for this network. To get the brokers themselves, use /networks/{networkId}/mqttBrokers.",
"operationId": "getNetworkSensorMqttBrokers",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"mqttBrokerId": {
"type": "string",
"description": "ID of the MQTT Broker."
},
"enabled": {
"type": "boolean",
"description": "Specifies whether the broker is enabled for sensor data. Currently, only a single broker may be enabled for sensor data."
}
}
}
},
"examples": {
"application/json": [
{
"mqttBrokerId": "1234",
"enabled": true
}
]
}
}
},
"summary": "List the sensor settings of all MQTT brokers for this network",
"tags": [
"sensor",
"configure",
"mqttBrokers"
]
}
},
"/networks/{networkId}/sensor/mqttBrokers/{mqttBrokerId}": {
"get": {
"description": "Return the sensor settings of an MQTT broker. To get the broker itself, use /networks/{networkId}/mqttBrokers/{mqttBrokerId}.",
"operationId": "getNetworkSensorMqttBroker",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "mqttBrokerId",
"in": "path",
"description": "Mqtt broker ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"mqttBrokerId": {
"type": "string",
"description": "ID of the MQTT Broker."
},
"enabled": {
"type": "boolean",
"description": "Specifies whether the broker is enabled for sensor data. Currently, only a single broker may be enabled for sensor data."
}
}
},
"examples": {
"application/json": {
"mqttBrokerId": "1234",
"enabled": true
}
}
}
},
"summary": "Return the sensor settings of an MQTT broker",
"tags": [
"sensor",
"configure",
"mqttBrokers"
]
},
"put": {
"description": "Update the sensor settings of an MQTT broker. To update the broker itself, use /networks/{networkId}/mqttBrokers/{mqttBrokerId}.",
"operationId": "updateNetworkSensorMqttBroker",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "mqttBrokerId",
"in": "path",
"description": "Mqtt broker ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSensorMqttBroker",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Set to true to enable MQTT broker for sensor network"
}
},
"example": {
"mqttBrokerId": "1234",
"enabled": true
},
"required": [
"enabled"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"mqttBrokerId": {
"type": "string",
"description": "ID of the MQTT Broker."
},
"enabled": {
"type": "boolean",
"description": "Specifies whether the broker is enabled for sensor data. Currently, only a single broker may be enabled for sensor data."
}
}
},
"examples": {
"application/json": {
"mqttBrokerId": "1234",
"enabled": true
}
}
}
},
"summary": "Update the sensor settings of an MQTT broker",
"tags": [
"sensor",
"configure",
"mqttBrokers"
]
}
},
"/networks/{networkId}/sensor/relationships": {
"get": {
"description": "List the sensor roles for devices in a given network",
"operationId": "getNetworkSensorRelationships",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"device": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the device"
},
"serial": {
"type": "string",
"description": "The serial of the device"
},
"productType": {
"type": "string",
"enum": [
"camera",
"sensor"
],
"description": "The product type of the device"
}
},
"description": "A sensor or gateway device in the network"
},
"relationships": {
"type": "object",
"properties": {
"livestream": {
"type": "object",
"properties": {
"relatedDevices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "The serial of the related device"
},
"productType": {
"type": "string",
"enum": [
"camera",
"sensor"
],
"description": "The product type of the related device"
}
}
},
"description": "An array of the related devices for the role"
}
},
"description": "A role defined between an MT sensor and an MV camera that adds the camera's livestream to the sensor's details page. Snapshots from the camera will also appear in alert notifications that the sensor triggers."
}
},
"description": "An object describing the relationships defined between the device and other devices"
}
}
}
},
"examples": {
"application/json": [
{
"device": {
"name": "My sensor",
"serial": "Q234-ABCD-0001",
"productType": "sensor"
},
"relationships": {
"livestream": {
"relatedDevices": [
{
"serial": "Q234-ABCD-5678",
"productType": "camera"
}
]
}
}
}
]
}
}
},
"summary": "List the sensor roles for devices in a given network",
"tags": [
"sensor",
"configure",
"relationships"
]
}
},
"/networks/{networkId}/sensor/schedules": {
"get": {
"description": "Returns a list of all sensor schedules.",
"operationId": "getNetworkSensorSchedules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"id": "123",
"name": "Weekday schedule"
},
{
"id": "124",
"name": "Office hours"
}
]
}
}
},
"summary": "Returns a list of all sensor schedules.",
"tags": [
"sensor",
"configure",
"schedules"
],
"x-release-stage": "beta"
}
},
"/networks/{networkId}/settings": {
"get": {
"description": "Return the settings for a network",
"operationId": "getNetworkSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"localStatusPageEnabled": {
"type": "boolean",
"description": "Enables / disables the local device status pages (my.meraki.com, ap.meraki.com, switch.meraki.com, wired.meraki.com ). Optional (defaults to false)"
},
"remoteStatusPageEnabled": {
"type": "boolean",
"description": "Enables / disables access to the device status page (http://[device's LAN IP]) . Optional. Can only be set if localStatusPageEnabled is set to true"
},
"localStatusPage": {
"type": "object",
"properties": {
"authentication": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enables / disables the authentication on Local Status page(s)."
},
"username": {
"type": "string",
"description": "The username used for Local Status Page(s)."
}
},
"description": "A hash of Local Status page(s)' authentication options applied to the Network."
}
},
"description": "A hash of Local Status page(s)' authentication options applied to the Network."
},
"securePort": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enables / disables SecureConnect on the network. Optional."
}
},
"description": "A hash of SecureConnect options applied to the Network."
},
"fips": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enables / disables FIPS on the network."
}
},
"description": "A hash of FIPS options applied to the Network"
},
"namedVlans": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enables / disables Named VLANs on the Network."
}
},
"required": [
"enabled"
],
"description": "A hash of Named VLANs options applied to the Network."
}
}
},
"examples": {
"application/json": {
"localStatusPageEnabled": true,
"remoteStatusPageEnabled": true,
"localStatusPage": {
"authentication": {
"enabled": false,
"username": "admin"
}
},
"securePort": {
"enabled": false
},
"fips": {
"enabled": true
},
"namedVlans": {
"enabled": true
}
}
}
}
},
"summary": "Return the settings for a network",
"tags": [
"networks",
"configure",
"settings"
]
},
"put": {
"description": "Update the settings for a network",
"operationId": "updateNetworkSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSettings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"localStatusPageEnabled": {
"type": "boolean",
"description": "Enables / disables the local device status pages (my.meraki.com, ap.meraki.com, switch.meraki.com, wired.meraki.com ). Optional (defaults to false)"
},
"remoteStatusPageEnabled": {
"type": "boolean",
"description": "Enables / disables access to the device status page (http://[device's LAN IP]) . Optional. Can only be set if localStatusPageEnabled is set to true"
},
"localStatusPage": {
"type": "object",
"properties": {
"authentication": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enables / disables the authentication on Local Status page(s)."
},
"password": {
"type": "string",
"description": "The password used for Local Status Page(s). Set this to null to clear the password."
}
},
"description": "A hash of Local Status page(s)' authentication options applied to the Network."
}
},
"description": "A hash of Local Status page(s)' authentication options applied to the Network."
},
"securePort": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enables / disables SecureConnect on the network. Optional."
}
},
"description": "A hash of SecureConnect options applied to the Network."
},
"fips": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enables / disables FIPS on the network."
}
},
"x-release-stage": "beta",
"description": "A hash of FIPS options applied to the Network"
},
"namedVlans": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enables / disables Named VLANs on the Network."
}
},
"description": "A hash of Named VLANs options applied to the Network."
}
},
"example": {
"localStatusPageEnabled": true,
"remoteStatusPageEnabled": true,
"localStatusPage": {
"authentication": {
"enabled": false,
"password": "miles123"
}
},
"securePort": {
"enabled": false
},
"fips": {
"enabled": true
},
"namedVlans": {
"enabled": true
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"localStatusPageEnabled": {
"type": "boolean",
"description": "Enables / disables the local device status pages (my.meraki.com, ap.meraki.com, switch.meraki.com, wired.meraki.com ). Optional (defaults to false)"
},
"remoteStatusPageEnabled": {
"type": "boolean",
"description": "Enables / disables access to the device status page (http://[device's LAN IP]) . Optional. Can only be set if localStatusPageEnabled is set to true"
},
"localStatusPage": {
"type": "object",
"properties": {
"authentication": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enables / disables the authentication on Local Status page(s)."
},
"username": {
"type": "string",
"description": "The username used for Local Status Page(s)."
}
},
"description": "A hash of Local Status page(s)' authentication options applied to the Network."
}
},
"description": "A hash of Local Status page(s)' authentication options applied to the Network."
},
"securePort": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enables / disables SecureConnect on the network. Optional."
}
},
"description": "A hash of SecureConnect options applied to the Network."
},
"fips": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enables / disables FIPS on the network."
}
},
"description": "A hash of FIPS options applied to the Network"
},
"namedVlans": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enables / disables Named VLANs on the Network."
}
},
"required": [
"enabled"
],
"description": "A hash of Named VLANs options applied to the Network."
}
}
},
"examples": {
"application/json": {
"localStatusPageEnabled": true,
"remoteStatusPageEnabled": true,
"localStatusPage": {
"authentication": {
"enabled": false,
"username": "admin"
}
},
"securePort": {
"enabled": false
},
"fips": {
"enabled": true
},
"namedVlans": {
"enabled": true
}
}
}
}
},
"summary": "Update the settings for a network",
"tags": [
"networks",
"configure",
"settings"
]
}
},
"/networks/{networkId}/sm/bypassActivationLockAttempts": {
"post": {
"description": "Bypass activation lock attempt",
"operationId": "createNetworkSmBypassActivationLockAttempt",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkSmBypassActivationLockAttempt",
"in": "body",
"schema": {
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "The ids of the devices to attempt activation lock bypass."
}
},
"example": {
"ids": [
"1284392014819",
"2983092129865"
]
},
"required": [
"ids"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"id": "1234",
"status": "pending",
"data": {
}
}
}
}
},
"summary": "Bypass activation lock attempt",
"tags": [
"sm",
"configure",
"bypassActivationLockAttempts"
]
}
},
"/networks/{networkId}/sm/bypassActivationLockAttempts/{attemptId}": {
"get": {
"description": "Bypass activation lock attempt status",
"operationId": "getNetworkSmBypassActivationLockAttempt",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "attemptId",
"in": "path",
"description": "Attempt ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"id": "1234",
"status": "complete",
"data": {
"38290139892": {
"success": true
},
"2090938209": {
"success": false,
"errors": [
"Activation lock bypass code not known for this device"
]
}
}
}
}
}
},
"summary": "Bypass activation lock attempt status",
"tags": [
"sm",
"configure",
"bypassActivationLockAttempts"
]
}
},
"/networks/{networkId}/sm/devices": {
"get": {
"description": "List the devices enrolled in an SM network with various specified fields and filters",
"operationId": "getNetworkSmDevices",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "fields",
"in": "query",
"description": "Additional fields that will be displayed for each device.\n The default fields are: id, name, tags, ssid, wifiMac, osName, systemModel, uuid, and serialNumber. The additional fields are: ip,\n systemType, availableDeviceCapacity, kioskAppName, biosVersion, lastConnected, missingAppsCount, userSuppliedAddress, location, lastUser,\n ownerEmail, ownerUsername, osBuild, publicIp, phoneNumber, diskInfoJson, deviceCapacity, isManaged, hadMdm, isSupervised, meid, imei, iccid,\n simCarrierNetwork, cellularDataUsed, isHotspotEnabled, createdAt, batteryEstCharge, quarantined, avName, avRunning, asName, fwName,\n isRooted, loginRequired, screenLockEnabled, screenLockDelay, autoLoginDisabled, autoTags, hasMdm, hasDesktopAgent, diskEncryptionEnabled,\n hardwareEncryptionCaps, passCodeLock, usesHardwareKeystore, androidSecurityPatchVersion, cellular, and url."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "wifiMacs",
"in": "query",
"description": "Filter devices by wifi mac(s)."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Filter devices by serial(s)."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "ids",
"in": "query",
"description": "Filter devices by id(s)."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "uuids",
"in": "query",
"description": "Filter devices by uuid(s)."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "systemTypes",
"in": "query",
"description": "Filter devices by system type(s)."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "scope",
"in": "query",
"description": "Specify a scope (one of all, none, withAny, withAll, withoutAny, or withoutAll) and a set of tags."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The Meraki Id of the device record."
},
"name": {
"type": "string",
"description": "The name of the device."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of tags associated with the device."
},
"ssid": {
"type": "string",
"description": "The name of the SSID the device was last connected to."
},
"wifiMac": {
"type": "string",
"description": "The MAC of the device."
},
"osName": {
"type": "string",
"description": "The name of the device OS."
},
"systemModel": {
"type": "string",
"description": "The device model."
},
"uuid": {
"type": "string",
"description": "The UUID of the device."
},
"serialNumber": {
"type": "string",
"description": "The device serial number."
},
"serial": {
"type": "string",
"description": "The device serial."
},
"ip": {
"type": "string",
"description": "The IP address of the device."
},
"notes": {
"type": "string",
"description": "Notes associated with the device."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"id": "1284392014819",
"name": "Miles's phone",
"tags": [
"tag1",
"tag2"
],
"ssid": "My SSID",
"wifiMac": "00:11:22:33:44:55",
"osName": "iOS 9.3.5",
"systemModel": "iPhone",
"uuid": "3d990628ede4c628d52",
"serialNumber": "F5XKHEBX",
"serial": "F5XKHEBX",
"ip": "1.2.3.4",
"notes": "Here's some info about my device"
}
]
}
}
},
"summary": "List the devices enrolled in an SM network with various specified fields and filters",
"tags": [
"sm",
"configure",
"devices"
]
}
},
"/networks/{networkId}/sm/devices/checkin": {
"post": {
"description": "Force check-in a set of devices",
"operationId": "checkinNetworkSmDevices",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "checkinNetworkSmDevices",
"in": "body",
"schema": {
"type": "object",
"properties": {
"wifiMacs": {
"type": "array",
"items": {
"type": "string"
},
"description": "The wifiMacs of the devices to be checked-in."
},
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "The ids of the devices to be checked-in."
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "The serials of the devices to be checked-in."
},
"scope": {
"type": "array",
"items": {
"type": "string"
},
"description": "The scope (one of all, none, withAny, withAll, withoutAny, or withoutAll) and a set of tags of the devices to be checked-in."
}
},
"example": {
"wifiMacs": [
"00:11:22:33:44:55"
],
"ids": [
"1284392014819",
"2983092129865"
],
"serials": [
"XY0XX0Y0X0",
"A01B01CD00E",
"X02YZ1ZYZX"
],
"scope": [
"withAny",
"tag1",
"tag2"
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "The Meraki Ids of the set of devices."
}
}
},
"examples": {
"application/json": {
"ids": [
"1284392014819",
"2983092129865"
]
}
}
}
},
"summary": "Force check-in a set of devices",
"tags": [
"sm",
"configure",
"devices"
]
}
},
"/networks/{networkId}/sm/devices/fields": {
"put": {
"description": "Modify the fields of a device",
"operationId": "updateNetworkSmDevicesFields",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSmDevicesFields",
"in": "body",
"schema": {
"type": "object",
"properties": {
"wifiMac": {
"type": "string",
"description": "The wifiMac of the device to be modified."
},
"id": {
"type": "string",
"description": "The id of the device to be modified."
},
"serial": {
"type": "string",
"description": "The serial of the device to be modified."
},
"deviceFields": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "New name for the device"
},
"notes": {
"type": "string",
"description": "New notes for the device"
}
},
"description": "The new fields of the device. Each field of this object is optional."
}
},
"example": {
"wifiMac": "00:11:22:33:44:55",
"id": "1284392014819",
"serial": "XY0XX0Y0X0",
"deviceFields": {
"name": "Miles's phone",
"notes": "Here's some info about my device"
}
},
"required": [
"deviceFields"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The Meraki Id of the device record."
},
"name": {
"type": "string",
"description": "The name of the device."
},
"wifiMac": {
"type": "string",
"description": "The MAC of the device."
},
"serial": {
"type": "string",
"description": "The device serial."
},
"notes": {
"type": "string",
"description": "Notes associated with the device."
}
}
}
},
"examples": {
"application/json": [
{
"id": "1284392014819",
"name": "Miles's phone",
"wifiMac": "00:11:22:33:44:55",
"serial": "F5XKHEBX",
"notes": "Here's some info about my device"
}
]
}
}
},
"summary": "Modify the fields of a device",
"tags": [
"sm",
"configure",
"devices",
"fields"
]
}
},
"/networks/{networkId}/sm/devices/lock": {
"post": {
"description": "Lock a set of devices",
"operationId": "lockNetworkSmDevices",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "lockNetworkSmDevices",
"in": "body",
"schema": {
"type": "object",
"properties": {
"wifiMacs": {
"type": "array",
"items": {
"type": "string"
},
"description": "The wifiMacs of the devices to be locked."
},
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "The ids of the devices to be locked."
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "The serials of the devices to be locked."
},
"scope": {
"type": "array",
"items": {
"type": "string"
},
"description": "The scope (one of all, none, withAny, withAll, withoutAny, or withoutAll) and a set of tags of the devices to be locked."
},
"pin": {
"type": "integer",
"description": "The pin number for locking macOS devices (a six digit number). Required only for macOS devices."
}
},
"example": {
"wifiMacs": [
"00:11:22:33:44:55"
],
"ids": [
"1284392014819",
"2983092129865"
],
"serials": [
"XY0XX0Y0X0",
"A01B01CD00E",
"X02YZ1ZYZX"
],
"scope": [
"withAny",
"tag1",
"tag2"
],
"pin": 123456
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "The Meraki Ids of the set of devices."
}
}
},
"examples": {
"application/json": {
"ids": [
"1284392014819",
"2983092129865"
]
}
}
}
},
"summary": "Lock a set of devices",
"tags": [
"sm",
"configure",
"devices"
]
}
},
"/networks/{networkId}/sm/devices/modifyTags": {
"post": {
"description": "Add, delete, or update the tags of a set of devices",
"operationId": "modifyNetworkSmDevicesTags",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "modifyNetworkSmDevicesTags",
"in": "body",
"schema": {
"type": "object",
"properties": {
"wifiMacs": {
"type": "array",
"items": {
"type": "string"
},
"description": "The wifiMacs of the devices to be modified."
},
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "The ids of the devices to be modified."
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "The serials of the devices to be modified."
},
"scope": {
"type": "array",
"items": {
"type": "string"
},
"description": "The scope (one of all, none, withAny, withAll, withoutAny, or withoutAll) and a set of tags of the devices to be modified."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tags to be added, deleted, or updated."
},
"updateAction": {
"type": "string",
"description": "One of add, delete, or update. Only devices that have been modified will be returned."
}
},
"example": {
"wifiMacs": [
"00:11:22:33:44:55"
],
"ids": [
"1284392014819",
"2983092129865"
],
"serials": [
"XY0XX0Y0X0",
"A01B01CD00E",
"X02YZ1ZYZX"
],
"scope": [
"withAny, old_tag"
],
"tags": [
"tag1",
"tag2"
],
"updateAction": "add"
},
"required": [
"tags",
"updateAction"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The Meraki Id of the device record."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of tags associated with the device."
},
"wifiMac": {
"type": "string",
"description": "The MAC of the device."
},
"serial": {
"type": "string",
"description": "The device serial."
}
}
}
},
"examples": {
"application/json": [
{
"id": "1284392014819",
"tags": [
"tag1",
"tag2"
],
"wifiMac": "00:11:22:33:44:55",
"serial": "F5XKHEBX"
}
]
}
}
},
"summary": "Add, delete, or update the tags of a set of devices",
"tags": [
"sm",
"configure",
"devices"
]
}
},
"/networks/{networkId}/sm/devices/move": {
"post": {
"description": "Move a set of devices to a new network",
"operationId": "moveNetworkSmDevices",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "moveNetworkSmDevices",
"in": "body",
"schema": {
"type": "object",
"properties": {
"wifiMacs": {
"type": "array",
"items": {
"type": "string"
},
"description": "The wifiMacs of the devices to be moved."
},
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "The ids of the devices to be moved."
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "The serials of the devices to be moved."
},
"scope": {
"type": "array",
"items": {
"type": "string"
},
"description": "The scope (one of all, none, withAny, withAll, withoutAny, or withoutAll) and a set of tags of the devices to be moved."
},
"newNetwork": {
"type": "string",
"description": "The new network to which the devices will be moved."
}
},
"example": {
"wifiMacs": [
"00:11:22:33:44:55"
],
"ids": [
"1284392014819",
"2983092129865"
],
"serials": [
"XY0XX0Y0X0",
"A01B01CD00E",
"X02YZ1ZYZX"
],
"scope": [
"withAny",
"tag1",
"tag2"
],
"newNetwork": "1284392014819"
},
"required": [
"newNetwork"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "The Meraki Ids of the set of devices."
},
"newNetwork": {
"type": "string",
"description": "The network to which the devices was moved."
}
}
},
"examples": {
"application/json": {
"ids": [
"1284392014819",
"2983092129865"
],
"newNetwork": "1284392014819"
}
}
}
},
"summary": "Move a set of devices to a new network",
"tags": [
"sm",
"configure",
"devices"
]
}
},
"/networks/{networkId}/sm/devices/reboot": {
"post": {
"description": "Reboot a set of endpoints",
"operationId": "rebootNetworkSmDevices",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "rebootNetworkSmDevices",
"in": "body",
"schema": {
"type": "object",
"properties": {
"wifiMacs": {
"type": "array",
"items": {
"type": "string"
},
"description": "The wifiMacs of the endpoints to be rebooted."
},
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "The ids of the endpoints to be rebooted."
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "The serials of the endpoints to be rebooted."
},
"scope": {
"type": "array",
"items": {
"type": "string"
},
"description": "The scope (one of all, none, withAny, withAll, withoutAny, or withoutAll) and a set of tags of the endpoints to be rebooted."
},
"kextPaths": {
"type": "array",
"items": {
"type": "string"
},
"description": "The KextPaths of the endpoints to be rebooted. Available for macOS 11+"
},
"notifyUser": {
"type": "boolean",
"description": "Whether or not to notify the user before rebooting the endpoint. Available for macOS 11.3+"
},
"rebuildKernelCache": {
"type": "boolean",
"description": "Whether or not to rebuild the kernel cache when rebooting the endpoint. Available for macOS 11+"
},
"requestRequiresNetworkTether": {
"type": "boolean",
"description": "Whether or not the request requires network tethering. Available for macOS and supervised iOS or tvOS"
}
},
"example": {
"wifiMacs": [
"00:11:22:33:44:55"
],
"ids": [
"1284392014819",
"2983092129865"
],
"serials": [
"XY0XX0Y0X0",
"A01B01CD00E",
"X02YZ1ZYZX"
],
"scope": [
"withAny",
"tag1",
"tag2"
],
"kextPaths": [
"test"
],
"notifyUser": true,
"rebuildKernelCache": true,
"requestRequiresNetworkTether": true
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "The Meraki Ids of the set of endpoints."
}
}
},
"examples": {
"application/json": {
"ids": [
"1284392014819",
"2983092129865"
]
}
}
}
},
"summary": "Reboot a set of endpoints",
"tags": [
"sm",
"configure",
"devices"
]
}
},
"/networks/{networkId}/sm/devices/shutdown": {
"post": {
"description": "Shutdown a set of endpoints",
"operationId": "shutdownNetworkSmDevices",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "shutdownNetworkSmDevices",
"in": "body",
"schema": {
"type": "object",
"properties": {
"wifiMacs": {
"type": "array",
"items": {
"type": "string"
},
"description": "The wifiMacs of the endpoints to be shutdown."
},
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "The ids of the endpoints to be shutdown."
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "The serials of the endpoints to be shutdown."
},
"scope": {
"type": "array",
"items": {
"type": "string"
},
"description": "The scope (one of all, none, withAny, withAll, withoutAny, or withoutAll) and a set of tags of the endpoints to be shutdown."
}
},
"example": {
"wifiMacs": [
"00:11:22:33:44:55"
],
"ids": [
"1284392014819",
"2983092129865"
],
"serials": [
"XY0XX0Y0X0",
"A01B01CD00E",
"X02YZ1ZYZX"
],
"scope": [
"withAny",
"tag1",
"tag2"
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "The Meraki Ids of the set of endpoints."
}
}
},
"examples": {
"application/json": {
"ids": [
"1284392014819",
"2983092129865"
]
}
}
}
},
"summary": "Shutdown a set of endpoints",
"tags": [
"sm",
"configure",
"devices"
]
}
},
"/networks/{networkId}/sm/devices/wipe": {
"post": {
"description": "Wipe a device",
"operationId": "wipeNetworkSmDevices",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "wipeNetworkSmDevices",
"in": "body",
"schema": {
"type": "object",
"properties": {
"wifiMac": {
"type": "string",
"description": "The wifiMac of the device to be wiped."
},
"id": {
"type": "string",
"description": "The id of the device to be wiped."
},
"serial": {
"type": "string",
"description": "The serial of the device to be wiped."
},
"pin": {
"type": "integer",
"description": "The pin number (a six digit value) for wiping a macOS device. Required only for macOS devices."
}
},
"example": {
"wifiMac": "00:11:22:33:44:55",
"id": "1284392014819",
"serial": "XY0XX0Y0X0",
"pin": 123456
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The Meraki Id of the devices."
}
}
},
"examples": {
"application/json": {
"id": "1284392014819"
}
}
}
},
"summary": "Wipe a device",
"tags": [
"sm",
"configure",
"devices"
]
}
},
"/networks/{networkId}/sm/devices/{deviceId}/cellularUsageHistory": {
"get": {
"description": "Return the client's daily cellular data usage history. Usage data is in kilobytes.",
"operationId": "getNetworkSmDeviceCellularUsageHistory",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "deviceId",
"in": "path",
"description": "Device ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"received": {
"type": "number",
"format": "float",
"description": "The amount of cellular data received by the device."
},
"sent": {
"type": "number",
"format": "float",
"description": "The amount of cellular sent received by the device."
},
"ts": {
"type": "string",
"description": "When the cellular usage data was collected."
}
}
}
},
"examples": {
"application/json": [
{
"received": 61.0,
"sent": 138.0,
"ts": "2018-05-12T00:00:00Z"
}
]
}
}
},
"summary": "Return the client's daily cellular data usage history",
"tags": [
"sm",
"monitor",
"devices",
"cellularUsageHistory"
]
}
},
"/networks/{networkId}/sm/devices/{deviceId}/certs": {
"get": {
"description": "List the certs on a device",
"operationId": "getNetworkSmDeviceCerts",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "deviceId",
"in": "path",
"description": "Device ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the certificate."
},
"notValidAfter": {
"type": "string",
"description": "The date after which the certificate is no longer valid."
},
"notValidBefore": {
"type": "string",
"description": "The date before which the certificate is not valid."
},
"certPem": {
"type": "string",
"description": "The PEM of the certificate."
},
"deviceId": {
"type": "string",
"description": "The Meraki managed device Id."
},
"issuer": {
"type": "string",
"description": "The certificate issuer."
},
"subject": {
"type": "string",
"description": "The subject of the certificate."
},
"id": {
"type": "string",
"description": "The Meraki Id of the certificate record."
}
}
}
},
"examples": {
"application/json": [
{
"name": "My Cert",
"notValidAfter": "2018-05-12T00:00:00Z",
"notValidBefore": "2018-02-11T00:00:00Z",
"certPem": "-----BEGIN CERTIFICATE-----\n-----END CERTIFICATE-----\n",
"deviceId": "1234",
"issuer": "",
"subject": "",
"id": "15"
}
]
}
}
},
"summary": "List the certs on a device",
"tags": [
"sm",
"configure",
"devices",
"certs"
]
}
},
"/networks/{networkId}/sm/devices/{deviceId}/connectivity": {
"get": {
"description": "Returns historical connectivity data (whether a device is regularly checking in to Dashboard).",
"operationId": "getNetworkSmDeviceConnectivity",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "deviceId",
"in": "path",
"description": "Device ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"firstSeenAt": {
"type": "string",
"description": "When the device was first seen as connected to the internet in each connection."
},
"lastSeenAt": {
"type": "string",
"description": "When the device was last seen as connected to the internet in each connection."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"firstSeenAt": "2018-02-11T00:00:00Z",
"lastSeenAt": "2018-05-12T00:00:00Z"
}
]
}
}
},
"summary": "Returns historical connectivity data (whether a device is regularly checking in to Dashboard).",
"tags": [
"sm",
"monitor",
"devices",
"connectivity"
]
}
},
"/networks/{networkId}/sm/devices/{deviceId}/desktopLogs": {
"get": {
"description": "Return historical records of various Systems Manager network connection details for desktop devices.",
"operationId": "getNetworkSmDeviceDesktopLogs",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "deviceId",
"in": "path",
"description": "Device ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"measuredAt": {
"type": "string",
"description": "The time the data was measured at."
},
"user": {
"type": "string",
"description": "The user during connection."
},
"networkDevice": {
"type": "string",
"description": "The network device for the device used for connection."
},
"networkDriver": {
"type": "string",
"description": "The network driver for the device."
},
"wifiChannel": {
"type": "string",
"description": "Channel through which the connection is routing."
},
"wifiAuth": {
"type": "string",
"description": "The type of authentication used by the SSID."
},
"wifiBssid": {
"type": "string",
"description": "The MAC of the access point the device is connected to."
},
"wifiSsid": {
"type": "string",
"description": "The name of the network the device is connected to."
},
"wifiRssi": {
"type": "string",
"description": "The Received Signal Strength Indicator for the device."
},
"wifiNoise": {
"type": "string",
"description": "The wireless signal power level received by the device."
},
"dhcpServer": {
"type": "string",
"description": "The IP address of the DCHP Server."
},
"ip": {
"type": "string",
"description": "The IP of the device during connection."
},
"networkMTU": {
"type": "string",
"description": "The network max transmission unit."
},
"subnet": {
"type": "string",
"description": "The subnet of the device connection."
},
"gateway": {
"type": "string",
"description": "The gateway IP the device was connected to."
},
"publicIP": {
"type": "string",
"description": "The public IP address of the device."
},
"dnsServer": {
"type": "string",
"description": "The DNS Server during the connection."
},
"ts": {
"type": "string",
"description": "The time the connection was logged."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"measuredAt": "2018-05-12T00:00:00Z",
"user": "milesmeraki",
"networkDevice": "NIC",
"networkDriver": "Driver",
"wifiChannel": "11",
"wifiAuth": "wpa-psk",
"wifiBssid": "00:11:22:33:44:55",
"wifiSsid": "ssid",
"wifiRssi": "-11",
"wifiNoise": "-99",
"dhcpServer": "1.2.3.4",
"ip": "1.2.3.4",
"networkMTU": "1500",
"subnet": "192.168.1.0/24",
"gateway": "1.2.3.5",
"publicIP": "123.123.123.1",
"dnsServer": "8",
"ts": "2018-05-12T00:00:00Z"
}
]
}
}
},
"summary": "Return historical records of various Systems Manager network connection details for desktop devices.",
"tags": [
"sm",
"monitor",
"devices",
"desktopLogs"
]
}
},
"/networks/{networkId}/sm/devices/{deviceId}/deviceCommandLogs": {
"get": {
"description": "Return historical records of commands sent to Systems Manager devices. Note that this will include the name of the Dashboard user who initiated the command if it was generated by a Dashboard admin rather than the automatic behavior of the system; you may wish to filter this out of any reports.",
"operationId": "getNetworkSmDeviceDeviceCommandLogs",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "deviceId",
"in": "path",
"description": "Device ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"action": {
"type": "string",
"description": "The type of command sent to the device."
},
"name": {
"type": "string",
"description": "The name of the device to which the command is sent."
},
"details": {
"type": "string",
"description": "A JSON string object containing command details."
},
"dashboardUser": {
"type": "string",
"description": "The Meraki dashboard user who initiated the command."
},
"ts": {
"type": "string",
"description": "The time the command was sent to the device."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"action": "UpdateProfile",
"name": "My profile",
"details": "{}",
"dashboardUser": "Miles Meraki",
"ts": "2018-05-12T00:00:00Z"
}
]
}
}
},
"summary": "Return historical records of commands sent to Systems Manager devices",
"tags": [
"sm",
"monitor",
"devices",
"deviceCommandLogs"
]
}
},
"/networks/{networkId}/sm/devices/{deviceId}/deviceProfiles": {
"get": {
"description": "Get the installed profiles associated with a device",
"operationId": "getNetworkSmDeviceDeviceProfiles",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "deviceId",
"in": "path",
"description": "Device ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"deviceId": {
"type": "string",
"description": "The Meraki managed device Id."
},
"id": {
"type": "string",
"description": "The numerical Meraki Id of the profile."
},
"isEncrypted": {
"type": "boolean",
"description": "A boolean indicating if the profile is encrypted."
},
"isManaged": {
"type": "boolean",
"description": "Whether or not the profile is managed by Meraki."
},
"profileData": {
"type": "string",
"description": "A string containing a JSON object with the profile data."
},
"profileIdentifier": {
"type": "string",
"description": "The identifier of the profile."
},
"name": {
"type": "string",
"description": "The name of the profile."
},
"version": {
"type": "string",
"description": "The verison of the profile."
}
}
}
},
"examples": {
"application/json": [
{
"deviceId": "1234",
"id": "1284392014819",
"isEncrypted": true,
"isManaged": true,
"profileData": "{}",
"profileIdentifier": "com.test.app",
"name": "My profile",
"version": "0.0.1"
}
]
}
}
},
"summary": "Get the installed profiles associated with a device",
"tags": [
"sm",
"configure",
"devices",
"deviceProfiles"
]
}
},
"/networks/{networkId}/sm/devices/{deviceId}/installApps": {
"post": {
"description": "Install applications on a device",
"operationId": "installNetworkSmDeviceApps",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "deviceId",
"in": "path",
"description": "Device ID",
"type": "string",
"required": true
},
{
"name": "installNetworkSmDeviceApps",
"in": "body",
"schema": {
"type": "object",
"properties": {
"appIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "ids of applications to be installed"
},
"force": {
"type": "boolean",
"description": "By default, installation of an app which is believed to already be present on the device will be skipped. If you'd like to force the installation of the app, set this parameter to true."
}
},
"example": {
"appIds": [
"1284392014819",
"2983092129865"
],
"force": false
},
"required": [
"appIds"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
}
}
}
},
"summary": "Install applications on a device",
"tags": [
"sm",
"configure",
"devices"
]
}
},
"/networks/{networkId}/sm/devices/{deviceId}/networkAdapters": {
"get": {
"description": "List the network adapters of a device",
"operationId": "getNetworkSmDeviceNetworkAdapters",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "deviceId",
"in": "path",
"description": "Device ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"dhcpServer": {
"type": "string",
"description": "The IP address of the DCHP Server."
},
"dnsServer": {
"type": "string",
"description": "The IP address of the DNS Server."
},
"gateway": {
"type": "string",
"description": "The IP address of the Gateway."
},
"id": {
"type": "string",
"description": "The Meraki Id of the network adapter record."
},
"ip": {
"type": "string",
"description": "The IP address of the network adapter."
},
"mac": {
"type": "string",
"description": "The MAC associated with the network adapter."
},
"name": {
"type": "string",
"description": "The name of the newtwork adapter."
},
"subnet": {
"type": "string",
"description": "The subnet for the network adapter."
}
}
}
},
"examples": {
"application/json": [
{
"dhcpServer": "123.123.123.1",
"dnsServer": "8.8.8.8, 8.8.4.4",
"gateway": "1.2.3.5",
"id": "1284392014819",
"ip": "1.2.3.4",
"mac": "00:11:22:33:44:55",
"name": "en0",
"subnet": "255.255.255.0"
}
]
}
}
},
"summary": "List the network adapters of a device",
"tags": [
"sm",
"configure",
"devices",
"networkAdapters"
]
}
},
"/networks/{networkId}/sm/devices/{deviceId}/performanceHistory": {
"get": {
"description": "Return historical records of various Systems Manager client metrics for desktop devices.",
"operationId": "getNetworkSmDevicePerformanceHistory",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "deviceId",
"in": "path",
"description": "Device ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"cpuPercentUsed": {
"type": "number",
"format": "float",
"description": "The percentage of CPU used as a decimal format."
},
"memFree": {
"type": "integer",
"description": "Memory that is not yet in use by the system."
},
"memWired": {
"type": "integer",
"description": "Memory used for core OS functions on the device."
},
"memActive": {
"type": "integer",
"description": "The active RAM on the device."
},
"memInactive": {
"type": "integer",
"description": "The inactive RAM on the device."
},
"networkSent": {
"type": "integer",
"description": "Network bandwith transmitted."
},
"networkReceived": {
"type": "integer",
"description": "Network bandwith received."
},
"swapUsed": {
"type": "integer",
"description": "The amount of space being used on the startup disk to swap unused files to and from RAM."
},
"diskUsage": {
"type": "object",
"properties": {
"c": {
"type": "object",
"properties": {
"used": {
"type": "integer",
"description": "The used disk space."
},
"space": {
"type": "integer",
"description": "The available disk space."
}
},
"description": "An object containing current disk usage details."
}
},
"description": "An object containing disk usage details."
},
"ts": {
"type": "string",
"description": "The time at which the performance was measured."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"cpuPercentUsed": 0.95,
"memFree": 1024,
"memWired": 4096,
"memActive": 1024,
"memInactive": 2048,
"networkSent": 512,
"networkReceived": 512,
"swapUsed": 768,
"diskUsage": {
"c": {
"used": 2048,
"space": 9096
}
},
"ts": "2018-05-12T00:00:00Z"
}
]
}
}
},
"summary": "Return historical records of various Systems Manager client metrics for desktop devices.",
"tags": [
"sm",
"monitor",
"devices",
"performanceHistory"
]
}
},
"/networks/{networkId}/sm/devices/{deviceId}/refreshDetails": {
"post": {
"description": "Refresh the details of a device",
"operationId": "refreshNetworkSmDeviceDetails",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "deviceId",
"in": "path",
"description": "Device ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
}
}
}
},
"summary": "Refresh the details of a device",
"tags": [
"sm",
"configure",
"devices"
]
}
},
"/networks/{networkId}/sm/devices/{deviceId}/restrictions": {
"get": {
"description": "List the restrictions on a device",
"operationId": "getNetworkSmDeviceRestrictions",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "deviceId",
"in": "path",
"description": "Device ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"restrictions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"profile": {
"type": "string",
"description": "The profile identifier."
},
"restrictions": {
"type": "object",
"additionalProperties": true,
"description": "The restrictions for the profile."
}
}
},
"description": "The list of restrictions for the device"
}
}
},
"examples": {
"application/json": {
"restrictions": [
{
"profile": "com.test.app"
}
]
}
}
}
},
"summary": "List the restrictions on a device",
"tags": [
"sm",
"configure",
"devices",
"restrictions"
]
}
},
"/networks/{networkId}/sm/devices/{deviceId}/securityCenters": {
"get": {
"description": "List the security centers on a device",
"operationId": "getNetworkSmDeviceSecurityCenters",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "deviceId",
"in": "path",
"description": "Device ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"isRooted": {
"type": "boolean",
"description": "Boolean indicating if the device is rooted."
},
"hasAntiVirus": {
"type": "boolean",
"description": "Boolean indicating if the device has Antivirus."
},
"antiVirusName": {
"type": "string",
"description": "The name of the Antivirus."
},
"isFireWallEnabled": {
"type": "boolean",
"description": "Boolean indicating if the device has a Firewall enabled."
},
"hasFireWallInstalled": {
"type": "boolean",
"description": "Boolean indicating if the device has a Firewall installed."
},
"fireWallName": {
"type": "string",
"description": "The name of the Firewall."
},
"isDiskEncrypted": {
"type": "boolean",
"description": "Boolean indicating if the device has disk encryption."
},
"isAutoLoginDisabled": {
"type": "boolean",
"description": "Boolean indicating if the device has auto login disabled."
},
"id": {
"type": "string",
"description": "The Meraki identifier for the security center record."
},
"runningProcs": {
"type": "string",
"description": "A comma seperated list of procs running on the device."
}
}
}
},
"examples": {
"application/json": [
{
"isRooted": true,
"hasAntiVirus": true,
"antiVirusName": "meraki_av",
"isFireWallEnabled": true,
"hasFireWallInstalled": true,
"fireWallName": "meraki_fw",
"isDiskEncrypted": true,
"isAutoLoginDisabled": true,
"id": "1284392014819",
"runningProcs": "/software,/software_2"
}
]
}
}
},
"summary": "List the security centers on a device",
"tags": [
"sm",
"configure",
"devices",
"securityCenters"
]
}
},
"/networks/{networkId}/sm/devices/{deviceId}/softwares": {
"get": {
"description": "Get a list of softwares associated with a device",
"operationId": "getNetworkSmDeviceSoftwares",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "deviceId",
"in": "path",
"description": "Device ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"appId": {
"type": "string",
"description": "The Meraki managed application Id for this record on a particular device."
},
"bundleSize": {
"type": "integer",
"description": "The size of the software bundle."
},
"createdAt": {
"type": "string",
"description": "When the Meraki record for the software was created."
},
"deviceId": {
"type": "string",
"description": "The Meraki managed device Id."
},
"dynamicSize": {
"type": "integer",
"description": "The size of the data stored in the application."
},
"id": {
"type": "string",
"description": "The Meraki software Id."
},
"identifier": {
"type": "string",
"description": "Software bundle identifier."
},
"installedAt": {
"type": "string",
"description": "When the Software was installed on the device."
},
"toInstall": {
"type": "boolean",
"description": "A boolean indicating this software record should be installed on the associated device."
},
"iosRedemptionCode": {
"type": "boolean",
"description": "A boolean indicating whether or not an iOS redemption code was used."
},
"isManaged": {
"type": "boolean",
"description": "A boolean indicating whether or not the software is managed by Meraki."
},
"itunesId": {
"type": "string",
"description": "The itunes numerical identifier."
},
"licenseKey": {
"type": "string",
"description": "The license key associated with this software installation."
},
"name": {
"type": "string",
"description": "The name of the software."
},
"path": {
"type": "string",
"description": "The path on the device where the software record is located."
},
"redemptionCode": {
"type": "integer",
"description": "The redemption code used for this software."
},
"shortVersion": {
"type": "string",
"description": "Short version notation for the software."
},
"status": {
"type": "string",
"description": "The management status of the software."
},
"toUninstall": {
"type": "boolean",
"description": "A boolean indicating this software record should be uninstalled on the associated device."
},
"uninstalledAt": {
"type": "string",
"description": "When the record was uninstalled from the device."
},
"updatedAt": {
"type": "string",
"description": "When the record was last updated by Meraki."
},
"vendor": {
"type": "string",
"description": "The vendor of the software."
},
"version": {
"type": "string",
"description": "Full version notation for the software."
}
}
}
},
"examples": {
"application/json": [
{
"appId": "1234",
"bundleSize": 1024,
"createdAt": "2018-02-11T00:00:00Z",
"deviceId": "1234",
"dynamicSize": 2048,
"id": "1284392014819",
"identifier": "com.test.app",
"installedAt": "2018-05-12T00:00:00Z",
"toInstall": true,
"iosRedemptionCode": false,
"isManaged": true,
"itunesId": "1234",
"licenseKey": "Z21234567890",
"name": "My app",
"path": "/Path/to/app.app",
"redemptionCode": 1234,
"shortVersion": "1.1",
"status": "Managed",
"toUninstall": false,
"uninstalledAt": "2018-02-11T00:00:00Z",
"updatedAt": "2018-05-12T00:00:00Z",
"vendor": "Apple",
"version": "0.1"
}
]
}
}
},
"summary": "Get a list of softwares associated with a device",
"tags": [
"sm",
"configure",
"devices",
"softwares"
]
}
},
"/networks/{networkId}/sm/devices/{deviceId}/unenroll": {
"post": {
"description": "Unenroll a device",
"operationId": "unenrollNetworkSmDevice",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "deviceId",
"in": "path",
"description": "Device ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"description": "Boolean indicating whether the operation was completed successfully."
}
}
},
"examples": {
"application/json": {
"success": true
}
}
}
},
"summary": "Unenroll a device",
"tags": [
"sm",
"configure",
"devices"
]
}
},
"/networks/{networkId}/sm/devices/{deviceId}/uninstallApps": {
"post": {
"description": "Uninstall applications on a device",
"operationId": "uninstallNetworkSmDeviceApps",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "deviceId",
"in": "path",
"description": "Device ID",
"type": "string",
"required": true
},
{
"name": "uninstallNetworkSmDeviceApps",
"in": "body",
"schema": {
"type": "object",
"properties": {
"appIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "ids of applications to be uninstalled"
}
},
"example": {
"appIds": [
"1284392014819",
"2983092129865"
]
},
"required": [
"appIds"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
}
}
}
},
"summary": "Uninstall applications on a device",
"tags": [
"sm",
"configure",
"devices"
]
}
},
"/networks/{networkId}/sm/devices/{deviceId}/wlanLists": {
"get": {
"description": "List the saved SSID names on a device",
"operationId": "getNetworkSmDeviceWlanLists",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "deviceId",
"in": "path",
"description": "Device ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"createdAt": {
"type": "string",
"description": "When the Meraki record for the wlanList was created."
},
"id": {
"type": "string",
"description": "The Meraki managed Id of the wlanList record."
},
"xml": {
"type": "string",
"description": "An XML string containing the WLAN List for the device."
}
}
}
},
"examples": {
"application/json": [
{
"createdAt": "2018-02-11T00:00:00Z",
"id": "1284392014819",
"xml": "Preferred networks on en0:"
}
]
}
}
},
"summary": "List the saved SSID names on a device",
"tags": [
"sm",
"configure",
"devices",
"wlanLists"
]
}
},
"/networks/{networkId}/sm/profiles": {
"get": {
"description": "List all profiles in a network",
"operationId": "getNetworkSmProfiles",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "payloadTypes",
"in": "query",
"description": "Filter by payload types"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of a profile."
},
"name": {
"type": "string",
"description": "Name of a profile."
},
"description": {
"type": "string",
"description": "Description of a profile."
},
"scope": {
"type": "string",
"description": "Scope of a profile."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tags of a profile."
},
"payloadTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Payloads in the profile."
}
}
}
},
"examples": {
"application/json": [
{
"id": "1284392014819",
"name": "My profile",
"description": "Some profile description",
"scope": "withAny",
"tags": [
"tag1",
"tag2"
],
"payloadTypes": [
"Vpn",
"ManagedSettings"
]
}
]
}
}
},
"summary": "List all profiles in a network",
"tags": [
"sm",
"configure",
"profiles"
]
}
},
"/networks/{networkId}/sm/targetGroups": {
"get": {
"description": "List the target groups in this network",
"operationId": "getNetworkSmTargetGroups",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "boolean",
"name": "withDetails",
"in": "query",
"description": "Boolean indicating if the the ids of the devices or users scoped by the target group should be included in the response"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of this target group."
},
"name": {
"type": "string",
"description": "The name of this target group."
},
"scope": {
"type": "string",
"description": "The scope of the target group."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tags of the target group."
}
}
}
},
"examples": {
"application/json": [
{
"id": "1284392014819",
"name": "Target group name",
"scope": "withAny",
"tags": [
"tag1",
"tag2"
]
}
]
}
}
},
"summary": "List the target groups in this network",
"tags": [
"sm",
"configure",
"targetGroups"
]
},
"post": {
"description": "Add a target group",
"operationId": "createNetworkSmTargetGroup",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkSmTargetGroup",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of this target group"
},
"scope": {
"type": "string",
"description": "The scope and tag options of the target group. Comma separated values beginning with one of withAny, withAll, withoutAny, withoutAll, all, none, followed by tags. Default to none if empty."
}
},
"example": {
"name": "Target group name",
"scope": "withAny, tag1, tag2"
}
}
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of this target group."
},
"name": {
"type": "string",
"description": "The name of this target group."
},
"scope": {
"type": "string",
"description": "The scope of the target group."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tags of the target group."
}
}
},
"examples": {
"application/json": {
"id": "1284392014819",
"name": "Target group name",
"scope": "withAny",
"tags": [
"tag1",
"tag2"
]
}
}
}
},
"summary": "Add a target group",
"tags": [
"sm",
"configure",
"targetGroups"
]
}
},
"/networks/{networkId}/sm/targetGroups/{targetGroupId}": {
"get": {
"description": "Return a target group",
"operationId": "getNetworkSmTargetGroup",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "targetGroupId",
"in": "path",
"description": "Target group ID",
"type": "string",
"required": true
},
{
"type": "boolean",
"name": "withDetails",
"in": "query",
"description": "Boolean indicating if the the ids of the devices or users scoped by the target group should be included in the response"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of this target group."
},
"name": {
"type": "string",
"description": "The name of this target group."
},
"scope": {
"type": "string",
"description": "The scope of the target group."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tags of the target group."
}
}
},
"examples": {
"application/json": {
"id": "1284392014819",
"name": "Target group name",
"scope": "withAny",
"tags": [
"tag1",
"tag2"
]
}
}
}
},
"summary": "Return a target group",
"tags": [
"sm",
"configure",
"targetGroups"
]
},
"put": {
"description": "Update a target group",
"operationId": "updateNetworkSmTargetGroup",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "targetGroupId",
"in": "path",
"description": "Target group ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSmTargetGroup",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of this target group"
},
"scope": {
"type": "string",
"description": "The scope and tag options of the target group. Comma separated values beginning with one of withAny, withAll, withoutAny, withoutAll, all, none, followed by tags. Default to none if empty."
}
},
"example": {
"name": "Target group name",
"scope": "withAny, tag1, tag2"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of this target group."
},
"name": {
"type": "string",
"description": "The name of this target group."
},
"scope": {
"type": "string",
"description": "The scope of the target group."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tags of the target group."
}
}
},
"examples": {
"application/json": {
"id": "1284392014819",
"name": "Target group name",
"scope": "withAny",
"tags": [
"tag1",
"tag2"
]
}
}
}
},
"summary": "Update a target group",
"tags": [
"sm",
"configure",
"targetGroups"
]
},
"delete": {
"description": "Delete a target group from a network",
"operationId": "deleteNetworkSmTargetGroup",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "targetGroupId",
"in": "path",
"description": "Target group ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a target group from a network",
"tags": [
"sm",
"configure",
"targetGroups"
]
}
},
"/networks/{networkId}/sm/trustedAccessConfigs": {
"get": {
"description": "List Trusted Access Configs",
"operationId": "getNetworkSmTrustedAccessConfigs",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 100."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "device ID"
},
"ssidName": {
"type": "string",
"description": "SSID name"
},
"name": {
"type": "string",
"description": "device name"
},
"scope": {
"type": "string",
"description": "scope"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "device tags"
},
"timeboundType": {
"type": "string",
"enum": [
"dynamic",
"static"
],
"description": "type of access period, either a static range or a dynamic period"
},
"sendExpirationEmails": {
"type": "boolean",
"description": "Send Email Notifications"
},
"notifyTimeBeforeAccessEnds": {
"type": "integer",
"description": "Time before access expiration reminder email sends"
},
"additionalEmailText": {
"type": "string",
"description": "Optional email text"
},
"accessStartAt": {
"type": "string",
"format": "date-time",
"description": "time that access starts"
},
"accessEndAt": {
"type": "string",
"format": "date-time",
"description": "time that access ends"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"id": "1284392014819",
"ssidName": "My SSID",
"name": "Cisco Meraki valued client",
"scope": "withAny",
"tags": [
"tag1",
"tag2"
],
"timeboundType": "static",
"sendExpirationEmails": true,
"notifyTimeBeforeAccessEnds": 50000,
"additionalEmailText": "test",
"accessStartAt": "2018-02-11T00:00:00Z",
"accessEndAt": "2018-05-12T00:00:00Z"
}
]
}
}
},
"summary": "List Trusted Access Configs",
"tags": [
"sm",
"configure",
"trustedAccessConfigs"
]
}
},
"/networks/{networkId}/sm/userAccessDevices": {
"get": {
"description": "List User Access Devices and its Trusted Access Connections",
"operationId": "getNetworkSmUserAccessDevices",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 100."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "device ID"
},
"name": {
"type": "string",
"description": "device name"
},
"systemType": {
"type": "string",
"description": "system type"
},
"mac": {
"type": "string",
"description": "mac address"
},
"username": {
"type": "string",
"description": "username"
},
"email": {
"type": "string",
"description": "user email"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "device tags"
},
"trustedAccessConnections": {
"type": "array",
"items": {
"type": "object",
"properties": {
"trustedAccessConfigId": {
"type": "string",
"description": "config id"
},
"downloadedAt": {
"type": "string",
"description": "time that config was downloaded"
},
"scepCompletedAt": {
"type": "string",
"format": "date-time",
"description": "time that SCEP completed"
},
"lastConnectedAt": {
"type": "string",
"format": "date-time",
"description": "time of last connection"
}
}
},
"description": "Array of trusted access configs"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"id": "1284392014819",
"name": "Cisco Meraki valued client",
"systemType": "ios",
"mac": "00:11:22:33:44:55",
"username": "milesmeraki",
"email": "miles@meraki.com",
"tags": [
"tag1",
"tag2"
],
"trustedAccessConnections": [
{
"trustedAccessConfigId": "1234",
"downloadedAt": "2018-02-11T00:00:00Z",
"scepCompletedAt": "2018-05-12T00:00:00Z",
"lastConnectedAt": "2018-05-12T00:00:00Z"
}
]
}
]
}
}
},
"summary": "List User Access Devices and its Trusted Access Connections",
"tags": [
"sm",
"configure",
"userAccessDevices"
]
}
},
"/networks/{networkId}/sm/userAccessDevices/{userAccessDeviceId}": {
"delete": {
"description": "Delete a User Access Device",
"operationId": "deleteNetworkSmUserAccessDevice",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "userAccessDeviceId",
"in": "path",
"description": "User access device ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a User Access Device",
"tags": [
"sm",
"configure",
"userAccessDevices"
]
}
},
"/networks/{networkId}/sm/users": {
"get": {
"description": "List the owners in an SM network with various specified fields and filters",
"operationId": "getNetworkSmUsers",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "ids",
"in": "query",
"description": "Filter users by id(s)."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "usernames",
"in": "query",
"description": "Filter users by username(s)."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "emails",
"in": "query",
"description": "Filter users by email(s)."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "scope",
"in": "query",
"description": "Specifiy a scope (one of all, none, withAny, withAll, withoutAny, withoutAll) and a set of tags."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The Meraki managed Id of the user record."
},
"email": {
"type": "string",
"description": "User email."
},
"fullName": {
"type": "string",
"description": "User full name."
},
"username": {
"type": "string",
"description": "The users username."
},
"hasPassword": {
"type": "boolean",
"description": "A boolean denoting if the user has a password associated with the record."
},
"tags": {
"type": "string",
"description": "The set of tags the user is scoped to."
},
"adGroups": {
"type": "array",
"items": {
"type": "string"
},
"description": "Active Directory Groups the user belongs to."
},
"azureAdGroups": {
"type": "array",
"items": {
"type": "string"
},
"description": "Azure Active Directory Groups the user belongs to."
},
"samlGroups": {
"type": "array",
"items": {
"type": "string"
},
"description": "SAML Groups the user belongs to."
},
"asmGroups": {
"type": "array",
"items": {
"type": "string"
},
"description": "Apple School Manager Groups the user belongs to."
},
"isExternal": {
"type": "boolean",
"description": "Whether the user was created using an external integration, or via the Meraki Dashboard."
},
"displayName": {
"type": "string",
"description": "The user display name."
},
"hasIdentityCertificate": {
"type": "boolean",
"description": "A boolean indicating if the user has an associated identity certificate.."
},
"userThumbnail": {
"type": "string",
"description": "The url where the users thumbnail is hosted."
}
}
}
},
"examples": {
"application/json": [
{
"id": "1234",
"email": "miles@meraki.com",
"fullName": "Miles Meraki",
"username": "",
"hasPassword": false,
"tags": " tag1 tag2 ",
"adGroups": [
],
"azureAdGroups": [
],
"samlGroups": [
],
"asmGroups": [
],
"isExternal": false,
"displayName": "Miles Meraki ",
"hasIdentityCertificate": false,
"userThumbnail": "https://s3.amazonaws.com/image.extension"
}
]
}
}
},
"summary": "List the owners in an SM network with various specified fields and filters",
"tags": [
"sm",
"configure",
"users"
]
}
},
"/networks/{networkId}/sm/users/{userId}/deviceProfiles": {
"get": {
"description": "Get the profiles associated with a user",
"operationId": "getNetworkSmUserDeviceProfiles",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "userId",
"in": "path",
"description": "User ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"deviceId": {
"type": "string",
"description": "The Meraki managed device Id."
},
"id": {
"type": "string",
"description": "The numerical Meraki Id of the profile."
},
"isEncrypted": {
"type": "boolean",
"description": "A boolean indicating if the profile is encrypted."
},
"isManaged": {
"type": "boolean",
"description": "Whether or not the profile is managed by Meraki."
},
"profileData": {
"type": "string",
"description": "A string containing a JSON object with the profile data."
},
"profileIdentifier": {
"type": "string",
"description": "The identifier of the profile."
},
"name": {
"type": "string",
"description": "The name of the profile."
},
"version": {
"type": "string",
"description": "The verison of the profile."
}
}
}
},
"examples": {
"application/json": [
{
"deviceId": "1234",
"id": "1284392014819",
"isEncrypted": true,
"isManaged": true,
"profileData": "{}",
"profileIdentifier": "com.test.app",
"name": "My profile",
"version": "0.0.1"
}
]
}
}
},
"summary": "Get the profiles associated with a user",
"tags": [
"sm",
"configure",
"users",
"deviceProfiles"
]
}
},
"/networks/{networkId}/sm/users/{userId}/softwares": {
"get": {
"description": "Get a list of softwares associated with a user",
"operationId": "getNetworkSmUserSoftwares",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "userId",
"in": "path",
"description": "User ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"appId": {
"type": "string",
"description": "The Meraki managed application Id for this record on a particular device."
},
"bundleSize": {
"type": "integer",
"description": "The size of the software bundle."
},
"createdAt": {
"type": "string",
"description": "When the Meraki record for the software was created."
},
"deviceId": {
"type": "string",
"description": "The Meraki managed device Id."
},
"dynamicSize": {
"type": "integer",
"description": "The size of the data stored in the application."
},
"id": {
"type": "string",
"description": "The Meraki software Id."
},
"identifier": {
"type": "string",
"description": "Software bundle identifier."
},
"installedAt": {
"type": "string",
"description": "When the Software was installed on the device."
},
"toInstall": {
"type": "boolean",
"description": "A boolean indicating this software record should be installed on the associated device."
},
"iosRedemptionCode": {
"type": "boolean",
"description": "A boolean indicating whether or not an iOS redemption code was used."
},
"isManaged": {
"type": "boolean",
"description": "A boolean indicating whether or not the software is managed by Meraki."
},
"itunesId": {
"type": "string",
"description": "The itunes numerical identifier."
},
"licenseKey": {
"type": "string",
"description": "The license key associated with this software installation."
},
"name": {
"type": "string",
"description": "The name of the software."
},
"path": {
"type": "string",
"description": "The path on the device where the software record is located."
},
"redemptionCode": {
"type": "integer",
"description": "The redemption code used for this software."
},
"shortVersion": {
"type": "string",
"description": "Short version notation for the software."
},
"status": {
"type": "string",
"description": "The management status of the software."
},
"toUninstall": {
"type": "boolean",
"description": "A boolean indicating this software record should be uninstalled on the associated device."
},
"uninstalledAt": {
"type": "string",
"description": "When the record was uninstalled from the device."
},
"updatedAt": {
"type": "string",
"description": "When the record was last updated by Meraki."
},
"vendor": {
"type": "string",
"description": "The vendor of the software."
},
"version": {
"type": "string",
"description": "Full version notation for the software."
}
}
}
},
"examples": {
"application/json": [
{
"appId": "1234",
"bundleSize": 1024,
"createdAt": "2018-02-11T00:00:00Z",
"deviceId": "1234",
"dynamicSize": 2048,
"id": "1284392014819",
"identifier": "com.test.app",
"installedAt": "2018-05-12T00:00:00Z",
"toInstall": true,
"iosRedemptionCode": false,
"isManaged": true,
"itunesId": "1234",
"licenseKey": "Z21234567890",
"name": "My app",
"path": "/Path/to/app.app",
"redemptionCode": 1234,
"shortVersion": "1.1",
"status": "Managed",
"toUninstall": false,
"uninstalledAt": "2018-02-11T00:00:00Z",
"updatedAt": "2018-05-12T00:00:00Z",
"vendor": "Apple",
"version": "0.1"
}
]
}
}
},
"summary": "Get a list of softwares associated with a user",
"tags": [
"sm",
"configure",
"users",
"softwares"
]
}
},
"/networks/{networkId}/snmp": {
"get": {
"description": "Return the SNMP settings for a network",
"operationId": "getNetworkSnmp",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"access": {
"type": "string",
"description": "The type of SNMP access. Can be one of 'none' (disabled), 'community' (V1/V2c), or 'users' (V3)."
},
"communityString": {
"type": "string",
"description": "SNMP community string if access is 'community'."
},
"users": {
"type": "array",
"items": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "The username for the SNMP user."
},
"passphrase": {
"type": "string",
"description": "The passphrase for the SNMP user."
}
}
},
"description": "SNMP settings if access is 'users'."
}
}
},
"examples": {
"application/json": {
"access": "users",
"communityString": "sample",
"users": [
{
"username": "AzureDiamond",
"passphrase": "hunter2"
}
]
}
}
}
},
"summary": "Return the SNMP settings for a network",
"tags": [
"networks",
"configure",
"snmp"
]
},
"put": {
"description": "Update the SNMP settings for a network",
"operationId": "updateNetworkSnmp",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSnmp",
"in": "body",
"schema": {
"type": "object",
"properties": {
"access": {
"type": "string",
"enum": [
"community",
"none",
"users"
],
"description": "The type of SNMP access. Can be one of 'none' (disabled), 'community' (V1/V2c), or 'users' (V3)."
},
"communityString": {
"type": "string",
"description": "The SNMP community string. Only relevant if 'access' is set to 'community'."
},
"users": {
"type": "array",
"items": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "The username for the SNMP user. Required."
},
"passphrase": {
"type": "string",
"description": "The passphrase for the SNMP user. Required."
}
},
"required": [
"username",
"passphrase"
]
},
"description": "The list of SNMP users. Only relevant if 'access' is set to 'users'."
}
},
"example": {
"access": "users",
"communityString": "sample",
"users": [
{
"username": "AzureDiamond",
"passphrase": "hunter2"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"access": {
"type": "string",
"description": "The type of SNMP access. Can be one of 'none' (disabled), 'community' (V1/V2c), or 'users' (V3)."
},
"communityString": {
"type": "string",
"description": "SNMP community string if access is 'community'."
},
"users": {
"type": "array",
"items": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "The username for the SNMP user."
},
"passphrase": {
"type": "string",
"description": "The passphrase for the SNMP user."
}
}
},
"description": "SNMP settings if access is 'users'."
}
}
},
"examples": {
"application/json": {
"access": "users",
"communityString": "sample",
"users": [
{
"username": "AzureDiamond",
"passphrase": "hunter2"
}
]
}
}
}
},
"summary": "Update the SNMP settings for a network",
"tags": [
"networks",
"configure",
"snmp"
]
}
},
"/networks/{networkId}/splashLoginAttempts": {
"get": {
"description": "List the splash login attempts for a network",
"operationId": "getNetworkSplashLoginAttempts",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14
],
"name": "ssidNumber",
"in": "query",
"description": "Only return the login attempts for the specified SSID"
},
{
"type": "string",
"name": "loginIdentifier",
"in": "query",
"description": "The username, email, or phone number used during login"
},
{
"type": "integer",
"name": "timespan",
"in": "query",
"description": "The timespan, in seconds, for the login attempts. The period will be from [timespan] seconds ago until now. The maximum timespan is 3 months"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "User name"
},
"login": {
"type": "string",
"description": "User login identifier"
},
"ssid": {
"type": "string",
"description": "SSID name"
},
"loginAt": {
"type": "string",
"format": "date-time",
"description": "Login timestamp"
},
"gatewayDeviceMac": {
"type": "string",
"description": "Gateway device mac address"
},
"clientMac": {
"type": "string",
"description": "Client mac address"
},
"clientId": {
"type": "string",
"description": "Client ID"
},
"authorization": {
"type": "string",
"description": "Authorization status"
}
}
}
},
"examples": {
"application/json": [
{
"name": "Miles Meraki",
"login": "miles@meraki.com",
"ssid": "My SSID",
"loginAt": "2018-02-11T00:00:00.090210Z",
"gatewayDeviceMac": "00:11:22:33:44:55",
"clientMac": "22:33:44:55:66:77",
"clientId": "k74272e",
"authorization": "success"
}
]
}
}
},
"summary": "List the splash login attempts for a network",
"tags": [
"networks",
"monitor",
"splashLoginAttempts"
]
}
},
"/networks/{networkId}/split": {
"post": {
"description": "Split a combined network into individual networks for each type of device",
"operationId": "splitNetwork",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"resultingNetworks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network ID"
},
"organizationId": {
"type": "string",
"description": "Organization ID"
},
"name": {
"type": "string",
"description": "Network name"
},
"productTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of the product types that the network supports"
},
"timeZone": {
"type": "string",
"description": "Timezone of the network"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Network tags"
},
"enrollmentString": {
"type": "string",
"description": "Enrollment string for the network"
},
"url": {
"type": "string",
"description": "URL to the network Dashboard UI"
},
"notes": {
"type": "string",
"description": "Notes for the network"
},
"isBoundToConfigTemplate": {
"type": "boolean",
"description": "If the network is bound to a config template"
}
}
},
"description": "Networks after the split"
}
}
},
"examples": {
"application/json": {
"resultingNetworks": [
{
"id": "N_24329156",
"organizationId": "2930418",
"name": "Main Office - switch",
"productTypes": [
"switch"
],
"timeZone": "America/Los_Angeles",
"tags": [
"tag1",
"tag2"
],
"enrollmentString": "my-enrollment-string",
"url": "https://n1.meraki.com//n//manage/nodes/list",
"notes": "Additional description of the network",
"isBoundToConfigTemplate": false
}
]
}
}
}
},
"summary": "Split a combined network into individual networks for each type of device",
"tags": [
"networks",
"configure"
]
}
},
"/networks/{networkId}/switch/accessControlLists": {
"get": {
"description": "Return the access control lists for a MS network",
"operationId": "getNetworkSwitchAccessControlLists",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"enum": [
"allow",
"deny"
],
"description": "'allow' or 'deny' traffic specified by this rule"
},
"ipVersion": {
"type": "string",
"enum": [
"any",
"ipv4",
"ipv6"
],
"description": "IP address version"
},
"protocol": {
"type": "string",
"enum": [
"any",
"tcp",
"udp"
],
"description": "The type of protocol"
},
"srcCidr": {
"type": "string",
"description": "Source IP address (in IP or CIDR notation)"
},
"srcPort": {
"type": "string",
"description": "Source port"
},
"dstCidr": {
"type": "string",
"description": "Destination IP address (in IP or CIDR notation)"
},
"dstPort": {
"type": "string",
"description": "Destination port"
},
"vlan": {
"type": "string",
"description": "ncoming traffic VLAN"
}
}
},
"description": "An ordered array of the access control list rules"
}
}
},
"examples": {
"application/json": {
"rules": [
{
"comment": "Deny SSH",
"policy": "deny",
"ipVersion": "ipv4",
"protocol": "tcp",
"srcCidr": "10.1.10.0/24",
"srcPort": "any",
"dstCidr": "172.16.30/24",
"dstPort": "22",
"vlan": "10"
}
]
}
}
}
},
"summary": "Return the access control lists for a MS network",
"tags": [
"switch",
"configure",
"accessControlLists"
]
},
"put": {
"description": "Update the access control lists for a MS network",
"operationId": "updateNetworkSwitchAccessControlLists",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSwitchAccessControlLists",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)."
},
"policy": {
"type": "string",
"enum": [
"allow",
"deny"
],
"description": "'allow' or 'deny' traffic specified by this rule."
},
"ipVersion": {
"type": "string",
"enum": [
"any",
"ipv4",
"ipv6"
],
"description": "IP address version (must be 'any', 'ipv4' or 'ipv6'). Applicable only if network supports IPv6. Default value is 'ipv4'."
},
"protocol": {
"type": "string",
"enum": [
"any",
"tcp",
"udp"
],
"description": "The type of protocol (must be 'tcp', 'udp', or 'any')."
},
"srcCidr": {
"type": "string",
"description": "Source IP address (in IP or CIDR notation) or 'any'."
},
"srcPort": {
"type": "string",
"description": "Source port. Must be in the range of 1-65535 or 'any'. Default is 'any'."
},
"dstCidr": {
"type": "string",
"description": "Destination IP address (in IP or CIDR notation) or 'any'."
},
"dstPort": {
"type": "string",
"description": "Destination port. Must be in the range of 1-65535 or 'any'. Default is 'any'."
},
"vlan": {
"type": "string",
"description": "Incoming traffic VLAN. Must be in the range of 1-4095 or 'any'. Default is 'any'."
}
},
"required": [
"policy",
"protocol",
"srcCidr",
"dstCidr"
]
},
"description": "An ordered array of the access control list rules (not including the default rule). An empty array will clear the rules."
}
},
"example": {
"rules": [
{
"comment": "Deny SSH",
"policy": "deny",
"ipVersion": "ipv4",
"protocol": "tcp",
"srcCidr": "10.1.10.0/24",
"srcPort": "any",
"dstCidr": "172.16.30/24",
"dstPort": "22",
"vlan": "10"
}
]
},
"required": [
"rules"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"enum": [
"allow",
"deny"
],
"description": "'allow' or 'deny' traffic specified by this rule"
},
"ipVersion": {
"type": "string",
"enum": [
"any",
"ipv4",
"ipv6"
],
"description": "IP address version"
},
"protocol": {
"type": "string",
"enum": [
"any",
"tcp",
"udp"
],
"description": "The type of protocol"
},
"srcCidr": {
"type": "string",
"description": "Source IP address (in IP or CIDR notation)"
},
"srcPort": {
"type": "string",
"description": "Source port"
},
"dstCidr": {
"type": "string",
"description": "Destination IP address (in IP or CIDR notation)"
},
"dstPort": {
"type": "string",
"description": "Destination port"
},
"vlan": {
"type": "string",
"description": "ncoming traffic VLAN"
}
}
},
"description": "An ordered array of the access control list rules"
}
}
},
"examples": {
"application/json": {
"rules": [
{
"comment": "Deny SSH",
"policy": "deny",
"ipVersion": "ipv4",
"protocol": "tcp",
"srcCidr": "10.1.10.0/24",
"srcPort": "any",
"dstCidr": "172.16.30/24",
"dstPort": "22",
"vlan": "10"
}
]
}
}
}
},
"summary": "Update the access control lists for a MS network",
"tags": [
"switch",
"configure",
"accessControlLists"
]
}
},
"/networks/{networkId}/switch/accessPolicies": {
"get": {
"description": "List the access policies for a switch network. Only returns access policies with 'my RADIUS server' as authentication method",
"operationId": "getNetworkSwitchAccessPolicies",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the access policy"
},
"radiusServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "Public IP address of the RADIUS server"
},
"port": {
"type": "integer",
"description": "UDP port that the RADIUS server listens on for access requests"
}
}
},
"description": "List of RADIUS servers to require connecting devices to authenticate against before granting network access"
},
"radius": {
"type": "object",
"properties": {
"criticalAuth": {
"type": "object",
"properties": {
"dataVlanId": {
"type": "integer",
"description": "VLAN that clients who use data will be placed on when RADIUS authentication fails. Will be null if hostMode is Multi-Auth"
},
"voiceVlanId": {
"type": "integer",
"description": "VLAN that clients who use voice will be placed on when RADIUS authentication fails. Will be null if hostMode is Multi-Auth"
},
"suspendPortBounce": {
"type": "boolean",
"description": "Enable to suspend port bounce when RADIUS servers are unreachable"
}
},
"description": "Critical auth settings for when authentication is rejected by the RADIUS server"
},
"failedAuthVlanId": {
"type": "integer",
"description": "VLAN that clients will be placed on when RADIUS authentication fails. Will be null if hostMode is Multi-Auth"
},
"reAuthenticationInterval": {
"type": "integer",
"description": "Re-authentication period in seconds. Will be null if hostMode is Multi-Auth"
}
},
"description": "Object for RADIUS Settings"
},
"guestPortBouncing": {
"type": "boolean",
"description": "If enabled, Meraki devices will periodically send access-request messages to these RADIUS servers"
},
"radiusTestingEnabled": {
"type": "boolean",
"description": "If enabled, Meraki devices will periodically send access-request messages to these RADIUS servers"
},
"radiusCoaSupportEnabled": {
"type": "boolean",
"description": "Change of authentication for RADIUS re-authentication and disconnection"
},
"radiusAccountingEnabled": {
"type": "boolean",
"description": "Enable to send start, interim-update and stop messages to a configured RADIUS accounting server for tracking connected clients"
},
"radiusAccountingServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "Public IP address of the RADIUS accounting server"
},
"port": {
"type": "integer",
"description": "UDP port that the RADIUS Accounting server listens on for access requests"
}
}
},
"description": "List of RADIUS accounting servers to require connecting devices to authenticate against before granting network access"
},
"radiusGroupAttribute": {
"type": "string",
"description": "Acceptable values are `\"\"` for None, or `\"11\"` for Group Policies ACL"
},
"hostMode": {
"type": "string",
"enum": [
"Multi-Auth",
"Multi-Domain",
"Multi-Host",
"Single-Host"
],
"description": "Choose the Host Mode for the access policy."
},
"accessPolicyType": {
"type": "string",
"enum": [
"802.1x",
"Hybrid authentication",
"MAC authentication bypass"
],
"description": "Access Type of the policy. Automatically 'Hybrid authentication' when hostMode is 'Multi-Domain'."
},
"increaseAccessSpeed": {
"type": "boolean",
"description": "Enabling this option will make switches execute 802.1X and MAC-bypass authentication simultaneously so that clients authenticate faster. Only required when accessPolicyType is 'Hybrid Authentication."
},
"guestVlanId": {
"type": "integer",
"description": "ID for the guest VLAN allow unauthorized devices access to limited network resources"
},
"dot1x": {
"type": "object",
"properties": {
"controlDirection": {
"type": "string",
"enum": [
"both",
"inbound"
],
"description": "Supports either 'both' or 'inbound'. Set to 'inbound' to allow unauthorized egress on the switchport. Set to 'both' to control both traffic directions with authorization. Defaults to 'both'"
}
},
"description": "802.1x Settings"
},
"voiceVlanClients": {
"type": "boolean",
"description": "CDP/LLDP capable voice clients will be able to use this VLAN. Automatically true when hostMode is 'Multi-Domain'."
},
"urlRedirectWalledGardenEnabled": {
"type": "boolean",
"description": "Enable to restrict access for clients to a response_objectific set of IP addresses or hostnames prior to authentication"
},
"urlRedirectWalledGardenRanges": {
"type": "array",
"items": {
"type": "string"
},
"description": "IP address ranges, in CIDR notation, to restrict access for clients to a specific set of IP addresses or hostnames prior to authentication"
},
"counts": {
"type": "object",
"properties": {
"ports": {
"type": "object",
"properties": {
"withThisPolicy": {
"type": "integer",
"description": "Number of ports in the network with this policy. For template networks, this is the number of template ports (not child ports) with this policy."
}
},
"description": "Counts associated with ports"
}
},
"description": "Counts associated with the access policy"
}
}
}
},
"examples": {
"application/json": [
{
"name": "Access policy #1",
"radiusServers": [
{
"host": "1.2.3.4",
"port": 22
}
],
"radius": {
"criticalAuth": {
"dataVlanId": 100,
"voiceVlanId": 100,
"suspendPortBounce": true
},
"failedAuthVlanId": 100,
"reAuthenticationInterval": 120
},
"guestPortBouncing": false,
"radiusTestingEnabled": false,
"radiusCoaSupportEnabled": false,
"radiusAccountingEnabled": true,
"radiusAccountingServers": [
{
"host": "1.2.3.4",
"port": 22
}
],
"radiusGroupAttribute": "11",
"hostMode": "Single-Host",
"accessPolicyType": "Hybrid authentication",
"increaseAccessSpeed": false,
"guestVlanId": 100,
"dot1x": {
"controlDirection": "inbound"
},
"voiceVlanClients": true,
"urlRedirectWalledGardenEnabled": true,
"urlRedirectWalledGardenRanges": [
"192.168.1.0/24"
],
"counts": {
"ports": {
"withThisPolicy": 12
}
}
}
]
}
}
},
"summary": "List the access policies for a switch network",
"tags": [
"switch",
"configure",
"accessPolicies"
]
},
"post": {
"description": "Create an access policy for a switch network. If you would like to enable Meraki Authentication, set radiusServers to empty array.",
"operationId": "createNetworkSwitchAccessPolicy",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkSwitchAccessPolicy",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the access policy"
},
"radiusServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "Public IP address of the RADIUS server"
},
"port": {
"type": "integer",
"description": "UDP port that the RADIUS server listens on for access requests"
},
"secret": {
"type": "string",
"description": "RADIUS client shared secret"
}
},
"required": [
"host",
"port",
"secret"
]
},
"description": "List of RADIUS servers to require connecting devices to authenticate against before granting network access"
},
"radius": {
"type": "object",
"properties": {
"criticalAuth": {
"type": "object",
"properties": {
"dataVlanId": {
"type": "integer",
"description": "VLAN that clients who use data will be placed on when RADIUS authentication fails. Will be null if hostMode is Multi-Auth"
},
"voiceVlanId": {
"type": "integer",
"description": "VLAN that clients who use voice will be placed on when RADIUS authentication fails. Will be null if hostMode is Multi-Auth"
},
"suspendPortBounce": {
"type": "boolean",
"description": "Enable to suspend port bounce when RADIUS servers are unreachable"
}
},
"description": "Critical auth settings for when authentication is rejected by the RADIUS server"
},
"failedAuthVlanId": {
"type": "integer",
"description": "VLAN that clients will be placed on when RADIUS authentication fails. Will be null if hostMode is Multi-Auth"
},
"reAuthenticationInterval": {
"type": "integer",
"description": "Re-authentication period in seconds. Will be null if hostMode is Multi-Auth"
}
},
"description": "Object for RADIUS Settings"
},
"guestPortBouncing": {
"type": "boolean",
"description": "If enabled, Meraki devices will periodically send access-request messages to these RADIUS servers"
},
"radiusTestingEnabled": {
"type": "boolean",
"description": "If enabled, Meraki devices will periodically send access-request messages to these RADIUS servers"
},
"radiusCoaSupportEnabled": {
"type": "boolean",
"description": "Change of authentication for RADIUS re-authentication and disconnection"
},
"radiusAccountingEnabled": {
"type": "boolean",
"description": "Enable to send start, interim-update and stop messages to a configured RADIUS accounting server for tracking connected clients"
},
"radiusAccountingServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "Public IP address of the RADIUS accounting server"
},
"port": {
"type": "integer",
"description": "UDP port that the RADIUS Accounting server listens on for access requests"
},
"secret": {
"type": "string",
"description": "RADIUS client shared secret"
}
},
"required": [
"host",
"port",
"secret"
]
},
"description": "List of RADIUS accounting servers to require connecting devices to authenticate against before granting network access"
},
"radiusGroupAttribute": {
"type": "string",
"description": "Acceptable values are `\"\"` for None, or `\"11\"` for Group Policies ACL"
},
"hostMode": {
"type": "string",
"enum": [
"Multi-Auth",
"Multi-Domain",
"Multi-Host",
"Single-Host"
],
"description": "Choose the Host Mode for the access policy."
},
"accessPolicyType": {
"type": "string",
"enum": [
"802.1x",
"Hybrid authentication",
"MAC authentication bypass"
],
"description": "Access Type of the policy. Automatically 'Hybrid authentication' when hostMode is 'Multi-Domain'."
},
"increaseAccessSpeed": {
"type": "boolean",
"description": "Enabling this option will make switches execute 802.1X and MAC-bypass authentication simultaneously so that clients authenticate faster. Only required when accessPolicyType is 'Hybrid Authentication."
},
"guestVlanId": {
"type": "integer",
"description": "ID for the guest VLAN allow unauthorized devices access to limited network resources"
},
"dot1x": {
"type": "object",
"properties": {
"controlDirection": {
"type": "string",
"enum": [
"both",
"inbound"
],
"description": "Supports either 'both' or 'inbound'. Set to 'inbound' to allow unauthorized egress on the switchport. Set to 'both' to control both traffic directions with authorization. Defaults to 'both'"
}
},
"description": "802.1x Settings"
},
"voiceVlanClients": {
"type": "boolean",
"description": "CDP/LLDP capable voice clients will be able to use this VLAN. Automatically true when hostMode is 'Multi-Domain'."
},
"urlRedirectWalledGardenEnabled": {
"type": "boolean",
"description": "Enable to restrict access for clients to a specific set of IP addresses or hostnames prior to authentication"
},
"urlRedirectWalledGardenRanges": {
"type": "array",
"items": {
"type": "string"
},
"description": "IP address ranges, in CIDR notation, to restrict access for clients to a specific set of IP addresses or hostnames prior to authentication"
}
},
"example": {
"name": "Access policy #1",
"radiusServers": [
{
"host": "1.2.3.4",
"port": 22,
"secret": "secret"
}
],
"radius": {
"criticalAuth": {
"dataVlanId": 100,
"voiceVlanId": 100,
"suspendPortBounce": true
},
"failedAuthVlanId": 100,
"reAuthenticationInterval": 120
},
"guestPortBouncing": false,
"radiusTestingEnabled": false,
"radiusCoaSupportEnabled": false,
"radiusAccountingEnabled": true,
"radiusAccountingServers": [
{
"host": "1.2.3.4",
"port": 22,
"secret": "secret"
}
],
"radiusGroupAttribute": "11",
"hostMode": "Single-Host",
"accessPolicyType": "Hybrid authentication",
"increaseAccessSpeed": false,
"guestVlanId": 100,
"dot1x": {
"controlDirection": "inbound"
},
"voiceVlanClients": true,
"urlRedirectWalledGardenEnabled": true,
"urlRedirectWalledGardenRanges": [
"192.168.1.0/24"
]
},
"required": [
"name",
"radiusServers",
"radiusTestingEnabled",
"radiusCoaSupportEnabled",
"radiusAccountingEnabled",
"hostMode",
"urlRedirectWalledGardenEnabled"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the access policy"
},
"radiusServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "Public IP address of the RADIUS server"
},
"port": {
"type": "integer",
"description": "UDP port that the RADIUS server listens on for access requests"
}
}
},
"description": "List of RADIUS servers to require connecting devices to authenticate against before granting network access"
},
"radius": {
"type": "object",
"properties": {
"criticalAuth": {
"type": "object",
"properties": {
"dataVlanId": {
"type": "integer",
"description": "VLAN that clients who use data will be placed on when RADIUS authentication fails. Will be null if hostMode is Multi-Auth"
},
"voiceVlanId": {
"type": "integer",
"description": "VLAN that clients who use voice will be placed on when RADIUS authentication fails. Will be null if hostMode is Multi-Auth"
},
"suspendPortBounce": {
"type": "boolean",
"description": "Enable to suspend port bounce when RADIUS servers are unreachable"
}
},
"description": "Critical auth settings for when authentication is rejected by the RADIUS server"
},
"failedAuthVlanId": {
"type": "integer",
"description": "VLAN that clients will be placed on when RADIUS authentication fails. Will be null if hostMode is Multi-Auth"
},
"reAuthenticationInterval": {
"type": "integer",
"description": "Re-authentication period in seconds. Will be null if hostMode is Multi-Auth"
}
},
"description": "Object for RADIUS Settings"
},
"guestPortBouncing": {
"type": "boolean",
"description": "If enabled, Meraki devices will periodically send access-request messages to these RADIUS servers"
},
"radiusTestingEnabled": {
"type": "boolean",
"description": "If enabled, Meraki devices will periodically send access-request messages to these RADIUS servers"
},
"radiusCoaSupportEnabled": {
"type": "boolean",
"description": "Change of authentication for RADIUS re-authentication and disconnection"
},
"radiusAccountingEnabled": {
"type": "boolean",
"description": "Enable to send start, interim-update and stop messages to a configured RADIUS accounting server for tracking connected clients"
},
"radiusAccountingServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "Public IP address of the RADIUS accounting server"
},
"port": {
"type": "integer",
"description": "UDP port that the RADIUS Accounting server listens on for access requests"
}
}
},
"description": "List of RADIUS accounting servers to require connecting devices to authenticate against before granting network access"
},
"radiusGroupAttribute": {
"type": "string",
"description": "Acceptable values are `\"\"` for None, or `\"11\"` for Group Policies ACL"
},
"hostMode": {
"type": "string",
"enum": [
"Multi-Auth",
"Multi-Domain",
"Multi-Host",
"Single-Host"
],
"description": "Choose the Host Mode for the access policy."
},
"accessPolicyType": {
"type": "string",
"enum": [
"802.1x",
"Hybrid authentication",
"MAC authentication bypass"
],
"description": "Access Type of the policy. Automatically 'Hybrid authentication' when hostMode is 'Multi-Domain'."
},
"increaseAccessSpeed": {
"type": "boolean",
"description": "Enabling this option will make switches execute 802.1X and MAC-bypass authentication simultaneously so that clients authenticate faster. Only required when accessPolicyType is 'Hybrid Authentication."
},
"guestVlanId": {
"type": "integer",
"description": "ID for the guest VLAN allow unauthorized devices access to limited network resources"
},
"dot1x": {
"type": "object",
"properties": {
"controlDirection": {
"type": "string",
"enum": [
"both",
"inbound"
],
"description": "Supports either 'both' or 'inbound'. Set to 'inbound' to allow unauthorized egress on the switchport. Set to 'both' to control both traffic directions with authorization. Defaults to 'both'"
}
},
"description": "802.1x Settings"
},
"voiceVlanClients": {
"type": "boolean",
"description": "CDP/LLDP capable voice clients will be able to use this VLAN. Automatically true when hostMode is 'Multi-Domain'."
},
"urlRedirectWalledGardenEnabled": {
"type": "boolean",
"description": "Enable to restrict access for clients to a response_objectific set of IP addresses or hostnames prior to authentication"
},
"urlRedirectWalledGardenRanges": {
"type": "array",
"items": {
"type": "string"
},
"description": "IP address ranges, in CIDR notation, to restrict access for clients to a specific set of IP addresses or hostnames prior to authentication"
},
"counts": {
"type": "object",
"properties": {
"ports": {
"type": "object",
"properties": {
"withThisPolicy": {
"type": "integer",
"description": "Number of ports in the network with this policy. For template networks, this is the number of template ports (not child ports) with this policy."
}
},
"description": "Counts associated with ports"
}
},
"description": "Counts associated with the access policy"
}
}
},
"examples": {
"application/json": {
"name": "Access policy #1",
"radiusServers": [
{
"host": "1.2.3.4",
"port": 22
}
],
"radius": {
"criticalAuth": {
"dataVlanId": 100,
"voiceVlanId": 100,
"suspendPortBounce": true
},
"failedAuthVlanId": 100,
"reAuthenticationInterval": 120
},
"guestPortBouncing": false,
"radiusTestingEnabled": false,
"radiusCoaSupportEnabled": false,
"radiusAccountingEnabled": true,
"radiusAccountingServers": [
{
"host": "1.2.3.4",
"port": 22
}
],
"radiusGroupAttribute": "11",
"hostMode": "Single-Host",
"accessPolicyType": "Hybrid authentication",
"increaseAccessSpeed": false,
"guestVlanId": 100,
"dot1x": {
"controlDirection": "inbound"
},
"voiceVlanClients": true,
"urlRedirectWalledGardenEnabled": true,
"urlRedirectWalledGardenRanges": [
"192.168.1.0/24"
],
"counts": {
"ports": {
"withThisPolicy": 12
}
}
}
}
}
},
"summary": "Create an access policy for a switch network",
"tags": [
"switch",
"configure",
"accessPolicies"
]
}
},
"/networks/{networkId}/switch/accessPolicies/{accessPolicyNumber}": {
"get": {
"description": "Return a specific access policy for a switch network",
"operationId": "getNetworkSwitchAccessPolicy",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "accessPolicyNumber",
"in": "path",
"description": "Access policy number",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the access policy"
},
"radiusServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "Public IP address of the RADIUS server"
},
"port": {
"type": "integer",
"description": "UDP port that the RADIUS server listens on for access requests"
}
}
},
"description": "List of RADIUS servers to require connecting devices to authenticate against before granting network access"
},
"radius": {
"type": "object",
"properties": {
"criticalAuth": {
"type": "object",
"properties": {
"dataVlanId": {
"type": "integer",
"description": "VLAN that clients who use data will be placed on when RADIUS authentication fails. Will be null if hostMode is Multi-Auth"
},
"voiceVlanId": {
"type": "integer",
"description": "VLAN that clients who use voice will be placed on when RADIUS authentication fails. Will be null if hostMode is Multi-Auth"
},
"suspendPortBounce": {
"type": "boolean",
"description": "Enable to suspend port bounce when RADIUS servers are unreachable"
}
},
"description": "Critical auth settings for when authentication is rejected by the RADIUS server"
},
"failedAuthVlanId": {
"type": "integer",
"description": "VLAN that clients will be placed on when RADIUS authentication fails. Will be null if hostMode is Multi-Auth"
},
"reAuthenticationInterval": {
"type": "integer",
"description": "Re-authentication period in seconds. Will be null if hostMode is Multi-Auth"
}
},
"description": "Object for RADIUS Settings"
},
"guestPortBouncing": {
"type": "boolean",
"description": "If enabled, Meraki devices will periodically send access-request messages to these RADIUS servers"
},
"radiusTestingEnabled": {
"type": "boolean",
"description": "If enabled, Meraki devices will periodically send access-request messages to these RADIUS servers"
},
"radiusCoaSupportEnabled": {
"type": "boolean",
"description": "Change of authentication for RADIUS re-authentication and disconnection"
},
"radiusAccountingEnabled": {
"type": "boolean",
"description": "Enable to send start, interim-update and stop messages to a configured RADIUS accounting server for tracking connected clients"
},
"radiusAccountingServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "Public IP address of the RADIUS accounting server"
},
"port": {
"type": "integer",
"description": "UDP port that the RADIUS Accounting server listens on for access requests"
}
}
},
"description": "List of RADIUS accounting servers to require connecting devices to authenticate against before granting network access"
},
"radiusGroupAttribute": {
"type": "string",
"description": "Acceptable values are `\"\"` for None, or `\"11\"` for Group Policies ACL"
},
"hostMode": {
"type": "string",
"enum": [
"Multi-Auth",
"Multi-Domain",
"Multi-Host",
"Single-Host"
],
"description": "Choose the Host Mode for the access policy."
},
"accessPolicyType": {
"type": "string",
"enum": [
"802.1x",
"Hybrid authentication",
"MAC authentication bypass"
],
"description": "Access Type of the policy. Automatically 'Hybrid authentication' when hostMode is 'Multi-Domain'."
},
"increaseAccessSpeed": {
"type": "boolean",
"description": "Enabling this option will make switches execute 802.1X and MAC-bypass authentication simultaneously so that clients authenticate faster. Only required when accessPolicyType is 'Hybrid Authentication."
},
"guestVlanId": {
"type": "integer",
"description": "ID for the guest VLAN allow unauthorized devices access to limited network resources"
},
"dot1x": {
"type": "object",
"properties": {
"controlDirection": {
"type": "string",
"enum": [
"both",
"inbound"
],
"description": "Supports either 'both' or 'inbound'. Set to 'inbound' to allow unauthorized egress on the switchport. Set to 'both' to control both traffic directions with authorization. Defaults to 'both'"
}
},
"description": "802.1x Settings"
},
"voiceVlanClients": {
"type": "boolean",
"description": "CDP/LLDP capable voice clients will be able to use this VLAN. Automatically true when hostMode is 'Multi-Domain'."
},
"urlRedirectWalledGardenEnabled": {
"type": "boolean",
"description": "Enable to restrict access for clients to a response_objectific set of IP addresses or hostnames prior to authentication"
},
"urlRedirectWalledGardenRanges": {
"type": "array",
"items": {
"type": "string"
},
"description": "IP address ranges, in CIDR notation, to restrict access for clients to a specific set of IP addresses or hostnames prior to authentication"
},
"counts": {
"type": "object",
"properties": {
"ports": {
"type": "object",
"properties": {
"withThisPolicy": {
"type": "integer",
"description": "Number of ports in the network with this policy. For template networks, this is the number of template ports (not child ports) with this policy."
}
},
"description": "Counts associated with ports"
}
},
"description": "Counts associated with the access policy"
}
}
},
"examples": {
"application/json": {
"name": "Access policy #1",
"radiusServers": [
{
"host": "1.2.3.4",
"port": 22
}
],
"radius": {
"criticalAuth": {
"dataVlanId": 100,
"voiceVlanId": 100,
"suspendPortBounce": true
},
"failedAuthVlanId": 100,
"reAuthenticationInterval": 120
},
"guestPortBouncing": false,
"radiusTestingEnabled": false,
"radiusCoaSupportEnabled": false,
"radiusAccountingEnabled": true,
"radiusAccountingServers": [
{
"host": "1.2.3.4",
"port": 22
}
],
"radiusGroupAttribute": "11",
"hostMode": "Single-Host",
"accessPolicyType": "Hybrid authentication",
"increaseAccessSpeed": false,
"guestVlanId": 100,
"dot1x": {
"controlDirection": "inbound"
},
"voiceVlanClients": true,
"urlRedirectWalledGardenEnabled": true,
"urlRedirectWalledGardenRanges": [
"192.168.1.0/24"
],
"counts": {
"ports": {
"withThisPolicy": 12
}
}
}
}
}
},
"summary": "Return a specific access policy for a switch network",
"tags": [
"switch",
"configure",
"accessPolicies"
]
},
"put": {
"description": "Update an access policy for a switch network. If you would like to enable Meraki Authentication, set radiusServers to empty array.",
"operationId": "updateNetworkSwitchAccessPolicy",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "accessPolicyNumber",
"in": "path",
"description": "Access policy number",
"type": "string",
"required": true
},
{
"name": "updateNetworkSwitchAccessPolicy",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the access policy"
},
"radiusServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "Public IP address of the RADIUS server"
},
"port": {
"type": "integer",
"description": "UDP port that the RADIUS server listens on for access requests"
},
"secret": {
"type": "string",
"description": "RADIUS client shared secret"
}
},
"required": [
"host",
"port",
"secret"
]
},
"description": "List of RADIUS servers to require connecting devices to authenticate against before granting network access"
},
"radius": {
"type": "object",
"properties": {
"criticalAuth": {
"type": "object",
"properties": {
"dataVlanId": {
"type": "integer",
"description": "VLAN that clients who use data will be placed on when RADIUS authentication fails. Will be null if hostMode is Multi-Auth"
},
"voiceVlanId": {
"type": "integer",
"description": "VLAN that clients who use voice will be placed on when RADIUS authentication fails. Will be null if hostMode is Multi-Auth"
},
"suspendPortBounce": {
"type": "boolean",
"description": "Enable to suspend port bounce when RADIUS servers are unreachable"
}
},
"description": "Critical auth settings for when authentication is rejected by the RADIUS server"
},
"failedAuthVlanId": {
"type": "integer",
"description": "VLAN that clients will be placed on when RADIUS authentication fails. Will be null if hostMode is Multi-Auth"
},
"reAuthenticationInterval": {
"type": "integer",
"description": "Re-authentication period in seconds. Will be null if hostMode is Multi-Auth"
}
},
"description": "Object for RADIUS Settings"
},
"guestPortBouncing": {
"type": "boolean",
"description": "If enabled, Meraki devices will periodically send access-request messages to these RADIUS servers"
},
"radiusTestingEnabled": {
"type": "boolean",
"description": "If enabled, Meraki devices will periodically send access-request messages to these RADIUS servers"
},
"radiusCoaSupportEnabled": {
"type": "boolean",
"description": "Change of authentication for RADIUS re-authentication and disconnection"
},
"radiusAccountingEnabled": {
"type": "boolean",
"description": "Enable to send start, interim-update and stop messages to a configured RADIUS accounting server for tracking connected clients"
},
"radiusAccountingServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "Public IP address of the RADIUS accounting server"
},
"port": {
"type": "integer",
"description": "UDP port that the RADIUS Accounting server listens on for access requests"
},
"secret": {
"type": "string",
"description": "RADIUS client shared secret"
}
},
"required": [
"host",
"port",
"secret"
]
},
"description": "List of RADIUS accounting servers to require connecting devices to authenticate against before granting network access"
},
"radiusGroupAttribute": {
"type": "string",
"description": "Acceptable values are `\"\"` for None, or `\"11\"` for Group Policies ACL"
},
"hostMode": {
"type": "string",
"enum": [
"Multi-Auth",
"Multi-Domain",
"Multi-Host",
"Single-Host"
],
"description": "Choose the Host Mode for the access policy."
},
"accessPolicyType": {
"type": "string",
"enum": [
"802.1x",
"Hybrid authentication",
"MAC authentication bypass"
],
"description": "Access Type of the policy. Automatically 'Hybrid authentication' when hostMode is 'Multi-Domain'."
},
"increaseAccessSpeed": {
"type": "boolean",
"description": "Enabling this option will make switches execute 802.1X and MAC-bypass authentication simultaneously so that clients authenticate faster. Only required when accessPolicyType is 'Hybrid Authentication."
},
"guestVlanId": {
"type": "integer",
"description": "ID for the guest VLAN allow unauthorized devices access to limited network resources"
},
"dot1x": {
"type": "object",
"properties": {
"controlDirection": {
"type": "string",
"enum": [
"both",
"inbound"
],
"description": "Supports either 'both' or 'inbound'. Set to 'inbound' to allow unauthorized egress on the switchport. Set to 'both' to control both traffic directions with authorization. Defaults to 'both'"
}
},
"description": "802.1x Settings"
},
"voiceVlanClients": {
"type": "boolean",
"description": "CDP/LLDP capable voice clients will be able to use this VLAN. Automatically true when hostMode is 'Multi-Domain'."
},
"urlRedirectWalledGardenEnabled": {
"type": "boolean",
"description": "Enable to restrict access for clients to a specific set of IP addresses or hostnames prior to authentication"
},
"urlRedirectWalledGardenRanges": {
"type": "array",
"items": {
"type": "string"
},
"description": "IP address ranges, in CIDR notation, to restrict access for clients to a specific set of IP addresses or hostnames prior to authentication"
}
},
"example": {
"name": "Access policy #1",
"radiusServers": [
{
"host": "1.2.3.4",
"port": 22,
"secret": "secret"
}
],
"radius": {
"criticalAuth": {
"dataVlanId": 100,
"voiceVlanId": 100,
"suspendPortBounce": true
},
"failedAuthVlanId": 100,
"reAuthenticationInterval": 120
},
"guestPortBouncing": false,
"radiusTestingEnabled": false,
"radiusCoaSupportEnabled": false,
"radiusAccountingEnabled": true,
"radiusAccountingServers": [
{
"host": "1.2.3.4",
"port": 22,
"secret": "secret"
}
],
"radiusGroupAttribute": "11",
"hostMode": "Single-Host",
"accessPolicyType": "Hybrid authentication",
"increaseAccessSpeed": false,
"guestVlanId": 100,
"dot1x": {
"controlDirection": "inbound"
},
"voiceVlanClients": true,
"urlRedirectWalledGardenEnabled": true,
"urlRedirectWalledGardenRanges": [
"192.168.1.0/24"
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the access policy"
},
"radiusServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "Public IP address of the RADIUS server"
},
"port": {
"type": "integer",
"description": "UDP port that the RADIUS server listens on for access requests"
}
}
},
"description": "List of RADIUS servers to require connecting devices to authenticate against before granting network access"
},
"radius": {
"type": "object",
"properties": {
"criticalAuth": {
"type": "object",
"properties": {
"dataVlanId": {
"type": "integer",
"description": "VLAN that clients who use data will be placed on when RADIUS authentication fails. Will be null if hostMode is Multi-Auth"
},
"voiceVlanId": {
"type": "integer",
"description": "VLAN that clients who use voice will be placed on when RADIUS authentication fails. Will be null if hostMode is Multi-Auth"
},
"suspendPortBounce": {
"type": "boolean",
"description": "Enable to suspend port bounce when RADIUS servers are unreachable"
}
},
"description": "Critical auth settings for when authentication is rejected by the RADIUS server"
},
"failedAuthVlanId": {
"type": "integer",
"description": "VLAN that clients will be placed on when RADIUS authentication fails. Will be null if hostMode is Multi-Auth"
},
"reAuthenticationInterval": {
"type": "integer",
"description": "Re-authentication period in seconds. Will be null if hostMode is Multi-Auth"
}
},
"description": "Object for RADIUS Settings"
},
"guestPortBouncing": {
"type": "boolean",
"description": "If enabled, Meraki devices will periodically send access-request messages to these RADIUS servers"
},
"radiusTestingEnabled": {
"type": "boolean",
"description": "If enabled, Meraki devices will periodically send access-request messages to these RADIUS servers"
},
"radiusCoaSupportEnabled": {
"type": "boolean",
"description": "Change of authentication for RADIUS re-authentication and disconnection"
},
"radiusAccountingEnabled": {
"type": "boolean",
"description": "Enable to send start, interim-update and stop messages to a configured RADIUS accounting server for tracking connected clients"
},
"radiusAccountingServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "Public IP address of the RADIUS accounting server"
},
"port": {
"type": "integer",
"description": "UDP port that the RADIUS Accounting server listens on for access requests"
}
}
},
"description": "List of RADIUS accounting servers to require connecting devices to authenticate against before granting network access"
},
"radiusGroupAttribute": {
"type": "string",
"description": "Acceptable values are `\"\"` for None, or `\"11\"` for Group Policies ACL"
},
"hostMode": {
"type": "string",
"enum": [
"Multi-Auth",
"Multi-Domain",
"Multi-Host",
"Single-Host"
],
"description": "Choose the Host Mode for the access policy."
},
"accessPolicyType": {
"type": "string",
"enum": [
"802.1x",
"Hybrid authentication",
"MAC authentication bypass"
],
"description": "Access Type of the policy. Automatically 'Hybrid authentication' when hostMode is 'Multi-Domain'."
},
"increaseAccessSpeed": {
"type": "boolean",
"description": "Enabling this option will make switches execute 802.1X and MAC-bypass authentication simultaneously so that clients authenticate faster. Only required when accessPolicyType is 'Hybrid Authentication."
},
"guestVlanId": {
"type": "integer",
"description": "ID for the guest VLAN allow unauthorized devices access to limited network resources"
},
"dot1x": {
"type": "object",
"properties": {
"controlDirection": {
"type": "string",
"enum": [
"both",
"inbound"
],
"description": "Supports either 'both' or 'inbound'. Set to 'inbound' to allow unauthorized egress on the switchport. Set to 'both' to control both traffic directions with authorization. Defaults to 'both'"
}
},
"description": "802.1x Settings"
},
"voiceVlanClients": {
"type": "boolean",
"description": "CDP/LLDP capable voice clients will be able to use this VLAN. Automatically true when hostMode is 'Multi-Domain'."
},
"urlRedirectWalledGardenEnabled": {
"type": "boolean",
"description": "Enable to restrict access for clients to a response_objectific set of IP addresses or hostnames prior to authentication"
},
"urlRedirectWalledGardenRanges": {
"type": "array",
"items": {
"type": "string"
},
"description": "IP address ranges, in CIDR notation, to restrict access for clients to a specific set of IP addresses or hostnames prior to authentication"
},
"counts": {
"type": "object",
"properties": {
"ports": {
"type": "object",
"properties": {
"withThisPolicy": {
"type": "integer",
"description": "Number of ports in the network with this policy. For template networks, this is the number of template ports (not child ports) with this policy."
}
},
"description": "Counts associated with ports"
}
},
"description": "Counts associated with the access policy"
}
}
},
"examples": {
"application/json": {
"name": "Access policy #1",
"radiusServers": [
{
"host": "1.2.3.4",
"port": 22
}
],
"radius": {
"criticalAuth": {
"dataVlanId": 100,
"voiceVlanId": 100,
"suspendPortBounce": true
},
"failedAuthVlanId": 100,
"reAuthenticationInterval": 120
},
"guestPortBouncing": false,
"radiusTestingEnabled": false,
"radiusCoaSupportEnabled": false,
"radiusAccountingEnabled": true,
"radiusAccountingServers": [
{
"host": "1.2.3.4",
"port": 22
}
],
"radiusGroupAttribute": "11",
"hostMode": "Single-Host",
"accessPolicyType": "Hybrid authentication",
"increaseAccessSpeed": false,
"guestVlanId": 100,
"dot1x": {
"controlDirection": "inbound"
},
"voiceVlanClients": true,
"urlRedirectWalledGardenEnabled": true,
"urlRedirectWalledGardenRanges": [
"192.168.1.0/24"
],
"counts": {
"ports": {
"withThisPolicy": 12
}
}
}
}
}
},
"summary": "Update an access policy for a switch network",
"tags": [
"switch",
"configure",
"accessPolicies"
]
},
"delete": {
"description": "Delete an access policy for a switch network",
"operationId": "deleteNetworkSwitchAccessPolicy",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "accessPolicyNumber",
"in": "path",
"description": "Access policy number",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete an access policy for a switch network",
"tags": [
"switch",
"configure",
"accessPolicies"
]
}
},
"/networks/{networkId}/switch/alternateManagementInterface": {
"get": {
"description": "Return the switch alternate management interface for the network",
"operationId": "getNetworkSwitchAlternateManagementInterface",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Boolean value to enable or disable AMI configuration. If enabled, VLAN and protocols must be set"
},
"vlanId": {
"type": "integer",
"description": "Alternate management VLAN, must be between 1 and 4094"
},
"protocols": {
"type": "array",
"items": {
"type": "string"
},
"description": "Can be one or more of the following values: 'radius', 'snmp' or 'syslog'"
},
"switches": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Switch serial number"
},
"alternateManagementIp": {
"type": "string",
"description": "Switch alternative management IP. To remove a prior IP setting, provide an empty string"
},
"subnetMask": {
"type": "string",
"description": "Switch subnet mask must be in IP format. Only and must be specified for Polaris switches"
},
"gateway": {
"type": "string",
"description": "Switch gateway must be in IP format. Only and must be specified for Polaris switches"
}
}
},
"description": "Array of switch serial number and IP assignment. If parameter is present, it cannot have empty body. Note: switches parameter is not applicable for template networks, in other words, do not put 'switches' in the body when updating template networks. Also, an empty 'switches' array will remove all previous assignments"
}
}
},
"examples": {
"application/json": {
"enabled": true,
"vlanId": 100,
"protocols": [
"radius",
"snmp",
"syslog"
],
"switches": [
{
"serial": "Q234-ABCD-5678",
"alternateManagementIp": "1.2.3.4",
"subnetMask": "255.255.255.0",
"gateway": "1.2.3.5"
}
]
}
}
}
},
"summary": "Return the switch alternate management interface for the network",
"tags": [
"switch",
"configure",
"alternateManagementInterface"
]
},
"put": {
"description": "Update the switch alternate management interface for the network",
"operationId": "updateNetworkSwitchAlternateManagementInterface",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSwitchAlternateManagementInterface",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Boolean value to enable or disable AMI configuration. If enabled, VLAN and protocols must be set"
},
"vlanId": {
"type": "integer",
"description": "Alternate management VLAN, must be between 1 and 4094"
},
"protocols": {
"type": "array",
"items": {
"type": "string",
"enum": [
"radius",
"snmp",
"syslog"
]
},
"description": "Can be one or more of the following values: 'radius', 'snmp' or 'syslog'"
},
"switches": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Switch serial number"
},
"alternateManagementIp": {
"type": "string",
"description": "Switch alternative management IP. To remove a prior IP setting, provide an empty string"
},
"subnetMask": {
"type": "string",
"description": "Switch subnet mask must be in IP format. Only and must be specified for Polaris switches"
},
"gateway": {
"type": "string",
"description": "Switch gateway must be in IP format. Only and must be specified for Polaris switches"
}
},
"required": [
"serial",
"alternateManagementIp"
]
},
"description": "Array of switch serial number and IP assignment. If parameter is present, it cannot have empty body. Note: switches parameter is not applicable for template networks, in other words, do not put 'switches' in the body when updating template networks. Also, an empty 'switches' array will remove all previous assignments"
}
},
"example": {
"enabled": true,
"vlanId": 100,
"protocols": [
"radius",
"snmp",
"syslog"
],
"switches": [
{
"serial": "Q234-ABCD-5678",
"alternateManagementIp": "1.2.3.4",
"subnetMask": "255.255.255.0",
"gateway": "1.2.3.5"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Boolean value to enable or disable AMI configuration. If enabled, VLAN and protocols must be set"
},
"vlanId": {
"type": "integer",
"description": "Alternate management VLAN, must be between 1 and 4094"
},
"protocols": {
"type": "array",
"items": {
"type": "string"
},
"description": "Can be one or more of the following values: 'radius', 'snmp' or 'syslog'"
},
"switches": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Switch serial number"
},
"alternateManagementIp": {
"type": "string",
"description": "Switch alternative management IP. To remove a prior IP setting, provide an empty string"
},
"subnetMask": {
"type": "string",
"description": "Switch subnet mask must be in IP format. Only and must be specified for Polaris switches"
},
"gateway": {
"type": "string",
"description": "Switch gateway must be in IP format. Only and must be specified for Polaris switches"
}
}
},
"description": "Array of switch serial number and IP assignment. If parameter is present, it cannot have empty body. Note: switches parameter is not applicable for template networks, in other words, do not put 'switches' in the body when updating template networks. Also, an empty 'switches' array will remove all previous assignments"
}
}
},
"examples": {
"application/json": {
"enabled": true,
"vlanId": 100,
"protocols": [
"radius",
"snmp",
"syslog"
],
"switches": [
{
"serial": "Q234-ABCD-5678",
"alternateManagementIp": "1.2.3.4",
"subnetMask": "255.255.255.0",
"gateway": "1.2.3.5"
}
]
}
}
}
},
"summary": "Update the switch alternate management interface for the network",
"tags": [
"switch",
"configure",
"alternateManagementInterface"
]
}
},
"/networks/{networkId}/switch/dhcp/v4/servers/seen": {
"get": {
"description": "Return the network's DHCPv4 servers seen within the selected timeframe (default 1 day)",
"operationId": "getNetworkSwitchDhcpV4ServersSeen",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameter t0. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "Mac address of the server."
},
"vlan": {
"type": "integer",
"description": "Vlan id of the server."
},
"clientId": {
"type": "string",
"description": "Client id of the server if available."
},
"isAllowed": {
"type": "boolean",
"description": "Whether the server is allowed or blocked. Always true for configured servers."
},
"lastSeenAt": {
"type": "string",
"format": "date-time",
"description": "Last time the server was seen."
},
"seenBy": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial."
},
"name": {
"type": "string",
"description": "Device name."
},
"url": {
"type": "string",
"description": "Url link to device."
}
}
},
"description": "Devices that saw the server."
},
"type": {
"type": "string",
"enum": [
"device",
"discovered",
"stack"
],
"description": "server type. Can be a 'device', 'stack', or 'discovered' (i.e client)."
},
"device": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial."
},
"name": {
"type": "string",
"description": "Device name."
},
"url": {
"type": "string",
"description": "Url link to device."
},
"interface": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Interface name."
},
"url": {
"type": "string",
"description": "Url link to interface."
}
},
"description": "Interface attributes of the server. Only for configured servers."
}
},
"description": "Attributes of the server when it's a device."
},
"ipv4": {
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "IPv4 address of the server."
},
"subnet": {
"type": "string",
"description": "Subnet of the server."
},
"gateway": {
"type": "string",
"description": "IPv4 gateway address of the server."
}
},
"description": "IPv4 attributes of the server."
},
"isConfigured": {
"type": "boolean",
"description": "Whether the server is configured."
},
"lastAck": {
"type": "object",
"properties": {
"ts": {
"type": "string",
"format": "date-time",
"description": "Last time the server was acked."
},
"ipv4": {
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "IPv4 address of the last ack."
}
},
"description": "IPv4 attributes of the last ack."
}
},
"description": "Attributes of the server's last ack."
},
"lastPacket": {
"type": "object",
"properties": {
"source": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "Source mac address of the packet."
},
"ipv4": {
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "Source ipv4 address of the packet."
}
},
"description": "Source ipv4 attributes of the packet."
},
"port": {
"type": "integer",
"description": "Source port of the packet."
}
},
"description": "Source of the packet."
},
"destination": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "Destination mac address of the packet."
},
"ipv4": {
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "Destination ipv4 address of the packet."
}
},
"description": "Destination ipv4 attributes of the packet."
},
"port": {
"type": "integer",
"description": "Destination port of the packet."
}
},
"description": "Destination of the packet."
},
"type": {
"type": "string",
"description": "Packet type."
},
"ethernet": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Ethernet type of the packet."
}
},
"description": "Additional ethernet attributes of the packet."
},
"ip": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "IP ID of the packet."
},
"version": {
"type": "integer",
"enum": [
4,
6
],
"description": "IP version of the packet."
},
"length": {
"type": "integer",
"description": "IP length of the packet."
},
"headerLength": {
"type": "integer",
"description": "IP header length of the packet."
},
"protocol": {
"type": "integer",
"description": "IP protocol number of the packet."
},
"ttl": {
"type": "integer",
"description": "Time to live of the packet."
},
"dscp": {
"type": "object",
"properties": {
"tag": {
"type": "integer",
"description": "DSCP tag number of the packet."
},
"ecn": {
"type": "integer",
"description": "ECN number of the packet."
}
},
"description": "DSCP attributes of the packet."
}
},
"description": "Additional IP attributes of the packet."
},
"udp": {
"type": "object",
"properties": {
"length": {
"type": "integer",
"description": "UDP length of the packet."
},
"checksum": {
"type": "string",
"description": "UDP checksum of the packet."
}
},
"description": "UDP attributes of the packet."
},
"fields": {
"type": "object",
"properties": {
"op": {
"type": "integer",
"description": "Operation code of the packet."
},
"htype": {
"type": "integer",
"description": "Hardware type code of the packet."
},
"hlen": {
"type": "integer",
"description": "Hardware length of the packet."
},
"hops": {
"type": "integer",
"description": "Number of hops the packet took."
},
"xid": {
"type": "string",
"description": "Transaction id of the packet."
},
"secs": {
"type": "integer",
"description": "Number of seconds since receiving the packet."
},
"flags": {
"type": "string",
"description": "Packet flags."
},
"ciaddr": {
"type": "string",
"description": "Client IP address of the packet."
},
"yiaddr": {
"type": "string",
"description": "Assigned IP address of the packet."
},
"siaddr": {
"type": "string",
"description": "Server IP address of the packet."
},
"giaddr": {
"type": "string",
"description": "Gateway IP address of the packet."
},
"chaddr": {
"type": "string",
"description": "Client hardware address of the packet."
},
"sname": {
"type": "string",
"description": "Server identifier address of the packet."
},
"magicCookie": {
"type": "string",
"description": "Magic cookie of the packet."
},
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Option name."
},
"value": {
"type": "string",
"description": "Option value."
}
}
},
"description": "Additional DHCP options of the packet."
}
},
"description": "DHCP-specific fields of the packet."
}
},
"description": "Last packet the server received."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"mac": "00:11:22:33:44:55",
"vlan": 100,
"clientId": "k74272e",
"isAllowed": true,
"lastSeenAt": "2018-02-11T00:00:00.090210Z",
"seenBy": [
{
"serial": "Q234-ABCD-0001",
"name": "My switch2",
"url": "https://n1.meraki.com//n//manage/nodes/new_list/0000000000001"
}
],
"type": "device",
"device": {
"serial": "Q234-ABCD-0002",
"name": "My AP",
"url": "https://n1.meraki.com//n//manage/nodes/new_list/000000000000",
"interface": {
"name": "My L3 Interface",
"url": "https://n1.meraki.com//n//manage/configure/switch_l3/l3_interface/00000"
}
},
"ipv4": {
"address": "10.0.0.0/24",
"subnet": "192.168.1.0/24",
"gateway": "1.2.3.5"
},
"isConfigured": true,
"lastAck": {
"ts": "2018-02-11T00:00:00.090210Z",
"ipv4": {
"address": "123.123.123.1"
}
},
"lastPacket": {
"source": {
"mac": "00:11:22:33:44:55",
"ipv4": {
"address": "1.2.3.4"
},
"port": 443
},
"destination": {
"mac": "22:33:44:55:66:77",
"ipv4": {
"address": "123.123.123.1"
},
"port": 444
},
"type": "ACK",
"ethernet": {
"type": "0x1212"
},
"ip": {
"id": "0x1313",
"version": 4,
"length": 24929,
"headerLength": 1,
"protocol": 1,
"ttl": 50,
"dscp": {
"tag": 24,
"ecn": 1
}
},
"udp": {
"length": 24929,
"checksum": "0x1414"
},
"fields": {
"op": 1,
"htype": 1,
"hlen": 6,
"hops": 0,
"xid": "0x11111111",
"secs": 1526087474,
"flags": "0x0000",
"ciaddr": "1.2.3.4",
"yiaddr": "123.123.123.1",
"siaddr": "1.2.3.4",
"giaddr": "1.2.3.5",
"chaddr": "abcdefghijkl",
"sname": "1.2.3.4",
"magicCookie": "0x22222222",
"options": [
{
"name": "Lease time",
"value": "86400 seconds"
}
]
}
}
}
]
}
}
},
"summary": "Return the network's DHCPv4 servers seen within the selected timeframe (default 1 day)",
"tags": [
"switch",
"configure",
"dhcp",
"v4",
"servers",
"seen"
]
}
},
"/networks/{networkId}/switch/dhcpServerPolicy": {
"get": {
"description": "Return the DHCP server settings. Blocked/allowed servers are only applied when default policy is allow/block, respectively",
"operationId": "getNetworkSwitchDhcpServerPolicy",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"alerts": {
"type": "object",
"properties": {
"email": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "When enabled, send an email if a new DHCP server is seen. Default value is false."
}
},
"description": "Alert settings for DHCP servers"
}
},
"description": "Email alert settings for DHCP servers"
},
"defaultPolicy": {
"type": "string",
"enum": [
"allow",
"block"
],
"description": "'allow' or 'block' new DHCP servers. Default value is 'allow'."
},
"blockedServers": {
"type": "array",
"items": {
"type": "string"
},
"description": "List the MAC addresses of DHCP servers to block on the network when defaultPolicy is set\n to allow.An empty array will clear the entries."
},
"allowedServers": {
"type": "array",
"items": {
"type": "string"
},
"description": "List the MAC addresses of DHCP servers to permit on the network when defaultPolicy is set\n to block.An empty array will clear the entries."
},
"arpInspection": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable or disable Dynamic ARP Inspection on the network. Default value is false."
},
"unsupportedModels": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of switch models that does not support dynamic ARP inspection"
}
},
"description": "Dynamic ARP Inspection settings"
}
}
},
"examples": {
"application/json": {
"alerts": {
"email": {
"enabled": true
}
},
"defaultPolicy": "block",
"blockedServers": [
"00:50:56:00:00:03",
"00:50:56:00:00:04"
],
"allowedServers": [
"00:50:56:00:00:01",
"00:50:56:00:00:02"
],
"arpInspection": {
"enabled": true,
"unsupportedModels": [
"MS120-8",
"MS125-24"
]
}
}
}
}
},
"summary": "Return the DHCP server settings",
"tags": [
"switch",
"configure",
"dhcpServerPolicy"
]
},
"put": {
"description": "Update the DHCP server settings. Blocked/allowed servers are only applied when default policy is allow/block, respectively",
"operationId": "updateNetworkSwitchDhcpServerPolicy",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSwitchDhcpServerPolicy",
"in": "body",
"schema": {
"type": "object",
"properties": {
"alerts": {
"type": "object",
"properties": {
"email": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "When enabled, send an email if a new DHCP server is seen. Default value is false."
}
},
"description": "Email alert settings for DHCP servers"
}
},
"description": "Alert settings for DHCP servers"
},
"defaultPolicy": {
"type": "string",
"enum": [
"allow",
"block"
],
"description": "'allow' or 'block' new DHCP servers. Default value is 'allow'."
},
"allowedServers": {
"type": "array",
"items": {
"type": "string"
},
"description": "List the MAC addresses of DHCP servers to permit on the network when defaultPolicy is set to block. An empty array will clear the entries."
},
"blockedServers": {
"type": "array",
"items": {
"type": "string"
},
"description": "List the MAC addresses of DHCP servers to block on the network when defaultPolicy is set to allow. An empty array will clear the entries."
},
"arpInspection": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable or disable Dynamic ARP Inspection on the network. Default value is false."
}
},
"description": "Dynamic ARP Inspection settings"
}
},
"example": {
"alerts": {
"email": {
"enabled": true
}
},
"defaultPolicy": "block",
"blockedServers": [
"00:50:56:00:00:03",
"00:50:56:00:00:04"
],
"allowedServers": [
"00:50:56:00:00:01",
"00:50:56:00:00:02"
],
"arpInspection": {
"enabled": true
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"alerts": {
"type": "object",
"properties": {
"email": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "When enabled, send an email if a new DHCP server is seen. Default value is false."
}
},
"description": "Alert settings for DHCP servers"
}
},
"description": "Email alert settings for DHCP servers"
},
"defaultPolicy": {
"type": "string",
"enum": [
"allow",
"block"
],
"description": "'allow' or 'block' new DHCP servers. Default value is 'allow'."
},
"blockedServers": {
"type": "array",
"items": {
"type": "string"
},
"description": "List the MAC addresses of DHCP servers to block on the network when defaultPolicy is set\n to allow.An empty array will clear the entries."
},
"allowedServers": {
"type": "array",
"items": {
"type": "string"
},
"description": "List the MAC addresses of DHCP servers to permit on the network when defaultPolicy is set\n to block.An empty array will clear the entries."
},
"arpInspection": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable or disable Dynamic ARP Inspection on the network. Default value is false."
},
"unsupportedModels": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of switch models that does not support dynamic ARP inspection"
}
},
"description": "Dynamic ARP Inspection settings"
}
}
},
"examples": {
"application/json": {
"alerts": {
"email": {
"enabled": true
}
},
"defaultPolicy": "block",
"blockedServers": [
"00:50:56:00:00:03",
"00:50:56:00:00:04"
],
"allowedServers": [
"00:50:56:00:00:01",
"00:50:56:00:00:02"
],
"arpInspection": {
"enabled": true,
"unsupportedModels": [
"MS120-8",
"MS125-24"
]
}
}
}
}
},
"summary": "Update the DHCP server settings",
"tags": [
"switch",
"configure",
"dhcpServerPolicy"
]
}
},
"/networks/{networkId}/switch/dhcpServerPolicy/arpInspection/trustedServers": {
"get": {
"description": "Return the list of servers trusted by Dynamic ARP Inspection on this network. These are also known as allow listed snoop entries",
"operationId": "getNetworkSwitchDhcpServerPolicyArpInspectionTrustedServers",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"trustedServerId": {
"type": "string",
"description": "ID of the trusted server."
},
"mac": {
"type": "string",
"description": "Mac address of the trusted server."
},
"vlan": {
"type": "integer",
"description": "Vlan ID of the trusted server."
},
"ipv4": {
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "IPv4 address of the trusted server."
}
},
"description": "IPv4 attributes of the trusted server."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"trustedServerId": "123",
"mac": "00:11:22:33:44:55",
"vlan": 100,
"ipv4": {
"address": "1.2.3.4"
}
}
]
}
}
},
"summary": "Return the list of servers trusted by Dynamic ARP Inspection on this network",
"tags": [
"switch",
"configure",
"dhcpServerPolicy",
"arpInspection",
"trustedServers"
]
},
"post": {
"description": "Add a server to be trusted by Dynamic ARP Inspection on this network",
"operationId": "createNetworkSwitchDhcpServerPolicyArpInspectionTrustedServer",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkSwitchDhcpServerPolicyArpInspectionTrustedServer",
"in": "body",
"schema": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "The mac address of the trusted server being added"
},
"vlan": {
"type": "integer",
"description": "The VLAN of the trusted server being added. It must be between 1 and 4094"
},
"ipv4": {
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "The IPv4 address of the trusted server being added"
}
},
"description": "The IPv4 attributes of the trusted server being added"
}
},
"example": {
"mac": "00:11:22:33:44:55",
"vlan": 100,
"ipv4": {
"address": "1.2.3.4"
}
},
"required": [
"mac",
"vlan",
"ipv4"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"trustedServerId": {
"type": "string",
"description": "ID of the trusted server."
},
"mac": {
"type": "string",
"description": "Mac address of the trusted server."
},
"vlan": {
"type": "integer",
"description": "Vlan ID of the trusted server."
},
"ipv4": {
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "IPv4 address of the trusted server."
}
},
"description": "IPv4 attributes of the trusted server."
}
}
},
"examples": {
"application/json": {
"trustedServerId": "123",
"mac": "00:11:22:33:44:55",
"vlan": 100,
"ipv4": {
"address": "1.2.3.4"
}
}
}
}
},
"summary": "Add a server to be trusted by Dynamic ARP Inspection on this network",
"tags": [
"switch",
"configure",
"dhcpServerPolicy",
"arpInspection",
"trustedServers"
]
}
},
"/networks/{networkId}/switch/dhcpServerPolicy/arpInspection/trustedServers/{trustedServerId}": {
"put": {
"description": "Update a server that is trusted by Dynamic ARP Inspection on this network",
"operationId": "updateNetworkSwitchDhcpServerPolicyArpInspectionTrustedServer",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "trustedServerId",
"in": "path",
"description": "Trusted server ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSwitchDhcpServerPolicyArpInspectionTrustedServer",
"in": "body",
"schema": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "The updated mac address of the trusted server"
},
"vlan": {
"type": "integer",
"description": "The updated VLAN of the trusted server. It must be between 1 and 4094"
},
"ipv4": {
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "The updated IPv4 address of the trusted server"
}
},
"description": "The updated IPv4 attributes of the trusted server"
}
},
"example": {
"mac": "00:11:22:33:44:55",
"vlan": 100,
"ipv4": {
"address": "1.2.3.4"
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"trustedServerId": {
"type": "string",
"description": "ID of the trusted server."
},
"mac": {
"type": "string",
"description": "Mac address of the trusted server."
},
"vlan": {
"type": "integer",
"description": "Vlan ID of the trusted server."
},
"ipv4": {
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "IPv4 address of the trusted server."
}
},
"description": "IPv4 attributes of the trusted server."
}
}
},
"examples": {
"application/json": {
"trustedServerId": "123",
"mac": "00:11:22:33:44:55",
"vlan": 100,
"ipv4": {
"address": "1.2.3.4"
}
}
}
}
},
"summary": "Update a server that is trusted by Dynamic ARP Inspection on this network",
"tags": [
"switch",
"configure",
"dhcpServerPolicy",
"arpInspection",
"trustedServers"
]
},
"delete": {
"description": "Remove a server from being trusted by Dynamic ARP Inspection on this network",
"operationId": "deleteNetworkSwitchDhcpServerPolicyArpInspectionTrustedServer",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "trustedServerId",
"in": "path",
"description": "Trusted server ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Remove a server from being trusted by Dynamic ARP Inspection on this network",
"tags": [
"switch",
"configure",
"dhcpServerPolicy",
"arpInspection",
"trustedServers"
]
}
},
"/networks/{networkId}/switch/dhcpServerPolicy/arpInspection/warnings/byDevice": {
"get": {
"description": "Return the devices that have a Dynamic ARP Inspection warning and their warnings",
"operationId": "getNetworkSwitchDhcpServerPolicyArpInspectionWarningsByDevice",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Switch serial."
},
"name": {
"type": "string",
"description": "Switch name."
},
"url": {
"type": "string",
"description": "Url link to switch."
},
"supportsInspection": {
"type": "boolean",
"description": "Whether this switch supports Dynamic ARP Inspection."
},
"hasTrustedPort": {
"type": "boolean",
"description": "Whether this switch has a trusted DAI port. Always false if supportsInspection is false."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"serial": "Q234-ABCD-0001",
"name": "My switch",
"url": "https://n1.meraki.com//n//manage/nodes/new_list/000000000000",
"supportsInspection": false,
"hasTrustedPort": false
}
]
}
}
},
"summary": "Return the devices that have a Dynamic ARP Inspection warning and their warnings",
"tags": [
"switch",
"configure",
"dhcpServerPolicy",
"arpInspection",
"warnings",
"byDevice"
]
}
},
"/networks/{networkId}/switch/dscpToCosMappings": {
"get": {
"description": "Return the DSCP to CoS mappings",
"operationId": "getNetworkSwitchDscpToCosMappings",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"mappings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"dscp": {
"type": "integer",
"description": "The Differentiated Services Code Point (DSCP) tag in the IP header that will be mapped to a particular Class-of-Service (CoS) queue. Value can be in the range of 0 to 63 inclusive."
},
"cos": {
"type": "integer",
"description": "The actual layer-2 CoS queue the DSCP value is mapped to. These are not bits set on outgoing frames. Value can be in the range of 0 to 5 inclusive."
},
"title": {
"type": "string",
"description": "Label for the mapping (optional)."
}
}
},
"description": "An array of DSCP to CoS mappings. An empty array will reset the mappings to default."
}
}
},
"examples": {
"application/json": {
"mappings": [
{
"dscp": 1,
"cos": 1,
"title": "Video"
}
]
}
}
}
},
"summary": "Return the DSCP to CoS mappings",
"tags": [
"switch",
"configure",
"dscpToCosMappings"
]
},
"put": {
"description": "Update the DSCP to CoS mappings",
"operationId": "updateNetworkSwitchDscpToCosMappings",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSwitchDscpToCosMappings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"mappings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"dscp": {
"type": "integer",
"description": "The Differentiated Services Code Point (DSCP) tag in the IP header that will be mapped to a particular Class-of-Service (CoS) queue. Value can be in the range of 0 to 63 inclusive."
},
"cos": {
"type": "integer",
"description": "The actual layer-2 CoS queue the DSCP value is mapped to. These are not bits set on outgoing frames. Value can be in the range of 0 to 5 inclusive."
},
"title": {
"type": "string",
"description": "Label for the mapping (optional)."
}
},
"required": [
"dscp",
"cos"
]
},
"description": "An array of DSCP to CoS mappings. An empty array will reset the mappings to default."
}
},
"example": {
"mappings": [
{
"dscp": 1,
"cos": 1,
"title": "Video"
}
]
},
"required": [
"mappings"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"mappings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"dscp": {
"type": "integer",
"description": "The Differentiated Services Code Point (DSCP) tag in the IP header that will be mapped to a particular Class-of-Service (CoS) queue. Value can be in the range of 0 to 63 inclusive."
},
"cos": {
"type": "integer",
"description": "The actual layer-2 CoS queue the DSCP value is mapped to. These are not bits set on outgoing frames. Value can be in the range of 0 to 5 inclusive."
},
"title": {
"type": "string",
"description": "Label for the mapping (optional)."
}
}
},
"description": "An array of DSCP to CoS mappings. An empty array will reset the mappings to default."
}
}
},
"examples": {
"application/json": {
"mappings": [
{
"dscp": 1,
"cos": 1,
"title": "Video"
}
]
}
}
}
},
"summary": "Update the DSCP to CoS mappings",
"tags": [
"switch",
"configure",
"dscpToCosMappings"
]
}
},
"/networks/{networkId}/switch/linkAggregations": {
"get": {
"description": "List link aggregation groups",
"operationId": "getNetworkSwitchLinkAggregations",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID for the link aggregation."
},
"switchPorts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "The serial number for the switch port."
},
"portId": {
"type": "string",
"description": "The ID for the switch port."
}
}
},
"description": "The ID for the link aggregation."
}
}
}
},
"examples": {
"application/json": [
{
"id": "NDU2N18yXzM=",
"switchPorts": [
{
"serial": "Q234-ABCD-0001",
"portId": "1"
}
]
}
]
}
}
},
"summary": "List link aggregation groups",
"tags": [
"switch",
"configure",
"linkAggregations"
]
},
"post": {
"description": "Create a link aggregation group",
"operationId": "createNetworkSwitchLinkAggregation",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkSwitchLinkAggregation",
"in": "body",
"schema": {
"type": "object",
"properties": {
"switchPorts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Serial number of the switch."
},
"portId": {
"type": "string",
"description": "Port identifier of switch port. For modules, the identifier is \"SlotNumber_ModuleType_PortNumber\" (Ex: \"1_8X10G_1\"), otherwise it is just the port number (Ex: \"8\")."
}
},
"required": [
"serial",
"portId"
]
},
"description": "Array of switch or stack ports for creating aggregation group. Minimum 2 and maximum 8 ports are supported."
},
"switchProfilePorts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"profile": {
"type": "string",
"description": "Profile identifier."
},
"portId": {
"type": "string",
"description": "Port identifier of switch port. For modules, the identifier is \"SlotNumber_ModuleType_PortNumber\" (Ex: \"1_8X10G_1\"), otherwise it is just the port number (Ex: \"8\")."
}
},
"required": [
"profile",
"portId"
]
},
"description": "Array of switch profile ports for creating aggregation group. Minimum 2 and maximum 8 ports are supported."
}
},
"example": {
"switchPorts": [
{
"serial": "Q234-ABCD-0001",
"portId": "1"
}
],
"switchProfilePorts": [
{
"profile": "1234",
"portId": "2"
}
]
}
}
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID for the link aggregation."
},
"switchPorts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "The serial number for the switch port."
},
"portId": {
"type": "string",
"description": "The ID for the switch port."
}
}
},
"description": "The ID for the link aggregation."
}
}
},
"examples": {
"application/json": {
"id": "NDU2N18yXzM=",
"switchPorts": [
{
"serial": "Q234-ABCD-0001",
"portId": "1"
}
]
}
}
}
},
"summary": "Create a link aggregation group",
"tags": [
"switch",
"configure",
"linkAggregations"
]
}
},
"/networks/{networkId}/switch/linkAggregations/{linkAggregationId}": {
"put": {
"description": "Update a link aggregation group",
"operationId": "updateNetworkSwitchLinkAggregation",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "linkAggregationId",
"in": "path",
"description": "Link aggregation ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSwitchLinkAggregation",
"in": "body",
"schema": {
"type": "object",
"properties": {
"switchPorts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Serial number of the switch."
},
"portId": {
"type": "string",
"description": "Port identifier of switch port. For modules, the identifier is \"SlotNumber_ModuleType_PortNumber\" (Ex: \"1_8X10G_1\"), otherwise it is just the port number (Ex: \"8\")."
}
},
"required": [
"serial",
"portId"
]
},
"description": "Array of switch or stack ports for updating aggregation group. Minimum 2 and maximum 8 ports are supported."
},
"switchProfilePorts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"profile": {
"type": "string",
"description": "Profile identifier."
},
"portId": {
"type": "string",
"description": "Port identifier of switch port. For modules, the identifier is \"SlotNumber_ModuleType_PortNumber\" (Ex: \"1_8X10G_1\"), otherwise it is just the port number (Ex: \"8\")."
}
},
"required": [
"profile",
"portId"
]
},
"description": "Array of switch profile ports for updating aggregation group. Minimum 2 and maximum 8 ports are supported."
}
},
"example": {
"switchPorts": [
{
"serial": "Q234-ABCD-0001",
"portId": "1"
}
],
"switchProfilePorts": [
{
"profile": "1234",
"portId": "2"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID for the link aggregation."
},
"switchPorts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "The serial number for the switch port."
},
"portId": {
"type": "string",
"description": "The ID for the switch port."
}
}
},
"description": "The ID for the link aggregation."
}
}
},
"examples": {
"application/json": {
"id": "NDU2N18yXzM=",
"switchPorts": [
{
"serial": "Q234-ABCD-0001",
"portId": "1"
}
]
}
}
}
},
"summary": "Update a link aggregation group",
"tags": [
"switch",
"configure",
"linkAggregations"
]
},
"delete": {
"description": "Split a link aggregation group into separate ports",
"operationId": "deleteNetworkSwitchLinkAggregation",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "linkAggregationId",
"in": "path",
"description": "Link aggregation ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Split a link aggregation group into separate ports",
"tags": [
"switch",
"configure",
"linkAggregations"
]
}
},
"/networks/{networkId}/switch/mtu": {
"get": {
"description": "Return the MTU configuration",
"operationId": "getNetworkSwitchMtu",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"defaultMtuSize": {
"type": "integer",
"description": "MTU size for the entire network. Default value is 9578."
},
"overrides": {
"type": "array",
"items": {
"type": "object",
"properties": {
"switches": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of switch serials. Applicable only for switch network."
},
"switchProfiles": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of switch template IDs. Applicable only for template network."
},
"mtuSize": {
"type": "integer",
"description": "MTU size for the switches or switch templates."
}
},
"required": [
"mtuSize"
]
},
"description": "Override MTU size for individual switches or switch templates.\n An empty array will clear overrides."
}
}
},
"examples": {
"application/json": {
"defaultMtuSize": 9578,
"overrides": [
{
"switches": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
],
"switchProfiles": [
"1284392014819",
"2983092129865"
],
"mtuSize": 1500
}
]
}
}
}
},
"summary": "Return the MTU configuration",
"tags": [
"switch",
"configure",
"mtu"
]
},
"put": {
"description": "Update the MTU configuration",
"operationId": "updateNetworkSwitchMtu",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSwitchMtu",
"in": "body",
"schema": {
"type": "object",
"properties": {
"defaultMtuSize": {
"type": "integer",
"description": "MTU size for the entire network. Default value is 9578."
},
"overrides": {
"type": "array",
"items": {
"type": "object",
"properties": {
"switches": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of switch serials. Applicable only for switch network."
},
"switchProfiles": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of switch template IDs. Applicable only for template network."
},
"mtuSize": {
"type": "integer",
"description": "MTU size for the switches or switch templates."
}
},
"required": [
"mtuSize"
]
},
"description": "Override MTU size for individual switches or switch templates. An empty array will clear overrides."
}
},
"example": {
"defaultMtuSize": 9578,
"overrides": [
{
"switches": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
],
"switchProfiles": [
"1284392014819",
"2983092129865"
],
"mtuSize": 1500
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"defaultMtuSize": {
"type": "integer",
"description": "MTU size for the entire network. Default value is 9578."
},
"overrides": {
"type": "array",
"items": {
"type": "object",
"properties": {
"switches": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of switch serials. Applicable only for switch network."
},
"switchProfiles": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of switch template IDs. Applicable only for template network."
},
"mtuSize": {
"type": "integer",
"description": "MTU size for the switches or switch templates."
}
},
"required": [
"mtuSize"
]
},
"description": "Override MTU size for individual switches or switch templates.\n An empty array will clear overrides."
}
}
},
"examples": {
"application/json": {
"defaultMtuSize": 9578,
"overrides": [
{
"switches": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
],
"switchProfiles": [
"1284392014819",
"2983092129865"
],
"mtuSize": 1500
}
]
}
}
}
},
"summary": "Update the MTU configuration",
"tags": [
"switch",
"configure",
"mtu"
]
}
},
"/networks/{networkId}/switch/portSchedules": {
"get": {
"description": "List switch port schedules",
"operationId": "getNetworkSwitchPortSchedules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Switch port schedule ID"
},
"networkId": {
"type": "string",
"description": "Network ID"
},
"name": {
"type": "string",
"description": "Switch port schedule name"
},
"portSchedule": {
"type": "object",
"properties": {
"monday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active or inactive"
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
}
},
"description": "Monday schedule"
},
"tuesday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active or inactive"
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
}
},
"description": "Tuesday schedule"
},
"wednesday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active or inactive"
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
}
},
"description": "Wednesday schedule"
},
"thursday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active or inactive"
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
}
},
"description": "Thursday schedule"
},
"friday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active or inactive"
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
}
},
"description": "Friday schedule"
},
"saturday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active or inactive"
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
}
},
"description": "Saturday schedule"
},
"sunday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active or inactive"
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
}
},
"description": "Sunday schedule"
}
},
"description": "Port schedule"
}
}
}
},
"examples": {
"application/json": [
{
"id": "1234",
"networkId": "N_24329156",
"name": "Weekdays schedule",
"portSchedule": {
"monday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"tuesday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"wednesday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"thursday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"friday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"saturday": {
"active": false,
"from": "0:00",
"to": "24:00"
},
"sunday": {
"active": false,
"from": "0:00",
"to": "24:00"
}
}
}
]
}
}
},
"summary": "List switch port schedules",
"tags": [
"switch",
"configure",
"portSchedules"
]
},
"post": {
"description": "Add a switch port schedule",
"operationId": "createNetworkSwitchPortSchedule",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkSwitchPortSchedule",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name for your port schedule. Required"
},
"portSchedule": {
"type": "object",
"properties": {
"monday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Monday."
},
"tuesday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Tuesday."
},
"wednesday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Wednesday."
},
"thursday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Thursday."
},
"friday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Friday."
},
"saturday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Saturday."
},
"sunday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Sunday."
}
},
"description": " The schedule for switch port scheduling. Schedules are applied to days of the week.\n When it's empty, default schedule with all days of a week are configured.\n Any unspecified day in the schedule is added as a default schedule configuration of the day.\n"
}
},
"example": {
"name": "Weekdays schedule",
"portSchedule": {
"monday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"tuesday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"wednesday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"thursday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"friday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"saturday": {
"active": false,
"from": "0:00",
"to": "24:00"
},
"sunday": {
"active": false,
"from": "0:00",
"to": "24:00"
}
}
},
"required": [
"name"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Switch port schedule ID"
},
"networkId": {
"type": "string",
"description": "Network ID"
},
"name": {
"type": "string",
"description": "Switch port schedule name"
},
"portSchedule": {
"type": "object",
"properties": {
"monday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active or inactive"
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
}
},
"description": "Monday schedule"
},
"tuesday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active or inactive"
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
}
},
"description": "Tuesday schedule"
},
"wednesday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active or inactive"
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
}
},
"description": "Wednesday schedule"
},
"thursday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active or inactive"
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
}
},
"description": "Thursday schedule"
},
"friday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active or inactive"
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
}
},
"description": "Friday schedule"
},
"saturday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active or inactive"
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
}
},
"description": "Saturday schedule"
},
"sunday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active or inactive"
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
}
},
"description": "Sunday schedule"
}
},
"description": "Port schedule"
}
}
},
"examples": {
"application/json": {
"id": "1234",
"networkId": "N_24329156",
"name": "Weekdays schedule",
"portSchedule": {
"monday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"tuesday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"wednesday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"thursday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"friday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"saturday": {
"active": false,
"from": "0:00",
"to": "24:00"
},
"sunday": {
"active": false,
"from": "0:00",
"to": "24:00"
}
}
}
}
}
},
"summary": "Add a switch port schedule",
"tags": [
"switch",
"configure",
"portSchedules"
]
}
},
"/networks/{networkId}/switch/portSchedules/{portScheduleId}": {
"delete": {
"description": "Delete a switch port schedule",
"operationId": "deleteNetworkSwitchPortSchedule",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "portScheduleId",
"in": "path",
"description": "Port schedule ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a switch port schedule",
"tags": [
"switch",
"configure",
"portSchedules"
]
},
"put": {
"description": "Update a switch port schedule",
"operationId": "updateNetworkSwitchPortSchedule",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "portScheduleId",
"in": "path",
"description": "Port schedule ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSwitchPortSchedule",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name for your port schedule."
},
"portSchedule": {
"type": "object",
"properties": {
"monday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Monday."
},
"tuesday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Tuesday."
},
"wednesday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Wednesday."
},
"thursday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Thursday."
},
"friday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Friday."
},
"saturday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Saturday."
},
"sunday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active (true) or inactive (false) during the time specified between 'from' and 'to'. Defaults to true."
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be less than the time specified in 'to'. Defaults to '00:00'. Only 30 minute increments are allowed."
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'. Must be greater than the time specified in 'from'. Defaults to '24:00'. Only 30 minute increments are allowed."
}
},
"description": "The schedule object for Sunday."
}
},
"description": " The schedule for switch port scheduling. Schedules are applied to days of the week.\n When it's empty, default schedule with all days of a week are configured.\n Any unspecified day in the schedule is added as a default schedule configuration of the day.\n"
}
},
"example": {
"name": "Weekdays schedule",
"portSchedule": {
"monday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"tuesday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"wednesday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"thursday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"friday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"saturday": {
"active": false,
"from": "0:00",
"to": "24:00"
},
"sunday": {
"active": false,
"from": "0:00",
"to": "24:00"
}
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Switch port schedule ID"
},
"networkId": {
"type": "string",
"description": "Network ID"
},
"name": {
"type": "string",
"description": "Switch port schedule name"
},
"portSchedule": {
"type": "object",
"properties": {
"monday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active or inactive"
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
}
},
"description": "Monday schedule"
},
"tuesday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active or inactive"
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
}
},
"description": "Tuesday schedule"
},
"wednesday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active or inactive"
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
}
},
"description": "Wednesday schedule"
},
"thursday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active or inactive"
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
}
},
"description": "Thursday schedule"
},
"friday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active or inactive"
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
}
},
"description": "Friday schedule"
},
"saturday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active or inactive"
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
}
},
"description": "Saturday schedule"
},
"sunday": {
"type": "object",
"properties": {
"active": {
"type": "boolean",
"description": "Whether the schedule is active or inactive"
},
"from": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
},
"to": {
"type": "string",
"description": "The time, from '00:00' to '24:00'"
}
},
"description": "Sunday schedule"
}
},
"description": "Port schedule"
}
}
},
"examples": {
"application/json": {
"id": "1234",
"networkId": "N_24329156",
"name": "Weekdays schedule",
"portSchedule": {
"monday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"tuesday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"wednesday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"thursday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"friday": {
"active": true,
"from": "9:00",
"to": "17:00"
},
"saturday": {
"active": false,
"from": "0:00",
"to": "24:00"
},
"sunday": {
"active": false,
"from": "0:00",
"to": "24:00"
}
}
}
}
}
},
"summary": "Update a switch port schedule",
"tags": [
"switch",
"configure",
"portSchedules"
]
}
},
"/networks/{networkId}/switch/qosRules": {
"get": {
"description": "List quality of service rules",
"operationId": "getNetworkSwitchQosRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Qos Rule id"
},
"vlan": {
"type": "integer",
"description": "The VLAN of the incoming packet. A null value will match any VLAN."
},
"protocol": {
"type": "string",
"description": "The protocol of the incoming packet. Can be one of \"ANY\", \"TCP\" or \"UDP\". Default value is \"ANY\""
},
"srcPort": {
"type": "integer",
"description": "The source port of the incoming packet. Applicable only if protocol is TCP or UDP."
},
"srcPortRange": {
"type": "string",
"description": "The source port range of the incoming packet. Applicable only if protocol is set to TCP or UDP. Example: 70-80"
},
"dstPort": {
"type": "integer",
"description": "The destination port of the incoming packet. Applicable only if protocol is TCP or UDP."
},
"dstPortRange": {
"type": "string",
"description": "The destination port range of the incoming packet. Applicable only if protocol is set to TCP or UDP. Example: 70-80"
},
"dscp": {
"type": "integer",
"description": "DSCP tag for the incoming packet. Set this to -1 to trust incoming DSCP. Default value is 0"
}
}
}
},
"examples": {
"application/json": [
{
"id": "1284392014819",
"vlan": 100,
"protocol": "TCP",
"srcPort": 2000,
"srcPortRange": "70-80",
"dstPort": 3000,
"dstPortRange": "3000-3100",
"dscp": 0
}
]
}
}
},
"summary": "List quality of service rules",
"tags": [
"switch",
"configure",
"qosRules"
]
},
"post": {
"description": "Add a quality of service rule",
"operationId": "createNetworkSwitchQosRule",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkSwitchQosRule",
"in": "body",
"schema": {
"type": "object",
"properties": {
"vlan": {
"type": "integer",
"description": "The VLAN of the incoming packet. A null value will match any VLAN."
},
"protocol": {
"type": "string",
"enum": [
"ANY",
"TCP",
"UDP"
],
"description": "The protocol of the incoming packet. Default value is \"ANY\""
},
"srcPort": {
"type": "integer",
"description": "The source port of the incoming packet. Applicable only if protocol is TCP or UDP."
},
"srcPortRange": {
"type": "string",
"description": "The source port range of the incoming packet. Applicable only if protocol is set to TCP or UDP."
},
"dstPort": {
"type": "integer",
"description": "The destination port of the incoming packet. Applicable only if protocol is TCP or UDP."
},
"dstPortRange": {
"type": "string",
"description": "The destination port range of the incoming packet. Applicable only if protocol is set to TCP or UDP."
},
"dscp": {
"type": "integer",
"description": "DSCP tag for the incoming packet. Set this to -1 to trust incoming DSCP. Default value is 0"
}
},
"example": {
"vlan": 100,
"protocol": "TCP",
"srcPort": 2000,
"srcPortRange": "70-80",
"dstPort": 3000,
"dstPortRange": "3000-3100",
"dscp": 0
},
"required": [
"vlan"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Qos Rule id"
},
"vlan": {
"type": "integer",
"description": "The VLAN of the incoming packet. A null value will match any VLAN."
},
"protocol": {
"type": "string",
"description": "The protocol of the incoming packet. Can be one of \"ANY\", \"TCP\" or \"UDP\". Default value is \"ANY\""
},
"srcPort": {
"type": "integer",
"description": "The source port of the incoming packet. Applicable only if protocol is TCP or UDP."
},
"srcPortRange": {
"type": "string",
"description": "The source port range of the incoming packet. Applicable only if protocol is set to TCP or UDP. Example: 70-80"
},
"dstPort": {
"type": "integer",
"description": "The destination port of the incoming packet. Applicable only if protocol is TCP or UDP."
},
"dstPortRange": {
"type": "string",
"description": "The destination port range of the incoming packet. Applicable only if protocol is set to TCP or UDP. Example: 70-80"
},
"dscp": {
"type": "integer",
"description": "DSCP tag for the incoming packet. Set this to -1 to trust incoming DSCP. Default value is 0"
}
}
},
"examples": {
"application/json": {
"id": "1284392014819",
"vlan": 100,
"protocol": "TCP",
"srcPort": 2000,
"srcPortRange": "70-80",
"dstPort": 3000,
"dstPortRange": "3000-3100",
"dscp": 0
}
}
}
},
"summary": "Add a quality of service rule",
"tags": [
"switch",
"configure",
"qosRules"
]
}
},
"/networks/{networkId}/switch/qosRules/order": {
"get": {
"description": "Return the quality of service rule IDs by order in which they will be processed by the switch",
"operationId": "getNetworkSwitchQosRulesOrder",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"ruleIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Qos Rule ids"
}
}
},
"examples": {
"application/json": {
"ruleIds": [
"1284392014819",
"2983092129865"
]
}
}
}
},
"summary": "Return the quality of service rule IDs by order in which they will be processed by the switch",
"tags": [
"switch",
"configure",
"qosRules",
"order"
]
},
"put": {
"description": "Update the order in which the rules should be processed by the switch",
"operationId": "updateNetworkSwitchQosRulesOrder",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSwitchQosRulesOrder",
"in": "body",
"schema": {
"type": "object",
"properties": {
"ruleIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of quality of service rule IDs arranged in order in which they should be processed by the switch."
}
},
"example": {
"ruleIds": [
"1284392014819",
"2983092129865"
]
},
"required": [
"ruleIds"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"ruleIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Qos Rule ids"
}
}
},
"examples": {
"application/json": {
"ruleIds": [
"1284392014819",
"2983092129865"
]
}
}
}
},
"summary": "Update the order in which the rules should be processed by the switch",
"tags": [
"switch",
"configure",
"qosRules",
"order"
]
}
},
"/networks/{networkId}/switch/qosRules/{qosRuleId}": {
"get": {
"description": "Return a quality of service rule",
"operationId": "getNetworkSwitchQosRule",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "qosRuleId",
"in": "path",
"description": "Qos rule ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Qos Rule id"
},
"vlan": {
"type": "integer",
"description": "The VLAN of the incoming packet. A null value will match any VLAN."
},
"protocol": {
"type": "string",
"description": "The protocol of the incoming packet. Can be one of \"ANY\", \"TCP\" or \"UDP\". Default value is \"ANY\""
},
"srcPort": {
"type": "integer",
"description": "The source port of the incoming packet. Applicable only if protocol is TCP or UDP."
},
"srcPortRange": {
"type": "string",
"description": "The source port range of the incoming packet. Applicable only if protocol is set to TCP or UDP. Example: 70-80"
},
"dstPort": {
"type": "integer",
"description": "The destination port of the incoming packet. Applicable only if protocol is TCP or UDP."
},
"dstPortRange": {
"type": "string",
"description": "The destination port range of the incoming packet. Applicable only if protocol is set to TCP or UDP. Example: 70-80"
},
"dscp": {
"type": "integer",
"description": "DSCP tag for the incoming packet. Set this to -1 to trust incoming DSCP. Default value is 0"
}
}
},
"examples": {
"application/json": {
"id": "1284392014819",
"vlan": 100,
"protocol": "TCP",
"srcPort": 2000,
"srcPortRange": "70-80",
"dstPort": 3000,
"dstPortRange": "3000-3100",
"dscp": 0
}
}
}
},
"summary": "Return a quality of service rule",
"tags": [
"switch",
"configure",
"qosRules"
]
},
"delete": {
"description": "Delete a quality of service rule",
"operationId": "deleteNetworkSwitchQosRule",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "qosRuleId",
"in": "path",
"description": "Qos rule ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a quality of service rule",
"tags": [
"switch",
"configure",
"qosRules"
]
},
"put": {
"description": "Update a quality of service rule",
"operationId": "updateNetworkSwitchQosRule",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "qosRuleId",
"in": "path",
"description": "Qos rule ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSwitchQosRule",
"in": "body",
"schema": {
"type": "object",
"properties": {
"vlan": {
"type": "integer",
"description": "The VLAN of the incoming packet. A null value will match any VLAN."
},
"protocol": {
"type": "string",
"enum": [
"ANY",
"TCP",
"UDP"
],
"description": "The protocol of the incoming packet. Default value is \"ANY\""
},
"srcPort": {
"type": "integer",
"description": "The source port of the incoming packet. Applicable only if protocol is TCP or UDP."
},
"srcPortRange": {
"type": "string",
"description": "The source port range of the incoming packet. Applicable only if protocol is set to TCP or UDP."
},
"dstPort": {
"type": "integer",
"description": "The destination port of the incoming packet. Applicable only if protocol is TCP or UDP."
},
"dstPortRange": {
"type": "string",
"description": "The destination port range of the incoming packet. Applicable only if protocol is set to TCP or UDP."
},
"dscp": {
"type": "integer",
"description": "DSCP tag that should be assigned to incoming packet. Set this to -1 to trust incoming DSCP. Default value is 0"
}
},
"example": {
"vlan": 100,
"protocol": "TCP",
"srcPort": 2000,
"srcPortRange": "70-80",
"dstPort": 3000,
"dstPortRange": "3000-3100",
"dscp": 0
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Qos Rule id"
},
"vlan": {
"type": "integer",
"description": "The VLAN of the incoming packet. A null value will match any VLAN."
},
"protocol": {
"type": "string",
"description": "The protocol of the incoming packet. Can be one of \"ANY\", \"TCP\" or \"UDP\". Default value is \"ANY\""
},
"srcPort": {
"type": "integer",
"description": "The source port of the incoming packet. Applicable only if protocol is TCP or UDP."
},
"srcPortRange": {
"type": "string",
"description": "The source port range of the incoming packet. Applicable only if protocol is set to TCP or UDP. Example: 70-80"
},
"dstPort": {
"type": "integer",
"description": "The destination port of the incoming packet. Applicable only if protocol is TCP or UDP."
},
"dstPortRange": {
"type": "string",
"description": "The destination port range of the incoming packet. Applicable only if protocol is set to TCP or UDP. Example: 70-80"
},
"dscp": {
"type": "integer",
"description": "DSCP tag for the incoming packet. Set this to -1 to trust incoming DSCP. Default value is 0"
}
}
},
"examples": {
"application/json": {
"id": "1284392014819",
"vlan": 100,
"protocol": "TCP",
"srcPort": 2000,
"srcPortRange": "70-80",
"dstPort": 3000,
"dstPortRange": "3000-3100",
"dscp": 0
}
}
}
},
"summary": "Update a quality of service rule",
"tags": [
"switch",
"configure",
"qosRules"
]
}
},
"/networks/{networkId}/switch/routing/multicast": {
"get": {
"description": "Return multicast settings for a network",
"operationId": "getNetworkSwitchRoutingMulticast",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"defaultSettings": {
"type": "object",
"properties": {
"igmpSnoopingEnabled": {
"type": "boolean",
"description": "IGMP snooping enabled for the entire network"
},
"floodUnknownMulticastTrafficEnabled": {
"type": "boolean",
"description": "Flood unknown multicast traffic enabled for the entire network"
}
},
"description": "Default multicast setting for entire network. IGMP snooping and Flood unknown\n multicast traffic settings are enabled by default."
},
"overrides": {
"type": "array",
"items": {
"type": "object",
"properties": {
"switches": {
"type": "array",
"items": {
"type": "string"
},
"description": "(optional) List of switch serials for non-template network"
},
"stacks": {
"type": "array",
"items": {
"type": "string"
},
"description": "(optional) List of switch stack ids for non-template network"
},
"switchProfiles": {
"type": "array",
"items": {
"type": "string"
},
"description": "(optional) List of switch templates ids for template network"
},
"igmpSnoopingEnabled": {
"type": "boolean",
"description": "IGMP snooping enabled for switches, switch stacks or switch templates"
},
"floodUnknownMulticastTrafficEnabled": {
"type": "boolean",
"description": "Flood unknown multicast traffic enabled for switches, switch stacks or switch templates"
}
}
},
"description": "Array of paired switches/stacks/profiles and corresponding multicast settings.\n An empty array will clear the multicast settings."
}
}
},
"examples": {
"application/json": {
"defaultSettings": {
"igmpSnoopingEnabled": true,
"floodUnknownMulticastTrafficEnabled": true
},
"overrides": [
{
"switches": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
],
"stacks": [
"789102",
"123456",
"129102"
],
"switchProfiles": [
"1234",
"4567"
],
"igmpSnoopingEnabled": true,
"floodUnknownMulticastTrafficEnabled": true
}
]
}
}
}
},
"summary": "Return multicast settings for a network",
"tags": [
"switch",
"configure",
"routing",
"multicast"
]
},
"put": {
"description": "Update multicast settings for a network",
"operationId": "updateNetworkSwitchRoutingMulticast",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSwitchRoutingMulticast",
"in": "body",
"schema": {
"type": "object",
"properties": {
"defaultSettings": {
"type": "object",
"properties": {
"igmpSnoopingEnabled": {
"type": "boolean",
"description": "IGMP snooping setting for entire network"
},
"floodUnknownMulticastTrafficEnabled": {
"type": "boolean",
"description": "Flood unknown multicast traffic setting for entire network"
}
},
"description": "Default multicast setting for entire network. IGMP snooping and Flood unknown multicast traffic settings are enabled by default."
},
"overrides": {
"type": "array",
"items": {
"type": "object",
"properties": {
"switchProfiles": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of switch templates ids for template network"
},
"switches": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of switch serials for non-template network"
},
"stacks": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of switch stack ids for non-template network"
},
"igmpSnoopingEnabled": {
"type": "boolean",
"description": "IGMP snooping setting for switches, switch stacks or switch templates"
},
"floodUnknownMulticastTrafficEnabled": {
"type": "boolean",
"description": "Flood unknown multicast traffic setting for switches, switch stacks or switch templates"
}
},
"required": [
"igmpSnoopingEnabled",
"floodUnknownMulticastTrafficEnabled"
]
},
"description": "Array of paired switches/stacks/profiles and corresponding multicast settings. An empty array will clear the multicast settings."
}
},
"example": {
"defaultSettings": {
"igmpSnoopingEnabled": true,
"floodUnknownMulticastTrafficEnabled": true
},
"overrides": [
{
"switchProfiles": [
"1234",
"4567"
],
"switches": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
],
"stacks": [
"789102",
"123456",
"129102"
],
"igmpSnoopingEnabled": true,
"floodUnknownMulticastTrafficEnabled": true
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"defaultSettings": {
"type": "object",
"properties": {
"igmpSnoopingEnabled": {
"type": "boolean",
"description": "IGMP snooping enabled for the entire network"
},
"floodUnknownMulticastTrafficEnabled": {
"type": "boolean",
"description": "Flood unknown multicast traffic enabled for the entire network"
}
},
"description": "Default multicast setting for entire network. IGMP snooping and Flood unknown\n multicast traffic settings are enabled by default."
},
"overrides": {
"type": "array",
"items": {
"type": "object",
"properties": {
"switches": {
"type": "array",
"items": {
"type": "string"
},
"description": "(optional) List of switch serials for non-template network"
},
"stacks": {
"type": "array",
"items": {
"type": "string"
},
"description": "(optional) List of switch stack ids for non-template network"
},
"switchProfiles": {
"type": "array",
"items": {
"type": "string"
},
"description": "(optional) List of switch templates ids for template network"
},
"igmpSnoopingEnabled": {
"type": "boolean",
"description": "IGMP snooping enabled for switches, switch stacks or switch templates"
},
"floodUnknownMulticastTrafficEnabled": {
"type": "boolean",
"description": "Flood unknown multicast traffic enabled for switches, switch stacks or switch templates"
}
}
},
"description": "Array of paired switches/stacks/profiles and corresponding multicast settings.\n An empty array will clear the multicast settings."
}
}
},
"examples": {
"application/json": {
"defaultSettings": {
"igmpSnoopingEnabled": true,
"floodUnknownMulticastTrafficEnabled": true
},
"overrides": [
{
"switches": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
],
"stacks": [
"789102",
"123456",
"129102"
],
"switchProfiles": [
"1234",
"4567"
],
"igmpSnoopingEnabled": true,
"floodUnknownMulticastTrafficEnabled": true
}
]
}
}
}
},
"summary": "Update multicast settings for a network",
"tags": [
"switch",
"configure",
"routing",
"multicast"
]
}
},
"/networks/{networkId}/switch/routing/multicast/rendezvousPoints": {
"get": {
"description": "List multicast rendezvous points",
"operationId": "getNetworkSwitchRoutingMulticastRendezvousPoints",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"rendezvousPointId": {
"type": "string",
"description": "The id."
},
"serial": {
"type": "string",
"description": "The serial."
},
"interfaceName": {
"type": "string",
"description": "The name of the interface to use."
},
"interfaceIp": {
"type": "string",
"description": "The IP address of the interface to use."
},
"multicastGroup": {
"type": "string",
"description": "'Any', or the IP address of a multicast group."
}
}
}
},
"examples": {
"application/json": [
{
"rendezvousPointId": "1234",
"serial": "Q234-ABCD-5678",
"interfaceName": "l3_interface_0",
"interfaceIp": "192.168.1.2",
"multicastGroup": "Any"
}
]
}
}
},
"summary": "List multicast rendezvous points",
"tags": [
"switch",
"configure",
"routing",
"multicast",
"rendezvousPoints"
]
},
"post": {
"description": "Create a multicast rendezvous point",
"operationId": "createNetworkSwitchRoutingMulticastRendezvousPoint",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkSwitchRoutingMulticastRendezvousPoint",
"in": "body",
"schema": {
"type": "object",
"properties": {
"interfaceIp": {
"type": "string",
"description": "The IP address of the interface where the RP needs to be created."
},
"multicastGroup": {
"type": "string",
"description": "'Any', or the IP address of a multicast group"
}
},
"example": {
"interfaceIp": "192.168.1.2",
"multicastGroup": "Any"
},
"required": [
"interfaceIp",
"multicastGroup"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"rendezvousPointId": {
"type": "string",
"description": "The id."
},
"serial": {
"type": "string",
"description": "The serial."
},
"interfaceName": {
"type": "string",
"description": "The name of the interface to use."
},
"interfaceIp": {
"type": "string",
"description": "The IP address of the interface to use."
},
"multicastGroup": {
"type": "string",
"description": "'Any', or the IP address of a multicast group."
}
}
},
"examples": {
"application/json": {
"rendezvousPointId": "1234",
"serial": "Q234-ABCD-5678",
"interfaceName": "l3_interface_0",
"interfaceIp": "192.168.1.2",
"multicastGroup": "Any"
}
}
}
},
"summary": "Create a multicast rendezvous point",
"tags": [
"switch",
"configure",
"routing",
"multicast",
"rendezvousPoints"
]
}
},
"/networks/{networkId}/switch/routing/multicast/rendezvousPoints/{rendezvousPointId}": {
"get": {
"description": "Return a multicast rendezvous point",
"operationId": "getNetworkSwitchRoutingMulticastRendezvousPoint",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "rendezvousPointId",
"in": "path",
"description": "Rendezvous point ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"rendezvousPointId": {
"type": "string",
"description": "The id."
},
"serial": {
"type": "string",
"description": "The serial."
},
"interfaceName": {
"type": "string",
"description": "The name of the interface to use."
},
"interfaceIp": {
"type": "string",
"description": "The IP address of the interface to use."
},
"multicastGroup": {
"type": "string",
"description": "'Any', or the IP address of a multicast group."
}
}
},
"examples": {
"application/json": {
"rendezvousPointId": "1234",
"serial": "Q234-ABCD-5678",
"interfaceName": "l3_interface_0",
"interfaceIp": "192.168.1.2",
"multicastGroup": "Any"
}
}
}
},
"summary": "Return a multicast rendezvous point",
"tags": [
"switch",
"configure",
"routing",
"multicast",
"rendezvousPoints"
]
},
"delete": {
"description": "Delete a multicast rendezvous point",
"operationId": "deleteNetworkSwitchRoutingMulticastRendezvousPoint",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "rendezvousPointId",
"in": "path",
"description": "Rendezvous point ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a multicast rendezvous point",
"tags": [
"switch",
"configure",
"routing",
"multicast",
"rendezvousPoints"
]
},
"put": {
"description": "Update a multicast rendezvous point",
"operationId": "updateNetworkSwitchRoutingMulticastRendezvousPoint",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "rendezvousPointId",
"in": "path",
"description": "Rendezvous point ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSwitchRoutingMulticastRendezvousPoint",
"in": "body",
"schema": {
"type": "object",
"properties": {
"interfaceIp": {
"type": "string",
"description": "The IP address of the interface where the RP needs to be created."
},
"multicastGroup": {
"type": "string",
"description": "'Any', or the IP address of a multicast group"
}
},
"example": {
"interfaceIp": "192.168.1.2",
"multicastGroup": "Any"
},
"required": [
"interfaceIp",
"multicastGroup"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"rendezvousPointId": {
"type": "string",
"description": "The id."
},
"serial": {
"type": "string",
"description": "The serial."
},
"interfaceName": {
"type": "string",
"description": "The name of the interface to use."
},
"interfaceIp": {
"type": "string",
"description": "The IP address of the interface to use."
},
"multicastGroup": {
"type": "string",
"description": "'Any', or the IP address of a multicast group."
}
}
},
"examples": {
"application/json": {
"rendezvousPointId": "1234",
"serial": "Q234-ABCD-5678",
"interfaceName": "l3_interface_0",
"interfaceIp": "192.168.1.2",
"multicastGroup": "Any"
}
}
}
},
"summary": "Update a multicast rendezvous point",
"tags": [
"switch",
"configure",
"routing",
"multicast",
"rendezvousPoints"
]
}
},
"/networks/{networkId}/switch/routing/ospf": {
"get": {
"description": "Return layer 3 OSPF routing configuration",
"operationId": "getNetworkSwitchRoutingOspf",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Boolean value to enable or disable OSPF routing. OSPF routing is disabled by default."
},
"helloTimerInSeconds": {
"type": "integer",
"description": "Time interval in seconds at which hello packet will be sent to OSPF neighbors to maintain connectivity. Value must be between 1 and 255. Default is 10 seconds."
},
"deadTimerInSeconds": {
"type": "integer",
"description": "Time interval to determine when the peer will be declared inactive/dead. Value must be between 1 and 65535"
},
"areas": {
"type": "array",
"items": {
"type": "object",
"properties": {
"areaId": {
"type": "string",
"description": "OSPF area ID"
},
"areaName": {
"type": "string",
"description": "Name of the OSPF area"
},
"areaType": {
"type": "string",
"enum": [
"normal",
"nssa",
"stub"
],
"description": "Area types in OSPF. Must be one of: [\"normal\", \"stub\", \"nssa\"]"
}
}
},
"description": "OSPF areas"
},
"v3": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Boolean value to enable or disable V3 OSPF routing. OSPF V3 routing is disabled by default."
},
"helloTimerInSeconds": {
"type": "integer",
"description": "Time interval in seconds at which hello packet will be sent to OSPF neighbors to maintain connectivity. Value must be between 1 and 255. Default is 10 seconds."
},
"deadTimerInSeconds": {
"type": "integer",
"description": "Time interval to determine when the peer will be declared inactive/dead. Value must be between 1 and 65535"
},
"areas": {
"type": "array",
"items": {
"type": "object",
"properties": {
"areaId": {
"type": "string",
"description": "OSPF area ID"
},
"areaName": {
"type": "string",
"description": "Name of the OSPF area"
},
"areaType": {
"type": "string",
"enum": [
"normal",
"nssa",
"stub"
],
"description": "Area types in OSPF. Must be one of: [\"normal\", \"stub\", \"nssa\"]"
}
}
},
"description": "OSPF v3 areas"
}
},
"description": "OSPF v3 configuration"
},
"md5AuthenticationEnabled": {
"type": "boolean",
"description": "Boolean value to enable or disable MD5 authentication. MD5 authentication is disabled by default."
},
"md5AuthenticationKey": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "MD5 authentication key index. Key index must be between 1 to 255"
},
"passphrase": {
"type": "string",
"description": "MD5 authentication passphrase"
}
},
"description": "MD5 authentication credentials. This param is only relevant if md5AuthenticationEnabled is true"
}
}
},
"examples": {
"application/json": {
"enabled": true,
"helloTimerInSeconds": 10,
"deadTimerInSeconds": 40,
"areas": [
{
"areaId": "1284392014819",
"areaName": "Backbone",
"areaType": "normal"
}
],
"v3": {
"enabled": true,
"helloTimerInSeconds": 10,
"deadTimerInSeconds": 40,
"areas": [
{
"areaId": "1284392014819",
"areaName": "V3 Backbone",
"areaType": "normal"
}
]
},
"md5AuthenticationEnabled": true,
"md5AuthenticationKey": {
"id": 1234,
"passphrase": "abc1234"
}
}
}
}
},
"summary": "Return layer 3 OSPF routing configuration",
"tags": [
"switch",
"configure",
"routing",
"ospf"
]
},
"put": {
"description": "Update layer 3 OSPF routing configuration",
"operationId": "updateNetworkSwitchRoutingOspf",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSwitchRoutingOspf",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Boolean value to enable or disable OSPF routing. OSPF routing is disabled by default."
},
"helloTimerInSeconds": {
"type": "integer",
"description": "Time interval in seconds at which hello packet will be sent to OSPF neighbors to maintain connectivity. Value must be between 1 and 255. Default is 10 seconds."
},
"deadTimerInSeconds": {
"type": "integer",
"description": "Time interval to determine when the peer will be declared inactive/dead. Value must be between 1 and 65535"
},
"areas": {
"type": "array",
"items": {
"type": "object",
"properties": {
"areaId": {
"type": "string",
"description": "OSPF area ID"
},
"areaName": {
"type": "string",
"description": "Name of the OSPF area"
},
"areaType": {
"type": "string",
"enum": [
"normal",
"nssa",
"stub"
],
"description": "Area types in OSPF. Must be one of: [\"normal\", \"stub\", \"nssa\"]"
}
},
"required": [
"areaId",
"areaName",
"areaType"
]
},
"description": "OSPF areas"
},
"v3": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Boolean value to enable or disable V3 OSPF routing. OSPF V3 routing is disabled by default."
},
"helloTimerInSeconds": {
"type": "integer",
"description": "Time interval in seconds at which hello packet will be sent to OSPF neighbors to maintain connectivity. Value must be between 1 and 255. Default is 10 seconds."
},
"deadTimerInSeconds": {
"type": "integer",
"description": "Time interval to determine when the peer will be declared inactive/dead. Value must be between 1 and 65535"
},
"areas": {
"type": "array",
"items": {
"type": "object",
"properties": {
"areaId": {
"type": "string",
"description": "OSPF area ID"
},
"areaName": {
"type": "string",
"description": "Name of the OSPF area"
},
"areaType": {
"type": "string",
"enum": [
"normal",
"nssa",
"stub"
],
"description": "Area types in OSPF. Must be one of: [\"normal\", \"stub\", \"nssa\"]"
}
},
"required": [
"areaId",
"areaName",
"areaType"
]
},
"description": "OSPF v3 areas"
}
},
"description": "OSPF v3 configuration"
},
"md5AuthenticationEnabled": {
"type": "boolean",
"description": "Boolean value to enable or disable MD5 authentication. MD5 authentication is disabled by default."
},
"md5AuthenticationKey": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "MD5 authentication key index. Key index must be between 1 to 255"
},
"passphrase": {
"type": "string",
"description": "MD5 authentication passphrase"
}
},
"description": "MD5 authentication credentials. This param is only relevant if md5AuthenticationEnabled is true"
}
},
"example": {
"enabled": true,
"helloTimerInSeconds": 10,
"deadTimerInSeconds": 40,
"areas": [
{
"areaId": "1284392014819",
"areaName": "Backbone",
"areaType": "normal"
}
],
"v3": {
"enabled": true,
"helloTimerInSeconds": 10,
"deadTimerInSeconds": 40,
"areas": [
{
"areaId": "1284392014819",
"areaName": "V3 Backbone",
"areaType": "normal"
}
]
},
"md5AuthenticationEnabled": true,
"md5AuthenticationKey": {
"id": 1234,
"passphrase": "abc1234"
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Boolean value to enable or disable OSPF routing. OSPF routing is disabled by default."
},
"helloTimerInSeconds": {
"type": "integer",
"description": "Time interval in seconds at which hello packet will be sent to OSPF neighbors to maintain connectivity. Value must be between 1 and 255. Default is 10 seconds."
},
"deadTimerInSeconds": {
"type": "integer",
"description": "Time interval to determine when the peer will be declared inactive/dead. Value must be between 1 and 65535"
},
"areas": {
"type": "array",
"items": {
"type": "object",
"properties": {
"areaId": {
"type": "string",
"description": "OSPF area ID"
},
"areaName": {
"type": "string",
"description": "Name of the OSPF area"
},
"areaType": {
"type": "string",
"enum": [
"normal",
"nssa",
"stub"
],
"description": "Area types in OSPF. Must be one of: [\"normal\", \"stub\", \"nssa\"]"
}
}
},
"description": "OSPF areas"
},
"v3": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Boolean value to enable or disable V3 OSPF routing. OSPF V3 routing is disabled by default."
},
"helloTimerInSeconds": {
"type": "integer",
"description": "Time interval in seconds at which hello packet will be sent to OSPF neighbors to maintain connectivity. Value must be between 1 and 255. Default is 10 seconds."
},
"deadTimerInSeconds": {
"type": "integer",
"description": "Time interval to determine when the peer will be declared inactive/dead. Value must be between 1 and 65535"
},
"areas": {
"type": "array",
"items": {
"type": "object",
"properties": {
"areaId": {
"type": "string",
"description": "OSPF area ID"
},
"areaName": {
"type": "string",
"description": "Name of the OSPF area"
},
"areaType": {
"type": "string",
"enum": [
"normal",
"nssa",
"stub"
],
"description": "Area types in OSPF. Must be one of: [\"normal\", \"stub\", \"nssa\"]"
}
}
},
"description": "OSPF v3 areas"
}
},
"description": "OSPF v3 configuration"
},
"md5AuthenticationEnabled": {
"type": "boolean",
"description": "Boolean value to enable or disable MD5 authentication. MD5 authentication is disabled by default."
},
"md5AuthenticationKey": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "MD5 authentication key index. Key index must be between 1 to 255"
},
"passphrase": {
"type": "string",
"description": "MD5 authentication passphrase"
}
},
"description": "MD5 authentication credentials. This param is only relevant if md5AuthenticationEnabled is true"
}
}
},
"examples": {
"application/json": {
"enabled": true,
"helloTimerInSeconds": 10,
"deadTimerInSeconds": 40,
"areas": [
{
"areaId": "1284392014819",
"areaName": "Backbone",
"areaType": "normal"
}
],
"v3": {
"enabled": true,
"helloTimerInSeconds": 10,
"deadTimerInSeconds": 40,
"areas": [
{
"areaId": "1284392014819",
"areaName": "V3 Backbone",
"areaType": "normal"
}
]
},
"md5AuthenticationEnabled": true,
"md5AuthenticationKey": {
"id": 1234,
"passphrase": "abc1234"
}
}
}
}
},
"summary": "Update layer 3 OSPF routing configuration",
"tags": [
"switch",
"configure",
"routing",
"ospf"
]
}
},
"/networks/{networkId}/switch/settings": {
"get": {
"description": "Returns the switch network settings",
"operationId": "getNetworkSwitchSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"vlan": {
"type": "integer",
"description": "Management VLAN"
},
"useCombinedPower": {
"type": "boolean",
"description": "The use Combined Power as the default behavior of secondary power supplies on supported devices."
},
"powerExceptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Serial number of the switch"
},
"powerType": {
"type": "string",
"enum": [
"combined",
"redundant",
"useNetworkSetting"
],
"description": "Per switch exception (combined, redundant, useNetworkSetting)"
}
}
},
"description": "Exceptions on a per switch basis to \"useCombinedPower\""
},
"uplinkClientSampling": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable client sampling on uplink"
}
},
"description": "Uplink client sampling"
},
"macBlocklist": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable MAC blocklist for switches in the network"
}
},
"description": "MAC blocklist"
}
}
},
"examples": {
"application/json": {
"vlan": 100,
"useCombinedPower": false,
"powerExceptions": [
{
"serial": "Q234-ABCD-0001",
"powerType": "redundant"
}
],
"uplinkClientSampling": {
"enabled": true
},
"macBlocklist": {
"enabled": true
}
}
}
}
},
"summary": "Returns the switch network settings",
"tags": [
"switch",
"configure",
"settings"
]
},
"put": {
"description": "Update switch network settings",
"operationId": "updateNetworkSwitchSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSwitchSettings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"vlan": {
"type": "integer",
"description": "Management VLAN"
},
"useCombinedPower": {
"type": "boolean",
"description": "The use Combined Power as the default behavior of secondary power supplies on supported devices."
},
"powerExceptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Serial number of the switch"
},
"powerType": {
"type": "string",
"enum": [
"combined",
"redundant",
"useNetworkSetting"
],
"description": "Per switch exception (combined, redundant, useNetworkSetting)"
}
},
"required": [
"serial",
"powerType"
]
},
"description": "Exceptions on a per switch basis to \"useCombinedPower\""
},
"uplinkClientSampling": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable uplink client sampling"
}
},
"description": "Uplink client sampling"
},
"macBlocklist": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable MAC blocklist"
}
},
"description": "MAC blocklist"
}
},
"example": {
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"vlan": {
"type": "integer",
"description": "Management VLAN"
},
"useCombinedPower": {
"type": "boolean",
"description": "The use Combined Power as the default behavior of secondary power supplies on supported devices."
},
"powerExceptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Serial number of the switch"
},
"powerType": {
"type": "string",
"enum": [
"combined",
"redundant",
"useNetworkSetting"
],
"description": "Per switch exception (combined, redundant, useNetworkSetting)"
}
}
},
"description": "Exceptions on a per switch basis to \"useCombinedPower\""
},
"uplinkClientSampling": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable client sampling on uplink"
}
},
"description": "Uplink client sampling"
},
"macBlocklist": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Enable MAC blocklist for switches in the network"
}
},
"description": "MAC blocklist"
}
}
},
"examples": {
"application/json": {
"vlan": 100,
"useCombinedPower": false,
"powerExceptions": [
{
"serial": "Q234-ABCD-0001",
"powerType": "redundant"
}
],
"uplinkClientSampling": {
"enabled": true
},
"macBlocklist": {
"enabled": true
}
}
}
}
},
"summary": "Update switch network settings",
"tags": [
"switch",
"configure",
"settings"
]
}
},
"/networks/{networkId}/switch/stacks": {
"get": {
"description": "List the switch stacks in a network",
"operationId": "getNetworkSwitchStacks",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the Switch stack"
},
"name": {
"type": "string",
"description": "Name of the Switch stack"
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "Serials of the switches in the switch stack"
}
}
}
},
"examples": {
"application/json": [
{
"id": "8473",
"name": "A cool stack",
"serials": [
"QBZY-XWVU-TSRQ",
"QBAB-CDEF-GHIJ"
]
}
]
}
}
},
"summary": "List the switch stacks in a network",
"tags": [
"switch",
"configure",
"stacks"
]
},
"post": {
"description": "Create a switch stack",
"operationId": "createNetworkSwitchStack",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkSwitchStack",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the new stack"
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of switch serials to be added into the new stack"
}
},
"example": {
"name": "A cool stack",
"serials": [
"QBZY-XWVU-TSRQ",
"QBAB-CDEF-GHIJ"
]
},
"required": [
"name",
"serials"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the Switch stack"
},
"name": {
"type": "string",
"description": "Name of the Switch stack"
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "Serials of the switches in the switch stack"
}
}
},
"examples": {
"application/json": {
"id": "8473",
"name": "A cool stack",
"serials": [
"QBZY-XWVU-TSRQ",
"QBAB-CDEF-GHIJ"
]
}
}
}
},
"summary": "Create a switch stack",
"tags": [
"switch",
"configure",
"stacks"
]
}
},
"/networks/{networkId}/switch/stacks/{switchStackId}": {
"get": {
"description": "Show a switch stack",
"operationId": "getNetworkSwitchStack",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "switchStackId",
"in": "path",
"description": "Switch stack ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the Switch stack"
},
"name": {
"type": "string",
"description": "Name of the Switch stack"
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "Serials of the switches in the switch stack"
}
}
},
"examples": {
"application/json": {
"id": "8473",
"name": "A cool stack",
"serials": [
"QBZY-XWVU-TSRQ",
"QBAB-CDEF-GHIJ"
]
}
}
}
},
"summary": "Show a switch stack",
"tags": [
"switch",
"configure",
"stacks"
]
},
"delete": {
"description": "Delete a stack",
"operationId": "deleteNetworkSwitchStack",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "switchStackId",
"in": "path",
"description": "Switch stack ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a stack",
"tags": [
"switch",
"configure",
"stacks"
]
}
},
"/networks/{networkId}/switch/stacks/{switchStackId}/add": {
"post": {
"description": "Add a switch to a stack",
"operationId": "addNetworkSwitchStack",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "switchStackId",
"in": "path",
"description": "Switch stack ID",
"type": "string",
"required": true
},
{
"name": "addNetworkSwitchStack",
"in": "body",
"schema": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "The serial of the switch to be added"
}
},
"example": {
"serial": "QBZY-XWVU-TSRQ"
},
"required": [
"serial"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the Switch stack"
},
"name": {
"type": "string",
"description": "Name of the Switch stack"
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "Serials of the switches in the switch stack"
}
}
},
"examples": {
"application/json": {
"id": "8473",
"name": "A cool stack",
"serials": [
"QBZY-XWVU-TSRQ",
"QBAB-CDEF-GHIJ"
]
}
}
}
},
"summary": "Add a switch to a stack",
"tags": [
"switch",
"configure",
"stacks"
]
}
},
"/networks/{networkId}/switch/stacks/{switchStackId}/remove": {
"post": {
"description": "Remove a switch from a stack",
"operationId": "removeNetworkSwitchStack",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "switchStackId",
"in": "path",
"description": "Switch stack ID",
"type": "string",
"required": true
},
{
"name": "removeNetworkSwitchStack",
"in": "body",
"schema": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "The serial of the switch to be removed"
}
},
"example": {
"serial": "QBZY-XWVU-TSRQ"
},
"required": [
"serial"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the Switch stack"
},
"name": {
"type": "string",
"description": "Name of the Switch stack"
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "Serials of the switches in the switch stack"
}
}
},
"examples": {
"application/json": {
"id": "8473",
"name": "A cool stack",
"serials": [
"QBZY-XWVU-TSRQ",
"QBAB-CDEF-GHIJ"
]
}
}
}
},
"summary": "Remove a switch from a stack",
"tags": [
"switch",
"configure",
"stacks"
]
}
},
"/networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces": {
"get": {
"description": "List layer 3 interfaces for a switch stack",
"operationId": "getNetworkSwitchStackRoutingInterfaces",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "switchStackId",
"in": "path",
"description": "Switch stack ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"interfaceId": {
"type": "string",
"description": "The id"
},
"name": {
"type": "string",
"description": "The name"
},
"subnet": {
"type": "string",
"description": "IPv4 subnet"
},
"interfaceIp": {
"type": "string",
"description": "IPv4 address"
},
"multicastRouting": {
"type": "string",
"description": "Multicast routing status"
},
"vlanId": {
"type": "integer",
"description": "VLAN id"
},
"ospfSettings": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv4 area"
}
},
"description": "IPv4 OSPF Settings"
},
"ospfV3": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv6 area"
}
},
"description": "IPv6 OSPF Settings"
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"description": "Assignment mode"
},
"address": {
"type": "string",
"description": "IPv6 address"
},
"prefix": {
"type": "string",
"description": "IPv6 subnet"
},
"gateway": {
"type": "string",
"description": "IPv6 gateway"
}
},
"description": "IPv6 addressing"
},
"defaultGateway": {
"type": "string",
"description": "IPv4 default gateway"
}
}
}
},
"examples": {
"application/json": [
{
"interfaceId": "1234",
"name": "L3 interface",
"subnet": "192.168.1.0/24",
"interfaceIp": "192.168.1.2",
"multicastRouting": "disabled",
"vlanId": 100,
"ospfSettings": {
"area": "0",
"cost": 1,
"isPassiveEnabled": true
},
"ospfV3": {
"area": "1",
"cost": 2,
"isPassiveEnabled": true
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3:4::1",
"prefix": "1:2:3:4::/48",
"gateway": "1:2:3:4::2"
},
"defaultGateway": "192.168.1.1"
}
]
}
}
},
"summary": "List layer 3 interfaces for a switch stack",
"tags": [
"switch",
"configure",
"stacks",
"routing",
"interfaces"
]
},
"post": {
"description": "Create a layer 3 interface for a switch stack",
"operationId": "createNetworkSwitchStackRoutingInterface",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "switchStackId",
"in": "path",
"description": "Switch stack ID",
"type": "string",
"required": true
},
{
"name": "createNetworkSwitchStackRoutingInterface",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A friendly name or description for the interface or VLAN."
},
"subnet": {
"type": "string",
"description": "The network that this routed interface is on, in CIDR notation (ex. 10.1.1.0/24)."
},
"interfaceIp": {
"type": "string",
"description": "The IP address this switch stack will use for layer 3 routing on this VLAN or subnet. This cannot be the same as the switch's management IP."
},
"multicastRouting": {
"type": "string",
"enum": [
"IGMP snooping querier",
"disabled",
"enabled"
],
"description": "Enable multicast support if, multicast routing between VLANs is required. Options are, 'disabled', 'enabled' or 'IGMP snooping querier'. Default is 'disabled'."
},
"vlanId": {
"type": "integer",
"description": "The VLAN this routed interface is on. VLAN must be between 1 and 4094."
},
"defaultGateway": {
"type": "string",
"description": "The next hop for any traffic that isn't going to a directly connected subnet or over a static route. This IP address must exist in a subnet with a routed interface."
},
"ospfSettings": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "The OSPF area to which this interface should belong. Can be either 'disabled' or the identifier of an existing OSPF area. Defaults to 'disabled'."
},
"cost": {
"type": "integer",
"description": "The path cost for this interface. Defaults to 1, but can be increased up to 65535 to give lower priority."
},
"isPassiveEnabled": {
"type": "boolean",
"description": "When enabled, OSPF will not run on the interface, but the subnet will still be advertised."
}
},
"description": "The OSPF routing settings of the interface."
},
"ospfV3": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "The OSPFv3 area to which this interface should belong. Can be either 'disabled' or the identifier of an existing OSPFv3 area. Defaults to 'disabled'."
},
"cost": {
"type": "integer",
"description": "The path cost for this interface. Defaults to 1, but can be increased up to 65535 to give lower priority."
},
"isPassiveEnabled": {
"type": "boolean",
"description": "When enabled, OSPFv3 will not run on the interface, but the subnet will still be advertised."
}
},
"x-release-stage": "beta",
"description": "The OSPFv3 routing settings of the interface."
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"description": "The IPv6 assignment mode for the interface. Can be either 'eui-64' or 'static'."
},
"prefix": {
"type": "string",
"description": "The IPv6 prefix of the interface. Required if IPv6 object is included."
},
"address": {
"type": "string",
"description": "The IPv6 address of the interface. Required if assignmentMode is 'static'. Must not be included if assignmentMode is 'eui-64'."
},
"gateway": {
"type": "string",
"description": "The IPv6 default gateway of the interface. Required if prefix is defined and this is the first interface with IPv6 configured for the stack."
}
},
"description": "The IPv6 settings of the interface."
}
},
"example": {
"name": "L3 interface",
"subnet": "192.168.1.0/24",
"interfaceIp": "192.168.1.2",
"multicastRouting": "disabled",
"vlanId": 100,
"defaultGateway": "192.168.1.1",
"ospfSettings": {
"area": "0",
"cost": 1,
"isPassiveEnabled": true
},
"ospfV3": {
"area": "1",
"cost": 2,
"isPassiveEnabled": true
},
"ipv6": {
"assignmentMode": "static",
"prefix": "1:2:3:4::/48",
"address": "1:2:3:4::1",
"gateway": "1:2:3:4::2"
}
},
"required": [
"name",
"vlanId"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"interfaceId": {
"type": "string",
"description": "The id"
},
"name": {
"type": "string",
"description": "The name"
},
"subnet": {
"type": "string",
"description": "IPv4 subnet"
},
"interfaceIp": {
"type": "string",
"description": "IPv4 address"
},
"multicastRouting": {
"type": "string",
"description": "Multicast routing status"
},
"vlanId": {
"type": "integer",
"description": "VLAN id"
},
"ospfSettings": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv4 area"
}
},
"description": "IPv4 OSPF Settings"
},
"ospfV3": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv6 area"
}
},
"description": "IPv6 OSPF Settings"
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"description": "Assignment mode"
},
"address": {
"type": "string",
"description": "IPv6 address"
},
"prefix": {
"type": "string",
"description": "IPv6 subnet"
},
"gateway": {
"type": "string",
"description": "IPv6 gateway"
}
},
"description": "IPv6 addressing"
},
"defaultGateway": {
"type": "string",
"description": "IPv4 default gateway"
}
}
},
"examples": {
"application/json": {
"interfaceId": "1234",
"name": "L3 interface",
"subnet": "192.168.1.0/24",
"interfaceIp": "192.168.1.2",
"multicastRouting": "disabled",
"vlanId": 100,
"ospfSettings": {
"area": "0",
"cost": 1,
"isPassiveEnabled": true
},
"ospfV3": {
"area": "1",
"cost": 2,
"isPassiveEnabled": true
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3:4::1",
"prefix": "1:2:3:4::/48",
"gateway": "1:2:3:4::2"
},
"defaultGateway": "192.168.1.1"
}
}
}
},
"summary": "Create a layer 3 interface for a switch stack",
"tags": [
"switch",
"configure",
"stacks",
"routing",
"interfaces"
]
}
},
"/networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId}": {
"get": {
"description": "Return a layer 3 interface from a switch stack",
"operationId": "getNetworkSwitchStackRoutingInterface",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "switchStackId",
"in": "path",
"description": "Switch stack ID",
"type": "string",
"required": true
},
{
"name": "interfaceId",
"in": "path",
"description": "Interface ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"interfaceId": {
"type": "string",
"description": "The id"
},
"name": {
"type": "string",
"description": "The name"
},
"subnet": {
"type": "string",
"description": "IPv4 subnet"
},
"interfaceIp": {
"type": "string",
"description": "IPv4 address"
},
"multicastRouting": {
"type": "string",
"description": "Multicast routing status"
},
"vlanId": {
"type": "integer",
"description": "VLAN id"
},
"ospfSettings": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv4 area"
}
},
"description": "IPv4 OSPF Settings"
},
"ospfV3": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv6 area"
}
},
"description": "IPv6 OSPF Settings"
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"description": "Assignment mode"
},
"address": {
"type": "string",
"description": "IPv6 address"
},
"prefix": {
"type": "string",
"description": "IPv6 subnet"
},
"gateway": {
"type": "string",
"description": "IPv6 gateway"
}
},
"description": "IPv6 addressing"
},
"defaultGateway": {
"type": "string",
"description": "IPv4 default gateway"
}
}
},
"examples": {
"application/json": {
"interfaceId": "1234",
"name": "L3 interface",
"subnet": "192.168.1.0/24",
"interfaceIp": "192.168.1.2",
"multicastRouting": "disabled",
"vlanId": 100,
"ospfSettings": {
"area": "0",
"cost": 1,
"isPassiveEnabled": true
},
"ospfV3": {
"area": "1",
"cost": 2,
"isPassiveEnabled": true
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3:4::1",
"prefix": "1:2:3:4::/48",
"gateway": "1:2:3:4::2"
},
"defaultGateway": "192.168.1.1"
}
}
}
},
"summary": "Return a layer 3 interface from a switch stack",
"tags": [
"switch",
"configure",
"stacks",
"routing",
"interfaces"
]
},
"put": {
"description": "Update a layer 3 interface for a switch stack",
"operationId": "updateNetworkSwitchStackRoutingInterface",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "switchStackId",
"in": "path",
"description": "Switch stack ID",
"type": "string",
"required": true
},
{
"name": "interfaceId",
"in": "path",
"description": "Interface ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSwitchStackRoutingInterface",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A friendly name or description for the interface or VLAN."
},
"subnet": {
"type": "string",
"description": "The network that this routed interface is on, in CIDR notation (ex. 10.1.1.0/24)."
},
"interfaceIp": {
"type": "string",
"description": "The IP address this switch stack will use for layer 3 routing on this VLAN or subnet. This cannot be the same as the switch's management IP."
},
"multicastRouting": {
"type": "string",
"enum": [
"IGMP snooping querier",
"disabled",
"enabled"
],
"description": "Enable multicast support if, multicast routing between VLANs is required. Options are, 'disabled', 'enabled' or 'IGMP snooping querier'."
},
"vlanId": {
"type": "integer",
"description": "The VLAN this routed interface is on. VLAN must be between 1 and 4094."
},
"defaultGateway": {
"type": "string",
"description": "The next hop for any traffic that isn't going to a directly connected subnet or over a static route. This IP address must exist in a subnet with a routed interface."
},
"ospfSettings": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "The OSPF area to which this interface should belong. Can be either 'disabled' or the identifier of an existing OSPF area."
},
"cost": {
"type": "integer",
"description": "The path cost for this interface. Defaults to 1, but can be increased up to 65535 to give lower priority."
},
"isPassiveEnabled": {
"type": "boolean",
"description": "When enabled, OSPF will not run on the interface, but the subnet will still be advertised."
}
},
"description": "The OSPF routing settings of the interface."
},
"ospfV3": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "The OSPFv3 area to which this interface should belong. Can be either 'disabled' or the identifier of an existing OSPFv3 area."
},
"cost": {
"type": "integer",
"description": "The path cost for this interface. Defaults to 1, but can be increased up to 65535 to give lower priority."
},
"isPassiveEnabled": {
"type": "boolean",
"description": "When enabled, OSPFv3 will not run on the interface, but the subnet will still be advertised."
}
},
"x-release-stage": "beta",
"description": "The OSPFv3 routing settings of the interface."
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"description": "The IPv6 assignment mode for the interface. Can be either 'eui-64' or 'static'."
},
"prefix": {
"type": "string",
"description": "The IPv6 prefix of the interface. Required if IPv6 object is included and interface does not already have ipv6.prefix configured"
},
"address": {
"type": "string",
"description": "The IPv6 address of the interface. Required if assignmentMode is included and set as 'static'. Must not be included if assignmentMode is 'eui-64'."
},
"gateway": {
"type": "string",
"description": "The IPv6 default gateway of the interface. Required if prefix is defined and this is the first interface with IPv6 configured for the stack."
}
},
"description": "The IPv6 settings of the interface."
}
},
"example": {
"name": "L3 interface",
"subnet": "192.168.1.0/24",
"interfaceIp": "192.168.1.2",
"multicastRouting": "disabled",
"vlanId": 100,
"defaultGateway": "192.168.1.1",
"ospfSettings": {
"area": "0",
"cost": 1,
"isPassiveEnabled": true
},
"ospfV3": {
"area": "1",
"cost": 2,
"isPassiveEnabled": true
},
"ipv6": {
"assignmentMode": "static",
"prefix": "1:2:3:4::/48",
"address": "1:2:3:4::1",
"gateway": "1:2:3:4::2"
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"interfaceId": {
"type": "string",
"description": "The id"
},
"name": {
"type": "string",
"description": "The name"
},
"subnet": {
"type": "string",
"description": "IPv4 subnet"
},
"interfaceIp": {
"type": "string",
"description": "IPv4 address"
},
"multicastRouting": {
"type": "string",
"description": "Multicast routing status"
},
"vlanId": {
"type": "integer",
"description": "VLAN id"
},
"ospfSettings": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv4 area"
}
},
"description": "IPv4 OSPF Settings"
},
"ospfV3": {
"type": "object",
"properties": {
"area": {
"type": "string",
"description": "Area id"
},
"cost": {
"type": "integer",
"description": "OSPF Cost"
},
"isPassiveEnabled": {
"type": "boolean",
"description": "Disable sending Hello packets on this interface's IPv6 area"
}
},
"description": "IPv6 OSPF Settings"
},
"ipv6": {
"type": "object",
"properties": {
"assignmentMode": {
"type": "string",
"description": "Assignment mode"
},
"address": {
"type": "string",
"description": "IPv6 address"
},
"prefix": {
"type": "string",
"description": "IPv6 subnet"
},
"gateway": {
"type": "string",
"description": "IPv6 gateway"
}
},
"description": "IPv6 addressing"
}
}
},
"examples": {
"application/json": {
"interfaceId": "1234",
"name": "L3 interface",
"subnet": "192.168.1.0/24",
"interfaceIp": "192.168.1.2",
"multicastRouting": "disabled",
"vlanId": 100,
"ospfSettings": {
"area": "0",
"cost": 1,
"isPassiveEnabled": true
},
"ospfV3": {
"area": "1",
"cost": 2,
"isPassiveEnabled": true
},
"ipv6": {
"assignmentMode": "static",
"address": "1:2:3:4::1",
"prefix": "1:2:3:4::/48",
"gateway": "1:2:3:4::2"
}
}
}
}
},
"summary": "Update a layer 3 interface for a switch stack",
"tags": [
"switch",
"configure",
"stacks",
"routing",
"interfaces"
]
},
"delete": {
"description": "Delete a layer 3 interface from a switch stack",
"operationId": "deleteNetworkSwitchStackRoutingInterface",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "switchStackId",
"in": "path",
"description": "Switch stack ID",
"type": "string",
"required": true
},
{
"name": "interfaceId",
"in": "path",
"description": "Interface ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a layer 3 interface from a switch stack",
"tags": [
"switch",
"configure",
"stacks",
"routing",
"interfaces"
]
}
},
"/networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId}/dhcp": {
"get": {
"description": "Return a layer 3 interface DHCP configuration for a switch stack",
"operationId": "getNetworkSwitchStackRoutingInterfaceDhcp",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "switchStackId",
"in": "path",
"description": "Switch stack ID",
"type": "string",
"required": true
},
{
"name": "interfaceId",
"in": "path",
"description": "Interface ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"dhcpMode": {
"type": "string",
"description": "The DHCP mode options for the switch stack interface ('dhcpDisabled', 'dhcpRelay' or 'dhcpServer')"
},
"dhcpRelayServerIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "The DHCP relay server IPs to which DHCP packets would get relayed for the switch stack interface"
},
"dhcpLeaseTime": {
"type": "string",
"description": "The DHCP lease time config for the dhcp server running on the switch stack interface ('30 minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1 week')"
},
"dnsNameserversOption": {
"type": "string",
"description": "The DHCP name server option for the dhcp server running on the switch stack interface ('googlePublicDns', 'openDns' or 'custom')"
},
"dnsCustomNameservers": {
"type": "array",
"items": {
"type": "string"
},
"description": "The DHCP name server IPs when DHCP name server option is 'custom'"
},
"bootOptionsEnabled": {
"type": "boolean",
"description": "Enable DHCP boot options to provide PXE boot options configs for the dhcp server running on the switch stack interface"
},
"bootNextServer": {
"type": "string",
"description": "The PXE boot server IP for the DHCP server running on the switch stack interface"
},
"bootFileName": {
"type": "string",
"description": "The PXE boot server file name for the DHCP server running on the switch stack interface"
},
"dhcpOptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "The code for DHCP option which should be from 2 to 254"
},
"type": {
"type": "string",
"description": "The type of the DHCP option which should be one of ('text', 'ip', 'integer' or 'hex')"
},
"value": {
"type": "string",
"description": "The value of the DHCP option"
}
}
},
"description": "Array of DHCP options consisting of code, type and value for the DHCP server running on the switch stack interface"
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "The starting IP address of the reserved IP range"
},
"end": {
"type": "string",
"description": "The ending IP address of the reserved IP range"
},
"comment": {
"type": "string",
"description": "The comment for the reserved IP range"
}
}
},
"description": "Array of DHCP reserved IP assignments for the DHCP server running on the switch stack interface"
},
"fixedIpAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the client which has fixed IP address"
},
"mac": {
"type": "string",
"description": "The MAC address of the client which has fixed IP address"
},
"ip": {
"type": "string",
"description": "The IP address of the client which has fixed IP address assigned to it"
}
}
},
"description": "Array of DHCP reserved IP assignments for the DHCP server running on the switch stack interface"
}
}
},
"examples": {
"application/json": {
"dhcpMode": "dhcpServer",
"dhcpRelayServerIps": [
"1.2.3.4"
],
"dhcpLeaseTime": "1 day",
"dnsNameserversOption": "custom",
"dnsCustomNameservers": [
"8.8.8.8, 8.8.4.4"
],
"bootOptionsEnabled": true,
"bootNextServer": "1.2.3.4",
"bootFileName": "home_boot_file",
"dhcpOptions": [
{
"code": "5",
"type": "text",
"value": "five"
}
],
"reservedIpRanges": [
{
"start": "192.168.1.1",
"end": "192.168.1.10",
"comment": "A reserved IP range"
}
],
"fixedIpAssignments": [
{
"name": "Cisco Meraki valued client",
"mac": "22:33:44:55:66:77",
"ip": "192.168.1.12"
}
]
}
}
}
},
"summary": "Return a layer 3 interface DHCP configuration for a switch stack",
"tags": [
"switch",
"configure",
"stacks",
"routing",
"interfaces",
"dhcp"
]
},
"put": {
"description": "Update a layer 3 interface DHCP configuration for a switch stack",
"operationId": "updateNetworkSwitchStackRoutingInterfaceDhcp",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "switchStackId",
"in": "path",
"description": "Switch stack ID",
"type": "string",
"required": true
},
{
"name": "interfaceId",
"in": "path",
"description": "Interface ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSwitchStackRoutingInterfaceDhcp",
"in": "body",
"schema": {
"type": "object",
"properties": {
"dhcpMode": {
"type": "string",
"enum": [
"dhcpDisabled",
"dhcpRelay",
"dhcpServer"
],
"description": "The DHCP mode options for the switch stack interface\n ('dhcpDisabled', 'dhcpRelay' or 'dhcpServer')"
},
"dhcpRelayServerIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "The DHCP relay server IPs to which DHCP packets would get relayed for the switch stack interface"
},
"dhcpLeaseTime": {
"type": "string",
"enum": [
"1 day",
"1 hour",
"1 week",
"12 hours",
"30 minutes",
"4 hours"
],
"description": "The DHCP lease time config for the dhcp server running on switch stack interface\n ('30 minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1 week')"
},
"dnsNameserversOption": {
"type": "string",
"enum": [
"custom",
"googlePublicDns",
"openDns"
],
"description": "The DHCP name server option for the dhcp server running on the switch stack interface\n ('googlePublicDns', 'openDns' or 'custom')"
},
"dnsCustomNameservers": {
"type": "array",
"items": {
"type": "string"
},
"description": "The DHCP name server IPs when DHCP name server option is '\n custom'"
},
"bootOptionsEnabled": {
"type": "boolean",
"description": "Enable DHCP boot options to provide PXE boot options configs for the dhcp server running on the switch\n stack interface"
},
"bootNextServer": {
"type": "string",
"description": "The PXE boot server IP for the DHCP server running on the switch stack interface"
},
"bootFileName": {
"type": "string",
"description": "The PXE boot server file name for the DHCP server running on the switch stack interface"
},
"dhcpOptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "The code for DHCP option which should be from 2 to 254"
},
"type": {
"type": "string",
"enum": [
"hex",
"integer",
"ip",
"text"
],
"description": "The type of the DHCP option which should be one of\n ('text', 'ip', 'integer' or 'hex')"
},
"value": {
"type": "string",
"description": "The value of the DHCP option"
}
},
"required": [
"code",
"type",
"value"
]
},
"description": "Array of DHCP options consisting of code, type and value for the DHCP server running on the\n switch stack interface"
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "The starting IP address of the reserved IP range"
},
"end": {
"type": "string",
"description": "The ending IP address of the reserved IP range"
},
"comment": {
"type": "string",
"description": "The comment for the reserved IP range"
}
},
"required": [
"start",
"end"
]
},
"description": "Array of DHCP reserved IP assignments for the DHCP server running on the switch stack interface"
},
"fixedIpAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the client which has fixed IP address"
},
"mac": {
"type": "string",
"description": "The MAC address of the client which has fixed IP address"
},
"ip": {
"type": "string",
"description": "The IP address of the client which has fixed IP address assigned to it"
}
},
"required": [
"name",
"mac",
"ip"
]
},
"description": "Array of DHCP fixed IP assignments for the DHCP server running on the switch stack interface"
}
},
"example": {
"dhcpMode": "dhcpServer",
"dhcpRelayServerIps": [
"1.2.3.4"
],
"dhcpLeaseTime": "1 day",
"dnsNameserversOption": "custom",
"dnsCustomNameservers": [
"8.8.8.8, 8.8.4.4"
],
"bootOptionsEnabled": true,
"bootNextServer": "1.2.3.4",
"bootFileName": "home_boot_file",
"dhcpOptions": [
{
"code": "5",
"type": "text",
"value": "five"
}
],
"reservedIpRanges": [
{
"start": "192.168.1.1",
"end": "192.168.1.10",
"comment": "A reserved IP range"
}
],
"fixedIpAssignments": [
{
"name": "Cisco Meraki valued client",
"mac": "22:33:44:55:66:77",
"ip": "192.168.1.12"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"dhcpMode": {
"type": "string",
"description": "The DHCP mode options for the switch stack interface ('dhcpDisabled', 'dhcpRelay' or 'dhcpServer')"
},
"dhcpRelayServerIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "The DHCP relay server IPs to which DHCP packets would get relayed for the switch stack interface"
},
"dhcpLeaseTime": {
"type": "string",
"description": "The DHCP lease time config for the dhcp server running on the switch stack interface ('30 minutes', '1 hour', '4 hours', '12 hours', '1 day' or '1 week')"
},
"dnsNameserversOption": {
"type": "string",
"description": "The DHCP name server option for the dhcp server running on the switch stack interface ('googlePublicDns', 'openDns' or 'custom')"
},
"dnsCustomNameservers": {
"type": "array",
"items": {
"type": "string"
},
"description": "The DHCP name server IPs when DHCP name server option is 'custom'"
},
"bootOptionsEnabled": {
"type": "boolean",
"description": "Enable DHCP boot options to provide PXE boot options configs for the dhcp server running on the switch stack interface"
},
"bootNextServer": {
"type": "string",
"description": "The PXE boot server IP for the DHCP server running on the switch stack interface"
},
"bootFileName": {
"type": "string",
"description": "The PXE boot server file name for the DHCP server running on the switch stack interface"
},
"dhcpOptions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "The code for DHCP option which should be from 2 to 254"
},
"type": {
"type": "string",
"description": "The type of the DHCP option which should be one of ('text', 'ip', 'integer' or 'hex')"
},
"value": {
"type": "string",
"description": "The value of the DHCP option"
}
}
},
"description": "Array of DHCP options consisting of code, type and value for the DHCP server running on the switch stack interface"
},
"reservedIpRanges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "The starting IP address of the reserved IP range"
},
"end": {
"type": "string",
"description": "The ending IP address of the reserved IP range"
},
"comment": {
"type": "string",
"description": "The comment for the reserved IP range"
}
}
},
"description": "Array of DHCP reserved IP assignments for the DHCP server running on the switch stack interface"
},
"fixedIpAssignments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the client which has fixed IP address"
},
"mac": {
"type": "string",
"description": "The MAC address of the client which has fixed IP address"
},
"ip": {
"type": "string",
"description": "The IP address of the client which has fixed IP address assigned to it"
}
}
},
"description": "Array of DHCP reserved IP assignments for the DHCP server running on the switch stack interface"
}
}
},
"examples": {
"application/json": {
"dhcpMode": "dhcpServer",
"dhcpRelayServerIps": [
"1.2.3.4"
],
"dhcpLeaseTime": "1 day",
"dnsNameserversOption": "custom",
"dnsCustomNameservers": [
"8.8.8.8, 8.8.4.4"
],
"bootOptionsEnabled": true,
"bootNextServer": "1.2.3.4",
"bootFileName": "home_boot_file",
"dhcpOptions": [
{
"code": "5",
"type": "text",
"value": "five"
}
],
"reservedIpRanges": [
{
"start": "192.168.1.1",
"end": "192.168.1.10",
"comment": "A reserved IP range"
}
],
"fixedIpAssignments": [
{
"name": "Cisco Meraki valued client",
"mac": "22:33:44:55:66:77",
"ip": "192.168.1.12"
}
]
}
}
}
},
"summary": "Update a layer 3 interface DHCP configuration for a switch stack",
"tags": [
"switch",
"configure",
"stacks",
"routing",
"interfaces",
"dhcp"
]
}
},
"/networks/{networkId}/switch/stacks/{switchStackId}/routing/staticRoutes": {
"get": {
"description": "List layer 3 static routes for a switch stack",
"operationId": "getNetworkSwitchStackRoutingStaticRoutes",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "switchStackId",
"in": "path",
"description": "Switch stack ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"staticRouteId": {
"type": "string",
"description": "The identifier of a layer 3 static route"
},
"name": {
"type": "string",
"description": "The name or description of the layer 3 static route"
},
"subnet": {
"type": "string",
"description": "The IP address of the subnetwork specified in CIDR notation (ex. 1.2.3.0/24)"
},
"nextHopIp": {
"type": "string",
"description": " The IP address of the router to which traffic for this destination network should be sent"
},
"advertiseViaOspfEnabled": {
"type": "boolean",
"description": "Option to advertise static routes via OSPF"
},
"preferOverOspfRoutesEnabled": {
"type": "boolean",
"description": "Option to prefer static routes over OSPF routes"
}
},
"required": [
"subnet",
"nextHopIp"
]
}
},
"examples": {
"application/json": [
{
"staticRouteId": "1234",
"name": "My route",
"subnet": "192.168.1.0/24",
"nextHopIp": "1.2.3.4",
"advertiseViaOspfEnabled": false,
"preferOverOspfRoutesEnabled": false
}
]
}
}
},
"summary": "List layer 3 static routes for a switch stack",
"tags": [
"switch",
"configure",
"stacks",
"routing",
"staticRoutes"
]
},
"post": {
"description": "Create a layer 3 static route for a switch stack",
"operationId": "createNetworkSwitchStackRoutingStaticRoute",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "switchStackId",
"in": "path",
"description": "Switch stack ID",
"type": "string",
"required": true
},
{
"name": "createNetworkSwitchStackRoutingStaticRoute",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name or description for layer 3 static route"
},
"subnet": {
"type": "string",
"description": "The subnet which is routed via this static route and should be specified in CIDR notation (ex. 1.2.3.0/24)"
},
"nextHopIp": {
"type": "string",
"description": "IP address of the next hop device to which the device sends its traffic for the subnet"
},
"advertiseViaOspfEnabled": {
"type": "boolean",
"description": "Option to advertise static route via OSPF"
},
"preferOverOspfRoutesEnabled": {
"type": "boolean",
"description": "Option to prefer static route over OSPF routes"
}
},
"example": {
"name": "My route",
"subnet": "192.168.1.0/24",
"nextHopIp": "1.2.3.4",
"advertiseViaOspfEnabled": false,
"preferOverOspfRoutesEnabled": false
},
"required": [
"subnet",
"nextHopIp"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"staticRouteId": {
"type": "string",
"description": "The identifier of a layer 3 static route"
},
"name": {
"type": "string",
"description": "The name or description of the layer 3 static route"
},
"subnet": {
"type": "string",
"description": "The IP address of the subnetwork specified in CIDR notation (ex. 1.2.3.0/24)"
},
"nextHopIp": {
"type": "string",
"description": " The IP address of the router to which traffic for this destination network should be sent"
},
"advertiseViaOspfEnabled": {
"type": "boolean",
"description": "Option to advertise static routes via OSPF"
},
"preferOverOspfRoutesEnabled": {
"type": "boolean",
"description": "Option to prefer static routes over OSPF routes"
}
},
"required": [
"subnet",
"nextHopIp"
]
},
"examples": {
"application/json": {
"staticRouteId": "1234",
"name": "My route",
"subnet": "192.168.1.0/24",
"nextHopIp": "1.2.3.4",
"advertiseViaOspfEnabled": false,
"preferOverOspfRoutesEnabled": false
}
}
}
},
"summary": "Create a layer 3 static route for a switch stack",
"tags": [
"switch",
"configure",
"stacks",
"routing",
"staticRoutes"
]
}
},
"/networks/{networkId}/switch/stacks/{switchStackId}/routing/staticRoutes/{staticRouteId}": {
"get": {
"description": "Return a layer 3 static route for a switch stack",
"operationId": "getNetworkSwitchStackRoutingStaticRoute",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "switchStackId",
"in": "path",
"description": "Switch stack ID",
"type": "string",
"required": true
},
{
"name": "staticRouteId",
"in": "path",
"description": "Static route ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"staticRouteId": {
"type": "string",
"description": "The identifier of a layer 3 static route"
},
"name": {
"type": "string",
"description": "The name or description of the layer 3 static route"
},
"subnet": {
"type": "string",
"description": "The IP address of the subnetwork specified in CIDR notation (ex. 1.2.3.0/24)"
},
"nextHopIp": {
"type": "string",
"description": " The IP address of the router to which traffic for this destination network should be sent"
},
"advertiseViaOspfEnabled": {
"type": "boolean",
"description": "Option to advertise static routes via OSPF"
},
"preferOverOspfRoutesEnabled": {
"type": "boolean",
"description": "Option to prefer static routes over OSPF routes"
}
},
"required": [
"subnet",
"nextHopIp"
]
},
"examples": {
"application/json": {
"staticRouteId": "1234",
"name": "My route",
"subnet": "192.168.1.0/24",
"nextHopIp": "1.2.3.4",
"advertiseViaOspfEnabled": false,
"preferOverOspfRoutesEnabled": false
}
}
}
},
"summary": "Return a layer 3 static route for a switch stack",
"tags": [
"switch",
"configure",
"stacks",
"routing",
"staticRoutes"
]
},
"put": {
"description": "Update a layer 3 static route for a switch stack",
"operationId": "updateNetworkSwitchStackRoutingStaticRoute",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "switchStackId",
"in": "path",
"description": "Switch stack ID",
"type": "string",
"required": true
},
{
"name": "staticRouteId",
"in": "path",
"description": "Static route ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSwitchStackRoutingStaticRoute",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name or description for layer 3 static route"
},
"subnet": {
"type": "string",
"description": "The subnet which is routed via this static route and should be specified in CIDR notation (ex. 1.2.3.0/24)"
},
"nextHopIp": {
"type": "string",
"description": "IP address of the next hop device to which the device sends its traffic for the subnet"
},
"advertiseViaOspfEnabled": {
"type": "boolean",
"description": "Option to advertise static route via OSPF"
},
"preferOverOspfRoutesEnabled": {
"type": "boolean",
"description": "Option to prefer static route over OSPF routes"
}
},
"example": {
"name": "My route",
"subnet": "192.168.1.0/24",
"nextHopIp": "1.2.3.4",
"advertiseViaOspfEnabled": false,
"preferOverOspfRoutesEnabled": false
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"staticRouteId": {
"type": "string",
"description": "The identifier of a layer 3 static route"
},
"name": {
"type": "string",
"description": "The name or description of the layer 3 static route"
},
"subnet": {
"type": "string",
"description": "The IP address of the subnetwork specified in CIDR notation (ex. 1.2.3.0/24)"
},
"nextHopIp": {
"type": "string",
"description": " The IP address of the router to which traffic for this destination network should be sent"
},
"advertiseViaOspfEnabled": {
"type": "boolean",
"description": "Option to advertise static routes via OSPF"
},
"preferOverOspfRoutesEnabled": {
"type": "boolean",
"description": "Option to prefer static routes over OSPF routes"
}
},
"required": [
"subnet",
"nextHopIp"
]
},
"examples": {
"application/json": {
"staticRouteId": "1234",
"name": "My route",
"subnet": "192.168.1.0/24",
"nextHopIp": "1.2.3.4",
"advertiseViaOspfEnabled": false,
"preferOverOspfRoutesEnabled": false
}
}
}
},
"summary": "Update a layer 3 static route for a switch stack",
"tags": [
"switch",
"configure",
"stacks",
"routing",
"staticRoutes"
]
},
"delete": {
"description": "Delete a layer 3 static route for a switch stack",
"operationId": "deleteNetworkSwitchStackRoutingStaticRoute",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "switchStackId",
"in": "path",
"description": "Switch stack ID",
"type": "string",
"required": true
},
{
"name": "staticRouteId",
"in": "path",
"description": "Static route ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a layer 3 static route for a switch stack",
"tags": [
"switch",
"configure",
"stacks",
"routing",
"staticRoutes"
]
}
},
"/networks/{networkId}/switch/stormControl": {
"get": {
"description": "Return the storm control configuration for a switch network",
"operationId": "getNetworkSwitchStormControl",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"broadcastThreshold": {
"type": "integer",
"description": "Broadcast threshold."
},
"multicastThreshold": {
"type": "integer",
"description": "Multicast threshold."
},
"unknownUnicastThreshold": {
"type": "integer",
"description": "Unknown Unicast threshold."
}
}
},
"examples": {
"application/json": {
"broadcastThreshold": 30,
"multicastThreshold": 30,
"unknownUnicastThreshold": 30
}
}
}
},
"summary": "Return the storm control configuration for a switch network",
"tags": [
"switch",
"configure",
"stormControl"
]
},
"put": {
"description": "Update the storm control configuration for a switch network",
"operationId": "updateNetworkSwitchStormControl",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSwitchStormControl",
"in": "body",
"schema": {
"type": "object",
"properties": {
"broadcastThreshold": {
"type": "integer",
"description": "Percentage (1 to 99) of total available port bandwidth for broadcast traffic type. Default value 100 percent rate is to clear the configuration."
},
"multicastThreshold": {
"type": "integer",
"description": "Percentage (1 to 99) of total available port bandwidth for multicast traffic type. Default value 100 percent rate is to clear the configuration."
},
"unknownUnicastThreshold": {
"type": "integer",
"description": "Percentage (1 to 99) of total available port bandwidth for unknown unicast (dlf-destination lookup failure) traffic type. Default value 100 percent rate is to clear the configuration."
}
},
"example": {
"broadcastThreshold": 30,
"multicastThreshold": 30,
"unknownUnicastThreshold": 30
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"broadcastThreshold": {
"type": "integer",
"description": "Broadcast threshold."
},
"multicastThreshold": {
"type": "integer",
"description": "Multicast threshold."
},
"unknownUnicastThreshold": {
"type": "integer",
"description": "Unknown Unicast threshold."
}
}
},
"examples": {
"application/json": {
"broadcastThreshold": 30,
"multicastThreshold": 30,
"unknownUnicastThreshold": 30
}
}
}
},
"summary": "Update the storm control configuration for a switch network",
"tags": [
"switch",
"configure",
"stormControl"
]
}
},
"/networks/{networkId}/switch/stp": {
"get": {
"description": "Returns STP settings",
"operationId": "getNetworkSwitchStp",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"rstpEnabled": {
"type": "boolean",
"description": "The spanning tree protocol status in network"
},
"stpBridgePriority": {
"type": "array",
"items": {
"type": "object",
"properties": {
"switches": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of switch serial numbers"
},
"stacks": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of stack IDs"
},
"switchProfiles": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of switch template IDs"
},
"stpPriority": {
"type": "integer",
"description": "STP priority for switch, stacks, or switch templates"
}
}
},
"description": "STP bridge priority for switches/stacks or switch templates. An empty array will clear the STP bridge priority settings."
}
}
},
"examples": {
"application/json": {
"rstpEnabled": true,
"stpBridgePriority": [
{
"switches": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
],
"stacks": [
"789102",
"123456",
"129102"
],
"switchProfiles": [
"1098",
"1099",
"1100"
],
"stpPriority": 4096
}
]
}
}
}
},
"summary": "Returns STP settings",
"tags": [
"switch",
"configure",
"stp"
]
},
"put": {
"description": "Updates STP settings",
"operationId": "updateNetworkSwitchStp",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSwitchStp",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rstpEnabled": {
"type": "boolean",
"description": "The spanning tree protocol status in network"
},
"stpBridgePriority": {
"type": "array",
"items": {
"type": "object",
"properties": {
"switchProfiles": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of switch template IDs"
},
"switches": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of switch serial numbers"
},
"stacks": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of stack IDs"
},
"stpPriority": {
"type": "integer",
"description": "STP priority for switch, stacks, or switch templates"
}
},
"required": [
"stpPriority"
]
},
"description": "STP bridge priority for switches/stacks or switch templates. An empty array will clear the STP bridge priority settings."
}
},
"example": {
"rstpEnabled": true,
"stpBridgePriority": [
{
"switchProfiles": [
"1098",
"1099",
"1100"
],
"switches": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
],
"stacks": [
"789102",
"123456",
"129102"
],
"stpPriority": 4096
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"rstpEnabled": {
"type": "boolean",
"description": "The spanning tree protocol status in network"
},
"stpBridgePriority": {
"type": "array",
"items": {
"type": "object",
"properties": {
"switches": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of switch serial numbers"
},
"stacks": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of stack IDs"
},
"switchProfiles": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of switch template IDs"
},
"stpPriority": {
"type": "integer",
"description": "STP priority for switch, stacks, or switch templates"
}
}
},
"description": "STP bridge priority for switches/stacks or switch templates. An empty array will clear the STP bridge priority settings."
}
}
},
"examples": {
"application/json": {
"rstpEnabled": true,
"stpBridgePriority": [
{
"switches": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
],
"stacks": [
"789102",
"123456",
"129102"
],
"switchProfiles": [
"1098",
"1099",
"1100"
],
"stpPriority": 4096
}
]
}
}
}
},
"summary": "Updates STP settings",
"tags": [
"switch",
"configure",
"stp"
]
}
},
"/networks/{networkId}/syslogServers": {
"get": {
"description": "List the syslog servers for a network",
"operationId": "getNetworkSyslogServers",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"servers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "The IP address of the syslog server"
},
"port": {
"type": "integer",
"description": "The port of the syslog server"
},
"roles": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of roles for the syslog server. Options (case-insensitive): 'Wireless event log', 'Appliance event log', 'Switch event log', 'Air Marshal events', 'Flows', 'URLs', 'IDS alerts', 'Security events'"
}
}
},
"description": "List of the syslog servers for this network"
}
}
},
"examples": {
"application/json": {
"servers": [
{
"host": "1.2.3.4",
"port": 443,
"roles": [
"Wireless event log",
"URLs"
]
}
]
}
}
}
},
"summary": "List the syslog servers for a network",
"tags": [
"networks",
"configure",
"syslogServers"
]
},
"put": {
"description": "Update the syslog servers for a network",
"operationId": "updateNetworkSyslogServers",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkSyslogServers",
"in": "body",
"schema": {
"type": "object",
"properties": {
"servers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "The IP address of the syslog server"
},
"port": {
"type": "integer",
"description": "The port of the syslog server"
},
"roles": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of roles for the syslog server. Options (case-insensitive): 'Wireless event log', 'Appliance event log', 'Switch event log', 'Air Marshal events', 'Flows', 'URLs', 'IDS alerts', 'Security events'"
}
},
"required": [
"host",
"port",
"roles"
]
},
"description": "A list of the syslog servers for this network"
}
},
"example": {
"servers": [
{
"host": "1.2.3.4",
"port": 443,
"roles": [
"Wireless event log",
"URLs"
]
}
]
},
"required": [
"servers"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"servers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "The IP address of the syslog server"
},
"port": {
"type": "integer",
"description": "The port of the syslog server"
},
"roles": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of roles for the syslog server. Options (case-insensitive): 'Wireless event log', 'Appliance event log', 'Switch event log', 'Air Marshal events', 'Flows', 'URLs', 'IDS alerts', 'Security events'"
}
}
},
"description": "List of the syslog servers for this network"
}
}
},
"examples": {
"application/json": {
"servers": [
{
"host": "1.2.3.4",
"port": 443,
"roles": [
"Wireless event log",
"URLs"
]
}
]
}
}
}
},
"summary": "Update the syslog servers for a network",
"tags": [
"networks",
"configure",
"syslogServers"
]
}
},
"/networks/{networkId}/topology/linkLayer": {
"get": {
"description": "List the LLDP and CDP information for all discovered devices and connections in a network. At least one MX or MS device must be in the network in order to build the topology.",
"operationId": "getNetworkTopologyLinkLayer",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"nodes": [
{
"derivedId": "ccddeeffgghh",
"mac": "CC:DD:EE:FF:GG:HH",
"type": "discovered",
"root": true,
"discovered": {
"lldp": {
"chassisId": "12345",
"systemName": "Non-Meraki device",
"systemDescription": "Router and Switch Device",
"systemCapabilities": [
"router",
"switch"
],
"managementAddress": "10.130.105.154"
},
"cdp": "null"
}
},
{
"derivedId": "34564",
"mac": "null",
"type": "stack",
"stack": {
"id": 98765,
"name": "Corp Stack",
"members": [
{
"derivedId": "4567",
"mac": "EE:FF:GG:HH:II:JJ",
"type": "device",
"device": {
"serial": "Q2UN-A44e-CU4L",
"name": "Study Switch",
"product": "switch",
"model": "GS110",
"status": "online",
"lastReportedAt": "2021-06-24T10:23:12z",
"clients": {
"counts": {
"total": 8
}
},
"switch": {
"ports": {
"counts": {
"byStatus": {
"active": 11
}
}
}
},
"uplinks": [
{
"vlanId": 0
}
]
}
},
{
"derivedId": "4567",
"mac": "GG:HH:II:JJ:KK:LL",
"type": "device",
"device": {
"serial": "Q2UN-E55e-KO6L",
"name": "Study Switch 2",
"model": "GS110",
"productType": "switch",
"status": "online",
"lastReportedAt": "2021-06-24T10:23:12z",
"clients": {
"counts": {
"total": 8
}
},
"switch": {
"ports": {
"counts": {
"byStatus": {
"active": 11
}
}
}
},
"uplinks": [
{
"vlanId": 0
}
]
}
}
],
"clients": {
"counts": {
"total": 14
}
}
}
},
{
"derivedId": "aabbccddeeff",
"mac": "AA:BB:CC:DD:EE:FF",
"type": "device",
"device": {
"serial": "Q2UN-A44e-CU4L",
"name": "Living Room Gateway",
"model": "GX20",
"productType": "appliance",
"status": "online",
"lastReportedAt": "2021-06-24T10:23:12z",
"uplinks": [
{
"vlanId": 0,
"pppoe": {
"enabled": true
}
}
]
}
}
],
"links": [
{
"ends": [
{
"node": {
"derivedId": "34564",
"type": "stack"
},
"device": {
"serial": "Q2UN-E55e-KO6L",
"name": "Study Switch 2"
},
"discovered": {
"lldp": {
"portId": "Port 20",
"portDescription": "eth0"
},
"cdp": {
"portId": "Port 20",
"nativeVlan": 102
}
}
},
{
"node": {
"derivedId": "ccddeeffgghh",
"type": "discovered"
},
"discovered": {
"lldp": {
"portId": "0010.7fdb.51f7",
"portDescription": "eth1"
},
"cdp": "null"
}
}
],
"lastReportedAt": "2021-06-25T14:56:27z"
}
],
"errors": [
]
}
}
}
},
"summary": "List the LLDP and CDP information for all discovered devices and connections in a network",
"tags": [
"networks",
"monitor",
"topology",
"linkLayer"
]
}
},
"/networks/{networkId}/traffic": {
"get": {
"description": "Return the traffic analysis data for this network. Traffic analysis with hostname visibility must be enabled on the network.",
"operationId": "getNetworkTraffic",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 30 days from today."
},
{
"type": "number",
"format": "float",
"maximum": 2592000,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameter t0. The value must be in seconds and be less than or equal to 30 days."
},
{
"type": "string",
"enum": [
"appliance",
"combined",
"switch",
"wireless"
],
"name": "deviceType",
"in": "query",
"description": "Filter the data by device type: 'combined', 'wireless', 'switch' or 'appliance'. Defaults to 'combined'. When using 'combined', for each rule the data will come from the device type with the most usage."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"application": "Gmail",
"destination": null,
"protocol": "TCP",
"port": 443,
"sent": 138.0,
"recv": 61.0,
"numClients": 7,
"activeTime": 77000,
"flows": 300
}
]
}
}
},
"summary": "Return the traffic analysis data for this network",
"tags": [
"networks",
"monitor",
"traffic"
]
}
},
"/networks/{networkId}/trafficAnalysis": {
"get": {
"description": "Return the traffic analysis settings for a network",
"operationId": "getNetworkTrafficAnalysis",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"basic",
"detailed",
"disabled"
],
"description": " The traffic analysis mode for the network. Can be one of 'disabled' (do not collect traffic types),\n 'basic' (collect generic traffic categories), or 'detailed' (collect destination hostnames).\n"
},
"customPieChartItems": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the custom pie chart item."
},
"type": {
"type": "string",
"enum": [
"host",
"ipRange",
"port"
],
"description": " The signature type for the custom pie chart item. Can be one of 'host', 'port' or 'ipRange'.\n"
},
"value": {
"type": "string",
"description": " The value of the custom pie chart item. Valid syntax depends on the signature type of the chart item\n (see sample request/response for more details).\n"
}
},
"required": [
"name",
"type",
"value"
]
},
"description": "The list of items that make up the custom pie chart for traffic reporting."
}
}
},
"examples": {
"application/json": {
"mode": "disabled",
"customPieChartItems": [
{
"name": "Item from hostname",
"type": "host",
"value": "example.com"
}
]
}
}
}
},
"summary": "Return the traffic analysis settings for a network",
"tags": [
"networks",
"configure",
"trafficAnalysis"
]
},
"put": {
"description": "Update the traffic analysis settings for a network",
"operationId": "updateNetworkTrafficAnalysis",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkTrafficAnalysis",
"in": "body",
"schema": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"basic",
"detailed",
"disabled"
],
"description": " The traffic analysis mode for the network. Can be one of 'disabled' (do not collect traffic types),\n 'basic' (collect generic traffic categories), or 'detailed' (collect destination hostnames).\n"
},
"customPieChartItems": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the custom pie chart item."
},
"type": {
"type": "string",
"enum": [
"host",
"ipRange",
"port"
],
"description": " The signature type for the custom pie chart item. Can be one of 'host', 'port' or 'ipRange'.\n"
},
"value": {
"type": "string",
"description": " The value of the custom pie chart item. Valid syntax depends on the signature type of the chart item\n (see sample request/response for more details).\n"
}
},
"required": [
"name",
"type",
"value"
]
},
"description": "The list of items that make up the custom pie chart for traffic reporting."
}
},
"example": {
"mode": "disabled",
"customPieChartItems": [
{
"name": "Item from hostname",
"type": "host",
"value": "example.com"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"basic",
"detailed",
"disabled"
],
"description": " The traffic analysis mode for the network. Can be one of 'disabled' (do not collect traffic types),\n 'basic' (collect generic traffic categories), or 'detailed' (collect destination hostnames).\n"
},
"customPieChartItems": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the custom pie chart item."
},
"type": {
"type": "string",
"enum": [
"host",
"ipRange",
"port"
],
"description": " The signature type for the custom pie chart item. Can be one of 'host', 'port' or 'ipRange'.\n"
},
"value": {
"type": "string",
"description": " The value of the custom pie chart item. Valid syntax depends on the signature type of the chart item\n (see sample request/response for more details).\n"
}
},
"required": [
"name",
"type",
"value"
]
},
"description": "The list of items that make up the custom pie chart for traffic reporting."
}
}
},
"examples": {
"application/json": {
"mode": "disabled",
"customPieChartItems": [
{
"name": "Item from hostname",
"type": "host",
"value": "example.com"
}
]
}
}
}
},
"summary": "Update the traffic analysis settings for a network",
"tags": [
"networks",
"configure",
"trafficAnalysis"
]
}
},
"/networks/{networkId}/trafficShaping/applicationCategories": {
"get": {
"description": "Returns the application categories for traffic shaping rules. Only applicable on networks with a security applicance.",
"operationId": "getNetworkTrafficShapingApplicationCategories",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"applicationCategories": [
{
"id": "meraki:layer7/category/24",
"name": "Advertising",
"applications": [
{
"id": "meraki:layer7/application/5",
"name": "Advertising.com"
},
{
"id": "meraki:layer7/application/0",
"name": "AppNexus"
},
{
"id": "meraki:layer7/application/1",
"name": "Brightroll"
}
]
}
]
}
}
}
},
"summary": "Returns the application categories for traffic shaping rules",
"tags": [
"networks",
"configure",
"trafficShaping",
"applicationCategories"
]
}
},
"/networks/{networkId}/trafficShaping/dscpTaggingOptions": {
"get": {
"description": "Returns the available DSCP tagging options for your traffic shaping rules.",
"operationId": "getNetworkTrafficShapingDscpTaggingOptions",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"dscpTagValue": 10,
"description": "AF11 - High Throughput, Latency Insensitive, Low Drop"
},
{
"dscpTagValue": 12,
"description": "AF12 - High Throughput, Latency Insensitive, Medium Drop"
},
{
"dscpTagValue": 14,
"description": "AF13 - High Throughput, Latency Insensitive, High Drop"
},
{
"dscpTagValue": 18,
"description": "AF21 - Low Latency Data, Low Drop"
}
]
}
}
},
"summary": "Returns the available DSCP tagging options for your traffic shaping rules.",
"tags": [
"networks",
"configure",
"trafficShaping",
"dscpTaggingOptions"
]
}
},
"/networks/{networkId}/unbind": {
"post": {
"description": "Unbind a network from a template.",
"operationId": "unbindNetwork",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "unbindNetwork",
"in": "body",
"schema": {
"type": "object",
"properties": {
"retainConfigs": {
"type": "boolean",
"description": "Optional boolean to retain all the current configs given by the template."
}
},
"example": {
"retainConfigs": true
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network ID"
},
"organizationId": {
"type": "string",
"description": "Organization ID"
},
"name": {
"type": "string",
"description": "Network name"
},
"productTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of the product types that the network supports"
},
"timeZone": {
"type": "string",
"description": "Timezone of the network"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Network tags"
},
"enrollmentString": {
"type": "string",
"description": "Enrollment string for the network"
},
"url": {
"type": "string",
"description": "URL to the network Dashboard UI"
},
"notes": {
"type": "string",
"description": "Notes for the network"
},
"isBoundToConfigTemplate": {
"type": "boolean",
"description": "If the network is bound to a config template"
}
}
},
"examples": {
"application/json": {
"id": "N_24329156",
"organizationId": "2930418",
"name": "Main Office",
"productTypes": [
"appliance",
"switch",
"wireless"
],
"timeZone": "America/Los_Angeles",
"tags": [
"tag1",
"tag2"
],
"enrollmentString": "my-enrollment-string",
"url": "https://n1.meraki.com//n//manage/nodes/list",
"notes": "Additional description of the network",
"isBoundToConfigTemplate": false
}
}
}
},
"summary": "Unbind a network from a template.",
"tags": [
"networks",
"configure"
]
}
},
"/networks/{networkId}/vlanProfiles": {
"get": {
"description": "List VLAN profiles for a network",
"operationId": "getNetworkVlanProfiles",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"iname": {
"type": "string",
"description": "IName of the VLAN profile"
},
"name": {
"type": "string",
"description": "Name of the profile, string length must be from 1 to 255 characters"
},
"isDefault": {
"type": "boolean",
"description": "Boolean indicating the default VLAN Profile for any device that does not have a profile explicitly assigned"
},
"vlanNames": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the VLAN, string length must be from 1 to 32 characters"
},
"vlanId": {
"type": "string",
"description": "VLAN ID"
},
"adaptivePolicyGroup": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Adaptive Policy Group ID"
},
"name": {
"type": "string",
"description": "Adaptive Policy Group name"
}
},
"description": "Adaptive Policy Group assigned to Vlan ID"
}
}
},
"description": "An array of named VLANs"
},
"vlanGroups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the VLAN, string length must be from 1 to 32 characters"
},
"vlanIds": {
"type": "string",
"description": "Comma-separated VLAN IDs or ID ranges"
}
}
},
"description": "An array of named VLANs"
}
}
}
},
"examples": {
"application/json": [
{
"iname": "Profile1",
"name": "My VLAN profile name",
"isDefault": false,
"vlanNames": [
{
"name": "named-1",
"vlanId": "1",
"adaptivePolicyGroup": {
"id": "791",
"name": "Infrastructure"
}
}
],
"vlanGroups": [
{
"name": "named-group-1",
"vlanIds": "2,5-7"
}
]
}
]
}
}
},
"summary": "List VLAN profiles for a network",
"tags": [
"networks",
"configure",
"vlanProfiles"
]
},
"post": {
"description": "Create a VLAN profile for a network",
"operationId": "createNetworkVlanProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkVlanProfile",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the profile, string length must be from 1 to 255 characters"
},
"vlanNames": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the VLAN, string length must be from 1 to 32 characters"
},
"vlanId": {
"type": "string",
"description": "VLAN ID"
},
"adaptivePolicyGroup": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Adaptive Policy Group ID"
}
},
"description": "Adaptive Policy Group assigned to Vlan ID"
}
},
"required": [
"name",
"vlanId"
]
},
"description": "An array of named VLANs"
},
"vlanGroups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the VLAN, string length must be from 1 to 32 characters"
},
"vlanIds": {
"type": "string",
"description": "Comma-separated VLAN IDs or ID ranges"
}
},
"required": [
"name",
"vlanIds"
]
},
"description": "An array of VLAN groups"
},
"iname": {
"type": "string",
"description": "IName of the profile"
}
},
"example": {
"name": "My VLAN profile name",
"vlanNames": [
{
"name": "named-1",
"vlanId": "1",
"adaptivePolicyGroup": {
"id": "791"
}
}
],
"vlanGroups": [
{
"name": "named-group-1",
"vlanIds": "2,5-7"
}
],
"iname": "Profile1"
},
"required": [
"name",
"vlanNames",
"vlanGroups",
"iname"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"iname": {
"type": "string",
"description": "IName of the VLAN profile"
},
"name": {
"type": "string",
"description": "Name of the profile, string length must be from 1 to 255 characters"
},
"isDefault": {
"type": "boolean",
"description": "Boolean indicating the default VLAN Profile for any device that does not have a profile explicitly assigned"
},
"vlanNames": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the VLAN, string length must be from 1 to 32 characters"
},
"vlanId": {
"type": "string",
"description": "VLAN ID"
},
"adaptivePolicyGroup": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Adaptive Policy Group ID"
},
"name": {
"type": "string",
"description": "Adaptive Policy Group name"
}
},
"description": "Adaptive Policy Group assigned to Vlan ID"
}
}
},
"description": "An array of named VLANs"
},
"vlanGroups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the VLAN, string length must be from 1 to 32 characters"
},
"vlanIds": {
"type": "string",
"description": "Comma-separated VLAN IDs or ID ranges"
}
}
},
"description": "An array of named VLANs"
}
}
},
"examples": {
"application/json": {
"iname": "Profile1",
"name": "My VLAN profile name",
"isDefault": false,
"vlanNames": [
{
"name": "named-1",
"vlanId": "1",
"adaptivePolicyGroup": {
"id": "791",
"name": "Infrastructure"
}
}
],
"vlanGroups": [
{
"name": "named-group-1",
"vlanIds": "2,5-7"
}
]
}
}
}
},
"summary": "Create a VLAN profile for a network",
"tags": [
"networks",
"configure",
"vlanProfiles"
]
}
},
"/networks/{networkId}/vlanProfiles/assignments/byDevice": {
"get": {
"description": "Get the assigned VLAN Profiles for devices in a network",
"operationId": "getNetworkVlanProfilesAssignmentsByDevice",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Optional parameter to filter devices by serials. All devices returned belong to serial numbers that are an exact match."
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"switch",
"wireless"
]
},
"name": "productTypes",
"in": "query",
"description": "Optional parameter to filter devices by product types."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "stackIds",
"in": "query",
"description": "Optional parameter to filter devices by Switch Stack ids."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the Device"
},
"serial": {
"type": "string",
"description": "Serial of the Device"
},
"mac": {
"type": "string",
"description": "MAC address of the device"
},
"productType": {
"type": "string",
"description": "The product type"
},
"vlanProfile": {
"type": "object",
"properties": {
"iname": {
"type": "string",
"description": "IName of the VLAN Profile"
},
"name": {
"type": "string",
"description": "Name of the VLAN Profile"
},
"isDefault": {
"type": "boolean",
"description": "Is this VLAN profile the default for the network?"
}
},
"description": "The VLAN Profile"
},
"stack": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the Switch Stack"
}
},
"description": "The Switch Stack the device belongs to"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"name": "My switch",
"serial": "Q234-ABCD-5678",
"mac": "00:11:22:33:44:55",
"productType": "switch",
"vlanProfile": {
"iname": "Profile1",
"name": "My VLAN Profile",
"isDefault": true
},
"stack": {
"id": "1234"
}
}
]
}
}
},
"summary": "Get the assigned VLAN Profiles for devices in a network",
"tags": [
"networks",
"configure",
"vlanProfiles",
"assignments",
"byDevice"
]
}
},
"/networks/{networkId}/vlanProfiles/assignments/reassign": {
"post": {
"description": "Update the assigned VLAN Profile for devices in a network",
"operationId": "reassignNetworkVlanProfilesAssignments",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "reassignNetworkVlanProfilesAssignments",
"in": "body",
"schema": {
"type": "object",
"properties": {
"vlanProfile": {
"type": "object",
"properties": {
"iname": {
"type": "string",
"description": "IName of the VLAN Profile"
}
},
"description": "The VLAN Profile"
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of Device Serials"
},
"stackIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of Switch Stack IDs"
}
},
"example": {
"vlanProfile": {
"iname": "Profile1"
},
"serials": [
"Q234-ABCD-5678"
],
"stackIds": [
"1234"
]
},
"required": [
"serials",
"stackIds"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"vlanProfile": {
"type": "object",
"properties": {
"iname": {
"type": "string",
"description": "IName of the VLAN Profile"
},
"name": {
"type": "string",
"description": "Name of the VLAN Profile"
}
},
"description": "The VLAN Profile"
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of Device Serials"
},
"stackIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of Switch Stack IDs"
}
}
},
"examples": {
"application/json": {
"vlanProfile": {
"iname": "Profile1",
"name": "My VLAN Profile"
},
"serials": [
"Q234-ABCD-5678"
],
"stackIds": [
"1234"
]
}
}
}
},
"summary": "Update the assigned VLAN Profile for devices in a network",
"tags": [
"networks",
"configure",
"vlanProfiles",
"assignments"
]
}
},
"/networks/{networkId}/vlanProfiles/{iname}": {
"get": {
"description": "Get an existing VLAN profile of a network",
"operationId": "getNetworkVlanProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "iname",
"in": "path",
"description": "Iname",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"iname": {
"type": "string",
"description": "IName of the VLAN profile"
},
"name": {
"type": "string",
"description": "Name of the profile, string length must be from 1 to 255 characters"
},
"isDefault": {
"type": "boolean",
"description": "Boolean indicating the default VLAN Profile for any device that does not have a profile explicitly assigned"
},
"vlanNames": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the VLAN, string length must be from 1 to 32 characters"
},
"vlanId": {
"type": "string",
"description": "VLAN ID"
},
"adaptivePolicyGroup": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Adaptive Policy Group ID"
},
"name": {
"type": "string",
"description": "Adaptive Policy Group name"
}
},
"description": "Adaptive Policy Group assigned to Vlan ID"
}
}
},
"description": "An array of named VLANs"
},
"vlanGroups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the VLAN, string length must be from 1 to 32 characters"
},
"vlanIds": {
"type": "string",
"description": "Comma-separated VLAN IDs or ID ranges"
}
}
},
"description": "An array of named VLANs"
}
}
},
"examples": {
"application/json": {
"iname": "Profile1",
"name": "My VLAN profile name",
"isDefault": false,
"vlanNames": [
{
"name": "named-1",
"vlanId": "1",
"adaptivePolicyGroup": {
"id": "791",
"name": "Infrastructure"
}
}
],
"vlanGroups": [
{
"name": "named-group-1",
"vlanIds": "2,5-7"
}
]
}
}
}
},
"summary": "Get an existing VLAN profile of a network",
"tags": [
"networks",
"configure",
"vlanProfiles"
]
},
"put": {
"description": "Update an existing VLAN profile of a network",
"operationId": "updateNetworkVlanProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "iname",
"in": "path",
"description": "Iname",
"type": "string",
"required": true
},
{
"name": "updateNetworkVlanProfile",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the profile, string length must be from 1 to 255 characters"
},
"vlanNames": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the VLAN, string length must be from 1 to 32 characters"
},
"vlanId": {
"type": "string",
"description": "VLAN ID"
},
"adaptivePolicyGroup": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Adaptive Policy Group ID"
}
},
"description": "Adaptive Policy Group assigned to Vlan ID"
}
},
"required": [
"name",
"vlanId"
]
},
"description": "An array of named VLANs"
},
"vlanGroups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the VLAN, string length must be from 1 to 32 characters"
},
"vlanIds": {
"type": "string",
"description": "Comma-separated VLAN IDs or ID ranges"
}
},
"required": [
"name",
"vlanIds"
]
},
"description": "An array of VLAN groups"
}
},
"example": {
"name": "My VLAN profile name",
"vlanNames": [
{
"name": "named-1",
"vlanId": "1",
"adaptivePolicyGroup": {
"id": "791"
}
}
],
"vlanGroups": [
{
"name": "named-group-1",
"vlanIds": "2,5-7"
}
]
},
"required": [
"name",
"vlanNames",
"vlanGroups"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"iname": {
"type": "string",
"description": "IName of the VLAN profile"
},
"name": {
"type": "string",
"description": "Name of the profile, string length must be from 1 to 255 characters"
},
"isDefault": {
"type": "boolean",
"description": "Boolean indicating the default VLAN Profile for any device that does not have a profile explicitly assigned"
},
"vlanNames": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the VLAN, string length must be from 1 to 32 characters"
},
"vlanId": {
"type": "string",
"description": "VLAN ID"
},
"adaptivePolicyGroup": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Adaptive Policy Group ID"
},
"name": {
"type": "string",
"description": "Adaptive Policy Group name"
}
},
"description": "Adaptive Policy Group assigned to Vlan ID"
}
}
},
"description": "An array of named VLANs"
},
"vlanGroups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the VLAN, string length must be from 1 to 32 characters"
},
"vlanIds": {
"type": "string",
"description": "Comma-separated VLAN IDs or ID ranges"
}
}
},
"description": "An array of named VLANs"
}
}
},
"examples": {
"application/json": {
"iname": "Profile1",
"name": "My VLAN profile name",
"isDefault": false,
"vlanNames": [
{
"name": "named-1",
"vlanId": "1",
"adaptivePolicyGroup": {
"id": "791",
"name": "Infrastructure"
}
}
],
"vlanGroups": [
{
"name": "named-group-1",
"vlanIds": "2,5-7"
}
]
}
}
}
},
"summary": "Update an existing VLAN profile of a network",
"tags": [
"networks",
"configure",
"vlanProfiles"
]
},
"delete": {
"description": "Delete a VLAN profile of a network",
"operationId": "deleteNetworkVlanProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "iname",
"in": "path",
"description": "Iname",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a VLAN profile of a network",
"tags": [
"networks",
"configure",
"vlanProfiles"
]
}
},
"/networks/{networkId}/webhooks/httpServers": {
"get": {
"description": "List the HTTP servers for a network",
"operationId": "getNetworkWebhooksHttpServers",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "byte",
"description": "A Base64 encoded ID."
},
"name": {
"type": "string",
"description": "A name for easy reference to the HTTP server"
},
"url": {
"type": "string",
"description": "The URL of the HTTP server."
},
"networkId": {
"type": "string",
"description": "A Meraki network ID."
},
"payloadTemplate": {
"type": "object",
"properties": {
"payloadTemplateId": {
"type": "string",
"description": "The ID of the payload template."
},
"name": {
"type": "string",
"description": "The name of the payload template."
}
},
"description": "The payload template to use when posting data to the HTTP server."
}
}
}
},
"examples": {
"application/json": [
{
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vbXlfY3VzdG9tX3dlYmhvb2s=",
"name": "Example Webhook Server",
"url": "https://www.example.com/my_custom_webhook",
"networkId": "N_12345678",
"payloadTemplate": {
"payloadTemplateId": "wpt_00001",
"name": "Meraki (included)"
}
}
]
}
}
},
"summary": "List the HTTP servers for a network",
"tags": [
"networks",
"configure",
"webhooks",
"httpServers"
]
},
"post": {
"description": "Add an HTTP server to a network",
"operationId": "createNetworkWebhooksHttpServer",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkWebhooksHttpServer",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A name for easy reference to the HTTP server"
},
"url": {
"type": "string",
"description": "The URL of the HTTP server. Once set, cannot be updated."
},
"sharedSecret": {
"type": "string",
"description": "A shared secret that will be included in POSTs sent to the HTTP server. This secret can be used to verify that the request was sent by Meraki."
},
"payloadTemplate": {
"type": "object",
"properties": {
"payloadTemplateId": {
"type": "string",
"description": "The ID of the payload template. Defaults to 'wpt_00001' for the Meraki template. For Meraki-included templates: for the Webex (included) template use 'wpt_00002'; for the Slack (included) template use 'wpt_00003'; for the Microsoft Teams (included) template use 'wpt_00004'; for the ServiceNow (included) template use 'wpt_00006'"
},
"name": {
"type": "string",
"description": "The name of the payload template."
}
},
"description": "The payload template to use when posting data to the HTTP server."
}
},
"example": {
"name": "Example Webhook Server",
"url": "https://example.com",
"sharedSecret": "shhh",
"payloadTemplate": {
"payloadTemplateId": "wpt_00001",
"name": "Meraki (included)"
}
},
"required": [
"name",
"url"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "byte",
"description": "A Base64 encoded ID."
},
"name": {
"type": "string",
"description": "A name for easy reference to the HTTP server"
},
"url": {
"type": "string",
"description": "The URL of the HTTP server."
},
"networkId": {
"type": "string",
"description": "A Meraki network ID."
},
"payloadTemplate": {
"type": "object",
"properties": {
"payloadTemplateId": {
"type": "string",
"description": "The ID of the payload template."
},
"name": {
"type": "string",
"description": "The name of the payload template."
}
},
"description": "The payload template to use when posting data to the HTTP server."
}
}
},
"examples": {
"application/json": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vbXlfY3VzdG9tX3dlYmhvb2s=",
"name": "Example Webhook Server",
"url": "https://www.example.com/my_custom_webhook",
"networkId": "N_12345678",
"payloadTemplate": {
"payloadTemplateId": "wpt_00001",
"name": "Meraki (included)"
}
}
}
}
},
"summary": "Add an HTTP server to a network",
"tags": [
"networks",
"configure",
"webhooks",
"httpServers"
]
}
},
"/networks/{networkId}/webhooks/httpServers/{httpServerId}": {
"get": {
"description": "Return an HTTP server for a network",
"operationId": "getNetworkWebhooksHttpServer",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "httpServerId",
"in": "path",
"description": "Http server ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "byte",
"description": "A Base64 encoded ID."
},
"name": {
"type": "string",
"description": "A name for easy reference to the HTTP server"
},
"url": {
"type": "string",
"description": "The URL of the HTTP server."
},
"networkId": {
"type": "string",
"description": "A Meraki network ID."
},
"payloadTemplate": {
"type": "object",
"properties": {
"payloadTemplateId": {
"type": "string",
"description": "The ID of the payload template."
},
"name": {
"type": "string",
"description": "The name of the payload template."
}
},
"description": "The payload template to use when posting data to the HTTP server."
}
}
},
"examples": {
"application/json": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vbXlfY3VzdG9tX3dlYmhvb2s=",
"name": "Example Webhook Server",
"url": "https://www.example.com/my_custom_webhook",
"networkId": "N_12345678",
"payloadTemplate": {
"payloadTemplateId": "wpt_00001",
"name": "Meraki (included)"
}
}
}
}
},
"summary": "Return an HTTP server for a network",
"tags": [
"networks",
"configure",
"webhooks",
"httpServers"
]
},
"put": {
"description": "Update an HTTP server. To change a URL, create a new HTTP server.",
"operationId": "updateNetworkWebhooksHttpServer",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "httpServerId",
"in": "path",
"description": "Http server ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkWebhooksHttpServer",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A name for easy reference to the HTTP server"
},
"sharedSecret": {
"type": "string",
"description": "A shared secret that will be included in POSTs sent to the HTTP server. This secret can be used to verify that the request was sent by Meraki."
},
"payloadTemplate": {
"type": "object",
"properties": {
"payloadTemplateId": {
"type": "string",
"description": "The ID of the payload template. Defaults to 'wpt_00001' for the Meraki template. For Meraki-included templates: for the Webex (included) template use 'wpt_00002'; for the Slack (included) template use 'wpt_00003'; for the Microsoft Teams (included) template use 'wpt_00004'; for the ServiceNow (included) template use 'wpt_00006'"
}
},
"description": "The payload template to use when posting data to the HTTP server."
}
},
"example": {
"name": "Example Webhook Server",
"sharedSecret": "shhh",
"payloadTemplate": {
"payloadTemplateId": "wpt_00001"
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "byte",
"description": "A Base64 encoded ID."
},
"name": {
"type": "string",
"description": "A name for easy reference to the HTTP server"
},
"url": {
"type": "string",
"description": "The URL of the HTTP server."
},
"networkId": {
"type": "string",
"description": "A Meraki network ID."
},
"payloadTemplate": {
"type": "object",
"properties": {
"payloadTemplateId": {
"type": "string",
"description": "The ID of the payload template."
},
"name": {
"type": "string",
"description": "The name of the payload template."
}
},
"description": "The payload template to use when posting data to the HTTP server."
}
}
},
"examples": {
"application/json": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vbXlfY3VzdG9tX3dlYmhvb2s=",
"name": "Example Webhook Server",
"url": "https://www.example.com/my_custom_webhook",
"networkId": "N_12345678",
"payloadTemplate": {
"payloadTemplateId": "wpt_00001",
"name": "Meraki (included)"
}
}
}
}
},
"summary": "Update an HTTP server",
"tags": [
"networks",
"configure",
"webhooks",
"httpServers"
]
},
"delete": {
"description": "Delete an HTTP server from a network",
"operationId": "deleteNetworkWebhooksHttpServer",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "httpServerId",
"in": "path",
"description": "Http server ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete an HTTP server from a network",
"tags": [
"networks",
"configure",
"webhooks",
"httpServers"
]
}
},
"/networks/{networkId}/webhooks/payloadTemplates": {
"get": {
"description": "List the webhook payload templates for a network",
"operationId": "getNetworkWebhooksPayloadTemplates",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"payloadTemplateId": {
"type": "string",
"description": "Webhook payload template Id"
},
"type": {
"type": "string",
"description": "The type of the payload template"
},
"name": {
"type": "string",
"description": "The name of the payload template"
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the header attribute"
},
"template": {
"type": "string",
"description": "The value returned in the header attribute, in liquid template"
}
}
},
"description": "The payload template headers, will be rendered as a key-value pair in the webhook."
},
"body": {
"type": "string",
"description": "The body of the payload template, in liquid template"
},
"sharing": {
"type": "object",
"properties": {
"byNetwork": {
"type": "object",
"properties": {
"adminsCanModify": {
"type": "boolean",
"description": "Indicates whether network admins may modify this template"
}
},
"description": "Information on network access to the template"
}
},
"description": "Information on which entities have access to the template"
}
}
}
},
"examples": {
"application/json": [
{
"payloadTemplateId": "wpt_343",
"type": "custom",
"name": "Custom Template",
"headers": [
{
"name": "Authorization",
"template": "Bearer {{sharedSecret}}"
}
],
"body": "{\"event_type\":\"{{alertTypeId}}\",\"client_payload\":{\"text\":\"{{alertData}}\"}}",
"sharing": {
"byNetwork": {
"adminsCanModify": false
}
}
}
]
}
}
},
"summary": "List the webhook payload templates for a network",
"tags": [
"networks",
"configure",
"webhooks",
"payloadTemplates"
]
},
"post": {
"description": "Create a webhook payload template for a network",
"operationId": "createNetworkWebhooksPayloadTemplate",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkWebhooksPayloadTemplate",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the new template"
},
"body": {
"type": "string",
"description": "The liquid template used for the body of the webhook message. Either `body` or `bodyFile` must be specified."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the header template"
},
"template": {
"type": "string",
"description": "The liquid template for the headers"
}
}
},
"description": "The liquid template used with the webhook headers."
},
"bodyFile": {
"type": "string",
"format": "byte",
"description": "A file containing liquid template used for the body of the webhook message. Either `body` or `bodyFile` must be specified."
},
"headersFile": {
"type": "string",
"format": "byte",
"description": "A file containing the liquid template used with the webhook headers."
}
},
"example": {
"name": "Custom Template",
"body": "{\"event_type\":\"{{alertTypeId}}\",\"client_payload\":{\"text\":\"{{alertData}}\"}}",
"headers": [
{
"name": "Authorization",
"template": "Bearer {{sharedSecret}}"
}
],
"bodyFile": "Qm9keSBGaWxl",
"headersFile": "SGVhZGVycyBGaWxl"
},
"required": [
"name"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"payloadTemplateId": {
"type": "string",
"description": "Webhook payload template Id"
},
"type": {
"type": "string",
"description": "The type of the payload template"
},
"name": {
"type": "string",
"description": "The name of the payload template"
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the header attribute"
},
"template": {
"type": "string",
"description": "The value returned in the header attribute, in liquid template"
}
}
},
"description": "The payload template headers, will be rendered as a key-value pair in the webhook."
},
"body": {
"type": "string",
"description": "The body of the payload template, in liquid template"
},
"sharing": {
"type": "object",
"properties": {
"byNetwork": {
"type": "object",
"properties": {
"adminsCanModify": {
"type": "boolean",
"description": "Indicates whether network admins may modify this template"
}
},
"description": "Information on network access to the template"
}
},
"description": "Information on which entities have access to the template"
}
}
},
"examples": {
"application/json": {
"payloadTemplateId": "wpt_343",
"type": "custom",
"name": "Custom Template",
"headers": [
{
"name": "Authorization",
"template": "Bearer {{sharedSecret}}"
}
],
"body": "{\"event_type\":\"{{alertTypeId}}\",\"client_payload\":{\"text\":\"{{alertData}}\"}}",
"sharing": {
"byNetwork": {
"adminsCanModify": false
}
}
}
}
}
},
"summary": "Create a webhook payload template for a network",
"tags": [
"networks",
"configure",
"webhooks",
"payloadTemplates"
]
}
},
"/networks/{networkId}/webhooks/payloadTemplates/{payloadTemplateId}": {
"get": {
"description": "Get the webhook payload template for a network",
"operationId": "getNetworkWebhooksPayloadTemplate",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "payloadTemplateId",
"in": "path",
"description": "Payload template ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"payloadTemplateId": {
"type": "string",
"description": "Webhook payload template Id"
},
"type": {
"type": "string",
"description": "The type of the payload template"
},
"name": {
"type": "string",
"description": "The name of the payload template"
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the header attribute"
},
"template": {
"type": "string",
"description": "The value returned in the header attribute, in liquid template"
}
}
},
"description": "The payload template headers, will be rendered as a key-value pair in the webhook."
},
"body": {
"type": "string",
"description": "The body of the payload template, in liquid template"
},
"sharing": {
"type": "object",
"properties": {
"byNetwork": {
"type": "object",
"properties": {
"adminsCanModify": {
"type": "boolean",
"description": "Indicates whether network admins may modify this template"
}
},
"description": "Information on network access to the template"
}
},
"description": "Information on which entities have access to the template"
}
}
},
"examples": {
"application/json": {
"payloadTemplateId": "wpt_343",
"type": "custom",
"name": "Custom Template",
"headers": [
{
"name": "Authorization",
"template": "Bearer {{sharedSecret}}"
}
],
"body": "{\"event_type\":\"{{alertTypeId}}\",\"client_payload\":{\"text\":\"{{alertData}}\"}}",
"sharing": {
"byNetwork": {
"adminsCanModify": false
}
}
}
}
}
},
"summary": "Get the webhook payload template for a network",
"tags": [
"networks",
"configure",
"webhooks",
"payloadTemplates"
]
},
"delete": {
"description": "Destroy a webhook payload template for a network. Does not work for included templates ('wpt_00001', 'wpt_00002', 'wpt_00003', 'wpt_00004', 'wpt_00005' or 'wpt_00006')",
"operationId": "deleteNetworkWebhooksPayloadTemplate",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "payloadTemplateId",
"in": "path",
"description": "Payload template ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Destroy a webhook payload template for a network",
"tags": [
"networks",
"configure",
"webhooks",
"payloadTemplates"
]
},
"put": {
"description": "Update a webhook payload template for a network",
"operationId": "updateNetworkWebhooksPayloadTemplate",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "payloadTemplateId",
"in": "path",
"description": "Payload template ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkWebhooksPayloadTemplate",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the template"
},
"body": {
"type": "string",
"description": "The liquid template used for the body of the webhook message."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the header template"
},
"template": {
"type": "string",
"description": "The liquid template for the headers"
}
}
},
"description": "The liquid template used with the webhook headers."
},
"bodyFile": {
"type": "string",
"format": "byte",
"description": "A file containing liquid template used for the body of the webhook message."
},
"headersFile": {
"type": "string",
"format": "byte",
"description": "A file containing the liquid template used with the webhook headers."
}
},
"example": {
"name": "Custom Template",
"body": "{\"event_type\":\"{{alertTypeId}}\",\"client_payload\":{\"text\":\"{{alertData}}\"}}",
"headers": [
{
"name": "Authorization",
"template": "Bearer {{sharedSecret}}"
}
],
"bodyFile": "Qm9keSBGaWxl",
"headersFile": "SGVhZGVycyBGaWxl"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"payloadTemplateId": {
"type": "string",
"description": "Webhook payload template Id"
},
"type": {
"type": "string",
"description": "The type of the payload template"
},
"name": {
"type": "string",
"description": "The name of the payload template"
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the header attribute"
},
"template": {
"type": "string",
"description": "The value returned in the header attribute, in liquid template"
}
}
},
"description": "The payload template headers, will be rendered as a key-value pair in the webhook."
},
"body": {
"type": "string",
"description": "The body of the payload template, in liquid template"
},
"sharing": {
"type": "object",
"properties": {
"byNetwork": {
"type": "object",
"properties": {
"adminsCanModify": {
"type": "boolean",
"description": "Indicates whether network admins may modify this template"
}
},
"description": "Information on network access to the template"
}
},
"description": "Information on which entities have access to the template"
}
}
},
"examples": {
"application/json": {
"payloadTemplateId": "wpt_343",
"type": "custom",
"name": "Custom Template",
"headers": [
{
"name": "Authorization",
"template": "Bearer {{sharedSecret}}"
}
],
"body": "{\"event_type\":\"{{alertTypeId}}\",\"client_payload\":{\"text\":\"{{alertData}}\"}}",
"sharing": {
"byNetwork": {
"adminsCanModify": false
}
}
}
}
}
},
"summary": "Update a webhook payload template for a network",
"tags": [
"networks",
"configure",
"webhooks",
"payloadTemplates"
]
}
},
"/networks/{networkId}/webhooks/webhookTests": {
"post": {
"description": "Send a test webhook for a network",
"operationId": "createNetworkWebhooksWebhookTest",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkWebhooksWebhookTest",
"in": "body",
"schema": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The URL where the test webhook will be sent"
},
"sharedSecret": {
"type": "string",
"description": "The shared secret the test webhook will send. Optional. Defaults to an empty string.",
"default": ""
},
"payloadTemplateId": {
"type": "string",
"description": "The ID of the payload template of the test webhook. Defaults to the HTTP server's template ID if one exists for the given URL, or Generic template ID otherwise"
},
"payloadTemplateName": {
"type": "string",
"description": "The name of the payload template."
},
"alertTypeId": {
"type": "string",
"description": "The type of alert which the test webhook will send. Optional. Defaults to power_supply_down.",
"default": "power_supply_down"
}
},
"example": {
"url": "https://www.example.com/path",
"sharedSecret": "shhh",
"payloadTemplateId": "wpt_00001",
"payloadTemplateName": "Payload Template",
"alertTypeId": "power_supply_down"
},
"required": [
"url"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Webhook delivery identifier"
},
"url": {
"type": "string",
"description": "URL where the webhook was delivered"
},
"status": {
"type": "string",
"enum": [
"abandoned",
"delivered",
"enqueued",
"processing",
"retrying"
],
"description": "Current status of the webhook delivery"
}
}
},
"examples": {
"application/json": {
"id": "1234",
"url": "https://www.example.com/path",
"status": "enqueued"
}
}
}
},
"summary": "Send a test webhook for a network",
"tags": [
"networks",
"configure",
"webhooks",
"webhookTests"
]
}
},
"/networks/{networkId}/webhooks/webhookTests/{webhookTestId}": {
"get": {
"description": "Return the status of a webhook test for a network",
"operationId": "getNetworkWebhooksWebhookTest",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "webhookTestId",
"in": "path",
"description": "Webhook test ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Webhook delivery identifier"
},
"url": {
"type": "string",
"description": "URL where the webhook was delivered"
},
"status": {
"type": "string",
"enum": [
"abandoned",
"delivered",
"enqueued",
"processing",
"retrying"
],
"description": "Current status of the webhook delivery"
}
}
},
"examples": {
"application/json": {
"id": "1234",
"url": "https://www.example.com/path",
"status": "enqueued"
}
}
}
},
"summary": "Return the status of a webhook test for a network",
"tags": [
"networks",
"configure",
"webhooks",
"webhookTests"
]
}
},
"/networks/{networkId}/wireless/airMarshal": {
"get": {
"description": "List Air Marshal scan results from a network",
"operationId": "getNetworkWirelessAirMarshal",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameter t0. The value must be in seconds and be less than or equal to 31 days. The default is 7 days."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"ssid": "linksys",
"bssids": [
{
"bssid": "00:11:22:33:44:55",
"contained": false,
"detectedBy": [
{
"device": "Q234-ABCD-5678",
"rssi": 17
}
]
}
],
"channels": [
36,
40
],
"firstSeen": 1518365681,
"lastSeen": 1526087474,
"wiredMacs": [
"00:11:22:33:44:55"
],
"wiredVlans": [
0,
108
],
"wiredLastSeen": 1526087474
}
]
}
}
},
"summary": "List Air Marshal scan results from a network",
"tags": [
"wireless",
"monitor",
"airMarshal"
]
}
},
"/networks/{networkId}/wireless/alternateManagementInterface": {
"get": {
"description": "Return alternate management interface and devices with IP assigned",
"operationId": "getNetworkWirelessAlternateManagementInterface",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"enabled": true,
"vlanId": 100,
"protocols": [
"radius",
"snmp",
"syslog",
"ldap"
],
"accessPoints": [
{
"serial": "Q234-ABCD-5678",
"alternateManagementIp": "1.2.3.4",
"subnetMask": "255.255.255.0",
"gateway": "1.2.3.5",
"dns1": "8.8.8.8",
"dns2": "8.8.4.4"
}
]
}
}
}
},
"summary": "Return alternate management interface and devices with IP assigned",
"tags": [
"wireless",
"configure",
"alternateManagementInterface"
]
},
"put": {
"description": "Update alternate management interface and device static IP",
"operationId": "updateNetworkWirelessAlternateManagementInterface",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkWirelessAlternateManagementInterface",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Boolean value to enable or disable alternate management interface"
},
"vlanId": {
"type": "integer",
"description": "Alternate management interface VLAN, must be between 1 and 4094"
},
"protocols": {
"type": "array",
"items": {
"type": "string",
"enum": [
"ldap",
"radius",
"snmp",
"syslog"
]
},
"description": "Can be one or more of the following values: 'radius', 'snmp', 'syslog' or 'ldap'"
},
"accessPoints": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Serial number of access point to be configured with alternate management IP"
},
"alternateManagementIp": {
"type": "string",
"description": "Wireless alternate management interface device IP. Provide an empty string to remove alternate management IP assignment"
},
"subnetMask": {
"type": "string",
"description": "Subnet mask must be in IP format"
},
"gateway": {
"type": "string",
"description": "Gateway must be in IP format"
},
"dns1": {
"type": "string",
"description": "Primary DNS must be in IP format"
},
"dns2": {
"type": "string",
"description": "Optional secondary DNS must be in IP format"
}
},
"required": [
"serial",
"alternateManagementIp"
]
},
"description": "Array of access point serial number and IP assignment. Note: accessPoints IP assignment is not applicable for template networks, in other words, do not put 'accessPoints' in the body when updating template networks. Also, an empty 'accessPoints' array will remove all previous static IP assignments"
}
},
"example": {
"enabled": true,
"vlanId": 100,
"protocols": [
"radius",
"snmp",
"syslog",
"ldap"
],
"accessPoints": [
{
"serial": "Q234-ABCD-5678",
"alternateManagementIp": "1.2.3.4",
"subnetMask": "255.255.255.0",
"gateway": "1.2.3.5",
"dns1": "8.8.8.8",
"dns2": "8.8.4.4"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"enabled": true,
"vlanId": 100,
"protocols": [
"radius",
"snmp",
"syslog",
"ldap"
],
"accessPoints": [
{
"serial": "Q234-ABCD-5678",
"alternateManagementIp": "1.2.3.4",
"subnetMask": "255.255.255.0",
"gateway": "1.2.3.5",
"dns1": "8.8.8.8",
"dns2": "8.8.4.4"
}
]
}
}
}
},
"summary": "Update alternate management interface and device static IP",
"tags": [
"wireless",
"configure",
"alternateManagementInterface"
]
}
},
"/networks/{networkId}/wireless/billing": {
"get": {
"description": "Return the billing settings of this network",
"operationId": "getNetworkWirelessBilling",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"currency": {
"type": "string",
"description": "The currency code of this node group's billing plans"
},
"plans": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The id of the pricing plan to update."
},
"price": {
"type": "number",
"format": "float",
"description": "The price of the billing plan."
},
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps)."
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps)."
}
},
"description": "The uplink bandwidth settings for the pricing plan."
},
"timeLimit": {
"type": "string",
"description": "The time limit of the pricing plan in minutes."
}
}
},
"description": "Array of billing plans in the node group. (Can configure a maximum of 5)"
}
}
},
"examples": {
"application/json": {
"currency": "USD",
"plans": [
{
"id": "1",
"price": 5.0,
"bandwidthLimits": {
"limitUp": 1000,
"limitDown": 1000
},
"timeLimit": "1 hour"
}
]
}
}
}
},
"summary": "Return the billing settings of this network",
"tags": [
"wireless",
"configure",
"billing"
]
},
"put": {
"description": "Update the billing settings",
"operationId": "updateNetworkWirelessBilling",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkWirelessBilling",
"in": "body",
"schema": {
"type": "object",
"properties": {
"currency": {
"type": "string",
"description": "The currency code of this node group's billing plans"
},
"plans": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The id of the pricing plan to update."
},
"price": {
"type": "number",
"format": "float",
"description": "The price of the billing plan."
},
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps). null indicates no limit"
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps). null indicates no limit"
}
},
"description": "The uplink bandwidth settings for the pricing plan."
},
"timeLimit": {
"type": "string",
"enum": [
"1 day",
"1 hour",
"1 week",
"30 days"
],
"description": "The time limit of the pricing plan in minutes. Can be '1 hour', '1 day', '1 week', or '30 days'."
}
},
"required": [
"price",
"bandwidthLimits",
"timeLimit"
]
},
"description": "Array of billing plans in the node group. (Can configure a maximum of 5)"
}
},
"example": {
"currency": "USD",
"plans": [
{
"id": "1",
"price": 5.0,
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
},
"timeLimit": "1 hour"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"currency": {
"type": "string",
"description": "The currency code of this node group's billing plans"
},
"plans": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The id of the pricing plan to update."
},
"price": {
"type": "number",
"format": "float",
"description": "The price of the billing plan."
},
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps)."
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps)."
}
},
"description": "The uplink bandwidth settings for the pricing plan."
},
"timeLimit": {
"type": "string",
"description": "The time limit of the pricing plan in minutes."
}
}
},
"description": "Array of billing plans in the node group. (Can configure a maximum of 5)"
}
}
},
"examples": {
"application/json": {
"currency": "USD",
"plans": [
{
"id": "1",
"price": 5.0,
"bandwidthLimits": {
"limitUp": 1000,
"limitDown": 1000
},
"timeLimit": "1 hour"
}
]
}
}
}
},
"summary": "Update the billing settings",
"tags": [
"wireless",
"configure",
"billing"
]
}
},
"/networks/{networkId}/wireless/bluetooth/settings": {
"get": {
"description": "Return the Bluetooth settings for a network. Bluetooth settings must be enabled on the network.",
"operationId": "getNetworkWirelessBluetoothSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"scanningEnabled": {
"type": "boolean",
"description": "Whether APs will scan for Bluetooth enabled clients."
},
"advertisingEnabled": {
"type": "boolean",
"description": "Whether APs will advertise beacons."
},
"uuid": {
"type": "string",
"description": "The UUID to be used in the beacon identifier."
},
"majorMinorAssignmentMode": {
"type": "string",
"description": "The way major and minor number should be assigned to nodes in the network. ('Unique', 'Non-unique')"
},
"major": {
"type": "integer",
"description": "The major number to be used in the beacon identifier. Only valid in 'Non-unique' mode."
},
"minor": {
"type": "integer",
"description": "The minor number to be used in the beacon identifier. Only valid in 'Non-unique' mode."
},
"eslEnabled": {
"type": "boolean",
"description": "Whether ESL is enabled on this network."
}
}
},
"examples": {
"application/json": {
"scanningEnabled": true,
"advertisingEnabled": true,
"uuid": "00000000-0000-0000-000-000000000000",
"majorMinorAssignmentMode": "Non-unique",
"major": 1,
"minor": 1,
"eslEnabled": true
}
}
}
},
"summary": "Return the Bluetooth settings for a network. Bluetooth settings must be enabled on the network.",
"tags": [
"wireless",
"configure",
"bluetooth",
"settings"
]
},
"put": {
"description": "Update the Bluetooth settings for a network. See the docs page for Bluetooth settings .",
"operationId": "updateNetworkWirelessBluetoothSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkWirelessBluetoothSettings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"scanningEnabled": {
"type": "boolean",
"description": "Whether APs will scan for Bluetooth enabled clients."
},
"advertisingEnabled": {
"type": "boolean",
"description": "Whether APs will advertise beacons."
},
"uuid": {
"type": "string",
"description": "The UUID to be used in the beacon identifier."
},
"majorMinorAssignmentMode": {
"type": "string",
"enum": [
"Non-unique",
"Unique"
],
"description": "The way major and minor number should be assigned to nodes in the network. ('Unique', 'Non-unique')"
},
"major": {
"type": "integer",
"description": "The major number to be used in the beacon identifier. Only valid in 'Non-unique' mode."
},
"minor": {
"type": "integer",
"description": "The minor number to be used in the beacon identifier. Only valid in 'Non-unique' mode."
}
},
"example": {
"scanningEnabled": true,
"advertisingEnabled": true,
"uuid": "00000000-0000-0000-000-000000000000",
"majorMinorAssignmentMode": "Non-unique",
"major": 1,
"minor": 1
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"scanningEnabled": {
"type": "boolean",
"description": "Whether APs will scan for Bluetooth enabled clients."
},
"advertisingEnabled": {
"type": "boolean",
"description": "Whether APs will advertise beacons."
},
"uuid": {
"type": "string",
"description": "The UUID to be used in the beacon identifier."
},
"majorMinorAssignmentMode": {
"type": "string",
"description": "The way major and minor number should be assigned to nodes in the network. ('Unique', 'Non-unique')"
},
"major": {
"type": "integer",
"description": "The major number to be used in the beacon identifier. Only valid in 'Non-unique' mode."
},
"minor": {
"type": "integer",
"description": "The minor number to be used in the beacon identifier. Only valid in 'Non-unique' mode."
},
"eslEnabled": {
"type": "boolean",
"description": "Whether ESL is enabled on this network."
}
}
},
"examples": {
"application/json": {
"scanningEnabled": true,
"advertisingEnabled": true,
"uuid": "00000000-0000-0000-000-000000000000",
"majorMinorAssignmentMode": "Non-unique",
"major": 1,
"minor": 1,
"eslEnabled": true
}
}
}
},
"summary": "Update the Bluetooth settings for a network",
"tags": [
"wireless",
"configure",
"bluetooth",
"settings"
]
}
},
"/networks/{networkId}/wireless/channelUtilizationHistory": {
"get": {
"description": "Return AP channel utilization over time for a device or network client",
"operationId": "getNetworkWirelessChannelUtilizationHistory",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"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 7 days."
},
{
"type": "integer",
"name": "resolution",
"in": "query",
"description": "The time resolution in seconds for returned data. The valid resolutions are: 600, 1200, 3600, 14400, 86400. The default is 86400."
},
{
"type": "boolean",
"name": "autoResolution",
"in": "query",
"description": "Automatically select a data resolution based on the given timespan; this overrides the value specified by the 'resolution' parameter. The default setting is false."
},
{
"type": "string",
"name": "clientId",
"in": "query",
"description": "Filter results by network client to return per-device, per-band AP channel utilization metrics inner joined by the queried client's connection history."
},
{
"type": "string",
"name": "deviceSerial",
"in": "query",
"description": "Filter results by device to return AP channel utilization metrics for the queried device; either :band or :clientId must be jointly specified."
},
{
"type": "string",
"name": "apTag",
"in": "query",
"description": "Filter results by AP tag to return AP channel utilization metrics for devices labeled with the given tag; either :clientId or :deviceSerial must be jointly specified."
},
{
"type": "string",
"enum": [
"2.4",
"5",
"6"
],
"name": "band",
"in": "query",
"description": "Filter results by band (either '2.4', '5' or '6')."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startTs": {
"type": "string",
"format": "date-time",
"description": "The start time of the query range"
},
"endTs": {
"type": "string",
"format": "date-time",
"description": "The end time of the query range"
},
"utilizationTotal": {
"type": "number",
"format": "float",
"description": "Total channel utilization"
},
"utilization80211": {
"type": "number",
"format": "float",
"description": "Average wifi utilization"
},
"utilizationNon80211": {
"type": "number",
"format": "float",
"description": "Average signal interference"
}
}
}
},
"examples": {
"application/json": [
{
"startTs": "2020-01-01T00:00:00Z",
"endTs": "2020-01-01T01:00:00Z",
"utilizationTotal": 9.89,
"utilization80211": 7.22,
"utilizationNon80211": 2.67
}
]
}
}
},
"summary": "Return AP channel utilization over time for a device or network client",
"tags": [
"wireless",
"monitor",
"channelUtilizationHistory"
]
}
},
"/networks/{networkId}/wireless/clientCountHistory": {
"get": {
"description": "Return wireless client counts over time for a network, device, or network client",
"operationId": "getNetworkWirelessClientCountHistory",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"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 7 days."
},
{
"type": "integer",
"name": "resolution",
"in": "query",
"description": "The time resolution in seconds for returned data. The valid resolutions are: 300, 600, 1200, 3600, 14400, 86400. The default is 86400."
},
{
"type": "boolean",
"name": "autoResolution",
"in": "query",
"description": "Automatically select a data resolution based on the given timespan; this overrides the value specified by the 'resolution' parameter. The default setting is false."
},
{
"type": "string",
"name": "clientId",
"in": "query",
"description": "Filter results by network client to return per-device client counts over time inner joined by the queried client's connection history."
},
{
"type": "string",
"name": "deviceSerial",
"in": "query",
"description": "Filter results by device."
},
{
"type": "string",
"name": "apTag",
"in": "query",
"description": "Filter results by AP tag."
},
{
"type": "string",
"enum": [
"2.4",
"5",
"6"
],
"name": "band",
"in": "query",
"description": "Filter results by band (either '2.4', '5' or '6')."
},
{
"type": "integer",
"name": "ssid",
"in": "query",
"description": "Filter results by SSID number."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startTs": {
"type": "string",
"format": "date-time",
"description": "The start time of the query range"
},
"endTs": {
"type": "string",
"format": "date-time",
"description": "The end time of the query range"
},
"clientCount": {
"type": "integer",
"description": "Number of connected clients"
}
}
}
},
"examples": {
"application/json": [
{
"startTs": "2020-01-01T00:00:00Z",
"endTs": "2020-01-01T01:00:00Z",
"clientCount": 14
}
]
}
}
},
"summary": "Return wireless client counts over time for a network, device, or network client",
"tags": [
"wireless",
"monitor",
"clientCountHistory"
]
}
},
"/networks/{networkId}/wireless/clients/connectionStats": {
"get": {
"description": "Aggregated connectivity info for this network, grouped by clients",
"operationId": "getNetworkWirelessClientsConnectionStats",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 180 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 7 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 604800,
"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 7 days."
},
{
"type": "string",
"enum": [
"2.4",
"5",
"6"
],
"name": "band",
"in": "query",
"description": "Filter results by band (either '2.4', '5' or '6'). Note that data prior to February 2020 will not have band information."
},
{
"type": "integer",
"name": "ssid",
"in": "query",
"description": "Filter results by SSID"
},
{
"type": "integer",
"name": "vlan",
"in": "query",
"description": "Filter results by VLAN"
},
{
"type": "string",
"name": "apTag",
"in": "query",
"description": "Filter results by AP Tag"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"mac": "00:61:71:c8:51:27",
"connectionStats": {
"assoc": 0,
"auth": 4,
"dhcp": 0,
"dns": 0,
"success": 10
}
},
{
"mac": "1c:4d:70:7f:5e:5e",
"connectionStats": {
"assoc": 0,
"auth": 1,
"dhcp": 0,
"dns": 0,
"success": 24
}
},
{
"mac": "1c:4d:70:81:8d:0a",
"connectionStats": {
"assoc": 1,
"auth": 0,
"dhcp": 0,
"dns": 0,
"success": 16
}
}
]
}
}
},
"summary": "Aggregated connectivity info for this network, grouped by clients",
"tags": [
"wireless",
"monitor",
"clients",
"connectionStats"
]
}
},
"/networks/{networkId}/wireless/clients/healthScores": {
"get": {
"description": "Fetch the health scores for all clients on this network",
"operationId": "getNetworkWirelessClientsHealthScores",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"mac": "22:33:44:55:66:77",
"clientId": "k74272e",
"performance": {
"latest": 80,
"currentConnection": 100
},
"onboarding": {
"latest": 100
}
},
{
"mac": "22:33:44:55:66:77",
"clientId": "k74272e",
"performance": {
"latest": 30,
"currentConnection": 50
},
"onboarding": {
"latest": 70
}
}
]
}
}
},
"summary": "Fetch the health scores for all clients on this network",
"tags": [
"wireless",
"monitor",
"clients",
"healthScores"
],
"x-release-stage": "beta"
}
},
"/networks/{networkId}/wireless/clients/latencyStats": {
"get": {
"description": "Aggregated latency info for this network, grouped by clients",
"operationId": "getNetworkWirelessClientsLatencyStats",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 180 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 7 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 604800,
"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 7 days."
},
{
"type": "string",
"enum": [
"2.4",
"5",
"6"
],
"name": "band",
"in": "query",
"description": "Filter results by band (either '2.4', '5' or '6'). Note that data prior to February 2020 will not have band information."
},
{
"type": "integer",
"name": "ssid",
"in": "query",
"description": "Filter results by SSID"
},
{
"type": "integer",
"name": "vlan",
"in": "query",
"description": "Filter results by VLAN"
},
{
"type": "string",
"name": "apTag",
"in": "query",
"description": "Filter results by AP Tag"
},
{
"type": "string",
"name": "fields",
"in": "query",
"description": "Partial selection: If present, this call will return only the selected fields of [\"rawDistribution\", \"avg\"]. All fields will be returned by default. Selected fields must be entered as a comma separated string."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"mac": "00:61:71:c8:51:27",
"latencyStats": {
"backgroundTraffic": {
"rawDistribution": {
"0": 1234,
"1": 2345,
"2": 3456,
"4": 4567,
"8": 5678,
"16": 6789,
"32": 7890,
"64": 8901,
"128": 9012,
"256": 83,
"512": 1234,
"1024": 2345,
"2048": 9999
},
"avg": 606.52
},
"bestEffortTraffic": "same shape as backgroundTraffic",
"videoTraffic": "same shape as backgroundTraffic",
"voiceTraffic": "same shape as backgroundTraffic"
}
},
{
"mac": "1c:4d:70:7f:5e:5e",
"latencyStats": {
"backgroundTraffic": {
"rawDistribution": {
"0": 1234,
"1": 2345,
"2": 3456,
"4": 4567,
"8": 5678,
"16": 6789,
"32": 7890,
"64": 8901,
"128": 9012,
"256": 83,
"512": 1234,
"1024": 2345,
"2048": 9999
},
"avg": 606.52
},
"bestEffortTraffic": "same shape as backgroundTraffic",
"videoTraffic": "same shape as backgroundTraffic",
"voiceTraffic": "same shape as backgroundTraffic"
}
},
{
"mac": "1c:4d:70:81:8d:0a",
"latencyStats": {
"backgroundTraffic": {
"rawDistribution": {
"0": 1234,
"1": 2345,
"2": 3456,
"4": 4567,
"8": 5678,
"16": 6789,
"32": 7890,
"64": 8901,
"128": 9012,
"256": 83,
"512": 1234,
"1024": 2345,
"2048": 9999
},
"avg": 606.52
},
"bestEffortTraffic": "same shape as backgroundTraffic",
"videoTraffic": "same shape as backgroundTraffic",
"voiceTraffic": "same shape as backgroundTraffic"
}
}
]
}
}
},
"summary": "Aggregated latency info for this network, grouped by clients",
"tags": [
"wireless",
"monitor",
"clients",
"latencyStats"
]
}
},
"/networks/{networkId}/wireless/clients/onboardingHistory": {
"get": {
"description": "Return counts of distinct wireless clients connecting to a network over time",
"operationId": "getNetworkWirelessClientsOnboardingHistory",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"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 7 days."
},
{
"type": "integer",
"name": "resolution",
"in": "query",
"description": "The time resolution in seconds for returned data. The valid resolutions are: 300. The default is 300."
},
{
"type": "string",
"enum": [
"2.4",
"5",
"6"
],
"name": "band",
"in": "query",
"description": "Filter results by band (either '2.4', '5' or '6'); this cannot be combined with the SSID filter."
},
{
"type": "integer",
"name": "ssid",
"in": "query",
"description": "Filter results by SSID number; this cannot be combined with the band filter."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startTs": {
"type": "string",
"format": "date-time",
"description": "The start time of the query range"
},
"endTs": {
"type": "string",
"format": "date-time",
"description": "The end time of the query range"
},
"clientCounts": {
"type": "object",
"properties": {
"summary": {
"type": "object",
"properties": {
"prospective": {
"type": "integer",
"description": "Total attempted connections"
},
"successful": {
"type": "integer",
"description": "Successful connections"
},
"failed": {
"type": "integer",
"description": "Failed connections"
}
},
"description": "Client connections across all steps"
},
"connectionSteps": {
"type": "object",
"properties": {
"association": {
"type": "object",
"properties": {
"prospective": {
"type": "integer",
"description": "Total attempted connections"
},
"successful": {
"type": "integer",
"description": "Successful connections"
},
"failed": {
"type": "integer",
"description": "Failed connections"
}
},
"description": "Client connections at association stage"
},
"authentication": {
"type": "object",
"properties": {
"prospective": {
"type": "integer",
"description": "Total attempted connections"
},
"successful": {
"type": "integer",
"description": "Successful connections"
},
"failed": {
"type": "integer",
"description": "Failed connections"
}
},
"description": "Client connections at auth stage"
},
"dhcp": {
"type": "object",
"properties": {
"prospective": {
"type": "integer",
"description": "Total attempted connections"
},
"successful": {
"type": "integer",
"description": "Successful connections"
},
"failed": {
"type": "integer",
"description": "Failed connections"
}
},
"description": "Client connections at dhcp stage"
},
"dns": {
"type": "object",
"properties": {
"prospective": {
"type": "integer",
"description": "Total attempted connections"
},
"successful": {
"type": "integer",
"description": "Successful connections"
},
"failed": {
"type": "integer",
"description": "Failed connections"
}
},
"description": "Client connections at dns stage"
}
},
"description": "Client connections broken down by step"
}
},
"description": "Client connection counts"
}
}
}
},
"examples": {
"application/json": [
{
"startTs": "2020-01-01T00:00:00Z",
"endTs": "2020-01-01T00:05:00Z",
"clientCounts": {
"summary": {
"prospective": 100,
"successful": 75,
"failed": 25
},
"connectionSteps": {
"association": {
"prospective": 100,
"successful": 97,
"failed": 3
},
"authentication": {
"prospective": 97,
"successful": 81,
"failed": 16
},
"dhcp": {
"prospective": 81,
"successful": 75,
"failed": 6
},
"dns": {
"prospective": 75,
"successful": 75,
"failed": 0
}
}
}
}
]
}
}
},
"summary": "Return counts of distinct wireless clients connecting to a network over time",
"tags": [
"wireless",
"monitor",
"clients",
"onboardingHistory"
],
"x-release-stage": "beta"
}
},
"/networks/{networkId}/wireless/clients/{clientId}/connectionStats": {
"get": {
"description": "Aggregated connectivity info for a given client on this network. Clients are identified by their MAC.",
"operationId": "getNetworkWirelessClientConnectionStats",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "clientId",
"in": "path",
"description": "Client ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 180 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 7 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 604800,
"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 7 days."
},
{
"type": "string",
"enum": [
"2.4",
"5",
"6"
],
"name": "band",
"in": "query",
"description": "Filter results by band (either '2.4', '5' or '6'). Note that data prior to February 2020 will not have band information."
},
{
"type": "integer",
"name": "ssid",
"in": "query",
"description": "Filter results by SSID"
},
{
"type": "integer",
"name": "vlan",
"in": "query",
"description": "Filter results by VLAN"
},
{
"type": "string",
"name": "apTag",
"in": "query",
"description": "Filter results by AP Tag"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"mac": "00:61:71:c8:51:27",
"connectionStats": {
"assoc": 0,
"auth": 4,
"dhcp": 0,
"dns": 0,
"success": 10
}
}
}
}
},
"summary": "Aggregated connectivity info for a given client on this network",
"tags": [
"wireless",
"monitor",
"clients",
"connectionStats"
]
}
},
"/networks/{networkId}/wireless/clients/{clientId}/connectivityEvents": {
"get": {
"description": "List the wireless connectivity events for a client within a network in the timespan.",
"operationId": "getNetworkWirelessClientConnectivityEvents",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "clientId",
"in": "path",
"description": "Client ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"assoc",
"auth",
"connection",
"deauth",
"dhcp",
"disassoc",
"dns",
"roam",
"sticky"
]
},
"name": "types",
"in": "query",
"description": "A list of event types to include. If not specified, events of all types will be returned. Valid types are 'assoc', 'disassoc', 'auth', 'deauth', 'dns', 'dhcp', 'roam', 'connection' and/or 'sticky'."
},
{
"type": "string",
"enum": [
"2.4",
"5",
"6"
],
"name": "band",
"in": "query",
"description": "Filter results by band. Valid bands are '2.4', '5' or '6'."
},
{
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14
],
"name": "ssidNumber",
"in": "query",
"description": "Filter results by SSID. If not specified, events for all SSIDs will be returned."
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"bad",
"good",
"info",
"warn"
]
},
"name": "includedSeverities",
"in": "query",
"description": "A list of severities to include. If not specified, events of all severities will be returned. Valid severities are 'good', 'info', 'warn' and/or 'bad'."
},
{
"type": "string",
"name": "deviceSerial",
"in": "query",
"description": "Filter results by an AP's serial number."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"occurredAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp at which the event occurred"
},
"band": {
"type": "string",
"enum": [
"2.4",
"5",
"6"
],
"description": "Wireless band the event occurred on"
},
"ssidNumber": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14
],
"description": "Number of the SSID the event occurred in"
},
"type": {
"type": "string",
"enum": [
"assoc",
"auth",
"connection",
"deauth",
"dhcp",
"disassoc",
"dns",
"roam",
"sticky"
],
"description": "Event type"
},
"subtype": {
"type": "string",
"description": "Event subtype"
},
"severity": {
"type": "string",
"description": "Event severity"
},
"durationMs": {
"type": "integer",
"description": "Duration of the event in milliseconds"
},
"channel": {
"type": "integer",
"description": "Wireless channel the event occurred over"
},
"rssi": {
"type": "integer",
"description": "RSSI recorded at the time of the event"
},
"eventData": {
"type": "object",
"additionalProperties": true,
"description": "Additional information relevant to the given event. Properties vary based on event type."
},
"deviceSerial": {
"type": "string",
"description": "Serial number of the device the event occurred for"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"occurredAt": "2018-02-11T00:00:00.090210Z",
"band": "5",
"ssidNumber": 1,
"type": "auth",
"subtype": "success",
"severity": "bad",
"durationMs": 100,
"channel": 44,
"rssi": 80,
"deviceSerial": "Q234-ABCD-5678"
}
]
}
}
},
"summary": "List the wireless connectivity events for a client within a network in the timespan.",
"tags": [
"wireless",
"monitor",
"clients",
"connectivityEvents"
]
}
},
"/networks/{networkId}/wireless/clients/{clientId}/healthScores": {
"get": {
"description": "Fetch the health scores for a given client on this network. Clients are identified by their MAC or ID",
"operationId": "getNetworkWirelessClientHealthScores",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "clientId",
"in": "path",
"description": "Client ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"mac": "22:33:44:55:66:77",
"clientId": "k74272e",
"performance": {
"latest": 80,
"currentConnection": 100
},
"onboarding": {
"latest": 100
}
}
}
}
},
"summary": "Fetch the health scores for a given client on this network",
"tags": [
"wireless",
"monitor",
"clients",
"healthScores"
],
"x-release-stage": "beta"
}
},
"/networks/{networkId}/wireless/clients/{clientId}/latencyHistory": {
"get": {
"description": "Return the latency history for a client. Clients can be identified by a client key or either the MAC or IP depending on whether the network uses Track-by-IP. The latency data is from a sample of 2% of packets and is grouped into 4 traffic categories: background, best effort, video, voice. Within these categories the sampled packet counters are bucketed by latency in milliseconds.",
"operationId": "getNetworkWirelessClientLatencyHistory",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "clientId",
"in": "path",
"description": "Client ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 791 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 791 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 68342400,
"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 791 days. The default is 1 day."
},
{
"type": "integer",
"name": "resolution",
"in": "query",
"description": "The time resolution in seconds for returned data. The valid resolutions are: 86400. The default is 86400."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"t0": {
"type": "integer",
"description": "The latency history bucket start time in seconds"
},
"t1": {
"type": "integer",
"description": "The latency history bucket end time in seconds"
},
"latencyBinsByCategory": {
"type": "object",
"properties": {
"backgroundTraffic": {
"type": "object",
"properties": {
"0.5": {
"type": "integer",
"description": "The latency bucket for background traffic in 0.5 seconds"
},
"1.0": {
"type": "integer",
"description": "The latency bucket for background traffic in 1.0 seconds"
},
"2.0": {
"type": "integer",
"description": "The latency bucket for background traffic in 2.0 seconds"
},
"4.0": {
"type": "integer",
"description": "The latency bucket for background traffic in 4.0 seconds"
},
"8.0": {
"type": "integer",
"description": "The latency bucket for background traffic in 8.0 seconds"
},
"16.0": {
"type": "integer",
"description": "The latency bucket for background traffic in 16.0 seconds"
},
"32.0": {
"type": "integer",
"description": "The latency bucket for background traffic in 32.0 seconds"
},
"64.0": {
"type": "integer",
"description": "The latency bucket for background traffic in 64.0 seconds"
},
"128.0": {
"type": "integer",
"description": "The latency bucket for background traffic in 128.0 seconds"
},
"256.0": {
"type": "integer",
"description": "The latency bucket for background traffic in 256.0 seconds"
},
"512.0": {
"type": "integer",
"description": "The latency bucket for background traffic in 512.0 seconds"
},
"1024.0": {
"type": "integer",
"description": "The latency bucket for background traffic in 1024.0 seconds"
},
"2048.0": {
"type": "integer",
"description": "The latency bucket for background traffic in 2048.0 seconds"
}
},
"description": "The time bucket's background traffic latency history"
},
"bestEffortTraffic": {
"type": "object",
"properties": {
"0.5": {
"type": "integer",
"description": "The latency bucket for best effort traffic in 0.5 seconds"
},
"1.0": {
"type": "integer",
"description": "The latency bucket for best effort traffic in 1.0 seconds"
},
"2.0": {
"type": "integer",
"description": "The latency bucket for best effort traffic in 2.0 seconds"
},
"4.0": {
"type": "integer",
"description": "The latency bucket for best effort traffic in 4.0 seconds"
},
"8.0": {
"type": "integer",
"description": "The latency bucket for best effort traffic in 8.0 seconds"
},
"16.0": {
"type": "integer",
"description": "The latency bucket for best effort traffic in 16.0 seconds"
},
"32.0": {
"type": "integer",
"description": "The latency bucket for best effort traffic in 32.0 seconds"
},
"64.0": {
"type": "integer",
"description": "The latency bucket for best effort traffic in 64.0 seconds"
},
"128.0": {
"type": "integer",
"description": "The latency bucket for best effort traffic in 128.0 seconds"
},
"256.0": {
"type": "integer",
"description": "The latency bucket for best effort traffic in 256.0 seconds"
},
"512.0": {
"type": "integer",
"description": "The latency bucket for best effort traffic in 512.0 seconds"
},
"1024.0": {
"type": "integer",
"description": "The latency bucket for best effort traffic in 1024.0 seconds"
},
"2048.0": {
"type": "integer",
"description": "The latency bucket for best effort traffic in 2048.0 seconds"
}
},
"description": "The time bucket's best effort traffic latency history"
},
"videoTraffic": {
"type": "object",
"properties": {
"0.5": {
"type": "integer",
"description": "The latency bucket for video traffic in 0.5 seconds"
},
"1.0": {
"type": "integer",
"description": "The latency bucket for video traffic in 1.0 seconds"
},
"2.0": {
"type": "integer",
"description": "The latency bucket for video traffic in 2.0 seconds"
},
"4.0": {
"type": "integer",
"description": "The latency bucket for video traffic in 4.0 seconds"
},
"8.0": {
"type": "integer",
"description": "The latency bucket for video traffic in 8.0 seconds"
},
"16.0": {
"type": "integer",
"description": "The latency bucket for video traffic in 16.0 seconds"
},
"32.0": {
"type": "integer",
"description": "The latency bucket for video traffic in 32.0 seconds"
},
"64.0": {
"type": "integer",
"description": "The latency bucket for video traffic in 64.0 seconds"
},
"128.0": {
"type": "integer",
"description": "The latency bucket for video traffic in 128.0 seconds"
},
"256.0": {
"type": "integer",
"description": "The latency bucket for video traffic in 256.0 seconds"
},
"512.0": {
"type": "integer",
"description": "The latency bucket for video traffic in 512.0 seconds"
},
"1024.0": {
"type": "integer",
"description": "The latency bucket for video traffic in 1024.0 seconds"
},
"2048.0": {
"type": "integer",
"description": "The latency bucket for video traffic in 2048.0 seconds"
}
},
"description": "The time bucket's video traffic latency history"
},
"voiceTraffic": {
"type": "object",
"properties": {
"0.5": {
"type": "integer",
"description": "The latency bucket for voice traffic in 0.5 seconds"
},
"1.0": {
"type": "integer",
"description": "The latency bucket for voice traffic in 1.0 seconds"
},
"2.0": {
"type": "integer",
"description": "The latency bucket for voice traffic in 2.0 seconds"
},
"4.0": {
"type": "integer",
"description": "The latency bucket for voice traffic in 4.0 seconds"
},
"8.0": {
"type": "integer",
"description": "The latency bucket for voice traffic in 8.0 seconds"
},
"16.0": {
"type": "integer",
"description": "The latency bucket for voice traffic in 16.0 seconds"
},
"32.0": {
"type": "integer",
"description": "The latency bucket for voice traffic in 32.0 seconds"
},
"64.0": {
"type": "integer",
"description": "The latency bucket for voice traffic in 64.0 seconds"
},
"128.0": {
"type": "integer",
"description": "The latency bucket for voice traffic in 128.0 seconds"
},
"256.0": {
"type": "integer",
"description": "The latency bucket for voice traffic in 256.0 seconds"
},
"512.0": {
"type": "integer",
"description": "The latency bucket for voice traffic in 512.0 seconds"
},
"1024.0": {
"type": "integer",
"description": "The latency bucket for voice traffic in 1024.0 seconds"
},
"2048.0": {
"type": "integer",
"description": "The latency bucket for voice traffic in 2048.0 seconds"
}
},
"description": "The time bucket's voice traffic latency history"
}
},
"description": "The latency buckets by category"
}
}
}
},
"examples": {
"application/json": [
{
"t0": 1550534400,
"t1": 1550620800,
"latencyBinsByCategory": {
"backgroundTraffic": {
"0.5": 41750,
"1.0": 21552,
"2.0": 59940,
"4.0": 146622,
"8.0": 57354,
"16.0": 0,
"32.0": 9954,
"64.0": 0,
"128.0": 0,
"256.0": 1896,
"512.0": 0,
"1024.0": 0,
"2048.0": 0
},
"bestEffortTraffic": {
"0.5": 1840899,
"1.0": 1644506,
"2.0": 629958,
"4.0": 449564,
"8.0": 2009658,
"16.0": 1329568,
"32.0": 282168,
"64.0": 97573,
"128.0": 191977,
"256.0": 30560,
"512.0": 26032,
"1024.0": 4943,
"2048.0": 12072
},
"videoTraffic": {
"0.5": 0,
"1.0": 0,
"2.0": 0,
"4.0": 0,
"8.0": 0,
"16.0": 0,
"32.0": 0,
"64.0": 0,
"128.0": 0,
"256.0": 0,
"512.0": 0,
"1024.0": 0,
"2048.0": 0
},
"voiceTraffic": {
"0.5": 716,
"1.0": 948,
"2.0": 474,
"4.0": 78,
"8.0": 0,
"16.0": 0,
"32.0": 0,
"64.0": 0,
"128.0": 0,
"256.0": 0,
"512.0": 0,
"1024.0": 0,
"2048.0": 0
}
}
}
]
}
}
},
"summary": "Return the latency history for a client",
"tags": [
"wireless",
"monitor",
"clients",
"latencyHistory"
]
}
},
"/networks/{networkId}/wireless/clients/{clientId}/latencyStats": {
"get": {
"description": "Aggregated latency info for a given client on this network. Clients are identified by their MAC.",
"operationId": "getNetworkWirelessClientLatencyStats",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "clientId",
"in": "path",
"description": "Client ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 180 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 7 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 604800,
"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 7 days."
},
{
"type": "string",
"enum": [
"2.4",
"5",
"6"
],
"name": "band",
"in": "query",
"description": "Filter results by band (either '2.4', '5' or '6'). Note that data prior to February 2020 will not have band information."
},
{
"type": "integer",
"name": "ssid",
"in": "query",
"description": "Filter results by SSID"
},
{
"type": "integer",
"name": "vlan",
"in": "query",
"description": "Filter results by VLAN"
},
{
"type": "string",
"name": "apTag",
"in": "query",
"description": "Filter results by AP Tag"
},
{
"type": "string",
"name": "fields",
"in": "query",
"description": "Partial selection: If present, this call will return only the selected fields of [\"rawDistribution\", \"avg\"]. All fields will be returned by default. Selected fields must be entered as a comma separated string."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"mac": "00:61:71:c8:51:27",
"latencyStats": {
"backgroundTraffic": {
"rawDistribution": {
"0": 1234,
"1": 2345,
"2": 3456,
"4": 4567,
"8": 5678,
"16": 6789,
"32": 7890,
"64": 8901,
"128": 9012,
"256": 83,
"512": 1234,
"1024": 2345,
"2048": 9999
},
"avg": 606.52
},
"bestEffortTraffic": "same shape as backgroundTraffic",
"videoTraffic": "same shape as backgroundTraffic",
"voiceTraffic": "same shape as backgroundTraffic"
}
}
}
}
},
"summary": "Aggregated latency info for a given client on this network",
"tags": [
"wireless",
"monitor",
"clients",
"latencyStats"
]
}
},
"/networks/{networkId}/wireless/connectionStats": {
"get": {
"description": "Aggregated connectivity info for this network",
"operationId": "getNetworkWirelessConnectionStats",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 180 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 7 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 604800,
"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 7 days."
},
{
"type": "string",
"enum": [
"2.4",
"5",
"6"
],
"name": "band",
"in": "query",
"description": "Filter results by band (either '2.4', '5' or '6'). Note that data prior to February 2020 will not have band information."
},
{
"type": "integer",
"name": "ssid",
"in": "query",
"description": "Filter results by SSID"
},
{
"type": "integer",
"name": "vlan",
"in": "query",
"description": "Filter results by VLAN"
},
{
"type": "string",
"name": "apTag",
"in": "query",
"description": "Filter results by AP Tag"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"assoc": {
"type": "integer",
"description": "The number of failed association attempts"
},
"auth": {
"type": "integer",
"description": "The number of failed authentication attempts"
},
"dhcp": {
"type": "integer",
"description": "The number of failed DHCP attempts"
},
"dns": {
"type": "integer",
"description": "The number of failed DNS attempts"
},
"success": {
"type": "integer",
"description": "The number of successful connection attempts"
}
}
},
"examples": {
"application/json": {
"assoc": 1,
"auth": 5,
"dhcp": 0,
"dns": 0,
"success": 51
}
}
}
},
"summary": "Aggregated connectivity info for this network",
"tags": [
"wireless",
"monitor",
"connectionStats"
]
}
},
"/networks/{networkId}/wireless/dataRateHistory": {
"get": {
"description": "Return PHY data rates over time for a network, device, or network client",
"operationId": "getNetworkWirelessDataRateHistory",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"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 7 days."
},
{
"type": "integer",
"name": "resolution",
"in": "query",
"description": "The time resolution in seconds for returned data. The valid resolutions are: 300, 600, 1200, 3600, 14400, 86400. The default is 86400."
},
{
"type": "boolean",
"name": "autoResolution",
"in": "query",
"description": "Automatically select a data resolution based on the given timespan; this overrides the value specified by the 'resolution' parameter. The default setting is false."
},
{
"type": "string",
"name": "clientId",
"in": "query",
"description": "Filter results by network client."
},
{
"type": "string",
"name": "deviceSerial",
"in": "query",
"description": "Filter results by device."
},
{
"type": "string",
"name": "apTag",
"in": "query",
"description": "Filter results by AP tag."
},
{
"type": "string",
"enum": [
"2.4",
"5",
"6"
],
"name": "band",
"in": "query",
"description": "Filter results by band (either '2.4', '5' or '6')."
},
{
"type": "integer",
"name": "ssid",
"in": "query",
"description": "Filter results by SSID number."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startTs": {
"type": "string",
"format": "date-time",
"description": "The start time of the query range"
},
"endTs": {
"type": "string",
"format": "date-time",
"description": "The end time of the query range"
},
"averageKbps": {
"type": "integer",
"description": "Average data rate in kilobytes-per-second"
},
"downloadKbps": {
"type": "integer",
"description": "Download rate in kilobytes-per-second"
},
"uploadKbps": {
"type": "integer",
"description": "Upload rate in kilobytes-per-second"
}
}
}
},
"examples": {
"application/json": [
{
"startTs": "2020-01-01T00:00:00Z",
"endTs": "2020-01-01T01:00:00Z",
"averageKbps": 151806,
"downloadKbps": 144839,
"uploadKbps": 158837
}
]
}
}
},
"summary": "Return PHY data rates over time for a network, device, or network client",
"tags": [
"wireless",
"monitor",
"dataRateHistory"
]
}
},
"/networks/{networkId}/wireless/devices/connectionStats": {
"get": {
"description": "Aggregated connectivity info for this network, grouped by node",
"operationId": "getNetworkWirelessDevicesConnectionStats",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 180 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 7 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 604800,
"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 7 days."
},
{
"type": "string",
"enum": [
"2.4",
"5",
"6"
],
"name": "band",
"in": "query",
"description": "Filter results by band (either '2.4', '5' or '6'). Note that data prior to February 2020 will not have band information."
},
{
"type": "integer",
"name": "ssid",
"in": "query",
"description": "Filter results by SSID"
},
{
"type": "integer",
"name": "vlan",
"in": "query",
"description": "Filter results by VLAN"
},
{
"type": "string",
"name": "apTag",
"in": "query",
"description": "Filter results by AP Tag"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "The serial number for the device"
},
"connectionStats": {
"type": "object",
"properties": {
"assoc": {
"type": "integer",
"description": "The number of failed association attempts"
},
"auth": {
"type": "integer",
"description": "The number of failed authentication attempts"
},
"dhcp": {
"type": "integer",
"description": "The number of failed DHCP attempts"
},
"dns": {
"type": "integer",
"description": "The number of failed DNS attempts"
},
"success": {
"type": "integer",
"description": "The number of successful connection attempts"
}
},
"description": "The connection stats of the device"
}
}
}
},
"examples": {
"application/json": [
{
"serial": "Q234-ABCD-5678",
"connectionStats": {
"assoc": 0,
"auth": 1,
"dhcp": 0,
"dns": 0,
"success": 43
}
}
]
}
}
},
"summary": "Aggregated connectivity info for this network, grouped by node",
"tags": [
"wireless",
"monitor",
"devices",
"connectionStats"
]
}
},
"/networks/{networkId}/wireless/devices/healthScores": {
"get": {
"description": "Fetch the health scores of all APs on this network",
"operationId": "getNetworkWirelessDevicesHealthScores",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"device": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "device serial number"
}
},
"description": "device information"
},
"performance": {
"type": "object",
"properties": {
"latest": {
"type": "integer",
"description": "device performance score"
}
},
"description": "performance information"
},
"onboarding": {
"type": "object",
"properties": {
"latest": {
"type": "integer",
"description": "device onboarding score"
}
},
"description": "onboarding information"
}
}
}
},
"examples": {
"application/json": [
{
"device": {
"serial": "Q234-ABCD-5678"
},
"performance": {
"latest": 80
},
"onboarding": {
"latest": 20
}
}
]
}
}
},
"summary": "Fetch the health scores of all APs on this network",
"tags": [
"wireless",
"monitor",
"devices",
"healthScores"
],
"x-release-stage": "beta"
}
},
"/networks/{networkId}/wireless/devices/latencyStats": {
"get": {
"description": "Aggregated latency info for this network, grouped by node",
"operationId": "getNetworkWirelessDevicesLatencyStats",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 180 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 7 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 604800,
"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 7 days."
},
{
"type": "string",
"enum": [
"2.4",
"5",
"6"
],
"name": "band",
"in": "query",
"description": "Filter results by band (either '2.4', '5' or '6'). Note that data prior to February 2020 will not have band information."
},
{
"type": "integer",
"name": "ssid",
"in": "query",
"description": "Filter results by SSID"
},
{
"type": "integer",
"name": "vlan",
"in": "query",
"description": "Filter results by VLAN"
},
{
"type": "string",
"name": "apTag",
"in": "query",
"description": "Filter results by AP Tag"
},
{
"type": "string",
"name": "fields",
"in": "query",
"description": "Partial selection: If present, this call will return only the selected fields of [\"rawDistribution\", \"avg\"]. All fields will be returned by default. Selected fields must be entered as a comma separated string."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"serial": "Q2JC-2MJM-FHRD",
"latencyStats": {
"backgroundTraffic": {
"rawDistribution": {
"0": 1234,
"1": 2345,
"2": 3456,
"4": 4567,
"8": 5678,
"16": 6789,
"32": 7890,
"64": 8901,
"128": 9012,
"256": 83,
"512": 1234,
"1024": 2345,
"2048": 9999
},
"avg": 606.52
},
"bestEffortTraffic": "same shape as backgroundTraffic",
"videoTraffic": "same shape as backgroundTraffic",
"voiceTraffic": "same shape as backgroundTraffic"
}
},
{
"serial": "Q2FJ-3SHB-Y2K2",
"latencyStats": {
"backgroundTraffic": {
"rawDistribution": {
"0": 1234,
"1": 2345,
"2": 3456,
"4": 4567,
"8": 5678,
"16": 6789,
"32": 7890,
"64": 8901,
"128": 9012,
"256": 83,
"512": 1234,
"1024": 2345,
"2048": 9999
},
"avg": 606.52
},
"bestEffortTraffic": "same shape as backgroundTraffic",
"videoTraffic": "same shape as backgroundTraffic",
"voiceTraffic": "same shape as backgroundTraffic"
}
}
]
}
}
},
"summary": "Aggregated latency info for this network, grouped by node",
"tags": [
"wireless",
"monitor",
"devices",
"latencyStats"
]
}
},
"/networks/{networkId}/wireless/ethernet/ports/profiles": {
"get": {
"description": "List the AP port profiles for this network",
"operationId": "getNetworkWirelessEthernetPortsProfiles",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"profileId": {
"type": "string",
"description": "AP port profile ID"
},
"name": {
"type": "string",
"description": "AP port profile name"
},
"isDefault": {
"type": "boolean",
"description": "Is default profile"
},
"ports": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name"
},
"number": {
"type": "integer",
"description": "Number"
},
"enabled": {
"type": "boolean",
"description": "Enabled"
},
"ssid": {
"type": "integer",
"description": "Ssid number"
},
"pskGroupId": {
"type": "string",
"description": "PSK Group number"
}
}
},
"description": "Ports config"
},
"usbPorts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name"
},
"enabled": {
"type": "boolean",
"description": "Enabled"
},
"ssid": {
"type": "integer",
"description": "Ssid number"
}
}
},
"description": "Usb ports config"
}
}
}
},
"examples": {
"application/json": [
{
"profileId": "1001",
"name": "Ap Port Profile Name",
"isDefault": false,
"ports": [
{
"name": "port 1",
"number": 1,
"enabled": true,
"ssid": 1,
"pskGroupId": "100"
}
],
"usbPorts": [
{
"name": "usb port",
"enabled": true,
"ssid": 5
}
]
}
]
}
}
},
"summary": "List the AP port profiles for this network",
"tags": [
"wireless",
"configure",
"ethernet",
"ports",
"profiles"
]
},
"post": {
"description": "Create an AP port profile",
"operationId": "createNetworkWirelessEthernetPortsProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkWirelessEthernetPortsProfile",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "AP port profile name"
},
"ports": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "AP port name"
},
"enabled": {
"type": "boolean",
"description": "AP port enabled"
},
"ssid": {
"type": "integer",
"description": "AP port ssid number"
},
"pskGroupId": {
"type": "string",
"description": "AP port PSK Group ID"
}
},
"required": [
"name"
]
},
"description": "AP ports configuration"
},
"usbPorts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "AP usb port name"
},
"enabled": {
"type": "boolean",
"description": "AP usb port enabled"
},
"ssid": {
"type": "integer",
"description": "AP usb port ssid number"
}
},
"required": [
"name"
]
},
"description": "AP usb ports configuration"
}
},
"example": {
"name": "name",
"ports": [
{
"name": "port",
"enabled": true,
"ssid": 1,
"pskGroupId": "2"
}
],
"usbPorts": [
{
"name": "usb port",
"enabled": true,
"ssid": 2
}
]
},
"required": [
"name",
"ports"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"profileId": {
"type": "string",
"description": "AP port profile ID"
},
"name": {
"type": "string",
"description": "AP port profile name"
},
"isDefault": {
"type": "boolean",
"description": "Is default profile"
},
"ports": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name"
},
"number": {
"type": "integer",
"description": "Number"
},
"enabled": {
"type": "boolean",
"description": "Enabled"
},
"ssid": {
"type": "integer",
"description": "Ssid number"
},
"pskGroupId": {
"type": "string",
"description": "PSK Group number"
}
}
},
"description": "Ports config"
},
"usbPorts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name"
},
"enabled": {
"type": "boolean",
"description": "Enabled"
},
"ssid": {
"type": "integer",
"description": "Ssid number"
}
}
},
"description": "Usb ports config"
}
}
},
"examples": {
"application/json": {
"profileId": "1001",
"name": "Ap Port Profile Name",
"isDefault": false,
"ports": [
{
"name": "port 1",
"number": 1,
"enabled": true,
"ssid": 1,
"pskGroupId": "100"
}
],
"usbPorts": [
{
"name": "usb port",
"enabled": true,
"ssid": 5
}
]
}
}
}
},
"summary": "Create an AP port profile",
"tags": [
"wireless",
"configure",
"ethernet",
"ports",
"profiles"
]
}
},
"/networks/{networkId}/wireless/ethernet/ports/profiles/assign": {
"post": {
"description": "Assign AP port profile to list of APs",
"operationId": "assignNetworkWirelessEthernetPortsProfiles",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "assignNetworkWirelessEthernetPortsProfiles",
"in": "body",
"schema": {
"type": "object",
"properties": {
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of AP serials"
},
"profileId": {
"type": "string",
"description": "AP profile ID"
}
},
"example": {
"serials": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
],
"profileId": "1001"
},
"required": [
"serials",
"profileId"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of updated AP serials"
},
"profileId": {
"type": "string",
"description": "AP profile ID"
}
}
},
"examples": {
"application/json": {
"serials": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
],
"profileId": "1001"
}
}
}
},
"summary": "Assign AP port profile to list of APs",
"tags": [
"wireless",
"configure",
"ethernet",
"ports",
"profiles"
]
}
},
"/networks/{networkId}/wireless/ethernet/ports/profiles/setDefault": {
"post": {
"description": "Set the AP port profile to be default for this network",
"operationId": "setNetworkWirelessEthernetPortsProfilesDefault",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "setNetworkWirelessEthernetPortsProfilesDefault",
"in": "body",
"schema": {
"type": "object",
"properties": {
"profileId": {
"type": "string",
"description": "AP profile ID"
}
},
"example": {
"profileId": "1001"
},
"required": [
"profileId"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"profileId": {
"type": "string",
"description": "AP profile ID"
}
}
},
"examples": {
"application/json": {
"profileId": "1001"
}
}
}
},
"summary": "Set the AP port profile to be default for this network",
"tags": [
"wireless",
"configure",
"ethernet",
"ports",
"profiles"
]
}
},
"/networks/{networkId}/wireless/ethernet/ports/profiles/{profileId}": {
"get": {
"description": "Show the AP port profile by ID for this network",
"operationId": "getNetworkWirelessEthernetPortsProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "profileId",
"in": "path",
"description": "Profile ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"profileId": {
"type": "string",
"description": "AP port profile ID"
},
"name": {
"type": "string",
"description": "AP port profile name"
},
"isDefault": {
"type": "boolean",
"description": "Is default profile"
},
"ports": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name"
},
"number": {
"type": "integer",
"description": "Number"
},
"enabled": {
"type": "boolean",
"description": "Enabled"
},
"ssid": {
"type": "integer",
"description": "Ssid number"
},
"pskGroupId": {
"type": "string",
"description": "PSK Group number"
}
}
},
"description": "Ports config"
},
"usbPorts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name"
},
"enabled": {
"type": "boolean",
"description": "Enabled"
},
"ssid": {
"type": "integer",
"description": "Ssid number"
}
}
},
"description": "Usb ports config"
}
}
},
"examples": {
"application/json": {
"profileId": "1001",
"name": "Ap Port Profile Name",
"isDefault": false,
"ports": [
{
"name": "port 1",
"number": 1,
"enabled": true,
"ssid": 1,
"pskGroupId": "100"
}
],
"usbPorts": [
{
"name": "usb port",
"enabled": true,
"ssid": 5
}
]
}
}
}
},
"summary": "Show the AP port profile by ID for this network",
"tags": [
"wireless",
"configure",
"ethernet",
"ports",
"profiles"
]
},
"put": {
"description": "Update the AP port profile by ID for this network",
"operationId": "updateNetworkWirelessEthernetPortsProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "profileId",
"in": "path",
"description": "Profile ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkWirelessEthernetPortsProfile",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "AP port profile name"
},
"ports": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "AP port name"
},
"enabled": {
"type": "boolean",
"description": "AP port enabled"
},
"ssid": {
"type": "integer",
"description": "AP port ssid number"
},
"pskGroupId": {
"type": "string",
"description": "AP port PSK Group number"
}
},
"required": [
"name"
]
},
"description": "AP ports configuration"
},
"usbPorts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "AP usb port name"
},
"enabled": {
"type": "boolean",
"description": "AP usb port enabled"
},
"ssid": {
"type": "integer",
"description": "AP usb port ssid number"
}
},
"required": [
"name"
]
},
"description": "AP usb ports configuration"
}
},
"example": {
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"profileId": {
"type": "string",
"description": "AP port profile ID"
},
"name": {
"type": "string",
"description": "AP port profile name"
},
"isDefault": {
"type": "boolean",
"description": "Is default profile"
},
"ports": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name"
},
"number": {
"type": "integer",
"description": "Number"
},
"enabled": {
"type": "boolean",
"description": "Enabled"
},
"ssid": {
"type": "integer",
"description": "Ssid number"
},
"pskGroupId": {
"type": "string",
"description": "PSK Group number"
}
}
},
"description": "Ports config"
},
"usbPorts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name"
},
"enabled": {
"type": "boolean",
"description": "Enabled"
},
"ssid": {
"type": "integer",
"description": "Ssid number"
}
}
},
"description": "Usb ports config"
}
}
},
"examples": {
"application/json": {
"profileId": "1001",
"name": "Ap Port Profile Name",
"isDefault": false,
"ports": [
{
"name": "port 1",
"number": 1,
"enabled": true,
"ssid": 1,
"pskGroupId": "100"
}
],
"usbPorts": [
{
"name": "usb port",
"enabled": true,
"ssid": 5
}
]
}
}
}
},
"summary": "Update the AP port profile by ID for this network",
"tags": [
"wireless",
"configure",
"ethernet",
"ports",
"profiles"
]
},
"delete": {
"description": "Delete an AP port profile",
"operationId": "deleteNetworkWirelessEthernetPortsProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "profileId",
"in": "path",
"description": "Profile ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete an AP port profile",
"tags": [
"wireless",
"configure",
"ethernet",
"ports",
"profiles"
]
}
},
"/networks/{networkId}/wireless/failedConnections": {
"get": {
"description": "List of all failed client connection events on this network in a given time range",
"operationId": "getNetworkWirelessFailedConnections",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 180 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 7 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 604800,
"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 7 days."
},
{
"type": "string",
"enum": [
"2.4",
"5",
"6"
],
"name": "band",
"in": "query",
"description": "Filter results by band (either '2.4', '5' or '6'). Note that data prior to February 2020 will not have band information."
},
{
"type": "integer",
"name": "ssid",
"in": "query",
"description": "Filter results by SSID"
},
{
"type": "integer",
"name": "vlan",
"in": "query",
"description": "Filter results by VLAN"
},
{
"type": "string",
"name": "apTag",
"in": "query",
"description": "Filter results by AP Tag"
},
{
"type": "string",
"name": "serial",
"in": "query",
"description": "Filter by AP"
},
{
"type": "string",
"name": "clientId",
"in": "query",
"description": "Filter by client MAC"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ssidNumber": {
"type": "integer",
"description": "SSID Number"
},
"vlan": {
"type": "integer",
"description": "LAN"
},
"clientMac": {
"type": "string",
"description": "Client Mac"
},
"serial": {
"type": "string",
"description": "Serial Number"
},
"failureStep": {
"type": "string",
"description": "The failed onboarding step. One of: assoc, auth, dhcp, dns."
},
"type": {
"type": "string",
"description": "The failure type in the onboarding step"
},
"ts": {
"type": "string",
"format": "date-time",
"description": "The timestamp when the client mac failed"
}
}
}
},
"examples": {
"application/json": [
{
"ssidNumber": 1,
"vlan": 100,
"clientMac": "22:33:44:55:66:77",
"serial": "Q234-ABCD-5678",
"failureStep": "dns",
"type": "802.1X auth fail",
"ts": "2018-02-11T00:00:00.090210Z"
}
]
}
}
},
"summary": "List of all failed client connection events on this network in a given time range",
"tags": [
"wireless",
"monitor",
"failedConnections"
]
}
},
"/networks/{networkId}/wireless/latencyHistory": {
"get": {
"description": "Return average wireless latency over time for a network, device, or network client",
"operationId": "getNetworkWirelessLatencyHistory",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"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 7 days."
},
{
"type": "integer",
"name": "resolution",
"in": "query",
"description": "The time resolution in seconds for returned data. The valid resolutions are: 300, 600, 1200, 3600, 14400, 86400. The default is 86400."
},
{
"type": "boolean",
"name": "autoResolution",
"in": "query",
"description": "Automatically select a data resolution based on the given timespan; this overrides the value specified by the 'resolution' parameter. The default setting is false."
},
{
"type": "string",
"name": "clientId",
"in": "query",
"description": "Filter results by network client."
},
{
"type": "string",
"name": "deviceSerial",
"in": "query",
"description": "Filter results by device."
},
{
"type": "string",
"name": "apTag",
"in": "query",
"description": "Filter results by AP tag."
},
{
"type": "string",
"enum": [
"2.4",
"5",
"6"
],
"name": "band",
"in": "query",
"description": "Filter results by band (either '2.4', '5' or '6')."
},
{
"type": "integer",
"name": "ssid",
"in": "query",
"description": "Filter results by SSID number."
},
{
"type": "string",
"enum": [
"backgroundTraffic",
"bestEffortTraffic",
"videoTraffic",
"voiceTraffic"
],
"name": "accessCategory",
"in": "query",
"description": "Filter by access category."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startTs": {
"type": "string",
"format": "date-time",
"description": "The start time of the query range"
},
"endTs": {
"type": "string",
"format": "date-time",
"description": "The end time of the query range"
},
"avgLatencyMs": {
"type": "integer",
"description": "Average latency in milliseconds"
}
}
}
},
"examples": {
"application/json": [
{
"startTs": "2020-01-01T00:00:00Z",
"endTs": "2020-01-01T01:00:00Z",
"avgLatencyMs": 29
}
]
}
}
},
"summary": "Return average wireless latency over time for a network, device, or network client",
"tags": [
"wireless",
"monitor",
"latencyHistory"
]
}
},
"/networks/{networkId}/wireless/latencyStats": {
"get": {
"description": "Aggregated latency info for this network",
"operationId": "getNetworkWirelessLatencyStats",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 180 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 7 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 604800,
"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 7 days."
},
{
"type": "string",
"enum": [
"2.4",
"5",
"6"
],
"name": "band",
"in": "query",
"description": "Filter results by band (either '2.4', '5' or '6'). Note that data prior to February 2020 will not have band information."
},
{
"type": "integer",
"name": "ssid",
"in": "query",
"description": "Filter results by SSID"
},
{
"type": "integer",
"name": "vlan",
"in": "query",
"description": "Filter results by VLAN"
},
{
"type": "string",
"name": "apTag",
"in": "query",
"description": "Filter results by AP Tag"
},
{
"type": "string",
"name": "fields",
"in": "query",
"description": "Partial selection: If present, this call will return only the selected fields of [\"rawDistribution\", \"avg\"]. All fields will be returned by default. Selected fields must be entered as a comma separated string."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"backgroundTraffic": {
"rawDistribution": {
"0": 1234,
"1": 2345,
"2": 3456,
"4": 4567,
"8": 5678,
"16": 6789,
"32": 7890,
"64": 8901,
"128": 9012,
"256": 83,
"512": 1234,
"1024": 2345,
"2048": 9999
},
"avg": 606.52
},
"bestEffortTraffic": "same shape as backgroundTraffic",
"videoTraffic": "same shape as backgroundTraffic",
"voiceTraffic": "same shape as backgroundTraffic"
}
}
}
},
"summary": "Aggregated latency info for this network",
"tags": [
"wireless",
"monitor",
"latencyStats"
]
}
},
"/networks/{networkId}/wireless/meshStatuses": {
"get": {
"description": "List wireless mesh statuses for repeaters",
"operationId": "getNetworkWirelessMeshStatuses",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 500. Default is 50."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "The serial number for the device."
},
"meshRoute": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of device serials that make up the mesh."
},
"latestMeshPerformance": {
"type": "object",
"properties": {
"mbps": {
"type": "integer",
"description": "Average Mbps."
},
"metric": {
"type": "integer",
"description": "Represents the quality of the entire route from the repeater access point to its gateway access point."
},
"usagePercentage": {
"type": "string",
"description": "Mesh utilization as a percentage."
}
},
"description": "Current metrics on how the mesh is performing."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"serial": "Q234-ABCD-5678",
"meshRoute": [
"Q234-ABCD-5678",
"QWEY-SKTD-ST01",
"QWEY-SKTD-ST02"
],
"latestMeshPerformance": {
"mbps": 43,
"metric": 12345,
"usagePercentage": "100%"
}
}
]
}
}
},
"summary": "List wireless mesh statuses for repeaters",
"tags": [
"wireless",
"monitor",
"meshStatuses"
]
}
},
"/networks/{networkId}/wireless/radio/autoRf": {
"put": {
"description": "Update the AutoRF settings for a wireless network",
"operationId": "updateNetworkWirelessRadioAutoRf",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkWirelessRadioAutoRf",
"in": "body",
"schema": {
"type": "object",
"properties": {
"busyHour": {
"type": "object",
"properties": {
"schedule": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"automatic",
"manual"
],
"description": "The Busy Hour mode applied to the network when minimizeChanges is enabled. Must be one of 'automatic' or 'manual'. Automatic busy hour is only available on firmware versions >= MR 27.0"
},
"manual": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "The hour that Manual Busy Hour starts each day, in the network time zone"
},
"end": {
"type": "string",
"description": "The hour that Manual Busy Hour ends each day, in the network time zone"
}
},
"description": "Manual Busy Hour settings"
}
},
"description": "Busy hour mode settings"
},
"minimizeChanges": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Toggle for enabling or disabling Busy Hour in a network"
}
},
"description": "Minimize Changes settings"
}
},
"description": "Busy Hour settings"
},
"channel": {
"type": "object",
"properties": {
"avoidance": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Toggle for enabling or disabling channel avoidance in a network"
}
},
"description": "Avoidance settings"
}
},
"description": "Channel settings"
}
},
"example": {
"busyHour": {
"schedule": {
"mode": "automatic",
"manual": {
"start": "10:00",
"end": "15:00"
}
},
"minimizeChanges": {
"enabled": true
}
},
"channel": {
"avoidance": {
"enabled": true
}
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "Id of the network"
},
"name": {
"type": "string",
"description": "Name of the network"
},
"timeZone": {
"type": "string",
"description": "Time zone of the network"
},
"busyHour": {
"type": "object",
"properties": {
"schedule": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"automatic",
"manual"
],
"description": "The Busy Hour mode applied to the network when minimizeChanges is enabled. Must be one of 'automatic' or 'manual'. Automatic busy hour is only available on firmware versions >= MR 27.0"
},
"automatic": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "The hour that Automatic Busy Hour starts each day, in the network time zone"
},
"end": {
"type": "string",
"description": "The hour that Automatic Busy Hour ends each day, in the network time zone"
}
},
"description": "Automatic Busy Hour settings"
},
"manual": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "The hour that Manual Busy Hour starts each day, in the network time zone"
},
"end": {
"type": "string",
"description": "The hour that Manual Busy Hour ends each day, in the network time zone"
}
},
"description": "Manual Busy Hour settings"
}
},
"description": "Busy hour mode settings"
},
"minimizeChanges": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Toggle for enabling or disabling Busy Hour in a network"
}
},
"description": "Minimize Changes settings"
}
},
"description": "Busy Hour settings"
},
"channel": {
"type": "object",
"properties": {
"avoidance": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Toggle for enabling or disabling channel avoidance in a network"
}
},
"description": "Channel avoidance settings"
}
},
"description": "Channel settings"
}
}
},
"examples": {
"application/json": {
"networkId": "L_12345",
"name": "My Network",
"timeZone": "America/Los_Angeles",
"busyHour": {
"schedule": {
"mode": "automatic",
"automatic": {
"start": "08:00",
"end": "17:00"
},
"manual": {
"start": "10:00",
"end": "15:00"
}
},
"minimizeChanges": {
"enabled": true
}
},
"channel": {
"avoidance": {
"enabled": true
}
}
}
}
}
},
"summary": "Update the AutoRF settings for a wireless network",
"tags": [
"wireless",
"configure",
"radio",
"autoRf"
],
"x-release-stage": "beta"
}
},
"/networks/{networkId}/wireless/rfProfiles": {
"get": {
"description": "List RF profiles for this network",
"operationId": "getNetworkWirelessRfProfiles",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "boolean",
"name": "includeTemplateProfiles",
"in": "query",
"description": "If the network is bound to a template, this parameter controls whether or not the non-basic RF profiles defined on the template should be included in the response alongside the non-basic profiles defined on the bound network. Defaults to false."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The name of the new profile. Must be unique."
},
"networkId": {
"type": "string",
"description": "The network ID of the RF Profile"
},
"name": {
"type": "string",
"description": "The name of the new profile. Must be unique. This param is required on creation."
},
"clientBalancingEnabled": {
"type": "boolean",
"description": "Steers client to best available access point. Can be either true or false. Defaults to true."
},
"minBitrateType": {
"type": "string",
"description": "Minimum bitrate can be set to either 'band' or 'ssid'. Defaults to band."
},
"bandSelectionType": {
"type": "string",
"description": "Band selection can be set to either 'ssid' or 'ap'. This param is required on creation."
},
"apBandSettings": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'. Defaults to dual."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band. Can be either true or false. Defaults to true."
}
},
"description": "Settings that will be enabled if selectionType is set to 'ap'."
},
"twoFourGhzSettings": {
"type": "object",
"properties": {
"maxPower": {
"type": "integer",
"description": "Sets max power (dBm) of 2.4Ghz band. Can be integer between 2 and 30. Defaults to 30."
},
"minPower": {
"type": "integer",
"description": "Sets min power (dBm) of 2.4Ghz band. Can be integer between 2 and 30. Defaults to 5."
},
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of 2.4Ghz band. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'. Defaults to 11."
},
"validAutoChannels": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Sets valid auto channels for 2.4Ghz band. Can be one of '1', '6' or '11'. Defaults to [1, 6, 11]."
},
"axEnabled": {
"type": "boolean",
"description": "Determines whether ax radio on 2.4Ghz band is on or off. Can be either true or false. If false, we highly recommend disabling band steering. Defaults to true."
},
"rxsop": {
"type": "integer",
"description": "The RX-SOP level controls the sensitivity of the radio. It is strongly recommended to use RX-SOP only after consulting a wireless expert. RX-SOP can be configured in the range of -65 to -95 (dBm). A value of null will reset this to the default."
}
},
"description": "Settings related to 2.4Ghz band"
},
"fiveGhzSettings": {
"type": "object",
"properties": {
"maxPower": {
"type": "integer",
"description": "Sets max power (dBm) of 5Ghz band. Can be integer between 2 and 30. Defaults to 30."
},
"minPower": {
"type": "integer",
"description": "Sets min power (dBm) of 5Ghz band. Can be integer between 2 and 30. Defaults to 8."
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of 5Ghz band. Can be one of '6', '9', '12', '18', '24', '36', '48' or '54'. Defaults to 12."
},
"validAutoChannels": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Sets valid auto channels for 5Ghz band. Can be one of '36', '40', '44', '48', '52', '56', '60', '64', '100', '104', '108', '112', '116', '120', '124', '128', '132', '136', '140', '144', '149', '153', '157', '161' or '165'.Defaults to [36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144, 149, 153, 157, 161, 165]."
},
"channelWidth": {
"type": "string",
"description": "Sets channel width (MHz) for 5Ghz band. Can be one of 'auto', '20', '40' or '80'. Defaults to auto."
},
"rxsop": {
"type": "integer",
"description": "The RX-SOP level controls the sensitivity of the radio. It is strongly recommended to use RX-SOP only after consulting a wireless expert. RX-SOP can be configured in the range of -65 to -95 (dBm). A value of null will reset this to the default."
}
},
"description": "Settings related to 5Ghz band"
},
"sixGhzSettings": {
"type": "object",
"properties": {
"maxPower": {
"type": "integer",
"description": "Sets max power (dBm) of 6Ghz band. Can be integer between 2 and 30. Defaults to 30."
},
"minPower": {
"type": "integer",
"description": "Sets min power (dBm) of 6Ghz band. Can be integer between 2 and 30. Defaults to 8."
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of 6Ghz band. Can be one of '6', '9', '12', '18', '24', '36', '48' or '54'. Defaults to 12."
},
"validAutoChannels": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Sets valid auto channels for 6Ghz band. Can be one of '1', '5', '9', '13', '17', '21', '25', '29', '33', '37', '41', '45', '49', '53', '57', '61', '65', '69', '73', '77', '81', '85', '89', '93', '97', '101', '105', '109', '113', '117', '121', '125', '129', '133', '137', '141', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229' or '233'. Defaults to auto."
},
"channelWidth": {
"type": "string",
"description": "Sets channel width (MHz) for 6Ghz band. Can be one of '0', '20', '40', '80' or '160'. Defaults to auto."
},
"rxsop": {
"type": "integer",
"description": "The RX-SOP level controls the sensitivity of the radio. It is strongly recommended to use RX-SOP only after consulting a wireless expert. RX-SOP can be configured in the range of -65 to -95 (dBm). A value of null will reset this to the default."
}
},
"description": "Settings related to 6Ghz band. Only applicable to networks with 6Ghz capable APs"
},
"transmission": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Toggle for radio transmission. When false, radios will not transmit at all."
}
},
"description": "Settings related to radio transmission."
},
"perSsidSettings": {
"type": "object",
"properties": {
"0": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 0"
},
"1": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 1"
},
"2": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 2"
},
"3": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 3"
},
"4": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 4"
},
"5": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 5"
},
"6": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 6"
},
"7": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 7"
},
"8": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 8"
},
"9": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 9"
},
"10": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 10"
},
"11": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 11"
},
"12": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 12"
},
"13": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 13"
},
"14": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 14"
}
},
"description": "Per-SSID radio settings by number."
},
"isIndoorDefault": {
"type": "boolean",
"description": "Set this profile as the default indoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default",
"x-release-stage": "beta"
},
"isOutdoorDefault": {
"type": "boolean",
"description": "Set this profile as the default outdoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default",
"x-release-stage": "beta"
}
}
},
"examples": {
"application/json": {
"id": "1234",
"networkId": "N_24329156",
"name": "Main Office",
"clientBalancingEnabled": true,
"minBitrateType": "band",
"bandSelectionType": "ap",
"apBandSettings": {
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"twoFourGhzSettings": {
"maxPower": 30,
"minPower": 5,
"minBitrate": 11.0,
"validAutoChannels": [
1,
6,
11
],
"axEnabled": true,
"rxsop": -95
},
"fiveGhzSettings": {
"maxPower": 30,
"minPower": 8,
"minBitrate": 12,
"validAutoChannels": [
36,
40,
44,
48,
52,
56,
60,
64,
100,
104,
108,
112,
116,
120,
124,
128,
132,
136,
140,
144,
149,
153,
157,
161,
165
],
"channelWidth": "auto",
"rxsop": -95
},
"sixGhzSettings": {
"maxPower": 30,
"minPower": 8,
"minBitrate": 12,
"validAutoChannels": [
1,
5,
9,
13,
17,
21,
25,
29,
33,
37,
41,
45,
49,
53,
57,
61,
65,
69,
73,
77,
81,
85,
89,
93,
97,
101,
105,
109,
113,
117,
121,
125,
129,
133,
137,
141,
145,
149,
153,
157,
161,
165,
169,
173,
177,
181,
185,
189,
193,
197,
201,
205,
209,
213,
217,
221,
225,
229,
233
],
"channelWidth": "auto",
"rxsop": -95
},
"transmission": {
"enabled": true
},
"perSsidSettings": {
"0": {
"name": "SSID 0",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"1": {
"name": "SSID 1",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"2": {
"name": "SSID 2",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"3": {
"name": "SSID 3",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"4": {
"name": "SSID 4",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"5": {
"name": "SSID 5",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"6": {
"name": "SSID 6",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"7": {
"name": "SSID 7",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"8": {
"name": "SSID 8",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"9": {
"name": "SSID 9",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"10": {
"name": "SSID 10",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"11": {
"name": "SSID 11",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"12": {
"name": "SSID 12",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"13": {
"name": "SSID 13",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"14": {
"name": "SSID 14",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
}
},
"isIndoorDefault": false,
"isOutdoorDefault": false
}
}
}
},
"summary": "List RF profiles for this network",
"tags": [
"wireless",
"configure",
"rfProfiles"
]
},
"post": {
"description": "Creates new RF profile for this network",
"operationId": "createNetworkWirelessRfProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "createNetworkWirelessRfProfile",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the new profile. Must be unique. This param is required on creation."
},
"clientBalancingEnabled": {
"type": "boolean",
"description": "Steers client to best available access point. Can be either true or false. Defaults to true."
},
"minBitrateType": {
"type": "string",
"enum": [
"band",
"ssid"
],
"description": "Minimum bitrate can be set to either 'band' or 'ssid'. Defaults to band."
},
"bandSelectionType": {
"type": "string",
"enum": [
"ap",
"ssid"
],
"description": "Band selection can be set to either 'ssid' or 'ap'. This param is required on creation."
},
"apBandSettings": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'. Defaults to dual."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band. Can be either true or false. Defaults to true."
}
},
"description": "Settings that will be enabled if selectionType is set to 'ap'."
},
"twoFourGhzSettings": {
"type": "object",
"properties": {
"maxPower": {
"type": "integer",
"description": "Sets max power (dBm) of 2.4Ghz band. Can be integer between 2 and 30. Defaults to 30."
},
"minPower": {
"type": "integer",
"description": "Sets min power (dBm) of 2.4Ghz band. Can be integer between 2 and 30. Defaults to 5."
},
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of 2.4Ghz band. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'. Defaults to 11."
},
"validAutoChannels": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Sets valid auto channels for 2.4Ghz band. Can be one of '1', '6' or '11'. Defaults to [1, 6, 11]."
},
"axEnabled": {
"type": "boolean",
"description": "Determines whether ax radio on 2.4Ghz band is on or off. Can be either true or false. If false, we highly recommend disabling band steering. Defaults to true."
},
"rxsop": {
"type": "integer",
"description": "The RX-SOP level controls the sensitivity of the radio. It is strongly recommended to use RX-SOP only after consulting a wireless expert. RX-SOP can be configured in the range of -65 to -95 (dBm). A value of null will reset this to the default."
}
},
"description": "Settings related to 2.4Ghz band"
},
"fiveGhzSettings": {
"type": "object",
"properties": {
"maxPower": {
"type": "integer",
"description": "Sets max power (dBm) of 5Ghz band. Can be integer between 2 and 30. Defaults to 30."
},
"minPower": {
"type": "integer",
"description": "Sets min power (dBm) of 5Ghz band. Can be integer between 2 and 30. Defaults to 8."
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of 5Ghz band. Can be one of '6', '9', '12', '18', '24', '36', '48' or '54'. Defaults to 12."
},
"validAutoChannels": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Sets valid auto channels for 5Ghz band. Can be one of '36', '40', '44', '48', '52', '56', '60', '64', '100', '104', '108', '112', '116', '120', '124', '128', '132', '136', '140', '144', '149', '153', '157', '161' or '165'.Defaults to [36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144, 149, 153, 157, 161, 165]."
},
"channelWidth": {
"type": "string",
"description": "Sets channel width (MHz) for 5Ghz band. Can be one of 'auto', '20', '40' or '80'. Defaults to auto."
},
"rxsop": {
"type": "integer",
"description": "The RX-SOP level controls the sensitivity of the radio. It is strongly recommended to use RX-SOP only after consulting a wireless expert. RX-SOP can be configured in the range of -65 to -95 (dBm). A value of null will reset this to the default."
}
},
"description": "Settings related to 5Ghz band"
},
"sixGhzSettings": {
"type": "object",
"properties": {
"maxPower": {
"type": "integer",
"description": "Sets max power (dBm) of 6Ghz band. Can be integer between 2 and 30. Defaults to 30."
},
"minPower": {
"type": "integer",
"description": "Sets min power (dBm) of 6Ghz band. Can be integer between 2 and 30. Defaults to 8."
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of 6Ghz band. Can be one of '6', '9', '12', '18', '24', '36', '48' or '54'. Defaults to 12."
},
"validAutoChannels": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Sets valid auto channels for 6Ghz band. Can be one of '1', '5', '9', '13', '17', '21', '25', '29', '33', '37', '41', '45', '49', '53', '57', '61', '65', '69', '73', '77', '81', '85', '89', '93', '97', '101', '105', '109', '113', '117', '121', '125', '129', '133', '137', '141', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229' or '233'.Defaults to [1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61, 65, 69, 73, 77, 81, 85, 89, 93, 97, 101, 105, 109, 113, 117, 121, 125, 129, 133, 137, 141, 145, 149, 153, 157, 161, 165, 169, 173, 177, 181, 185, 189, 193, 197, 201, 205, 209, 213, 217, 221, 225, 229, 233]."
},
"channelWidth": {
"type": "string",
"description": "Sets channel width (MHz) for 6Ghz band. Can be one of '0', '20', '40', '80' or '160'. Defaults to 0."
},
"rxsop": {
"type": "integer",
"description": "The RX-SOP level controls the sensitivity of the radio. It is strongly recommended to use RX-SOP only after consulting a wireless expert. RX-SOP can be configured in the range of -65 to -95 (dBm). A value of null will reset this to the default."
}
},
"description": "Settings related to 6Ghz band. Only applicable to networks with 6Ghz capable APs"
},
"transmission": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Toggle for radio transmission. When false, radios will not transmit at all."
}
},
"description": "Settings related to radio transmission."
},
"perSsidSettings": {
"type": "object",
"properties": {
"0": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 0"
},
"1": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 1"
},
"2": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 2"
},
"3": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 3"
},
"4": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 4"
},
"5": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 5"
},
"6": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 6"
},
"7": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 7"
},
"8": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 8"
},
"9": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 9"
},
"10": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 10"
},
"11": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 11"
},
"12": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 12"
},
"13": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 13"
},
"14": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 14"
}
},
"description": "Per-SSID radio settings by number."
},
"flexRadios": {
"type": "object",
"properties": {
"byModel": {
"type": "array",
"items": {
"type": "object",
"properties": {
"model": {
"type": "string",
"description": "Model of the AP"
},
"bands": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "Band to use for each flex radio. For example, ['6'] will set the AP's first flex radio to 6 GHz"
}
}
},
"description": "Flex radios by model."
}
},
"description": "Flex radio settings."
}
},
"example": {
"name": "Main Office",
"clientBalancingEnabled": true,
"minBitrateType": "band",
"bandSelectionType": "ap",
"apBandSettings": {
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"twoFourGhzSettings": {
"maxPower": 30,
"minPower": 5,
"minBitrate": 11.0,
"validAutoChannels": [
1,
6,
11
],
"axEnabled": true,
"rxsop": -95
},
"fiveGhzSettings": {
"maxPower": 30,
"minPower": 8,
"minBitrate": 12,
"validAutoChannels": [
36,
40,
44,
48,
52,
56,
60,
64,
100,
104,
108,
112,
116,
120,
124,
128,
132,
136,
140,
144,
149,
153,
157,
161,
165
],
"channelWidth": "auto",
"rxsop": -95
},
"sixGhzSettings": {
"maxPower": 30,
"minPower": 8,
"minBitrate": 12,
"validAutoChannels": [
1,
5,
9,
13,
17,
21,
25,
29,
33,
37,
41,
45,
49,
53,
57,
61,
65,
69,
73,
77,
81,
85,
89,
93,
97,
101,
105,
109,
113,
117,
121,
125,
129,
133,
137,
141,
145,
149,
153,
157,
161,
165,
169,
173,
177,
181,
185,
189,
193,
197,
201,
205,
209,
213,
217,
221,
225,
229,
233
],
"channelWidth": "auto",
"rxsop": -95
},
"transmission": {
"enabled": true
},
"perSsidSettings": {
"0": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"1": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"2": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"3": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"4": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"5": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"6": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"7": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"8": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"9": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"10": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"11": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"12": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"13": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"14": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
}
},
"flexRadios": {
"byModel": [
{
"model": "MR34",
"bands": [
"5"
]
}
]
}
},
"required": [
"name",
"bandSelectionType"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The name of the new profile. Must be unique."
},
"networkId": {
"type": "string",
"description": "The network ID of the RF Profile"
},
"name": {
"type": "string",
"description": "The name of the new profile. Must be unique. This param is required on creation."
},
"clientBalancingEnabled": {
"type": "boolean",
"description": "Steers client to best available access point. Can be either true or false. Defaults to true."
},
"minBitrateType": {
"type": "string",
"description": "Minimum bitrate can be set to either 'band' or 'ssid'. Defaults to band."
},
"bandSelectionType": {
"type": "string",
"description": "Band selection can be set to either 'ssid' or 'ap'. This param is required on creation."
},
"apBandSettings": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'. Defaults to dual."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band. Can be either true or false. Defaults to true."
}
},
"description": "Settings that will be enabled if selectionType is set to 'ap'."
},
"twoFourGhzSettings": {
"type": "object",
"properties": {
"maxPower": {
"type": "integer",
"description": "Sets max power (dBm) of 2.4Ghz band. Can be integer between 2 and 30. Defaults to 30."
},
"minPower": {
"type": "integer",
"description": "Sets min power (dBm) of 2.4Ghz band. Can be integer between 2 and 30. Defaults to 5."
},
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of 2.4Ghz band. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'. Defaults to 11."
},
"validAutoChannels": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Sets valid auto channels for 2.4Ghz band. Can be one of '1', '6' or '11'. Defaults to [1, 6, 11]."
},
"axEnabled": {
"type": "boolean",
"description": "Determines whether ax radio on 2.4Ghz band is on or off. Can be either true or false. If false, we highly recommend disabling band steering. Defaults to true."
},
"rxsop": {
"type": "integer",
"description": "The RX-SOP level controls the sensitivity of the radio. It is strongly recommended to use RX-SOP only after consulting a wireless expert. RX-SOP can be configured in the range of -65 to -95 (dBm). A value of null will reset this to the default."
}
},
"description": "Settings related to 2.4Ghz band"
},
"fiveGhzSettings": {
"type": "object",
"properties": {
"maxPower": {
"type": "integer",
"description": "Sets max power (dBm) of 5Ghz band. Can be integer between 2 and 30. Defaults to 30."
},
"minPower": {
"type": "integer",
"description": "Sets min power (dBm) of 5Ghz band. Can be integer between 2 and 30. Defaults to 8."
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of 5Ghz band. Can be one of '6', '9', '12', '18', '24', '36', '48' or '54'. Defaults to 12."
},
"validAutoChannels": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Sets valid auto channels for 5Ghz band. Can be one of '36', '40', '44', '48', '52', '56', '60', '64', '100', '104', '108', '112', '116', '120', '124', '128', '132', '136', '140', '144', '149', '153', '157', '161' or '165'.Defaults to [36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144, 149, 153, 157, 161, 165]."
},
"channelWidth": {
"type": "string",
"description": "Sets channel width (MHz) for 5Ghz band. Can be one of 'auto', '20', '40' or '80'. Defaults to auto."
},
"rxsop": {
"type": "integer",
"description": "The RX-SOP level controls the sensitivity of the radio. It is strongly recommended to use RX-SOP only after consulting a wireless expert. RX-SOP can be configured in the range of -65 to -95 (dBm). A value of null will reset this to the default."
}
},
"description": "Settings related to 5Ghz band"
},
"sixGhzSettings": {
"type": "object",
"properties": {
"maxPower": {
"type": "integer",
"description": "Sets max power (dBm) of 6Ghz band. Can be integer between 2 and 30. Defaults to 30."
},
"minPower": {
"type": "integer",
"description": "Sets min power (dBm) of 6Ghz band. Can be integer between 2 and 30. Defaults to 8."
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of 6Ghz band. Can be one of '6', '9', '12', '18', '24', '36', '48' or '54'. Defaults to 12."
},
"validAutoChannels": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Sets valid auto channels for 6Ghz band. Can be one of '1', '5', '9', '13', '17', '21', '25', '29', '33', '37', '41', '45', '49', '53', '57', '61', '65', '69', '73', '77', '81', '85', '89', '93', '97', '101', '105', '109', '113', '117', '121', '125', '129', '133', '137', '141', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229' or '233'. Defaults to auto."
},
"channelWidth": {
"type": "string",
"description": "Sets channel width (MHz) for 6Ghz band. Can be one of '0', '20', '40', '80' or '160'. Defaults to auto."
},
"rxsop": {
"type": "integer",
"description": "The RX-SOP level controls the sensitivity of the radio. It is strongly recommended to use RX-SOP only after consulting a wireless expert. RX-SOP can be configured in the range of -65 to -95 (dBm). A value of null will reset this to the default."
}
},
"description": "Settings related to 6Ghz band. Only applicable to networks with 6Ghz capable APs"
},
"transmission": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Toggle for radio transmission. When false, radios will not transmit at all."
}
},
"description": "Settings related to radio transmission."
},
"perSsidSettings": {
"type": "object",
"properties": {
"0": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 0"
},
"1": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 1"
},
"2": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 2"
},
"3": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 3"
},
"4": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 4"
},
"5": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 5"
},
"6": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 6"
},
"7": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 7"
},
"8": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 8"
},
"9": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 9"
},
"10": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 10"
},
"11": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 11"
},
"12": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 12"
},
"13": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 13"
},
"14": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 14"
}
},
"description": "Per-SSID radio settings by number."
},
"isIndoorDefault": {
"type": "boolean",
"description": "Set this profile as the default indoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default",
"x-release-stage": "beta"
},
"isOutdoorDefault": {
"type": "boolean",
"description": "Set this profile as the default outdoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default",
"x-release-stage": "beta"
}
}
},
"examples": {
"application/json": {
"id": "1234",
"networkId": "N_24329156",
"name": "Main Office",
"clientBalancingEnabled": true,
"minBitrateType": "band",
"bandSelectionType": "ap",
"apBandSettings": {
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"twoFourGhzSettings": {
"maxPower": 30,
"minPower": 5,
"minBitrate": 11.0,
"validAutoChannels": [
1,
6,
11
],
"axEnabled": true,
"rxsop": -95
},
"fiveGhzSettings": {
"maxPower": 30,
"minPower": 8,
"minBitrate": 12,
"validAutoChannels": [
36,
40,
44,
48,
52,
56,
60,
64,
100,
104,
108,
112,
116,
120,
124,
128,
132,
136,
140,
144,
149,
153,
157,
161,
165
],
"channelWidth": "auto",
"rxsop": -95
},
"sixGhzSettings": {
"maxPower": 30,
"minPower": 8,
"minBitrate": 12,
"validAutoChannels": [
1,
5,
9,
13,
17,
21,
25,
29,
33,
37,
41,
45,
49,
53,
57,
61,
65,
69,
73,
77,
81,
85,
89,
93,
97,
101,
105,
109,
113,
117,
121,
125,
129,
133,
137,
141,
145,
149,
153,
157,
161,
165,
169,
173,
177,
181,
185,
189,
193,
197,
201,
205,
209,
213,
217,
221,
225,
229,
233
],
"channelWidth": "auto",
"rxsop": -95
},
"transmission": {
"enabled": true
},
"perSsidSettings": {
"0": {
"name": "SSID 0",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"1": {
"name": "SSID 1",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"2": {
"name": "SSID 2",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"3": {
"name": "SSID 3",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"4": {
"name": "SSID 4",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"5": {
"name": "SSID 5",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"6": {
"name": "SSID 6",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"7": {
"name": "SSID 7",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"8": {
"name": "SSID 8",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"9": {
"name": "SSID 9",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"10": {
"name": "SSID 10",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"11": {
"name": "SSID 11",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"12": {
"name": "SSID 12",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"13": {
"name": "SSID 13",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"14": {
"name": "SSID 14",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
}
},
"isIndoorDefault": false,
"isOutdoorDefault": false
}
}
}
},
"summary": "Creates new RF profile for this network",
"tags": [
"wireless",
"configure",
"rfProfiles"
]
}
},
"/networks/{networkId}/wireless/rfProfiles/{rfProfileId}": {
"put": {
"description": "Updates specified RF profile for this network",
"operationId": "updateNetworkWirelessRfProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "rfProfileId",
"in": "path",
"description": "Rf profile ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkWirelessRfProfile",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the new profile. Must be unique."
},
"isIndoorDefault": {
"type": "boolean",
"x-release-stage": "beta",
"description": "Set this profile as the default indoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default"
},
"isOutdoorDefault": {
"type": "boolean",
"x-release-stage": "beta",
"description": "Set this profile as the default outdoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default"
},
"clientBalancingEnabled": {
"type": "boolean",
"description": "Steers client to best available access point. Can be either true or false."
},
"minBitrateType": {
"type": "string",
"enum": [
"band",
"ssid"
],
"description": "Minimum bitrate can be set to either 'band' or 'ssid'."
},
"bandSelectionType": {
"type": "string",
"enum": [
"ap",
"ssid"
],
"description": "Band selection can be set to either 'ssid' or 'ap'."
},
"apBandSettings": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band. Can be either true or false."
}
},
"description": "Settings that will be enabled if selectionType is set to 'ap'."
},
"twoFourGhzSettings": {
"type": "object",
"properties": {
"maxPower": {
"type": "integer",
"description": "Sets max power (dBm) of 2.4Ghz band. Can be integer between 2 and 30."
},
"minPower": {
"type": "integer",
"description": "Sets min power (dBm) of 2.4Ghz band. Can be integer between 2 and 30."
},
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of 2.4Ghz band. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"validAutoChannels": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Sets valid auto channels for 2.4Ghz band. Can be one of '1', '6' or '11'."
},
"axEnabled": {
"type": "boolean",
"description": "Determines whether ax radio on 2.4Ghz band is on or off. Can be either true or false. If false, we highly recommend disabling band steering."
},
"rxsop": {
"type": "integer",
"description": "The RX-SOP level controls the sensitivity of the radio. It is strongly recommended to use RX-SOP only after consulting a wireless expert. RX-SOP can be configured in the range of -65 to -95 (dBm). A value of null will reset this to the default."
}
},
"description": "Settings related to 2.4Ghz band"
},
"fiveGhzSettings": {
"type": "object",
"properties": {
"maxPower": {
"type": "integer",
"description": "Sets max power (dBm) of 5Ghz band. Can be integer between 2 and 30."
},
"minPower": {
"type": "integer",
"description": "Sets min power (dBm) of 5Ghz band. Can be integer between 2 and 30."
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of 5Ghz band. Can be one of '6', '9', '12', '18', '24', '36', '48' or '54'."
},
"validAutoChannels": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Sets valid auto channels for 5Ghz band. Can be one of '36', '40', '44', '48', '52', '56', '60', '64', '100', '104', '108', '112', '116', '120', '124', '128', '132', '136', '140', '144', '149', '153', '157', '161' or '165'."
},
"channelWidth": {
"type": "string",
"description": "Sets channel width (MHz) for 5Ghz band. Can be one of 'auto', '20', '40' or '80'."
},
"rxsop": {
"type": "integer",
"description": "The RX-SOP level controls the sensitivity of the radio. It is strongly recommended to use RX-SOP only after consulting a wireless expert. RX-SOP can be configured in the range of -65 to -95 (dBm). A value of null will reset this to the default."
}
},
"description": "Settings related to 5Ghz band"
},
"sixGhzSettings": {
"type": "object",
"properties": {
"maxPower": {
"type": "integer",
"description": "Sets max power (dBm) of 6Ghz band. Can be integer between 2 and 30."
},
"minPower": {
"type": "integer",
"description": "Sets min power (dBm) of 6Ghz band. Can be integer between 2 and 30."
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of 6Ghz band. Can be one of '6', '9', '12', '18', '24', '36', '48' or '54'."
},
"validAutoChannels": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Sets valid auto channels for 6Ghz band. Can be one of '1', '5', '9', '13', '17', '21', '25', '29', '33', '37', '41', '45', '49', '53', '57', '61', '65', '69', '73', '77', '81', '85', '89', '93', '97', '101', '105', '109', '113', '117', '121', '125', '129', '133', '137', '141', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229' or '233'."
},
"channelWidth": {
"type": "string",
"description": "Sets channel width (MHz) for 6Ghz band. Can be one of '0', '20', '40', '80' or '160'."
},
"rxsop": {
"type": "integer",
"description": "The RX-SOP level controls the sensitivity of the radio. It is strongly recommended to use RX-SOP only after consulting a wireless expert. RX-SOP can be configured in the range of -65 to -95 (dBm). A value of null will reset this to the default."
}
},
"description": "Settings related to 6Ghz band. Only applicable to networks with 6Ghz capable APs"
},
"transmission": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Toggle for radio transmission. When false, radios will not transmit at all."
}
},
"description": "Settings related to radio transmission."
},
"perSsidSettings": {
"type": "object",
"properties": {
"0": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 0"
},
"1": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 1"
},
"2": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 2"
},
"3": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 3"
},
"4": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 4"
},
"5": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 5"
},
"6": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 6"
},
"7": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 7"
},
"8": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 8"
},
"9": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 9"
},
"10": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 10"
},
"11": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 11"
},
"12": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 12"
},
"13": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 13"
},
"14": {
"type": "object",
"properties": {
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 14"
}
},
"description": "Per-SSID radio settings by number."
},
"flexRadios": {
"type": "object",
"properties": {
"byModel": {
"type": "array",
"items": {
"type": "object",
"properties": {
"model": {
"type": "string",
"description": "Model of the AP"
},
"bands": {
"type": "array",
"items": {
"type": "string",
"enum": [
"2.4",
"5",
"6",
"disabled"
]
},
"description": "Band to use for each flex radio. For example, ['6'] will set the AP's first flex radio to 6 GHz"
}
}
},
"description": "Flex radios by model."
}
},
"description": "Flex radio settings."
}
},
"example": {
"name": "1234",
"isIndoorDefault": true,
"isOutdoorDefault": true,
"clientBalancingEnabled": true,
"minBitrateType": "band",
"bandSelectionType": "ap",
"apBandSettings": {
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"twoFourGhzSettings": {
"maxPower": 30,
"minPower": 5,
"minBitrate": 11.0,
"validAutoChannels": [
1,
6,
11
],
"axEnabled": true,
"rxsop": -95
},
"fiveGhzSettings": {
"maxPower": 30,
"minPower": 8,
"minBitrate": 12,
"validAutoChannels": [
36,
40,
44,
48,
52,
56,
60,
64,
100,
104,
108,
112,
116,
120,
124,
128,
132,
136,
140,
144,
149,
153,
157,
161,
165
],
"channelWidth": "auto",
"rxsop": -95
},
"sixGhzSettings": {
"maxPower": 30,
"minPower": 8,
"minBitrate": 12,
"validAutoChannels": [
1,
5,
9,
13,
17,
21,
25,
29,
33,
37,
41,
45,
49,
53,
57,
61,
65,
69,
73,
77,
81,
85,
89,
93,
97,
101,
105,
109,
113,
117,
121,
125,
129,
133,
137,
141,
145,
149,
153,
157,
161,
165,
169,
173,
177,
181,
185,
189,
193,
197,
201,
205,
209,
213,
217,
221,
225,
229,
233
],
"channelWidth": "auto",
"rxsop": -95
},
"transmission": {
"enabled": true
},
"perSsidSettings": {
"0": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"1": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"2": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"3": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"4": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"5": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"6": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"7": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"8": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"9": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"10": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"11": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"12": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"13": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"14": {
"minBitrate": 11.0,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
}
},
"flexRadios": {
"byModel": [
{
"model": "MR34",
"bands": [
"5"
]
}
]
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The name of the new profile. Must be unique."
},
"networkId": {
"type": "string",
"description": "The network ID of the RF Profile"
},
"name": {
"type": "string",
"description": "The name of the new profile. Must be unique. This param is required on creation."
},
"clientBalancingEnabled": {
"type": "boolean",
"description": "Steers client to best available access point. Can be either true or false. Defaults to true."
},
"minBitrateType": {
"type": "string",
"description": "Minimum bitrate can be set to either 'band' or 'ssid'. Defaults to band."
},
"bandSelectionType": {
"type": "string",
"description": "Band selection can be set to either 'ssid' or 'ap'. This param is required on creation."
},
"apBandSettings": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'. Defaults to dual."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band. Can be either true or false. Defaults to true."
}
},
"description": "Settings that will be enabled if selectionType is set to 'ap'."
},
"twoFourGhzSettings": {
"type": "object",
"properties": {
"maxPower": {
"type": "integer",
"description": "Sets max power (dBm) of 2.4Ghz band. Can be integer between 2 and 30. Defaults to 30."
},
"minPower": {
"type": "integer",
"description": "Sets min power (dBm) of 2.4Ghz band. Can be integer between 2 and 30. Defaults to 5."
},
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of 2.4Ghz band. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'. Defaults to 11."
},
"validAutoChannels": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Sets valid auto channels for 2.4Ghz band. Can be one of '1', '6' or '11'. Defaults to [1, 6, 11]."
},
"axEnabled": {
"type": "boolean",
"description": "Determines whether ax radio on 2.4Ghz band is on or off. Can be either true or false. If false, we highly recommend disabling band steering. Defaults to true."
},
"rxsop": {
"type": "integer",
"description": "The RX-SOP level controls the sensitivity of the radio. It is strongly recommended to use RX-SOP only after consulting a wireless expert. RX-SOP can be configured in the range of -65 to -95 (dBm). A value of null will reset this to the default."
}
},
"description": "Settings related to 2.4Ghz band"
},
"fiveGhzSettings": {
"type": "object",
"properties": {
"maxPower": {
"type": "integer",
"description": "Sets max power (dBm) of 5Ghz band. Can be integer between 2 and 30. Defaults to 30."
},
"minPower": {
"type": "integer",
"description": "Sets min power (dBm) of 5Ghz band. Can be integer between 2 and 30. Defaults to 8."
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of 5Ghz band. Can be one of '6', '9', '12', '18', '24', '36', '48' or '54'. Defaults to 12."
},
"validAutoChannels": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Sets valid auto channels for 5Ghz band. Can be one of '36', '40', '44', '48', '52', '56', '60', '64', '100', '104', '108', '112', '116', '120', '124', '128', '132', '136', '140', '144', '149', '153', '157', '161' or '165'.Defaults to [36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144, 149, 153, 157, 161, 165]."
},
"channelWidth": {
"type": "string",
"description": "Sets channel width (MHz) for 5Ghz band. Can be one of 'auto', '20', '40' or '80'. Defaults to auto."
},
"rxsop": {
"type": "integer",
"description": "The RX-SOP level controls the sensitivity of the radio. It is strongly recommended to use RX-SOP only after consulting a wireless expert. RX-SOP can be configured in the range of -65 to -95 (dBm). A value of null will reset this to the default."
}
},
"description": "Settings related to 5Ghz band"
},
"sixGhzSettings": {
"type": "object",
"properties": {
"maxPower": {
"type": "integer",
"description": "Sets max power (dBm) of 6Ghz band. Can be integer between 2 and 30. Defaults to 30."
},
"minPower": {
"type": "integer",
"description": "Sets min power (dBm) of 6Ghz band. Can be integer between 2 and 30. Defaults to 8."
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of 6Ghz band. Can be one of '6', '9', '12', '18', '24', '36', '48' or '54'. Defaults to 12."
},
"validAutoChannels": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Sets valid auto channels for 6Ghz band. Can be one of '1', '5', '9', '13', '17', '21', '25', '29', '33', '37', '41', '45', '49', '53', '57', '61', '65', '69', '73', '77', '81', '85', '89', '93', '97', '101', '105', '109', '113', '117', '121', '125', '129', '133', '137', '141', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229' or '233'. Defaults to auto."
},
"channelWidth": {
"type": "string",
"description": "Sets channel width (MHz) for 6Ghz band. Can be one of '0', '20', '40', '80' or '160'. Defaults to auto."
},
"rxsop": {
"type": "integer",
"description": "The RX-SOP level controls the sensitivity of the radio. It is strongly recommended to use RX-SOP only after consulting a wireless expert. RX-SOP can be configured in the range of -65 to -95 (dBm). A value of null will reset this to the default."
}
},
"description": "Settings related to 6Ghz band. Only applicable to networks with 6Ghz capable APs"
},
"transmission": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Toggle for radio transmission. When false, radios will not transmit at all."
}
},
"description": "Settings related to radio transmission."
},
"perSsidSettings": {
"type": "object",
"properties": {
"0": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 0"
},
"1": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 1"
},
"2": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 2"
},
"3": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 3"
},
"4": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 4"
},
"5": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 5"
},
"6": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 6"
},
"7": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 7"
},
"8": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 8"
},
"9": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 9"
},
"10": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 10"
},
"11": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 11"
},
"12": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 12"
},
"13": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 13"
},
"14": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 14"
}
},
"description": "Per-SSID radio settings by number."
},
"isIndoorDefault": {
"type": "boolean",
"description": "Set this profile as the default indoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default",
"x-release-stage": "beta"
},
"isOutdoorDefault": {
"type": "boolean",
"description": "Set this profile as the default outdoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default",
"x-release-stage": "beta"
}
}
},
"examples": {
"application/json": {
"id": "1234",
"networkId": "N_24329156",
"name": "Main Office",
"clientBalancingEnabled": true,
"minBitrateType": "band",
"bandSelectionType": "ap",
"apBandSettings": {
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"twoFourGhzSettings": {
"maxPower": 30,
"minPower": 5,
"minBitrate": 11.0,
"validAutoChannels": [
1,
6,
11
],
"axEnabled": true,
"rxsop": -95
},
"fiveGhzSettings": {
"maxPower": 30,
"minPower": 8,
"minBitrate": 12,
"validAutoChannels": [
36,
40,
44,
48,
52,
56,
60,
64,
100,
104,
108,
112,
116,
120,
124,
128,
132,
136,
140,
144,
149,
153,
157,
161,
165
],
"channelWidth": "auto",
"rxsop": -95
},
"sixGhzSettings": {
"maxPower": 30,
"minPower": 8,
"minBitrate": 12,
"validAutoChannels": [
1,
5,
9,
13,
17,
21,
25,
29,
33,
37,
41,
45,
49,
53,
57,
61,
65,
69,
73,
77,
81,
85,
89,
93,
97,
101,
105,
109,
113,
117,
121,
125,
129,
133,
137,
141,
145,
149,
153,
157,
161,
165,
169,
173,
177,
181,
185,
189,
193,
197,
201,
205,
209,
213,
217,
221,
225,
229,
233
],
"channelWidth": "auto",
"rxsop": -95
},
"transmission": {
"enabled": true
},
"perSsidSettings": {
"0": {
"name": "SSID 0",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"1": {
"name": "SSID 1",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"2": {
"name": "SSID 2",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"3": {
"name": "SSID 3",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"4": {
"name": "SSID 4",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"5": {
"name": "SSID 5",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"6": {
"name": "SSID 6",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"7": {
"name": "SSID 7",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"8": {
"name": "SSID 8",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"9": {
"name": "SSID 9",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"10": {
"name": "SSID 10",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"11": {
"name": "SSID 11",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"12": {
"name": "SSID 12",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"13": {
"name": "SSID 13",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"14": {
"name": "SSID 14",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
}
},
"isIndoorDefault": false,
"isOutdoorDefault": false
}
}
}
},
"summary": "Updates specified RF profile for this network",
"tags": [
"wireless",
"configure",
"rfProfiles"
]
},
"delete": {
"description": "Delete a RF Profile",
"operationId": "deleteNetworkWirelessRfProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "rfProfileId",
"in": "path",
"description": "Rf profile ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a RF Profile",
"tags": [
"wireless",
"configure",
"rfProfiles"
]
},
"get": {
"description": "Return a RF profile",
"operationId": "getNetworkWirelessRfProfile",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "rfProfileId",
"in": "path",
"description": "Rf profile ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The name of the new profile. Must be unique."
},
"networkId": {
"type": "string",
"description": "The network ID of the RF Profile"
},
"name": {
"type": "string",
"description": "The name of the new profile. Must be unique. This param is required on creation."
},
"clientBalancingEnabled": {
"type": "boolean",
"description": "Steers client to best available access point. Can be either true or false. Defaults to true."
},
"minBitrateType": {
"type": "string",
"description": "Minimum bitrate can be set to either 'band' or 'ssid'. Defaults to band."
},
"bandSelectionType": {
"type": "string",
"description": "Band selection can be set to either 'ssid' or 'ap'. This param is required on creation."
},
"apBandSettings": {
"type": "object",
"properties": {
"bandOperationMode": {
"type": "string",
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'. Defaults to dual."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band. Can be either true or false. Defaults to true."
}
},
"description": "Settings that will be enabled if selectionType is set to 'ap'."
},
"twoFourGhzSettings": {
"type": "object",
"properties": {
"maxPower": {
"type": "integer",
"description": "Sets max power (dBm) of 2.4Ghz band. Can be integer between 2 and 30. Defaults to 30."
},
"minPower": {
"type": "integer",
"description": "Sets min power (dBm) of 2.4Ghz band. Can be integer between 2 and 30. Defaults to 5."
},
"minBitrate": {
"type": "number",
"format": "float",
"description": "Sets min bitrate (Mbps) of 2.4Ghz band. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'. Defaults to 11."
},
"validAutoChannels": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Sets valid auto channels for 2.4Ghz band. Can be one of '1', '6' or '11'. Defaults to [1, 6, 11]."
},
"axEnabled": {
"type": "boolean",
"description": "Determines whether ax radio on 2.4Ghz band is on or off. Can be either true or false. If false, we highly recommend disabling band steering. Defaults to true."
},
"rxsop": {
"type": "integer",
"description": "The RX-SOP level controls the sensitivity of the radio. It is strongly recommended to use RX-SOP only after consulting a wireless expert. RX-SOP can be configured in the range of -65 to -95 (dBm). A value of null will reset this to the default."
}
},
"description": "Settings related to 2.4Ghz band"
},
"fiveGhzSettings": {
"type": "object",
"properties": {
"maxPower": {
"type": "integer",
"description": "Sets max power (dBm) of 5Ghz band. Can be integer between 2 and 30. Defaults to 30."
},
"minPower": {
"type": "integer",
"description": "Sets min power (dBm) of 5Ghz band. Can be integer between 2 and 30. Defaults to 8."
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of 5Ghz band. Can be one of '6', '9', '12', '18', '24', '36', '48' or '54'. Defaults to 12."
},
"validAutoChannels": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Sets valid auto channels for 5Ghz band. Can be one of '36', '40', '44', '48', '52', '56', '60', '64', '100', '104', '108', '112', '116', '120', '124', '128', '132', '136', '140', '144', '149', '153', '157', '161' or '165'.Defaults to [36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144, 149, 153, 157, 161, 165]."
},
"channelWidth": {
"type": "string",
"description": "Sets channel width (MHz) for 5Ghz band. Can be one of 'auto', '20', '40' or '80'. Defaults to auto."
},
"rxsop": {
"type": "integer",
"description": "The RX-SOP level controls the sensitivity of the radio. It is strongly recommended to use RX-SOP only after consulting a wireless expert. RX-SOP can be configured in the range of -65 to -95 (dBm). A value of null will reset this to the default."
}
},
"description": "Settings related to 5Ghz band"
},
"sixGhzSettings": {
"type": "object",
"properties": {
"maxPower": {
"type": "integer",
"description": "Sets max power (dBm) of 6Ghz band. Can be integer between 2 and 30. Defaults to 30."
},
"minPower": {
"type": "integer",
"description": "Sets min power (dBm) of 6Ghz band. Can be integer between 2 and 30. Defaults to 8."
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of 6Ghz band. Can be one of '6', '9', '12', '18', '24', '36', '48' or '54'. Defaults to 12."
},
"validAutoChannels": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Sets valid auto channels for 6Ghz band. Can be one of '1', '5', '9', '13', '17', '21', '25', '29', '33', '37', '41', '45', '49', '53', '57', '61', '65', '69', '73', '77', '81', '85', '89', '93', '97', '101', '105', '109', '113', '117', '121', '125', '129', '133', '137', '141', '145', '149', '153', '157', '161', '165', '169', '173', '177', '181', '185', '189', '193', '197', '201', '205', '209', '213', '217', '221', '225', '229' or '233'. Defaults to auto."
},
"channelWidth": {
"type": "string",
"description": "Sets channel width (MHz) for 6Ghz band. Can be one of '0', '20', '40', '80' or '160'. Defaults to auto."
},
"rxsop": {
"type": "integer",
"description": "The RX-SOP level controls the sensitivity of the radio. It is strongly recommended to use RX-SOP only after consulting a wireless expert. RX-SOP can be configured in the range of -65 to -95 (dBm). A value of null will reset this to the default."
}
},
"description": "Settings related to 6Ghz band. Only applicable to networks with 6Ghz capable APs"
},
"transmission": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Toggle for radio transmission. When false, radios will not transmit at all."
}
},
"description": "Settings related to radio transmission."
},
"perSsidSettings": {
"type": "object",
"properties": {
"0": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 0"
},
"1": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 1"
},
"2": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 2"
},
"3": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 3"
},
"4": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 4"
},
"5": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 5"
},
"6": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 6"
},
"7": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 7"
},
"8": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 8"
},
"9": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 9"
},
"10": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 10"
},
"11": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 11"
},
"12": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 12"
},
"13": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 13"
},
"14": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of SSID"
},
"minBitrate": {
"type": "integer",
"description": "Sets min bitrate (Mbps) of this SSID. Can be one of '1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54'."
},
"bandOperationMode": {
"type": "string",
"enum": [
"2.4ghz",
"5ghz",
"6ghz",
"dual",
"multi"
],
"description": "Choice between 'dual', '2.4ghz', '5ghz', '6ghz' or 'multi'."
},
"bands": {
"type": "object",
"properties": {
"enabled": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of enabled bands. Can include [\"2.4\", \"5\", \"6\", \"disabled\"]"
}
},
"description": "Settings related to all bands"
},
"bandSteeringEnabled": {
"type": "boolean",
"description": "Steers client to most open band between 2.4 GHz and 5 GHz. Can be either true or false."
}
},
"description": "Settings for SSID 14"
}
},
"description": "Per-SSID radio settings by number."
},
"isIndoorDefault": {
"type": "boolean",
"description": "Set this profile as the default indoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default",
"x-release-stage": "beta"
},
"isOutdoorDefault": {
"type": "boolean",
"description": "Set this profile as the default outdoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default",
"x-release-stage": "beta"
}
}
},
"examples": {
"application/json": {
"id": "1234",
"networkId": "N_24329156",
"name": "Main Office",
"clientBalancingEnabled": true,
"minBitrateType": "band",
"bandSelectionType": "ap",
"apBandSettings": {
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"twoFourGhzSettings": {
"maxPower": 30,
"minPower": 5,
"minBitrate": 11.0,
"validAutoChannels": [
1,
6,
11
],
"axEnabled": true,
"rxsop": -95
},
"fiveGhzSettings": {
"maxPower": 30,
"minPower": 8,
"minBitrate": 12,
"validAutoChannels": [
36,
40,
44,
48,
52,
56,
60,
64,
100,
104,
108,
112,
116,
120,
124,
128,
132,
136,
140,
144,
149,
153,
157,
161,
165
],
"channelWidth": "auto",
"rxsop": -95
},
"sixGhzSettings": {
"maxPower": 30,
"minPower": 8,
"minBitrate": 12,
"validAutoChannels": [
1,
5,
9,
13,
17,
21,
25,
29,
33,
37,
41,
45,
49,
53,
57,
61,
65,
69,
73,
77,
81,
85,
89,
93,
97,
101,
105,
109,
113,
117,
121,
125,
129,
133,
137,
141,
145,
149,
153,
157,
161,
165,
169,
173,
177,
181,
185,
189,
193,
197,
201,
205,
209,
213,
217,
221,
225,
229,
233
],
"channelWidth": "auto",
"rxsop": -95
},
"transmission": {
"enabled": true
},
"perSsidSettings": {
"0": {
"name": "SSID 0",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"1": {
"name": "SSID 1",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"2": {
"name": "SSID 2",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"3": {
"name": "SSID 3",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"4": {
"name": "SSID 4",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"5": {
"name": "SSID 5",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"6": {
"name": "SSID 6",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"7": {
"name": "SSID 7",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"8": {
"name": "SSID 8",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"9": {
"name": "SSID 9",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"10": {
"name": "SSID 10",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"11": {
"name": "SSID 11",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"12": {
"name": "SSID 12",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"13": {
"name": "SSID 13",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
},
"14": {
"name": "SSID 14",
"minBitrate": 11,
"bandOperationMode": "dual",
"bands": {
"enabled": [
"2.4",
"5"
]
},
"bandSteeringEnabled": true
}
},
"isIndoorDefault": false,
"isOutdoorDefault": false
}
}
}
},
"summary": "Return a RF profile",
"tags": [
"wireless",
"configure",
"rfProfiles"
]
}
},
"/networks/{networkId}/wireless/settings": {
"get": {
"description": "Return the wireless settings for a network",
"operationId": "getNetworkWirelessSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"meshingEnabled": {
"type": "boolean",
"description": "Toggle for enabling or disabling meshing in a network"
},
"ipv6BridgeEnabled": {
"type": "boolean",
"description": "Toggle for enabling or disabling IPv6 bridging in a network (Note: if enabled, SSIDs must also be configured to use bridge mode)"
},
"locationAnalyticsEnabled": {
"type": "boolean",
"description": "Toggle for enabling or disabling location analytics for your network"
},
"upgradeStrategy": {
"type": "string",
"enum": [
"minimizeClientDowntime",
"minimizeUpgradeTime"
],
"description": "The default strategy that network devices will use to perform an upgrade. Requires firmware version MR 26.8 or higher."
},
"ledLightsOn": {
"type": "boolean",
"description": "Toggle for enabling or disabling LED lights on all APs in the network (making them run dark)"
},
"namedVlans": {
"type": "object",
"properties": {
"poolDhcpMonitoring": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether or not devices using named VLAN pools should remove dirty VLANs from the pool, thereby preventing clients from being assigned to VLANs where they would be unable to obtain an IP address via DHCP"
},
"duration": {
"type": "integer",
"description": "The duration in minutes that devices will refrain from using dirty VLANs before adding them back to the pool."
}
},
"description": "Named VLAN Pool DHCP Monitoring settings."
}
},
"description": "Named VLAN settings for wireless networks."
},
"regulatoryDomain": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the regulatory domain for this network."
},
"countryCode": {
"type": "string",
"description": "The country code of the regulatory domain."
},
"permits6e": {
"type": "boolean",
"description": "Whether or not the regulatory domain for this network permits Wifi 6E."
}
},
"description": "Regulatory domain information for this network."
}
}
},
"examples": {
"application/json": {
"meshingEnabled": true,
"ipv6BridgeEnabled": false,
"locationAnalyticsEnabled": false,
"upgradeStrategy": "minimizeUpgradeTime",
"ledLightsOn": false,
"namedVlans": {
"poolDhcpMonitoring": {
"enabled": true,
"duration": 5
}
},
"regulatoryDomain": {
"name": "FCC",
"countryCode": "US",
"permits6e": true
}
}
}
}
},
"summary": "Return the wireless settings for a network",
"tags": [
"wireless",
"configure",
"settings"
]
},
"put": {
"description": "Update the wireless settings for a network",
"operationId": "updateNetworkWirelessSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkWirelessSettings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"meshingEnabled": {
"type": "boolean",
"description": "Toggle for enabling or disabling meshing in a network"
},
"ipv6BridgeEnabled": {
"type": "boolean",
"description": "Toggle for enabling or disabling IPv6 bridging in a network (Note: if enabled, SSIDs must also be configured to use bridge mode)"
},
"locationAnalyticsEnabled": {
"type": "boolean",
"description": "Toggle for enabling or disabling location analytics for your network"
},
"upgradeStrategy": {
"type": "string",
"enum": [
"minimizeClientDowntime",
"minimizeUpgradeTime"
],
"description": "The default strategy that network devices will use to perform an upgrade. Requires firmware version MR 26.8 or higher."
},
"ledLightsOn": {
"type": "boolean",
"description": "Toggle for enabling or disabling LED lights on all APs in the network (making them run dark)"
},
"namedVlans": {
"type": "object",
"properties": {
"poolDhcpMonitoring": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether or not devices using named VLAN pools should remove dirty VLANs from the pool, thereby preventing clients from being assigned to VLANs where they would be unable to obtain an IP address via DHCP."
},
"duration": {
"type": "integer",
"description": "The duration in minutes that devices will refrain from using dirty VLANs before adding them back to the pool."
}
},
"description": "Named VLAN Pool DHCP Monitoring settings."
}
},
"description": "Named VLAN settings for wireless networks."
}
},
"example": {
"meshingEnabled": true,
"ipv6BridgeEnabled": false,
"locationAnalyticsEnabled": false,
"upgradeStrategy": "minimizeUpgradeTime",
"ledLightsOn": false,
"namedVlans": {
"poolDhcpMonitoring": {
"enabled": true,
"duration": 5
}
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"meshingEnabled": {
"type": "boolean",
"description": "Toggle for enabling or disabling meshing in a network"
},
"ipv6BridgeEnabled": {
"type": "boolean",
"description": "Toggle for enabling or disabling IPv6 bridging in a network (Note: if enabled, SSIDs must also be configured to use bridge mode)"
},
"locationAnalyticsEnabled": {
"type": "boolean",
"description": "Toggle for enabling or disabling location analytics for your network"
},
"upgradeStrategy": {
"type": "string",
"enum": [
"minimizeClientDowntime",
"minimizeUpgradeTime"
],
"description": "The default strategy that network devices will use to perform an upgrade. Requires firmware version MR 26.8 or higher."
},
"ledLightsOn": {
"type": "boolean",
"description": "Toggle for enabling or disabling LED lights on all APs in the network (making them run dark)"
},
"namedVlans": {
"type": "object",
"properties": {
"poolDhcpMonitoring": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether or not devices using named VLAN pools should remove dirty VLANs from the pool, thereby preventing clients from being assigned to VLANs where they would be unable to obtain an IP address via DHCP"
},
"duration": {
"type": "integer",
"description": "The duration in minutes that devices will refrain from using dirty VLANs before adding them back to the pool."
}
},
"description": "Named VLAN Pool DHCP Monitoring settings."
}
},
"description": "Named VLAN settings for wireless networks."
},
"regulatoryDomain": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the regulatory domain for this network."
},
"countryCode": {
"type": "string",
"description": "The country code of the regulatory domain."
},
"permits6e": {
"type": "boolean",
"description": "Whether or not the regulatory domain for this network permits Wifi 6E."
}
},
"description": "Regulatory domain information for this network."
}
}
},
"examples": {
"application/json": {
"meshingEnabled": true,
"ipv6BridgeEnabled": false,
"locationAnalyticsEnabled": false,
"upgradeStrategy": "minimizeUpgradeTime",
"ledLightsOn": false,
"namedVlans": {
"poolDhcpMonitoring": {
"enabled": true,
"duration": 5
}
},
"regulatoryDomain": {
"name": "FCC",
"countryCode": "US",
"permits6e": true
}
}
}
}
},
"summary": "Update the wireless settings for a network",
"tags": [
"wireless",
"configure",
"settings"
]
}
},
"/networks/{networkId}/wireless/signalQualityHistory": {
"get": {
"description": "Return signal quality (SNR/RSSI) over time for a device or network client",
"operationId": "getNetworkWirelessSignalQualityHistory",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"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 7 days."
},
{
"type": "integer",
"name": "resolution",
"in": "query",
"description": "The time resolution in seconds for returned data. The valid resolutions are: 300, 600, 1200, 3600, 14400, 86400. The default is 86400."
},
{
"type": "boolean",
"name": "autoResolution",
"in": "query",
"description": "Automatically select a data resolution based on the given timespan; this overrides the value specified by the 'resolution' parameter. The default setting is false."
},
{
"type": "string",
"name": "clientId",
"in": "query",
"description": "Filter results by network client."
},
{
"type": "string",
"name": "deviceSerial",
"in": "query",
"description": "Filter results by device."
},
{
"type": "string",
"name": "apTag",
"in": "query",
"description": "Filter results by AP tag; either :clientId or :deviceSerial must be jointly specified."
},
{
"type": "string",
"enum": [
"2.4",
"5",
"6"
],
"name": "band",
"in": "query",
"description": "Filter results by band (either '2.4', '5' or '6')."
},
{
"type": "integer",
"name": "ssid",
"in": "query",
"description": "Filter results by SSID number."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startTs": {
"type": "string",
"format": "date-time",
"description": "The start time of the query range"
},
"endTs": {
"type": "string",
"format": "date-time",
"description": "The end time of the query range"
},
"snr": {
"type": "integer",
"description": "Signal to noise ratio"
},
"rssi": {
"type": "integer",
"description": "Received signal strength indicator"
}
}
}
},
"examples": {
"application/json": [
{
"startTs": "2020-01-01T00:00:00Z",
"endTs": "2020-01-01T01:00:00Z",
"snr": 27,
"rssi": -77
}
]
}
}
},
"summary": "Return signal quality (SNR/RSSI) over time for a device or network client",
"tags": [
"wireless",
"monitor",
"signalQualityHistory"
]
}
},
"/networks/{networkId}/wireless/ssids": {
"get": {
"description": "List the MR SSIDs in a network",
"operationId": "getNetworkWirelessSsids",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"description": "Unique identifier of the SSID"
},
"name": {
"type": "string",
"description": "The name of the SSID"
},
"enabled": {
"type": "boolean",
"description": "Whether or not the SSID is enabled"
},
"splashPage": {
"type": "string",
"enum": [
"Billing",
"Cisco ISE",
"Click-through splash page",
"Facebook Wi-Fi",
"Google Apps domain",
"Google OAuth",
"None",
"Password-protected with Active Directory",
"Password-protected with LDAP",
"Password-protected with Meraki RADIUS",
"Password-protected with custom RADIUS",
"SMS authentication",
"Sponsored guest",
"Systems Manager Sentry"
],
"description": "The type of splash page for the SSID"
},
"ssidAdminAccessible": {
"type": "boolean",
"description": "SSID Administrator access status"
},
"localAuth": {
"type": "boolean",
"description": "Extended local auth flag for Enterprise NAC"
},
"authMode": {
"type": "string",
"enum": [
"8021x-google",
"8021x-localradius",
"8021x-meraki",
"8021x-nac",
"8021x-radius",
"ipsk-with-nac",
"ipsk-with-radius",
"ipsk-without-radius",
"open",
"open-enhanced",
"open-with-nac",
"open-with-radius",
"psk"
],
"description": "The association control method for the SSID"
},
"encryptionMode": {
"type": "string",
"enum": [
"wep",
"wpa"
],
"description": "The psk encryption mode for the SSID"
},
"wpaEncryptionMode": {
"type": "string",
"enum": [
"WPA1 and WPA2",
"WPA1 only",
"WPA2 only",
"WPA3 192-bit Security",
"WPA3 Transition Mode",
"WPA3 only"
],
"description": "The types of WPA encryption"
},
"radiusServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "IP address (or FQDN) of your RADIUS server"
},
"port": {
"type": "integer",
"description": "UDP port the RADIUS server listens on for Access-requests"
},
"openRoamingCertificateId": {
"type": "integer",
"description": "The ID of the Openroaming Certificate attached to radius server"
},
"caCertificate": {
"type": "string",
"description": "Certificate used for authorization for the RADSEC Server"
}
}
},
"description": "List of RADIUS 802.1X servers to be used for authentication"
},
"radiusAccountingServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "IP address (or FQDN) to which the APs will send RADIUS accounting messages"
},
"port": {
"type": "integer",
"description": "Port on the RADIUS server that is listening for accounting messages"
},
"openRoamingCertificateId": {
"type": "integer",
"description": "The ID of the Openroaming Certificate attached to radius server"
},
"caCertificate": {
"type": "string",
"description": "Certificate used for authorization for the RADSEC Server"
}
}
},
"description": "List of RADIUS accounting 802.1X servers to be used for authentication"
},
"radiusAccountingEnabled": {
"type": "boolean",
"description": "Whether or not RADIUS accounting is enabled"
},
"radiusEnabled": {
"type": "boolean",
"description": "Whether RADIUS authentication is enabled"
},
"radiusAttributeForGroupPolicies": {
"type": "string",
"enum": [
"Airespace-ACL-Name",
"Aruba-User-Role",
"Filter-Id",
"Reply-Message"
],
"description": "RADIUS attribute used to look up group policies"
},
"radiusFailoverPolicy": {
"type": "string",
"enum": [
"Allow access",
"Deny access"
],
"description": "Policy which determines how authentication requests should be handled in the event that all of the configured RADIUS servers are unreachable"
},
"radiusLoadBalancingPolicy": {
"type": "string",
"enum": [
"Round robin",
"Strict priority order"
],
"description": "Policy which determines which RADIUS server will be contacted first in an authentication attempt, and the ordering of any necessary retry attempts"
},
"ipAssignmentMode": {
"type": "string",
"enum": [
"Bridge mode",
"Ethernet over GRE",
"Layer 3 roaming",
"Layer 3 roaming with a concentrator",
"NAT mode",
"VPN"
],
"description": "The client IP assignment mode"
},
"adminSplashUrl": {
"type": "string",
"description": "URL for the admin splash page"
},
"splashTimeout": {
"type": "string",
"description": "Splash page timeout"
},
"walledGardenEnabled": {
"type": "boolean",
"description": "Allow users to access a configurable list of IP ranges prior to sign-on"
},
"walledGardenRanges": {
"type": "array",
"items": {
"type": "string"
},
"description": "Domain names and IP address ranges available in Walled Garden mode"
},
"minBitrate": {
"type": "integer",
"description": "The minimum bitrate in Mbps of this SSID in the default indoor RF profile"
},
"bandSelection": {
"type": "string",
"enum": [
"5 GHz band only",
"Dual band operation",
"Dual band operation with Band Steering"
],
"description": "The client-serving radio frequencies of this SSID in the default indoor RF profile"
},
"perClientBandwidthLimitUp": {
"type": "integer",
"description": "The upload bandwidth limit in Kbps. (0 represents no limit.)"
},
"perClientBandwidthLimitDown": {
"type": "integer",
"description": "The download bandwidth limit in Kbps. (0 represents no limit.)"
},
"visible": {
"type": "boolean",
"description": "Whether the SSID is advertised or hidden by the AP"
},
"availableOnAllAps": {
"type": "boolean",
"description": "Whether all APs broadcast the SSID or if it's restricted to APs matching any availability tags"
},
"availabilityTags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of tags for this SSID. If availableOnAllAps is false, then the SSID is only broadcast by APs with tags matching any of the tags in this list"
},
"perSsidBandwidthLimitUp": {
"type": "integer",
"description": "The total upload bandwidth limit in Kbps (0 represents no limit)"
},
"perSsidBandwidthLimitDown": {
"type": "integer",
"description": "The total download bandwidth limit in Kbps (0 represents no limit)"
},
"mandatoryDhcpEnabled": {
"type": "boolean",
"description": "Whether clients connecting to this SSID must use the IP address assigned by the DHCP server"
}
}
}
},
"examples": {
"application/json": [
{
"number": 0,
"name": "My SSID",
"enabled": true,
"splashPage": "Click-through splash page",
"ssidAdminAccessible": false,
"localAuth": false,
"authMode": "8021x-radius",
"encryptionMode": "wpa",
"wpaEncryptionMode": "WPA2 only",
"radiusServers": [
{
"host": "0.0.0.0",
"port": 3000,
"openRoamingCertificateId": 2,
"caCertificate": "-----BEGIN CERTIFICATE-----\nMIIEKjCCAxKgAwIBAgIRANb+lsED3eb4+6YKLFFYqEkwDQYJKoZIhvcNAQELBQAw\ngYcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMREwDwYDVQQHDAhT\nYW4gSm9zZTEcMBoGA1UECgwTQ2lzY28gU3lzdGVtcywgSW5jLjESMBAGA1UECwwJ\nRE5BU3BhY2VzMR4wHAYDVQQDDBVjaXNjby5vcGVucm9hbWluZy5vcmcwHhcNMjAx\nMTA1MjEzMzM1WhcNMjExMTA1MjIzMzM1WjCBpDEcMBoGCgmSJomT8ixkAQETDGRu\nYXNwYWNlczpVUzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQ4wDAYDVQQKEwVD\naXNjbzEcMBoGA1UECxMTV0JBOldSSVggRW5kLUVudGl0eTE8MDoGA1UEAxMzNjQ3\nMDcwNDM4NDQ5NjQxMjAwMDAuMTg4MzQuaHMuY2lzY28ub3BlbnJvYW1pbmcub3Jn\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoqjP9QgRGyUO3p7SH9QK\nuTq6UYK7nAyjImgS4yQxeBkyZ5f2EUkX8m/AOcewpPxxPBhjPKRwxGeX3S50ksiA\nayFomUeslR0S0Z7RN9rzJa+CFyi9MwWIHMbLgXpB8tsSpgTAqwrzoTzOGq9fgC6u\npZhdZrBkg3FeJgD88goCi9mZDsY2YAoeGRLFJ2fR8iICqIVQy+Htq9pE22WBLpnS\nKjL3+mR9FArHNFtWlhKF2YHMUqyHHrnZnF/Ns7QNoMMF7/CK18iAKgnb+2wuGKM2\naEMddOeOTtz+i/rgjkp/RGMt011EdCsso0/cTo9qqX/bxOOCE4/Mne/ChMkQPnNU\nCwIDAQABo3IwcDAJBgNVHRMEAjAAMB8GA1UdIwQYMBaAFIG+4l5yiB01gP0sw4ML\nUSopqYcuMB0GA1UdDgQWBBSby1T9leYVOVVdOZXiHCSaDDEMiDAOBgNVHQ8BAf8E\nBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAEyE\n1mjSUyY6uNp6W4l20w7SskALSJDRKkOeZxAgF3VMxlsCuEl70s9oEfntwIpyQtSa\njON/9yJHbwm/Az824bmk8Dc7AXIPhay+dftXb8j529gPuYB9AKoPNg0NctkyYCQh\na/3YQVdDWX7XgmEiXkL57M7G6+IdcPDONLArfjOcT9qHdkVVq1AIjlMSx3OQQmm/\nuoLb/G9q/97QA2/l8shG/Na8HjVqGLcl5TNZdbNhs2w9ogxr/GNzqdvym6RQ8vT/\nUR2n+uwH4n1MUxmHYYeyot5dnIV1IJ6hQ54JAncM9HvCLFk1WHz6RKshQUCuPBiJ\nwTw70BVktzJnb0VLeDg=\n-----END CERTIFICATE-----"
}
],
"radiusAccountingServers": [
{
"host": "0.0.0.0",
"port": 3000,
"openRoamingCertificateId": 2,
"caCertificate": "-----BEGIN CERTIFICATE-----\nMIIEKjCCAxKgAwIBAgIRANb+lsED3eb4+6YKLFFYqEkwDQYJKoZIhvcNAQELBQAw\ngYcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMREwDwYDVQQHDAhT\nYW4gSm9zZTEcMBoGA1UECgwTQ2lzY28gU3lzdGVtcywgSW5jLjESMBAGA1UECwwJ\nRE5BU3BhY2VzMR4wHAYDVQQDDBVjaXNjby5vcGVucm9hbWluZy5vcmcwHhcNMjAx\nMTA1MjEzMzM1WhcNMjExMTA1MjIzMzM1WjCBpDEcMBoGCgmSJomT8ixkAQETDGRu\nYXNwYWNlczpVUzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQ4wDAYDVQQKEwVD\naXNjbzEcMBoGA1UECxMTV0JBOldSSVggRW5kLUVudGl0eTE8MDoGA1UEAxMzNjQ3\nMDcwNDM4NDQ5NjQxMjAwMDAuMTg4MzQuaHMuY2lzY28ub3BlbnJvYW1pbmcub3Jn\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoqjP9QgRGyUO3p7SH9QK\nuTq6UYK7nAyjImgS4yQxeBkyZ5f2EUkX8m/AOcewpPxxPBhjPKRwxGeX3S50ksiA\nayFomUeslR0S0Z7RN9rzJa+CFyi9MwWIHMbLgXpB8tsSpgTAqwrzoTzOGq9fgC6u\npZhdZrBkg3FeJgD88goCi9mZDsY2YAoeGRLFJ2fR8iICqIVQy+Htq9pE22WBLpnS\nKjL3+mR9FArHNFtWlhKF2YHMUqyHHrnZnF/Ns7QNoMMF7/CK18iAKgnb+2wuGKM2\naEMddOeOTtz+i/rgjkp/RGMt011EdCsso0/cTo9qqX/bxOOCE4/Mne/ChMkQPnNU\nCwIDAQABo3IwcDAJBgNVHRMEAjAAMB8GA1UdIwQYMBaAFIG+4l5yiB01gP0sw4ML\nUSopqYcuMB0GA1UdDgQWBBSby1T9leYVOVVdOZXiHCSaDDEMiDAOBgNVHQ8BAf8E\nBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAEyE\n1mjSUyY6uNp6W4l20w7SskALSJDRKkOeZxAgF3VMxlsCuEl70s9oEfntwIpyQtSa\njON/9yJHbwm/Az824bmk8Dc7AXIPhay+dftXb8j529gPuYB9AKoPNg0NctkyYCQh\na/3YQVdDWX7XgmEiXkL57M7G6+IdcPDONLArfjOcT9qHdkVVq1AIjlMSx3OQQmm/\nuoLb/G9q/97QA2/l8shG/Na8HjVqGLcl5TNZdbNhs2w9ogxr/GNzqdvym6RQ8vT/\nUR2n+uwH4n1MUxmHYYeyot5dnIV1IJ6hQ54JAncM9HvCLFk1WHz6RKshQUCuPBiJ\nwTw70BVktzJnb0VLeDg=\n-----END CERTIFICATE-----"
}
],
"radiusAccountingEnabled": false,
"radiusEnabled": true,
"radiusAttributeForGroupPolicies": "Filter-Id",
"radiusFailoverPolicy": "Deny access",
"radiusLoadBalancingPolicy": "Round robin",
"ipAssignmentMode": "NAT mode",
"adminSplashUrl": "http://example.com",
"splashTimeout": "30 minutes",
"walledGardenEnabled": true,
"walledGardenRanges": [
"example.com",
"1.1.1.1/32"
],
"minBitrate": 11,
"bandSelection": "5 GHz band only",
"perClientBandwidthLimitUp": 0,
"perClientBandwidthLimitDown": 0,
"visible": true,
"availableOnAllAps": false,
"availabilityTags": [
"tag1",
"tag2"
],
"perSsidBandwidthLimitUp": 0,
"perSsidBandwidthLimitDown": 0,
"mandatoryDhcpEnabled": false
}
]
}
}
},
"summary": "List the MR SSIDs in a network",
"tags": [
"wireless",
"configure",
"ssids"
]
}
},
"/networks/{networkId}/wireless/ssids/{number}": {
"get": {
"description": "Return a single MR SSID",
"operationId": "getNetworkWirelessSsid",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"description": "Unique identifier of the SSID"
},
"name": {
"type": "string",
"description": "The name of the SSID"
},
"enabled": {
"type": "boolean",
"description": "Whether or not the SSID is enabled"
},
"splashPage": {
"type": "string",
"enum": [
"Billing",
"Cisco ISE",
"Click-through splash page",
"Facebook Wi-Fi",
"Google Apps domain",
"Google OAuth",
"None",
"Password-protected with Active Directory",
"Password-protected with LDAP",
"Password-protected with Meraki RADIUS",
"Password-protected with custom RADIUS",
"SMS authentication",
"Sponsored guest",
"Systems Manager Sentry"
],
"description": "The type of splash page for the SSID"
},
"ssidAdminAccessible": {
"type": "boolean",
"description": "SSID Administrator access status"
},
"localAuth": {
"type": "boolean",
"description": "Extended local auth flag for Enterprise NAC"
},
"authMode": {
"type": "string",
"enum": [
"8021x-google",
"8021x-localradius",
"8021x-meraki",
"8021x-nac",
"8021x-radius",
"ipsk-with-nac",
"ipsk-with-radius",
"ipsk-without-radius",
"open",
"open-enhanced",
"open-with-nac",
"open-with-radius",
"psk"
],
"description": "The association control method for the SSID"
},
"encryptionMode": {
"type": "string",
"enum": [
"wep",
"wpa"
],
"description": "The psk encryption mode for the SSID"
},
"wpaEncryptionMode": {
"type": "string",
"enum": [
"WPA1 and WPA2",
"WPA1 only",
"WPA2 only",
"WPA3 192-bit Security",
"WPA3 Transition Mode",
"WPA3 only"
],
"description": "The types of WPA encryption"
},
"radiusServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "IP address (or FQDN) of your RADIUS server"
},
"port": {
"type": "integer",
"description": "UDP port the RADIUS server listens on for Access-requests"
},
"openRoamingCertificateId": {
"type": "integer",
"description": "The ID of the Openroaming Certificate attached to radius server"
},
"caCertificate": {
"type": "string",
"description": "Certificate used for authorization for the RADSEC Server"
}
}
},
"description": "List of RADIUS 802.1X servers to be used for authentication"
},
"radiusAccountingServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "IP address (or FQDN) to which the APs will send RADIUS accounting messages"
},
"port": {
"type": "integer",
"description": "Port on the RADIUS server that is listening for accounting messages"
},
"openRoamingCertificateId": {
"type": "integer",
"description": "The ID of the Openroaming Certificate attached to radius server"
},
"caCertificate": {
"type": "string",
"description": "Certificate used for authorization for the RADSEC Server"
}
}
},
"description": "List of RADIUS accounting 802.1X servers to be used for authentication"
},
"radiusAccountingEnabled": {
"type": "boolean",
"description": "Whether or not RADIUS accounting is enabled"
},
"radiusEnabled": {
"type": "boolean",
"description": "Whether RADIUS authentication is enabled"
},
"radiusAttributeForGroupPolicies": {
"type": "string",
"enum": [
"Airespace-ACL-Name",
"Aruba-User-Role",
"Filter-Id",
"Reply-Message"
],
"description": "RADIUS attribute used to look up group policies"
},
"radiusFailoverPolicy": {
"type": "string",
"enum": [
"Allow access",
"Deny access"
],
"description": "Policy which determines how authentication requests should be handled in the event that all of the configured RADIUS servers are unreachable"
},
"radiusLoadBalancingPolicy": {
"type": "string",
"enum": [
"Round robin",
"Strict priority order"
],
"description": "Policy which determines which RADIUS server will be contacted first in an authentication attempt, and the ordering of any necessary retry attempts"
},
"ipAssignmentMode": {
"type": "string",
"enum": [
"Bridge mode",
"Ethernet over GRE",
"Layer 3 roaming",
"Layer 3 roaming with a concentrator",
"NAT mode",
"VPN"
],
"description": "The client IP assignment mode"
},
"adminSplashUrl": {
"type": "string",
"description": "URL for the admin splash page"
},
"splashTimeout": {
"type": "string",
"description": "Splash page timeout"
},
"walledGardenEnabled": {
"type": "boolean",
"description": "Allow users to access a configurable list of IP ranges prior to sign-on"
},
"walledGardenRanges": {
"type": "array",
"items": {
"type": "string"
},
"description": "Domain names and IP address ranges available in Walled Garden mode"
},
"minBitrate": {
"type": "integer",
"description": "The minimum bitrate in Mbps of this SSID in the default indoor RF profile"
},
"bandSelection": {
"type": "string",
"enum": [
"5 GHz band only",
"Dual band operation",
"Dual band operation with Band Steering"
],
"description": "The client-serving radio frequencies of this SSID in the default indoor RF profile"
},
"perClientBandwidthLimitUp": {
"type": "integer",
"description": "The upload bandwidth limit in Kbps. (0 represents no limit.)"
},
"perClientBandwidthLimitDown": {
"type": "integer",
"description": "The download bandwidth limit in Kbps. (0 represents no limit.)"
},
"visible": {
"type": "boolean",
"description": "Whether the SSID is advertised or hidden by the AP"
},
"availableOnAllAps": {
"type": "boolean",
"description": "Whether all APs broadcast the SSID or if it's restricted to APs matching any availability tags"
},
"availabilityTags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of tags for this SSID. If availableOnAllAps is false, then the SSID is only broadcast by APs with tags matching any of the tags in this list"
},
"perSsidBandwidthLimitUp": {
"type": "integer",
"description": "The total upload bandwidth limit in Kbps (0 represents no limit)"
},
"perSsidBandwidthLimitDown": {
"type": "integer",
"description": "The total download bandwidth limit in Kbps (0 represents no limit)"
},
"mandatoryDhcpEnabled": {
"type": "boolean",
"description": "Whether clients connecting to this SSID must use the IP address assigned by the DHCP server"
}
}
},
"examples": {
"application/json": {
"number": 0,
"name": "My SSID",
"enabled": true,
"splashPage": "Click-through splash page",
"ssidAdminAccessible": false,
"localAuth": false,
"authMode": "8021x-radius",
"encryptionMode": "wpa",
"wpaEncryptionMode": "WPA2 only",
"radiusServers": [
{
"host": "0.0.0.0",
"port": 3000,
"openRoamingCertificateId": 2,
"caCertificate": "-----BEGIN CERTIFICATE-----\nMIIEKjCCAxKgAwIBAgIRANb+lsED3eb4+6YKLFFYqEkwDQYJKoZIhvcNAQELBQAw\ngYcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMREwDwYDVQQHDAhT\nYW4gSm9zZTEcMBoGA1UECgwTQ2lzY28gU3lzdGVtcywgSW5jLjESMBAGA1UECwwJ\nRE5BU3BhY2VzMR4wHAYDVQQDDBVjaXNjby5vcGVucm9hbWluZy5vcmcwHhcNMjAx\nMTA1MjEzMzM1WhcNMjExMTA1MjIzMzM1WjCBpDEcMBoGCgmSJomT8ixkAQETDGRu\nYXNwYWNlczpVUzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQ4wDAYDVQQKEwVD\naXNjbzEcMBoGA1UECxMTV0JBOldSSVggRW5kLUVudGl0eTE8MDoGA1UEAxMzNjQ3\nMDcwNDM4NDQ5NjQxMjAwMDAuMTg4MzQuaHMuY2lzY28ub3BlbnJvYW1pbmcub3Jn\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoqjP9QgRGyUO3p7SH9QK\nuTq6UYK7nAyjImgS4yQxeBkyZ5f2EUkX8m/AOcewpPxxPBhjPKRwxGeX3S50ksiA\nayFomUeslR0S0Z7RN9rzJa+CFyi9MwWIHMbLgXpB8tsSpgTAqwrzoTzOGq9fgC6u\npZhdZrBkg3FeJgD88goCi9mZDsY2YAoeGRLFJ2fR8iICqIVQy+Htq9pE22WBLpnS\nKjL3+mR9FArHNFtWlhKF2YHMUqyHHrnZnF/Ns7QNoMMF7/CK18iAKgnb+2wuGKM2\naEMddOeOTtz+i/rgjkp/RGMt011EdCsso0/cTo9qqX/bxOOCE4/Mne/ChMkQPnNU\nCwIDAQABo3IwcDAJBgNVHRMEAjAAMB8GA1UdIwQYMBaAFIG+4l5yiB01gP0sw4ML\nUSopqYcuMB0GA1UdDgQWBBSby1T9leYVOVVdOZXiHCSaDDEMiDAOBgNVHQ8BAf8E\nBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAEyE\n1mjSUyY6uNp6W4l20w7SskALSJDRKkOeZxAgF3VMxlsCuEl70s9oEfntwIpyQtSa\njON/9yJHbwm/Az824bmk8Dc7AXIPhay+dftXb8j529gPuYB9AKoPNg0NctkyYCQh\na/3YQVdDWX7XgmEiXkL57M7G6+IdcPDONLArfjOcT9qHdkVVq1AIjlMSx3OQQmm/\nuoLb/G9q/97QA2/l8shG/Na8HjVqGLcl5TNZdbNhs2w9ogxr/GNzqdvym6RQ8vT/\nUR2n+uwH4n1MUxmHYYeyot5dnIV1IJ6hQ54JAncM9HvCLFk1WHz6RKshQUCuPBiJ\nwTw70BVktzJnb0VLeDg=\n-----END CERTIFICATE-----"
}
],
"radiusAccountingServers": [
{
"host": "0.0.0.0",
"port": 3000,
"openRoamingCertificateId": 2,
"caCertificate": "-----BEGIN CERTIFICATE-----\nMIIEKjCCAxKgAwIBAgIRANb+lsED3eb4+6YKLFFYqEkwDQYJKoZIhvcNAQELBQAw\ngYcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMREwDwYDVQQHDAhT\nYW4gSm9zZTEcMBoGA1UECgwTQ2lzY28gU3lzdGVtcywgSW5jLjESMBAGA1UECwwJ\nRE5BU3BhY2VzMR4wHAYDVQQDDBVjaXNjby5vcGVucm9hbWluZy5vcmcwHhcNMjAx\nMTA1MjEzMzM1WhcNMjExMTA1MjIzMzM1WjCBpDEcMBoGCgmSJomT8ixkAQETDGRu\nYXNwYWNlczpVUzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQ4wDAYDVQQKEwVD\naXNjbzEcMBoGA1UECxMTV0JBOldSSVggRW5kLUVudGl0eTE8MDoGA1UEAxMzNjQ3\nMDcwNDM4NDQ5NjQxMjAwMDAuMTg4MzQuaHMuY2lzY28ub3BlbnJvYW1pbmcub3Jn\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoqjP9QgRGyUO3p7SH9QK\nuTq6UYK7nAyjImgS4yQxeBkyZ5f2EUkX8m/AOcewpPxxPBhjPKRwxGeX3S50ksiA\nayFomUeslR0S0Z7RN9rzJa+CFyi9MwWIHMbLgXpB8tsSpgTAqwrzoTzOGq9fgC6u\npZhdZrBkg3FeJgD88goCi9mZDsY2YAoeGRLFJ2fR8iICqIVQy+Htq9pE22WBLpnS\nKjL3+mR9FArHNFtWlhKF2YHMUqyHHrnZnF/Ns7QNoMMF7/CK18iAKgnb+2wuGKM2\naEMddOeOTtz+i/rgjkp/RGMt011EdCsso0/cTo9qqX/bxOOCE4/Mne/ChMkQPnNU\nCwIDAQABo3IwcDAJBgNVHRMEAjAAMB8GA1UdIwQYMBaAFIG+4l5yiB01gP0sw4ML\nUSopqYcuMB0GA1UdDgQWBBSby1T9leYVOVVdOZXiHCSaDDEMiDAOBgNVHQ8BAf8E\nBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAEyE\n1mjSUyY6uNp6W4l20w7SskALSJDRKkOeZxAgF3VMxlsCuEl70s9oEfntwIpyQtSa\njON/9yJHbwm/Az824bmk8Dc7AXIPhay+dftXb8j529gPuYB9AKoPNg0NctkyYCQh\na/3YQVdDWX7XgmEiXkL57M7G6+IdcPDONLArfjOcT9qHdkVVq1AIjlMSx3OQQmm/\nuoLb/G9q/97QA2/l8shG/Na8HjVqGLcl5TNZdbNhs2w9ogxr/GNzqdvym6RQ8vT/\nUR2n+uwH4n1MUxmHYYeyot5dnIV1IJ6hQ54JAncM9HvCLFk1WHz6RKshQUCuPBiJ\nwTw70BVktzJnb0VLeDg=\n-----END CERTIFICATE-----"
}
],
"radiusAccountingEnabled": false,
"radiusEnabled": true,
"radiusAttributeForGroupPolicies": "Filter-Id",
"radiusFailoverPolicy": "Deny access",
"radiusLoadBalancingPolicy": "Round robin",
"ipAssignmentMode": "NAT mode",
"adminSplashUrl": "http://example.com",
"splashTimeout": "30 minutes",
"walledGardenEnabled": true,
"walledGardenRanges": [
"example.com",
"1.1.1.1/32"
],
"minBitrate": 11,
"bandSelection": "5 GHz band only",
"perClientBandwidthLimitUp": 0,
"perClientBandwidthLimitDown": 0,
"visible": true,
"availableOnAllAps": false,
"availabilityTags": [
"tag1",
"tag2"
],
"perSsidBandwidthLimitUp": 0,
"perSsidBandwidthLimitDown": 0,
"mandatoryDhcpEnabled": false
}
}
}
},
"summary": "Return a single MR SSID",
"tags": [
"wireless",
"configure",
"ssids"
]
},
"put": {
"description": "Update the attributes of an MR SSID",
"operationId": "updateNetworkWirelessSsid",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
},
{
"name": "updateNetworkWirelessSsid",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the SSID"
},
"enabled": {
"type": "boolean",
"description": "Whether or not the SSID is enabled"
},
"authMode": {
"type": "string",
"enum": [
"8021x-google",
"8021x-localradius",
"8021x-meraki",
"8021x-nac",
"8021x-radius",
"ipsk-with-nac",
"ipsk-with-radius",
"ipsk-without-radius",
"open",
"open-enhanced",
"open-with-nac",
"open-with-radius",
"psk"
],
"description": "The association control method for the SSID ('open', 'open-enhanced', 'psk', 'open-with-radius', 'open-with-nac', '8021x-meraki', '8021x-nac', '8021x-radius', '8021x-google', '8021x-localradius', 'ipsk-with-radius', 'ipsk-without-radius' or 'ipsk-with-nac')"
},
"enterpriseAdminAccess": {
"type": "string",
"enum": [
"access disabled",
"access enabled"
],
"description": "Whether or not an SSID is accessible by 'enterprise' administrators ('access disabled' or 'access enabled')"
},
"encryptionMode": {
"type": "string",
"enum": [
"wep",
"wpa"
],
"description": "The psk encryption mode for the SSID ('wep' or 'wpa'). This param is only valid if the authMode is 'psk'"
},
"psk": {
"type": "string",
"description": "The passkey for the SSID. This param is only valid if the authMode is 'psk'"
},
"wpaEncryptionMode": {
"type": "string",
"enum": [
"WPA1 and WPA2",
"WPA1 only",
"WPA2 only",
"WPA3 192-bit Security",
"WPA3 Transition Mode",
"WPA3 only"
],
"description": "The types of WPA encryption. ('WPA1 only', 'WPA1 and WPA2', 'WPA2 only', 'WPA3 Transition Mode', 'WPA3 only' or 'WPA3 192-bit Security')"
},
"dot11w": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether 802.11w is enabled or not."
},
"required": {
"type": "boolean",
"description": "(Optional) Whether 802.11w is required or not."
}
},
"description": "The current setting for Protected Management Frames (802.11w)."
},
"dot11r": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether 802.11r is enabled or not."
},
"adaptive": {
"type": "boolean",
"description": "(Optional) Whether 802.11r is adaptive or not."
}
},
"description": "The current setting for 802.11r"
},
"splashPage": {
"type": "string",
"enum": [
"Billing",
"Cisco ISE",
"Click-through splash page",
"Facebook Wi-Fi",
"Google Apps domain",
"Google OAuth",
"None",
"Password-protected with Active Directory",
"Password-protected with LDAP",
"Password-protected with Meraki RADIUS",
"Password-protected with custom RADIUS",
"SMS authentication",
"Sponsored guest",
"Systems Manager Sentry"
],
"description": "The type of splash page for the SSID ('None', 'Click-through splash page', 'Billing', 'Password-protected with Meraki RADIUS', 'Password-protected with custom RADIUS', 'Password-protected with Active Directory', 'Password-protected with LDAP', 'SMS authentication', 'Systems Manager Sentry', 'Facebook Wi-Fi', 'Google OAuth', 'Sponsored guest', 'Cisco ISE' or 'Google Apps domain'). This attribute is not supported for template children."
},
"splashGuestSponsorDomains": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of valid sponsor email domains for sponsored guest splash type."
},
"oauth": {
"type": "object",
"properties": {
"allowedDomains": {
"type": "array",
"items": {
"type": "string"
},
"description": "(Optional) The list of domains allowed access to the network."
}
},
"description": "The OAuth settings of this SSID. Only valid if splashPage is 'Google OAuth'."
},
"localRadius": {
"type": "object",
"properties": {
"cacheTimeout": {
"type": "integer",
"description": "The duration (in seconds) for which LDAP and OCSP lookups are cached."
},
"passwordAuthentication": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether or not to use EAP-TTLS/PAP or PEAP-GTC password-based authentication via LDAP lookup."
}
},
"description": "The current setting for password-based authentication."
},
"certificateAuthentication": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether or not to use EAP-TLS certificate-based authentication to validate wireless clients."
},
"useLdap": {
"type": "boolean",
"description": "Whether or not to verify the certificate with LDAP."
},
"useOcsp": {
"type": "boolean",
"description": "Whether or not to verify the certificate with OCSP."
},
"ocspResponderUrl": {
"type": "string",
"description": "(Optional) The URL of the OCSP responder to verify client certificate status."
},
"clientRootCaCertificate": {
"type": "object",
"properties": {
"contents": {
"type": "string",
"description": "The contents of the Client CA Certificate. Must be in PEM or DER format."
}
},
"description": "The Client CA Certificate used to sign the client certificate."
}
},
"description": "The current setting for certificate verification."
}
},
"description": "The current setting for Local Authentication, a built-in RADIUS server on the access point. Only valid if authMode is '8021x-localradius'."
},
"ldap": {
"type": "object",
"properties": {
"servers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "IP address (or FQDN) of your LDAP server."
},
"port": {
"type": "integer",
"description": "UDP port the LDAP server listens on."
}
},
"required": [
"host",
"port"
]
},
"description": "The LDAP servers to be used for authentication."
},
"credentials": {
"type": "object",
"properties": {
"distinguishedName": {
"type": "string",
"description": "The distinguished name of the LDAP user account (example: cn=user,dc=meraki,dc=com)."
},
"password": {
"type": "string",
"description": "The password of the LDAP user account."
}
},
"description": "(Optional) The credentials of the user account to be used by the AP to bind to your LDAP server. The LDAP account should have permissions on all your LDAP servers."
},
"baseDistinguishedName": {
"type": "string",
"description": "The base distinguished name of users on the LDAP server."
},
"serverCaCertificate": {
"type": "object",
"properties": {
"contents": {
"type": "string",
"description": "The contents of the CA certificate. Must be in PEM or DER format."
}
},
"description": "The CA certificate used to sign the LDAP server's key."
}
},
"description": "The current setting for LDAP. Only valid if splashPage is 'Password-protected with LDAP'."
},
"activeDirectory": {
"type": "object",
"properties": {
"servers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "IP address (or FQDN) of your Active Directory server."
},
"port": {
"type": "integer",
"description": "(Optional) UDP port the Active Directory server listens on. By default, uses port 3268."
}
},
"required": [
"host"
]
},
"description": "The Active Directory servers to be used for authentication."
},
"credentials": {
"type": "object",
"properties": {
"logonName": {
"type": "string",
"description": "The logon name of the Active Directory account."
},
"password": {
"type": "string",
"description": "The password to the Active Directory user account."
}
},
"description": "(Optional) The credentials of the user account to be used by the AP to bind to your Active Directory server. The Active Directory account should have permissions on all your Active Directory servers. Only valid if the splashPage is 'Password-protected with Active Directory'."
}
},
"description": "The current setting for Active Directory. Only valid if splashPage is 'Password-protected with Active Directory'"
},
"radiusServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "IP address (or FQDN) of your RADIUS server"
},
"port": {
"type": "integer",
"description": "UDP port the RADIUS server listens on for Access-requests"
},
"secret": {
"type": "string",
"description": "RADIUS client shared secret"
},
"radsecEnabled": {
"type": "boolean",
"description": "Use RADSEC (TLS over TCP) to connect to this RADIUS server. Requires radiusProxyEnabled."
},
"openRoamingCertificateId": {
"type": "integer",
"description": "The ID of the Openroaming Certificate attached to radius server."
},
"caCertificate": {
"type": "string",
"description": "Certificate used for authorization for the RADSEC Server"
}
},
"required": [
"host"
]
},
"description": "The RADIUS 802.1X servers to be used for authentication. This param is only valid if the authMode is 'open-with-radius', '8021x-radius' or 'ipsk-with-radius'"
},
"radiusProxyEnabled": {
"type": "boolean",
"description": "If true, Meraki devices will proxy RADIUS messages through the Meraki cloud to the configured RADIUS auth and accounting servers."
},
"radiusTestingEnabled": {
"type": "boolean",
"description": "If true, Meraki devices will periodically send Access-Request messages to configured RADIUS servers using identity 'meraki_8021x_test' to ensure that the RADIUS servers are reachable."
},
"radiusCalledStationId": {
"type": "string",
"description": "The template of the called station identifier to be used for RADIUS (ex. $NODE_MAC$:$VAP_NUM$)."
},
"radiusAuthenticationNasId": {
"type": "string",
"description": "The template of the NAS identifier to be used for RADIUS authentication (ex. $NODE_MAC$:$VAP_NUM$)."
},
"radiusServerTimeout": {
"type": "integer",
"description": "The amount of time for which a RADIUS client waits for a reply from the RADIUS server (must be between 1-10 seconds)."
},
"radiusServerAttemptsLimit": {
"type": "integer",
"description": "The maximum number of transmit attempts after which a RADIUS server is failed over (must be between 1-5)."
},
"radiusFallbackEnabled": {
"type": "boolean",
"description": "Whether or not higher priority RADIUS servers should be retried after 60 seconds."
},
"radiusRadsecTlsIdleTimeout": {
"type": "integer",
"x-release-stage": "beta",
"description": "The interval (in seconds) to determines how long a TLS session can remain idle for a RADSec server before it is automatically terminated."
},
"radiusCoaEnabled": {
"type": "boolean",
"description": "If true, Meraki devices will act as a RADIUS Dynamic Authorization Server and will respond to RADIUS Change-of-Authorization and Disconnect messages sent by the RADIUS server."
},
"radiusFailoverPolicy": {
"type": "string",
"enum": [
"Allow access",
"Deny access"
],
"description": "This policy determines how authentication requests should be handled in the event that all of the configured RADIUS servers are unreachable ('Deny access' or 'Allow access')"
},
"radiusLoadBalancingPolicy": {
"type": "string",
"enum": [
"Round robin",
"Strict priority order"
],
"description": "This policy determines which RADIUS server will be contacted first in an authentication attempt and the ordering of any necessary retry attempts ('Strict priority order' or 'Round robin')"
},
"radiusAccountingEnabled": {
"type": "boolean",
"description": "Whether or not RADIUS accounting is enabled. This param is only valid if the authMode is 'open-with-radius', '8021x-radius' or 'ipsk-with-radius'"
},
"radiusAccountingServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "IP address (or FQDN) to which the APs will send RADIUS accounting messages"
},
"port": {
"type": "integer",
"description": "Port on the RADIUS server that is listening for accounting messages"
},
"secret": {
"type": "string",
"description": "Shared key used to authenticate messages between the APs and RADIUS server"
},
"radsecEnabled": {
"type": "boolean",
"description": "Use RADSEC (TLS over TCP) to connect to this RADIUS accounting server. Requires radiusProxyEnabled."
},
"caCertificate": {
"type": "string",
"description": "Certificate used for authorization for the RADSEC Server"
}
},
"required": [
"host"
]
},
"description": "The RADIUS accounting 802.1X servers to be used for authentication. This param is only valid if the authMode is 'open-with-radius', '8021x-radius' or 'ipsk-with-radius' and radiusAccountingEnabled is 'true'"
},
"radiusAccountingInterimInterval": {
"type": "integer",
"description": "The interval (in seconds) in which accounting information is updated and sent to the RADIUS accounting server."
},
"radiusAttributeForGroupPolicies": {
"type": "string",
"enum": [
"Airespace-ACL-Name",
"Aruba-User-Role",
"Filter-Id",
"Reply-Message"
],
"description": "Specify the RADIUS attribute used to look up group policies ('Filter-Id', 'Reply-Message', 'Airespace-ACL-Name' or 'Aruba-User-Role'). Access points must receive this attribute in the RADIUS Access-Accept message"
},
"ipAssignmentMode": {
"type": "string",
"description": "The client IP assignment mode ('NAT mode', 'Bridge mode', 'Layer 3 roaming', 'Ethernet over GRE', 'Layer 3 roaming with a concentrator' or 'VPN')"
},
"useVlanTagging": {
"type": "boolean",
"description": "Whether or not traffic should be directed to use specific VLANs. This param is only valid if the ipAssignmentMode is 'Bridge mode' or 'Layer 3 roaming'"
},
"concentratorNetworkId": {
"type": "string",
"description": "The concentrator to use when the ipAssignmentMode is 'Layer 3 roaming with a concentrator' or 'VPN'."
},
"secondaryConcentratorNetworkId": {
"type": "string",
"description": "The secondary concentrator to use when the ipAssignmentMode is 'VPN'. If configured, the APs will switch to using this concentrator if the primary concentrator is unreachable. This param is optional. ('disabled' represents no secondary concentrator.)"
},
"disassociateClientsOnVpnFailover": {
"type": "boolean",
"description": "Disassociate clients when 'VPN' concentrator failover occurs in order to trigger clients to re-associate and generate new DHCP requests. This param is only valid if ipAssignmentMode is 'VPN'."
},
"vlanId": {
"type": "integer",
"description": "The VLAN ID used for VLAN tagging. This param is only valid when the ipAssignmentMode is 'Layer 3 roaming with a concentrator' or 'VPN'"
},
"defaultVlanId": {
"type": "integer",
"description": "The default VLAN ID used for 'all other APs'. This param is only valid when the ipAssignmentMode is 'Bridge mode' or 'Layer 3 roaming'"
},
"apTagsAndVlanIds": {
"type": "array",
"items": {
"type": "object",
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of AP tags"
},
"vlanId": {
"type": "integer",
"description": "Numerical identifier that is assigned to the VLAN"
}
}
},
"description": "The list of tags and VLAN IDs used for VLAN tagging. This param is only valid when the ipAssignmentMode is 'Bridge mode' or 'Layer 3 roaming'"
},
"walledGardenEnabled": {
"type": "boolean",
"description": "Allow access to a configurable list of IP ranges, which users may access prior to sign-on."
},
"walledGardenRanges": {
"type": "array",
"items": {
"type": "string"
},
"description": "Specify your walled garden by entering an array of addresses, ranges using CIDR notation, domain names, and domain wildcards (e.g. '192.168.1.1/24', '192.168.37.10/32', 'www.yahoo.com', '*.google.com']). Meraki's splash page is automatically included in your walled garden."
},
"gre": {
"type": "object",
"properties": {
"concentrator": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "The EoGRE concentrator's IP or FQDN. This param is required when ipAssignmentMode is 'Ethernet over GRE'."
}
},
"required": [
"host"
],
"description": "The EoGRE concentrator's settings"
},
"key": {
"type": "integer",
"description": "Optional numerical identifier that will add the GRE key field to the GRE header. Used to identify an individual traffic flow within a tunnel."
}
},
"description": "Ethernet over GRE settings"
},
"radiusOverride": {
"type": "boolean",
"description": "If true, the RADIUS response can override VLAN tag. This is not valid when ipAssignmentMode is 'NAT mode'."
},
"radiusGuestVlanEnabled": {
"type": "boolean",
"description": "Whether or not RADIUS Guest VLAN is enabled. This param is only valid if the authMode is 'open-with-radius' and addressing mode is not set to 'isolated' or 'nat' mode"
},
"radiusGuestVlanId": {
"type": "integer",
"description": "VLAN ID of the RADIUS Guest VLAN. This param is only valid if the authMode is 'open-with-radius' and addressing mode is not set to 'isolated' or 'nat' mode"
},
"minBitrate": {
"type": "number",
"format": "float",
"description": "The minimum bitrate in Mbps of this SSID in the default indoor RF profile. ('1', '2', '5.5', '6', '9', '11', '12', '18', '24', '36', '48' or '54')"
},
"bandSelection": {
"type": "string",
"description": "The client-serving radio frequencies of this SSID in the default indoor RF profile. ('Dual band operation', '5 GHz band only' or 'Dual band operation with Band Steering')"
},
"perClientBandwidthLimitUp": {
"type": "integer",
"description": "The upload bandwidth limit in Kbps. (0 represents no limit.)"
},
"perClientBandwidthLimitDown": {
"type": "integer",
"description": "The download bandwidth limit in Kbps. (0 represents no limit.)"
},
"perSsidBandwidthLimitUp": {
"type": "integer",
"description": "The total upload bandwidth limit in Kbps. (0 represents no limit.)"
},
"perSsidBandwidthLimitDown": {
"type": "integer",
"description": "The total download bandwidth limit in Kbps. (0 represents no limit.)"
},
"lanIsolationEnabled": {
"type": "boolean",
"description": "Boolean indicating whether Layer 2 LAN isolation should be enabled or disabled. Only configurable when ipAssignmentMode is 'Bridge mode'."
},
"visible": {
"type": "boolean",
"description": "Boolean indicating whether APs should advertise or hide this SSID. APs will only broadcast this SSID if set to true"
},
"availableOnAllAps": {
"type": "boolean",
"description": "Boolean indicating whether all APs should broadcast the SSID or if it should be restricted to APs matching any availability tags. Can only be false if the SSID has availability tags."
},
"availabilityTags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Accepts a list of tags for this SSID. If availableOnAllAps is false, then the SSID will only be broadcast by APs with tags matching any of the tags in this list."
},
"mandatoryDhcpEnabled": {
"type": "boolean",
"description": "If true, Mandatory DHCP will enforce that clients connecting to this SSID must use the IP address assigned by the DHCP server. Clients who use a static IP address won't be able to associate."
},
"adultContentFilteringEnabled": {
"type": "boolean",
"description": "Boolean indicating whether or not adult content will be blocked"
},
"dnsRewrite": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Boolean indicating whether or not DNS server rewrite is enabled. If disabled, upstream DNS will be used"
},
"dnsCustomNameservers": {
"type": "array",
"items": {
"type": "string"
},
"description": "User specified DNS servers (up to two servers)"
}
},
"description": "DNS servers rewrite settings"
},
"speedBurst": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Boolean indicating whether or not to allow users to temporarily exceed the bandwidth limit for short periods while still keeping them under the bandwidth limit over time."
}
},
"description": "The SpeedBurst setting for this SSID'"
},
"namedVlans": {
"type": "object",
"properties": {
"tagging": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether or not traffic should be directed to use specific VLAN names."
},
"defaultVlanName": {
"type": "string",
"description": "The default VLAN name used to tag traffic in the absence of a matching AP tag."
},
"byApTags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of AP tags."
},
"vlanName": {
"type": "string",
"description": "VLAN name that will be used to tag traffic."
}
}
},
"description": "The list of AP tags and VLAN names used for named VLAN tagging. If an AP has a tag matching one in the list, then traffic on this SSID will be directed to use the VLAN name associated to the tag."
}
},
"description": "VLAN tagging settings. This param is only valid when ipAssignmentMode is 'Bridge mode' or 'Layer 3 roaming'."
},
"radius": {
"type": "object",
"properties": {
"guestVlan": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether or not RADIUS guest named VLAN is enabled."
},
"name": {
"type": "string",
"description": "RADIUS guest VLAN name."
}
},
"description": "Guest VLAN settings. Used to direct traffic to a guest VLAN when none of the RADIUS servers are reachable or a client receives access-reject from the RADIUS server."
}
},
"description": "RADIUS settings. This param is only valid when authMode is 'open-with-radius' and ipAssignmentMode is not 'NAT mode'."
}
},
"description": "Named VLAN settings."
}
},
"example": {
"name": "My SSID",
"enabled": true,
"authMode": "8021x-radius",
"enterpriseAdminAccess": "access enabled",
"encryptionMode": "wpa",
"psk": "deadbeef",
"wpaEncryptionMode": "WPA2 only",
"dot11w": {
"enabled": true,
"required": false
},
"dot11r": {
"enabled": true,
"adaptive": true
},
"splashPage": "Click-through splash page",
"splashGuestSponsorDomains": [
"example.com"
],
"oauth": {
"allowedDomains": [
"example.com"
]
},
"localRadius": {
"cacheTimeout": 60,
"passwordAuthentication": {
"enabled": false
},
"certificateAuthentication": {
"enabled": true,
"useLdap": false,
"useOcsp": true,
"ocspResponderUrl": "http://ocsp-server.example.com",
"clientRootCaCertificate": {
"contents": "-----BEGIN CERTIFICATE-----\nMIIEKjCCAxKgAwIBAgIRANb+lsED3eb4+6YKLFFYqEkwDQYJKoZIhvcNAQELBQAw\ngYcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMREwDwYDVQQHDAhT\nYW4gSm9zZTEcMBoGA1UECgwTQ2lzY28gU3lzdGVtcywgSW5jLjESMBAGA1UECwwJ\nRE5BU3BhY2VzMR4wHAYDVQQDDBVjaXNjby5vcGVucm9hbWluZy5vcmcwHhcNMjAx\nMTA1MjEzMzM1WhcNMjExMTA1MjIzMzM1WjCBpDEcMBoGCgmSJomT8ixkAQETDGRu\nYXNwYWNlczpVUzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQ4wDAYDVQQKEwVD\naXNjbzEcMBoGA1UECxMTV0JBOldSSVggRW5kLUVudGl0eTE8MDoGA1UEAxMzNjQ3\nMDcwNDM4NDQ5NjQxMjAwMDAuMTg4MzQuaHMuY2lzY28ub3BlbnJvYW1pbmcub3Jn\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoqjP9QgRGyUO3p7SH9QK\nuTq6UYK7nAyjImgS4yQxeBkyZ5f2EUkX8m/AOcewpPxxPBhjPKRwxGeX3S50ksiA\nayFomUeslR0S0Z7RN9rzJa+CFyi9MwWIHMbLgXpB8tsSpgTAqwrzoTzOGq9fgC6u\npZhdZrBkg3FeJgD88goCi9mZDsY2YAoeGRLFJ2fR8iICqIVQy+Htq9pE22WBLpnS\nKjL3+mR9FArHNFtWlhKF2YHMUqyHHrnZnF/Ns7QNoMMF7/CK18iAKgnb+2wuGKM2\naEMddOeOTtz+i/rgjkp/RGMt011EdCsso0/cTo9qqX/bxOOCE4/Mne/ChMkQPnNU\nCwIDAQABo3IwcDAJBgNVHRMEAjAAMB8GA1UdIwQYMBaAFIG+4l5yiB01gP0sw4ML\nUSopqYcuMB0GA1UdDgQWBBSby1T9leYVOVVdOZXiHCSaDDEMiDAOBgNVHQ8BAf8E\nBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAEyE\n1mjSUyY6uNp6W4l20w7SskALSJDRKkOeZxAgF3VMxlsCuEl70s9oEfntwIpyQtSa\njON/9yJHbwm/Az824bmk8Dc7AXIPhay+dftXb8j529gPuYB9AKoPNg0NctkyYCQh\na/3YQVdDWX7XgmEiXkL57M7G6+IdcPDONLArfjOcT9qHdkVVq1AIjlMSx3OQQmm/\nuoLb/G9q/97QA2/l8shG/Na8HjVqGLcl5TNZdbNhs2w9ogxr/GNzqdvym6RQ8vT/\nUR2n+uwH4n1MUxmHYYeyot5dnIV1IJ6hQ54JAncM9HvCLFk1WHz6RKshQUCuPBiJ\nwTw70BVktzJnb0VLeDg=\n-----END CERTIFICATE-----"
}
}
},
"ldap": {
"servers": [
{
"host": "127.0.0.1",
"port": 389
}
],
"credentials": {
"distinguishedName": "cn=user,dc=example,dc=com",
"password": "password"
},
"baseDistinguishedName": "dc=example,dc=com",
"serverCaCertificate": {
"contents": "-----BEGIN CERTIFICATE-----\nMIIEKjCCAxKgAwIBAgIRANb+lsED3eb4+6YKLFFYqEkwDQYJKoZIhvcNAQELBQAw\ngYcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMREwDwYDVQQHDAhT\nYW4gSm9zZTEcMBoGA1UECgwTQ2lzY28gU3lzdGVtcywgSW5jLjESMBAGA1UECwwJ\nRE5BU3BhY2VzMR4wHAYDVQQDDBVjaXNjby5vcGVucm9hbWluZy5vcmcwHhcNMjAx\nMTA1MjEzMzM1WhcNMjExMTA1MjIzMzM1WjCBpDEcMBoGCgmSJomT8ixkAQETDGRu\nYXNwYWNlczpVUzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQ4wDAYDVQQKEwVD\naXNjbzEcMBoGA1UECxMTV0JBOldSSVggRW5kLUVudGl0eTE8MDoGA1UEAxMzNjQ3\nMDcwNDM4NDQ5NjQxMjAwMDAuMTg4MzQuaHMuY2lzY28ub3BlbnJvYW1pbmcub3Jn\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoqjP9QgRGyUO3p7SH9QK\nuTq6UYK7nAyjImgS4yQxeBkyZ5f2EUkX8m/AOcewpPxxPBhjPKRwxGeX3S50ksiA\nayFomUeslR0S0Z7RN9rzJa+CFyi9MwWIHMbLgXpB8tsSpgTAqwrzoTzOGq9fgC6u\npZhdZrBkg3FeJgD88goCi9mZDsY2YAoeGRLFJ2fR8iICqIVQy+Htq9pE22WBLpnS\nKjL3+mR9FArHNFtWlhKF2YHMUqyHHrnZnF/Ns7QNoMMF7/CK18iAKgnb+2wuGKM2\naEMddOeOTtz+i/rgjkp/RGMt011EdCsso0/cTo9qqX/bxOOCE4/Mne/ChMkQPnNU\nCwIDAQABo3IwcDAJBgNVHRMEAjAAMB8GA1UdIwQYMBaAFIG+4l5yiB01gP0sw4ML\nUSopqYcuMB0GA1UdDgQWBBSby1T9leYVOVVdOZXiHCSaDDEMiDAOBgNVHQ8BAf8E\nBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAEyE\n1mjSUyY6uNp6W4l20w7SskALSJDRKkOeZxAgF3VMxlsCuEl70s9oEfntwIpyQtSa\njON/9yJHbwm/Az824bmk8Dc7AXIPhay+dftXb8j529gPuYB9AKoPNg0NctkyYCQh\na/3YQVdDWX7XgmEiXkL57M7G6+IdcPDONLArfjOcT9qHdkVVq1AIjlMSx3OQQmm/\nuoLb/G9q/97QA2/l8shG/Na8HjVqGLcl5TNZdbNhs2w9ogxr/GNzqdvym6RQ8vT/\nUR2n+uwH4n1MUxmHYYeyot5dnIV1IJ6hQ54JAncM9HvCLFk1WHz6RKshQUCuPBiJ\nwTw70BVktzJnb0VLeDg=\n-----END CERTIFICATE-----"
}
},
"activeDirectory": {
"servers": [
{
"host": "127.0.0.1",
"port": 3268
}
],
"credentials": {
"logonName": "user",
"password": "password"
}
},
"radiusServers": [
{
"host": "0.0.0.0",
"port": 3000,
"secret": "secret-string",
"radsecEnabled": true,
"openRoamingCertificateId": 2,
"caCertificate": "-----BEGIN CERTIFICATE-----\nMIIEKjCCAxKgAwIBAgIRANb+lsED3eb4+6YKLFFYqEkwDQYJKoZIhvcNAQELBQAw\ngYcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMREwDwYDVQQHDAhT\nYW4gSm9zZTEcMBoGA1UECgwTQ2lzY28gU3lzdGVtcywgSW5jLjESMBAGA1UECwwJ\nRE5BU3BhY2VzMR4wHAYDVQQDDBVjaXNjby5vcGVucm9hbWluZy5vcmcwHhcNMjAx\nMTA1MjEzMzM1WhcNMjExMTA1MjIzMzM1WjCBpDEcMBoGCgmSJomT8ixkAQETDGRu\nYXNwYWNlczpVUzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQ4wDAYDVQQKEwVD\naXNjbzEcMBoGA1UECxMTV0JBOldSSVggRW5kLUVudGl0eTE8MDoGA1UEAxMzNjQ3\nMDcwNDM4NDQ5NjQxMjAwMDAuMTg4MzQuaHMuY2lzY28ub3BlbnJvYW1pbmcub3Jn\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoqjP9QgRGyUO3p7SH9QK\nuTq6UYK7nAyjImgS4yQxeBkyZ5f2EUkX8m/AOcewpPxxPBhjPKRwxGeX3S50ksiA\nayFomUeslR0S0Z7RN9rzJa+CFyi9MwWIHMbLgXpB8tsSpgTAqwrzoTzOGq9fgC6u\npZhdZrBkg3FeJgD88goCi9mZDsY2YAoeGRLFJ2fR8iICqIVQy+Htq9pE22WBLpnS\nKjL3+mR9FArHNFtWlhKF2YHMUqyHHrnZnF/Ns7QNoMMF7/CK18iAKgnb+2wuGKM2\naEMddOeOTtz+i/rgjkp/RGMt011EdCsso0/cTo9qqX/bxOOCE4/Mne/ChMkQPnNU\nCwIDAQABo3IwcDAJBgNVHRMEAjAAMB8GA1UdIwQYMBaAFIG+4l5yiB01gP0sw4ML\nUSopqYcuMB0GA1UdDgQWBBSby1T9leYVOVVdOZXiHCSaDDEMiDAOBgNVHQ8BAf8E\nBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAEyE\n1mjSUyY6uNp6W4l20w7SskALSJDRKkOeZxAgF3VMxlsCuEl70s9oEfntwIpyQtSa\njON/9yJHbwm/Az824bmk8Dc7AXIPhay+dftXb8j529gPuYB9AKoPNg0NctkyYCQh\na/3YQVdDWX7XgmEiXkL57M7G6+IdcPDONLArfjOcT9qHdkVVq1AIjlMSx3OQQmm/\nuoLb/G9q/97QA2/l8shG/Na8HjVqGLcl5TNZdbNhs2w9ogxr/GNzqdvym6RQ8vT/\nUR2n+uwH4n1MUxmHYYeyot5dnIV1IJ6hQ54JAncM9HvCLFk1WHz6RKshQUCuPBiJ\nwTw70BVktzJnb0VLeDg=\n-----END CERTIFICATE-----"
}
],
"radiusProxyEnabled": false,
"radiusTestingEnabled": true,
"radiusCalledStationId": "00-11-22-33-44-55:AP1",
"radiusAuthenticationNasId": "00-11-22-33-44-55:AP1",
"radiusServerTimeout": 5,
"radiusServerAttemptsLimit": 5,
"radiusFallbackEnabled": true,
"radiusRadsecTlsIdleTimeout": 60,
"radiusCoaEnabled": true,
"radiusFailoverPolicy": "Deny access",
"radiusLoadBalancingPolicy": "Round robin",
"radiusAccountingEnabled": true,
"radiusAccountingServers": [
{
"host": "0.0.0.0",
"port": 3000,
"secret": "secret-string",
"radsecEnabled": true,
"caCertificate": "-----BEGIN CERTIFICATE-----\nMIIEKjCCAxKgAwIBAgIRANb+lsED3eb4+6YKLFFYqEkwDQYJKoZIhvcNAQELBQAw\ngYcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMREwDwYDVQQHDAhT\nYW4gSm9zZTEcMBoGA1UECgwTQ2lzY28gU3lzdGVtcywgSW5jLjESMBAGA1UECwwJ\nRE5BU3BhY2VzMR4wHAYDVQQDDBVjaXNjby5vcGVucm9hbWluZy5vcmcwHhcNMjAx\nMTA1MjEzMzM1WhcNMjExMTA1MjIzMzM1WjCBpDEcMBoGCgmSJomT8ixkAQETDGRu\nYXNwYWNlczpVUzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQ4wDAYDVQQKEwVD\naXNjbzEcMBoGA1UECxMTV0JBOldSSVggRW5kLUVudGl0eTE8MDoGA1UEAxMzNjQ3\nMDcwNDM4NDQ5NjQxMjAwMDAuMTg4MzQuaHMuY2lzY28ub3BlbnJvYW1pbmcub3Jn\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoqjP9QgRGyUO3p7SH9QK\nuTq6UYK7nAyjImgS4yQxeBkyZ5f2EUkX8m/AOcewpPxxPBhjPKRwxGeX3S50ksiA\nayFomUeslR0S0Z7RN9rzJa+CFyi9MwWIHMbLgXpB8tsSpgTAqwrzoTzOGq9fgC6u\npZhdZrBkg3FeJgD88goCi9mZDsY2YAoeGRLFJ2fR8iICqIVQy+Htq9pE22WBLpnS\nKjL3+mR9FArHNFtWlhKF2YHMUqyHHrnZnF/Ns7QNoMMF7/CK18iAKgnb+2wuGKM2\naEMddOeOTtz+i/rgjkp/RGMt011EdCsso0/cTo9qqX/bxOOCE4/Mne/ChMkQPnNU\nCwIDAQABo3IwcDAJBgNVHRMEAjAAMB8GA1UdIwQYMBaAFIG+4l5yiB01gP0sw4ML\nUSopqYcuMB0GA1UdDgQWBBSby1T9leYVOVVdOZXiHCSaDDEMiDAOBgNVHQ8BAf8E\nBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAEyE\n1mjSUyY6uNp6W4l20w7SskALSJDRKkOeZxAgF3VMxlsCuEl70s9oEfntwIpyQtSa\njON/9yJHbwm/Az824bmk8Dc7AXIPhay+dftXb8j529gPuYB9AKoPNg0NctkyYCQh\na/3YQVdDWX7XgmEiXkL57M7G6+IdcPDONLArfjOcT9qHdkVVq1AIjlMSx3OQQmm/\nuoLb/G9q/97QA2/l8shG/Na8HjVqGLcl5TNZdbNhs2w9ogxr/GNzqdvym6RQ8vT/\nUR2n+uwH4n1MUxmHYYeyot5dnIV1IJ6hQ54JAncM9HvCLFk1WHz6RKshQUCuPBiJ\nwTw70BVktzJnb0VLeDg=\n-----END CERTIFICATE-----"
}
],
"radiusAccountingInterimInterval": 5,
"radiusAttributeForGroupPolicies": "Filter-Id",
"ipAssignmentMode": "NAT mode",
"useVlanTagging": false,
"concentratorNetworkId": "N_24329156",
"secondaryConcentratorNetworkId": "disabled",
"disassociateClientsOnVpnFailover": false,
"vlanId": 10,
"defaultVlanId": 1,
"apTagsAndVlanIds": [
{
"tags": [
"tag1",
"tag2"
],
"vlanId": 100
}
],
"walledGardenEnabled": true,
"walledGardenRanges": [
"example.com",
"1.1.1.1/32"
],
"gre": {
"concentrator": {
"host": "192.168.1.1"
},
"key": 5
},
"radiusOverride": false,
"radiusGuestVlanEnabled": true,
"radiusGuestVlanId": 1,
"minBitrate": 5.5,
"bandSelection": "5 GHz band only",
"perClientBandwidthLimitUp": 0,
"perClientBandwidthLimitDown": 0,
"perSsidBandwidthLimitUp": 0,
"perSsidBandwidthLimitDown": 0,
"lanIsolationEnabled": true,
"visible": true,
"availableOnAllAps": false,
"availabilityTags": [
"tag1",
"tag2"
],
"mandatoryDhcpEnabled": false,
"adultContentFilteringEnabled": false,
"dnsRewrite": {
"enabled": true,
"dnsCustomNameservers": [
"8.8.8.8",
"8.8.4.4"
]
},
"speedBurst": {
"enabled": true
},
"namedVlans": {
"tagging": {
"enabled": true,
"defaultVlanName": "My VLAN",
"byApTags": [
{
"tags": [
"tag1",
"tag2"
],
"vlanName": "My VLAN"
}
]
},
"radius": {
"guestVlan": {
"enabled": true,
"name": "Guest VLAN"
}
}
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"description": "Unique identifier of the SSID"
},
"name": {
"type": "string",
"description": "The name of the SSID"
},
"enabled": {
"type": "boolean",
"description": "Whether or not the SSID is enabled"
},
"splashPage": {
"type": "string",
"enum": [
"Billing",
"Cisco ISE",
"Click-through splash page",
"Facebook Wi-Fi",
"Google Apps domain",
"Google OAuth",
"None",
"Password-protected with Active Directory",
"Password-protected with LDAP",
"Password-protected with Meraki RADIUS",
"Password-protected with custom RADIUS",
"SMS authentication",
"Sponsored guest",
"Systems Manager Sentry"
],
"description": "The type of splash page for the SSID"
},
"ssidAdminAccessible": {
"type": "boolean",
"description": "SSID Administrator access status"
},
"localAuth": {
"type": "boolean",
"description": "Extended local auth flag for Enterprise NAC"
},
"authMode": {
"type": "string",
"enum": [
"8021x-google",
"8021x-localradius",
"8021x-meraki",
"8021x-nac",
"8021x-radius",
"ipsk-with-nac",
"ipsk-with-radius",
"ipsk-without-radius",
"open",
"open-enhanced",
"open-with-nac",
"open-with-radius",
"psk"
],
"description": "The association control method for the SSID"
},
"encryptionMode": {
"type": "string",
"enum": [
"wep",
"wpa"
],
"description": "The psk encryption mode for the SSID"
},
"wpaEncryptionMode": {
"type": "string",
"enum": [
"WPA1 and WPA2",
"WPA1 only",
"WPA2 only",
"WPA3 192-bit Security",
"WPA3 Transition Mode",
"WPA3 only"
],
"description": "The types of WPA encryption"
},
"radiusServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "IP address (or FQDN) of your RADIUS server"
},
"port": {
"type": "integer",
"description": "UDP port the RADIUS server listens on for Access-requests"
},
"openRoamingCertificateId": {
"type": "integer",
"description": "The ID of the Openroaming Certificate attached to radius server"
},
"caCertificate": {
"type": "string",
"description": "Certificate used for authorization for the RADSEC Server"
}
}
},
"description": "List of RADIUS 802.1X servers to be used for authentication"
},
"radiusAccountingServers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "IP address (or FQDN) to which the APs will send RADIUS accounting messages"
},
"port": {
"type": "integer",
"description": "Port on the RADIUS server that is listening for accounting messages"
},
"openRoamingCertificateId": {
"type": "integer",
"description": "The ID of the Openroaming Certificate attached to radius server"
},
"caCertificate": {
"type": "string",
"description": "Certificate used for authorization for the RADSEC Server"
}
}
},
"description": "List of RADIUS accounting 802.1X servers to be used for authentication"
},
"radiusAccountingEnabled": {
"type": "boolean",
"description": "Whether or not RADIUS accounting is enabled"
},
"radiusEnabled": {
"type": "boolean",
"description": "Whether RADIUS authentication is enabled"
},
"radiusAttributeForGroupPolicies": {
"type": "string",
"enum": [
"Airespace-ACL-Name",
"Aruba-User-Role",
"Filter-Id",
"Reply-Message"
],
"description": "RADIUS attribute used to look up group policies"
},
"radiusFailoverPolicy": {
"type": "string",
"enum": [
"Allow access",
"Deny access"
],
"description": "Policy which determines how authentication requests should be handled in the event that all of the configured RADIUS servers are unreachable"
},
"radiusLoadBalancingPolicy": {
"type": "string",
"enum": [
"Round robin",
"Strict priority order"
],
"description": "Policy which determines which RADIUS server will be contacted first in an authentication attempt, and the ordering of any necessary retry attempts"
},
"ipAssignmentMode": {
"type": "string",
"enum": [
"Bridge mode",
"Ethernet over GRE",
"Layer 3 roaming",
"Layer 3 roaming with a concentrator",
"NAT mode",
"VPN"
],
"description": "The client IP assignment mode"
},
"adminSplashUrl": {
"type": "string",
"description": "URL for the admin splash page"
},
"splashTimeout": {
"type": "string",
"description": "Splash page timeout"
},
"walledGardenEnabled": {
"type": "boolean",
"description": "Allow users to access a configurable list of IP ranges prior to sign-on"
},
"walledGardenRanges": {
"type": "array",
"items": {
"type": "string"
},
"description": "Domain names and IP address ranges available in Walled Garden mode"
},
"minBitrate": {
"type": "integer",
"description": "The minimum bitrate in Mbps of this SSID in the default indoor RF profile"
},
"bandSelection": {
"type": "string",
"enum": [
"5 GHz band only",
"Dual band operation",
"Dual band operation with Band Steering"
],
"description": "The client-serving radio frequencies of this SSID in the default indoor RF profile"
},
"perClientBandwidthLimitUp": {
"type": "integer",
"description": "The upload bandwidth limit in Kbps. (0 represents no limit.)"
},
"perClientBandwidthLimitDown": {
"type": "integer",
"description": "The download bandwidth limit in Kbps. (0 represents no limit.)"
},
"visible": {
"type": "boolean",
"description": "Whether the SSID is advertised or hidden by the AP"
},
"availableOnAllAps": {
"type": "boolean",
"description": "Whether all APs broadcast the SSID or if it's restricted to APs matching any availability tags"
},
"availabilityTags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of tags for this SSID. If availableOnAllAps is false, then the SSID is only broadcast by APs with tags matching any of the tags in this list"
},
"perSsidBandwidthLimitUp": {
"type": "integer",
"description": "The total upload bandwidth limit in Kbps (0 represents no limit)"
},
"perSsidBandwidthLimitDown": {
"type": "integer",
"description": "The total download bandwidth limit in Kbps (0 represents no limit)"
},
"mandatoryDhcpEnabled": {
"type": "boolean",
"description": "Whether clients connecting to this SSID must use the IP address assigned by the DHCP server"
}
}
},
"examples": {
"application/json": {
"number": 0,
"name": "My SSID",
"enabled": true,
"splashPage": "Click-through splash page",
"ssidAdminAccessible": false,
"localAuth": false,
"authMode": "8021x-radius",
"encryptionMode": "wpa",
"wpaEncryptionMode": "WPA2 only",
"radiusServers": [
{
"host": "0.0.0.0",
"port": 3000,
"openRoamingCertificateId": 2,
"caCertificate": "-----BEGIN CERTIFICATE-----\nMIIEKjCCAxKgAwIBAgIRANb+lsED3eb4+6YKLFFYqEkwDQYJKoZIhvcNAQELBQAw\ngYcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMREwDwYDVQQHDAhT\nYW4gSm9zZTEcMBoGA1UECgwTQ2lzY28gU3lzdGVtcywgSW5jLjESMBAGA1UECwwJ\nRE5BU3BhY2VzMR4wHAYDVQQDDBVjaXNjby5vcGVucm9hbWluZy5vcmcwHhcNMjAx\nMTA1MjEzMzM1WhcNMjExMTA1MjIzMzM1WjCBpDEcMBoGCgmSJomT8ixkAQETDGRu\nYXNwYWNlczpVUzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQ4wDAYDVQQKEwVD\naXNjbzEcMBoGA1UECxMTV0JBOldSSVggRW5kLUVudGl0eTE8MDoGA1UEAxMzNjQ3\nMDcwNDM4NDQ5NjQxMjAwMDAuMTg4MzQuaHMuY2lzY28ub3BlbnJvYW1pbmcub3Jn\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoqjP9QgRGyUO3p7SH9QK\nuTq6UYK7nAyjImgS4yQxeBkyZ5f2EUkX8m/AOcewpPxxPBhjPKRwxGeX3S50ksiA\nayFomUeslR0S0Z7RN9rzJa+CFyi9MwWIHMbLgXpB8tsSpgTAqwrzoTzOGq9fgC6u\npZhdZrBkg3FeJgD88goCi9mZDsY2YAoeGRLFJ2fR8iICqIVQy+Htq9pE22WBLpnS\nKjL3+mR9FArHNFtWlhKF2YHMUqyHHrnZnF/Ns7QNoMMF7/CK18iAKgnb+2wuGKM2\naEMddOeOTtz+i/rgjkp/RGMt011EdCsso0/cTo9qqX/bxOOCE4/Mne/ChMkQPnNU\nCwIDAQABo3IwcDAJBgNVHRMEAjAAMB8GA1UdIwQYMBaAFIG+4l5yiB01gP0sw4ML\nUSopqYcuMB0GA1UdDgQWBBSby1T9leYVOVVdOZXiHCSaDDEMiDAOBgNVHQ8BAf8E\nBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAEyE\n1mjSUyY6uNp6W4l20w7SskALSJDRKkOeZxAgF3VMxlsCuEl70s9oEfntwIpyQtSa\njON/9yJHbwm/Az824bmk8Dc7AXIPhay+dftXb8j529gPuYB9AKoPNg0NctkyYCQh\na/3YQVdDWX7XgmEiXkL57M7G6+IdcPDONLArfjOcT9qHdkVVq1AIjlMSx3OQQmm/\nuoLb/G9q/97QA2/l8shG/Na8HjVqGLcl5TNZdbNhs2w9ogxr/GNzqdvym6RQ8vT/\nUR2n+uwH4n1MUxmHYYeyot5dnIV1IJ6hQ54JAncM9HvCLFk1WHz6RKshQUCuPBiJ\nwTw70BVktzJnb0VLeDg=\n-----END CERTIFICATE-----"
}
],
"radiusAccountingServers": [
{
"host": "0.0.0.0",
"port": 3000,
"openRoamingCertificateId": 2,
"caCertificate": "-----BEGIN CERTIFICATE-----\nMIIEKjCCAxKgAwIBAgIRANb+lsED3eb4+6YKLFFYqEkwDQYJKoZIhvcNAQELBQAw\ngYcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMREwDwYDVQQHDAhT\nYW4gSm9zZTEcMBoGA1UECgwTQ2lzY28gU3lzdGVtcywgSW5jLjESMBAGA1UECwwJ\nRE5BU3BhY2VzMR4wHAYDVQQDDBVjaXNjby5vcGVucm9hbWluZy5vcmcwHhcNMjAx\nMTA1MjEzMzM1WhcNMjExMTA1MjIzMzM1WjCBpDEcMBoGCgmSJomT8ixkAQETDGRu\nYXNwYWNlczpVUzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMQ4wDAYDVQQKEwVD\naXNjbzEcMBoGA1UECxMTV0JBOldSSVggRW5kLUVudGl0eTE8MDoGA1UEAxMzNjQ3\nMDcwNDM4NDQ5NjQxMjAwMDAuMTg4MzQuaHMuY2lzY28ub3BlbnJvYW1pbmcub3Jn\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoqjP9QgRGyUO3p7SH9QK\nuTq6UYK7nAyjImgS4yQxeBkyZ5f2EUkX8m/AOcewpPxxPBhjPKRwxGeX3S50ksiA\nayFomUeslR0S0Z7RN9rzJa+CFyi9MwWIHMbLgXpB8tsSpgTAqwrzoTzOGq9fgC6u\npZhdZrBkg3FeJgD88goCi9mZDsY2YAoeGRLFJ2fR8iICqIVQy+Htq9pE22WBLpnS\nKjL3+mR9FArHNFtWlhKF2YHMUqyHHrnZnF/Ns7QNoMMF7/CK18iAKgnb+2wuGKM2\naEMddOeOTtz+i/rgjkp/RGMt011EdCsso0/cTo9qqX/bxOOCE4/Mne/ChMkQPnNU\nCwIDAQABo3IwcDAJBgNVHRMEAjAAMB8GA1UdIwQYMBaAFIG+4l5yiB01gP0sw4ML\nUSopqYcuMB0GA1UdDgQWBBSby1T9leYVOVVdOZXiHCSaDDEMiDAOBgNVHQ8BAf8E\nBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAEyE\n1mjSUyY6uNp6W4l20w7SskALSJDRKkOeZxAgF3VMxlsCuEl70s9oEfntwIpyQtSa\njON/9yJHbwm/Az824bmk8Dc7AXIPhay+dftXb8j529gPuYB9AKoPNg0NctkyYCQh\na/3YQVdDWX7XgmEiXkL57M7G6+IdcPDONLArfjOcT9qHdkVVq1AIjlMSx3OQQmm/\nuoLb/G9q/97QA2/l8shG/Na8HjVqGLcl5TNZdbNhs2w9ogxr/GNzqdvym6RQ8vT/\nUR2n+uwH4n1MUxmHYYeyot5dnIV1IJ6hQ54JAncM9HvCLFk1WHz6RKshQUCuPBiJ\nwTw70BVktzJnb0VLeDg=\n-----END CERTIFICATE-----"
}
],
"radiusAccountingEnabled": false,
"radiusEnabled": true,
"radiusAttributeForGroupPolicies": "Filter-Id",
"radiusFailoverPolicy": "Deny access",
"radiusLoadBalancingPolicy": "Round robin",
"ipAssignmentMode": "NAT mode",
"adminSplashUrl": "http://example.com",
"splashTimeout": "30 minutes",
"walledGardenEnabled": true,
"walledGardenRanges": [
"example.com",
"1.1.1.1/32"
],
"minBitrate": 11,
"bandSelection": "5 GHz band only",
"perClientBandwidthLimitUp": 0,
"perClientBandwidthLimitDown": 0,
"visible": true,
"availableOnAllAps": false,
"availabilityTags": [
"tag1",
"tag2"
],
"perSsidBandwidthLimitUp": 0,
"perSsidBandwidthLimitDown": 0,
"mandatoryDhcpEnabled": false
}
}
}
},
"summary": "Update the attributes of an MR SSID",
"tags": [
"wireless",
"configure",
"ssids"
]
}
},
"/networks/{networkId}/wireless/ssids/{number}/bonjourForwarding": {
"get": {
"description": "List the Bonjour forwarding setting and rules for the SSID",
"operationId": "getNetworkWirelessSsidBonjourForwarding",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "If true, Bonjour forwarding is enabled on the SSID."
},
"exception": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "If true, Bonjour forwarding exception is enabled on this SSID. Exception is required to enable L2 isolation and Bonjour forwarding to work together."
}
},
"description": "Bonjour forwarding exception"
},
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "Desctiption of the bonjour forwarding rule"
},
"vlanId": {
"type": "string",
"description": "The ID of the service VLAN. Required"
},
"services": {
"type": "array",
"items": {
"type": "string",
"enum": [
"AFP",
"AirPlay",
"All Services",
"BitTorrent",
"FTP",
"Printers",
"SSH",
"Samba",
"Scanners",
"iChat",
"iTunes"
]
},
"description": "A list of Bonjour services. At least one service must be specified. Available services are 'All Services', 'AirPlay', 'AFP', 'BitTorrent', 'FTP', 'iChat', 'iTunes', 'Printers', 'Samba', 'Scanners' and 'SSH'"
}
}
},
"description": "Bonjour forwarding rules"
}
}
},
"examples": {
"application/json": {
"enabled": true,
"exception": {
"enabled": true
},
"rules": [
{
"description": "A simple bonjour rule",
"vlanId": "1",
"services": [
"All Services"
]
}
]
}
}
}
},
"summary": "List the Bonjour forwarding setting and rules for the SSID",
"tags": [
"wireless",
"configure",
"ssids",
"bonjourForwarding"
]
},
"put": {
"description": "Update the bonjour forwarding setting and rules for the SSID",
"operationId": "updateNetworkWirelessSsidBonjourForwarding",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
},
{
"name": "updateNetworkWirelessSsidBonjourForwarding",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "If true, Bonjour forwarding is enabled on this SSID."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "A description for your Bonjour forwarding rule. Optional."
},
"vlanId": {
"type": "string",
"description": "The ID of the service VLAN. Required."
},
"services": {
"type": "array",
"items": {
"type": "string",
"enum": [
"AFP",
"AirPlay",
"All Services",
"BitTorrent",
"FTP",
"Printers",
"SSH",
"Samba",
"Scanners",
"iChat",
"iTunes"
]
},
"description": "A list of Bonjour services. At least one service must be specified. Available services are 'All Services', 'AirPlay', 'AFP', 'BitTorrent', 'FTP', 'iChat', 'iTunes', 'Printers', 'Samba', 'Scanners' and 'SSH'"
}
},
"required": [
"vlanId",
"services"
]
},
"description": "List of bonjour forwarding rules."
},
"exception": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "If true, Bonjour forwarding exception is enabled on this SSID. Exception is required to enable L2 isolation and Bonjour forwarding to work together."
}
},
"description": "Bonjour forwarding exception"
}
},
"example": {
"enabled": true,
"rules": [
{
"description": "A simple bonjour rule",
"vlanId": "1",
"services": [
"All Services"
]
}
],
"exception": {
"enabled": true
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "If true, Bonjour forwarding is enabled on the SSID."
},
"exception": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "If true, Bonjour forwarding exception is enabled on this SSID. Exception is required to enable L2 isolation and Bonjour forwarding to work together."
}
},
"description": "Bonjour forwarding exception"
},
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "Desctiption of the bonjour forwarding rule"
},
"vlanId": {
"type": "string",
"description": "The ID of the service VLAN. Required"
},
"services": {
"type": "array",
"items": {
"type": "string",
"enum": [
"AFP",
"AirPlay",
"All Services",
"BitTorrent",
"FTP",
"Printers",
"SSH",
"Samba",
"Scanners",
"iChat",
"iTunes"
]
},
"description": "A list of Bonjour services. At least one service must be specified. Available services are 'All Services', 'AirPlay', 'AFP', 'BitTorrent', 'FTP', 'iChat', 'iTunes', 'Printers', 'Samba', 'Scanners' and 'SSH'"
}
}
},
"description": "Bonjour forwarding rules"
}
}
},
"examples": {
"application/json": {
"enabled": true,
"exception": {
"enabled": true
},
"rules": [
{
"description": "A simple bonjour rule",
"vlanId": "1",
"services": [
"All Services"
]
}
]
}
}
}
},
"summary": "Update the bonjour forwarding setting and rules for the SSID",
"tags": [
"wireless",
"configure",
"ssids",
"bonjourForwarding"
]
}
},
"/networks/{networkId}/wireless/ssids/{number}/deviceTypeGroupPolicies": {
"get": {
"description": "List the device type group policies for the SSID",
"operationId": "getNetworkWirelessSsidDeviceTypeGroupPolicies",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"enabled": true,
"deviceTypePolicies": [
{
"deviceType": "Android",
"devicePolicy": "Allowed"
},
{
"deviceType": "iPhone",
"devicePolicy": "Group policy",
"groupPolicyId": 101
}
]
}
}
}
},
"summary": "List the device type group policies for the SSID",
"tags": [
"wireless",
"configure",
"ssids",
"deviceTypeGroupPolicies"
]
},
"put": {
"description": "Update the device type group policies for the SSID",
"operationId": "updateNetworkWirelessSsidDeviceTypeGroupPolicies",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
},
{
"name": "updateNetworkWirelessSsidDeviceTypeGroupPolicies",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "If true, the SSID device type group policies are enabled."
},
"deviceTypePolicies": {
"type": "array",
"items": {
"type": "object",
"properties": {
"deviceType": {
"type": "string",
"enum": [
"Android",
"B&N Nook",
"BlackBerry",
"Chrome OS",
"Mac OS X",
"Other OS",
"Windows",
"Windows Phone",
"iPad",
"iPhone",
"iPod"
],
"description": "The device type. Can be one of 'Android', 'BlackBerry', 'Chrome OS', 'iPad', 'iPhone', 'iPod', 'Mac OS X', 'Windows', 'Windows Phone', 'B&N Nook' or 'Other OS'"
},
"devicePolicy": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Group policy"
],
"description": "The device policy. Can be one of 'Allowed', 'Blocked' or 'Group policy'"
},
"groupPolicyId": {
"type": "integer",
"description": "ID of the group policy object."
}
},
"required": [
"deviceType",
"devicePolicy"
]
},
"description": "List of device type policies."
}
},
"example": {
"enabled": true,
"deviceTypePolicies": [
{
"deviceType": "Android",
"devicePolicy": "Allowed"
},
{
"deviceType": "iPhone",
"devicePolicy": "Group policy",
"groupPolicyId": 101
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"enabled": true,
"deviceTypePolicies": [
{
"deviceType": "Android",
"devicePolicy": "Allowed"
},
{
"deviceType": "iPhone",
"devicePolicy": "Group policy",
"groupPolicyId": 101
}
]
}
}
}
},
"summary": "Update the device type group policies for the SSID",
"tags": [
"wireless",
"configure",
"ssids",
"deviceTypeGroupPolicies"
]
}
},
"/networks/{networkId}/wireless/ssids/{number}/eapOverride": {
"get": {
"description": "Return the EAP overridden parameters for an SSID",
"operationId": "getNetworkWirelessSsidEapOverride",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"timeout": {
"type": "integer",
"description": "General EAP timeout in seconds."
},
"maxRetries": {
"type": "integer",
"description": "Maximum number of general EAP retries."
},
"identity": {
"type": "object",
"properties": {
"retries": {
"type": "integer",
"description": "Maximum number of EAP retries."
},
"timeout": {
"type": "integer",
"description": "EAP timeout in seconds."
}
},
"description": "EAP settings for identity requests."
},
"eapolKey": {
"type": "object",
"properties": {
"retries": {
"type": "integer",
"description": "Maximum number of EAPOL key retries."
},
"timeoutInMs": {
"type": "integer",
"description": "EAPOL Key timeout in milliseconds."
}
},
"description": "EAPOL Key settings."
}
}
},
"examples": {
"application/json": {
"timeout": 50,
"maxRetries": 5,
"identity": {
"retries": 5,
"timeout": 50
},
"eapolKey": {
"retries": 50,
"timeoutInMs": 5000
}
}
}
}
},
"summary": "Return the EAP overridden parameters for an SSID",
"tags": [
"wireless",
"configure",
"ssids",
"eapOverride"
]
},
"put": {
"description": "Update the EAP overridden parameters for an SSID.",
"operationId": "updateNetworkWirelessSsidEapOverride",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
},
{
"name": "updateNetworkWirelessSsidEapOverride",
"in": "body",
"schema": {
"type": "object",
"properties": {
"timeout": {
"type": "integer",
"description": "General EAP timeout in seconds."
},
"identity": {
"type": "object",
"properties": {
"retries": {
"type": "integer",
"description": "Maximum number of EAP retries."
},
"timeout": {
"type": "integer",
"description": "EAP timeout in seconds."
}
},
"description": "EAP settings for identity requests."
},
"maxRetries": {
"type": "integer",
"description": "Maximum number of general EAP retries."
},
"eapolKey": {
"type": "object",
"properties": {
"retries": {
"type": "integer",
"description": "Maximum number of EAPOL key retries."
},
"timeoutInMs": {
"type": "integer",
"description": "EAPOL Key timeout in milliseconds."
}
},
"description": "EAPOL Key settings."
}
},
"example": {
"timeout": 5,
"identity": {
"retries": 5,
"timeout": 5
},
"maxRetries": 5,
"eapolKey": {
"retries": 5,
"timeoutInMs": 5000
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"timeout": {
"type": "integer",
"description": "General EAP timeout in seconds."
},
"maxRetries": {
"type": "integer",
"description": "Maximum number of general EAP retries."
},
"identity": {
"type": "object",
"properties": {
"retries": {
"type": "integer",
"description": "Maximum number of EAP retries."
},
"timeout": {
"type": "integer",
"description": "EAP timeout in seconds."
}
},
"description": "EAP settings for identity requests."
},
"eapolKey": {
"type": "object",
"properties": {
"retries": {
"type": "integer",
"description": "Maximum number of EAPOL key retries."
},
"timeoutInMs": {
"type": "integer",
"description": "EAPOL Key timeout in milliseconds."
}
},
"description": "EAPOL Key settings."
}
}
},
"examples": {
"application/json": {
"timeout": 50,
"maxRetries": 5,
"identity": {
"retries": 5,
"timeout": 50
},
"eapolKey": {
"retries": 50,
"timeoutInMs": 5000
}
}
}
}
},
"summary": "Update the EAP overridden parameters for an SSID.",
"tags": [
"wireless",
"configure",
"ssids",
"eapOverride"
]
}
},
"/networks/{networkId}/wireless/ssids/{number}/firewall/l3FirewallRules": {
"get": {
"description": "Return the L3 firewall rules for an SSID on an MR network",
"operationId": "getNetworkWirelessSsidFirewallL3FirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"enum": [
"allow",
"deny"
],
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"enum": [
"any",
"icmp",
"icmp6",
"tcp",
"udp"
],
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"destPort": {
"type": "string",
"description": "Comma-separated list of destination port(s) (integer in the range 1-65535), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Comma-separated list of destination IP address(es) (in IP or CIDR notation), fully-qualified domain names (FQDN) or 'any'"
}
},
"required": [
"policy",
"protocol",
"destCidr"
]
},
"description": "An ordered array of the firewall rules for this SSID (not including the local LAN access rule or the default rule)."
}
}
},
"examples": {
"application/json": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24"
}
]
}
}
}
},
"summary": "Return the L3 firewall rules for an SSID on an MR network",
"tags": [
"wireless",
"configure",
"ssids",
"firewall",
"l3FirewallRules"
]
},
"put": {
"description": "Update the L3 firewall rules of an SSID on an MR network",
"operationId": "updateNetworkWirelessSsidFirewallL3FirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
},
{
"name": "updateNetworkWirelessSsidFirewallL3FirewallRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"enum": [
"allow",
"deny"
],
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"enum": [
"any",
"icmp",
"icmp6",
"tcp",
"udp"
],
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"destPort": {
"type": "string",
"description": "Comma-separated list of destination port(s) (integer in the range 1-65535), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Comma-separated list of destination IP address(es) (in IP or CIDR notation), fully-qualified domain names (FQDN) or 'any'"
}
},
"required": [
"policy",
"protocol",
"destCidr"
]
},
"description": "An ordered array of the firewall rules for this SSID (not including the local LAN access rule or the default rule)."
},
"allowLanAccess": {
"type": "boolean",
"description": "Allow wireless client access to local LAN (boolean value - true allows access and false denies access) (optional)"
}
},
"example": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24"
}
],
"allowLanAccess": true
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"enum": [
"allow",
"deny"
],
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"enum": [
"any",
"icmp",
"icmp6",
"tcp",
"udp"
],
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"destPort": {
"type": "string",
"description": "Comma-separated list of destination port(s) (integer in the range 1-65535), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Comma-separated list of destination IP address(es) (in IP or CIDR notation), fully-qualified domain names (FQDN) or 'any'"
}
},
"required": [
"policy",
"protocol",
"destCidr"
]
},
"description": "An ordered array of the firewall rules for this SSID (not including the local LAN access rule or the default rule)."
}
}
},
"examples": {
"application/json": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"destPort": "443",
"destCidr": "192.168.1.0/24"
}
]
}
}
}
},
"summary": "Update the L3 firewall rules of an SSID on an MR network",
"tags": [
"wireless",
"configure",
"ssids",
"firewall",
"l3FirewallRules"
]
}
},
"/networks/{networkId}/wireless/ssids/{number}/firewall/l7FirewallRules": {
"get": {
"description": "Return the L7 firewall rules for an SSID on an MR network",
"operationId": "getNetworkWirelessSsidFirewallL7FirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"policy": {
"type": "string",
"enum": [
"deny"
],
"description": "'Deny' traffic specified by this rule"
},
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"host",
"ipRange",
"port"
],
"description": "Type of the L7 firewall rule. One of: 'application', 'applicationCategory', 'host', 'port', 'ipRange'"
},
"value": {
"type": "string",
"description": "The value of what needs to get blocked. Format of the value varies depending on type of the firewall rule selected."
}
}
},
"description": "An ordered array of the firewall rules for this SSID (not including the local LAN access rule or the default rule)."
}
}
},
"examples": {
"application/json": {
"rules": [
{
"policy": "deny",
"type": "host",
"value": "google.com"
}
]
}
}
}
},
"summary": "Return the L7 firewall rules for an SSID on an MR network",
"tags": [
"wireless",
"configure",
"ssids",
"firewall",
"l7FirewallRules"
]
},
"put": {
"description": "Update the L7 firewall rules of an SSID on an MR network",
"operationId": "updateNetworkWirelessSsidFirewallL7FirewallRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
},
{
"name": "updateNetworkWirelessSsidFirewallL7FirewallRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"policy": {
"type": "string",
"enum": [
"deny"
],
"description": "'Deny' traffic specified by this rule"
},
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"host",
"ipRange",
"port"
],
"description": "Type of the L7 firewall rule. One of: 'application', 'applicationCategory', 'host', 'port', 'ipRange'"
},
"value": {
"type": "string",
"description": "The value of what needs to get blocked. Format of the value varies depending on type of the firewall rule selected."
}
}
},
"description": "An array of L7 firewall rules for this SSID. Rules will get applied in the same order user has specified in request. Empty array will clear the L7 firewall rule configuration."
}
},
"example": {
"rules": [
{
"policy": "deny",
"type": "host",
"value": "google.com"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"policy": {
"type": "string",
"enum": [
"deny"
],
"description": "'Deny' traffic specified by this rule"
},
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"host",
"ipRange",
"port"
],
"description": "Type of the L7 firewall rule. One of: 'application', 'applicationCategory', 'host', 'port', 'ipRange'"
},
"value": {
"type": "string",
"description": "The value of what needs to get blocked. Format of the value varies depending on type of the firewall rule selected."
}
}
},
"description": "An ordered array of the firewall rules for this SSID (not including the local LAN access rule or the default rule)."
}
}
},
"examples": {
"application/json": {
"rules": [
{
"policy": "deny",
"type": "host",
"value": "google.com"
}
]
}
}
}
},
"summary": "Update the L7 firewall rules of an SSID on an MR network",
"tags": [
"wireless",
"configure",
"ssids",
"firewall",
"l7FirewallRules"
]
}
},
"/networks/{networkId}/wireless/ssids/{number}/hotspot20": {
"put": {
"description": "Update the Hotspot 2.0 settings of an SSID",
"operationId": "updateNetworkWirelessSsidHotspot20",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
},
{
"name": "updateNetworkWirelessSsidHotspot20",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether or not Hotspot 2.0 for this SSID is enabled"
},
"operator": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Operator name"
}
},
"description": "Operator settings for this SSID"
},
"venue": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Venue name"
},
"type": {
"type": "string",
"enum": [
"Airplane",
"Alcohol and Drug Rehabilitation Center",
"Amphitheater",
"Amusement Park",
"Arena",
"Attorney Office",
"Automobile or Truck",
"Automotive Service Station",
"Bank",
"Bar",
"Boarding House",
"Bus",
"Bus Stop",
"City Park",
"Coffee Shop",
"Convention Center",
"Doctor or Dentist office",
"Dormitory",
"Emergency Coordination Center",
"Factory",
"Ferry",
"Fire Station",
"Gas Station",
"Grocery Market",
"Group Home",
"Hospital",
"Hotel or Motel",
"Kiosk",
"Library",
"Long-Term Care Facility",
"Motor Bike",
"Muni-mesh Network",
"Museum",
"Passenger Terminal",
"Place of Worship",
"Police Station",
"Post Office",
"Prison or Jail",
"Private Residence",
"Professional Office",
"Research and Development Facility",
"Rest Area",
"Restaurant",
"Retail Store",
"School, Primary",
"School, Secondary",
"Ship or Boat",
"Shopping Mall",
"Stadium",
"Theater",
"Traffic Control",
"Train",
"University or College",
"Unspecified",
"Unspecified Assembly",
"Unspecified Business",
"Unspecified Educational",
"Unspecified Factory and Industrial",
"Unspecified Institutional",
"Unspecified Mercantile",
"Unspecified Outdoor",
"Unspecified Residential",
"Unspecified Storage",
"Unspecified Utility and Miscellaneous",
"Unspecified Vehicular",
"Zoo or Aquarium"
],
"description": "Venue type ('Unspecified', 'Unspecified Assembly', 'Arena', 'Stadium', 'Passenger Terminal', 'Amphitheater', 'Amusement Park', 'Place of Worship', 'Convention Center', 'Library', 'Museum', 'Restaurant', 'Theater', 'Bar', 'Coffee Shop', 'Zoo or Aquarium', 'Emergency Coordination Center', 'Unspecified Business', 'Doctor or Dentist office', 'Bank', 'Fire Station', 'Police Station', 'Post Office', 'Professional Office', 'Research and Development Facility', 'Attorney Office', 'Unspecified Educational', 'School, Primary', 'School, Secondary', 'University or College', 'Unspecified Factory and Industrial', 'Factory', 'Unspecified Institutional', 'Hospital', 'Long-Term Care Facility', 'Alcohol and Drug Rehabilitation Center', 'Group Home', 'Prison or Jail', 'Unspecified Mercantile', 'Retail Store', 'Grocery Market', 'Automotive Service Station', 'Shopping Mall', 'Gas Station', 'Unspecified Residential', 'Private Residence', 'Hotel or Motel', 'Dormitory', 'Boarding House', 'Unspecified Storage', 'Unspecified Utility and Miscellaneous', 'Unspecified Vehicular', 'Automobile or Truck', 'Airplane', 'Bus', 'Ferry', 'Ship or Boat', 'Train', 'Motor Bike', 'Unspecified Outdoor', 'Muni-mesh Network', 'City Park', 'Rest Area', 'Traffic Control', 'Bus Stop', 'Kiosk')"
}
},
"description": "Venue settings for this SSID"
},
"networkAccessType": {
"type": "string",
"enum": [
"Chargeable public network",
"Emergency services only network",
"Free public network",
"Personal device network",
"Private network",
"Private network with guest access",
"Test or experimental",
"Wildcard"
],
"description": "The network type of this SSID ('Private network', 'Private network with guest access', 'Chargeable public network', 'Free public network', 'Personal device network', 'Emergency services only network', 'Test or experimental', 'Wildcard')"
},
"domains": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of domain names"
},
"roamConsortOis": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of roaming consortium OIs (hexadecimal number 3-5 octets in length)"
},
"mccMncs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"mcc": {
"type": "string",
"description": "MCC value"
},
"mnc": {
"type": "string",
"description": "MNC value"
}
}
},
"description": "An array of MCC/MNC pairs"
},
"naiRealms": {
"type": "array",
"items": {
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": [
"0",
"1"
],
"description": "The format for the realm ('1' or '0')"
},
"realm": {
"type": "string",
"description": "The name of the realm"
},
"methods": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of method"
},
"authenticationTypes": {
"type": "object",
"description": "The authentication types for the method. These should be formatted as an object with the EAP method category in camelcase as the key and the list of types as the value (nonEapInnerAuthentication: Reserved, PAP, CHAP, MSCHAP, MSCHAPV2; eapInnerAuthentication: EAP-TLS, EAP-SIM, EAP-AKA, EAP-TTLS with MSCHAPv2; credentials: SIM, USIM, NFC Secure Element, Hardware Token, Softoken, Certificate, username/password, none, Reserved, Vendor Specific; tunneledEapMethodCredentials: SIM, USIM, NFC Secure Element, Hardware Token, Softoken, Certificate, username/password, Reserved, Anonymous, Vendor Specific)"
}
}
},
"description": "An array of EAP methods for the realm."
}
}
},
"description": "An array of NAI realms"
}
},
"example": {
"enabled": true,
"operator": {
"name": "Meraki Product Management"
},
"venue": {
"name": "SF Branch",
"type": "Unspecified Assembly"
},
"networkAccessType": "Private network",
"domains": [
"meraki.local",
"domain2.com"
],
"roamConsortOis": [
"ABC123",
"456EFG"
],
"mccMncs": [
{
"mcc": "123",
"mnc": "456"
},
{
"mcc": "563",
"mnc": "232"
}
],
"naiRealms": [
{
"format": "1",
"name": "Realm 1",
"methods": [
{
"id": "1",
"authenticationTypes": {
"nonEapInnerAuthentication": [
"MSCHAP"
],
"eapInnerAuthentication": [
"EAP-TTLS with MSCHAPv2"
],
"credentials": [
],
"tunneledEapMethodCredentials": [
]
}
}
]
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"enabled": true,
"operator": {
"name": "Meraki Product Management"
},
"venue": {
"name": "SF Branch",
"type": "Unspecified Assembly"
},
"networkAccessType": "Private network",
"domains": [
"meraki.local",
"domain2.com"
],
"roamConsortOis": [
"ABC123",
"456EFG"
],
"mccMncs": [
{
"mcc": "123",
"mnc": "456"
},
{
"mcc": "563",
"mnc": "232"
}
],
"naiRealms": [
{
"format": "1",
"name": "Realm 1",
"methods": [
{
"id": "1",
"authenticationTypes": {
"nonEapInnerAuthentication": [
"MSCHAP"
],
"eapInnerAuthentication": [
"EAP-TTLS with MSCHAPv2"
],
"credentials": [
],
"tunneledEapMethodCredentials": [
]
}
}
]
}
]
}
}
}
},
"summary": "Update the Hotspot 2.0 settings of an SSID",
"tags": [
"wireless",
"configure",
"ssids",
"hotspot20"
]
},
"get": {
"description": "Return the Hotspot 2.0 settings for an SSID",
"operationId": "getNetworkWirelessSsidHotspot20",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"enabled": true,
"operator": {
"name": "Meraki Product Management"
},
"venue": {
"name": "SF Branch",
"type": "Unspecified Assembly"
},
"networkAccessType": "Private network",
"domains": [
"meraki.local",
"domain2.com"
],
"roamConsortOis": [
"ABC123",
"456EFG"
],
"mccMncs": [
{
"mcc": "123",
"mnc": "456"
},
{
"mcc": "563",
"mnc": "232"
}
],
"naiRealms": [
{
"format": "1",
"name": "Realm 1",
"methods": [
{
"id": "1",
"authenticationTypes": {
"nonEapInnerAuthentication": [
"MSCHAP"
],
"eapInnerAuthentication": [
"EAP-TTLS with MSCHAPv2"
],
"credentials": [
],
"tunneledEapMethodCredentials": [
]
}
}
]
}
]
}
}
}
},
"summary": "Return the Hotspot 2.0 settings for an SSID",
"tags": [
"wireless",
"configure",
"ssids",
"hotspot20"
]
}
},
"/networks/{networkId}/wireless/ssids/{number}/identityPsks": {
"get": {
"description": "List all Identity PSKs in a wireless network",
"operationId": "getNetworkWirelessSsidIdentityPsks",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the Identity PSK"
},
"id": {
"type": "string",
"description": "The unique identifier of the Identity PSK"
},
"groupPolicyId": {
"type": "string",
"description": "The group policy to be applied to clients"
},
"passphrase": {
"type": "string",
"description": "The passphrase for client authentication"
},
"wifiPersonalNetworkId": {
"type": "string",
"description": "The WiFi Personal Network unique identifier"
},
"email": {
"type": "string",
"description": "The email associated with the System's Manager User"
},
"expiresAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp for when the Identity PSK expires, or 'null' to never expire"
}
}
}
},
"examples": {
"application/json": [
{
"name": "Sample Identity PSK",
"id": "1284392014819",
"groupPolicyId": "101",
"passphrase": "secret",
"wifiPersonalNetworkId": "1284392014819",
"email": "miles@meraki.com",
"expiresAt": "2018-02-11T00:00:00.090210Z"
}
]
}
}
},
"summary": "List all Identity PSKs in a wireless network",
"tags": [
"wireless",
"configure",
"ssids",
"identityPsks"
]
},
"post": {
"description": "Create an Identity PSK",
"operationId": "createNetworkWirelessSsidIdentityPsk",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
},
{
"name": "createNetworkWirelessSsidIdentityPsk",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the Identity PSK"
},
"passphrase": {
"type": "string",
"description": "The passphrase for client authentication. If left blank, one will be auto-generated."
},
"groupPolicyId": {
"type": "string",
"description": "The group policy to be applied to clients"
},
"expiresAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp for when the Identity PSK expires. Will not expire if left blank."
}
},
"example": {
"name": "Sample Identity PSK",
"passphrase": "secret",
"groupPolicyId": "101",
"expiresAt": "2018-02-11T00:00:00.090210Z"
},
"required": [
"name",
"groupPolicyId"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the Identity PSK"
},
"id": {
"type": "string",
"description": "The unique identifier of the Identity PSK"
},
"groupPolicyId": {
"type": "string",
"description": "The group policy to be applied to clients"
},
"passphrase": {
"type": "string",
"description": "The passphrase for client authentication"
},
"wifiPersonalNetworkId": {
"type": "string",
"description": "The WiFi Personal Network unique identifier"
},
"email": {
"type": "string",
"description": "The email associated with the System's Manager User"
},
"expiresAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp for when the Identity PSK expires, or 'null' to never expire"
}
}
},
"examples": {
"application/json": {
"name": "Sample Identity PSK",
"id": "1284392014819",
"groupPolicyId": "101",
"passphrase": "secret",
"wifiPersonalNetworkId": "1284392014819",
"email": "miles@meraki.com",
"expiresAt": "2018-02-11T00:00:00.090210Z"
}
}
}
},
"summary": "Create an Identity PSK",
"tags": [
"wireless",
"configure",
"ssids",
"identityPsks"
]
}
},
"/networks/{networkId}/wireless/ssids/{number}/identityPsks/{identityPskId}": {
"get": {
"description": "Return an Identity PSK",
"operationId": "getNetworkWirelessSsidIdentityPsk",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
},
{
"name": "identityPskId",
"in": "path",
"description": "Identity psk ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the Identity PSK"
},
"id": {
"type": "string",
"description": "The unique identifier of the Identity PSK"
},
"groupPolicyId": {
"type": "string",
"description": "The group policy to be applied to clients"
},
"passphrase": {
"type": "string",
"description": "The passphrase for client authentication"
},
"wifiPersonalNetworkId": {
"type": "string",
"description": "The WiFi Personal Network unique identifier"
},
"email": {
"type": "string",
"description": "The email associated with the System's Manager User"
},
"expiresAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp for when the Identity PSK expires, or 'null' to never expire"
}
}
},
"examples": {
"application/json": {
"name": "Sample Identity PSK",
"id": "1284392014819",
"groupPolicyId": "101",
"passphrase": "secret",
"wifiPersonalNetworkId": "1284392014819",
"email": "miles@meraki.com",
"expiresAt": "2018-02-11T00:00:00.090210Z"
}
}
}
},
"summary": "Return an Identity PSK",
"tags": [
"wireless",
"configure",
"ssids",
"identityPsks"
]
},
"put": {
"description": "Update an Identity PSK",
"operationId": "updateNetworkWirelessSsidIdentityPsk",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
},
{
"name": "identityPskId",
"in": "path",
"description": "Identity psk ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkWirelessSsidIdentityPsk",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the Identity PSK"
},
"passphrase": {
"type": "string",
"description": "The passphrase for client authentication"
},
"groupPolicyId": {
"type": "string",
"description": "The group policy to be applied to clients"
},
"expiresAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp for when the Identity PSK expires, or 'null' to never expire"
}
},
"example": {
"name": "Sample Identity PSK",
"passphrase": "secret",
"groupPolicyId": "101",
"expiresAt": "2018-02-11T00:00:00.090210Z"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the Identity PSK"
},
"id": {
"type": "string",
"description": "The unique identifier of the Identity PSK"
},
"groupPolicyId": {
"type": "string",
"description": "The group policy to be applied to clients"
},
"passphrase": {
"type": "string",
"description": "The passphrase for client authentication"
},
"wifiPersonalNetworkId": {
"type": "string",
"description": "The WiFi Personal Network unique identifier"
},
"email": {
"type": "string",
"description": "The email associated with the System's Manager User"
},
"expiresAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp for when the Identity PSK expires, or 'null' to never expire"
}
}
},
"examples": {
"application/json": {
"name": "Sample Identity PSK",
"id": "1284392014819",
"groupPolicyId": "101",
"passphrase": "secret",
"wifiPersonalNetworkId": "1284392014819",
"email": "miles@meraki.com",
"expiresAt": "2018-02-11T00:00:00.090210Z"
}
}
}
},
"summary": "Update an Identity PSK",
"tags": [
"wireless",
"configure",
"ssids",
"identityPsks"
]
},
"delete": {
"description": "Delete an Identity PSK",
"operationId": "deleteNetworkWirelessSsidIdentityPsk",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
},
{
"name": "identityPskId",
"in": "path",
"description": "Identity psk ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete an Identity PSK",
"tags": [
"wireless",
"configure",
"ssids",
"identityPsks"
]
}
},
"/networks/{networkId}/wireless/ssids/{number}/schedules": {
"get": {
"description": "List the outage schedule for the SSID",
"operationId": "getNetworkWirelessSsidSchedules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "If true, the SSID outage schedule is enabled."
},
"ranges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startDay": {
"type": "string",
"description": "Day of when the outage starts. Can be either full day name, or three letter abbreviation."
},
"startTime": {
"type": "string",
"description": "24 hour time when the outage starts."
},
"endDay": {
"type": "string",
"description": "Day of when the outage ends. Can be either full day name, or three letter abbreviation"
},
"endTime": {
"type": "string",
"description": "24 hour time when the outage ends."
}
},
"required": [
"startDay",
"startTime",
"endDay",
"endTime"
]
},
"description": "List of outage ranges. Has a start date and time, and end date and time. If this parameter is passed in along with rangesInSeconds parameter, this will take precedence."
},
"rangesInSeconds": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "integer",
"description": "Seconds since Sunday at midnight when the outage range starts."
},
"end": {
"type": "integer",
"description": "Seconds since Sunday at midnight when that outage range ends."
}
},
"required": [
"start",
"end"
]
},
"description": "List of outage ranges in seconds since Sunday at Midnight. Has a start and end. If this parameter is passed in along with the ranges parameter, ranges will take precedence."
}
}
},
"examples": {
"application/json": {
"enabled": true,
"ranges": [
{
"startDay": "Tuesday",
"startTime": "01:00",
"endDay": "Tuesday",
"endTime": "05:00"
}
],
"rangesInSeconds": [
{
"start": 604800,
"end": 0
}
]
}
}
}
},
"summary": "List the outage schedule for the SSID",
"tags": [
"wireless",
"configure",
"ssids",
"schedules"
]
},
"put": {
"description": "Update the outage schedule for the SSID",
"operationId": "updateNetworkWirelessSsidSchedules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
},
{
"name": "updateNetworkWirelessSsidSchedules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "If true, the SSID outage schedule is enabled."
},
"ranges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startDay": {
"type": "string",
"description": "Day of when the outage starts. Can be either full day name, or three letter abbreviation."
},
"startTime": {
"type": "string",
"description": "24 hour time when the outage starts."
},
"endDay": {
"type": "string",
"description": "Day of when the outage ends. Can be either full day name, or three letter abbreviation"
},
"endTime": {
"type": "string",
"description": "24 hour time when the outage ends."
}
},
"required": [
"startDay",
"startTime",
"endDay",
"endTime"
]
},
"description": "List of outage ranges. Has a start date and time, and end date and time. If this parameter is passed in along with rangesInSeconds parameter, this will take precedence."
},
"rangesInSeconds": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "integer",
"description": "Seconds since Sunday at midnight when the outage range starts."
},
"end": {
"type": "integer",
"description": "Seconds since Sunday at midnight when that outage range ends."
}
},
"required": [
"start",
"end"
]
},
"description": "List of outage ranges in seconds since Sunday at Midnight. Has a start and end. If this parameter is passed in along with the ranges parameter, ranges will take precedence."
}
},
"example": {
"enabled": true,
"ranges": [
{
"startDay": "Tuesday",
"startTime": "01:00",
"endDay": "Tuesday",
"endTime": "05:00"
}
],
"rangesInSeconds": [
{
"start": 604800,
"end": 0
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "If true, the SSID outage schedule is enabled."
},
"ranges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startDay": {
"type": "string",
"description": "Day of when the outage starts. Can be either full day name, or three letter abbreviation."
},
"startTime": {
"type": "string",
"description": "24 hour time when the outage starts."
},
"endDay": {
"type": "string",
"description": "Day of when the outage ends. Can be either full day name, or three letter abbreviation"
},
"endTime": {
"type": "string",
"description": "24 hour time when the outage ends."
}
},
"required": [
"startDay",
"startTime",
"endDay",
"endTime"
]
},
"description": "List of outage ranges. Has a start date and time, and end date and time. If this parameter is passed in along with rangesInSeconds parameter, this will take precedence."
},
"rangesInSeconds": {
"type": "array",
"items": {
"type": "object",
"properties": {
"start": {
"type": "integer",
"description": "Seconds since Sunday at midnight when the outage range starts."
},
"end": {
"type": "integer",
"description": "Seconds since Sunday at midnight when that outage range ends."
}
},
"required": [
"start",
"end"
]
},
"description": "List of outage ranges in seconds since Sunday at Midnight. Has a start and end. If this parameter is passed in along with the ranges parameter, ranges will take precedence."
}
}
},
"examples": {
"application/json": {
"enabled": true,
"ranges": [
{
"startDay": "Tuesday",
"startTime": "01:00",
"endDay": "Tuesday",
"endTime": "05:00"
}
],
"rangesInSeconds": [
{
"start": 604800,
"end": 0
}
]
}
}
}
},
"summary": "Update the outage schedule for the SSID",
"tags": [
"wireless",
"configure",
"ssids",
"schedules"
]
}
},
"/networks/{networkId}/wireless/ssids/{number}/splash/settings": {
"get": {
"description": "Display the splash page settings for the given SSID",
"operationId": "getNetworkWirelessSsidSplashSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"ssidNumber": {
"type": "integer",
"description": "SSID number"
},
"splashPage": {
"type": "string",
"description": "The type of splash page for this SSID"
},
"useSplashUrl": {
"type": "boolean",
"description": "Boolean indicating whether the users will be redirected to the custom splash url"
},
"splashUrl": {
"type": "string",
"description": "The custom splash URL of the click-through splash page."
},
"splashTimeout": {
"type": "integer",
"description": "Splash timeout in minutes."
},
"redirectUrl": {
"type": "string",
"description": "The custom redirect URL where the users will go after the splash page."
},
"useRedirectUrl": {
"type": "boolean",
"description": "The Boolean indicating whether the the user will be redirected to the custom redirect URL after the splash page."
},
"welcomeMessage": {
"type": "string",
"description": "The welcome message for the users on the splash page."
},
"themeId": {
"type": "string",
"description": "The id of the selected splash theme."
},
"splashLogo": {
"type": "object",
"properties": {
"md5": {
"type": "string",
"description": "The MD5 value of the logo file."
},
"extension": {
"type": "string",
"description": "The extension of the logo file."
}
},
"description": "The logo used in the splash page."
},
"splashImage": {
"type": "object",
"properties": {
"md5": {
"type": "string",
"description": "The MD5 value of the image file."
},
"extension": {
"type": "string",
"description": "The extension of the image file."
}
},
"description": "The image used in the splash page."
},
"splashPrepaidFront": {
"type": "object",
"properties": {
"md5": {
"type": "string",
"description": "The MD5 value of the prepaid front image file."
},
"extension": {
"type": "string",
"description": "The extension of the prepaid front image file."
}
},
"description": "The prepaid front image used in the splash page."
},
"guestSponsorship": {
"type": "object",
"properties": {
"durationInMinutes": {
"type": "integer",
"description": "Duration in minutes of sponsored guest authorization."
},
"guestCanRequestTimeframe": {
"type": "boolean",
"description": "Whether or not guests can specify how much time they are requesting."
}
},
"description": "Details associated with guest sponsored splash"
},
"blockAllTrafficBeforeSignOn": {
"type": "boolean",
"description": "How restricted allowing traffic should be. If true, all traffic types are blocked until the splash page is acknowledged. If false, all non-HTTP traffic is allowed before the splash page is acknowledged."
},
"controllerDisconnectionBehavior": {
"type": "string",
"description": "How login attempts should be handled when the controller is unreachable."
},
"allowSimultaneousLogins": {
"type": "boolean",
"description": "Whether or not to allow simultaneous logins from different devices."
},
"billing": {
"type": "object",
"properties": {
"freeAccess": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether or not free access is enabled."
},
"durationInMinutes": {
"type": "integer",
"description": "How long a device can use a network for free."
}
},
"description": "Details associated with a free access plan with limits"
},
"prepaidAccessFastLoginEnabled": {
"type": "boolean",
"description": "Whether or not billing uses the fast login prepaid access option."
},
"replyToEmailAddress": {
"type": "string",
"description": "The email address that reeceives replies from clients"
}
},
"description": "Details associated with billing splash"
},
"sentryEnrollment": {
"type": "object",
"properties": {
"systemsManagerNetwork": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The network ID of the Systems Manager network."
}
},
"description": "Systems Manager network targeted for sentry enrollment."
},
"strength": {
"type": "string",
"enum": [
"click-through",
"focused",
"strict"
],
"description": "The strength of the enforcement of selected system types."
},
"enforcedSystems": {
"type": "array",
"items": {
"type": "string"
},
"description": "The system types that the Sentry enforces."
}
},
"description": "Systems Manager sentry enrollment splash settings."
},
"selfRegistration": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether or not to allow users to create their own account on the network."
},
"authorizationType": {
"type": "string",
"enum": [
"admin",
"auto",
"self_email"
],
"description": "How created user accounts should be authorized."
}
},
"description": "Self-registration for splash with Meraki authentication."
}
}
},
"examples": {
"application/json": {
"ssidNumber": 0,
"splashPage": "Click-through splash page",
"useSplashUrl": true,
"splashUrl": "https://www.custom_splash_url.com",
"splashTimeout": 1440,
"redirectUrl": "https://example.com",
"useRedirectUrl": true,
"welcomeMessage": "Welcome!",
"themeId": "c3ddcb4f16785ee747ab5ffc10867d6c8ea704be",
"splashLogo": {
"md5": "abcd1234",
"extension": "jpg"
},
"splashImage": {
"md5": "542cccac8d7dedee0f185311d154d194",
"extension": "jpg"
},
"splashPrepaidFront": {
"md5": "542cccac8d7dedee0f185311d154d194",
"extension": "jpg"
},
"guestSponsorship": {
"durationInMinutes": 30,
"guestCanRequestTimeframe": false
},
"blockAllTrafficBeforeSignOn": false,
"controllerDisconnectionBehavior": "default",
"allowSimultaneousLogins": false,
"billing": {
"freeAccess": {
"enabled": true,
"durationInMinutes": 120
},
"prepaidAccessFastLoginEnabled": true,
"replyToEmailAddress": "user@email.com"
},
"sentryEnrollment": {
"systemsManagerNetwork": {
"id": "N_1234"
},
"strength": "focused",
"enforcedSystems": [
"iOS"
]
},
"selfRegistration": {
"enabled": true,
"authorizationType": "admin"
}
}
}
}
},
"summary": "Display the splash page settings for the given SSID",
"tags": [
"wireless",
"configure",
"ssids",
"splash",
"settings"
]
},
"put": {
"description": "Modify the splash page settings for the given SSID",
"operationId": "updateNetworkWirelessSsidSplashSettings",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
},
{
"name": "updateNetworkWirelessSsidSplashSettings",
"in": "body",
"schema": {
"type": "object",
"properties": {
"splashUrl": {
"type": "string",
"description": "[optional] The custom splash URL of the click-through splash page. Note that the URL can be configured without necessarily being used. In order to enable the custom URL, see 'useSplashUrl'"
},
"useSplashUrl": {
"type": "boolean",
"description": "[optional] Boolean indicating whether the users will be redirected to the custom splash url. A custom splash URL must be set if this is true. Note that depending on your SSID's access control settings, it may not be possible to use the custom splash URL."
},
"splashTimeout": {
"type": "integer",
"description": "Splash timeout in minutes. This will determine how often users will see the splash page."
},
"redirectUrl": {
"type": "string",
"description": "The custom redirect URL where the users will go after the splash page."
},
"useRedirectUrl": {
"type": "boolean",
"description": "The Boolean indicating whether the the user will be redirected to the custom redirect URL after the splash page. A custom redirect URL must be set if this is true."
},
"welcomeMessage": {
"type": "string",
"description": "The welcome message for the users on the splash page."
},
"themeId": {
"type": "string",
"description": "The id of the selected splash theme."
},
"splashLogo": {
"type": "object",
"properties": {
"md5": {
"type": "string",
"description": "The MD5 value of the logo file. Setting this to null will remove the logo from the splash page."
},
"extension": {
"type": "string",
"description": "The extension of the logo file."
},
"image": {
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": [
"gif",
"jpg",
"png"
],
"description": "The format of the encoded contents. Supported formats are 'png', 'gif', and jpg'."
},
"contents": {
"type": "string",
"format": "byte",
"description": "The file contents (a base 64 encoded string) of your new logo."
}
},
"description": "Properties for setting a new image."
}
},
"description": "The logo used in the splash page."
},
"splashImage": {
"type": "object",
"properties": {
"md5": {
"type": "string",
"description": "The MD5 value of the image file. Setting this to null will remove the image from the splash page."
},
"extension": {
"type": "string",
"description": "The extension of the image file."
},
"image": {
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": [
"gif",
"jpg",
"png"
],
"description": "The format of the encoded contents. Supported formats are 'png', 'gif', and jpg'."
},
"contents": {
"type": "string",
"format": "byte",
"description": "The file contents (a base 64 encoded string) of your new image."
}
},
"description": "Properties for setting a new image."
}
},
"description": "The image used in the splash page."
},
"splashPrepaidFront": {
"type": "object",
"properties": {
"md5": {
"type": "string",
"description": "The MD5 value of the prepaid front image file. Setting this to null will remove the prepaid front from the splash page."
},
"extension": {
"type": "string",
"description": "The extension of the prepaid front image file."
},
"image": {
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": [
"gif",
"jpg",
"png"
],
"description": "The format of the encoded contents. Supported formats are 'png', 'gif', and jpg'."
},
"contents": {
"type": "string",
"format": "byte",
"description": "The file contents (a base 64 encoded string) of your new prepaid front."
}
},
"description": "Properties for setting a new image."
}
},
"description": "The prepaid front image used in the splash page."
},
"blockAllTrafficBeforeSignOn": {
"type": "boolean",
"description": "How restricted allowing traffic should be. If true, all traffic types are blocked until the splash page is acknowledged. If false, all non-HTTP traffic is allowed before the splash page is acknowledged."
},
"controllerDisconnectionBehavior": {
"type": "string",
"enum": [
"default",
"open",
"restricted"
],
"description": "How login attempts should be handled when the controller is unreachable. Can be either 'open', 'restricted', or 'default'."
},
"allowSimultaneousLogins": {
"type": "boolean",
"description": "Whether or not to allow simultaneous logins from different devices."
},
"guestSponsorship": {
"type": "object",
"properties": {
"durationInMinutes": {
"type": "integer",
"description": "Duration in minutes of sponsored guest authorization. Must be between 1 and 60480 (6 weeks)"
},
"guestCanRequestTimeframe": {
"type": "boolean",
"description": "Whether or not guests can specify how much time they are requesting."
}
},
"description": "Details associated with guest sponsored splash."
},
"billing": {
"type": "object",
"properties": {
"freeAccess": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether or not free access is enabled."
},
"durationInMinutes": {
"type": "integer",
"description": "How long a device can use a network for free."
}
},
"description": "Details associated with a free access plan with limits."
},
"prepaidAccessFastLoginEnabled": {
"type": "boolean",
"description": "Whether or not billing uses the fast login prepaid access option."
},
"replyToEmailAddress": {
"type": "string",
"description": "The email address that receives replies from clients."
}
},
"description": "Details associated with billing splash."
},
"sentryEnrollment": {
"type": "object",
"properties": {
"systemsManagerNetwork": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The network ID of the Systems Manager network."
}
},
"required": [
"id"
],
"description": "Systems Manager network targeted for sentry enrollment."
},
"strength": {
"type": "string",
"enum": [
"click-through",
"focused",
"strict"
],
"description": "The strength of the enforcement of selected system types. Must be one of: 'focused', 'click-through', and 'strict'."
},
"enforcedSystems": {
"type": "array",
"items": {
"type": "string"
},
"description": "The system types that the Sentry enforces. Must be included in: 'iOS, 'Android', 'macOS', and 'Windows'."
}
},
"description": "Systems Manager sentry enrollment splash settings."
}
},
"example": {
"splashUrl": "https://www.custom_splash_url.com",
"useSplashUrl": true,
"splashTimeout": 1440,
"redirectUrl": "https://example.com",
"useRedirectUrl": true,
"welcomeMessage": "Welcome!",
"themeId": "c3ddcb4f16785ee747ab5ffc10867d6c8ea704be",
"splashLogo": {
"md5": "abcd1234",
"extension": "jpg",
"image": {
"format": "jpg",
"contents": "Q2lzY28gTWVyYWtp"
}
},
"splashImage": {
"md5": "542cccac8d7dedee0f185311d154d194",
"extension": "jpg",
"image": {
"format": "jpg",
"contents": "Q2lzY28gTWVyYWtp"
}
},
"splashPrepaidFront": {
"md5": "542cccac8d7dedee0f185311d154d194",
"extension": "jpg",
"image": {
"format": "jpg",
"contents": "Q2lzY28gTWVyYWtp"
}
},
"blockAllTrafficBeforeSignOn": false,
"controllerDisconnectionBehavior": "default",
"allowSimultaneousLogins": false,
"guestSponsorship": {
"durationInMinutes": 30,
"guestCanRequestTimeframe": false
},
"billing": {
"freeAccess": {
"enabled": true,
"durationInMinutes": 120
},
"prepaidAccessFastLoginEnabled": true,
"replyToEmailAddress": "user@email.com"
},
"sentryEnrollment": {
"systemsManagerNetwork": {
"id": "N_1234"
},
"strength": "focused",
"enforcedSystems": [
"iOS"
]
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"ssidNumber": {
"type": "integer",
"description": "SSID number"
},
"splashPage": {
"type": "string",
"description": "The type of splash page for this SSID"
},
"useSplashUrl": {
"type": "boolean",
"description": "Boolean indicating whether the users will be redirected to the custom splash url"
},
"splashUrl": {
"type": "string",
"description": "The custom splash URL of the click-through splash page."
},
"splashTimeout": {
"type": "integer",
"description": "Splash timeout in minutes."
},
"redirectUrl": {
"type": "string",
"description": "The custom redirect URL where the users will go after the splash page."
},
"useRedirectUrl": {
"type": "boolean",
"description": "The Boolean indicating whether the the user will be redirected to the custom redirect URL after the splash page."
},
"welcomeMessage": {
"type": "string",
"description": "The welcome message for the users on the splash page."
},
"themeId": {
"type": "string",
"description": "The id of the selected splash theme."
},
"splashLogo": {
"type": "object",
"properties": {
"md5": {
"type": "string",
"description": "The MD5 value of the logo file."
},
"extension": {
"type": "string",
"description": "The extension of the logo file."
}
},
"description": "The logo used in the splash page."
},
"splashImage": {
"type": "object",
"properties": {
"md5": {
"type": "string",
"description": "The MD5 value of the image file."
},
"extension": {
"type": "string",
"description": "The extension of the image file."
}
},
"description": "The image used in the splash page."
},
"splashPrepaidFront": {
"type": "object",
"properties": {
"md5": {
"type": "string",
"description": "The MD5 value of the prepaid front image file."
},
"extension": {
"type": "string",
"description": "The extension of the prepaid front image file."
}
},
"description": "The prepaid front image used in the splash page."
},
"guestSponsorship": {
"type": "object",
"properties": {
"durationInMinutes": {
"type": "integer",
"description": "Duration in minutes of sponsored guest authorization."
},
"guestCanRequestTimeframe": {
"type": "boolean",
"description": "Whether or not guests can specify how much time they are requesting."
}
},
"description": "Details associated with guest sponsored splash"
},
"blockAllTrafficBeforeSignOn": {
"type": "boolean",
"description": "How restricted allowing traffic should be. If true, all traffic types are blocked until the splash page is acknowledged. If false, all non-HTTP traffic is allowed before the splash page is acknowledged."
},
"controllerDisconnectionBehavior": {
"type": "string",
"description": "How login attempts should be handled when the controller is unreachable."
},
"allowSimultaneousLogins": {
"type": "boolean",
"description": "Whether or not to allow simultaneous logins from different devices."
},
"billing": {
"type": "object",
"properties": {
"freeAccess": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether or not free access is enabled."
},
"durationInMinutes": {
"type": "integer",
"description": "How long a device can use a network for free."
}
},
"description": "Details associated with a free access plan with limits"
},
"prepaidAccessFastLoginEnabled": {
"type": "boolean",
"description": "Whether or not billing uses the fast login prepaid access option."
},
"replyToEmailAddress": {
"type": "string",
"description": "The email address that reeceives replies from clients"
}
},
"description": "Details associated with billing splash"
},
"sentryEnrollment": {
"type": "object",
"properties": {
"systemsManagerNetwork": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The network ID of the Systems Manager network."
}
},
"description": "Systems Manager network targeted for sentry enrollment."
},
"strength": {
"type": "string",
"enum": [
"click-through",
"focused",
"strict"
],
"description": "The strength of the enforcement of selected system types."
},
"enforcedSystems": {
"type": "array",
"items": {
"type": "string"
},
"description": "The system types that the Sentry enforces."
}
},
"description": "Systems Manager sentry enrollment splash settings."
},
"selfRegistration": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether or not to allow users to create their own account on the network."
},
"authorizationType": {
"type": "string",
"enum": [
"admin",
"auto",
"self_email"
],
"description": "How created user accounts should be authorized."
}
},
"description": "Self-registration for splash with Meraki authentication."
}
}
},
"examples": {
"application/json": {
"ssidNumber": 0,
"splashPage": "Click-through splash page",
"useSplashUrl": true,
"splashUrl": "https://www.custom_splash_url.com",
"splashTimeout": 1440,
"redirectUrl": "https://example.com",
"useRedirectUrl": true,
"welcomeMessage": "Welcome!",
"themeId": "c3ddcb4f16785ee747ab5ffc10867d6c8ea704be",
"splashLogo": {
"md5": "abcd1234",
"extension": "jpg"
},
"splashImage": {
"md5": "542cccac8d7dedee0f185311d154d194",
"extension": "jpg"
},
"splashPrepaidFront": {
"md5": "542cccac8d7dedee0f185311d154d194",
"extension": "jpg"
},
"guestSponsorship": {
"durationInMinutes": 30,
"guestCanRequestTimeframe": false
},
"blockAllTrafficBeforeSignOn": false,
"controllerDisconnectionBehavior": "default",
"allowSimultaneousLogins": false,
"billing": {
"freeAccess": {
"enabled": true,
"durationInMinutes": 120
},
"prepaidAccessFastLoginEnabled": true,
"replyToEmailAddress": "user@email.com"
},
"sentryEnrollment": {
"systemsManagerNetwork": {
"id": "N_1234"
},
"strength": "focused",
"enforcedSystems": [
"iOS"
]
},
"selfRegistration": {
"enabled": true,
"authorizationType": "admin"
}
}
}
}
},
"summary": "Modify the splash page settings for the given SSID",
"tags": [
"wireless",
"configure",
"ssids",
"splash",
"settings"
]
}
},
"/networks/{networkId}/wireless/ssids/{number}/trafficShaping/rules": {
"put": {
"description": "Update the traffic shaping rules for an SSID on an MR network.",
"operationId": "updateNetworkWirelessSsidTrafficShapingRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
},
{
"name": "updateNetworkWirelessSsidTrafficShapingRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"trafficShapingEnabled": {
"type": "boolean",
"description": "Whether traffic shaping rules are applied to clients on your SSID."
},
"defaultRulesEnabled": {
"type": "boolean",
"description": "Whether default traffic shaping rules are enabled (true) or disabled (false). There are 4 default rules, which can be seen on your network's traffic shaping page. Note that default rules count against the rule limit of 8."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"definitions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"host",
"ipRange",
"localNet",
"port"
],
"description": "The type of definition. Can be one of 'application', 'applicationCategory', 'host', 'port', 'ipRange' or 'localNet'."
},
"value": {
"type": "string",
"description": " If \"type\" is 'host', 'port', 'ipRange' or 'localNet', then \"value\" must be a string, matching either\n a hostname (e.g. \"somesite.com\"), a port (e.g. 8080), or an IP range (\"192.1.0.0\",\n \"192.1.0.0/16\", or \"10.1.0.0/16:80\"). 'localNet' also supports CIDR notation, excluding\n custom ports.\n If \"type\" is 'application' or 'applicationCategory', then \"value\" must be an object\n with the structure { \"id\": \"meraki:layer7/...\" }, where \"id\" is the application category or\n application ID (for a list of IDs for your network, use the trafficShaping/applicationCategories\n endpoint).\n"
}
},
"required": [
"type",
"value"
]
},
"description": " A list of objects describing the definitions of your traffic shaping rule. At least one definition is required.\n"
},
"perClientBandwidthLimits": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"description": "How bandwidth limits are applied by your rule. Can be one of 'network default', 'ignore' or 'custom'."
},
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps)."
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps)."
}
},
"description": "The bandwidth limits object, specifying the upload ('limitUp') and download ('limitDown') speed in Kbps. These are only enforced if 'settings' is set to 'custom'."
}
},
"description": " An object describing the bandwidth settings for your rule.\n"
},
"dscpTagValue": {
"type": "integer",
"description": " The DSCP tag applied by your rule. null means 'Do not change DSCP tag'.\n For a list of possible tag values, use the trafficShaping/dscpTaggingOptions endpoint.\n"
},
"pcpTagValue": {
"type": "integer",
"description": " The PCP tag applied by your rule. Can be 0 (lowest priority) through 7 (highest priority).\n null means 'Do not set PCP tag'.\n"
}
},
"required": [
"definitions"
]
},
"description": " An array of traffic shaping rules. Rules are applied in the order that\n they are specified in. An empty list (or null) means no rules. Note that\n you are allowed a maximum of 8 rules.\n"
}
},
"example": {
"trafficShapingEnabled": true,
"defaultRulesEnabled": true,
"rules": [
{
"definitions": [
{
"type": "host",
"value": "google.com"
}
],
"perClientBandwidthLimits": {
"settings": "custom",
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
}
},
"dscpTagValue": 0,
"pcpTagValue": 0
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"trafficShapingEnabled": {
"type": "boolean",
"description": "Whether traffic shaping rules are applied to clients on your SSID."
},
"defaultRulesEnabled": {
"type": "boolean",
"description": "Whether default traffic shaping rules are enabled (true) or disabled (false). There are 4 default rules, which can be seen on your network's traffic shaping page. Note that default rules count against the rule limit of 8."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"definitions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"host",
"ipRange",
"localNet",
"port"
],
"description": "The type of definition. Can be one of 'application', 'applicationCategory', 'host', 'port', 'ipRange' or 'localNet'."
},
"value": {
"type": "string",
"description": " If \"type\" is 'host', 'port', 'ipRange' or 'localNet', then \"value\" must be a string, matching either\n a hostname (e.g. \"somesite.com\"), a port (e.g. 8080), or an IP range (\"192.1.0.0\",\n \"192.1.0.0/16\", or \"10.1.0.0/16:80\"). 'localNet' also supports CIDR notation, excluding\n custom ports.\n If \"type\" is 'application' or 'applicationCategory', then \"value\" must be an object\n with the structure { \"id\": \"meraki:layer7/...\" }, where \"id\" is the application category or\n application ID (for a list of IDs for your network, use the trafficShaping/applicationCategories\n endpoint).\n"
}
},
"required": [
"type",
"value"
]
},
"description": " A list of objects describing the definitions of your traffic shaping rule. At least one definition is required.\n"
},
"perClientBandwidthLimits": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"description": "How bandwidth limits are applied by your rule. Can be one of 'network default', 'ignore' or 'custom'."
},
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps)."
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps)."
}
},
"description": "The bandwidth limits object, specifying the upload ('limitUp') and download ('limitDown') speed in Kbps. These are only enforced if 'settings' is set to 'custom'."
}
},
"description": " An object describing the bandwidth settings for your rule.\n"
},
"dscpTagValue": {
"type": "integer",
"description": " The DSCP tag applied by your rule. null means 'Do not change DSCP tag'.\n For a list of possible tag values, use the trafficShaping/dscpTaggingOptions endpoint.\n"
},
"pcpTagValue": {
"type": "integer",
"description": " The PCP tag applied by your rule. Can be 0 (lowest priority) through 7 (highest priority).\n null means 'Do not set PCP tag'.\n"
}
},
"required": [
"definitions"
]
},
"description": " An array of traffic shaping rules. Rules are applied in the order that\n they are specified in. An empty list (or null) means no rules. Note that\n you are allowed a maximum of 8 rules.\n"
}
}
},
"examples": {
"application/json": {
"trafficShapingEnabled": true,
"defaultRulesEnabled": true,
"rules": [
{
"definitions": [
{
"type": "host",
"value": "google.com"
}
],
"perClientBandwidthLimits": {
"settings": "custom",
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
}
},
"dscpTagValue": 0,
"pcpTagValue": 0
}
]
}
}
}
},
"summary": "Update the traffic shaping rules for an SSID on an MR network.",
"tags": [
"wireless",
"configure",
"ssids",
"trafficShaping",
"rules"
]
},
"get": {
"description": "Display the traffic shaping settings for a SSID on an MR network",
"operationId": "getNetworkWirelessSsidTrafficShapingRules",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"trafficShapingEnabled": {
"type": "boolean",
"description": "Whether traffic shaping rules are applied to clients on your SSID."
},
"defaultRulesEnabled": {
"type": "boolean",
"description": "Whether default traffic shaping rules are enabled (true) or disabled (false). There are 4 default rules, which can be seen on your network's traffic shaping page. Note that default rules count against the rule limit of 8."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"definitions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"application",
"applicationCategory",
"host",
"ipRange",
"localNet",
"port"
],
"description": "The type of definition. Can be one of 'application', 'applicationCategory', 'host', 'port', 'ipRange' or 'localNet'."
},
"value": {
"type": "string",
"description": " If \"type\" is 'host', 'port', 'ipRange' or 'localNet', then \"value\" must be a string, matching either\n a hostname (e.g. \"somesite.com\"), a port (e.g. 8080), or an IP range (\"192.1.0.0\",\n \"192.1.0.0/16\", or \"10.1.0.0/16:80\"). 'localNet' also supports CIDR notation, excluding\n custom ports.\n If \"type\" is 'application' or 'applicationCategory', then \"value\" must be an object\n with the structure { \"id\": \"meraki:layer7/...\" }, where \"id\" is the application category or\n application ID (for a list of IDs for your network, use the trafficShaping/applicationCategories\n endpoint).\n"
}
},
"required": [
"type",
"value"
]
},
"description": " A list of objects describing the definitions of your traffic shaping rule. At least one definition is required.\n"
},
"perClientBandwidthLimits": {
"type": "object",
"properties": {
"settings": {
"type": "string",
"description": "How bandwidth limits are applied by your rule. Can be one of 'network default', 'ignore' or 'custom'."
},
"bandwidthLimits": {
"type": "object",
"properties": {
"limitUp": {
"type": "integer",
"description": "The maximum upload limit (integer, in Kbps)."
},
"limitDown": {
"type": "integer",
"description": "The maximum download limit (integer, in Kbps)."
}
},
"description": "The bandwidth limits object, specifying the upload ('limitUp') and download ('limitDown') speed in Kbps. These are only enforced if 'settings' is set to 'custom'."
}
},
"description": " An object describing the bandwidth settings for your rule.\n"
},
"dscpTagValue": {
"type": "integer",
"description": " The DSCP tag applied by your rule. null means 'Do not change DSCP tag'.\n For a list of possible tag values, use the trafficShaping/dscpTaggingOptions endpoint.\n"
},
"pcpTagValue": {
"type": "integer",
"description": " The PCP tag applied by your rule. Can be 0 (lowest priority) through 7 (highest priority).\n null means 'Do not set PCP tag'.\n"
}
},
"required": [
"definitions"
]
},
"description": " An array of traffic shaping rules. Rules are applied in the order that\n they are specified in. An empty list (or null) means no rules. Note that\n you are allowed a maximum of 8 rules.\n"
}
}
},
"examples": {
"application/json": {
"trafficShapingEnabled": true,
"defaultRulesEnabled": true,
"rules": [
{
"definitions": [
{
"type": "host",
"value": "google.com"
}
],
"perClientBandwidthLimits": {
"settings": "custom",
"bandwidthLimits": {
"limitUp": 1000000,
"limitDown": 1000000
}
},
"dscpTagValue": 0,
"pcpTagValue": 0
}
]
}
}
}
},
"summary": "Display the traffic shaping settings for a SSID on an MR network",
"tags": [
"wireless",
"configure",
"ssids",
"trafficShaping",
"rules"
]
}
},
"/networks/{networkId}/wireless/ssids/{number}/vpn": {
"get": {
"description": "List the VPN settings for the SSID.",
"operationId": "getNetworkWirelessSsidVpn",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"concentrator": {
"networkId": "N_123",
"vlanId": 44,
"name": "some concentrator name"
},
"failover": {
"requestIp": "1.1.1.1",
"heartbeatInterval": 10,
"idleTimeout": 30
},
"splitTunnel": {
"enabled": true,
"rules": [
{
"protocol": "Any",
"destCidr": "1.1.1.1/32",
"destPort": "any",
"policy": "allow",
"comment": "split tunnel rule 1"
},
{
"destCidr": "foo.com",
"destPort": "any",
"policy": "deny",
"comment": "split tunnel rule 2"
}
]
}
}
}
}
},
"summary": "List the VPN settings for the SSID.",
"tags": [
"wireless",
"configure",
"ssids",
"vpn"
]
},
"put": {
"description": "Update the VPN settings for the SSID",
"operationId": "updateNetworkWirelessSsidVpn",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "number",
"in": "path",
"description": "Number",
"type": "string",
"required": true
},
{
"name": "updateNetworkWirelessSsidVpn",
"in": "body",
"schema": {
"type": "object",
"properties": {
"concentrator": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "The NAT ID of the concentrator that should be set."
},
"vlanId": {
"type": "integer",
"description": "The VLAN that should be tagged for the concentrator."
}
},
"description": "The VPN concentrator settings for this SSID."
},
"splitTunnel": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "If true, VPN split tunnel is enabled."
},
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"enum": [
"Any",
"TCP",
"UDP"
],
"description": "Protocol for this split tunnel rule."
},
"destCidr": {
"type": "string",
"description": "Destination for this split tunnel rule. IP address, fully-qualified domain names (FQDN) or 'any'."
},
"destPort": {
"type": "string",
"description": "Destination port for this split tunnel rule, (integer in the range 1-65535), or 'any'."
},
"policy": {
"type": "string",
"description": "Traffic policy specified for this split tunnel rule, 'allow' or 'deny'."
},
"comment": {
"type": "string",
"description": "Description for this split tunnel rule (optional)."
}
},
"required": [
"destCidr",
"policy"
]
},
"description": "List of VPN split tunnel rules."
}
},
"description": "The VPN split tunnel settings for this SSID."
},
"failover": {
"type": "object",
"properties": {
"requestIp": {
"type": "string",
"description": "IP addressed reserved on DHCP server where SSID will terminate."
},
"heartbeatInterval": {
"type": "integer",
"description": "Idle timer interval in seconds."
},
"idleTimeout": {
"type": "integer",
"description": "Idle timer timeout in seconds."
}
},
"description": "Secondary VPN concentrator settings. This is only used when two VPN concentrators are configured on the SSID."
}
},
"example": {
"concentrator": {
"networkId": "N_123",
"vlanId": 44,
"name": "some concentrator name"
},
"failover": {
"requestIp": "1.1.1.1",
"heartbeatInterval": 10,
"idleTimeout": 30
},
"splitTunnel": {
"enabled": true,
"rules": [
{
"protocol": "Any",
"destCidr": "1.1.1.1/32",
"destPort": "any",
"policy": "allow",
"comment": "split tunnel rule 1"
},
{
"destCidr": "foo.com",
"destPort": "any",
"policy": "deny",
"comment": "split tunnel rule 2"
}
]
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"concentrator": {
"networkId": "N_123",
"vlanId": 44,
"name": "some concentrator name"
},
"failover": {
"requestIp": "1.1.1.1",
"heartbeatInterval": 10,
"idleTimeout": 30
},
"splitTunnel": {
"enabled": true,
"rules": [
{
"protocol": "Any",
"destCidr": "1.1.1.1/32",
"destPort": "any",
"policy": "allow",
"comment": "split tunnel rule 1"
},
{
"destCidr": "foo.com",
"destPort": "any",
"policy": "deny",
"comment": "split tunnel rule 2"
}
]
}
}
}
}
},
"summary": "Update the VPN settings for the SSID",
"tags": [
"wireless",
"configure",
"ssids",
"vpn"
]
}
},
"/networks/{networkId}/wireless/usageHistory": {
"get": {
"description": "Return AP usage over time for a device or network client",
"operationId": "getNetworkWirelessUsageHistory",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"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 7 days."
},
{
"type": "integer",
"name": "resolution",
"in": "query",
"description": "The time resolution in seconds for returned data. The valid resolutions are: 300, 600, 1200, 3600, 14400, 86400. The default is 86400."
},
{
"type": "boolean",
"name": "autoResolution",
"in": "query",
"description": "Automatically select a data resolution based on the given timespan; this overrides the value specified by the 'resolution' parameter. The default setting is false."
},
{
"type": "string",
"name": "clientId",
"in": "query",
"description": "Filter results by network client to return per-device AP usage over time inner joined by the queried client's connection history."
},
{
"type": "string",
"name": "deviceSerial",
"in": "query",
"description": "Filter results by device. Requires :band."
},
{
"type": "string",
"name": "apTag",
"in": "query",
"description": "Filter results by AP tag; either :clientId or :deviceSerial must be jointly specified."
},
{
"type": "string",
"enum": [
"2.4",
"5",
"6"
],
"name": "band",
"in": "query",
"description": "Filter results by band (either '2.4', '5' or '6')."
},
{
"type": "integer",
"name": "ssid",
"in": "query",
"description": "Filter results by SSID number."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startTs": {
"type": "string",
"format": "date-time",
"description": "The start time of the query range"
},
"endTs": {
"type": "string",
"format": "date-time",
"description": "The end time of the query range"
},
"totalKbps": {
"type": "integer",
"description": "Total usage in kilobytes-per-second"
},
"sentKbps": {
"type": "integer",
"description": "Sent kilobytes-per-second"
},
"receivedKbps": {
"type": "integer",
"description": "Received kilobytes-per-second"
}
}
}
},
"examples": {
"application/json": [
{
"startTs": "2020-01-01T00:00:00Z",
"endTs": "2020-01-01T01:00:00Z",
"totalKbps": 2590,
"sentKbps": 159,
"receivedKbps": 2431
}
]
}
}
},
"summary": "Return AP usage over time for a device or network client",
"tags": [
"wireless",
"monitor",
"usageHistory"
]
}
},
"/networks/{networkId}/wireless/zigbee": {
"put": {
"description": "Update Zigbee Configs for specified network",
"operationId": "updateNetworkWirelessZigbee",
"parameters": [
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateNetworkWirelessZigbee",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "To enable/disable Zigbee on the network"
},
"iotController": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device Serial number"
}
},
"description": "Zigbee's IoT controller details"
},
"lockManagement": {
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "Host Address"
},
"username": {
"type": "string",
"description": "Username"
},
"password": {
"type": "string",
"description": "Password"
}
},
"description": "Login Credentials of on-premises lock management"
},
"defaults": {
"type": "object",
"properties": {
"transmitPowerLevel": {
"type": "integer",
"minimum": 10,
"maximum": 20,
"description": "Transmit Power Level"
}
},
"description": "Default Settings for Zigbee Devices"
}
},
"example": {
}
}
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique Meraki Identifier for the network"
}
},
"description": "Network details"
},
"enabled": {
"type": "boolean",
"description": "If Zigbee is enabled for the network"
},
"iotController": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the device"
},
"mac": {
"type": "string",
"description": "Mac address of the device"
},
"serial": {
"type": "string",
"description": "Serial number of the device"
},
"status": {
"type": "string",
"description": "Zigbee connectivity status of the device"
}
},
"description": "Device details setup the IoT controller"
},
"lockManagement": {
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "Host address of the system"
},
"username": {
"type": "string",
"description": "Login User credentials"
},
"status": {
"type": "string",
"description": "Zigbee connectivity status of the management software"
}
},
"description": "Lock Management Details"
},
"defaults": {
"type": "object",
"properties": {
"transmitPowerLevel": {
"type": "integer",
"description": "Default Transmit Power Level for the network"
}
},
"description": "Default Settings for the MRs in network"
}
}
},
"examples": {
"application/json": {
"network": {
"id": "N_24329156"
},
"enabled": true,
"iotController": {
"name": "My AP",
"mac": "e4:55:a8:38:f2:06",
"serial": "Q234-ABCD-5678",
"status": "online"
},
"lockManagement": {
"address": "10.100.100.200",
"username": "user",
"status": "offline"
},
"defaults": {
"transmitPowerLevel": 10
}
}
}
}
},
"summary": "Update Zigbee Configs for specified network",
"tags": [
"wireless",
"configure",
"zigbee"
],
"x-release-stage": "beta"
}
},
"/organizations": {
"get": {
"description": "List the organizations that the user has privileges on",
"operationId": "getOrganizations",
"parameters": [
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 9000. Default is 9000."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"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"
}
},
"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', '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"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"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"
}
},
"management": {
"details": [
{
"name": "MSP ID",
"value": "123456"
}
]
}
}
]
}
}
},
"summary": "List the organizations that the user has privileges on",
"tags": [
"organizations",
"configure"
]
},
"post": {
"description": "Create a new organization",
"operationId": "createOrganization",
"parameters": [
{
"name": "createOrganization",
"in": "body",
"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",
"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"
}
},
"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', '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"
}
}
},
"examples": {
"application/json": {
"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"
}
},
"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",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"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"
}
},
"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', '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"
}
}
},
"examples": {
"application/json": {
"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"
}
},
"management": {
"details": [
{
"name": "MSP ID",
"value": "123456"
}
]
}
}
}
}
},
"summary": "Return an organization",
"tags": [
"organizations",
"configure"
]
},
"put": {
"description": "Update an organization",
"operationId": "updateOrganization",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "updateOrganization",
"in": "body",
"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"
}
},
"example": {
"name": "My organization",
"management": {
"details": [
{
"name": "MSP ID",
"value": "123456"
}
]
},
"api": {
"enabled": true
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"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"
}
},
"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', '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"
}
}
},
"examples": {
"application/json": {
"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"
}
},
"management": {
"details": [
{
"name": "MSP ID",
"value": "123456"
}
]
}
}
}
}
},
"summary": "Update an organization",
"tags": [
"organizations",
"configure"
]
},
"delete": {
"description": "Delete an organization",
"operationId": "deleteOrganization",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete an organization",
"tags": [
"organizations",
"configure"
]
}
},
"/organizations/{organizationId}/actionBatches": {
"post": {
"description": "Create an action batch",
"operationId": "createOrganizationActionBatch",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationActionBatch",
"in": "body",
"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",
"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"
]
},
"examples": {
"application/json": {
"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",
"type": "string",
"required": true
},
{
"type": "string",
"enum": [
"completed",
"failed",
"pending"
],
"name": "status",
"in": "query",
"description": "Filter batches by status. Valid types are pending, completed, and failed."
}
],
"responses": {
"200": {
"description": "Successful operation",
"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"
]
}
},
"examples": {
"application/json": [
{
"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",
"type": "string",
"required": true
},
{
"name": "actionBatchId",
"in": "path",
"description": "Action batch ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"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"
]
},
"examples": {
"application/json": {
"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",
"type": "string",
"required": true
},
{
"name": "actionBatchId",
"in": "path",
"description": "Action batch ID",
"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",
"type": "string",
"required": true
},
{
"name": "actionBatchId",
"in": "path",
"description": "Action batch ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationActionBatch",
"in": "body",
"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
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"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"
]
},
"examples": {
"application/json": {
"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",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"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"
}
}
},
"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"
}
}
}
},
"examples": {
"application/json": [
{
"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"
}
],
"createdAt": "2021-05-19T17:08:25Z",
"updatedAt": "2021-05-19T17:11:54Z"
}
]
}
}
},
"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",
"type": "string",
"required": true
},
{
"name": "createOrganizationAdaptivePolicyAcl",
"in": "body",
"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'."
}
},
"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"
}
],
"ipVersion": "ipv6"
},
"required": [
"name",
"rules",
"ipVersion"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"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"
}
}
},
"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"
}
}
},
"examples": {
"application/json": {
"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"
}
],
"createdAt": "2021-05-19T17:08:25Z",
"updatedAt": "2021-05-19T17:11:54Z"
}
}
}
},
"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",
"type": "string",
"required": true
},
{
"name": "aclId",
"in": "path",
"description": "Acl ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"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"
}
}
},
"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"
}
}
},
"examples": {
"application/json": {
"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"
}
],
"createdAt": "2021-05-19T17:08:25Z",
"updatedAt": "2021-05-19T17:11:54Z"
}
}
}
},
"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",
"type": "string",
"required": true
},
{
"name": "aclId",
"in": "path",
"description": "Acl ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationAdaptivePolicyAcl",
"in": "body",
"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'."
}
},
"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"
}
],
"ipVersion": "ipv6"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"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"
}
}
},
"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"
}
}
},
"examples": {
"application/json": {
"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"
}
],
"createdAt": "2021-05-19T17:08:25Z",
"updatedAt": "2021-05-19T17:11:54Z"
}
}
}
},
"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",
"type": "string",
"required": true
},
{
"name": "aclId",
"in": "path",
"description": "Acl ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"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",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"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"
}
}
}
},
"examples": {
"application/json": [
{
"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"
}
]
}
}
},
"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",
"type": "string",
"required": true
},
{
"name": "createOrganizationAdaptivePolicyGroup",
"in": "body",
"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",
"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"
}
}
},
"examples": {
"application/json": {
"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"
}
}
}
},
"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",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"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"
}
}
},
"examples": {
"application/json": {
"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"
}
}
}
},
"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",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationAdaptivePolicyGroup",
"in": "body",
"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"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"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"
}
}
},
"examples": {
"application/json": {
"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"
}
}
}
},
"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",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"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",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"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."
}
}
},
"examples": {
"application/json": {
"counts": {
"groups": 10,
"customGroups": 8,
"customAcls": 12,
"policies": 100,
"denyPolicies": 30,
"allowPolicies": 70,
"policyObjects": 13
},
"limits": {
"customGroups": 60,
"rulesInAnAcl": 16,
"aclsInAPolicy": 7,
"policyObjects": 8000
}
}
}
}
},
"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",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"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"
}
}
}
},
"examples": {
"application/json": [
{
"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"
}
]
}
}
},
"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",
"type": "string",
"required": true
},
{
"name": "createOrganizationAdaptivePolicyPolicy",
"in": "body",
"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",
"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"
}
}
},
"examples": {
"application/json": {
"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"
}
}
}
},
"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",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"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"
}
}
},
"examples": {
"application/json": {
"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"
}
}
}
},
"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",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationAdaptivePolicyPolicy",
"in": "body",
"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"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"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"
}
}
},
"examples": {
"application/json": {
"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"
}
}
}
},
"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",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"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",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enabledNetworks": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of network IDs with adaptive policy enabled"
}
}
},
"examples": {
"application/json": {
"enabledNetworks": [
"L_11111111",
"L_22222222",
"N_33333333",
"L_44444444"
]
}
}
}
},
"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",
"type": "string",
"required": true
},
{
"name": "updateOrganizationAdaptivePolicySettings",
"in": "body",
"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"
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enabledNetworks": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of network IDs with adaptive policy enabled"
}
}
},
"examples": {
"application/json": {
"enabledNetworks": [
"L_11111111",
"L_22222222",
"N_33333333",
"L_44444444"
]
}
}
}
},
"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",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"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": [
"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"
}
}
}
},
"examples": {
"application/json": [
{
"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"
}
]
}
}
},
"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",
"type": "string",
"required": true
},
{
"name": "createOrganizationAdmin",
"in": "body",
"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": [
"Cisco SecureX Sign-On",
"Email"
],
"description": "The method of authentication the user will use to sign in to the Meraki dashboard. Can be one of 'Email' or 'Cisco SecureX Sign-On'. 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",
"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": [
"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"
}
}
},
"examples": {
"application/json": {
"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"
}
}
}
},
"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",
"type": "string",
"required": true
},
{
"name": "adminId",
"in": "path",
"description": "Admin ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationAdmin",
"in": "body",
"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"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"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": [
"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"
}
}
},
"examples": {
"application/json": {
"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"
}
}
}
},
"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",
"type": "string",
"required": true
},
{
"name": "adminId",
"in": "path",
"description": "Admin ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"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",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"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"
}
}
}
},
"examples": {
"application/json": [
{
"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"
}
]
}
}
},
"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",
"type": "string",
"required": true
},
{
"name": "createOrganizationAlertsProfile",
"in": "body",
"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"
],
"description": "The uplink observed for the alert. interface must be one of the following: wan1, wan2, wan3, cellular"
}
},
"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",
"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"
}
}
},
"examples": {
"application/json": {
"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"
}
}
}
},
"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",
"type": "string",
"required": true
},
{
"name": "alertConfigId",
"in": "path",
"description": "Alert config ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationAlertsProfile",
"in": "body",
"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"
],
"description": "The uplink observed for the alert. interface must be one of the following: wan1, wan2, wan3, cellular"
}
},
"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"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"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"
}
}
},
"examples": {
"application/json": {
"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"
}
}
}
},
"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",
"type": "string",
"required": true
},
{
"name": "alertConfigId",
"in": "path",
"description": "Alert config ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Removes an organization-wide alert config",
"tags": [
"organizations",
"configure",
"alerts",
"profiles"
]
}
},
"/organizations/{organizationId}/apiRequests": {
"get": {
"description": "List the API requests made by an organization",
"operationId": "getOrganizationApiRequests",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"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."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 50."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "adminId",
"in": "query",
"description": "Filter the results by the ID of the admin who made the API requests"
},
{
"type": "string",
"name": "path",
"in": "query",
"description": "Filter the results by the path of the API requests"
},
{
"type": "string",
"enum": [
"DELETE",
"GET",
"POST",
"PUT"
],
"name": "method",
"in": "query",
"description": "Filter the results by the method of the API requests (must be 'GET', 'PUT', 'POST' or 'DELETE')"
},
{
"type": "integer",
"name": "responseCode",
"in": "query",
"description": "Filter the results by the response code of the API requests"
},
{
"type": "string",
"name": "sourceIp",
"in": "query",
"description": "Filter the results by the IP address of the originating API request"
},
{
"type": "string",
"name": "userAgent",
"in": "query",
"description": "Filter the results by the user agent string of the API request"
},
{
"type": "integer",
"enum": [
0,
1
],
"name": "version",
"in": "query",
"description": "Filter the results by the API version of the API request"
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "operationIds",
"in": "query",
"description": "Filter the results by one or more operation IDs for the API request"
}
],
"responses": {
"200": {
"description": "Successful operation",
"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."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"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"
}
]
}
}
},
"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",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"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."
},
"501": {
"type": "integer",
"description": "HTTP 501 response code count."
},
"502": {
"type": "integer",
"description": "HTTP 502 response code count."
},
"503": {
"type": "integer",
"description": "HTTP 503 response code count."
},
"504": {
"type": "integer",
"description": "HTTP 504 response code count."
},
"505": {
"type": "integer",
"description": "HTTP 505 response code count."
},
"506": {
"type": "integer",
"description": "HTTP 506 response code count."
},
"507": {
"type": "integer",
"description": "HTTP 507 response code count."
},
"508": {
"type": "integer",
"description": "HTTP 508 response code count."
},
"509": {
"type": "integer",
"description": "HTTP 509 response code count."
},
"510": {
"type": "integer",
"description": "HTTP 510 response code count."
},
"511": {
"type": "integer",
"description": "HTTP 511 response code count."
}
},
"description": "object of all supported HTTP response code"
}
}
},
"examples": {
"application/json": {
"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,
"501": 0,
"502": 0,
"503": 5,
"504": 0,
"505": 0,
"506": 0,
"507": 0,
"508": 0,
"509": 0,
"510": 0,
"511": 0
}
}
}
}
},
"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",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"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."
},
{
"type": "integer",
"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."
},
{
"type": "integer",
"enum": [
0,
1
],
"name": "version",
"in": "query",
"description": "Filter by API version of the endpoint. Allowable values are: [0, 1]"
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "operationIds",
"in": "query",
"description": "Filter by operation ID of the endpoint"
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "sourceIps",
"in": "query",
"description": "Filter by source IP that made the API request"
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "adminIds",
"in": "query",
"description": "Filter by admin ID of user that made the API request"
},
{
"type": "string",
"name": "userAgent",
"in": "query",
"description": "Filter by user agent string for API request. This will filter by a complete or partial match."
}
],
"responses": {
"200": {
"description": "Successful operation",
"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"
}
}
}
},
"examples": {
"application/json": [
{
"startTs": "2018-02-11T00:00:00Z",
"endTs": "2018-05-12T00:00:00Z",
"counts": [
{
"code": 200,
"count": 198938
}
]
}
]
}
}
},
"summary": "Tracks organizations' API requests by response code across a given time period",
"tags": [
"organizations",
"monitor",
"apiRequests",
"overview",
"responseCodes",
"byInterval"
]
}
},
"/organizations/{organizationId}/appliance/security/events": {
"get": {
"description": "List the security events for an organization",
"operationId": "getOrganizationApplianceSecurityEvents",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. Data is gathered after the specified t0 value. The maximum lookback period is 365 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 365 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 31536000,
"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 365 days. The default is 31 days."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 100."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"enum": [
"ascending",
"descending"
],
"name": "sortOrder",
"in": "query",
"description": "Sorted order of security events based on event detection time. Order options are 'ascending' or 'descending'. Default is ascending order."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"ts": "2018-02-11T00:00:00.090210Z",
"eventType": "File Scanned",
"clientName": "COMPUTER-M-V78J",
"clientMac": "10:dd:b1:eb:88:f8",
"clientIp": "192.168.128.2",
"srcIp": "192.168.128.2",
"destIp": "119.192.233.48",
"protocol": "http",
"uri": "http://www.favorite-icons.com/program/FavoriteIconsUninstall.exe",
"canonicalName": "PUA.Win.Dropper.Kraddare::1201",
"destinationPort": 80,
"fileHash": "3ec1b9a95fe62aa25fc959643a0f227b76d253094681934daaf628d3574b3463",
"fileType": "MS_EXE",
"fileSizeBytes": 193688,
"disposition": "Malicious",
"action": "Blocked"
},
{
"ts": "2018-02-11T00:00:00.090210Z",
"eventType": "IDS Alert",
"deviceMac": "00:18:0a:01:02:03",
"clientMac": "A1:B2:C3:D4:E5:F6",
"srcIp": "1.2.3.4:34195",
"destIp": "10.20.30.40:80",
"protocol": "tcp/ip",
"priority": "2",
"classification": "4",
"blocked": true,
"message": "SERVER-WEBAPP JBoss JMX console access attempt",
"signature": "1:21516:9",
"sigSource": "",
"ruleId": "meraki:intrusion/snort/GID/1/SID/26267"
}
]
}
}
},
"summary": "List the security events for an organization",
"tags": [
"appliance",
"monitor",
"security",
"events"
]
}
},
"/organizations/{organizationId}/appliance/security/intrusion": {
"get": {
"description": "Returns all supported intrusion settings for an organization",
"operationId": "getOrganizationApplianceSecurityIntrusion",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"allowedRules": [
{
"ruleId": "meraki:intrusion/snort/GID/01/SID/688",
"message": "SQL sa login failed"
},
{
"ruleId": "meraki:intrusion/snort/GID/01/SID/5805",
"message": "MALWARE-OTHER Trackware myway speedbar runtime detection - switch engines"
}
]
}
}
}
},
"summary": "Returns all supported intrusion settings for an organization",
"tags": [
"appliance",
"configure",
"security",
"intrusion"
]
},
"put": {
"description": "Sets supported intrusion settings for an organization",
"operationId": "updateOrganizationApplianceSecurityIntrusion",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationApplianceSecurityIntrusion",
"in": "body",
"schema": {
"type": "object",
"properties": {
"allowedRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ruleId": {
"type": "string",
"description": "A rule identifier of the format meraki:intrusion/snort/GID//SID/. gid and sid can be obtained from either https://www.snort.org/rule-docs or as ruleIds from the security events in /organization/[orgId]/securityEvents"
},
"message": {
"type": "string",
"description": "Message is optional and is ignored on a PUT call. It is allowed in order for PUT to be compatible with GET"
}
},
"required": [
"ruleId"
]
},
"description": "Sets a list of specific SNORT signatures to allow"
}
},
"example": {
"allowedRules": [
{
"ruleId": "meraki:intrusion/snort/GID/01/SID/688",
"message": "SQL sa login failed"
},
{
"ruleId": "meraki:intrusion/snort/GID/01/SID/5805",
"message": "MALWARE-OTHER Trackware myway speedbar runtime detection - switch engines"
}
]
},
"required": [
"allowedRules"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"allowedRules": [
{
"ruleId": "meraki:intrusion/snort/GID/01/SID/688",
"message": "SQL sa login failed"
},
{
"ruleId": "meraki:intrusion/snort/GID/01/SID/5805",
"message": "MALWARE-OTHER Trackware myway speedbar runtime detection - switch engines"
}
]
}
}
}
},
"summary": "Sets supported intrusion settings for an organization",
"tags": [
"appliance",
"configure",
"security",
"intrusion"
]
}
},
"/organizations/{organizationId}/appliance/trafficShaping/vpnExclusions/byNetwork": {
"get": {
"description": "Display VPN exclusion rules for MX networks.",
"operationId": "getOrganizationApplianceTrafficShapingVpnExclusionsByNetwork",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 50."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Optional parameter to filter the results by network IDs"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "ID of the network whose VPN exclusion rules are returned."
},
"networkName": {
"type": "string",
"description": "Name of the network whose VPN exclusion rules are returned."
},
"custom": {
"type": "array",
"items": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"enum": [
"any",
"dns",
"icmp",
"tcp",
"udp"
],
"description": "Protocol."
},
"destination": {
"type": "string",
"description": "Destination address; hostname required for DNS, IPv4 otherwise."
},
"port": {
"type": "string",
"description": "Destination port."
}
},
"required": [
"protocol",
"destination",
"port"
]
},
"description": "Custom VPN exclusion rules."
},
"majorApplications": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Application's Meraki ID."
},
"name": {
"type": "string",
"enum": [
"AWS",
"Box",
"Office 365 Sharepoint",
"Office 365 Suite",
"Oracle",
"SAP",
"Salesforce",
"Skype & Teams",
"Slack",
"Webex",
"Webex Calling",
"Webex Meetings",
"Zoom"
],
"description": "Application's name."
}
},
"required": [
"id",
"name"
]
},
"description": "Major Application based VPN exclusion rules."
}
},
"required": [
"networkId",
"networkName",
"custom",
"majorApplications"
]
},
"description": "VPN exclusion rules by network"
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": {
"items": [
{
"networkId": "N_24329156",
"networkName": "Main Office",
"custom": [
{
"protocol": "tcp",
"destination": "192.168.3.0/24",
"port": "8000"
}
],
"majorApplications": [
{
"id": "meraki:vpnExclusion/application/2",
"name": "Office 365 Sharepoint"
}
]
}
]
}
}
}
},
"summary": "Display VPN exclusion rules for MX networks.",
"tags": [
"appliance",
"configure",
"trafficShaping",
"vpnExclusions",
"byNetwork"
]
}
},
"/organizations/{organizationId}/appliance/uplink/statuses": {
"get": {
"description": "List the uplink status of every Meraki MX and Z series appliances in the organization",
"operationId": "getOrganizationApplianceUplinkStatuses",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "A list of network IDs. The returned devices will be filtered to only include these networks."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "A list of serial numbers. The returned devices will be filtered to only include these serials."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "iccids",
"in": "query",
"description": "A list of ICCIDs. The returned devices will be filtered to only include these ICCIDs."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "Network identifier"
},
"serial": {
"type": "string",
"description": "The uplink serial"
},
"model": {
"type": "string",
"description": "The uplink model"
},
"lastReportedAt": {
"type": "string",
"format": "date-time",
"description": "Last reported time for the device"
},
"highAvailability": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Indicates whether High Availability is enabled for the device. For devices that do not support HA, this will be 'false'"
},
"role": {
"type": "string",
"description": "The HA role of the device on the network. For devices that do not support HA, this will be 'primary'"
}
},
"description": "Device High Availability Capabilities"
},
"uplinks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"interface": {
"type": "string",
"enum": [
"cellular",
"wan1",
"wan2",
"wan3"
],
"description": "Uplink interface"
},
"status": {
"type": "string",
"enum": [
"active",
"connecting",
"failed",
"not connected",
"ready"
],
"description": "Uplink status"
},
"ip": {
"type": "string",
"description": "Uplink IP"
},
"gateway": {
"type": "string",
"description": "Gateway IP"
},
"publicIp": {
"type": "string",
"description": "Public IP"
},
"primaryDns": {
"type": "string",
"description": "Primary DNS IP"
},
"secondaryDns": {
"type": "string",
"description": "Secondary DNS IP"
},
"ipAssignedBy": {
"type": "string",
"description": "The way in which the IP is assigned"
}
}
},
"description": "Uplinks"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"networkId": "N_24329156",
"serial": "Q234-ABCD-5678",
"model": "MX68C",
"lastReportedAt": "2018-02-11T00:00:00Z",
"highAvailability": {
"enabled": true,
"role": "primary"
},
"uplinks": [
{
"interface": "wan1",
"status": "active",
"ip": "1.2.3.4",
"gateway": "1.2.3.5",
"publicIp": "123.123.123.1",
"primaryDns": "8.8.8.8",
"secondaryDns": "8.8.4.4",
"ipAssignedBy": "static"
}
]
}
]
}
}
},
"summary": "List the uplink status of every Meraki MX and Z series appliances in the organization",
"tags": [
"appliance",
"monitor",
"uplinks",
"statuses"
]
}
},
"/organizations/{organizationId}/appliance/uplinks/statuses/overview": {
"get": {
"description": "Returns an overview of uplink statuses",
"operationId": "getOrganizationApplianceUplinksStatusesOverview",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"counts": {
"type": "object",
"properties": {
"byStatus": {
"type": "object",
"properties": {
"active": {
"type": "integer",
"description": "number of uplinks that are active and working"
},
"ready": {
"type": "integer",
"description": "number of uplinks that are working but on standby"
},
"failed": {
"type": "integer",
"description": "number of uplinks that were working but have failed"
},
"connecting": {
"type": "integer",
"description": "number of uplinks currently connecting"
},
"notConnected": {
"type": "integer",
"description": "number of uplinks currently where nothing is plugged in"
}
},
"description": "byStatus"
}
},
"description": "counts"
}
}
},
"examples": {
"application/json": {
"counts": {
"byStatus": {
"active": 5,
"ready": 5,
"failed": 4,
"connecting": 2,
"notConnected": 1
}
}
}
}
}
},
"summary": "Returns an overview of uplink statuses",
"tags": [
"appliance",
"configure",
"uplinks",
"statuses",
"overview"
]
}
},
"/organizations/{organizationId}/appliance/uplinks/usage/byNetwork": {
"get": {
"description": "Get the sent and received bytes for each uplink of all MX and Z networks within an organization. If more than one device was active during the specified timespan, then the sent and received bytes will be aggregated by interface.",
"operationId": "getOrganizationApplianceUplinksUsageByNetwork",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 365 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 14 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 1209600,
"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 14 days. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "Network identifier"
},
"name": {
"type": "string",
"description": "Network name"
},
"byUplink": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Uplink serial"
},
"interface": {
"type": "string",
"description": "Uplink name"
},
"sent": {
"type": "integer",
"description": "Bytes sent"
},
"received": {
"type": "integer",
"description": "Bytes received"
}
}
},
"description": "Uplink usage"
}
}
}
},
"examples": {
"application/json": [
{
"networkId": "N_24329156",
"name": "Main Office",
"byUplink": [
{
"serial": "Q234-ABCD-5678",
"interface": "wan1",
"sent": 200,
"received": 400
}
]
}
]
}
}
},
"summary": "Get the sent and received bytes for each uplink of all MX and Z networks within an organization",
"tags": [
"appliance",
"monitor",
"uplinks",
"usage",
"byNetwork"
]
}
},
"/organizations/{organizationId}/appliance/vpn/stats": {
"get": {
"description": "Show VPN history stat for networks in an organization",
"operationId": "getOrganizationApplianceVpnStats",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 300. Default is 300."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "A list of Meraki network IDs to filter results to contain only specified networks. E.g.: networkIds[]=N_12345678&networkIds[]=L_3456"
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"networkId": "N_12345678",
"networkName": "San Francisco Office",
"merakiVpnPeers": [
{
"networkId": "L_23456789",
"networkName": "New York Office",
"usageSummary": {
"receivedInKilobytes": 1234567,
"sentInKilobytes": 2345678
},
"latencySummaries": [
{
"senderUplink": "wan1",
"receiverUplink": "wan1",
"avgLatencyMs": 15,
"minLatencyMs": 10,
"maxLatencyMs": 30
},
{
"senderUplink": "wan2",
"receiverUplink": "wan1",
"avgLatencyMs": 15,
"minLatencyMs": 10,
"maxLatencyMs": 30
}
],
"lossPercentageSummaries": [
{
"senderUplink": "wan1",
"receiverUplink": "wan1",
"avgLossPercentage": 0,
"minLossPercentage": 0,
"maxLossPercentage": 0.1
},
{
"senderUplink": "wan2",
"receiverUplink": "wan1",
"avgLossPercentage": 0,
"minLossPercentage": 0,
"maxLossPercentage": 0.1
}
],
"jitterSummaries": [
{
"senderUplink": "wan1",
"receiverUplink": "wan1",
"avgJitter": 0.01,
"minJitter": 0,
"maxJitter": 0.25
},
{
"senderUplink": "wan2",
"receiverUplink": "wan1",
"avgJitter": 0.01,
"minJitter": 0,
"maxJitter": 0.25
}
],
"mosSummaries": [
{
"senderUplink": "wan1",
"receiverUplink": "wan1",
"avgMos": 4.1,
"minMos": 4.0,
"maxMos": 4.2
},
{
"senderUplink": "wan2",
"receiverUplink": "wan1",
"avgMos": 4.1,
"minMos": 4.0,
"maxMos": 4.2
}
]
}
]
},
{
"networkId": "L_23456789",
"networkName": "New York Office",
"merakiVpnPeers": [
{
"networkId": "N_12345678",
"networkName": "San Francisco Office",
"usageSummary": {
"receivedInKilobytes": 2345678,
"sentInKilobytes": 1234567
},
"latencySummaries": [
{
"senderUplink": "wan1",
"receiverUplink": "wan1",
"avgLatencyMs": 15,
"minLatencyMs": 10,
"maxLatencyMs": 30
},
{
"senderUplink": "wan1",
"receiverUplink": "wan2",
"avgLatencyMs": 15,
"minLatencyMs": 10,
"maxLatencyMs": 30
}
],
"lossPercentageSummaries": [
{
"senderUplink": "wan1",
"receiverUplink": "wan1",
"avgLossPercentage": 0,
"minLossPercentage": 0,
"maxLossPercentage": 0.1
},
{
"senderUplink": "wan1",
"receiverUplink": "wan2",
"avgLossPercentage": 0,
"minLossPercentage": 0,
"maxLossPercentage": 0.1
}
],
"jitterSummaries": [
{
"senderUplink": "wan1",
"receiverUplink": "wan1",
"avgJitter": 0.01,
"minJitter": 0,
"maxJitter": 0.25
},
{
"senderUplink": "wan1",
"receiverUplink": "wan2",
"avgJitter": 0.01,
"minJitter": 0,
"maxJitter": 0.25
}
],
"mosSummaries": [
{
"senderUplink": "wan1",
"receiverUplink": "wan1",
"avgMos": 4.1,
"minMos": 4.0,
"maxMos": 4.2
},
{
"senderUplink": "wan1",
"receiverUplink": "wan2",
"avgMos": 4.1,
"minMos": 4.0,
"maxMos": 4.2
}
]
}
]
}
]
}
}
},
"summary": "Show VPN history stat for networks in an organization",
"tags": [
"appliance",
"monitor",
"vpn",
"stats"
]
}
},
"/organizations/{organizationId}/appliance/vpn/statuses": {
"get": {
"description": "Show VPN status for networks in an organization",
"operationId": "getOrganizationApplianceVpnStatuses",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 300. Default is 300."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "A list of Meraki network IDs to filter results to contain only specified networks. E.g.: networkIds[]=N_12345678&networkIds[]=L_3456"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"vpnstatusentities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "Network Id"
},
"networkName": {
"type": "string",
"description": "Network name"
},
"deviceSerial": {
"type": "string",
"description": "Serial number of the device"
},
"deviceStatus": {
"type": "string",
"description": "Device Status"
},
"uplinks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"interface": {
"type": "string",
"description": "Uplink Interface Name"
},
"publicIp": {
"type": "string",
"description": "Uplink IP address (in IP or CIDR notation)"
}
}
},
"description": "List of Uplink Information"
},
"vpnMode": {
"type": "string",
"description": "VPN Mode"
},
"exportedSubnets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"subnet": {
"type": "string",
"description": "Subnet"
},
"name": {
"type": "string",
"description": "Name of the subnet"
}
}
},
"description": "List of Exported Subnets"
},
"merakiVpnPeers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "Network ID"
},
"networkName": {
"type": "string",
"description": "Network Name"
},
"reachability": {
"type": "string",
"description": "Reachability"
}
}
},
"description": "Meraki VPN Peers"
},
"thirdPartyVpnPeers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the peer"
},
"publicIp": {
"type": "string",
"description": "Public IP of the peer"
},
"reachability": {
"type": "string",
"description": "Reachability"
}
}
},
"description": "Third Party VPN Peers"
}
}
},
"description": "The list of VPN Status for networks"
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": {
"vpnstatusentities": [
{
"networkId": "N_12345678",
"networkName": "San Francisco Office",
"deviceSerial": "Q234-ABCD-1234",
"deviceStatus": "online",
"uplinks": [
{
"interface": "wan1",
"publicIp": "1.2.3.4"
}
],
"vpnMode": "hub",
"exportedSubnets": [
{
"subnet": "192.168.0.0/24",
"name": "sales-vlan"
}
],
"merakiVpnPeers": [
{
"networkId": "L_1234",
"networkName": "New York Office",
"reachability": "reachable"
}
],
"thirdPartyVpnPeers": [
{
"name": "Tokyo Office",
"publicIp": "222.111.222.111",
"reachability": "reachable"
}
]
}
]
}
}
}
},
"summary": "Show VPN status for networks in an organization",
"tags": [
"appliance",
"monitor",
"vpn",
"statuses"
]
}
},
"/organizations/{organizationId}/appliance/vpn/thirdPartyVPNPeers": {
"get": {
"description": "Return the third party VPN peers for an organization",
"operationId": "getOrganizationApplianceVpnThirdPartyVPNPeers",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"peers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the VPN peer"
},
"publicIp": {
"type": "string",
"description": "[optional] The public IP of the VPN peer"
},
"remoteId": {
"type": "string",
"description": "[optional] The remote ID is used to identify the connecting VPN peer. This can either be a valid IPv4 Address, FQDN or User FQDN."
},
"localId": {
"type": "string",
"description": "[optional] The local ID is used to identify the MX to the peer. This will apply to all MXs this peer applies to."
},
"secret": {
"type": "string",
"description": "The shared secret with the VPN peer"
},
"privateSubnets": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of the private subnets of the VPN peer"
},
"ipsecPolicies": {
"type": "object",
"properties": {
"ikeCipherAlgo": {
"type": "array",
"items": {
"type": "string",
"enum": [
"aes128",
"aes192",
"aes256",
"des",
"tripledes"
]
},
"description": "This is the cipher algorithm to be used in Phase 1. The value should be an array with one of the following algorithms: 'aes256', 'aes192', 'aes128', 'tripledes', 'des'"
},
"ikeAuthAlgo": {
"type": "array",
"items": {
"type": "string",
"enum": [
"md5",
"sha1",
"sha256"
]
},
"description": "This is the authentication algorithm to be used in Phase 1. The value should be an array with one of the following algorithms: 'sha256', 'sha1', 'md5'"
},
"ikePrfAlgo": {
"type": "array",
"items": {
"type": "string",
"enum": [
"default",
"prfmd5",
"prfsha1",
"prfsha256"
]
},
"description": "[optional] This is the pseudo-random function to be used in IKE_SA. The value should be an array with one of the following algorithms: 'prfsha256', 'prfsha1', 'prfmd5', 'default'. The 'default' option can be used to default to the Authentication algorithm."
},
"ikeDiffieHellmanGroup": {
"type": "array",
"items": {
"type": "string"
},
"description": "This is the Diffie-Hellman group to be used in Phase 1. The value should be an array with one of the following algorithms: 'group14', 'group5', 'group2', 'group1'"
},
"ikeLifetime": {
"type": "integer",
"description": "The lifetime of the Phase 1 SA in seconds."
},
"childCipherAlgo": {
"type": "array",
"items": {
"type": "string",
"enum": [
"aes128",
"aes192",
"aes256",
"des",
"null",
"tripledes"
]
},
"description": "This is the cipher algorithms to be used in Phase 2. The value should be an array with one or more of the following algorithms: 'aes256', 'aes192', 'aes128', 'tripledes', 'des', 'null'"
},
"childAuthAlgo": {
"type": "array",
"items": {
"type": "string",
"enum": [
"md5",
"sha1",
"sha256"
]
},
"description": "This is the authentication algorithms to be used in Phase 2. The value should be an array with one of the following algorithms: 'sha256', 'sha1', 'md5'"
},
"childPfsGroup": {
"type": "array",
"items": {
"type": "string"
},
"description": "This is the Diffie-Hellman group to be used for Perfect Forward Secrecy in Phase 2. The value should be an array with one of the following values: 'disabled','group14', 'group5', 'group2', 'group1'"
},
"childLifetime": {
"type": "integer",
"description": "The lifetime of the Phase 2 SA in seconds."
}
},
"description": "Custom IPSec policies for the VPN peer. If not included and a preset has not been chosen, the default preset for IPSec policies will be used."
},
"ipsecPoliciesPreset": {
"type": "string",
"description": "One of the following available presets: 'default', 'aws', 'azure'. If this is provided, the 'ipsecPolicies' parameter is ignored."
},
"ikeVersion": {
"type": "string",
"enum": [
"1",
"2"
],
"description": "[optional] The IKE version to be used for the IPsec VPN peer configuration. Defaults to '1' when omitted.",
"default": "1"
},
"networkTags": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of network tags that will connect with this peer. Use ['all'] for all networks. Use ['none'] for no networks. If not included, the default is ['all']."
}
}
},
"description": "The list of VPN peers"
}
}
},
"examples": {
"application/json": {
"peers": [
{
"name": "Peer Name",
"publicIp": "123.123.123.1",
"remoteId": "miles@meraki.com",
"localId": "myMXId@meraki.com",
"secret": "secret",
"privateSubnets": [
"192.168.1.0/24",
"192.168.128.0/24"
],
"ipsecPolicies": {
"ikeCipherAlgo": [
"tripledes"
],
"ikeAuthAlgo": [
"sha1"
],
"ikePrfAlgo": [
"prfsha1"
],
"ikeDiffieHellmanGroup": [
"group2"
],
"ikeLifetime": 28800,
"childCipherAlgo": [
"aes128"
],
"childAuthAlgo": [
"sha1"
],
"childPfsGroup": [
"disabled"
],
"childLifetime": 28800
},
"ipsecPoliciesPreset": "custom",
"ikeVersion": "1",
"networkTags": [
"all"
]
}
]
}
}
}
},
"summary": "Return the third party VPN peers for an organization",
"tags": [
"appliance",
"configure",
"vpn",
"thirdPartyVPNPeers"
]
},
"put": {
"description": "Update the third party VPN peers for an organization",
"operationId": "updateOrganizationApplianceVpnThirdPartyVPNPeers",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationApplianceVpnThirdPartyVPNPeers",
"in": "body",
"schema": {
"type": "object",
"properties": {
"peers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the VPN peer"
},
"publicIp": {
"type": "string",
"description": "[optional] The public IP of the VPN peer"
},
"privateSubnets": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of the private subnets of the VPN peer"
},
"localId": {
"type": "string",
"description": "[optional] The local ID is used to identify the MX to the peer. This will apply to all MXs this peer applies to."
},
"remoteId": {
"type": "string",
"description": "[optional] The remote ID is used to identify the connecting VPN peer. This can either be a valid IPv4 Address, FQDN or User FQDN."
},
"ipsecPolicies": {
"type": "object",
"properties": {
"ikeCipherAlgo": {
"type": "array",
"items": {
"type": "string",
"enum": [
"aes128",
"aes192",
"aes256",
"des",
"tripledes"
]
},
"description": "This is the cipher algorithm to be used in Phase 1. The value should be an array with one of the following algorithms: 'aes256', 'aes192', 'aes128', 'tripledes', 'des'"
},
"ikeAuthAlgo": {
"type": "array",
"items": {
"type": "string",
"enum": [
"md5",
"sha1",
"sha256"
]
},
"description": "This is the authentication algorithm to be used in Phase 1. The value should be an array with one of the following algorithms: 'sha256', 'sha1', 'md5'"
},
"ikePrfAlgo": {
"type": "array",
"items": {
"type": "string",
"enum": [
"default",
"prfmd5",
"prfsha1",
"prfsha256"
]
},
"description": "[optional] This is the pseudo-random function to be used in IKE_SA. The value should be an array with one of the following algorithms: 'prfsha256', 'prfsha1', 'prfmd5', 'default'. The 'default' option can be used to default to the Authentication algorithm."
},
"ikeDiffieHellmanGroup": {
"type": "array",
"items": {
"type": "string"
},
"description": "This is the Diffie-Hellman group to be used in Phase 1. The value should be an array with one of the following algorithms: 'group14', 'group5', 'group2', 'group1'"
},
"ikeLifetime": {
"type": "integer",
"description": "The lifetime of the Phase 1 SA in seconds."
},
"childCipherAlgo": {
"type": "array",
"items": {
"type": "string",
"enum": [
"aes128",
"aes192",
"aes256",
"des",
"null",
"tripledes"
]
},
"description": "This is the cipher algorithms to be used in Phase 2. The value should be an array with one or more of the following algorithms: 'aes256', 'aes192', 'aes128', 'tripledes', 'des', 'null'"
},
"childAuthAlgo": {
"type": "array",
"items": {
"type": "string",
"enum": [
"md5",
"sha1",
"sha256"
]
},
"description": "This is the authentication algorithms to be used in Phase 2. The value should be an array with one of the following algorithms: 'sha256', 'sha1', 'md5'"
},
"childPfsGroup": {
"type": "array",
"items": {
"type": "string"
},
"description": "This is the Diffie-Hellman group to be used for Perfect Forward Secrecy in Phase 2. The value should be an array with one of the following values: 'disabled','group14', 'group5', 'group2', 'group1'"
},
"childLifetime": {
"type": "integer",
"description": "The lifetime of the Phase 2 SA in seconds."
}
},
"description": "Custom IPSec policies for the VPN peer. If not included and a preset has not been chosen, the default preset for IPSec policies will be used."
},
"ipsecPoliciesPreset": {
"type": "string",
"description": "One of the following available presets: 'default', 'aws', 'azure'. If this is provided, the 'ipsecPolicies' parameter is ignored."
},
"secret": {
"type": "string",
"description": "The shared secret with the VPN peer"
},
"ikeVersion": {
"type": "string",
"enum": [
"1",
"2"
],
"description": "[optional] The IKE version to be used for the IPsec VPN peer configuration. Defaults to '1' when omitted.",
"default": "1"
},
"networkTags": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of network tags that will connect with this peer. Use ['all'] for all networks. Use ['none'] for no networks. If not included, the default is ['all']."
}
},
"required": [
"name",
"privateSubnets",
"secret"
]
},
"description": "The list of VPN peers"
}
},
"example": {
"peers": [
{
"name": "Peer Name",
"publicIp": "123.123.123.1",
"privateSubnets": [
"192.168.1.0/24",
"192.168.128.0/24"
],
"localId": "myMXId@meraki.com",
"remoteId": "miles@meraki.com",
"ipsecPolicies": {
"ikeCipherAlgo": [
"tripledes"
],
"ikeAuthAlgo": [
"sha1"
],
"ikePrfAlgo": [
"prfsha1"
],
"ikeDiffieHellmanGroup": [
"group2"
],
"ikeLifetime": 28800,
"childCipherAlgo": [
"aes128"
],
"childAuthAlgo": [
"sha1"
],
"childPfsGroup": [
"disabled"
],
"childLifetime": 28800
},
"ipsecPoliciesPreset": "default",
"secret": "Sample Password",
"ikeVersion": "2",
"networkTags": [
"none"
]
}
]
},
"required": [
"peers"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"peers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the VPN peer"
},
"publicIp": {
"type": "string",
"description": "[optional] The public IP of the VPN peer"
},
"remoteId": {
"type": "string",
"description": "[optional] The remote ID is used to identify the connecting VPN peer. This can either be a valid IPv4 Address, FQDN or User FQDN."
},
"localId": {
"type": "string",
"description": "[optional] The local ID is used to identify the MX to the peer. This will apply to all MXs this peer applies to."
},
"secret": {
"type": "string",
"description": "The shared secret with the VPN peer"
},
"privateSubnets": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of the private subnets of the VPN peer"
},
"ipsecPolicies": {
"type": "object",
"properties": {
"ikeCipherAlgo": {
"type": "array",
"items": {
"type": "string",
"enum": [
"aes128",
"aes192",
"aes256",
"des",
"tripledes"
]
},
"description": "This is the cipher algorithm to be used in Phase 1. The value should be an array with one of the following algorithms: 'aes256', 'aes192', 'aes128', 'tripledes', 'des'"
},
"ikeAuthAlgo": {
"type": "array",
"items": {
"type": "string",
"enum": [
"md5",
"sha1",
"sha256"
]
},
"description": "This is the authentication algorithm to be used in Phase 1. The value should be an array with one of the following algorithms: 'sha256', 'sha1', 'md5'"
},
"ikePrfAlgo": {
"type": "array",
"items": {
"type": "string",
"enum": [
"default",
"prfmd5",
"prfsha1",
"prfsha256"
]
},
"description": "[optional] This is the pseudo-random function to be used in IKE_SA. The value should be an array with one of the following algorithms: 'prfsha256', 'prfsha1', 'prfmd5', 'default'. The 'default' option can be used to default to the Authentication algorithm."
},
"ikeDiffieHellmanGroup": {
"type": "array",
"items": {
"type": "string"
},
"description": "This is the Diffie-Hellman group to be used in Phase 1. The value should be an array with one of the following algorithms: 'group14', 'group5', 'group2', 'group1'"
},
"ikeLifetime": {
"type": "integer",
"description": "The lifetime of the Phase 1 SA in seconds."
},
"childCipherAlgo": {
"type": "array",
"items": {
"type": "string",
"enum": [
"aes128",
"aes192",
"aes256",
"des",
"null",
"tripledes"
]
},
"description": "This is the cipher algorithms to be used in Phase 2. The value should be an array with one or more of the following algorithms: 'aes256', 'aes192', 'aes128', 'tripledes', 'des', 'null'"
},
"childAuthAlgo": {
"type": "array",
"items": {
"type": "string",
"enum": [
"md5",
"sha1",
"sha256"
]
},
"description": "This is the authentication algorithms to be used in Phase 2. The value should be an array with one of the following algorithms: 'sha256', 'sha1', 'md5'"
},
"childPfsGroup": {
"type": "array",
"items": {
"type": "string"
},
"description": "This is the Diffie-Hellman group to be used for Perfect Forward Secrecy in Phase 2. The value should be an array with one of the following values: 'disabled','group14', 'group5', 'group2', 'group1'"
},
"childLifetime": {
"type": "integer",
"description": "The lifetime of the Phase 2 SA in seconds."
}
},
"description": "Custom IPSec policies for the VPN peer. If not included and a preset has not been chosen, the default preset for IPSec policies will be used."
},
"ipsecPoliciesPreset": {
"type": "string",
"description": "One of the following available presets: 'default', 'aws', 'azure'. If this is provided, the 'ipsecPolicies' parameter is ignored."
},
"ikeVersion": {
"type": "string",
"enum": [
"1",
"2"
],
"description": "[optional] The IKE version to be used for the IPsec VPN peer configuration. Defaults to '1' when omitted.",
"default": "1"
},
"networkTags": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of network tags that will connect with this peer. Use ['all'] for all networks. Use ['none'] for no networks. If not included, the default is ['all']."
}
}
},
"description": "The list of VPN peers"
}
}
},
"examples": {
"application/json": {
"peers": [
{
"name": "Peer Name",
"publicIp": "123.123.123.1",
"remoteId": "miles@meraki.com",
"localId": "myMXId@meraki.com",
"secret": "secret",
"privateSubnets": [
"192.168.1.0/24",
"192.168.128.0/24"
],
"ipsecPolicies": {
"ikeCipherAlgo": [
"tripledes"
],
"ikeAuthAlgo": [
"sha1"
],
"ikePrfAlgo": [
"prfsha1"
],
"ikeDiffieHellmanGroup": [
"group2"
],
"ikeLifetime": 28800,
"childCipherAlgo": [
"aes128"
],
"childAuthAlgo": [
"sha1"
],
"childPfsGroup": [
"disabled"
],
"childLifetime": 28800
},
"ipsecPoliciesPreset": "custom",
"ikeVersion": "1",
"networkTags": [
"all"
]
}
]
}
}
}
},
"summary": "Update the third party VPN peers for an organization",
"tags": [
"appliance",
"configure",
"vpn",
"thirdPartyVPNPeers"
]
}
},
"/organizations/{organizationId}/appliance/vpn/vpnFirewallRules": {
"get": {
"description": "Return the firewall rules for an organization's site-to-site VPN",
"operationId": "getOrganizationApplianceVpnVpnFirewallRules",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"srcPort": {
"type": "string",
"description": "Comma-separated list of source port(s) (integer in the range 1-65535), or 'any'"
},
"srcCidr": {
"type": "string",
"description": "Comma-separated list of source IP address(es) (in IP or CIDR notation), or 'any' (note: FQDN not supported for source addresses)"
},
"destPort": {
"type": "string",
"description": "Comma-separated list of destination port(s) (integer in the range 1-65535), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Comma-separated list of destination IP address(es) (in IP or CIDR notation), fully-qualified domain names (FQDN) or 'any'"
},
"syslogEnabled": {
"type": "boolean",
"description": "Log this rule to syslog (true or false, boolean value) - only applicable if a syslog has been configured (optional)"
}
}
},
"description": "An ordered array of the firewall rules (not including the default rule)"
}
}
},
"examples": {
"application/json": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"srcPort": "Any",
"srcCidr": "Any",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"syslogEnabled": false
}
]
}
}
}
},
"summary": "Return the firewall rules for an organization's site-to-site VPN",
"tags": [
"appliance",
"configure",
"vpn",
"vpnFirewallRules"
]
},
"put": {
"description": "Update the firewall rules of an organization's site-to-site VPN",
"operationId": "updateOrganizationApplianceVpnVpnFirewallRules",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationApplianceVpnVpnFirewallRules",
"in": "body",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"enum": [
"allow",
"deny"
],
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"enum": [
"any",
"icmp",
"icmp6",
"tcp",
"udp"
],
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"srcPort": {
"type": "string",
"description": "Comma-separated list of source port(s) (integer in the range 1-65535), or 'any'"
},
"srcCidr": {
"type": "string",
"description": "Comma-separated list of source IP address(es) (in IP or CIDR notation), or 'any' (FQDN not supported)"
},
"destPort": {
"type": "string",
"description": "Comma-separated list of destination port(s) (integer in the range 1-65535), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Comma-separated list of destination IP address(es) (in IP or CIDR notation) or 'any' (FQDN not supported)"
},
"syslogEnabled": {
"type": "boolean",
"description": "Log this rule to syslog (true or false, boolean value) - only applicable if a syslog has been configured (optional)"
}
},
"required": [
"policy",
"protocol",
"srcCidr",
"destCidr"
]
},
"description": "An ordered array of the firewall rules (not including the default rule)"
},
"syslogDefaultRule": {
"type": "boolean",
"description": "Log the special default rule (boolean value - enable only if you've configured a syslog server) (optional)"
}
},
"example": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"srcPort": "Any",
"srcCidr": "Any",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"syslogEnabled": false
}
],
"syslogDefaultRule": false
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"comment": {
"type": "string",
"description": "Description of the rule (optional)"
},
"policy": {
"type": "string",
"description": "'allow' or 'deny' traffic specified by this rule"
},
"protocol": {
"type": "string",
"description": "The type of protocol (must be 'tcp', 'udp', 'icmp', 'icmp6' or 'any')"
},
"srcPort": {
"type": "string",
"description": "Comma-separated list of source port(s) (integer in the range 1-65535), or 'any'"
},
"srcCidr": {
"type": "string",
"description": "Comma-separated list of source IP address(es) (in IP or CIDR notation), or 'any' (note: FQDN not supported for source addresses)"
},
"destPort": {
"type": "string",
"description": "Comma-separated list of destination port(s) (integer in the range 1-65535), or 'any'"
},
"destCidr": {
"type": "string",
"description": "Comma-separated list of destination IP address(es) (in IP or CIDR notation), fully-qualified domain names (FQDN) or 'any'"
},
"syslogEnabled": {
"type": "boolean",
"description": "Log this rule to syslog (true or false, boolean value) - only applicable if a syslog has been configured (optional)"
}
}
},
"description": "An ordered array of the firewall rules (not including the default rule)"
}
}
},
"examples": {
"application/json": {
"rules": [
{
"comment": "Allow TCP traffic to subnet with HTTP servers.",
"policy": "allow",
"protocol": "tcp",
"srcPort": "Any",
"srcCidr": "Any",
"destPort": "443",
"destCidr": "192.168.1.0/24",
"syslogEnabled": false
}
]
}
}
}
},
"summary": "Update the firewall rules of an organization's site-to-site VPN",
"tags": [
"appliance",
"configure",
"vpn",
"vpnFirewallRules"
]
}
},
"/organizations/{organizationId}/brandingPolicies": {
"get": {
"description": "List the branding policies of an organization",
"operationId": "getOrganizationBrandingPolicies",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"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."
}
}
}
},
"examples": {
"application/json": [
{
"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": "Some custom HTML content ",
"universalSearchKnowledgeBaseSearch": "hide",
"ciscoMerakiProductDocumentation": "show",
"supportContactInfo": "show",
"newFeaturesSubtab": "show",
"firewallInfoSubtab": "hide",
"apiDocsSubtab": "default or inherit",
"hardwareReplacementsSubtab": "hide",
"smForums": "hide",
"helpWidget": "hide"
},
"customLogo": {
"enabled": true,
"image": {
"preview": {
"url": "https://meraki-na.s3.amazonaws.com/org-assets/my-image.png",
"expiresAt": "2022-04-06T06:19:27-07:00"
}
}
}
}
]
}
}
},
"summary": "List the branding policies of an organization",
"tags": [
"organizations",
"configure",
"brandingPolicies"
]
},
"post": {
"description": "Add a new branding policy to an organization",
"operationId": "createOrganizationBrandingPolicy",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationBrandingPolicy",
"in": "body",
"schema": {
"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 Each property defaults to 'default or inherit' when not provided."
},
"customLogo": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether or not there is a custom logo enabled."
},
"image": {
"type": "object",
"properties": {
"contents": {
"type": "string",
"format": "byte",
"description": "The file contents (a base 64 encoded string) of your new logo."
},
"format": {
"type": "string",
"enum": [
"gif",
"jpg",
"png"
],
"description": "The format of the encoded contents. Supported formats are 'png', 'gif', and jpg'."
}
},
"description": "Properties for setting 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": "Some custom HTML content ",
"universalSearchKnowledgeBaseSearch": "hide",
"ciscoMerakiProductDocumentation": "show",
"supportContactInfo": "show",
"newFeaturesSubtab": "show",
"firewallInfoSubtab": "hide",
"apiDocsSubtab": "default or inherit",
"hardwareReplacementsSubtab": "hide",
"smForums": "hide",
"helpWidget": "hide"
},
"customLogo": {
"enabled": true,
"image": {
"contents": "Hyperg26C8F4h8CvcoUqpA==",
"format": "jpg"
}
}
}
}
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"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 Each property defaults to 'default or inherit' when not provided."
},
"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."
}
}
},
"examples": {
"application/json": {
"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": "Some custom HTML content ",
"universalSearchKnowledgeBaseSearch": "hide",
"ciscoMerakiProductDocumentation": "show",
"supportContactInfo": "show",
"newFeaturesSubtab": "show",
"firewallInfoSubtab": "hide",
"apiDocsSubtab": "default or inherit",
"hardwareReplacementsSubtab": "hide",
"smForums": "hide",
"helpWidget": "hide"
},
"customLogo": {
"enabled": true,
"image": {
"preview": {
"url": "https://meraki-na.s3.amazonaws.com/org-assets/my-image.png",
"expiresAt": "2022-04-06T06:19:27-07:00"
}
}
}
}
}
}
},
"summary": "Add a new branding policy to an organization",
"tags": [
"organizations",
"configure",
"brandingPolicies"
]
}
},
"/organizations/{organizationId}/brandingPolicies/priorities": {
"get": {
"description": "Return the branding policy IDs of an organization in priority order. IDs are ordered in ascending order of priority (IDs later in the array have higher priority).",
"operationId": "getOrganizationBrandingPoliciesPriorities",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"brandingPolicyIds": {
"type": "array",
"items": {
"type": "string"
},
"description": " An ordered list of branding policy IDs that determines the priority order of how to apply the policies\n"
}
}
},
"examples": {
"application/json": {
"brandingPolicyIds": [
"123",
"456",
"789"
]
}
}
}
},
"summary": "Return the branding policy IDs of an organization in priority order",
"tags": [
"organizations",
"configure",
"brandingPolicies",
"priorities"
]
},
"put": {
"description": "Update the priority ordering of an organization's branding policies.",
"operationId": "updateOrganizationBrandingPoliciesPriorities",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationBrandingPoliciesPriorities",
"in": "body",
"schema": {
"type": "object",
"properties": {
"brandingPolicyIds": {
"type": "array",
"items": {
"type": "string"
},
"description": " An ordered list of branding policy IDs that determines the priority order of how to apply the policies\n"
}
},
"example": {
"brandingPolicyIds": [
"123",
"456",
"789"
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"brandingPolicyIds": {
"type": "array",
"items": {
"type": "string"
},
"description": " An ordered list of branding policy IDs that determines the priority order of how to apply the policies\n"
}
}
},
"examples": {
"application/json": {
"brandingPolicyIds": [
"123",
"456",
"789"
]
}
}
}
},
"summary": "Update the priority ordering of an organization's branding policies.",
"tags": [
"organizations",
"configure",
"brandingPolicies",
"priorities"
]
}
},
"/organizations/{organizationId}/brandingPolicies/{brandingPolicyId}": {
"get": {
"description": "Return a branding policy",
"operationId": "getOrganizationBrandingPolicy",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "brandingPolicyId",
"in": "path",
"description": "Branding policy ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"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."
}
}
},
"examples": {
"application/json": {
"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": "Some custom HTML content ",
"universalSearchKnowledgeBaseSearch": "hide",
"ciscoMerakiProductDocumentation": "show",
"supportContactInfo": "show",
"newFeaturesSubtab": "show",
"firewallInfoSubtab": "hide",
"apiDocsSubtab": "default or inherit",
"hardwareReplacementsSubtab": "hide",
"smForums": "hide",
"helpWidget": "hide"
},
"customLogo": {
"enabled": true,
"image": {
"preview": {
"url": "https://meraki-na.s3.amazonaws.com/org-assets/my-image.png",
"expiresAt": "2022-04-06T06:19:27-07:00"
}
}
}
}
}
}
},
"summary": "Return a branding policy",
"tags": [
"organizations",
"configure",
"brandingPolicies"
]
},
"put": {
"description": "Update a branding policy",
"operationId": "updateOrganizationBrandingPolicy",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "brandingPolicyId",
"in": "path",
"description": "Branding policy ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationBrandingPolicy",
"in": "body",
"schema": {
"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": {
"contents": {
"type": "string",
"format": "byte",
"description": "The file contents (a base 64 encoded string) of your new logo."
},
"format": {
"type": "string",
"enum": [
"gif",
"jpg",
"png"
],
"description": "The format of the encoded contents. Supported formats are 'png', 'gif', and jpg'."
}
},
"description": "Properties for setting 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": "Some custom HTML content ",
"universalSearchKnowledgeBaseSearch": "hide",
"ciscoMerakiProductDocumentation": "show",
"supportContactInfo": "show",
"newFeaturesSubtab": "show",
"firewallInfoSubtab": "hide",
"apiDocsSubtab": "default or inherit",
"hardwareReplacementsSubtab": "hide",
"smForums": "hide",
"helpWidget": "hide"
},
"customLogo": {
"enabled": true,
"image": {
"contents": "Hyperg26C8F4h8CvcoUqpA==",
"format": "jpg"
}
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"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."
}
}
},
"examples": {
"application/json": {
"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": "Some custom HTML content ",
"universalSearchKnowledgeBaseSearch": "hide",
"ciscoMerakiProductDocumentation": "show",
"supportContactInfo": "show",
"newFeaturesSubtab": "show",
"firewallInfoSubtab": "hide",
"apiDocsSubtab": "default or inherit",
"hardwareReplacementsSubtab": "hide",
"smForums": "hide",
"helpWidget": "hide"
},
"customLogo": {
"enabled": true,
"image": {
"preview": {
"url": "https://meraki-na.s3.amazonaws.com/org-assets/my-image.png",
"expiresAt": "2022-04-06T06:19:27-07:00"
}
}
}
}
}
}
},
"summary": "Update a branding policy",
"tags": [
"organizations",
"configure",
"brandingPolicies"
]
},
"delete": {
"description": "Delete a branding policy",
"operationId": "deleteOrganizationBrandingPolicy",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "brandingPolicyId",
"in": "path",
"description": "Branding policy ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a branding policy",
"tags": [
"organizations",
"configure",
"brandingPolicies"
]
}
},
"/organizations/{organizationId}/camera/boundaries/areas/byDevice": {
"get": {
"description": "Returns all configured area boundaries of cameras",
"operationId": "getOrganizationCameraBoundariesAreasByDevice",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "A list of serial numbers. The returned cameras will be filtered to only include these serials."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "The network id of the camera"
},
"serial": {
"type": "string",
"description": "The serial number of the camera"
},
"boundaries": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The area boundary id"
},
"type": {
"type": "string",
"description": "The area boundary type"
},
"name": {
"type": "string",
"description": "The area boundary name"
},
"vertices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"x": {
"type": "number",
"format": "float",
"description": "The vertex x coordinate"
},
"y": {
"type": "number",
"format": "float",
"description": "The vertex y coordinate"
}
}
},
"description": "The area boundary vertices"
}
},
"description": "Configured area boundaries of the camera"
}
}
}
},
"examples": {
"application/json": [
{
"networkId": "N_24329156",
"serial": "Q234-ABCD-5678",
"boundaries": {
"id": "k74272e",
"type": "area",
"name": "myarea",
"vertices": [
{
"x": 0.1,
"y": 0.1
}
]
}
}
]
}
}
},
"summary": "Returns all configured area boundaries of cameras",
"tags": [
"camera",
"configure",
"boundaries",
"areas",
"byDevice"
]
}
},
"/organizations/{organizationId}/camera/boundaries/lines/byDevice": {
"get": {
"description": "Returns all configured crossingline boundaries of cameras",
"operationId": "getOrganizationCameraBoundariesLinesByDevice",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "A list of serial numbers. The returned cameras will be filtered to only include these serials."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "The network id of the camera"
},
"serial": {
"type": "string",
"description": "The serial number of the camera"
},
"boundaries": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The line boundary id"
},
"type": {
"type": "string",
"description": "The line boundary type"
},
"name": {
"type": "string",
"description": "The line boundary name"
},
"vertices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"x": {
"type": "number",
"format": "float",
"description": "The vertex x coordinate"
},
"y": {
"type": "number",
"format": "float",
"description": "The vertex y coordinate"
}
}
},
"description": "The line boundary vertices"
},
"directionVertex": {
"type": "object",
"properties": {
"x": {
"type": "number",
"format": "float",
"description": "The vertex x coordinate"
},
"y": {
"type": "number",
"format": "float",
"description": "The vertex y coordinate"
}
},
"description": "The line boundary crossing direction vertex"
}
},
"description": "Configured line boundaries of the camera"
}
}
}
},
"examples": {
"application/json": [
{
"networkId": "N_24329156",
"serial": "Q234-ABCD-5678",
"boundaries": {
"id": "k74272e",
"type": "line",
"name": "mycline",
"vertices": [
{
"x": 0.375,
"y": 0.5
}
],
"directionVertex": {
"x": 0.5,
"y": 0.54
}
}
}
]
}
}
},
"summary": "Returns all configured crossingline boundaries of cameras",
"tags": [
"camera",
"configure",
"boundaries",
"lines",
"byDevice"
]
}
},
"/organizations/{organizationId}/camera/customAnalytics/artifacts": {
"get": {
"description": "List Custom Analytics Artifacts",
"operationId": "getOrganizationCameraCustomAnalyticsArtifacts",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"artifactId": {
"type": "string",
"description": "Custom analytics artifact ID"
},
"organizationId": {
"type": "string",
"description": "Organization ID"
},
"name": {
"type": "string",
"description": "Custom analytics artifact name"
},
"status": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Status type"
},
"message": {
"type": "string",
"description": "Status message"
}
},
"description": "Custom analytics artifact status"
}
}
}
},
"examples": {
"application/json": [
{
"artifactId": "1",
"organizationId": "2",
"name": "example",
"status": {
"type": "pending",
"message": "sample message"
}
}
]
}
}
},
"summary": "List Custom Analytics Artifacts",
"tags": [
"camera",
"configure",
"customAnalytics",
"artifacts"
]
},
"post": {
"description": "Create custom analytics artifact. Returns an artifact upload URL with expiry time. Upload the artifact file with a put request to the returned upload URL before its expiry.",
"operationId": "createOrganizationCameraCustomAnalyticsArtifact",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationCameraCustomAnalyticsArtifact",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Unique name of the artifact"
}
},
"example": {
"name": "example"
}
}
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"artifactId": {
"type": "string",
"description": "Custom analytics artifact ID"
},
"organizationId": {
"type": "string",
"description": "Organization ID"
},
"name": {
"type": "string",
"description": "Custom analytics artifact name"
},
"status": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Status type"
},
"message": {
"type": "string",
"description": "Status message"
}
},
"description": "Custom analytics artifact status"
},
"uploadId": {
"type": "string",
"description": "Upload ID"
},
"uploadUrl": {
"type": "string",
"description": "Upload URL"
},
"uploadUrlExpiry": {
"type": "string",
"format": "date-time",
"description": "Upload URL expiry time"
}
}
},
"examples": {
"application/json": {
"artifactId": "1",
"organizationId": "2",
"name": "example",
"status": {
"type": "pending",
"message": "sample message"
},
"uploadId": "00112233445566778899aabbccddeeff",
"uploadUrl": "https://meraki_custom_cv_upload_url",
"uploadUrlExpiry": "2022-01-23T01:23:45.123456+00:00"
}
}
}
},
"summary": "Create custom analytics artifact",
"tags": [
"camera",
"configure",
"customAnalytics",
"artifacts"
]
}
},
"/organizations/{organizationId}/camera/customAnalytics/artifacts/{artifactId}": {
"get": {
"description": "Get Custom Analytics Artifact",
"operationId": "getOrganizationCameraCustomAnalyticsArtifact",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "artifactId",
"in": "path",
"description": "Artifact ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"artifactId": {
"type": "string",
"description": "Custom analytics artifact ID"
},
"organizationId": {
"type": "string",
"description": "Organization ID"
},
"name": {
"type": "string",
"description": "Custom analytics artifact name"
},
"status": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Status type"
},
"message": {
"type": "string",
"description": "Status message"
}
},
"description": "Custom analytics artifact status"
}
}
},
"examples": {
"application/json": {
"artifactId": "1",
"organizationId": "2",
"name": "example",
"status": {
"type": "pending",
"message": "sample message"
}
}
}
}
},
"summary": "Get Custom Analytics Artifact",
"tags": [
"camera",
"configure",
"customAnalytics",
"artifacts"
]
},
"delete": {
"description": "Delete Custom Analytics Artifact",
"operationId": "deleteOrganizationCameraCustomAnalyticsArtifact",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "artifactId",
"in": "path",
"description": "Artifact ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete Custom Analytics Artifact",
"tags": [
"camera",
"configure",
"customAnalytics",
"artifacts"
]
}
},
"/organizations/{organizationId}/camera/detections/history/byBoundary/byInterval": {
"get": {
"description": "Returns analytics data for timespans",
"operationId": "getOrganizationCameraDetectionsHistoryByBoundaryByInterval",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "boundaryIds",
"in": "query",
"required": true,
"description": "A list of boundary ids. The returned cameras will be filtered to only include these ids."
},
{
"type": "integer",
"name": "duration",
"in": "query",
"description": "The minimum time, in seconds, that the person or car remains in the area to be counted. Defaults to boundary configuration or 60."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 1 - 1000. Defaults to 1000."
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"person",
"vehicle"
]
},
"name": "boundaryTypes",
"in": "query",
"description": "The detection types. Defaults to 'person'."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"boundaryId": {
"type": "string",
"description": "The boundary id"
},
"type": {
"type": "string",
"description": "The boundary type"
},
"results": {
"type": "object",
"properties": {
"startTime": {
"type": "string",
"description": "The period start time"
},
"endTime": {
"type": "string",
"description": "The period end time"
},
"objectType": {
"type": "string",
"description": "The detection type"
},
"in": {
"type": "integer",
"description": "The number of detections entered"
},
"out": {
"type": "integer",
"description": "The number of detections exited"
}
},
"description": "The analytics data"
}
}
}
},
"examples": {
"application/json": [
{
"boundaryId": "k74272e",
"type": "line",
"results": {
"startTime": "2018-02-11T00:00:00Z",
"endTime": "2018-05-12T00:00:00Z",
"objectType": "person",
"in": 22,
"out": 13
}
}
]
}
}
},
"summary": "Returns analytics data for timespans",
"tags": [
"camera",
"configure",
"detections",
"history",
"byBoundary",
"byInterval"
]
}
},
"/organizations/{organizationId}/camera/onboarding/statuses": {
"get": {
"description": "Fetch onboarding status of cameras",
"operationId": "getOrganizationCameraOnboardingStatuses",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "A list of serial numbers. The returned cameras will be filtered to only include these serials."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "A list of network IDs. The returned cameras will be filtered to only include these networks."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"networkId": "N_12345",
"serial": "Q2AB-CDEF-GHIJ",
"status": "pending onboarding",
"updatedAt": "2021/03/24 15:23:47.101068 -0700"
}
]
}
}
},
"summary": "Fetch onboarding status of cameras",
"tags": [
"camera",
"configure",
"onboarding",
"statuses"
]
},
"put": {
"description": "Notify that credential handoff to camera has completed",
"operationId": "updateOrganizationCameraOnboardingStatuses",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationCameraOnboardingStatuses",
"in": "body",
"schema": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Serial of camera"
},
"wirelessCredentialsSent": {
"type": "boolean",
"description": "Note whether credentials were sent successfully"
}
},
"example": {
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"success": true
}
}
}
},
"summary": "Notify that credential handoff to camera has completed",
"tags": [
"camera",
"configure",
"onboarding",
"statuses"
]
}
},
"/organizations/{organizationId}/camera/permissions": {
"get": {
"description": "List the permissions scopes for this organization",
"operationId": "getOrganizationCameraPermissions",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Permission scope id"
},
"name": {
"type": "string",
"description": "Name of permission scope"
},
"level": {
"type": "string",
"description": "Permission scope level"
}
}
}
},
"examples": {
"application/json": [
{
"id": "1234",
"name": "camera_video",
"level": "live_video"
}
]
}
}
},
"summary": "List the permissions scopes for this organization",
"tags": [
"camera",
"configure",
"permissions"
]
}
},
"/organizations/{organizationId}/camera/permissions/{permissionScopeId}": {
"get": {
"description": "Retrieve a single permission scope",
"operationId": "getOrganizationCameraPermission",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "permissionScopeId",
"in": "path",
"description": "Permission scope ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Permission scope id"
},
"name": {
"type": "string",
"description": "Name of permission scope"
},
"level": {
"type": "string",
"description": "Permission scope level"
}
}
},
"examples": {
"application/json": {
"id": "1234",
"name": "camera_video",
"level": "live_video"
}
}
}
},
"summary": "Retrieve a single permission scope",
"tags": [
"camera",
"configure",
"permissions"
]
}
},
"/organizations/{organizationId}/camera/roles": {
"get": {
"description": "List all the roles in this organization",
"operationId": "getOrganizationCameraRoles",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object"
}
},
"examples": {
"application/json": [
{
"name": "Security_Guard",
"appliedOnDevices": [
{
"tag": "reception-desk",
"id": "",
"permissionScopeId": "1",
"permissionScope": "camera-video",
"permissionLevel": "view_and_export"
}
],
"appliedOnNetworks": [
{
"tag": "",
"id": "2568",
"permissionScopeId": "2",
"permissionScope": "camera-video",
"permissionLevel": "view"
}
],
"appliedOrgWide": [
{
"tag": "building-a",
"permissionScopeId": "2",
"permissionScope": "camera_video",
"permissionLevel": "view_live"
}
]
}
]
}
}
},
"summary": "List all the roles in this organization",
"tags": [
"camera",
"configure",
"roles"
]
},
"post": {
"description": "Creates new role for this organization.",
"operationId": "createOrganizationCameraRole",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationCameraRole",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the new role. Must be unique. This parameter is required."
},
"appliedOnDevices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "Device tag."
},
"id": {
"type": "string",
"description": "Device id."
},
"inNetworksWithTag": {
"type": "string",
"description": "Network tag scope"
},
"inNetworksWithId": {
"type": "string",
"description": "Network id scope"
},
"permissionScopeId": {
"type": "string",
"description": "Permission scope id"
}
},
"required": [
"permissionScopeId"
]
},
"description": "Device tag on which this specified permission is applied."
},
"appliedOnNetworks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "Network tag"
},
"id": {
"type": "string",
"description": "Network id."
},
"permissionScopeId": {
"type": "string",
"description": "Permission scope id"
}
},
"required": [
"permissionScopeId"
]
},
"description": "Network tag on which this specified permission is applied."
},
"appliedOrgWide": {
"type": "array",
"items": {
"type": "object",
"properties": {
"permissionScopeId": {
"type": "string",
"description": "Permission scope id"
}
},
"required": [
"permissionScopeId"
]
},
"description": "Permissions to be applied org wide."
}
},
"example": {
"name": "Security_Guard",
"appliedOnDevices": [
{
"tag": "reception-desk",
"id": "",
"permissionScopeId": "1"
}
],
"appliedOnNetworks": [
{
"tag": "building-a",
"id": "",
"permissionScopeId": "2"
}
],
"appliedOrgWide": [
{
"tag": "building-a",
"id": "",
"permissionScopeId": "2"
}
]
},
"required": [
"name"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"name": "Security_Guard",
"appliedOnDevices": [
{
"tag": "reception-desk",
"id": "",
"permissionScopeId": "1",
"permissionScope": "camera-video",
"permissionLevel": "view_and_export"
}
],
"appliedOnNetworks": [
{
"tag": "",
"id": "2568",
"permissionScopeId": "2",
"permissionScope": "camera-video",
"permissionLevel": "view"
}
],
"appliedOrgWide": [
{
"tag": "building-a",
"permissionScopeId": "2",
"permissionScope": "camera_video",
"permissionLevel": "view_live"
}
]
}
}
}
},
"summary": "Creates new role for this organization.",
"tags": [
"camera",
"configure",
"roles"
]
}
},
"/organizations/{organizationId}/camera/roles/{roleId}": {
"get": {
"description": "Retrieve a single role.",
"operationId": "getOrganizationCameraRole",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "roleId",
"in": "path",
"description": "Role ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"name": "Security_Guard",
"appliedOnDevices": [
{
"tag": "reception-desk",
"id": "",
"permissionScopeId": "1",
"permissionScope": "camera-video",
"permissionLevel": "view_and_export"
}
],
"appliedOnNetworks": [
{
"tag": "",
"id": "2568",
"permissionScopeId": "2",
"permissionScope": "camera-video",
"permissionLevel": "view"
}
],
"appliedOrgWide": [
{
"tag": "building-a",
"permissionScopeId": "2",
"permissionScope": "camera_video",
"permissionLevel": "view_live"
}
]
}
}
}
},
"summary": "Retrieve a single role.",
"tags": [
"camera",
"configure",
"roles"
]
},
"delete": {
"description": "Delete an existing role for this organization.",
"operationId": "deleteOrganizationCameraRole",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "roleId",
"in": "path",
"description": "Role ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete an existing role for this organization.",
"tags": [
"camera",
"configure",
"roles"
]
},
"put": {
"description": "Update an existing role in this organization.",
"operationId": "updateOrganizationCameraRole",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "roleId",
"in": "path",
"description": "Role ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationCameraRole",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the new role. Must be unique."
},
"appliedOnDevices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "Device tag."
},
"id": {
"type": "string",
"description": "Device id."
},
"inNetworksWithTag": {
"type": "string",
"description": "Network tag scope"
},
"inNetworksWithId": {
"type": "string",
"description": "Network id scope"
},
"permissionScopeId": {
"type": "string",
"description": "Permission scope id"
}
},
"required": [
"permissionScopeId"
]
},
"description": "Device tag on which this specified permission is applied."
},
"appliedOnNetworks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "Network tag"
},
"id": {
"type": "string",
"description": "Network id"
},
"permissionScopeId": {
"type": "string",
"description": "Permission scope id"
}
},
"required": [
"permissionScopeId"
]
},
"description": "Network tag on which this specified permission is applied."
},
"appliedOrgWide": {
"type": "array",
"items": {
"type": "object",
"properties": {
"permissionScopeId": {
"type": "string",
"description": "Permission scope id"
}
},
"required": [
"permissionScopeId"
]
},
"description": "Permissions to be applied org wide."
}
},
"example": {
"name": "Security_Guard",
"appliedOnDevices": [
{
"tag": "reception-desk",
"id": "",
"permissionScopeId": "1"
}
],
"appliedOnNetworks": [
{
"tag": "building-a",
"id": "",
"permissionScopeId": "2"
}
],
"appliedOrgWide": [
{
"tag": "building-a",
"id": "",
"permissionScopeId": "2"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"name": "Security_Guard",
"appliedOnDevices": [
{
"tag": "reception-desk",
"id": "",
"permissionScopeId": "1",
"permissionScope": "camera-video",
"permissionLevel": "view_and_export"
}
],
"appliedOnNetworks": [
{
"tag": "",
"id": "2568",
"permissionScopeId": "2",
"permissionScope": "camera-video",
"permissionLevel": "view"
}
],
"appliedOrgWide": [
{
"tag": "building-a",
"permissionScopeId": "2",
"permissionScope": "camera_video",
"permissionLevel": "view_live"
}
]
}
}
}
},
"summary": "Update an existing role in this organization.",
"tags": [
"camera",
"configure",
"roles"
]
}
},
"/organizations/{organizationId}/cellularGateway/uplink/statuses": {
"get": {
"description": "List the uplink status of every Meraki MG cellular gateway in the organization",
"operationId": "getOrganizationCellularGatewayUplinkStatuses",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "A list of network IDs. The returned devices will be filtered to only include these networks."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "A list of serial numbers. The returned devices will be filtered to only include these serials."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "iccids",
"in": "query",
"description": "A list of ICCIDs. The returned devices will be filtered to only include these ICCIDs."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "Network Id"
},
"serial": {
"type": "string",
"description": "Serial number of the device"
},
"model": {
"type": "string",
"description": "Device model"
},
"lastReportedAt": {
"type": "string",
"format": "date-time",
"description": "Last reported time for the device"
},
"uplinks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"interface": {
"type": "string",
"description": "Uplink interface"
},
"status": {
"type": "string",
"description": "Uplink status"
},
"ip": {
"type": "string",
"description": "Uplink IP"
},
"provider": {
"type": "string",
"description": "Network Provider"
},
"publicIp": {
"type": "string",
"description": "Public IP"
},
"model": {
"type": "string",
"description": "Uplink model"
},
"signalStat": {
"type": "object",
"properties": {
"rsrp": {
"type": "string",
"description": "Reference Signal Received Power"
},
"rsrq": {
"type": "string",
"description": "Reference Signal Received Quality"
}
},
"description": "Tower Signal Status"
},
"connectionType": {
"type": "string",
"description": "Connection Type"
},
"apn": {
"type": "string",
"description": "Access Point Name"
},
"gateway": {
"type": "string",
"description": "Gateway IP"
},
"dns1": {
"type": "string",
"description": "Primary DNS IP"
},
"dns2": {
"type": "string",
"description": "Secondary DNS IP"
},
"signalType": {
"type": "string",
"description": "Signal Type"
},
"iccid": {
"type": "string",
"description": "Integrated Circuit Card Identification Number"
}
}
},
"description": "Uplinks info"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"networkId": "N_24329156",
"serial": "Q234-ABCD-5678",
"model": "MG21",
"lastReportedAt": "2018-02-11T00:00:00Z",
"uplinks": [
{
"interface": "cellular",
"status": "ready",
"ip": "1.2.3.4",
"provider": "at&t",
"publicIp": "123.123.123.1",
"model": "integrated",
"signalStat": {
"rsrp": "-120",
"rsrq": "-13"
},
"connectionType": "4g",
"apn": "internet",
"gateway": "100.100.100.100",
"dns1": "111.111.111.111",
"dns2": "222.222.222.222",
"signalType": "4G",
"iccid": "123456789"
}
]
}
]
}
}
},
"summary": "List the uplink status of every Meraki MG cellular gateway in the organization",
"tags": [
"cellularGateway",
"monitor",
"uplink",
"statuses"
]
}
},
"/organizations/{organizationId}/certificates": {
"get": {
"description": "Gets all or specific certificates for an organization",
"operationId": "getOrganizationCertificates",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "certificateIds",
"in": "query",
"description": "List of ids for specific certificate retrieval"
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"cloud_nac",
"mr",
"system_manager"
]
},
"name": "certManagedBy",
"in": "query",
"description": "List of cert managed by types"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"certificateId": {
"type": "string",
"description": "ID of certificate in trusted_certificates ID table"
},
"description": {
"type": "string",
"description": "Description of Certificate"
},
"parentCertificateId": {
"type": "string",
"description": "ID of certificate's parent in trusted_certificates ID table"
},
"source": {
"type": "string",
"enum": [
"NAC",
"Systems Manager"
],
"description": "Certificate Manager"
},
"fields": {
"type": "object",
"properties": {
"validity": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "Start date of Certificate Validity"
},
"end": {
"type": "string",
"description": "End date of Certificate Validity"
}
},
"description": "Validity dates of Certificate"
},
"subject": {
"type": "object",
"properties": {
"commonName": {
"type": "string",
"description": "Common Name of Certificate"
},
"organizationalUnit": {
"type": "string",
"description": "Organizational Unit of Certificate"
},
"organization": {
"type": "string",
"description": "Organization of Certificate"
},
"locality": {
"type": "string",
"description": "Locality of Certificate"
},
"state": {
"type": "string",
"description": "State Or Province Name of Certificate"
},
"country": {
"type": "string",
"description": "Country Name of Certificate"
}
},
"description": "Components of Certificate"
},
"subjectAlternativeName": {
"type": "string",
"description": "Alternative name of Certificate"
},
"issuer": {
"type": "object",
"properties": {
"commonName": {
"type": "string",
"description": "Common Name of Certificate's Issuer"
},
"organizationalUnit": {
"type": "string",
"description": "Organization of Certificate's Issuer"
},
"organization": {
"type": "string",
"description": "Organization of Certificate's Issuer"
},
"locality": {
"type": "string",
"description": "Locality of Certificate's Issuer"
},
"state": {
"type": "string",
"description": "State or Province Name of Certificate's Issuer"
},
"country": {
"type": "string",
"description": "Country Name of Certificate's Issuer"
}
},
"description": "Components of Certificate's Issuer"
},
"serial": {
"type": "string",
"description": "Certificate Serial Number"
},
"policy": {
"type": "string",
"description": "Certificate Policy String"
},
"version": {
"type": "string",
"description": "Certificate Version"
},
"publicKeyAlgorithm": {
"type": "string",
"description": "Certificate's public key algorithm"
},
"keyUsage": {
"type": "object",
"properties": {
"isCritical": {
"type": "boolean",
"description": "Is key usage critical"
},
"data": {
"type": "array",
"items": {
"type": "string"
},
"description": "Key usage data"
}
},
"description": "Certificate's key usage"
},
"hashes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"algorithm": {
"type": "string",
"description": "Hash Algorithm of one of Certificate's hashes"
},
"hash": {
"type": "string",
"description": "Certificate's Hash Details"
}
}
},
"description": "Certificate Hash Information"
}
},
"description": "Components of Certificate"
}
}
},
"examples": {
"application/json": {
"certificateId": "1284392014819",
"description": "friendly description",
"parentCertificateId": "1284392014818",
"source": "NAC",
"fields": {
"validity": {
"start": "2022-09-01T12:00:00Z",
"end": "2022-10-01T12:00:00Z"
},
"subject": {
"commonName": "subjectRoot",
"organizationalUnit": "CloudNAC",
"organization": "Cisco Systems",
"locality": "Bangalore",
"state": "KA",
"country": "IN"
},
"subjectAlternativeName": "AAA Certificate Services Hidden Certificate",
"issuer": {
"commonName": "issuerRoot",
"organizationalUnit": "CloudNAC",
"organization": "Cisco Systems",
"locality": "Bangalore",
"state": "KA",
"country": "IN"
},
"serial": "7C 08 29 E8 CC",
"policy": "policy string here",
"version": "1.2.3.4",
"publicKeyAlgorithm": "RSA",
"keyUsage": {
"isCritical": false,
"data": [
"Digital Signature",
"Key Encipherment"
]
},
"hashes": [
{
"algorithm": "SHA1",
"hash": "hash text here"
}
]
}
}
}
}
},
"summary": "Gets all or specific certificates for an organization",
"tags": [
"organizations",
"configure",
"certificates"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/certificates/import": {
"post": {
"description": "Import certificate for this organization",
"operationId": "createOrganizationCertificatesImport",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationCertificatesImport",
"in": "body",
"schema": {
"type": "object",
"properties": {
"managedBy": {
"type": "string",
"enum": [
"mr",
"system_manager"
],
"description": "Certificate managed by type [system_manager, mr]"
},
"contents": {
"type": "string",
"description": "Certificate content in Base64 encoded string format"
},
"description": {
"type": "string",
"description": "Certificate description"
}
},
"example": {
"managedBy": "mr",
"contents": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS",
"description": "create certificate description"
},
"required": [
"managedBy",
"contents",
"description"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"certificateId": {
"type": "string",
"description": "ID of certificate in trusted_certificates ID table"
},
"description": {
"type": "string",
"description": "Description of Certificate"
},
"parentCertificateId": {
"type": "string",
"description": "ID of certificate's parent in trusted_certificates ID table"
},
"source": {
"type": "string",
"enum": [
"NAC",
"Systems Manager"
],
"description": "Certificate Manager"
},
"fields": {
"type": "object",
"properties": {
"validity": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "Start date of Certificate Validity"
},
"end": {
"type": "string",
"description": "End date of Certificate Validity"
}
},
"description": "Validity dates of Certificate"
},
"subject": {
"type": "object",
"properties": {
"commonName": {
"type": "string",
"description": "Common Name of Certificate"
},
"organizationalUnit": {
"type": "string",
"description": "Organizational Unit of Certificate"
},
"organization": {
"type": "string",
"description": "Organization of Certificate"
},
"locality": {
"type": "string",
"description": "Locality of Certificate"
},
"state": {
"type": "string",
"description": "State Or Province Name of Certificate"
},
"country": {
"type": "string",
"description": "Country Name of Certificate"
}
},
"description": "Components of Certificate"
},
"subjectAlternativeName": {
"type": "string",
"description": "Alternative name of Certificate"
},
"issuer": {
"type": "object",
"properties": {
"commonName": {
"type": "string",
"description": "Common Name of Certificate's Issuer"
},
"organizationalUnit": {
"type": "string",
"description": "Organization of Certificate's Issuer"
},
"organization": {
"type": "string",
"description": "Organization of Certificate's Issuer"
},
"locality": {
"type": "string",
"description": "Locality of Certificate's Issuer"
},
"state": {
"type": "string",
"description": "State or Province Name of Certificate's Issuer"
},
"country": {
"type": "string",
"description": "Country Name of Certificate's Issuer"
}
},
"description": "Components of Certificate's Issuer"
},
"serial": {
"type": "string",
"description": "Certificate Serial Number"
},
"policy": {
"type": "string",
"description": "Certificate Policy String"
},
"version": {
"type": "string",
"description": "Certificate Version"
},
"publicKeyAlgorithm": {
"type": "string",
"description": "Certificate's public key algorithm"
},
"keyUsage": {
"type": "object",
"properties": {
"isCritical": {
"type": "boolean",
"description": "Is key usage critical"
},
"data": {
"type": "array",
"items": {
"type": "string"
},
"description": "Key usage data"
}
},
"description": "Certificate's key usage"
},
"hashes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"algorithm": {
"type": "string",
"description": "Hash Algorithm of one of Certificate's hashes"
},
"hash": {
"type": "string",
"description": "Certificate's Hash Details"
}
}
},
"description": "Certificate Hash Information"
}
},
"description": "Components of Certificate"
}
}
},
"examples": {
"application/json": {
"certificateId": "1284392014819",
"description": "friendly description",
"parentCertificateId": "1284392014818",
"source": "NAC",
"fields": {
"validity": {
"start": "2022-09-01T12:00:00Z",
"end": "2022-10-01T12:00:00Z"
},
"subject": {
"commonName": "subjectRoot",
"organizationalUnit": "CloudNAC",
"organization": "Cisco Systems",
"locality": "Bangalore",
"state": "KA",
"country": "IN"
},
"subjectAlternativeName": "AAA Certificate Services Hidden Certificate",
"issuer": {
"commonName": "issuerRoot",
"organizationalUnit": "CloudNAC",
"organization": "Cisco Systems",
"locality": "Bangalore",
"state": "KA",
"country": "IN"
},
"serial": "7C 08 29 E8 CC",
"policy": "policy string here",
"version": "1.2.3.4",
"publicKeyAlgorithm": "RSA",
"keyUsage": {
"isCritical": false,
"data": [
"Digital Signature",
"Key Encipherment"
]
},
"hashes": [
{
"algorithm": "SHA1",
"hash": "hash text here"
}
]
}
}
}
}
},
"summary": "Import certificate for this organization",
"tags": [
"organizations",
"configure",
"certificates",
"import"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities": {
"get": {
"description": "Query for details on the organization's RADSEC device Certificate Authority certificates (CAs). The primary CA signs all the certificates that devices present when establishing a secure connection to RADIUS servers via RADSEC protocol. This API returns an array of the status of all of the CAs as well as their contents, if they've been generated. An organization will have at most one CA unless the CA is being rotated.",
"operationId": "getOrganizationCertificatesRadSecDeviceCertificateAuthorities",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"authorityId": {
"type": "string",
"description": "A unique identifier for a CA which can be used to fetch the status, update the status, and read the CRL for that CA. The id of a CA will be provided as part of the response once a CA is generated."
},
"status": {
"type": "string",
"enum": [
"generating",
"trusted",
"untrusted"
],
"description": "The status of the Certificate Authority - one of \"generating\", \"untrusted\" or \"trusted\"."
},
"contents": {
"type": "string",
"description": "The PEM encoded contents of the Certificate Authority - with newlines as \"\n\". Contents can be null, if the cert has not yet been generated."
}
}
}
},
"examples": {
"application/json": [
{
"authorityId": "1234",
"status": "trusted",
"contents": "-----BEGIN CERTIFICATE-----\nMIIDzDCCAragAwIBAgIUOd0ukLcjH43TfTHFG9qE0FtlMVgwCwYJKoZIhvcNAQEL\n...\numkqeYeO30g1uYvDuWLXVA==\n-----END CERTIFICATE-----\n"
}
]
}
}
},
"summary": "Query for details on the organization's RADSEC device Certificate Authority certificates (CAs)",
"tags": [
"organizations",
"configure",
"certificates",
"radSec",
"deviceCertificateAuthorities"
],
"x-release-stage": "beta"
},
"post": {
"description": "Create an organization's RADSEC device Certificate Authority (CA). Call this endpoint when turning on RADSEC in the firmware for the first time. Calling this endpoint starts an asynchronous process to generate the CA; call GET afterwards to retrieve the contents of the CA. Note this CA is generated and controlled by Meraki. Subsequent calls will not generate a new CA.",
"operationId": "createOrganizationCertificatesRadSecDeviceCertificateAuthority",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"authorityId": {
"type": "string",
"description": "A unique identifier for a CA which can be used to fetch the status, update the status, and read the CRL for that CA. The id of a CA will be provided as part of the response once a CA is generated."
},
"status": {
"type": "string",
"enum": [
"generating",
"trusted",
"untrusted"
],
"description": "The status of the Certificate Authority - one of \"generating\", \"untrusted\" or \"trusted\"."
},
"contents": {
"type": "string",
"description": "The PEM encoded contents of the Certificate Authority - with newlines as \"\n\". Contents can be null, if the cert has not yet been generated."
}
}
},
"examples": {
"application/json": {
"authorityId": "1234",
"status": "generating",
"contents": ""
}
}
}
},
"summary": "Create an organization's RADSEC device Certificate Authority (CA)",
"tags": [
"organizations",
"configure",
"certificates",
"radSec",
"deviceCertificateAuthorities"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities/{id}": {
"get": {
"description": "Query for details on an organization's RADSEC device Certificate Authority (CA) with the given id. This API returns the status of the CA as well as the contents of the CA, if it's been generated.",
"operationId": "getOrganizationCertificatesRadSecDeviceCertificateAuthority",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"authorityId": {
"type": "string",
"description": "A unique identifier for a CA which can be used to fetch the status, update the status, and read the CRL for that CA. The id of a CA will be provided as part of the response once a CA is generated."
},
"status": {
"type": "string",
"enum": [
"generating",
"trusted",
"untrusted"
],
"description": "The status of the Certificate Authority - one of \"generating\", \"untrusted\" or \"trusted\"."
},
"contents": {
"type": "string",
"description": "The PEM encoded contents of the Certificate Authority - with newlines as \"\n\". Contents can be null, if the cert has not yet been generated."
}
}
},
"examples": {
"application/json": {
"authorityId": "1234",
"status": "trusted",
"contents": "-----BEGIN CERTIFICATE-----\nMIIDzDCCAragAwIBAgIUOd0ukLcjH43TfTHFG9qE0FtlMVgwCwYJKoZIhvcNAQEL\n...\numkqeYeO30g1uYvDuWLXVA==\n-----END CERTIFICATE-----\n"
}
}
}
},
"summary": "Query for details on an organization's RADSEC device Certificate Authority (CA) with the given id",
"tags": [
"organizations",
"configure",
"certificates",
"radSec",
"deviceCertificateAuthorities"
],
"x-release-stage": "beta"
},
"put": {
"description": "Update an organization's RADSEC device Certificate Authority (CA) state. Note this CA is generated and controlled by Meraki. Call this endpoint to update the state to \"trusted\", at which point Meraki will generate device certificates. \"trusted\" means the CA is placed on your RADSEC server(s) and devices establishing a secure connection using certs signed by this CA will pass verification.",
"operationId": "updateOrganizationCertificatesRadSecDeviceCertificateAuthority",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationCertificatesRadSecDeviceCertificateAuthority",
"in": "body",
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "The \"status\" to update the Certificate Authority to. Only valid option is \"trusted\"."
}
},
"example": {
"status": "trusted"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"authorityId": {
"type": "string",
"description": "A unique identifier for a CA which can be used to fetch the status, update the status, and read the CRL for that CA. The id of a CA will be provided as part of the response once a CA is generated."
},
"status": {
"type": "string",
"enum": [
"generating",
"trusted",
"untrusted"
],
"description": "The status of the Certificate Authority - one of \"generating\", \"untrusted\" or \"trusted\"."
},
"contents": {
"type": "string",
"description": "The PEM encoded contents of the Certificate Authority - with newlines as \"\n\". Contents can be null, if the cert has not yet been generated."
}
}
},
"examples": {
"application/json": {
"authorityId": "1234",
"status": "trusted",
"contents": "-----BEGIN CERTIFICATE-----\nMIIDzDCCAragAwIBAgIUOd0ukLcjH43TfTHFG9qE0FtlMVgwCwYJKoZIhvcNAQEL\n...\numkqeYeO30g1uYvDuWLXVA==\n-----END CERTIFICATE-----\n"
}
}
}
},
"summary": "Update an organization's RADSEC device Certificate Authority (CA) state",
"tags": [
"organizations",
"configure",
"certificates",
"radSec",
"deviceCertificateAuthorities"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities/{id}/revocationList": {
"get": {
"description": "Query for certificate revocation list (CRL) for the organization's RADSEC device Certificate Authority (CA) with the given id.",
"operationId": "getOrganizationCertificatesRadSecDeviceCertificateAuthorityRevocationList",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"crl": {
"type": "string",
"description": "The PEM encoded contents of the CA's certificate revocation list (full CRL) - with newlines as \"\n\"."
}
}
},
"examples": {
"application/json": {
"crl": "-----BEGIN X509 CRL-----\nMIICVjCCAj8CAQEwQQD\n...\n-----END X509 CRL-----\n"
}
}
}
},
"summary": "Query for certificate revocation list (CRL) for the organization's RADSEC device Certificate Authority (CA) with the given id.",
"tags": [
"organizations",
"configure",
"certificates",
"radSec",
"deviceCertificateAuthorities",
"revocationList"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities/{id}/revocationList/deltas": {
"get": {
"description": "Query for all delta certificate revocation list (CRL) for the organization's RADSEC device Certificate Authority (CA) with the given id.",
"operationId": "getOrganizationCertificatesRadSecDeviceCertificateAuthorityRevocationListDeltas",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"deltaCrls": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array containing the PEM encoded contents of a CA's delta certificate revocation list (CRL) - with newlines as \"\n\". This array delta CRLs only"
}
}
},
"examples": {
"application/json": {
"deltaCrls": [
"-----BEGIN X509 CRL-----\nMIICVjCCAj8CAQEwQQD\n...\n-----END X509 CRL-----\n",
"-----BEGIN X509 CRL-----\nPil0f9yaXcNbMUmaGlV\n...\n-----END X509 CRL-----\n",
"-----BEGIN X509 CRL-----\n8G2kAJf816ARjULLwz1\n...\n-----END X509 CRL-----\n",
"-----BEGIN X509 CRL-----\nnUxCohSdUMzAKBgNVHR\n...\n-----END X509 CRL-----\n"
]
}
}
}
},
"summary": "Query for all delta certificate revocation list (CRL) for the organization's RADSEC device Certificate Authority (CA) with the given id.",
"tags": [
"organizations",
"configure",
"certificates",
"radSec",
"deviceCertificateAuthorities",
"revocationList",
"deltas"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/certificates/{certificateId}": {
"delete": {
"description": "Delete a certificate for an organization",
"operationId": "deleteOrganizationCertificate",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "certificateId",
"in": "path",
"description": "Certificate ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a certificate for an organization",
"tags": [
"organizations",
"configure",
"certificates"
],
"x-release-stage": "beta"
},
"put": {
"description": "Update a certificate's description for an organization",
"operationId": "updateOrganizationCertificate",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "certificateId",
"in": "path",
"description": "Certificate ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationCertificate",
"in": "body",
"schema": {
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "Description of a certificate that already exist in your org"
}
},
"example": {
"description": "This is a certificate use for authentication."
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"certificateId": {
"type": "string",
"description": "ID of certificate in trusted_certificates ID table"
},
"description": {
"type": "string",
"description": "Description of Certificate"
},
"parentCertificateId": {
"type": "string",
"description": "ID of certificate's parent in trusted_certificates ID table"
},
"source": {
"type": "string",
"enum": [
"NAC",
"Systems Manager"
],
"description": "Certificate Manager"
},
"fields": {
"type": "object",
"properties": {
"validity": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "Start date of Certificate Validity"
},
"end": {
"type": "string",
"description": "End date of Certificate Validity"
}
},
"description": "Validity dates of Certificate"
},
"subject": {
"type": "object",
"properties": {
"commonName": {
"type": "string",
"description": "Common Name of Certificate"
},
"organizationalUnit": {
"type": "string",
"description": "Organizational Unit of Certificate"
},
"organization": {
"type": "string",
"description": "Organization of Certificate"
},
"locality": {
"type": "string",
"description": "Locality of Certificate"
},
"state": {
"type": "string",
"description": "State Or Province Name of Certificate"
},
"country": {
"type": "string",
"description": "Country Name of Certificate"
}
},
"description": "Components of Certificate"
},
"subjectAlternativeName": {
"type": "string",
"description": "Alternative name of Certificate"
},
"issuer": {
"type": "object",
"properties": {
"commonName": {
"type": "string",
"description": "Common Name of Certificate's Issuer"
},
"organizationalUnit": {
"type": "string",
"description": "Organization of Certificate's Issuer"
},
"organization": {
"type": "string",
"description": "Organization of Certificate's Issuer"
},
"locality": {
"type": "string",
"description": "Locality of Certificate's Issuer"
},
"state": {
"type": "string",
"description": "State or Province Name of Certificate's Issuer"
},
"country": {
"type": "string",
"description": "Country Name of Certificate's Issuer"
}
},
"description": "Components of Certificate's Issuer"
},
"serial": {
"type": "string",
"description": "Certificate Serial Number"
},
"policy": {
"type": "string",
"description": "Certificate Policy String"
},
"version": {
"type": "string",
"description": "Certificate Version"
},
"publicKeyAlgorithm": {
"type": "string",
"description": "Certificate's public key algorithm"
},
"keyUsage": {
"type": "object",
"properties": {
"isCritical": {
"type": "boolean",
"description": "Is key usage critical"
},
"data": {
"type": "array",
"items": {
"type": "string"
},
"description": "Key usage data"
}
},
"description": "Certificate's key usage"
},
"hashes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"algorithm": {
"type": "string",
"description": "Hash Algorithm of one of Certificate's hashes"
},
"hash": {
"type": "string",
"description": "Certificate's Hash Details"
}
}
},
"description": "Certificate Hash Information"
}
},
"description": "Components of Certificate"
}
}
},
"examples": {
"application/json": {
"certificateId": "1284392014819",
"description": "friendly description",
"parentCertificateId": "1284392014818",
"source": "NAC",
"fields": {
"validity": {
"start": "2022-09-01T12:00:00Z",
"end": "2022-10-01T12:00:00Z"
},
"subject": {
"commonName": "subjectRoot",
"organizationalUnit": "CloudNAC",
"organization": "Cisco Systems",
"locality": "Bangalore",
"state": "KA",
"country": "IN"
},
"subjectAlternativeName": "AAA Certificate Services Hidden Certificate",
"issuer": {
"commonName": "issuerRoot",
"organizationalUnit": "CloudNAC",
"organization": "Cisco Systems",
"locality": "Bangalore",
"state": "KA",
"country": "IN"
},
"serial": "7C 08 29 E8 CC",
"policy": "policy string here",
"version": "1.2.3.4",
"publicKeyAlgorithm": "RSA",
"keyUsage": {
"isCritical": false,
"data": [
"Digital Signature",
"Key Encipherment"
]
},
"hashes": [
{
"algorithm": "SHA1",
"hash": "hash text here"
}
]
}
}
}
}
},
"summary": "Update a certificate's description for an organization",
"tags": [
"organizations",
"configure",
"certificates"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/certificates/{certificateId}/contents": {
"get": {
"description": "Download the trusted certificate by certificate id.",
"operationId": "getOrganizationCertificateContents",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "certificateId",
"in": "path",
"description": "Certificate ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "chainId",
"in": "query",
"description": "chainId that represent which certificate chain is being requested"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"contents": {
"type": "string",
"description": "Base 64 cert(s)"
}
}
},
"examples": {
"application/json": {
"contents": "-----BEGIN CERTIFICATE-----MIIHvjCCBqagAwIBAgIQB4CbtQD3es3UQ988CCKGPjANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMSkwJwYDVQQDEyBEaWdpQ2VydCBUTFMgUlNBIFNIQTI1NiAyMDIwIENBMTAeFw0yMjA4MTAwMDAwMDBaFw0yMzA4MDkyMzU5NTlaMG4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMRMwEQYDVQQKEwpNZXJha2kgTExDMR0wGwYDVQQDExRyYWRpdXMuZGV2LmlrYXJlbS5pbzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANSxcK8g9J3nRwDqNurYbXDieo5vHw5wWO4m3uJSvWtQ+zDMZzjEhA6ix3VfftGLLE+0C99a9B2oOubZgO/sAIJmLD6Oz25bUinAtzuEmOQiqZ8OZjYZd//emPOty7POZSU5C3rGUX0ESzrStL20iJoGzyA0U9clI+14yZCyXY1+Th3VSQCvGs/DmOMPn+MdBoMXIgzVk7+wjMr53fN6H8Q26y52NlLTmAxum2L7ag4owTecURzC6-----END CERTIFICATE-----"
}
}
}
},
"summary": "Download the trusted certificate by certificate id.",
"tags": [
"organizations",
"configure",
"certificates",
"contents"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/claim": {
"post": {
"deprecated": true,
"description": "Claim a list of devices, licenses, and/or orders into an organization inventory. When claiming by order, all devices and licenses in the order will be claimed; licenses will be added to the organization and devices will be placed in the organization's inventory. This operation can be used up to ten times within a single five minute window.",
"operationId": "claimIntoOrganization",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "claimIntoOrganization",
"in": "body",
"schema": {
"type": "object",
"properties": {
"orders": {
"type": "array",
"items": {
"type": "string"
},
"description": "The numbers of the orders that should be claimed"
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "The serials of the devices that should be claimed"
},
"licenses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "The key of the license"
},
"mode": {
"type": "string",
"enum": [
"addDevices",
"renew"
],
"description": "Either 'renew' or 'addDevices'. 'addDevices' will increase the license limit, while 'renew' will extend the amount of time until expiration. Defaults to 'addDevices'. All licenses must be claimed with the same mode, and at most one renewal can be claimed at a time. This parameter is legacy and does not apply to organizations with per-device licensing enabled."
}
},
"required": [
"key"
]
},
"description": "The licenses that should be claimed"
}
},
"example": {
"orders": [
"4CXXXXXXX"
],
"serials": [
"Q234-ABCD-5678"
],
"licenses": [
{
"key": "Z2XXXXXXXXXX",
"mode": "addDevices"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"orders": {
"type": "array",
"items": {
"type": "string"
},
"description": "The numbers of the orders claimed"
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "The serials of the devices claimed"
},
"licenses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "The key of the license"
},
"mode": {
"type": "string",
"description": "The mode of the license"
}
}
},
"description": "The licenses claimed"
}
}
},
"examples": {
"application/json": {
"orders": [
"4CXXXXXXX"
],
"serials": [
"Q234-ABCD-5678"
],
"licenses": [
{
"key": "Z2XXXXXXXXXX",
"mode": "addDevices"
}
]
}
}
}
},
"summary": "Claim a list of devices, licenses, and/or orders into an organization inventory",
"tags": [
"organizations",
"configure"
]
}
},
"/organizations/{organizationId}/clients/bandwidthUsageHistory": {
"get": {
"description": "Return data usage (in megabits per second) over time for all clients in the given organization within a given time range.",
"operationId": "getOrganizationClientsBandwidthUsageHistory",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ts": {
"type": "string",
"format": "date-time",
"description": "Timestamp for the bandwidth usage snapshot."
},
"total": {
"type": "integer",
"description": "Total bandwidth usage, in mbps."
},
"upstream": {
"type": "integer",
"description": "Uploaded data, in mbps."
},
"downstream": {
"type": "integer",
"description": "Downloaded data, in mbps."
}
}
}
},
"examples": {
"application/json": [
{
"ts": "2021-06-20T01:00:00.000Z",
"total": 345,
"upstream": 60,
"downstream": 285
}
]
}
}
},
"summary": "Return data usage (in megabits per second) over time for all clients in the given organization within a given time range.",
"tags": [
"organizations",
"monitor",
"clients",
"bandwidthUsageHistory"
]
}
},
"/organizations/{organizationId}/clients/overview": {
"get": {
"description": "Return summary information around client data usage (in kb) across the given organization.",
"operationId": "getOrganizationClientsOverview",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"usage": {
"type": "object",
"properties": {
"overall": {
"type": "object",
"properties": {
"total": {
"type": "number",
"format": "float",
"description": "Total data usage (in kb) of all clients across organization"
},
"downstream": {
"type": "number",
"format": "float",
"description": "Downstream data usage (in kb) of all clients across organization"
},
"upstream": {
"type": "number",
"format": "float",
"description": "Upstream data usage (in kb) of all clients across organization"
}
},
"description": "Overall data usage of all clients across organization"
},
"average": {
"type": "number",
"format": "float",
"description": "Average data usage (in kb) of each client in organization"
}
},
"description": "Usage information of all clients across organization"
},
"counts": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "Total number of clients with data usage in organization"
}
},
"description": "Client count information"
}
}
},
"examples": {
"application/json": {
"usage": {
"overall": {
"total": 18000.0,
"downstream": 10000.0,
"upstream": 8000.0
},
"average": 1.37
},
"counts": {
"total": 20
}
}
}
}
},
"summary": "Return summary information around client data usage (in kb) across the given organization.",
"tags": [
"organizations",
"monitor",
"clients",
"overview"
]
}
},
"/organizations/{organizationId}/clients/search": {
"get": {
"description": "Return the client details in an organization",
"operationId": "getOrganizationClientsSearch",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 5. Default is 5."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "mac",
"in": "query",
"required": true,
"description": "The MAC address of the client. Required."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"clientId": {
"type": "string",
"description": "The ID of the client"
},
"mac": {
"type": "string",
"description": "The MAC address of the client"
},
"manufacturer": {
"type": "string",
"description": "Manufacturer of the client"
},
"records": {
"type": "array",
"items": {
"type": "object",
"properties": {
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The network identifier"
},
"organizationId": {
"type": "string",
"description": "The organization identifier"
},
"name": {
"type": "string",
"description": "The network name"
},
"productTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": ""
},
"timeZone": {
"type": "string",
"description": "The network's timezone"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The network tags"
},
"enrollmentString": {
"type": "string",
"description": "The network enrollment string"
},
"url": {
"type": "string",
"description": "The network URL"
},
"notes": {
"type": "string",
"description": "The notes for the network"
},
"isBoundToConfigTemplate": {
"type": "boolean",
"description": "If the network is bound to a config template"
}
},
"description": "The network upon which a client with the given MAC address was found"
},
"ip": {
"type": "string",
"description": "The IP address of the client"
},
"ip6": {
"type": "string",
"description": "The IPv6 address of the client"
},
"description": {
"type": "string",
"description": "Short description of the client"
},
"firstSeen": {
"type": "integer",
"description": "Timestamp client was first seen in the network"
},
"lastSeen": {
"type": "integer",
"description": "Timestamp client was last seen in the network"
},
"os": {
"type": "string",
"description": "The operating system of the client"
},
"user": {
"type": "string",
"description": "The username of the user of the client"
},
"vlan": {
"type": "string",
"description": "The name of the VLAN that the client is connected to"
},
"ssid": {
"type": "string",
"description": "The name of the SSID that the client is connected to"
},
"switchport": {
"type": "string",
"description": "The switch port the client is connected to"
},
"wirelessCapabilities": {
"type": "string",
"description": "Wireless capabilities of the client"
},
"smInstalled": {
"type": "boolean",
"description": "Status of SM for the client"
},
"recentDeviceMac": {
"type": "string",
"description": "The MAC address of the node that the device was last connected to"
},
"clientVpnConnections": {
"type": "array",
"items": {
"type": "object",
"properties": {
"remoteIp": {
"type": "string",
"description": "The IP address of the VPN the client last connected to"
},
"connectedAt": {
"type": "integer",
"description": "The time the client last connected to the VPN"
},
"disconnectedAt": {
"type": "integer",
"description": "The time the client last disconnected from the VPN"
}
}
},
"description": "VPN connections associated with the client"
},
"lldp": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "The link layer discover protocol settings for the client"
},
"cdp": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
},
"description": "The Cisco discover protocol settings for the client"
},
"status": {
"type": "string",
"enum": [
"Offline",
"Online"
],
"description": "The connection status of the client"
}
}
},
"description": "The clients that appear on any networks within an organization"
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": {
"clientId": "k74272e",
"mac": "22:33:44:55:66:77",
"manufacturer": "Apple",
"records": [
{
"network": {
"id": "N_24329156",
"organizationId": "2930418",
"name": "Main Office",
"productTypes": [
"appliance",
"switch",
"wireless"
],
"timeZone": "America/Los_Angeles",
"tags": [
"tag1",
"tag2"
],
"enrollmentString": "my-enrollment-string",
"url": "https://n1.meraki.com//n//manage/nodes/list",
"notes": "Additional description of the network",
"isBoundToConfigTemplate": false
},
"ip": "1.2.3.4",
"ip6": "2001:db8:3c4d:15::1",
"description": "Miles's phone",
"firstSeen": 1518365681,
"lastSeen": 1526087474,
"os": "iOS",
"user": "milesmeraki",
"vlan": "100",
"ssid": "My SSID",
"switchport": "My switch port",
"wirelessCapabilities": "802.11b - 2.4 GHz",
"smInstalled": true,
"recentDeviceMac": "22:33:44:55:66:77",
"clientVpnConnections": [
{
"remoteIp": "1.2.3.4",
"connectedAt": 1522613355,
"disconnectedAt": 1522613360
}
],
"lldp": [
[
"System name",
"Some system name"
],
[
"System description",
"Some system description"
],
[
"Port ID",
"1"
],
[
"Chassis ID",
"00:18:0a:00:00:00"
],
[
"Port description",
"eth0"
],
[
"System capabilities",
"Two-port MAC Relay"
]
],
"cdp": [
[
"System name",
"Some system name"
],
[
"System description",
"Some system description"
],
[
"Port ID",
"1"
],
[
"Chassis ID",
"00:18:0a:00:00:00"
],
[
"Port description",
"eth0"
],
[
"System capabilities",
"Two-port MAC Relay"
]
],
"status": "Online"
}
]
}
}
}
},
"summary": "Return the client details in an organization",
"tags": [
"organizations",
"configure",
"clients",
"search"
]
}
},
"/organizations/{organizationId}/clone": {
"post": {
"description": "Create a new organization by cloning the addressed organization",
"operationId": "cloneOrganization",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "cloneOrganization",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the new organization"
}
},
"example": {
"name": "My organization"
},
"required": [
"name"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"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"
}
},
"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', '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"
}
}
},
"examples": {
"application/json": {
"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"
}
},
"management": {
"details": [
{
"name": "MSP ID",
"value": "123456"
}
]
}
}
}
}
},
"summary": "Create a new organization by cloning the addressed organization",
"tags": [
"organizations",
"configure"
]
}
},
"/organizations/{organizationId}/cloud/connectivity/requirements": {
"get": {
"description": "List of source/destination traffic rules",
"operationId": "getOrganizationCloudConnectivityRequirements",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "Describes the purpose of this requirement"
},
"productTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Devices using this firewall rule"
},
"rule": {
"type": "object",
"properties": {
"sources": {
"type": "object",
"properties": {
"includeAddressesInYourNetworks": {
"type": "boolean",
"description": "If the source includes IP addresses in your networks"
},
"addresses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"ipv4",
"ipv6"
],
"description": "Firewall rule source IP address type"
},
"address": {
"type": "string",
"description": "Firewall rule source IP address"
}
}
},
"description": "A list of firewall rule source IP addresses"
}
},
"description": "Firewall rule sources"
},
"destinations": {
"type": "object",
"properties": {
"includeAddressesInYourNetworks": {
"type": "boolean",
"description": "If the destination IP includes IP address in your networks"
},
"includeAnyAddress": {
"type": "boolean",
"description": "If the destination IP includes any address"
},
"addresses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"fqdn",
"ipv4",
"ipv6"
],
"description": "Firewall rule destination IP address type"
},
"address": {
"type": "string",
"description": "Firewall rule destination IP address"
}
}
},
"description": "A list of firewall rule destination IP addresses"
}
},
"description": "Firewall rule destinations"
},
"ports": {
"type": "array",
"items": {
"type": "object",
"properties": {
"port": {
"type": "string",
"description": "Port required for connectivity"
},
"protocols": {
"type": "array",
"items": {
"type": "string"
},
"description": "Protocols used for this purpose"
}
}
},
"description": "Ports that are applied by this firewall rule"
}
},
"description": "An object of source IP, destination IP, and ports required for connectivity"
}
}
}
},
"examples": {
"application/json": [
{
"description": "Meraki cloud communication",
"productTypes": [
"appliance",
"wireless",
"camera",
"switch"
],
"rule": {
"sources": {
"includeAddressesInYourNetworks": false,
"addresses": [
{
"type": "ipv4",
"address": "209.206.48.0/20"
}
]
},
"destinations": {
"includeAddressesInYourNetworks": false,
"includeAnyAddress": false,
"addresses": [
{
"type": "fqdn",
"address": "webhook.site"
}
]
},
"ports": [
{
"port": "443",
"protocols": [
"TCP"
]
}
]
}
}
]
}
}
},
"summary": "List of source/destination traffic rules",
"tags": [
"organizations",
"monitor",
"cloud",
"connectivity",
"requirements"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/configTemplates": {
"get": {
"description": "List the configuration templates for this organization",
"operationId": "getOrganizationConfigTemplates",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the network or config template to copy configuration from"
},
"name": {
"type": "string",
"description": "The name of the configuration template"
},
"productTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The product types of the configuration template"
},
"timeZone": {
"type": "string",
"description": "The timezone of the configuration template. For a list of allowed timezones, please see the 'TZ' column in the table in this article . Not applicable if copying from existing network or template"
}
}
}
},
"examples": {
"application/json": [
{
"id": "N_24329156",
"name": "My config template",
"productTypes": [
"appliance",
"switch",
"wireless"
],
"timeZone": "America/Los_Angeles"
}
]
}
}
},
"summary": "List the configuration templates for this organization",
"tags": [
"organizations",
"configure",
"configTemplates"
]
},
"post": {
"description": "Create a new configuration template",
"operationId": "createOrganizationConfigTemplate",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationConfigTemplate",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the configuration template"
},
"timeZone": {
"type": "string",
"description": "The timezone of the configuration template. For a list of allowed timezones, please see the 'TZ' column in the table in this article . Not applicable if copying from existing network or template"
},
"copyFromNetworkId": {
"type": "string",
"description": "The ID of the network or config template to copy configuration from"
}
},
"example": {
"name": "My config template",
"timeZone": "America/Los_Angeles",
"copyFromNetworkId": "N_24329156"
},
"required": [
"name"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the network or config template to copy configuration from"
},
"name": {
"type": "string",
"description": "The name of the configuration template"
},
"productTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The product types of the configuration template"
},
"timeZone": {
"type": "string",
"description": "The timezone of the configuration template. For a list of allowed timezones, please see the 'TZ' column in the table in this article . Not applicable if copying from existing network or template"
}
}
},
"examples": {
"application/json": {
"id": "N_24329156",
"name": "My config template",
"productTypes": [
"appliance",
"switch",
"wireless"
],
"timeZone": "America/Los_Angeles"
}
}
}
},
"summary": "Create a new configuration template",
"tags": [
"organizations",
"configure",
"configTemplates"
]
}
},
"/organizations/{organizationId}/configTemplates/{configTemplateId}": {
"put": {
"description": "Update a configuration template",
"operationId": "updateOrganizationConfigTemplate",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "configTemplateId",
"in": "path",
"description": "Config template ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationConfigTemplate",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the configuration template"
},
"timeZone": {
"type": "string",
"description": "The timezone of the configuration template. For a list of allowed timezones, please see the 'TZ' column in the table in this article. "
}
},
"example": {
"name": "My config template",
"timeZone": "America/Los_Angeles"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the network or config template to copy configuration from"
},
"name": {
"type": "string",
"description": "The name of the configuration template"
},
"productTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The product types of the configuration template"
},
"timeZone": {
"type": "string",
"description": "The timezone of the configuration template. For a list of allowed timezones, please see the 'TZ' column in the table in this article . Not applicable if copying from existing network or template"
}
}
},
"examples": {
"application/json": {
"id": "N_24329156",
"name": "My config template",
"productTypes": [
"appliance",
"switch",
"wireless"
],
"timeZone": "America/Los_Angeles"
}
}
}
},
"summary": "Update a configuration template",
"tags": [
"organizations",
"configure",
"configTemplates"
]
},
"delete": {
"description": "Remove a configuration template",
"operationId": "deleteOrganizationConfigTemplate",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "configTemplateId",
"in": "path",
"description": "Config template ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Remove a configuration template",
"tags": [
"organizations",
"configure",
"configTemplates"
]
},
"get": {
"description": "Return a single configuration template",
"operationId": "getOrganizationConfigTemplate",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "configTemplateId",
"in": "path",
"description": "Config template ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the network or config template to copy configuration from"
},
"name": {
"type": "string",
"description": "The name of the configuration template"
},
"productTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The product types of the configuration template"
},
"timeZone": {
"type": "string",
"description": "The timezone of the configuration template. For a list of allowed timezones, please see the 'TZ' column in the table in this article . Not applicable if copying from existing network or template"
}
}
},
"examples": {
"application/json": {
"id": "N_24329156",
"name": "My config template",
"productTypes": [
"appliance",
"switch",
"wireless"
],
"timeZone": "America/Los_Angeles"
}
}
}
},
"summary": "Return a single configuration template",
"tags": [
"organizations",
"configure",
"configTemplates"
]
}
},
"/organizations/{organizationId}/configTemplates/{configTemplateId}/switch/profiles": {
"get": {
"description": "List the switch templates for your switch template configuration",
"operationId": "getOrganizationConfigTemplateSwitchProfiles",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "configTemplateId",
"in": "path",
"description": "Config template ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"switchProfileId": {
"type": "string",
"description": "Switch template id"
},
"name": {
"type": "string",
"description": "Switch template name"
},
"model": {
"type": "string",
"description": "Switch model"
}
}
}
},
"examples": {
"application/json": [
{
"switchProfileId": "1234",
"name": "A Simple Switch Template",
"model": "MS450-24"
}
]
}
}
},
"summary": "List the switch templates for your switch template configuration",
"tags": [
"switch",
"configure",
"configTemplates",
"profiles"
]
}
},
"/organizations/{organizationId}/configTemplates/{configTemplateId}/switch/profiles/{profileId}/ports": {
"get": {
"description": "Return all the ports of a switch template",
"operationId": "getOrganizationConfigTemplateSwitchProfilePorts",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "configTemplateId",
"in": "path",
"description": "Config template ID",
"type": "string",
"required": true
},
{
"name": "profileId",
"in": "path",
"description": "Profile ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"portId": {
"type": "string",
"description": "The identifier of the switch template port."
},
"name": {
"type": "string",
"description": "The name of the switch template port."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of tags of the switch template port."
},
"enabled": {
"type": "boolean",
"description": "The status of the switch template port."
},
"poeEnabled": {
"type": "boolean",
"description": "The PoE status of the switch template port."
},
"type": {
"type": "string",
"enum": [
"access",
"stack",
"trunk"
],
"description": "The type of the switch template port ('trunk', 'access' or 'stack')."
},
"vlan": {
"type": "integer",
"description": "The VLAN of the switch template port. For a trunk port, this is the native VLAN. A null value will clear the value set for trunk ports."
},
"voiceVlan": {
"type": "integer",
"description": "The voice VLAN of the switch template port. Only applicable to access ports."
},
"allowedVlans": {
"type": "string",
"description": "The VLANs allowed on the switch template port. Only applicable to trunk ports."
},
"isolationEnabled": {
"type": "boolean",
"description": "The isolation status of the switch template port."
},
"rstpEnabled": {
"type": "boolean",
"description": "The rapid spanning tree protocol status."
},
"stpGuard": {
"type": "string",
"enum": [
"bpdu guard",
"disabled",
"loop guard",
"root guard"
],
"description": "The state of the STP guard ('disabled', 'root guard', 'bpdu guard' or 'loop guard')."
},
"linkNegotiation": {
"type": "string",
"description": "The link speed for the switch template port."
},
"linkNegotiationCapabilities": {
"type": "array",
"items": {
"type": "string"
},
"description": "Available link speeds for the switch template port."
},
"portScheduleId": {
"type": "string",
"description": "The ID of the port schedule. A value of null will clear the port schedule."
},
"udld": {
"type": "string",
"enum": [
"Alert only",
"Enforce"
],
"description": "The action to take when Unidirectional Link is detected (Alert only, Enforce). Default configuration is Alert only."
},
"accessPolicyType": {
"type": "string",
"enum": [
"Custom access policy",
"MAC allow list",
"Open",
"Sticky MAC allow list"
],
"description": "The type of the access policy of the switch template port. Only applicable to access ports. Can be one of 'Open', 'Custom access policy', 'MAC allow list' or 'Sticky MAC allow list'."
},
"accessPolicyNumber": {
"type": "integer",
"description": "The number of a custom access policy to configure on the switch template port. Only applicable when 'accessPolicyType' is 'Custom access policy'."
},
"macAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only devices with MAC addresses specified in this list will have access to this port. Up to 20 MAC addresses can be defined. Only applicable when 'accessPolicyType' is 'MAC allow list'."
},
"stickyMacAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "The initial list of MAC addresses for sticky Mac allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stickyMacAllowListLimit": {
"type": "integer",
"description": "The maximum number of MAC addresses for sticky MAC allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stormControlEnabled": {
"type": "boolean",
"description": "The storm control status of the switch template port."
},
"flexibleStackingEnabled": {
"type": "boolean",
"description": "For supported switches (e.g. MS420/MS425), whether or not the port has flexible stacking enabled."
},
"daiTrusted": {
"type": "boolean",
"description": "If true, ARP packets for this port will be considered trusted, and Dynamic ARP Inspection will allow the traffic."
},
"profile": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "When enabled, override this port's configuration with a port profile."
},
"id": {
"type": "string",
"description": "When enabled, the ID of the port profile used to override the port's configuration."
},
"iname": {
"type": "string",
"description": "When enabled, the IName of the profile."
}
},
"description": "Profile attributes"
},
"module": {
"type": "object",
"properties": {
"model": {
"type": "string",
"description": "The model of the expansion module."
}
},
"description": "Expansion module"
},
"mirror": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"Destination port",
"Not mirroring traffic",
"Source port"
],
"description": "The port mirror mode. Can be one of ('Destination port', 'Source port' or 'Not mirroring traffic')."
}
},
"description": "Port mirror"
}
}
}
},
"examples": {
"application/json": [
{
"portId": "1",
"name": "My switch port",
"tags": [
"tag1",
"tag2"
],
"enabled": true,
"poeEnabled": true,
"type": "access",
"vlan": 10,
"voiceVlan": 20,
"allowedVlans": "1,3,5-10",
"isolationEnabled": false,
"rstpEnabled": true,
"stpGuard": "disabled",
"linkNegotiation": "Auto negotiate",
"linkNegotiationCapabilities": [
"Auto negotiate",
"1 Gigabit full duplex (auto)"
],
"portScheduleId": "1234",
"udld": "Alert only",
"accessPolicyType": "Sticky MAC allow list",
"accessPolicyNumber": 2,
"macAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowListLimit": 5,
"stormControlEnabled": true,
"flexibleStackingEnabled": true,
"daiTrusted": false,
"profile": {
"enabled": false,
"id": "1284392014819",
"iname": "iname"
},
"module": {
"model": "MA-MOD-4X10G"
},
"mirror": {
"mode": "Not mirroring traffic"
}
}
]
}
}
},
"summary": "Return all the ports of a switch template",
"tags": [
"switch",
"configure",
"configTemplates",
"profiles",
"ports"
]
}
},
"/organizations/{organizationId}/configTemplates/{configTemplateId}/switch/profiles/{profileId}/ports/{portId}": {
"get": {
"description": "Return a switch template port",
"operationId": "getOrganizationConfigTemplateSwitchProfilePort",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "configTemplateId",
"in": "path",
"description": "Config template ID",
"type": "string",
"required": true
},
{
"name": "profileId",
"in": "path",
"description": "Profile ID",
"type": "string",
"required": true
},
{
"name": "portId",
"in": "path",
"description": "Port ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"portId": {
"type": "string",
"description": "The identifier of the switch template port."
},
"name": {
"type": "string",
"description": "The name of the switch template port."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of tags of the switch template port."
},
"enabled": {
"type": "boolean",
"description": "The status of the switch template port."
},
"poeEnabled": {
"type": "boolean",
"description": "The PoE status of the switch template port."
},
"type": {
"type": "string",
"enum": [
"access",
"stack",
"trunk"
],
"description": "The type of the switch template port ('trunk', 'access' or 'stack')."
},
"vlan": {
"type": "integer",
"description": "The VLAN of the switch template port. For a trunk port, this is the native VLAN. A null value will clear the value set for trunk ports."
},
"voiceVlan": {
"type": "integer",
"description": "The voice VLAN of the switch template port. Only applicable to access ports."
},
"allowedVlans": {
"type": "string",
"description": "The VLANs allowed on the switch template port. Only applicable to trunk ports."
},
"isolationEnabled": {
"type": "boolean",
"description": "The isolation status of the switch template port."
},
"rstpEnabled": {
"type": "boolean",
"description": "The rapid spanning tree protocol status."
},
"stpGuard": {
"type": "string",
"enum": [
"bpdu guard",
"disabled",
"loop guard",
"root guard"
],
"description": "The state of the STP guard ('disabled', 'root guard', 'bpdu guard' or 'loop guard')."
},
"linkNegotiation": {
"type": "string",
"description": "The link speed for the switch template port."
},
"linkNegotiationCapabilities": {
"type": "array",
"items": {
"type": "string"
},
"description": "Available link speeds for the switch template port."
},
"portScheduleId": {
"type": "string",
"description": "The ID of the port schedule. A value of null will clear the port schedule."
},
"udld": {
"type": "string",
"enum": [
"Alert only",
"Enforce"
],
"description": "The action to take when Unidirectional Link is detected (Alert only, Enforce). Default configuration is Alert only."
},
"accessPolicyType": {
"type": "string",
"enum": [
"Custom access policy",
"MAC allow list",
"Open",
"Sticky MAC allow list"
],
"description": "The type of the access policy of the switch template port. Only applicable to access ports. Can be one of 'Open', 'Custom access policy', 'MAC allow list' or 'Sticky MAC allow list'."
},
"accessPolicyNumber": {
"type": "integer",
"description": "The number of a custom access policy to configure on the switch template port. Only applicable when 'accessPolicyType' is 'Custom access policy'."
},
"macAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only devices with MAC addresses specified in this list will have access to this port. Up to 20 MAC addresses can be defined. Only applicable when 'accessPolicyType' is 'MAC allow list'."
},
"stickyMacAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "The initial list of MAC addresses for sticky Mac allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stickyMacAllowListLimit": {
"type": "integer",
"description": "The maximum number of MAC addresses for sticky MAC allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stormControlEnabled": {
"type": "boolean",
"description": "The storm control status of the switch template port."
},
"flexibleStackingEnabled": {
"type": "boolean",
"description": "For supported switches (e.g. MS420/MS425), whether or not the port has flexible stacking enabled."
},
"daiTrusted": {
"type": "boolean",
"description": "If true, ARP packets for this port will be considered trusted, and Dynamic ARP Inspection will allow the traffic."
},
"profile": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "When enabled, override this port's configuration with a port profile."
},
"id": {
"type": "string",
"description": "When enabled, the ID of the port profile used to override the port's configuration."
},
"iname": {
"type": "string",
"description": "When enabled, the IName of the profile."
}
},
"description": "Profile attributes"
},
"module": {
"type": "object",
"properties": {
"model": {
"type": "string",
"description": "The model of the expansion module."
}
},
"description": "Expansion module"
},
"mirror": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"Destination port",
"Not mirroring traffic",
"Source port"
],
"description": "The port mirror mode. Can be one of ('Destination port', 'Source port' or 'Not mirroring traffic')."
}
},
"description": "Port mirror"
}
}
},
"examples": {
"application/json": {
"portId": "1",
"name": "My switch port",
"tags": [
"tag1",
"tag2"
],
"enabled": true,
"poeEnabled": true,
"type": "access",
"vlan": 10,
"voiceVlan": 20,
"allowedVlans": "1,3,5-10",
"isolationEnabled": false,
"rstpEnabled": true,
"stpGuard": "disabled",
"linkNegotiation": "Auto negotiate",
"linkNegotiationCapabilities": [
"Auto negotiate",
"1 Gigabit full duplex (auto)"
],
"portScheduleId": "1234",
"udld": "Alert only",
"accessPolicyType": "Sticky MAC allow list",
"accessPolicyNumber": 2,
"macAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowListLimit": 5,
"stormControlEnabled": true,
"flexibleStackingEnabled": true,
"daiTrusted": false,
"profile": {
"enabled": false,
"id": "1284392014819",
"iname": "iname"
},
"module": {
"model": "MA-MOD-4X10G"
},
"mirror": {
"mode": "Not mirroring traffic"
}
}
}
}
},
"summary": "Return a switch template port",
"tags": [
"switch",
"configure",
"configTemplates",
"profiles",
"ports"
]
},
"put": {
"description": "Update a switch template port",
"operationId": "updateOrganizationConfigTemplateSwitchProfilePort",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "configTemplateId",
"in": "path",
"description": "Config template ID",
"type": "string",
"required": true
},
{
"name": "profileId",
"in": "path",
"description": "Profile ID",
"type": "string",
"required": true
},
{
"name": "portId",
"in": "path",
"description": "Port ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationConfigTemplateSwitchProfilePort",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the switch template port."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of tags of the switch template port."
},
"enabled": {
"type": "boolean",
"description": "The status of the switch template port."
},
"poeEnabled": {
"type": "boolean",
"description": "The PoE status of the switch template port."
},
"type": {
"type": "string",
"enum": [
"access",
"stack",
"trunk"
],
"description": "The type of the switch template port ('trunk', 'access' or 'stack')."
},
"vlan": {
"type": "integer",
"description": "The VLAN of the switch template port. For a trunk port, this is the native VLAN. A null value will clear the value set for trunk ports."
},
"voiceVlan": {
"type": "integer",
"description": "The voice VLAN of the switch template port. Only applicable to access ports."
},
"allowedVlans": {
"type": "string",
"description": "The VLANs allowed on the switch template port. Only applicable to trunk ports."
},
"isolationEnabled": {
"type": "boolean",
"description": "The isolation status of the switch template port."
},
"rstpEnabled": {
"type": "boolean",
"description": "The rapid spanning tree protocol status."
},
"stpGuard": {
"type": "string",
"enum": [
"bpdu guard",
"disabled",
"loop guard",
"root guard"
],
"description": "The state of the STP guard ('disabled', 'root guard', 'bpdu guard' or 'loop guard')."
},
"linkNegotiation": {
"type": "string",
"description": "The link speed for the switch template port."
},
"portScheduleId": {
"type": "string",
"description": "The ID of the port schedule. A value of null will clear the port schedule."
},
"udld": {
"type": "string",
"enum": [
"Alert only",
"Enforce"
],
"description": "The action to take when Unidirectional Link is detected (Alert only, Enforce). Default configuration is Alert only."
},
"accessPolicyType": {
"type": "string",
"enum": [
"Custom access policy",
"MAC allow list",
"Open",
"Sticky MAC allow list"
],
"description": "The type of the access policy of the switch template port. Only applicable to access ports. Can be one of 'Open', 'Custom access policy', 'MAC allow list' or 'Sticky MAC allow list'."
},
"accessPolicyNumber": {
"type": "integer",
"description": "The number of a custom access policy to configure on the switch template port. Only applicable when 'accessPolicyType' is 'Custom access policy'."
},
"macAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only devices with MAC addresses specified in this list will have access to this port. Up to 20 MAC addresses can be defined. Only applicable when 'accessPolicyType' is 'MAC allow list'."
},
"stickyMacAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "The initial list of MAC addresses for sticky Mac allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stickyMacAllowListLimit": {
"type": "integer",
"description": "The maximum number of MAC addresses for sticky MAC allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stormControlEnabled": {
"type": "boolean",
"description": "The storm control status of the switch template port."
},
"flexibleStackingEnabled": {
"type": "boolean",
"description": "For supported switches (e.g. MS420/MS425), whether or not the port has flexible stacking enabled."
},
"daiTrusted": {
"type": "boolean",
"description": "If true, ARP packets for this port will be considered trusted, and Dynamic ARP Inspection will allow the traffic."
},
"profile": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "When enabled, override this port's configuration with a port profile."
},
"id": {
"type": "string",
"description": "When enabled, the ID of the port profile used to override the port's configuration."
},
"iname": {
"type": "string",
"description": "When enabled, the IName of the profile."
}
},
"description": "Profile attributes"
}
},
"example": {
"name": "My switch port",
"tags": [
"tag1",
"tag2"
],
"enabled": true,
"poeEnabled": true,
"type": "access",
"vlan": 10,
"voiceVlan": 20,
"allowedVlans": "1,3,5-10",
"isolationEnabled": false,
"rstpEnabled": true,
"stpGuard": "disabled",
"linkNegotiation": "Auto negotiate",
"portScheduleId": "1234",
"udld": "Alert only",
"accessPolicyType": "Sticky MAC allow list",
"accessPolicyNumber": 2,
"macAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowListLimit": 5,
"stormControlEnabled": true,
"flexibleStackingEnabled": true,
"daiTrusted": false,
"profile": {
"enabled": false,
"id": "1284392014819",
"iname": "iname"
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"portId": {
"type": "string",
"description": "The identifier of the switch template port."
},
"name": {
"type": "string",
"description": "The name of the switch template port."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of tags of the switch template port."
},
"enabled": {
"type": "boolean",
"description": "The status of the switch template port."
},
"poeEnabled": {
"type": "boolean",
"description": "The PoE status of the switch template port."
},
"type": {
"type": "string",
"enum": [
"access",
"stack",
"trunk"
],
"description": "The type of the switch template port ('trunk', 'access' or 'stack')."
},
"vlan": {
"type": "integer",
"description": "The VLAN of the switch template port. For a trunk port, this is the native VLAN. A null value will clear the value set for trunk ports."
},
"voiceVlan": {
"type": "integer",
"description": "The voice VLAN of the switch template port. Only applicable to access ports."
},
"allowedVlans": {
"type": "string",
"description": "The VLANs allowed on the switch template port. Only applicable to trunk ports."
},
"isolationEnabled": {
"type": "boolean",
"description": "The isolation status of the switch template port."
},
"rstpEnabled": {
"type": "boolean",
"description": "The rapid spanning tree protocol status."
},
"stpGuard": {
"type": "string",
"enum": [
"bpdu guard",
"disabled",
"loop guard",
"root guard"
],
"description": "The state of the STP guard ('disabled', 'root guard', 'bpdu guard' or 'loop guard')."
},
"linkNegotiation": {
"type": "string",
"description": "The link speed for the switch template port."
},
"linkNegotiationCapabilities": {
"type": "array",
"items": {
"type": "string"
},
"description": "Available link speeds for the switch template port."
},
"portScheduleId": {
"type": "string",
"description": "The ID of the port schedule. A value of null will clear the port schedule."
},
"udld": {
"type": "string",
"enum": [
"Alert only",
"Enforce"
],
"description": "The action to take when Unidirectional Link is detected (Alert only, Enforce). Default configuration is Alert only."
},
"accessPolicyType": {
"type": "string",
"enum": [
"Custom access policy",
"MAC allow list",
"Open",
"Sticky MAC allow list"
],
"description": "The type of the access policy of the switch template port. Only applicable to access ports. Can be one of 'Open', 'Custom access policy', 'MAC allow list' or 'Sticky MAC allow list'."
},
"accessPolicyNumber": {
"type": "integer",
"description": "The number of a custom access policy to configure on the switch template port. Only applicable when 'accessPolicyType' is 'Custom access policy'."
},
"macAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only devices with MAC addresses specified in this list will have access to this port. Up to 20 MAC addresses can be defined. Only applicable when 'accessPolicyType' is 'MAC allow list'."
},
"stickyMacAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "The initial list of MAC addresses for sticky Mac allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stickyMacAllowListLimit": {
"type": "integer",
"description": "The maximum number of MAC addresses for sticky MAC allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stormControlEnabled": {
"type": "boolean",
"description": "The storm control status of the switch template port."
},
"flexibleStackingEnabled": {
"type": "boolean",
"description": "For supported switches (e.g. MS420/MS425), whether or not the port has flexible stacking enabled."
},
"daiTrusted": {
"type": "boolean",
"description": "If true, ARP packets for this port will be considered trusted, and Dynamic ARP Inspection will allow the traffic."
},
"profile": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "When enabled, override this port's configuration with a port profile."
},
"id": {
"type": "string",
"description": "When enabled, the ID of the port profile used to override the port's configuration."
},
"iname": {
"type": "string",
"description": "When enabled, the IName of the profile."
}
},
"description": "Profile attributes"
},
"module": {
"type": "object",
"properties": {
"model": {
"type": "string",
"description": "The model of the expansion module."
}
},
"description": "Expansion module"
},
"mirror": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"Destination port",
"Not mirroring traffic",
"Source port"
],
"description": "The port mirror mode. Can be one of ('Destination port', 'Source port' or 'Not mirroring traffic')."
}
},
"description": "Port mirror"
}
}
},
"examples": {
"application/json": {
"portId": "1",
"name": "My switch port",
"tags": [
"tag1",
"tag2"
],
"enabled": true,
"poeEnabled": true,
"type": "access",
"vlan": 10,
"voiceVlan": 20,
"allowedVlans": "1,3,5-10",
"isolationEnabled": false,
"rstpEnabled": true,
"stpGuard": "disabled",
"linkNegotiation": "Auto negotiate",
"linkNegotiationCapabilities": [
"Auto negotiate",
"1 Gigabit full duplex (auto)"
],
"portScheduleId": "1234",
"udld": "Alert only",
"accessPolicyType": "Sticky MAC allow list",
"accessPolicyNumber": 2,
"macAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowListLimit": 5,
"stormControlEnabled": true,
"flexibleStackingEnabled": true,
"daiTrusted": false,
"profile": {
"enabled": false,
"id": "1284392014819",
"iname": "iname"
},
"module": {
"model": "MA-MOD-4X10G"
},
"mirror": {
"mode": "Not mirroring traffic"
}
}
}
}
},
"summary": "Update a switch template port",
"tags": [
"switch",
"configure",
"configTemplates",
"profiles",
"ports"
]
}
},
"/organizations/{organizationId}/configurationChanges": {
"get": {
"description": "View the Change Log for your organization",
"operationId": "getOrganizationConfigurationChanges",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 365 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 365 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 31536000,
"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 365 days. The default is 365 days."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 5000. Default is 5000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "networkId",
"in": "query",
"description": "Filters on the given network"
},
{
"type": "string",
"name": "adminId",
"in": "query",
"description": "Filters on the given Admin"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ts": {
"type": "string",
"format": "date-time",
"description": "Time, in ISO8601 format, when the configuration change was made."
},
"adminName": {
"type": "string",
"description": "The name of the admin who made the configuration change."
},
"adminEmail": {
"type": "string",
"description": "The email address of the admin who made the configuration change. This attribute may be null."
},
"adminId": {
"type": "string",
"description": "The ID of the admin who made the configuration change. This attribute may be null."
},
"networkName": {
"type": "string",
"description": "The name of the network that the configuration change was applied to. This attribute may be null."
},
"networkId": {
"type": "string",
"description": "The ID of the network that the configuration change was applied to. This attribute may be null."
},
"networkUrl": {
"type": "string",
"description": "The url of the network that the configuration change was applied to. This attribute may be null."
},
"ssidName": {
"type": "string",
"description": "The name of the ssid that the configuration change was applied to, if applicable. This attribute may be null."
},
"ssidNumber": {
"type": "integer",
"description": "The ssid number that the configuration change was applied to, if applicable. This attribute may be null."
},
"page": {
"type": "string",
"description": "The name of the Meraki Dashboard page on which the configuration change was made."
},
"label": {
"type": "string",
"description": "Description of the configuration change."
},
"oldValue": {
"type": "string",
"description": "The value of the configuration, before the change was applied."
},
"newValue": {
"type": "string",
"description": "The value of the configuration, after the change was applied."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"ts": "2018-02-11T00:00:00.090210Z",
"adminName": "Miles Meraki",
"adminEmail": "miles@meraki.com",
"adminId": "212406",
"networkName": "Main Office",
"networkId": "N_24329156",
"networkUrl": "https://n1.meraki.com//n//manage/nodes/list",
"ssidName": "My SSID",
"ssidNumber": 1,
"page": "via API",
"label": "PUT /api/v1/organizations/2930418",
"oldValue": "{\"id\":\"2930418\",\"name\":\"My organization\",\"url\":\"https://dashboard.meraki.com/o/VjjsAd/manage/organization/overview\"}",
"newValue": "{\"id\":\"2930418\",\"name\":\"My organization changed\",\"url\":\"https://dashboard.meraki.com/o/VjjsAd/manage/organization/overview\"}"
}
]
}
}
},
"summary": "View the Change Log for your organization",
"tags": [
"organizations",
"monitor",
"configurationChanges"
]
}
},
"/organizations/{organizationId}/devices": {
"get": {
"description": "List the devices in an organization",
"operationId": "getOrganizationDevices",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "configurationUpdatedAfter",
"in": "query",
"description": "Filter results by whether or not the device's configuration has been updated after the given timestamp"
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Optional parameter to filter devices by network."
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"appliance",
"camera",
"cellularGateway",
"sensor",
"switch",
"systemsManager",
"wireless"
]
},
"name": "productTypes",
"in": "query",
"description": "Optional parameter to filter devices by product type. Valid types are wireless, appliance, switch, systemsManager, camera, cellularGateway, and sensor."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "tags",
"in": "query",
"description": "Optional parameter to filter devices by tags."
},
{
"type": "string",
"enum": [
"withAllTags",
"withAnyTags"
],
"name": "tagsFilterType",
"in": "query",
"description": "Optional parameter of value 'withAnyTags' or 'withAllTags' to indicate whether to return networks which contain ANY or ALL of the included tags. If no type is included, 'withAnyTags' will be selected."
},
{
"type": "string",
"name": "name",
"in": "query",
"description": "Optional parameter to filter devices by name. All returned devices will have a name that contains the search term or is an exact match."
},
{
"type": "string",
"name": "mac",
"in": "query",
"description": "Optional parameter to filter devices by MAC address. All returned devices will have a MAC address that contains the search term or is an exact match."
},
{
"type": "string",
"name": "serial",
"in": "query",
"description": "Optional parameter to filter devices by serial number. All returned devices will have a serial number that contains the search term or is an exact match."
},
{
"type": "string",
"name": "model",
"in": "query",
"description": "Optional parameter to filter devices by model. All returned devices will have a model that contains the search term or is an exact match."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "macs",
"in": "query",
"description": "Optional parameter to filter devices by one or more MAC addresses. All returned devices will have a MAC address that is an exact match."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Optional parameter to filter devices by one or more serial numbers. All returned devices will have a serial number that is an exact match."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "sensorMetrics",
"in": "query",
"description": "Optional parameter to filter devices by the metrics that they provide. Only applies to sensor devices."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "sensorAlertProfileIds",
"in": "query",
"description": "Optional parameter to filter devices by the alert profiles that are bound to them. Only applies to sensor devices."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "models",
"in": "query",
"description": "Optional parameter to filter devices by one or more models. All returned devices will have a model that is an exact match."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the device"
},
"lat": {
"type": "number",
"format": "float",
"description": "Latitude of the device"
},
"lng": {
"type": "number",
"format": "float",
"description": "Longitude of the device"
},
"address": {
"type": "string",
"description": "Physical address of the device"
},
"notes": {
"type": "string",
"description": "Notes for the device, limited to 255 characters"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of tags assigned to the device"
},
"networkId": {
"type": "string",
"description": "ID of the network the device belongs to"
},
"serial": {
"type": "string",
"description": "Serial number of the device"
},
"model": {
"type": "string",
"description": "Model of the device"
},
"imei": {
"type": "string",
"description": "IMEI of the device, if applicable"
},
"mac": {
"type": "string",
"description": "MAC address of the device"
},
"lanIp": {
"type": "string",
"description": "LAN IP address of the device"
},
"firmware": {
"type": "string",
"description": "Firmware version of the device"
},
"productType": {
"type": "string",
"description": "Product type of the device"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Additional property name"
},
"value": {
"type": "string",
"description": "Additional property value"
}
}
},
"description": "Additional device information"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"name": "My AP",
"lat": 37.4180951010362,
"lng": -122.098531723022,
"address": "1600 Pennsylvania Ave",
"notes": "My AP's note",
"tags": [
"recently-added"
],
"networkId": "N_24329156",
"serial": "Q234-ABCD-5678",
"model": "MR34",
"imei": "123456789000000",
"mac": "00:11:22:33:44:55",
"lanIp": "1.2.3.4",
"firmware": "wireless-25-14",
"productType": "wireless",
"details": [
{
"name": "Catalyst serial",
"value": "123ABC"
}
]
}
]
}
}
},
"summary": "List the devices in an organization",
"tags": [
"organizations",
"configure",
"devices"
]
}
},
"/organizations/{organizationId}/devices/availabilities": {
"get": {
"description": "List the availability information for devices in an organization. The data returned by this endpoint is updated every 5 minutes.",
"operationId": "getOrganizationDevicesAvailabilities",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Optional parameter to filter device availabilities by network ID. This filter uses multiple exact matches."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "productTypes",
"in": "query",
"description": "Optional parameter to filter device availabilities by device product types. This filter uses multiple exact matches."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Optional parameter to filter device availabilities by device serial numbers. This filter uses multiple exact matches."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "tags",
"in": "query",
"description": "An optional parameter to filter devices by tags. The filtering is case-sensitive. If tags are included, 'tagsFilterType' should also be included (see below). This filter uses multiple exact matches."
},
{
"type": "string",
"enum": [
"withAllTags",
"withAnyTags"
],
"name": "tagsFilterType",
"in": "query",
"description": "An optional parameter of value 'withAnyTags' or 'withAllTags' to indicate whether to return devices which contain ANY or ALL of the included tags. If no type is included, 'withAnyTags' will be selected."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "The device MAC address."
},
"name": {
"type": "string",
"description": "The device name."
},
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID for the network containing the device."
}
},
"description": "Network info."
},
"productType": {
"type": "string",
"enum": [
"appliance",
"camera",
"cellularGateway",
"sensor",
"switch",
"systemsManager",
"wireless"
],
"description": "Device product type."
},
"serial": {
"type": "string",
"description": "The device serial number."
},
"status": {
"type": "string",
"enum": [
"alerting",
"dormant",
"offline",
"online"
],
"description": "Status of the device. Possible values are: online, alerting, offline, dormant."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of custom tags for the device."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"mac": "00:11:22:33:44:55",
"name": "My AP",
"network": {
"id": "N_24329156"
},
"productType": "switch",
"serial": "Q234-ABCD-5678",
"status": "online",
"tags": [
"tag1",
"tag2"
]
}
]
}
}
},
"summary": "List the availability information for devices in an organization",
"tags": [
"organizations",
"monitor",
"devices",
"availabilities"
]
}
},
"/organizations/{organizationId}/devices/availabilities/changeHistory": {
"get": {
"description": "List the availability history information for devices in an organization.",
"operationId": "getOrganizationDevicesAvailabilitiesChangeHistory",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Optional parameter to filter device availabilities history by device serial numbers"
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "productTypes",
"in": "query",
"description": "Optional parameter to filter device availabilities history by device product types"
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Optional parameter to filter device availabilities history by network IDs"
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"alerting",
"dormant",
"offline",
"online"
]
},
"name": "statuses",
"in": "query",
"description": "Optional parameter to filter device availabilities history by device statuses"
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"reboot",
"status",
"upgrade"
]
},
"x-release-stage": "beta",
"name": "categories",
"in": "query",
"description": "Optional parameter to filter device availabilities history by categories of status, reboot, or upgrade"
},
{
"type": "array",
"items": {
"type": "string"
},
"x-release-stage": "beta",
"name": "networkTags",
"in": "query",
"description": "Optional parameter to filter device availabilities history by network tags. The filtering is case-sensitive. If tags are included, 'networkTagsFilterType' should also be included (see below)."
},
{
"type": "string",
"enum": [
"withAllTags",
"withAnyTags"
],
"x-release-stage": "beta",
"name": "networkTagsFilterType",
"in": "query",
"description": "An optional parameter of value 'withAnyTags' or 'withAllTags' to indicate whether to return networks which contain ANY or ALL of the included tags. If no type is included, 'withAnyTags' will be selected."
},
{
"type": "array",
"items": {
"type": "string"
},
"x-release-stage": "beta",
"name": "deviceTags",
"in": "query",
"description": "Optional parameter to filter device availabilities history by device tags. The filtering is case-sensitive. If tags are included, 'deviceTagsFilterType' should also be included (see below)."
},
{
"type": "string",
"enum": [
"withAllTags",
"withAnyTags"
],
"x-release-stage": "beta",
"name": "deviceTagsFilterType",
"in": "query",
"description": "An optional parameter of value 'withAnyTags' or 'withAllTags' to indicate whether to return devices which contain ANY or ALL of the included tags. If no type is included, 'withAnyTags' will be selected."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ts": {
"type": "string",
"format": "date-time",
"description": "Timestamp, in iso8601 format, at which the event happened"
},
"category": {
"type": "string",
"enum": [
"reboot",
"status",
"upgrade"
],
"description": "Category of event: status, reboot, or upgrade",
"x-release-stage": "beta"
},
"device": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
},
"name": {
"type": "string",
"description": "Device name"
},
"productType": {
"type": "string",
"enum": [
"appliance",
"camera",
"cellularGateway",
"sensor",
"switch",
"systemsManager",
"wireless"
],
"description": "Device product type."
},
"model": {
"type": "string",
"description": "Device model"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Device tags",
"x-release-stage": "beta"
}
},
"description": "Device information"
},
"details": {
"type": "object",
"properties": {
"old": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the detail"
},
"value": {
"type": "string",
"description": "Value of the detail"
}
}
},
"description": "Details about the old status"
},
"new": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the detail"
},
"value": {
"type": "string",
"description": "Value of the detail"
}
}
},
"description": "Details about the new status"
}
},
"description": "Details about the status changes"
},
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network id"
},
"name": {
"type": "string",
"description": "Network name"
},
"url": {
"type": "string",
"description": "Network dashboard url"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Network tags"
}
},
"description": "Network information"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"ts": "2018-02-11T00:00:00.090210Z",
"category": "status",
"device": {
"serial": "Q234-ABCD-5678",
"name": "My AP",
"productType": "wireless",
"model": "MR34",
"tags": [
"tag1",
"tag2"
]
},
"details": {
"old": [
{
"name": "status",
"value": "online"
}
],
"new": [
{
"name": "status",
"value": "offline"
}
]
},
"network": {
"id": "N_24329156",
"name": "Main Office",
"url": "https://n1.meraki.com//n//manage/nodes/list",
"tags": [
"tag1",
"tag2"
]
}
}
]
}
}
},
"summary": "List the availability history information for devices in an organization.",
"tags": [
"organizations",
"monitor",
"devices",
"availabilities",
"changeHistory"
]
}
},
"/organizations/{organizationId}/devices/powerModules/statuses/byDevice": {
"get": {
"description": "List the most recent status information for power modules in rackmount MX and MS devices that support them. The data returned by this endpoint is updated every 5 minutes.",
"operationId": "getOrganizationDevicesPowerModulesStatusesByDevice",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Optional parameter to filter device availabilities by network ID. This filter uses multiple exact matches."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "productTypes",
"in": "query",
"description": "Optional parameter to filter device availabilities by device product types. This filter uses multiple exact matches."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Optional parameter to filter device availabilities by device serial numbers. This filter uses multiple exact matches."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "tags",
"in": "query",
"description": "An optional parameter to filter devices by tags. The filtering is case-sensitive. If tags are included, 'tagsFilterType' should also be included (see below). This filter uses multiple exact matches."
},
{
"type": "string",
"enum": [
"withAllTags",
"withAnyTags"
],
"name": "tagsFilterType",
"in": "query",
"description": "An optional parameter of value 'withAnyTags' or 'withAllTags' to indicate whether to return devices which contain ANY or ALL of the included tags. If no type is included, 'withAnyTags' will be selected."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "The device MAC address."
},
"name": {
"type": "string",
"description": "The device name."
},
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID for the network that the device is associated with."
}
},
"description": "Network info."
},
"productType": {
"type": "string",
"enum": [
"appliance",
"camera",
"cellularGateway",
"sensor",
"switch",
"systemsManager",
"wireless"
],
"description": "Device product type."
},
"serial": {
"type": "string",
"description": "The device serial number."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of custom tags for the device."
},
"slots": {
"type": "array",
"items": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"enum": [
0,
1,
2
],
"description": "Which slot the AC power supply occupies. Possible values are: 0, 1, 2."
},
"serial": {
"type": "string",
"description": "The power supply unit serial number."
},
"model": {
"type": "string",
"description": "The power supply unit model."
},
"status": {
"type": "string",
"enum": [
"connected",
"not connected",
"powering"
],
"description": "Status of the power supply unit. Possible values are: connected, not connected, powering."
}
}
},
"description": "Information for the device's AC power supplies."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"mac": "00:11:22:33:44:55",
"name": "My AP",
"network": {
"id": "N_24329156"
},
"productType": "switch",
"serial": "Q234-ABCD-5678",
"tags": [
"tag1",
"tag2"
],
"slots": [
{
"number": 1,
"serial": "Q234-ABCD-5678",
"model": "PWR-C5-125WAC",
"status": "not connected"
}
]
}
]
}
}
},
"summary": "List the most recent status information for power modules in rackmount MX and MS devices that support them",
"tags": [
"organizations",
"monitor",
"devices",
"powerModules",
"statuses",
"byDevice"
]
}
},
"/organizations/{organizationId}/devices/provisioning/statuses": {
"get": {
"description": "List the provisioning statuses information for devices in an organization.",
"operationId": "getOrganizationDevicesProvisioningStatuses",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Optional parameter to filter device by network ID. This filter uses multiple exact matches."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "productTypes",
"in": "query",
"description": "Optional parameter to filter device by device product types. This filter uses multiple exact matches."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Optional parameter to filter device by device serial numbers. This filter uses multiple exact matches."
},
{
"type": "string",
"enum": [
"complete",
"incomplete",
"unprovisioned"
],
"name": "status",
"in": "query",
"description": "An optional parameter to filter devices by the provisioning status. Accepted statuses: unprovisioned, incomplete, complete."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "tags",
"in": "query",
"description": "An optional parameter to filter devices by tags. The filtering is case-sensitive. If tags are included, 'tagsFilterType' should also be included (see below). This filter uses multiple exact matches."
},
{
"type": "string",
"enum": [
"withAllTags",
"withAnyTags"
],
"name": "tagsFilterType",
"in": "query",
"description": "An optional parameter of value 'withAnyTags' or 'withAllTags' to indicate whether to return devices which contain ANY or ALL of the included tags. If no type is included, 'withAnyTags' will be selected."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "The device MAC address."
},
"name": {
"type": "string",
"description": "The device name."
},
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID for the network containing the device."
}
},
"description": "Network info."
},
"productType": {
"type": "string",
"enum": [
"appliance",
"camera",
"cellularGateway",
"sensor",
"switch",
"systemsManager",
"wireless"
],
"description": "Device product type."
},
"serial": {
"type": "string",
"description": "The device serial number."
},
"status": {
"type": "string",
"enum": [
"complete",
"incomplete",
"unprovisioned"
],
"description": "The device provisioning status. Possible statuses: unprovisioned, incomplete, complete."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of custom tags for the device."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"mac": "00:11:22:33:44:55",
"name": "My AP",
"network": {
"id": "N_24329156"
},
"productType": "switch",
"serial": "Q234-ABCD-5678",
"status": "complete",
"tags": [
"tag1",
"tag2"
]
}
]
}
}
},
"summary": "List the provisioning statuses information for devices in an organization.",
"tags": [
"organizations",
"monitor",
"devices",
"provisioning",
"statuses"
]
}
},
"/organizations/{organizationId}/devices/statuses": {
"get": {
"description": "List the status of every Meraki device in the organization",
"operationId": "getOrganizationDevicesStatuses",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Optional parameter to filter devices by network ids."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Optional parameter to filter devices by serials."
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"alerting",
"dormant",
"offline",
"online"
]
},
"name": "statuses",
"in": "query",
"description": "Optional parameter to filter devices by statuses. Valid statuses are [\"online\", \"alerting\", \"offline\", \"dormant\"]."
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"appliance",
"camera",
"cellularGateway",
"sensor",
"switch",
"systemsManager",
"wireless"
]
},
"name": "productTypes",
"in": "query",
"description": "An optional parameter to filter device statuses by product type. Valid types are wireless, appliance, switch, systemsManager, camera, cellularGateway, and sensor."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "models",
"in": "query",
"description": "Optional parameter to filter devices by models."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "tags",
"in": "query",
"description": "An optional parameter to filter devices by tags. The filtering is case-sensitive. If tags are included, 'tagsFilterType' should also be included (see below)."
},
{
"type": "string",
"enum": [
"withAllTags",
"withAnyTags"
],
"name": "tagsFilterType",
"in": "query",
"description": "An optional parameter of value 'withAnyTags' or 'withAllTags' to indicate whether to return devices which contain ANY or ALL of the included tags. If no type is included, 'withAnyTags' will be selected."
},
{
"type": "string",
"format": "date-time",
"x-release-stage": "beta",
"name": "configurationUpdatedAfter",
"in": "query",
"description": "Optional parameter to filter results by whether or not the device's configuration has been updated after the given timestamp"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Device Name"
},
"serial": {
"type": "string",
"description": "Device Serial Number"
},
"mac": {
"type": "string",
"description": "MAC Address"
},
"publicIp": {
"type": "string",
"description": "Public IP Address"
},
"networkId": {
"type": "string",
"description": "Network ID"
},
"status": {
"type": "string",
"description": "Device Status"
},
"lastReportedAt": {
"type": "string",
"description": "Device Last Reported Location"
},
"lanIp": {
"type": "string",
"description": "LAN IP Address"
},
"gateway": {
"type": "string",
"description": "IP Gateway"
},
"ipType": {
"type": "string",
"description": "IP Type"
},
"primaryDns": {
"type": "string",
"description": "Primary DNS"
},
"secondaryDns": {
"type": "string",
"description": "Secondary DNS"
},
"productType": {
"type": "string",
"description": "Product Type"
},
"components": {
"type": "object",
"properties": {
"powerSupplies": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slot": {
"type": "integer",
"description": "Slot the power supply is in"
},
"serial": {
"type": "string",
"description": "Serial of the power supply"
},
"model": {
"type": "string",
"description": "Model of the power supply"
},
"status": {
"type": "string",
"enum": [
"available",
"connected",
"disconnected",
"powered",
"powering",
"standby"
],
"description": "Status of the power supply"
},
"poe": {
"type": "object",
"properties": {
"unit": {
"type": "string",
"description": "Unit of the PoE maximum"
},
"maximum": {
"type": "integer",
"description": "Maximum PoE this power supply can provide when connected to the current switch model"
}
},
"description": "PoE info of the power supply"
}
}
},
"description": "Power Supplies"
}
},
"description": "Components"
},
"model": {
"type": "string",
"description": "Model"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tags"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"name": "My AP",
"serial": "Q234-ABCD-5678",
"mac": "00:11:22:33:44:55",
"publicIp": "123.123.123.1",
"networkId": "N_24329156",
"status": "online",
"lastReportedAt": "2018-02-11T00:00:00.090210Z",
"lanIp": "1.2.3.4",
"gateway": "1.2.3.5",
"ipType": "dhcp",
"primaryDns": "8.8.8.8",
"secondaryDns": "8.8.4.4",
"productType": "wireless",
"components": {
"powerSupplies": [
{
"slot": 1,
"serial": "QABC-1234-5678",
"model": "PWR-MS320-1025WAC",
"status": "powering",
"poe": {
"unit": "watts",
"maximum": 740
}
}
]
},
"model": "MR34",
"tags": [
"tag1",
"tag2"
]
}
]
}
}
},
"summary": "List the status of every Meraki device in the organization",
"tags": [
"organizations",
"monitor",
"devices",
"statuses"
]
}
},
"/organizations/{organizationId}/devices/statuses/overview": {
"get": {
"description": "Return an overview of current device statuses",
"operationId": "getOrganizationDevicesStatusesOverview",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"appliance",
"camera",
"cellularGateway",
"sensor",
"switch",
"systemsManager",
"wireless"
]
},
"name": "productTypes",
"in": "query",
"description": "An optional parameter to filter device statuses by product type. Valid types are wireless, appliance, switch, systemsManager, camera, cellularGateway, and sensor."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "An optional parameter to filter device statuses by network."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"counts": {
"type": "object",
"properties": {
"byStatus": {
"type": "object",
"properties": {
"online": {
"type": "integer",
"description": "online count"
},
"alerting": {
"type": "integer",
"description": "alerting count"
},
"offline": {
"type": "integer",
"description": "offline count"
},
"dormant": {
"type": "integer",
"description": "dormant count"
}
},
"description": "byStatus"
}
},
"description": "counts"
}
}
},
"examples": {
"application/json": {
"counts": {
"byStatus": {
"online": 5,
"alerting": 4,
"offline": 2,
"dormant": 1
}
}
}
}
}
},
"summary": "Return an overview of current device statuses",
"tags": [
"organizations",
"monitor",
"devices",
"statuses",
"overview"
]
}
},
"/organizations/{organizationId}/devices/uplinks/addresses/byDevice": {
"get": {
"description": "List the current uplink addresses for devices in an organization.",
"operationId": "getOrganizationDevicesUplinksAddressesByDevice",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Optional parameter to filter device uplinks by network ID. This filter uses multiple exact matches."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "productTypes",
"in": "query",
"description": "Optional parameter to filter device uplinks by device product types. This filter uses multiple exact matches."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Optional parameter to filter device availabilities by device serial numbers. This filter uses multiple exact matches."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "tags",
"in": "query",
"description": "An optional parameter to filter devices by tags. The filtering is case-sensitive. If tags are included, 'tagsFilterType' should also be included (see below). This filter uses multiple exact matches."
},
{
"type": "string",
"enum": [
"withAllTags",
"withAnyTags"
],
"name": "tagsFilterType",
"in": "query",
"description": "An optional parameter of value 'withAnyTags' or 'withAllTags' to indicate whether to return devices which contain ANY or ALL of the included tags. If no type is included, 'withAnyTags' will be selected."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "The device MAC address."
},
"name": {
"type": "string",
"description": "The device name."
},
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID for the network containing the device."
}
},
"description": "Network info."
},
"productType": {
"type": "string",
"enum": [
"appliance",
"camera",
"cellularGateway",
"sensor",
"switch",
"systemsManager",
"wireless"
],
"description": "Device product type."
},
"serial": {
"type": "string",
"description": "The device serial number."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of custom tags for the device."
},
"uplinks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"interface": {
"type": "string",
"enum": [
"cellular",
"man1",
"man2",
"wan1",
"wan2"
],
"description": "Interface for the device uplink. Available options are: cellular, man1, man2, wan1, wan2"
},
"addresses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"enum": [
"ipv4",
"ipv6"
],
"description": "Type of address for the device uplink. Available options are: ipv4, ipv6."
},
"assignmentMode": {
"type": "string",
"enum": [
"dynamic",
"static"
],
"description": "Indicates how the device uplink address is assigned. Available options are: static, dynamic."
},
"address": {
"type": "string",
"description": "Device uplink address."
},
"gateway": {
"type": "string",
"description": "Device uplink gateway address."
},
"public": {
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "The device uplink public IP address."
}
},
"description": "Public interface information."
}
}
},
"description": "Available addresses for the interface."
}
}
},
"description": "List of device uplink addresses information."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"mac": "00:11:22:33:44:55",
"name": "My AP",
"network": {
"id": "N_24329156"
},
"productType": "switch",
"serial": "Q234-ABCD-5678",
"tags": [
"tag1",
"tag2"
],
"uplinks": [
{
"interface": "wan1",
"addresses": [
{
"protocol": "ipv6",
"assignmentMode": "static",
"address": "2001:db8:c15:c0:d0c::101:ca75",
"gateway": "fe80:db8:c15:c0:d0c::10ca:1d02",
"public": {
"address": "2001:db8:c15:c0:d0c:15e:15e:bab1"
}
}
]
}
]
}
]
}
}
},
"summary": "List the current uplink addresses for devices in an organization.",
"tags": [
"organizations",
"monitor",
"devices",
"uplinks",
"addresses",
"byDevice"
]
}
},
"/organizations/{organizationId}/devices/uplinksLossAndLatency": {
"get": {
"description": "Return the uplink loss and latency for every MX in the organization from at latest 2 minutes ago",
"operationId": "getOrganizationDevicesUplinksLossAndLatency",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 60 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 5 minutes after t0. The latest possible time that t1 can be is 2 minutes into the past."
},
{
"type": "number",
"format": "float",
"maximum": 300,
"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 5 minutes. The default is 5 minutes."
},
{
"type": "string",
"enum": [
"cellular",
"wan1",
"wan2",
"wan3"
],
"name": "uplink",
"in": "query",
"description": "Optional filter for a specific WAN uplink. Valid uplinks are wan1, wan2, wan3, cellular. Default will return all uplinks."
},
{
"type": "string",
"name": "ip",
"in": "query",
"description": "Optional filter for a specific destination IP. Default will return all destination IPs."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "Network ID"
},
"serial": {
"type": "string",
"description": "Serial of MX device"
},
"uplink": {
"type": "string",
"description": "Uplink interface (wan1, wan2, or cellular)"
},
"ip": {
"type": "string",
"description": "IP address of uplink"
},
"timeSeries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ts": {
"type": "string",
"format": "date-time",
"description": "Timestamp for this data point"
},
"lossPercent": {
"type": "number",
"format": "float",
"description": "Loss percentage"
},
"latencyMs": {
"type": "number",
"format": "float",
"description": "Latency in milliseconds"
}
}
},
"description": "Loss and latency timeseries data"
}
}
}
},
"examples": {
"application/json": [
{
"networkId": "N_24329156",
"serial": "Q234-ABCD-5678",
"uplink": "wan1",
"ip": "1.2.3.4",
"timeSeries": [
{
"ts": "2019-01-31T18:46:13Z",
"lossPercent": 5.3,
"latencyMs": 194.9
}
]
}
]
}
}
},
"summary": "Return the uplink loss and latency for every MX in the organization from at latest 2 minutes ago",
"tags": [
"organizations",
"monitor",
"devices",
"uplinks",
"uplinksLossAndLatency"
]
}
},
"/organizations/{organizationId}/earlyAccess/features": {
"get": {
"description": "List the available early access features for organization",
"operationId": "getOrganizationEarlyAccessFeatures",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"shortName": {
"type": "string",
"description": "Short name of the early access feature"
},
"name": {
"type": "string",
"description": "Name of the early access feature"
},
"descriptions": {
"type": "object",
"properties": {
"short": {
"type": "string",
"description": "Short description"
},
"long": {
"type": "string",
"description": "Long description"
}
},
"description": "Descriptions of the early access feature"
},
"topic": {
"type": "string",
"description": "Topic of the early access feature"
},
"isOrgScopedOnly": {
"type": "boolean",
"description": "If this early access feature can only be opted in for the entire organization"
},
"documentationLink": {
"type": "string",
"description": "Link to the documentation of this early access feature"
},
"supportLink": {
"type": "string",
"description": "Link to get support for this early access feature"
}
}
}
},
"examples": {
"application/json": [
{
"shortName": "has_new_feature",
"name": "New Feature Beta",
"descriptions": {
"short": "New Feature Beta",
"long": "New Feature Beta long description. consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
},
"topic": "Dashboard",
"isOrgScopedOnly": true,
"documentationLink": "https://documentation.meraki.com/",
"supportLink": "https://community.meraki.com/"
}
]
}
}
},
"summary": "List the available early access features for organization",
"tags": [
"organizations",
"configure",
"earlyAccess",
"features"
]
}
},
"/organizations/{organizationId}/earlyAccess/features/optIns": {
"get": {
"description": "List the early access feature opt-ins for an organization",
"operationId": "getOrganizationEarlyAccessFeaturesOptIns",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of Early Access Feature"
},
"shortName": {
"type": "string",
"description": "Name of Early Access Feature"
},
"limitScopeToNetworks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of Network"
},
"name": {
"type": "string",
"description": "Name of Network"
}
}
},
"description": "Networks assigned to the Early Access Feature"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Time when Early Access Feature was created"
}
}
},
"examples": {
"application/json": {
"id": "1",
"shortName": "has_new_feature",
"limitScopeToNetworks": [
{
"id": "L_1234",
"name": "My Network"
}
],
"createdAt": "2022-05-01T04:07:15Z"
}
}
}
},
"summary": "List the early access feature opt-ins for an organization",
"tags": [
"organizations",
"configure",
"earlyAccess",
"features",
"optIns"
]
},
"post": {
"description": "Create a new early access feature opt-in for an organization",
"operationId": "createOrganizationEarlyAccessFeaturesOptIn",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationEarlyAccessFeaturesOptIn",
"in": "body",
"schema": {
"type": "object",
"properties": {
"shortName": {
"type": "string",
"description": "Short name of the early access feature"
},
"limitScopeToNetworks": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of network IDs to apply the opt-in to"
}
},
"example": {
"shortName": "has_magnetic_beta",
"limitScopeToNetworks": [
"N_12345"
]
},
"required": [
"shortName"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of Early Access Feature"
},
"shortName": {
"type": "string",
"description": "Name of Early Access Feature"
},
"limitScopeToNetworks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of Network"
},
"name": {
"type": "string",
"description": "Name of Network"
}
}
},
"description": "Networks assigned to the Early Access Feature"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Time when Early Access Feature was created"
}
}
},
"examples": {
"application/json": {
"id": "1",
"shortName": "has_new_feature",
"limitScopeToNetworks": [
{
"id": "L_1234",
"name": "My Network"
}
],
"createdAt": "2022-05-01T04:07:15Z"
}
}
}
},
"summary": "Create a new early access feature opt-in for an organization",
"tags": [
"organizations",
"configure",
"earlyAccess",
"features",
"optIns"
]
}
},
"/organizations/{organizationId}/earlyAccess/features/optIns/{optInId}": {
"get": {
"description": "Show an early access feature opt-in for an organization",
"operationId": "getOrganizationEarlyAccessFeaturesOptIn",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "optInId",
"in": "path",
"description": "Opt in ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of Early Access Feature"
},
"shortName": {
"type": "string",
"description": "Name of Early Access Feature"
},
"limitScopeToNetworks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of Network"
},
"name": {
"type": "string",
"description": "Name of Network"
}
}
},
"description": "Networks assigned to the Early Access Feature"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Time when Early Access Feature was created"
}
}
},
"examples": {
"application/json": {
"id": "1",
"shortName": "has_new_feature",
"limitScopeToNetworks": [
{
"id": "L_1234",
"name": "My Network"
}
],
"createdAt": "2022-05-01T04:07:15Z"
}
}
}
},
"summary": "Show an early access feature opt-in for an organization",
"tags": [
"organizations",
"configure",
"earlyAccess",
"features",
"optIns"
]
},
"put": {
"description": "Update an early access feature opt-in for an organization",
"operationId": "updateOrganizationEarlyAccessFeaturesOptIn",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "optInId",
"in": "path",
"description": "Opt in ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationEarlyAccessFeaturesOptIn",
"in": "body",
"schema": {
"type": "object",
"properties": {
"limitScopeToNetworks": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of network IDs to apply the opt-in to"
}
},
"example": {
"limitScopeToNetworks": [
"N_12345"
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of Early Access Feature"
},
"shortName": {
"type": "string",
"description": "Name of Early Access Feature"
},
"limitScopeToNetworks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of Network"
},
"name": {
"type": "string",
"description": "Name of Network"
}
}
},
"description": "Networks assigned to the Early Access Feature"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Time when Early Access Feature was created"
}
}
},
"examples": {
"application/json": {
"id": "1",
"shortName": "has_new_feature",
"limitScopeToNetworks": [
{
"id": "L_1234",
"name": "My Network"
}
],
"createdAt": "2022-05-01T04:07:15Z"
}
}
}
},
"summary": "Update an early access feature opt-in for an organization",
"tags": [
"organizations",
"configure",
"earlyAccess",
"features",
"optIns"
]
},
"delete": {
"description": "Delete an early access feature opt-in",
"operationId": "deleteOrganizationEarlyAccessFeaturesOptIn",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "optInId",
"in": "path",
"description": "Opt in ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete an early access feature opt-in",
"tags": [
"organizations",
"configure",
"earlyAccess",
"features",
"optIns"
]
}
},
"/organizations/{organizationId}/extensions/thousandEyes/networks": {
"get": {
"description": "List the ThousandEyes agent configurations under this organization. Only valid for networks with access to Meraki Insight. Organization must have a ThousandEyes account connected to perform this action.",
"operationId": "getOrganizationExtensionsThousandEyesNetworks",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "Network that will have the ThousandEyes agent installed on"
},
"enabled": {
"type": "boolean",
"description": "Whether or not the ThousandEyes agent is enabled for the network"
},
"agentId": {
"type": "string",
"description": "ThousandEyes agent identifier"
}
}
}
},
"examples": {
"application/json": [
{
"networkId": "N_24329156",
"enabled": true,
"agentId": "12345"
}
]
}
}
},
"summary": "List the ThousandEyes agent configurations under this organization",
"tags": [
"organizations",
"configure",
"extensions",
"thousandEyes",
"networks"
],
"x-release-stage": "beta"
},
"post": {
"description": "Add a ThousandEyes agent for this network. Only valid for networks with access to Meraki Insight. Organization must have a ThousandEyes account connected to perform this action.",
"operationId": "createOrganizationExtensionsThousandEyesNetwork",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationExtensionsThousandEyesNetwork",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether or not the ThousandEyes agent is enabled for the network."
},
"networkId": {
"type": "string",
"description": "Network that will have the ThousandEyes agent installed on."
},
"tests": {
"type": "array",
"items": {
"type": "object",
"properties": {
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network Id e.g. N_12345"
}
},
"required": [
"id"
],
"description": "Network"
},
"template": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Template id"
},
"userInputs": {
"type": "object",
"properties": {
"tenant": {
"type": "string",
"description": "Tenant value"
}
},
"description": "Optional object containing customizable value for tenant"
}
},
"required": [
"id"
],
"description": "Thousand Eye test template object, maximun size: 1000"
}
},
"required": [
"network",
"template"
]
},
"description": "An array of tests to be created"
}
},
"example": {
"enabled": true,
"networkId": "N_123456",
"tests": [
{
"network": {
"id": "N_123456"
},
"template": {
"id": "123abc",
"userInputs": {
"tenant": "cisco"
}
}
}
]
},
"required": [
"enabled",
"networkId"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "Network that will have the ThousandEyes agent installed on"
},
"enabled": {
"type": "boolean",
"description": "Whether or not the ThousandEyes agent is enabled for the network"
},
"agentId": {
"type": "string",
"description": "ThousandEyes agent identifier"
}
}
},
"examples": {
"application/json": {
"networkId": "N_24329156",
"enabled": true,
"agentId": "12345"
}
}
}
},
"summary": "Add a ThousandEyes agent for this network",
"tags": [
"organizations",
"configure",
"extensions",
"thousandEyes",
"networks"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/extensions/thousandEyes/networks/supported": {
"get": {
"description": "List all the networks eligible for ThousandEyes agent activation under this organization.",
"operationId": "getOrganizationExtensionsThousandEyesNetworksSupported",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 100."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "boolean",
"name": "agentInstalled",
"in": "query",
"description": "Set to true to get only networks with installed ThousandEyes agent; set to false to get networks without agents."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "ID of the network"
},
"name": {
"type": "string",
"description": "Name of the network"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Network tags"
},
"device": {
"type": "object",
"properties": {
"model": {
"type": "string",
"description": "Model of the network primary MX device"
},
"firmware": {
"type": "object",
"properties": {
"currentVersion": {
"type": "object",
"properties": {
"shortName": {
"type": "string",
"description": "Network primary MX device firmware current version short name"
}
},
"description": "Network primary MX device firmware current version"
}
},
"description": "Network primary MX device firmware"
},
"agent": {
"type": "object",
"properties": {
"isInstalled": {
"type": "boolean",
"description": "Indicates if network has ThousandEyes agent installed"
}
},
"description": "ThousandEyes agent"
}
},
"description": "Network primary MX device"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"networkId": "N_24329156",
"name": "Main Office",
"tags": [
"tag1",
"tag2"
],
"device": {
"model": "MX105",
"firmware": {
"currentVersion": {
"shortName": "MX 18.104"
}
},
"agent": {
"isInstalled": false
}
}
}
]
}
}
},
"summary": "List all the networks eligible for ThousandEyes agent activation under this organization.",
"tags": [
"organizations",
"configure",
"extensions",
"thousandEyes",
"networks",
"supported"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/extensions/thousandEyes/networks/{networkId}": {
"get": {
"description": "List the ThousandEyes agent configuration under this network. Only valid for networks with access to Meraki Insight. Organization must have a ThousandEyes account connected to perform this action.",
"operationId": "getOrganizationExtensionsThousandEyesNetwork",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "Network that will have the ThousandEyes agent installed on"
},
"enabled": {
"type": "boolean",
"description": "Whether or not the ThousandEyes agent is enabled for the network"
},
"agentId": {
"type": "string",
"description": "ThousandEyes agent identifier"
}
}
},
"examples": {
"application/json": {
"networkId": "N_24329156",
"enabled": true,
"agentId": "12345"
}
}
}
},
"summary": "List the ThousandEyes agent configuration under this network",
"tags": [
"organizations",
"configure",
"extensions",
"thousandEyes",
"networks"
],
"x-release-stage": "beta"
},
"put": {
"description": "Update a ThousandEyes agent from this network. Only valid for networks with access to Meraki Insight. Organization must have a ThousandEyes account connected to perform this action.",
"operationId": "updateOrganizationExtensionsThousandEyesNetwork",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationExtensionsThousandEyesNetwork",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether or not the ThousandEyes agent is enabled for the network."
}
},
"example": {
"enabled": true
},
"required": [
"enabled"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "Network that will have the ThousandEyes agent installed on"
},
"enabled": {
"type": "boolean",
"description": "Whether or not the ThousandEyes agent is enabled for the network"
},
"agentId": {
"type": "string",
"description": "ThousandEyes agent identifier"
}
}
},
"examples": {
"application/json": {
"networkId": "N_24329156",
"enabled": true,
"agentId": "12345"
}
}
}
},
"summary": "Update a ThousandEyes agent from this network",
"tags": [
"organizations",
"configure",
"extensions",
"thousandEyes",
"networks"
],
"x-release-stage": "beta"
},
"delete": {
"description": "Delete a ThousandEyes agent from this network. Only valid for networks with access to Meraki Insight. Organization must have a ThousandEyes account connected to perform this action.",
"operationId": "deleteOrganizationExtensionsThousandEyesNetwork",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "networkId",
"in": "path",
"description": "Network ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a ThousandEyes agent from this network",
"tags": [
"organizations",
"configure",
"extensions",
"thousandEyes",
"networks"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/extensions/thousandEyes/tests": {
"post": {
"description": "Create a ThousandEyes test based on a provided test template. Only valid for networks with access to Meraki Insight. Organization must have a ThousandEyes account connected to perform this action.",
"operationId": "createOrganizationExtensionsThousandEyesTest",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationExtensionsThousandEyesTest",
"in": "body",
"schema": {
"type": "object",
"properties": {
"tests": {
"type": "array",
"items": {
"type": "object",
"properties": {
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network Id e.g. N_12345"
}
},
"required": [
"id"
],
"description": "Network"
},
"template": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Template id"
},
"userInputs": {
"type": "object",
"properties": {
"tenant": {
"type": "string",
"description": "Tenant value"
}
},
"description": "Optional object containing customizable value for tenant"
}
},
"required": [
"id"
],
"description": "Thousand Eye test template object, maximun size: 1000"
}
},
"required": [
"network",
"template"
]
},
"description": "An array of tests to be created"
}
},
"example": {
"tests": [
{
"network": {
"id": "N_123456"
},
"template": {
"id": "123abc",
"userInputs": {
"tenant": "cisco"
}
}
}
]
}
}
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"jobStatus": {
"type": "string",
"description": "Status of PCC background job"
},
"pccBackgroundJob": {
"type": "string",
"description": "Number of PCC Background Job"
}
}
},
"examples": {
"application/json": {
"jobStatus": "new",
"pccBackgroundJob": "13289785"
}
}
}
},
"summary": "Create a ThousandEyes test based on a provided test template",
"tags": [
"organizations",
"configure",
"extensions",
"thousandEyes",
"tests"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/firmware/upgrades": {
"get": {
"description": "Get firmware upgrade information for an organization",
"operationId": "getOrganizationFirmwareUpgrades",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "status",
"in": "query",
"description": "Optional parameter to filter the upgrade by status."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "productTypes",
"in": "query",
"description": "Optional parameter to filter the upgrade by product type."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"upgradeId": {
"type": "string",
"description": "The upgrade"
},
"upgradeBatchId": {
"type": "string",
"description": "The upgrade batch"
},
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of network"
},
"name": {
"type": "string",
"description": "The network"
}
},
"description": "Network of the upgrade"
},
"status": {
"type": "string",
"description": "Status of upgrade event: [Cancelled, Completed]"
},
"time": {
"type": "string",
"format": "date-time",
"description": "Scheduled start time"
},
"completedAt": {
"type": "string",
"description": "Timestamp when upgrade completed. Null if status pending."
},
"productTypes": {
"type": "string",
"description": "product upgraded [wireless, appliance, switch, systemsManager, camera, cellularGateway, sensor]"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version ID"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"firmware": {
"type": "string",
"description": "Firmware name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "ID of the upgrade's target version"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Firmware version ID"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"firmware": {
"type": "string",
"description": "Firmware name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"format": "date-time",
"description": "Release date of the firmware version"
}
},
"description": "ID of the upgrade's starting version"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"upgradeId": "1234",
"upgradeBatchId": "5678",
"network": {
"id": "L_1738",
"name": "Minions"
},
"status": "Completed",
"time": "2022-11-01T00:00:00Z",
"completedAt": "2020-11-05 15:50:05 UTC",
"productTypes": "wireless",
"toVersion": {
"id": "2888",
"shortName": "MR 11.2.1",
"firmware": "wireless-11-2-1",
"releaseType": "stable",
"releaseDate": "2022-03-17T17:22:52Z"
},
"fromVersion": {
"id": "2887",
"shortName": "MR 11.2.1",
"firmware": "wireless-11-2-1",
"releaseType": "stable",
"releaseDate": "2022-03-17T17:22:52Z"
}
}
]
}
}
},
"summary": "Get firmware upgrade information for an organization",
"tags": [
"organizations",
"configure",
"firmware",
"upgrades"
]
}
},
"/organizations/{organizationId}/firmware/upgrades/byDevice": {
"get": {
"description": "Get firmware upgrade status for the filtered devices. This endpoint currently only supports Meraki switches.",
"operationId": "getOrganizationFirmwareUpgradesByDevice",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 50."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Optional parameter to filter by network"
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Optional parameter to filter by serial number. All returned devices will have a serial number that is an exact match."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "macs",
"in": "query",
"description": "Optional parameter to filter by one or more MAC addresses belonging to devices. All devices returned belong to MAC addresses that are an exact match."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "firmwareUpgradeBatchIds",
"in": "query",
"description": "Optional parameter to filter by firmware upgrade batch ids."
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"canceled",
"completed",
"scheduled",
"started"
]
},
"name": "upgradeStatuses",
"in": "query",
"description": "Optional parameter to filter by firmware upgrade statuses."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Serial of the device"
},
"name": {
"type": "string",
"description": "Name assigned to the device"
},
"deviceStatus": {
"type": "string",
"description": "Status of the device upgrade"
},
"upgrade": {
"type": "object",
"properties": {
"time": {
"type": "string",
"description": "Start time of the upgrade"
},
"fromVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the initial firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"description": "Release date of the firmware version"
}
},
"description": "The initial version of the device"
},
"toVersion": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the initial firmware version"
},
"shortName": {
"type": "string",
"description": "Firmware version short name"
},
"releaseType": {
"type": "string",
"description": "Release type of the firmware version"
},
"releaseDate": {
"type": "string",
"description": "Release date of the firmware version"
}
},
"description": "Version the device is upgrading to"
},
"status": {
"type": "string",
"description": "Status of the upgrade"
},
"id": {
"type": "string",
"description": "ID of the upgrade"
},
"upgradeBatchId": {
"type": "string",
"description": "ID of the upgrade batch"
},
"staged": {
"type": "object",
"properties": {
"group": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Id of the staged upgrade group"
}
},
"description": "The staged upgrade group"
}
},
"description": "Staged upgrade"
}
},
"description": "The devices upgrade details and status"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"serial": "Q234-ABCD-5678",
"name": "My switch",
"deviceStatus": "completed",
"upgrade": {
"time": "2018-02-11T00:00:00.090210Z",
"fromVersion": {
"id": "1234",
"shortName": "MS 16.7",
"releaseType": "stable",
"releaseDate": "2018-02-11T00:00:00.090210Z"
},
"toVersion": {
"id": "1234",
"shortName": "MS 16.7.1",
"releaseType": "stable",
"releaseDate": "2018-02-11T00:00:00.090210Z"
},
"status": "Completed",
"id": "1234",
"upgradeBatchId": "1234",
"staged": {
"group": {
"id": "1234"
}
}
}
}
]
}
}
},
"summary": "Get firmware upgrade status for the filtered devices",
"tags": [
"organizations",
"configure",
"firmware",
"upgrades",
"byDevice"
]
}
},
"/organizations/{organizationId}/insight/applications": {
"get": {
"description": "List all Insight tracked applications",
"operationId": "getOrganizationInsightApplications",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"applicationId": {
"type": "string",
"description": "Application identifier"
},
"name": {
"type": "string",
"description": "Application name"
},
"thresholds": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Threshold type (static or smart)"
},
"byNetwork": {
"type": "array",
"items": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "Network identifier"
},
"goodput": {
"type": "integer",
"description": "Number of useful information bits delivered over a network per unit of time"
},
"responseDuration": {
"type": "integer",
"description": "Duration of the response, in milliseconds"
}
}
},
"description": "Threshold for each network"
}
},
"description": "Thresholds defined by a user or Meraki models for each application"
}
}
}
},
"examples": {
"application/json": [
{
"applicationId": "19.12",
"name": "Meraki HTTPS",
"thresholds": {
"type": "smart",
"byNetwork": [
{
"networkId": "N_12345678",
"goodput": 50000,
"responseDuration": 1000
}
]
}
}
]
}
}
},
"summary": "List all Insight tracked applications",
"tags": [
"insight",
"configure",
"applications"
]
},
"post": {
"description": "Add an Insight tracked application",
"operationId": "createOrganizationInsightApplication",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationInsightApplication",
"in": "body",
"schema": {
"type": "object",
"properties": {
"counterSetRuleId": {
"type": "integer",
"description": "The id of the counter set rule"
},
"enableSmartThresholds": {
"type": "boolean",
"description": "Enable Smart Thresholds"
},
"thresholds": {
"type": "object",
"properties": {
"goodput": {
"type": "integer",
"description": "Number of useful information bits delivered over a network per unit of time"
},
"responseTime": {
"type": "integer",
"description": "Duration of the response, in milliseconds"
}
},
"description": "Thresholds defined by a user for each application"
}
},
"example": {
"counterSetRuleId": 12345,
"enableSmartThresholds": false,
"thresholds": {
"goodput": 20000,
"responseTime": 3000
}
},
"required": [
"counterSetRuleId"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"applicationId": {
"type": "string",
"description": "Application identifier"
},
"name": {
"type": "string",
"description": "Application name"
},
"thresholds": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Threshold type (static or smart)"
},
"byNetwork": {
"type": "array",
"items": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "Network identifier"
},
"goodput": {
"type": "integer",
"description": "Number of useful information bits delivered over a network per unit of time"
},
"responseDuration": {
"type": "integer",
"description": "Duration of the response, in milliseconds"
}
}
},
"description": "Threshold for each network"
}
},
"description": "Thresholds defined by a user or Meraki models for each application"
}
}
},
"examples": {
"application/json": {
"applicationId": "19.12",
"name": "Meraki HTTPS",
"thresholds": {
"type": "smart",
"byNetwork": [
{
"networkId": "N_12345678",
"goodput": 50000,
"responseDuration": 1000
}
]
}
}
}
}
},
"summary": "Add an Insight tracked application",
"tags": [
"insight",
"configure",
"applications"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/insight/applications/{applicationId}": {
"put": {
"description": "Update an Insight tracked application",
"operationId": "updateOrganizationInsightApplication",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "applicationId",
"in": "path",
"description": "Application ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationInsightApplication",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enableSmartThresholds": {
"type": "boolean",
"description": "Enable Smart Thresholds"
},
"thresholds": {
"type": "object",
"properties": {
"goodput": {
"type": "integer",
"description": "Number of useful information bits delivered over a network per unit of time"
},
"responseTime": {
"type": "integer",
"description": "Duration of the response, in milliseconds"
}
},
"description": "Thresholds defined by a user for each application"
}
},
"example": {
"enableSmartThresholds": false,
"thresholds": {
"goodput": 20000,
"responseTime": 3000
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"applicationId": {
"type": "string",
"description": "Application identifier"
},
"name": {
"type": "string",
"description": "Application name"
},
"thresholds": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Threshold type (static or smart)"
},
"byNetwork": {
"type": "array",
"items": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "Network identifier"
},
"goodput": {
"type": "integer",
"description": "Number of useful information bits delivered over a network per unit of time"
},
"responseDuration": {
"type": "integer",
"description": "Duration of the response, in milliseconds"
}
}
},
"description": "Threshold for each network"
}
},
"description": "Thresholds defined by a user or Meraki models for each application"
}
}
},
"examples": {
"application/json": {
"applicationId": "19.12",
"name": "Meraki HTTPS",
"thresholds": {
"type": "smart",
"byNetwork": [
{
"networkId": "N_12345678",
"goodput": 50000,
"responseDuration": 1000
}
]
}
}
}
}
},
"summary": "Update an Insight tracked application",
"tags": [
"insight",
"configure",
"applications"
],
"x-release-stage": "beta"
},
"delete": {
"description": "Delete an Insight tracked application",
"operationId": "deleteOrganizationInsightApplication",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "applicationId",
"in": "path",
"description": "Application ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete an Insight tracked application",
"tags": [
"insight",
"configure",
"applications"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/insight/monitoredMediaServers": {
"get": {
"description": "List the monitored media servers for this organization. Only valid for organizations with Meraki Insight.",
"operationId": "getOrganizationInsightMonitoredMediaServers",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Monitored media server id"
},
"name": {
"type": "string",
"description": "The name of the VoIP provider"
},
"address": {
"type": "string",
"description": "The IP address (IPv4 only) or hostname of the media server to monitor"
},
"bestEffortMonitoringEnabled": {
"type": "boolean",
"description": "Indicates that if the media server doesn't respond to ICMP pings, the nearest hop will be used in its stead"
}
}
}
},
"examples": {
"application/json": [
{
"id": "1284392014819",
"name": "Sample VoIP Provider",
"address": "123.123.123.1",
"bestEffortMonitoringEnabled": true
}
]
}
}
},
"summary": "List the monitored media servers for this organization",
"tags": [
"insight",
"configure",
"monitoredMediaServers"
]
},
"post": {
"description": "Add a media server to be monitored for this organization. Only valid for organizations with Meraki Insight.",
"operationId": "createOrganizationInsightMonitoredMediaServer",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationInsightMonitoredMediaServer",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the VoIP provider"
},
"address": {
"type": "string",
"description": "The IP address (IPv4 only) or hostname of the media server to monitor"
},
"bestEffortMonitoringEnabled": {
"type": "boolean",
"description": "Indicates that if the media server doesn't respond to ICMP pings, the nearest hop will be used in its stead."
}
},
"example": {
"name": "Sample VoIP Provider",
"address": "123.123.123.1",
"bestEffortMonitoringEnabled": true
},
"required": [
"name",
"address"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Monitored media server id"
},
"name": {
"type": "string",
"description": "The name of the VoIP provider"
},
"address": {
"type": "string",
"description": "The IP address (IPv4 only) or hostname of the media server to monitor"
},
"bestEffortMonitoringEnabled": {
"type": "boolean",
"description": "Indicates that if the media server doesn't respond to ICMP pings, the nearest hop will be used in its stead"
}
}
},
"examples": {
"application/json": {
"id": "1284392014819",
"name": "Sample VoIP Provider",
"address": "123.123.123.1",
"bestEffortMonitoringEnabled": true
}
}
}
},
"summary": "Add a media server to be monitored for this organization",
"tags": [
"insight",
"configure",
"monitoredMediaServers"
]
}
},
"/organizations/{organizationId}/insight/monitoredMediaServers/{monitoredMediaServerId}": {
"get": {
"description": "Return a monitored media server for this organization. Only valid for organizations with Meraki Insight.",
"operationId": "getOrganizationInsightMonitoredMediaServer",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "monitoredMediaServerId",
"in": "path",
"description": "Monitored media server ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Monitored media server id"
},
"name": {
"type": "string",
"description": "The name of the VoIP provider"
},
"address": {
"type": "string",
"description": "The IP address (IPv4 only) or hostname of the media server to monitor"
},
"bestEffortMonitoringEnabled": {
"type": "boolean",
"description": "Indicates that if the media server doesn't respond to ICMP pings, the nearest hop will be used in its stead"
}
}
},
"examples": {
"application/json": {
"id": "1284392014819",
"name": "Sample VoIP Provider",
"address": "123.123.123.1",
"bestEffortMonitoringEnabled": true
}
}
}
},
"summary": "Return a monitored media server for this organization",
"tags": [
"insight",
"configure",
"monitoredMediaServers"
]
},
"put": {
"description": "Update a monitored media server for this organization. Only valid for organizations with Meraki Insight.",
"operationId": "updateOrganizationInsightMonitoredMediaServer",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "monitoredMediaServerId",
"in": "path",
"description": "Monitored media server ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationInsightMonitoredMediaServer",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the VoIP provider"
},
"address": {
"type": "string",
"description": "The IP address (IPv4 only) or hostname of the media server to monitor"
},
"bestEffortMonitoringEnabled": {
"type": "boolean",
"description": "Indicates that if the media server doesn't respond to ICMP pings, the nearest hop will be used in its stead."
}
},
"example": {
"name": "Sample VoIP Provider",
"address": "123.123.123.1",
"bestEffortMonitoringEnabled": true
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Monitored media server id"
},
"name": {
"type": "string",
"description": "The name of the VoIP provider"
},
"address": {
"type": "string",
"description": "The IP address (IPv4 only) or hostname of the media server to monitor"
},
"bestEffortMonitoringEnabled": {
"type": "boolean",
"description": "Indicates that if the media server doesn't respond to ICMP pings, the nearest hop will be used in its stead"
}
}
},
"examples": {
"application/json": {
"id": "1284392014819",
"name": "Sample VoIP Provider",
"address": "123.123.123.1",
"bestEffortMonitoringEnabled": true
}
}
}
},
"summary": "Update a monitored media server for this organization",
"tags": [
"insight",
"configure",
"monitoredMediaServers"
]
},
"delete": {
"description": "Delete a monitored media server from this organization. Only valid for organizations with Meraki Insight.",
"operationId": "deleteOrganizationInsightMonitoredMediaServer",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "monitoredMediaServerId",
"in": "path",
"description": "Monitored media server ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a monitored media server from this organization",
"tags": [
"insight",
"configure",
"monitoredMediaServers"
]
}
},
"/organizations/{organizationId}/insight/speedTestResults": {
"get": {
"description": "List the speed tests for the given devices under this organization. Only valid for organizations with Meraki Insight.",
"operationId": "getOrganizationInsightSpeedTestResults",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"required": true,
"description": "A list of serial numbers. The returned results will be filtered to only include these serials."
},
{
"type": "integer",
"name": "timespan",
"in": "query",
"description": "Amount of seconds ago to query for results. Only include timespan OR both t0 & t1."
},
{
"type": "integer",
"name": "t0",
"in": "query",
"description": "Start time to query for results in epoch seconds. Only include timespan OR both t0 & t1."
},
{
"type": "integer",
"name": "t1",
"in": "query",
"description": "End time to query for results in epoch seconds. Only include timespan OR both t0 & t1."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"speedTestId": {
"type": "string",
"description": "SpeedTest result identifier"
},
"networkId": {
"type": "string",
"description": "Network identifier"
},
"request": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Device serial number"
},
"interface": {
"type": "string",
"description": "Uplink name"
}
},
"description": "Ping request parameters"
},
"results": {
"type": "object",
"properties": {
"speeds": {
"type": "object",
"properties": {
"average": {
"type": "number",
"format": "float",
"description": "Average speed"
},
"maximum": {
"type": "number",
"format": "float",
"description": "Maximum speed"
},
"minimum": {
"type": "number",
"format": "float",
"description": "Minimum speed"
}
},
"description": "Speed test results"
}
},
"description": "Ping request results"
},
"startedAt": {
"type": "string",
"format": "date-time",
"description": "Time when the test started"
}
}
}
},
"examples": {
"application/json": [
{
"speedTestId": "1284392014819",
"networkId": "N_24329156",
"request": {
"serial": "Q234-ABCD-5678",
"interface": "wan1"
},
"results": {
"speeds": {
"average": 247.279,
"maximum": 983.611,
"minimum": 71.606
}
},
"startedAt": "2021-12-08T20:07:13Z"
}
]
}
}
},
"summary": "List the speed tests for the given devices under this organization",
"tags": [
"insight",
"configure",
"speedTestResults"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/insight/webApps": {
"get": {
"description": "Lists all default web applications rules with counter set rule ids",
"operationId": "getOrganizationInsightWebApps",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"counterSetRuleId": {
"type": "string",
"description": "Counter set rule id"
},
"name": {
"type": "string",
"description": "Web Application name"
},
"category": {
"type": "string",
"description": "Category type for web application"
},
"thresholds": {
"type": "object",
"properties": {
"goodput": {
"type": "string",
"description": "App goodput"
},
"responseDelay": {
"type": "string",
"description": "App response delay"
}
},
"description": "Default thresholds for each application"
},
"expression": {
"type": "string",
"description": "Http hostname for tracking web app"
},
"signature": {
"type": "object",
"properties": {
"signatureType": {
"type": "string",
"description": "Signature type"
},
"host": {
"type": "string",
"description": "Custom host name"
},
"port": {
"type": "string",
"description": "Custom port number"
},
"net": {
"type": "string",
"description": "Custom subnet mask"
}
},
"description": "If custom host or port is specified, this field populates"
}
}
}
},
"examples": {
"application/json": [
{
"counterSetRuleId": "12345",
"name": "Meraki HTTPS",
"category": "Remote monitoring & management",
"thresholds": {
"goodput": "20000",
"responseDelay": "3000"
},
"expression": "http_host[*.example.com] or http_host",
"signature": {
"signatureType": "custom_host",
"host": "exampled.com",
"port": "123",
"net": "10.0.2.1/20"
}
}
]
}
}
},
"summary": "Lists all default web applications rules with counter set rule ids",
"tags": [
"insight",
"configure",
"webApps"
],
"x-release-stage": "beta"
},
"post": {
"description": "Add a custom web application for Insight to be able to track",
"operationId": "createOrganizationInsightWebApp",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationInsightWebApp",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the Web Application"
},
"hostname": {
"type": "string",
"description": "The hostname of Web Application"
}
},
"example": {
"name": "Meraki HTTPS",
"hostname": "exampled.com"
},
"required": [
"name",
"hostname"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"counterSetRuleId": {
"type": "string",
"description": "Counter set rule id"
},
"name": {
"type": "string",
"description": "Web Application name"
},
"category": {
"type": "string",
"description": "Category type for web application"
},
"thresholds": {
"type": "object",
"properties": {
"goodput": {
"type": "string",
"description": "App goodput"
},
"responseDelay": {
"type": "string",
"description": "App response delay"
}
},
"description": "Default thresholds for each application"
},
"expression": {
"type": "string",
"description": "Http hostname for tracking web app"
},
"signature": {
"type": "object",
"properties": {
"signatureType": {
"type": "string",
"description": "Signature type"
},
"host": {
"type": "string",
"description": "Custom host name"
}
},
"description": "If custom host or port is specified, this field populates"
}
}
},
"examples": {
"application/json": {
"counterSetRuleId": "12345",
"name": "Meraki HTTPS",
"category": "Remote monitoring & management",
"thresholds": {
"goodput": "20000",
"responseDelay": "3000"
},
"expression": "http_host[*.example.com] or http_host",
"signature": {
"signatureType": "custom_host",
"host": "exampled.com"
}
}
}
}
},
"summary": "Add a custom web application for Insight to be able to track",
"tags": [
"insight",
"configure",
"webApps"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/insight/webApps/{customCounterSetRuleId}": {
"put": {
"description": "Update a custom web application for Insight to be able to track",
"operationId": "updateOrganizationInsightWebApp",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "customCounterSetRuleId",
"in": "path",
"description": "Custom counter set rule ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationInsightWebApp",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the Web Application"
},
"hostname": {
"type": "string",
"description": "The hostname of Web Application"
}
},
"example": {
"name": "Meraki HTTPS",
"hostname": "exampled.com"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"counterSetRuleId": {
"type": "string",
"description": "Counter set rule id"
},
"name": {
"type": "string",
"description": "Web Application name"
},
"category": {
"type": "string",
"description": "Category type for web application"
},
"thresholds": {
"type": "object",
"properties": {
"goodput": {
"type": "string",
"description": "App goodput"
},
"responseDelay": {
"type": "string",
"description": "App response delay"
}
},
"description": "Default thresholds for each application"
},
"expression": {
"type": "string",
"description": "Http hostname for tracking web app"
},
"signature": {
"type": "object",
"properties": {
"signatureType": {
"type": "string",
"description": "Signature type"
},
"host": {
"type": "string",
"description": "Custom host name"
}
},
"description": "If custom host or port is specified, this field populates"
}
}
},
"examples": {
"application/json": {
"counterSetRuleId": "12345",
"name": "Meraki HTTPS",
"category": "Remote monitoring & management",
"thresholds": {
"goodput": "20000",
"responseDelay": "3000"
},
"expression": "http_host[*.example.com] or http_host",
"signature": {
"signatureType": "custom_host",
"host": "exampled.com"
}
}
}
}
},
"summary": "Update a custom web application for Insight to be able to track",
"tags": [
"insight",
"configure",
"webApps"
],
"x-release-stage": "beta"
},
"delete": {
"description": "Delete a custom web application by counter set rule id.",
"operationId": "deleteOrganizationInsightWebApp",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "customCounterSetRuleId",
"in": "path",
"description": "Custom counter set rule ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a custom web application by counter set rule id.",
"tags": [
"insight",
"configure",
"webApps"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/inventory/claim": {
"post": {
"description": "Claim a list of devices, licenses, and/or orders into an organization inventory. When claiming by order, all devices and licenses in the order will be claimed; licenses will be added to the organization and devices will be placed in the organization's inventory. This operation can be used up to ten times within a single five minute window.",
"operationId": "claimIntoOrganizationInventory",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "claimIntoOrganizationInventory",
"in": "body",
"schema": {
"type": "object",
"properties": {
"orders": {
"type": "array",
"items": {
"type": "string"
},
"description": "The numbers of the orders that should be claimed"
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "The serials of the devices that should be claimed"
},
"licenses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "The key of the license"
},
"mode": {
"type": "string",
"enum": [
"addDevices",
"renew"
],
"description": "Co-term licensing only: either 'renew' or 'addDevices'. 'addDevices' will increase the license limit, while 'renew' will extend the amount of time until expiration. Defaults to 'addDevices'. All licenses must be claimed with the same mode, and at most one renewal can be claimed at a time. Does not apply to organizations using per-device licensing model."
}
},
"required": [
"key"
]
},
"description": "The licenses that should be claimed"
}
},
"example": {
"orders": [
"4CXXXXXXX"
],
"serials": [
"Q234-ABCD-5678"
],
"licenses": [
{
"key": "Z2XXXXXXXXXX",
"mode": "addDevices"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"orders": {
"type": "array",
"items": {
"type": "string"
},
"description": "The numbers of the orders claimed"
},
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "The serials of the devices claimed"
},
"licenses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "The key of the license"
},
"mode": {
"type": "string",
"description": "The mode of the license"
}
}
},
"description": "The licenses claimed"
}
}
},
"examples": {
"application/json": {
"orders": [
"4CXXXXXXX"
],
"serials": [
"Q234-ABCD-5678"
],
"licenses": [
{
"key": "Z2XXXXXXXXXX",
"mode": "addDevices"
}
]
}
}
}
},
"summary": "Claim a list of devices, licenses, and/or orders into an organization inventory",
"tags": [
"organizations",
"configure",
"inventory"
]
}
},
"/organizations/{organizationId}/inventory/devices": {
"get": {
"description": "Return the device inventory for an organization",
"operationId": "getOrganizationInventoryDevices",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"enum": [
"unused",
"used"
],
"name": "usedState",
"in": "query",
"description": "Filter results by used or unused inventory. Accepted values are 'used' or 'unused'."
},
{
"type": "string",
"name": "search",
"in": "query",
"description": "Search for devices in inventory based on serial number, mac address, or model."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "macs",
"in": "query",
"description": "Search for devices in inventory based on mac addresses."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Search for devices in inventory based on network ids. Use explicit 'null' value to get available devices only."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Search for devices in inventory based on serials."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "models",
"in": "query",
"description": "Search for devices in inventory based on model."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "orderNumbers",
"in": "query",
"description": "Search for devices in inventory based on order numbers."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "tags",
"in": "query",
"description": "Filter devices by tags. The filtering is case-sensitive. If tags are included, 'tagsFilterType' should also be included (see below)."
},
{
"type": "string",
"enum": [
"withAllTags",
"withAnyTags"
],
"name": "tagsFilterType",
"in": "query",
"description": "To use with 'tags' parameter, to filter devices which contain ANY or ALL given tags. Accepted values are 'withAnyTags' or 'withAllTags', default is 'withAnyTags'."
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"appliance",
"camera",
"cellularGateway",
"sensor",
"switch",
"systemsManager",
"wireless"
]
},
"name": "productTypes",
"in": "query",
"description": "Filter devices by product type. Accepted values are appliance, camera, cellularGateway, sensor, switch, systemsManager, and wireless."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "MAC address of the device"
},
"serial": {
"type": "string",
"description": "Serial number of the device"
},
"name": {
"type": "string",
"description": "Name of the device"
},
"model": {
"type": "string",
"description": "Model type of the device"
},
"networkId": {
"type": "string",
"description": "Network Id of the device"
},
"orderNumber": {
"type": "string",
"description": "Order number of the device"
},
"claimedAt": {
"type": "string",
"format": "date-time",
"description": "Claimed time of the device"
},
"licenseExpirationDate": {
"type": "string",
"format": "date-time",
"description": "License expiration date of the device"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Device tags"
},
"productType": {
"type": "string",
"description": "Product type of the device"
},
"countryCode": {
"type": "string",
"description": "Country/region code from device, network, or store order"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Additional property name"
},
"value": {
"type": "string",
"description": "Additional property value"
}
}
},
"description": "Additional device information"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"mac": "00:11:22:33:44:55",
"serial": "Q234-ABCD-5678",
"name": "My AP",
"model": "MR34",
"networkId": "N_24329156",
"orderNumber": "4C1234567",
"claimedAt": "2018-02-11T00:00:00.090210Z",
"licenseExpirationDate": "2020-05-02T10:52:44.012345Z",
"tags": [
"tag1",
"tag2"
],
"productType": "wireless",
"countryCode": "US",
"details": [
{
"name": "Catalyst serial",
"value": "FOC2234432B"
}
]
}
]
}
}
},
"summary": "Return the device inventory for an organization",
"tags": [
"organizations",
"configure",
"inventory",
"devices"
]
}
},
"/organizations/{organizationId}/inventory/devices/swaps/bulk": {
"post": {
"description": "Swap the devices identified by devices.old with a devices.new, then perform the :afterAction on the devices.old.",
"operationId": "createOrganizationInventoryDevicesSwapsBulk",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationInventoryDevicesSwapsBulk",
"in": "body",
"schema": {
"type": "object",
"properties": {
"swaps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"devices": {
"type": "object",
"properties": {
"old": {
"type": "string",
"description": "The serial of the device to be cloned."
},
"new": {
"type": "string",
"description": "The serial of the device that the old device's settings will be cloned to."
}
},
"required": [
"old",
"new"
],
"description": "The devices involved in the swap."
},
"afterAction": {
"type": "string",
"enum": [
"release from organization inventory",
"remove from network"
],
"description": "What action to perform on devices.old after the device cloning is complete. 'remove from network' will return the device to inventory, while 'release from organization inventory' will free up the license attached to the device."
}
},
"required": [
"devices",
"afterAction"
]
},
"description": "List of replacments to perform"
}
},
"example": {
"swaps": [
{
"devices": {
"old": "Q234-ABCD-5678",
"new": "Q234-ABCD-5678"
},
"afterAction": "remove from network"
}
]
},
"required": [
"swaps"
]
},
"required": true
}
],
"responses": {
"207": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"jobId": {
"type": "string",
"description": "The ID of the job that was used to create all of the device swaps."
},
"swaps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Swap Request ID"
},
"devices": {
"type": "object",
"properties": {
"old": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "MAC address of the device"
},
"serial": {
"type": "string",
"description": "Serial number of device"
},
"model": {
"type": "string",
"description": "Model name for device"
},
"name": {
"type": "string",
"description": "Customized name for device, or MAC address"
}
},
"required": [
"mac",
"serial",
"model"
],
"description": "The device that will be cloned"
},
"new": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "MAC address of the device"
},
"serial": {
"type": "string",
"description": "Serial number of device"
},
"model": {
"type": "string",
"description": "Model name for device"
},
"name": {
"type": "string",
"description": "Customized name for device, or MAC address"
}
},
"required": [
"mac",
"serial",
"model"
],
"description": "The device that will have settings cloned to"
}
},
"required": [
"old",
"new"
],
"description": "The devices involved in the swap"
},
"status": {
"type": "string",
"enum": [
"complete",
"failed",
"pending"
],
"description": "The current status of the swap job."
},
"afterAction": {
"type": "string",
"enum": [
"release from organization inventory",
"remove from network"
],
"description": "An action to perform on the devices.old object after swap is complete."
},
"createdAt": {
"type": "string",
"description": "An iso8601 timestamp for the creation of the swap request."
},
"completedAt": {
"type": "string",
"description": "An iso8601 timestamp for when the swap completed or failed."
},
"errors": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of error messages for why a swap failed."
}
},
"required": [
"id",
"devices",
"status",
"afterAction",
"createdAt"
]
},
"description": "An array of recent swap requests and their statuses."
}
}
},
"examples": {
"application/json": {
"jobId": "1284392014819",
"swaps": [
{
"id": "1284392014819",
"devices": {
"old": {
"mac": "00:11:22:33:44:55",
"serial": "Q234-ABCD-5678",
"model": "MR34",
"name": "My AP"
},
"new": {
"mac": "00:11:22:33:44:55",
"serial": "Q234-ABCD-5678",
"model": "MR34",
"name": "My AP"
}
},
"status": "complete",
"afterAction": "remove from network",
"createdAt": "2023-04-24T12:40:11Z",
"completedAt": "2023-04-24T12:40:12Z",
"errors": [
]
}
]
}
}
}
},
"summary": "Swap the devices identified by devices.old with a devices.new, then perform the :afterAction on the devices.old.",
"tags": [
"organizations",
"configure",
"inventory",
"devices",
"swaps",
"bulk"
]
}
},
"/organizations/{organizationId}/inventory/devices/swaps/bulk/{id}": {
"get": {
"description": "List of device swaps for a given request ID ({id}).",
"operationId": "getOrganizationInventoryDevicesSwapsBulk",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"jobId": {
"type": "string",
"description": "The ID of the job that was used to create all of the device swaps."
},
"swaps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Swap Request ID"
},
"devices": {
"type": "object",
"properties": {
"old": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "MAC address of the device"
},
"serial": {
"type": "string",
"description": "Serial number of device"
},
"model": {
"type": "string",
"description": "Model name for device"
},
"name": {
"type": "string",
"description": "Customized name for device, or MAC address"
}
},
"required": [
"mac",
"serial",
"model"
],
"description": "The device that will be cloned"
},
"new": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "MAC address of the device"
},
"serial": {
"type": "string",
"description": "Serial number of device"
},
"model": {
"type": "string",
"description": "Model name for device"
},
"name": {
"type": "string",
"description": "Customized name for device, or MAC address"
}
},
"required": [
"mac",
"serial",
"model"
],
"description": "The device that will have settings cloned to"
}
},
"required": [
"old",
"new"
],
"description": "The devices involved in the swap"
},
"status": {
"type": "string",
"enum": [
"complete",
"failed",
"pending"
],
"description": "The current status of the swap job."
},
"afterAction": {
"type": "string",
"enum": [
"release from organization inventory",
"remove from network"
],
"description": "An action to perform on the devices.old object after swap is complete."
},
"createdAt": {
"type": "string",
"description": "An iso8601 timestamp for the creation of the swap request."
},
"completedAt": {
"type": "string",
"description": "An iso8601 timestamp for when the swap completed or failed."
},
"errors": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of error messages for why a swap failed."
}
},
"required": [
"id",
"devices",
"status",
"afterAction",
"createdAt"
]
},
"description": "An array of recent swap requests and their statuses."
}
}
},
"examples": {
"application/json": {
"jobId": "1284392014819",
"swaps": [
{
"id": "1284392014819",
"devices": {
"old": {
"mac": "00:11:22:33:44:55",
"serial": "Q234-ABCD-5678",
"model": "MR34",
"name": "My AP"
},
"new": {
"mac": "00:11:22:33:44:55",
"serial": "Q234-ABCD-5678",
"model": "MR34",
"name": "My AP"
}
},
"status": "complete",
"afterAction": "remove from network",
"createdAt": "2023-04-24T12:40:11Z",
"completedAt": "2023-04-24T12:40:12Z",
"errors": [
]
}
]
}
}
}
},
"summary": "List of device swaps for a given request ID ({id}).",
"tags": [
"organizations",
"configure",
"inventory",
"devices",
"swaps",
"bulk"
]
}
},
"/organizations/{organizationId}/inventory/devices/{serial}": {
"get": {
"description": "Return a single device from the inventory of an organization",
"operationId": "getOrganizationInventoryDevice",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "serial",
"in": "path",
"description": "Serial",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"mac": {
"type": "string",
"description": "MAC address of the device"
},
"serial": {
"type": "string",
"description": "Serial number of the device"
},
"name": {
"type": "string",
"description": "Name of the device"
},
"model": {
"type": "string",
"description": "Model type of the device"
},
"networkId": {
"type": "string",
"description": "Network Id of the device"
},
"orderNumber": {
"type": "string",
"description": "Order number of the device"
},
"claimedAt": {
"type": "string",
"format": "date-time",
"description": "Claimed time of the device"
},
"licenseExpirationDate": {
"type": "string",
"format": "date-time",
"description": "License expiration date of the device"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Device tags"
},
"productType": {
"type": "string",
"description": "Product type of the device"
},
"countryCode": {
"type": "string",
"description": "Country/region code from device, network, or store order"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Additional property name"
},
"value": {
"type": "string",
"description": "Additional property value"
}
}
},
"description": "Additional device information"
}
}
},
"examples": {
"application/json": {
"mac": "00:11:22:33:44:55",
"serial": "Q234-ABCD-5678",
"name": "My AP",
"model": "MR34",
"networkId": "N_24329156",
"orderNumber": "4C1234567",
"claimedAt": "2018-02-11T00:00:00.090210Z",
"licenseExpirationDate": "2020-05-02T10:52:44.012345Z",
"tags": [
"tag1",
"tag2"
],
"productType": "wireless",
"countryCode": "US",
"details": [
{
"name": "Catalyst serial",
"value": "FOC2234432B"
}
]
}
}
}
},
"summary": "Return a single device from the inventory of an organization",
"tags": [
"organizations",
"configure",
"inventory",
"devices"
]
}
},
"/organizations/{organizationId}/inventory/onboarding/cloudMonitoring/exportEvents": {
"post": {
"description": "Imports event logs related to the onboarding app into elastisearch",
"operationId": "createOrganizationInventoryOnboardingCloudMonitoringExportEvent",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationInventoryOnboardingCloudMonitoringExportEvent",
"in": "body",
"schema": {
"type": "object",
"properties": {
"logEvent": {
"type": "string",
"description": "The type of log event this is recording, e.g. download or opening a banner"
},
"timestamp": {
"type": "integer",
"description": "A JavaScript UTC datetime stamp for when the even occurred"
},
"targetOS": {
"type": "string",
"description": "The name of the onboarding distro being downloaded"
},
"request": {
"type": "string",
"description": "Used to describe if this event was the result of a redirect. E.g. a query param if an info banner is being used"
}
},
"example": {
"logEvent": "download",
"timestamp": 1526087474,
"targetOS": "mac",
"request": "r=cb"
},
"required": [
"logEvent",
"timestamp"
]
},
"required": true
}
],
"responses": {
"202": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
}
}
}
},
"summary": "Imports event logs related to the onboarding app into elastisearch",
"tags": [
"organizations",
"configure",
"inventory",
"onboarding",
"cloudMonitoring",
"exportEvents"
]
}
},
"/organizations/{organizationId}/inventory/onboarding/cloudMonitoring/imports": {
"post": {
"description": "Commits the import operation to complete the onboarding of a device into Dashboard for monitoring.",
"operationId": "createOrganizationInventoryOnboardingCloudMonitoringImport",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationInventoryOnboardingCloudMonitoringImport",
"in": "body",
"schema": {
"type": "object",
"properties": {
"devices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"deviceId": {
"type": "string",
"description": "Import ID from the Import operation"
},
"udi": {
"type": "string",
"description": "Device UDI certificate"
},
"networkId": {
"type": "string",
"description": "Network Id"
}
},
"required": [
"deviceId",
"udi",
"networkId"
]
},
"description": "A set of device imports to commit"
}
},
"example": {
"devices": [
{
"deviceId": "161b2602-a713-4aac-b1eb-d9b55205353d",
"udi": "PID:C9200L-24P-4G SN:JAE25220R2K",
"networkId": "1338481"
}
]
},
"required": [
"devices"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Cloud monitor import status"
},
"importId": {
"type": "string",
"description": "Unique id associated with the import of the device"
},
"message": {
"type": "string",
"description": "Response method"
}
}
}
},
"examples": {
"application/json": [
{
"status": "IMPORT JOB SUCCESS",
"importId": "1234",
"message": "Import Started"
}
]
}
}
},
"summary": "Commits the import operation to complete the onboarding of a device into Dashboard for monitoring.",
"tags": [
"organizations",
"configure",
"inventory",
"onboarding",
"cloudMonitoring",
"imports"
]
},
"get": {
"description": "Check the status of a committed Import operation",
"operationId": "getOrganizationInventoryOnboardingCloudMonitoringImports",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "importIds",
"in": "query",
"required": true,
"description": "import ids from an imports"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"importId": {
"type": "string",
"description": "Database ID for the new entity entry."
},
"device": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The url to the device details page within dashboard."
},
"created": {
"type": "boolean",
"description": "Whether or not the device was successfully created in dashboard."
},
"status": {
"type": "string",
"description": "Represents the current state of importing the device."
}
},
"description": "Represents the details of an imported device."
}
}
}
},
"examples": {
"application/json": [
{
"importId": "0000000000000000",
"device": {
"url": "https://n1.meraki.com//n//manage/nodes/new_list/000000000000",
"created": true,
"status": "SUCCESS"
}
}
]
}
}
},
"summary": "Check the status of a committed Import operation",
"tags": [
"organizations",
"configure",
"inventory",
"onboarding",
"cloudMonitoring",
"imports"
]
}
},
"/organizations/{organizationId}/inventory/onboarding/cloudMonitoring/networks": {
"get": {
"description": "Returns list of networks eligible for adding cloud monitored device",
"operationId": "getOrganizationInventoryOnboardingCloudMonitoringNetworks",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"enum": [
"switch",
"wireless_controller"
],
"name": "deviceType",
"in": "query",
"required": true,
"description": "Device Type switch or wireless controller"
},
{
"type": "string",
"name": "search",
"in": "query",
"description": "Optional parameter to search on network name"
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 100000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"202": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network ID"
},
"organizationId": {
"type": "string",
"description": "Organization ID"
},
"name": {
"type": "string",
"description": "Network name"
},
"productTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of the product types that the network supports"
},
"timeZone": {
"type": "string",
"description": "Timezone of the network"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Network tags"
},
"enrollmentString": {
"type": "string",
"description": "Enrollment string for the network"
},
"url": {
"type": "string",
"description": "URL to the network Dashboard UI"
},
"notes": {
"type": "string",
"description": "Notes for the network"
},
"isBoundToConfigTemplate": {
"type": "boolean",
"description": "If the network is bound to a config template"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"id": "N_24329156",
"organizationId": "2930418",
"name": "Main Office",
"productTypes": [
"appliance",
"switch",
"wireless"
],
"timeZone": "America/Los_Angeles",
"tags": [
"tag1",
"tag2"
],
"enrollmentString": "my-enrollment-string",
"url": "https://n1.meraki.com//n//manage/nodes/list",
"notes": "Additional description of the network",
"isBoundToConfigTemplate": false
}
]
}
}
},
"summary": "Returns list of networks eligible for adding cloud monitored device",
"tags": [
"organizations",
"configure",
"inventory",
"onboarding",
"cloudMonitoring",
"networks"
]
}
},
"/organizations/{organizationId}/inventory/onboarding/cloudMonitoring/prepare": {
"post": {
"description": "Initiates or updates an import session. An import ID will be generated and used when you are ready to commit the import.",
"operationId": "createOrganizationInventoryOnboardingCloudMonitoringPrepare",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationInventoryOnboardingCloudMonitoringPrepare",
"in": "body",
"schema": {
"type": "object",
"properties": {
"devices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sudi": {
"type": "string",
"description": "Device SUDI certificate"
},
"tunnel": {
"type": "object",
"properties": {
"certificateName": {
"type": "string",
"description": "Name of the configured TLS certificate"
},
"name": {
"type": "string",
"description": "Name of the configured TLS tunnel"
},
"loopbackNumber": {
"type": "integer",
"description": "Number of the configured Loopback Interface used for TLS overlay"
},
"localInterface": {
"type": "integer",
"description": "Number of the vlan expected to be used to connect to the cloud"
}
},
"description": "TLS Related Parameters"
},
"user": {
"type": "object",
"properties": {
"username": {
"type": "string",
"description": "The name of the device user for Meraki monitoring"
}
},
"description": "User parameters"
},
"vty": {
"type": "object",
"properties": {
"startLineNumber": {
"type": "integer",
"description": "Starting line VTY number"
},
"endLineNumber": {
"type": "integer",
"description": "Ending line VTY number"
},
"authentication": {
"type": "object",
"properties": {
"group": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Group Name"
}
},
"description": "Group Details"
}
},
"description": "VTY AAA authentication"
},
"authorization": {
"type": "object",
"properties": {
"group": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Group Name"
}
},
"description": "Group Details"
}
},
"description": "VTY AAA authorization"
},
"accessList": {
"type": "object",
"properties": {
"vtyIn": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name"
}
},
"description": "VTY in ACL"
},
"vtyOut": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name"
}
},
"description": "VTY out ACL"
}
},
"description": "AccessList details"
},
"rotaryNumber": {
"type": "integer",
"description": "SSH rotary number"
}
},
"description": "VTY Related Parameters"
}
},
"required": [
"sudi"
]
},
"description": "A set of devices to import (or update)"
}
},
"example": {
"devices": [
{
"sudi": "-----BEGIN CERTIFICATE-----\n MIIDyTCCArGgAwIBAgIKBBNXOVCGU1YztjANBgkqhkiG9w0BAQsFADAnMQ4wDAYD\n VQQKEwVDaXNjbzEVMBMGA1UEAxMMQUNUMiBTVURJIENBMB4XDTIxMDUzMTEzNTUx\n NVoXDTI5MDUxNDIwMjU0MVowbTEpMCcGA1UEBRMgUElEOkM5MjAwTC0yNFAtNEcg\n U046SkFFMjUyMjBSMksxDjAMBgNVBAoTBUNpc2NvMRgwFgYDVQQLEw9BQ1QtMiBM\n aXRlIFNVREkxFjAUBgNVBAMTDUM5MjAwTC0yNFAtNEcwggEiMA0GCSqGSIb3DQEB\n AQUAA4IBDwAwggEKAoIBAQDaUPxW76gT5MdoEAt+UrDFiYA9RYh2iHicDViBEyow\n TR1TuP36bHh13X3vtGiDsCD88Ci2TZIqd/EDkkc7v9ipUUYVVH+YDrPt2Aukb1PH\n D6K0R+KhgEzRo5x54TlU6oWvjUpwNZUwwdhMWIQaUVkMyZBYNy0jGPLO8jwZhyBg\n 1Fneybr9pwedGbLrAaz+gdEikB8B4a/fvPjVfL5Ngb4QRjFqWuE+X3nLc0kHedep\n 6nfgpUNXMlStVm5nIXKP6OjmzfCHPYh9L2Ehs1TrSk1ser9Ofx0ZMVL/jBZR2EIj\n OZ8tH6KlX2/B2pbSPIO6kD5c4UA8Cf1SbDJCwJ/kI9ihAgMBAAGjgbAwga0wDgYD\n VR0PAQH/BAQDAgXgMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUSNjx8cJw1Vu7\n fHMJk6+4uDAD+H8wTQYDVR0RBEYwRKBCBgkrBgEEAQkVAgOgNRMzQ2hpcElEPVVV\n VUNNaElGcUVFMklFUUVBQWNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE9MB0GA1Ud\n DgQWBBRdhMkFD/z5hokaQeLbaRsp4hkvbzANBgkqhkiG9w0BAQsFAAOCAQEAMtuh\n YpBz4xEZ7YdJsLpw67Q0TTJGnTBRpzAeY1urYDoDz8TSx556XG7z3IRzuED5KVSp\n OwmH/iZ+tDfYQ3W3ElWTW93871DkuW4WQIfbnoHg/F7bF0DKYVkD3rpZjyz3NhzH\n d7cjTdJXQ85bTAOXDuxKH3qewrXxxOGXgh3I6NUq0UwMTWh84lND7Jl+ZAQkYNS2\n iHanTZFQBk3ML0NUb7fKDYGRTZRqwQ/upIO4S6LV1cxH/6V0qbMy3sCSHZoMLrW3\n 0m3M6yKpe5+VZzHZwmWdUf3Ot+zKjhveK5/YNsMIASdvtvymxUizq2Hr1hvR/kPc\n p1vuyWxipU8JfzOh/A==\n -----END CERTIFICATE-----\n ",
"tunnel": {
"certificateName": "DeviceSUDI",
"name": "MERAKI",
"loopbackNumber": 1000,
"localInterface": 1
},
"user": {
"username": "Meraki"
},
"vty": {
"startLineNumber": 16,
"endLineNumber": 17,
"authentication": {
"group": {
"name": ""
}
},
"authorization": {
"group": {
"name": "MERAKI"
}
},
"accessList": {
"vtyIn": {
"name": "MERAKI_IN"
},
"vtyOut": {
"name": "MERAKI_OUT"
}
},
"rotaryNumber": 50
}
}
]
},
"required": [
"devices"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Message related to whether or not the device was found and can be imported."
},
"udi": {
"type": "string",
"description": "Device UDI certificate"
},
"deviceId": {
"type": "string",
"description": "Import ID from the Import operation"
},
"status": {
"type": "string",
"description": "The import status of the device"
},
"configParams": {
"type": "object",
"properties": {
"tunnel": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"description": ""
},
"port": {
"type": "string",
"description": "The port used for the ssh tunnel."
},
"host": {
"type": "string",
"description": "SSH tunnel URL used to connect to the device"
},
"name": {
"type": "string",
"description": "The name of the tunnel we are attempting to connect to"
},
"rootCertificate": {
"type": "object",
"properties": {
"content": {
"type": "string",
"description": "Public certificate value"
},
"name": {
"type": "string",
"description": "The name of the server protected by the certificate"
}
},
"description": "Root certificate information"
}
},
"description": "Configuration options used to connect to the device"
},
"cloudStaticIp": {
"type": "string",
"description": "Static IP Address used to connect to the device"
},
"user": {
"type": "object",
"properties": {
"publicKey": {
"type": "string",
"description": "The public key for the registered user"
},
"username": {
"type": "string",
"description": "The username added to Catalyst device"
},
"secret": {
"type": "object",
"properties": {
"hash": {
"type": "string",
"description": "The hashed secret"
}
},
"description": "Stores the user secret hash"
}
},
"description": "User credentials used to connect to the device"
}
},
"description": "Params used in order to connect to the device"
}
}
}
},
"examples": {
"application/json": [
{
"message": "Existing import found",
"udi": "PID:C9200L-24P-4G SN:JAE25220R2K",
"deviceId": "161b2602-a713-4aac-b1eb-d9b55205353d",
"status": "SUCCESS",
"configParams": {
"tunnel": {
"mode": "443",
"port": "443",
"host": "secgw-int3.ciscocloudoffer.com",
"name": "MERAKI-PRIMARY",
"rootCertificate": {
"content": "",
"name": "MERAKI_TLSGW_CA"
}
},
"cloudStaticIp": "1.2.3.4",
"user": {
"publicKey": "",
"username": "MERAKI_USER",
"secret": {
"hash": ""
}
}
}
}
]
}
}
},
"summary": "Initiates or updates an import session",
"tags": [
"organizations",
"configure",
"inventory",
"onboarding",
"cloudMonitoring",
"prepare"
]
}
},
"/organizations/{organizationId}/inventory/release": {
"post": {
"description": "Release a list of claimed devices from an organization.",
"operationId": "releaseFromOrganizationInventory",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "releaseFromOrganizationInventory",
"in": "body",
"schema": {
"type": "object",
"properties": {
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "Serials of the devices that should be released"
}
},
"example": {
"serials": [
"Q234-ABCD-5678"
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"serials": {
"type": "array",
"items": {
"type": "string"
},
"description": "Serials of the devices that were released"
}
}
},
"examples": {
"application/json": {
"serials": [
"Q234-ABCD-5678"
]
}
}
}
},
"summary": "Release a list of claimed devices from an organization.",
"tags": [
"organizations",
"configure",
"inventory"
]
}
},
"/organizations/{organizationId}/licenses": {
"get": {
"description": "List the licenses for an organization",
"operationId": "getOrganizationLicenses",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "deviceSerial",
"in": "query",
"description": "Filter the licenses to those assigned to a particular device. Returned in the same order that they are queued to the device."
},
{
"type": "string",
"name": "networkId",
"in": "query",
"description": "Filter the licenses to those assigned in a particular network"
},
{
"type": "string",
"enum": [
"active",
"expired",
"expiring",
"recentlyQueued",
"unused",
"unusedActive"
],
"name": "state",
"in": "query",
"description": "Filter the licenses to those in a particular state. Can be one of 'active', 'expired', 'expiring', 'recentlyQueued', 'unused' or 'unusedActive'"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "License ID"
},
"licenseType": {
"type": "string",
"description": "License type"
},
"licenseKey": {
"type": "string",
"description": "License key"
},
"orderNumber": {
"type": "string",
"description": "Order number"
},
"deviceSerial": {
"type": "string",
"description": "Serial number of the device the license is assigned to"
},
"networkId": {
"type": "string",
"description": "ID of the network the license is assigned to"
},
"state": {
"type": "string",
"enum": [
"active",
"expired",
"expiring",
"recentlyQueued",
"unused",
"unusedActive"
],
"description": "The state of the license. All queued licenses have a status of `recentlyQueued`."
},
"seatCount": {
"type": "integer",
"description": "The number of seats of the license. Only applicable to SM licenses."
},
"totalDurationInDays": {
"type": "integer",
"description": "The duration of the license plus all permanently queued licenses associated with it"
},
"durationInDays": {
"type": "integer",
"description": "The duration of the individual license"
},
"permanentlyQueuedLicenses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Permanently queued license ID"
},
"licenseType": {
"type": "string",
"description": "License type"
},
"licenseKey": {
"type": "string",
"description": "License key"
},
"orderNumber": {
"type": "string",
"description": "Order number"
},
"durationInDays": {
"type": "integer",
"description": "The duration of the individual license"
}
}
},
"description": "DEPRECATED List of permanently queued licenses attached to the license. Instead, use /organizations/{organizationId}/licenses?deviceSerial= to retrieved queued licenses for a given device."
},
"claimDate": {
"type": "string",
"description": "The date the license was claimed into the organization"
},
"activationDate": {
"type": "string",
"description": "The date the license started burning"
},
"expirationDate": {
"type": "string",
"description": "The date the license will expire"
},
"headLicenseId": {
"type": "string",
"description": "The id of the head license this license is queued behind. If there is no head license, it returns nil."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"id": "1234",
"licenseType": "MX64-ENT",
"licenseKey": "Z21234567890",
"orderNumber": "4C1234567",
"deviceSerial": "Q234-ABCD-5678",
"networkId": "N_24329156",
"state": "active",
"seatCount": 25,
"totalDurationInDays": 425,
"durationInDays": 365,
"permanentlyQueuedLicenses": [
{
"id": "1234",
"licenseType": "MX64-ENT",
"licenseKey": "Z21234567890",
"orderNumber": "4C1234567",
"durationInDays": 60
}
],
"claimDate": "2019-08-29T12:40:10Z",
"activationDate": "2019-09-01T15:01:46Z",
"expirationDate": "2020-10-30T15:01:46Z",
"headLicenseId": "1234"
}
]
}
}
},
"summary": "List the licenses for an organization",
"tags": [
"organizations",
"configure",
"licenses"
]
}
},
"/organizations/{organizationId}/licenses/assignSeats": {
"post": {
"description": "Assign SM seats to a network. This will increase the managed SM device limit of the network",
"operationId": "assignOrganizationLicensesSeats",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "assignOrganizationLicensesSeats",
"in": "body",
"schema": {
"type": "object",
"properties": {
"licenseId": {
"type": "string",
"description": "The ID of the SM license to assign seats from"
},
"networkId": {
"type": "string",
"description": "The ID of the SM network to assign the seats to"
},
"seatCount": {
"type": "integer",
"description": "The number of seats to assign to the SM network. Must be less than or equal to the total number of seats of the license"
}
},
"example": {
"licenseId": "1234",
"networkId": "N_24329156",
"seatCount": 20
},
"required": [
"licenseId",
"networkId",
"seatCount"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"resultingLicenses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "License ID"
},
"licenseType": {
"type": "string",
"description": "License type"
},
"licenseKey": {
"type": "string",
"description": "License key"
},
"orderNumber": {
"type": "string",
"description": "Order number"
},
"deviceSerial": {
"type": "string",
"description": "Serial number of the device the license is assigned to"
},
"networkId": {
"type": "string",
"description": "ID of the network the license is assigned to"
},
"state": {
"type": "string",
"enum": [
"active",
"expired",
"expiring",
"recentlyQueued",
"unused",
"unusedActive"
],
"description": "The state of the license. All queued licenses have a status of `recentlyQueued`."
},
"seatCount": {
"type": "integer",
"description": "The number of seats of the license. Only applicable to SM licenses."
},
"totalDurationInDays": {
"type": "integer",
"description": "The duration of the license plus all permanently queued licenses associated with it"
},
"durationInDays": {
"type": "integer",
"description": "The duration of the individual license"
},
"permanentlyQueuedLicenses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Permanently queued license ID"
},
"licenseType": {
"type": "string",
"description": "License type"
},
"licenseKey": {
"type": "string",
"description": "License key"
},
"orderNumber": {
"type": "string",
"description": "Order number"
},
"durationInDays": {
"type": "integer",
"description": "The duration of the individual license"
}
}
},
"description": "DEPRECATED List of permanently queued licenses attached to the license. Instead, use /organizations/{organizationId}/licenses?deviceSerial= to retrieved queued licenses for a given device."
},
"claimDate": {
"type": "string",
"description": "The date the license was claimed into the organization"
},
"activationDate": {
"type": "string",
"description": "The date the license started burning"
},
"expirationDate": {
"type": "string",
"description": "The date the license will expire"
},
"headLicenseId": {
"type": "string",
"description": "The id of the head license this license is queued behind. If there is no head license, it returns nil."
}
}
},
"description": "Resulting licenses from the move"
}
}
},
"examples": {
"application/json": {
"resultingLicenses": [
{
"id": "1234",
"licenseType": "SME",
"licenseKey": "Z21234567890",
"orderNumber": "4C1234567",
"deviceSerial": "Q234-ABCD-5678",
"networkId": "N_24329156",
"state": "active",
"seatCount": 25,
"totalDurationInDays": 425,
"durationInDays": 365,
"permanentlyQueuedLicenses": [
{
"id": "1234",
"licenseType": "SME",
"licenseKey": "Z21234567890",
"orderNumber": "4C1234567",
"durationInDays": 60
}
],
"claimDate": "2019-08-29T12:40:10Z",
"activationDate": "2019-09-01T15:01:46Z",
"expirationDate": "2020-10-30T15:01:46Z",
"headLicenseId": "1234"
}
]
}
}
}
},
"summary": "Assign SM seats to a network",
"tags": [
"organizations",
"configure",
"licenses"
]
}
},
"/organizations/{organizationId}/licenses/move": {
"post": {
"description": "Move licenses to another organization. This will also move any devices that the licenses are assigned to",
"operationId": "moveOrganizationLicenses",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "moveOrganizationLicenses",
"in": "body",
"schema": {
"type": "object",
"properties": {
"destOrganizationId": {
"type": "string",
"description": "The ID of the organization to move the licenses to"
},
"licenseIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of IDs of licenses to move to the new organization"
}
},
"example": {
"destOrganizationId": "2930418",
"licenseIds": [
"123",
"456"
]
},
"required": [
"destOrganizationId",
"licenseIds"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"destOrganizationId": {
"type": "string",
"description": "The ID of the organization to move the licenses to"
},
"licenseIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of IDs of licenses to move to the new organization"
}
}
},
"examples": {
"application/json": {
"destOrganizationId": "2930418",
"licenseIds": [
"123",
"456"
]
}
}
}
},
"summary": "Move licenses to another organization",
"tags": [
"organizations",
"configure",
"licenses"
]
}
},
"/organizations/{organizationId}/licenses/moveSeats": {
"post": {
"description": "Move SM seats to another organization",
"operationId": "moveOrganizationLicensesSeats",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "moveOrganizationLicensesSeats",
"in": "body",
"schema": {
"type": "object",
"properties": {
"destOrganizationId": {
"type": "string",
"description": "The ID of the organization to move the SM seats to"
},
"licenseId": {
"type": "string",
"description": "The ID of the SM license to move the seats from"
},
"seatCount": {
"type": "integer",
"description": "The number of seats to move to the new organization. Must be less than or equal to the total number of seats of the license"
}
},
"example": {
"destOrganizationId": "2930418",
"licenseId": "1234",
"seatCount": 20
},
"required": [
"destOrganizationId",
"licenseId",
"seatCount"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"destOrganizationId": {
"type": "string",
"description": "The ID of the organization to move the SM seats to"
},
"licenseId": {
"type": "string",
"description": "The ID of the SM license to move the seats from"
},
"seatCount": {
"type": "integer",
"description": "The number of seats to move to the new organization. Must be less than or equal to the total number of seats of the license"
}
}
},
"examples": {
"application/json": {
"destOrganizationId": "2930418",
"licenseId": "1234",
"seatCount": 20
}
}
}
},
"summary": "Move SM seats to another organization",
"tags": [
"organizations",
"configure",
"licenses"
]
}
},
"/organizations/{organizationId}/licenses/overview": {
"get": {
"description": "Return an overview of the license state for an organization",
"operationId": "getOrganizationLicensesOverview",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "License status (Co-termination licensing only)"
},
"expirationDate": {
"type": "string",
"description": "License expiration date (Co-termination licensing only)"
},
"licensedDeviceCounts": {
"type": "object",
"additionalProperties": {
"type": "integer",
"description": "Number of licenses"
},
"description": "License counts (Co-termination licensing only)"
},
"licenseCount": {
"type": "integer",
"description": "Total number of licenses (Per-device licensing only)"
},
"states": {
"type": "object",
"properties": {
"active": {
"type": "object",
"properties": {
"count": {
"type": "integer",
"description": "The number of active licenses"
}
},
"description": "Data for active licenses"
},
"expired": {
"type": "object",
"properties": {
"count": {
"type": "integer",
"description": "The number of expired licenses"
}
},
"description": "Data for expired licenses"
},
"expiring": {
"type": "object",
"properties": {
"count": {
"type": "integer",
"description": "The number of expiring licenses"
},
"critical": {
"type": "object",
"properties": {
"thresholdInDays": {
"type": "integer",
"description": "The number of days from now denoting the critical threshold for an expiring license"
},
"expiringCount": {
"type": "integer",
"description": "The number of licenses that will expire in this window"
}
},
"description": "Data for the critical threshold"
},
"warning": {
"type": "object",
"properties": {
"thresholdInDays": {
"type": "integer",
"description": "The number of days from now denoting the warning threshold for an expiring license"
},
"expiringCount": {
"type": "integer",
"description": "The number of licenses that will expire in this window"
}
},
"description": "Data for the warning threshold"
}
},
"description": "Data for expiring licenses"
},
"recentlyQueued": {
"type": "object",
"properties": {
"count": {
"type": "integer",
"description": "The number of recently queued licenses"
}
},
"description": "Data for recently queued licenses"
},
"unused": {
"type": "object",
"properties": {
"count": {
"type": "integer",
"description": "The number of unused licenses"
},
"soonestActivation": {
"type": "object",
"properties": {
"activationDate": {
"type": "string",
"description": "The soonest license activation date"
},
"toActivateCount": {
"type": "integer",
"description": "The number of licenses that will activate on this date"
}
},
"description": "Information about the soonest forthcoming license activation"
}
},
"description": "Data for unused licenses"
},
"unusedActive": {
"type": "object",
"properties": {
"count": {
"type": "integer",
"description": "The number of unused, active licenses"
},
"oldestActivation": {
"type": "object",
"properties": {
"activationDate": {
"type": "string",
"description": "The oldest license activation date"
},
"activeCount": {
"type": "integer",
"description": "The number of licenses that activated on this date"
}
},
"description": "Information about the oldest historical license activation"
}
},
"description": "Data for unused, active licenses"
}
},
"description": "Aggregated data for licenses by state (Per-device licensing only)"
},
"licenseTypes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"licenseType": {
"type": "string",
"description": "License type"
},
"counts": {
"type": "object",
"properties": {
"unassigned": {
"type": "integer",
"description": "The number of unassigned licenses"
}
},
"description": "Aggregated count data for the license type"
}
}
},
"description": "Data by license type (Per-device licensing only)"
},
"systemsManager": {
"type": "object",
"properties": {
"counts": {
"type": "object",
"properties": {
"totalSeats": {
"type": "integer",
"description": "The total number of Systems Manager seats"
},
"activeSeats": {
"type": "integer",
"description": "The number of Systems Manager seats in use"
},
"unassignedSeats": {
"type": "integer",
"description": "The number of unused Systems Manager seats"
},
"orgwideEnrolledDevices": {
"type": "integer",
"description": "The total number of enrolled Systems Manager devices"
}
},
"description": "Aggregated license count data for Systems Manager"
}
},
"description": "Aggregated data for Systems Manager licenses (Per-device licensing only)"
}
}
},
"examples": {
"application/json": {
"status": "OK",
"expirationDate": "Feb 8, 2020 UTC",
"licensedDeviceCounts": {
"MS": 100
},
"licenseCount": 20,
"states": {
"active": {
"count": 10
},
"expired": {
"count": 2
},
"expiring": {
"count": 3,
"critical": {
"thresholdInDays": 14,
"expiringCount": 1
},
"warning": {
"thresholdInDays": 90,
"expiringCount": 2
}
},
"recentlyQueued": {
"count": 0
},
"unused": {
"count": 2,
"soonestActivation": {
"activationDate": "2020-10-30",
"toActivateCount": 1
}
},
"unusedActive": {
"count": 3,
"oldestActivation": {
"activationDate": "2019-09-01",
"activeCount": 2
}
}
},
"licenseTypes": [
{
"licenseType": "ENT",
"counts": {
"unassigned": 2
}
}
],
"systemsManager": {
"counts": {
"totalSeats": 50,
"activeSeats": 10,
"unassignedSeats": 20,
"orgwideEnrolledDevices": 10
}
}
}
}
}
},
"summary": "Return an overview of the license state for an organization",
"tags": [
"organizations",
"monitor",
"licenses",
"overview"
]
}
},
"/organizations/{organizationId}/licenses/renewSeats": {
"post": {
"description": "Renew SM seats of a license. This will extend the license expiration date of managed SM devices covered by this license",
"operationId": "renewOrganizationLicensesSeats",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "renewOrganizationLicensesSeats",
"in": "body",
"schema": {
"type": "object",
"properties": {
"licenseIdToRenew": {
"type": "string",
"description": "The ID of the SM license to renew. This license must already be assigned to an SM network"
},
"unusedLicenseId": {
"type": "string",
"description": "The SM license to use to renew the seats on 'licenseIdToRenew'. This license must have at least as many seats available as there are seats on 'licenseIdToRenew'"
}
},
"example": {
"licenseIdToRenew": "123",
"unusedLicenseId": "1234"
},
"required": [
"licenseIdToRenew",
"unusedLicenseId"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"resultingLicenses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "License ID"
},
"licenseType": {
"type": "string",
"description": "License type"
},
"licenseKey": {
"type": "string",
"description": "License key"
},
"orderNumber": {
"type": "string",
"description": "Order number"
},
"deviceSerial": {
"type": "string",
"description": "Serial number of the device the license is assigned to"
},
"networkId": {
"type": "string",
"description": "ID of the network the license is assigned to"
},
"state": {
"type": "string",
"enum": [
"active",
"expired",
"expiring",
"recentlyQueued",
"unused",
"unusedActive"
],
"description": "The state of the license. All queued licenses have a status of `recentlyQueued`."
},
"seatCount": {
"type": "integer",
"description": "The number of seats of the license. Only applicable to SM licenses."
},
"totalDurationInDays": {
"type": "integer",
"description": "The duration of the license plus all permanently queued licenses associated with it"
},
"durationInDays": {
"type": "integer",
"description": "The duration of the individual license"
},
"permanentlyQueuedLicenses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Permanently queued license ID"
},
"licenseType": {
"type": "string",
"description": "License type"
},
"licenseKey": {
"type": "string",
"description": "License key"
},
"orderNumber": {
"type": "string",
"description": "Order number"
},
"durationInDays": {
"type": "integer",
"description": "The duration of the individual license"
}
}
},
"description": "DEPRECATED List of permanently queued licenses attached to the license. Instead, use /organizations/{organizationId}/licenses?deviceSerial= to retrieved queued licenses for a given device."
},
"claimDate": {
"type": "string",
"description": "The date the license was claimed into the organization"
},
"activationDate": {
"type": "string",
"description": "The date the license started burning"
},
"expirationDate": {
"type": "string",
"description": "The date the license will expire"
},
"headLicenseId": {
"type": "string",
"description": "The id of the head license this license is queued behind. If there is no head license, it returns nil."
}
}
},
"description": "Resulting licenses from the move"
}
}
},
"examples": {
"application/json": {
"resultingLicenses": [
{
"id": "1234",
"licenseType": "SME",
"licenseKey": "Z21234567890",
"orderNumber": "4C1234567",
"deviceSerial": "Q234-ABCD-5678",
"networkId": "N_24329156",
"state": "active",
"seatCount": 25,
"totalDurationInDays": 425,
"durationInDays": 365,
"permanentlyQueuedLicenses": [
{
"id": "1234",
"licenseType": "SME",
"licenseKey": "Z21234567890",
"orderNumber": "4C1234567",
"durationInDays": 60
}
],
"claimDate": "2019-08-29T12:40:10Z",
"activationDate": "2019-09-01T15:01:46Z",
"expirationDate": "2020-10-30T15:01:46Z",
"headLicenseId": "1234"
}
]
}
}
}
},
"summary": "Renew SM seats of a license",
"tags": [
"organizations",
"configure",
"licenses"
]
}
},
"/organizations/{organizationId}/licenses/{licenseId}": {
"get": {
"description": "Display a license",
"operationId": "getOrganizationLicense",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "licenseId",
"in": "path",
"description": "License ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "License ID"
},
"licenseType": {
"type": "string",
"description": "License type"
},
"licenseKey": {
"type": "string",
"description": "License key"
},
"orderNumber": {
"type": "string",
"description": "Order number"
},
"deviceSerial": {
"type": "string",
"description": "Serial number of the device the license is assigned to"
},
"networkId": {
"type": "string",
"description": "ID of the network the license is assigned to"
},
"state": {
"type": "string",
"enum": [
"active",
"expired",
"expiring",
"recentlyQueued",
"unused",
"unusedActive"
],
"description": "The state of the license. All queued licenses have a status of `recentlyQueued`."
},
"seatCount": {
"type": "integer",
"description": "The number of seats of the license. Only applicable to SM licenses."
},
"totalDurationInDays": {
"type": "integer",
"description": "The duration of the license plus all permanently queued licenses associated with it"
},
"durationInDays": {
"type": "integer",
"description": "The duration of the individual license"
},
"permanentlyQueuedLicenses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Permanently queued license ID"
},
"licenseType": {
"type": "string",
"description": "License type"
},
"licenseKey": {
"type": "string",
"description": "License key"
},
"orderNumber": {
"type": "string",
"description": "Order number"
},
"durationInDays": {
"type": "integer",
"description": "The duration of the individual license"
}
}
},
"description": "DEPRECATED List of permanently queued licenses attached to the license. Instead, use /organizations/{organizationId}/licenses?deviceSerial= to retrieved queued licenses for a given device."
},
"claimDate": {
"type": "string",
"description": "The date the license was claimed into the organization"
},
"activationDate": {
"type": "string",
"description": "The date the license started burning"
},
"expirationDate": {
"type": "string",
"description": "The date the license will expire"
},
"headLicenseId": {
"type": "string",
"description": "The id of the head license this license is queued behind. If there is no head license, it returns nil."
}
}
},
"examples": {
"application/json": {
"id": "1234",
"licenseType": "MX64-ENT",
"licenseKey": "Z21234567890",
"orderNumber": "4C1234567",
"deviceSerial": "Q234-ABCD-5678",
"networkId": "N_24329156",
"state": "active",
"seatCount": 25,
"totalDurationInDays": 425,
"durationInDays": 365,
"permanentlyQueuedLicenses": [
{
"id": "1234",
"licenseType": "MX64-ENT",
"licenseKey": "Z21234567890",
"orderNumber": "4C1234567",
"durationInDays": 60
}
],
"claimDate": "2019-08-29T12:40:10Z",
"activationDate": "2019-09-01T15:01:46Z",
"expirationDate": "2020-10-30T15:01:46Z",
"headLicenseId": "1234"
}
}
}
},
"summary": "Display a license",
"tags": [
"organizations",
"configure",
"licenses"
]
},
"put": {
"description": "Update a license",
"operationId": "updateOrganizationLicense",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "licenseId",
"in": "path",
"description": "License ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationLicense",
"in": "body",
"schema": {
"type": "object",
"properties": {
"deviceSerial": {
"type": "string",
"description": "The serial number of the device to assign this license to. Set this to null to unassign the license. If a different license is already active on the device, this parameter will control queueing/dequeuing this license."
}
},
"example": {
"deviceSerial": "Q234-ABCD-5678"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "License ID"
},
"licenseType": {
"type": "string",
"description": "License type"
},
"licenseKey": {
"type": "string",
"description": "License key"
},
"orderNumber": {
"type": "string",
"description": "Order number"
},
"deviceSerial": {
"type": "string",
"description": "Serial number of the device the license is assigned to"
},
"networkId": {
"type": "string",
"description": "ID of the network the license is assigned to"
},
"state": {
"type": "string",
"enum": [
"active",
"expired",
"expiring",
"recentlyQueued",
"unused",
"unusedActive"
],
"description": "The state of the license. All queued licenses have a status of `recentlyQueued`."
},
"seatCount": {
"type": "integer",
"description": "The number of seats of the license. Only applicable to SM licenses."
},
"totalDurationInDays": {
"type": "integer",
"description": "The duration of the license plus all permanently queued licenses associated with it"
},
"durationInDays": {
"type": "integer",
"description": "The duration of the individual license"
},
"permanentlyQueuedLicenses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Permanently queued license ID"
},
"licenseType": {
"type": "string",
"description": "License type"
},
"licenseKey": {
"type": "string",
"description": "License key"
},
"orderNumber": {
"type": "string",
"description": "Order number"
},
"durationInDays": {
"type": "integer",
"description": "The duration of the individual license"
}
}
},
"description": "DEPRECATED List of permanently queued licenses attached to the license. Instead, use /organizations/{organizationId}/licenses?deviceSerial= to retrieved queued licenses for a given device."
},
"claimDate": {
"type": "string",
"description": "The date the license was claimed into the organization"
},
"activationDate": {
"type": "string",
"description": "The date the license started burning"
},
"expirationDate": {
"type": "string",
"description": "The date the license will expire"
},
"headLicenseId": {
"type": "string",
"description": "The id of the head license this license is queued behind. If there is no head license, it returns nil."
}
}
},
"examples": {
"application/json": {
"id": "1234",
"licenseType": "MX64-ENT",
"licenseKey": "Z21234567890",
"orderNumber": "4C1234567",
"deviceSerial": "Q234-ABCD-5678",
"networkId": "N_24329156",
"state": "active",
"seatCount": 25,
"totalDurationInDays": 425,
"durationInDays": 365,
"permanentlyQueuedLicenses": [
{
"id": "1234",
"licenseType": "MX64-ENT",
"licenseKey": "Z21234567890",
"orderNumber": "4C1234567",
"durationInDays": 60
}
],
"claimDate": "2019-08-29T12:40:10Z",
"activationDate": "2019-09-01T15:01:46Z",
"expirationDate": "2020-10-30T15:01:46Z",
"headLicenseId": "1234"
}
}
}
},
"summary": "Update a license",
"tags": [
"organizations",
"configure",
"licenses"
]
}
},
"/organizations/{organizationId}/licensing/coterm/licenses": {
"get": {
"description": "List the licenses in a coterm organization",
"operationId": "getOrganizationLicensingCotermLicenses",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "boolean",
"name": "invalidated",
"in": "query",
"description": "Filter for licenses that are invalidated"
},
{
"type": "boolean",
"name": "expired",
"in": "query",
"description": "Filter for licenses that are expired"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "The key of the license"
},
"organizationId": {
"type": "string",
"description": "The ID of the organization that the license is claimed in"
},
"duration": {
"type": "integer",
"description": "The duration (term length) of the license, measured in days"
},
"mode": {
"type": "string",
"enum": [
"addDevices",
"renew"
],
"description": "The operation mode of the license when it was claimed"
},
"startedAt": {
"type": "string",
"format": "date-time",
"description": "When the license's term began (approximately the date when the license was created)"
},
"claimedAt": {
"type": "string",
"format": "date-time",
"description": "When the license was claimed into the organization"
},
"invalidated": {
"type": "boolean",
"description": "Flag to indicated that the license is invalidated"
},
"invalidatedAt": {
"type": "string",
"format": "date-time",
"description": "When the license was invalidated. Will be null for active licenses"
},
"expired": {
"type": "boolean",
"description": "Flag to indicate if the license is expired"
},
"editions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"edition": {
"type": "string",
"description": "The name of the license edition"
},
"productType": {
"type": "string",
"description": "The product type of the license edition"
}
}
},
"description": "The editions of the license for each relevant product type"
},
"counts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"model": {
"type": "string",
"description": "The license model type"
},
"count": {
"type": "integer",
"description": "The number of counts the license contains of this model"
}
}
},
"description": "The counts of the license by model type"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"key": "Z2AA-BBBB-CCCC",
"organizationId": "123456",
"duration": 365,
"mode": "addDevices",
"startedAt": "2022-05-02T10:52:00Z",
"claimedAt": "2022-07-04T16:23:00Z",
"invalidated": true,
"invalidatedAt": "2022-07-04T16:23:00Z",
"expired": false,
"editions": [
{
"edition": "Enterprise",
"productType": "appliance"
}
],
"counts": [
{
"model": "MR Enterprise",
"count": 2
}
]
}
]
}
}
},
"summary": "List the licenses in a coterm organization",
"tags": [
"licensing",
"configure",
"coterm",
"licenses"
]
}
},
"/organizations/{organizationId}/licensing/coterm/licenses/move": {
"post": {
"description": "Moves a license to a different organization (coterm only)",
"operationId": "moveOrganizationLicensingCotermLicenses",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "moveOrganizationLicensingCotermLicenses",
"in": "body",
"schema": {
"type": "object",
"properties": {
"destination": {
"type": "object",
"properties": {
"organizationId": {
"type": "string",
"description": "The organization to move the license to"
},
"mode": {
"type": "string",
"enum": [
"addDevices",
"renew"
],
"description": "The claim mode of the moved license"
}
},
"description": "Destination data for the license move"
},
"licenses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "The license key to move counts from"
},
"counts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"model": {
"type": "string",
"description": "The license model type to move counts of"
},
"count": {
"type": "integer",
"description": "The number of counts to move"
}
},
"required": [
"model",
"count"
]
},
"description": "The counts to move from the license by model type"
}
},
"required": [
"key",
"counts"
]
},
"description": "The list of licenses to move"
}
},
"example": {
"destination": {
"organizationId": "123",
"mode": "addDevices"
},
"licenses": [
{
"key": "Z2AA-BBBB-CCCC",
"counts": [
{
"model": "MR Enterprise",
"count": 5
}
]
}
]
},
"required": [
"destination",
"licenses"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"remainderLicenses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "The key of the license"
},
"organizationId": {
"type": "string",
"description": "The ID of the organization that the license is claimed in"
},
"duration": {
"type": "integer",
"description": "The duration (term length) of the license, measured in days"
},
"mode": {
"type": "string",
"enum": [
"addDevices",
"renew"
],
"description": "The operation mode of the license when it was claimed"
},
"startedAt": {
"type": "string",
"format": "date-time",
"description": "When the license's term began (approximately the date when the license was created)"
},
"claimedAt": {
"type": "string",
"format": "date-time",
"description": "When the license was claimed into the organization"
},
"invalidated": {
"type": "boolean",
"description": "Flag to indicated that the license is invalidated"
},
"invalidatedAt": {
"type": "string",
"format": "date-time",
"description": "When the license was invalidated. Will be null for active licenses"
},
"expired": {
"type": "boolean",
"description": "Flag to indicate if the license is expired"
},
"editions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"edition": {
"type": "string",
"description": "The name of the license edition"
},
"productType": {
"type": "string",
"description": "The product type of the license edition"
}
}
},
"description": "The editions of the license for each relevant product type"
},
"counts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"model": {
"type": "string",
"description": "The license model type"
},
"count": {
"type": "integer",
"description": "The number of counts the license contains of this model"
}
}
},
"description": "The counts of the license by model type"
}
}
},
"description": "Remainder licenses created in the source organization as a result of moving a subset of the counts of a license"
},
"movedLicenses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "The key of the license"
},
"organizationId": {
"type": "string",
"description": "The ID of the organization that the license is claimed in"
},
"duration": {
"type": "integer",
"description": "The duration (term length) of the license, measured in days"
},
"mode": {
"type": "string",
"enum": [
"addDevices",
"renew"
],
"description": "The operation mode of the license when it was claimed"
},
"startedAt": {
"type": "string",
"format": "date-time",
"description": "When the license's term began (approximately the date when the license was created)"
},
"claimedAt": {
"type": "string",
"format": "date-time",
"description": "When the license was claimed into the organization"
},
"invalidated": {
"type": "boolean",
"description": "Flag to indicated that the license is invalidated"
},
"invalidatedAt": {
"type": "string",
"format": "date-time",
"description": "When the license was invalidated. Will be null for active licenses"
},
"expired": {
"type": "boolean",
"description": "Flag to indicate if the license is expired"
},
"editions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"edition": {
"type": "string",
"description": "The name of the license edition"
},
"productType": {
"type": "string",
"description": "The product type of the license edition"
}
}
},
"description": "The editions of the license for each relevant product type"
},
"counts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"model": {
"type": "string",
"description": "The license model type"
},
"count": {
"type": "integer",
"description": "The number of counts the license contains of this model"
}
}
},
"description": "The counts of the license by model type"
}
}
},
"description": "Newly moved licenses created in the destination organization of the license move operation"
}
}
},
"examples": {
"application/json": {
"remainderLicenses": [
{
"key": "Z2AA-BBBB-CCCC",
"organizationId": "123456",
"duration": 365,
"mode": "addDevices",
"startedAt": "2022-05-02T10:52:00Z",
"claimedAt": "2022-07-04T16:23:00Z",
"invalidated": true,
"invalidatedAt": "2022-07-04T16:23:00Z",
"expired": false,
"editions": [
{
"edition": "Enterprise",
"productType": "appliance"
}
],
"counts": [
{
"model": "MR Enterprise",
"count": 2
}
]
}
],
"movedLicenses": [
{
"key": "Z2AA-BBBB-CCCC",
"organizationId": "123456",
"duration": 365,
"mode": "addDevices",
"startedAt": "2022-05-02T10:52:00Z",
"claimedAt": "2022-07-04T16:23:00Z",
"invalidated": true,
"invalidatedAt": "2022-07-04T16:23:00Z",
"expired": false,
"editions": [
{
"edition": "Enterprise",
"productType": "appliance"
}
],
"counts": [
{
"model": "MR Enterprise",
"count": 2
}
]
}
]
}
}
}
},
"summary": "Moves a license to a different organization (coterm only)",
"tags": [
"licensing",
"configure",
"coterm",
"licenses"
]
}
},
"/organizations/{organizationId}/loginSecurity": {
"get": {
"description": "Returns the login security settings for an organization.",
"operationId": "getOrganizationLoginSecurity",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enforcePasswordExpiration": {
"type": "boolean",
"description": "Boolean indicating whether users are forced to change their password every X number of days."
},
"passwordExpirationDays": {
"type": "integer",
"description": "Number of days after which users will be forced to change their password."
},
"enforceDifferentPasswords": {
"type": "boolean",
"description": "Boolean indicating whether users, when setting a new password, are forced to choose a new password that is different from any past passwords."
},
"numDifferentPasswords": {
"type": "integer",
"description": "Number of recent passwords that new password must be distinct from."
},
"enforceStrongPasswords": {
"type": "boolean",
"description": "Boolean indicating whether users will be forced to choose strong passwords for their accounts. Strong passwords are at least 8 characters that contain 3 of the following: number, uppercase letter, lowercase letter, and symbol"
},
"enforceAccountLockout": {
"type": "boolean",
"description": "Boolean indicating whether users' Dashboard accounts will be locked out after a specified number of consecutive failed login attempts."
},
"accountLockoutAttempts": {
"type": "integer",
"description": "Number of consecutive failed login attempts after which users' accounts will be locked."
},
"enforceIdleTimeout": {
"type": "boolean",
"description": "Boolean indicating whether users will be logged out after being idle for the specified number of minutes."
},
"idleTimeoutMinutes": {
"type": "integer",
"description": "Number of minutes users can remain idle before being logged out of their accounts."
},
"enforceTwoFactorAuth": {
"type": "boolean",
"description": "Boolean indicating whether users in this organization will be required to use an extra verification code when logging in to Dashboard. This code will be sent to their mobile phone via SMS, or can be generated by the authenticator application."
},
"enforceLoginIpRanges": {
"type": "boolean",
"description": "Boolean indicating whether organization will restrict access to Dashboard (including the API) from certain IP addresses."
},
"loginIpRanges": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of acceptable IP ranges. Entries can be single IP addresses, IP address ranges, and CIDR subnets."
},
"apiAuthentication": {
"type": "object",
"properties": {
"ipRestrictionsForKeys": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Boolean indicating whether the organization will restrict API key (not Dashboard GUI) usage to a specific list of IP addresses or CIDR ranges."
},
"ranges": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of acceptable IP ranges. Entries can be single IP addresses, IP address ranges, and CIDR subnets."
}
},
"description": "Details for API-only IP restrictions."
}
},
"description": "Details for indicating whether organization will restrict access to API (but not Dashboard) to certain IP addresses."
}
}
},
"examples": {
"application/json": {
"enforcePasswordExpiration": true,
"passwordExpirationDays": 90,
"enforceDifferentPasswords": true,
"numDifferentPasswords": 3,
"enforceStrongPasswords": true,
"enforceAccountLockout": true,
"accountLockoutAttempts": 3,
"enforceIdleTimeout": true,
"idleTimeoutMinutes": 30,
"enforceTwoFactorAuth": true,
"enforceLoginIpRanges": true,
"loginIpRanges": [
"192.195.83.1",
"192.195.83.255"
],
"apiAuthentication": {
"ipRestrictionsForKeys": {
"enabled": true,
"ranges": [
"192.195.83.1",
"192.168.33.33"
]
}
}
}
}
}
},
"summary": "Returns the login security settings for an organization.",
"tags": [
"organizations",
"configure",
"loginSecurity"
]
},
"put": {
"description": "Update the login security settings for an organization",
"operationId": "updateOrganizationLoginSecurity",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationLoginSecurity",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enforcePasswordExpiration": {
"type": "boolean",
"description": "Boolean indicating whether users are forced to change their password every X number of days."
},
"passwordExpirationDays": {
"type": "integer",
"description": "Number of days after which users will be forced to change their password."
},
"enforceDifferentPasswords": {
"type": "boolean",
"description": "Boolean indicating whether users, when setting a new password, are forced to choose a new password that is different from any past passwords."
},
"numDifferentPasswords": {
"type": "integer",
"description": "Number of recent passwords that new password must be distinct from."
},
"enforceStrongPasswords": {
"type": "boolean",
"description": "Boolean indicating whether users will be forced to choose strong passwords for their accounts. Strong passwords are at least 8 characters that contain 3 of the following: number, uppercase letter, lowercase letter, and symbol"
},
"enforceAccountLockout": {
"type": "boolean",
"description": "Boolean indicating whether users' Dashboard accounts will be locked out after a specified number of consecutive failed login attempts."
},
"accountLockoutAttempts": {
"type": "integer",
"description": "Number of consecutive failed login attempts after which users' accounts will be locked."
},
"enforceIdleTimeout": {
"type": "boolean",
"description": "Boolean indicating whether users will be logged out after being idle for the specified number of minutes."
},
"idleTimeoutMinutes": {
"type": "integer",
"description": "Number of minutes users can remain idle before being logged out of their accounts."
},
"enforceTwoFactorAuth": {
"type": "boolean",
"description": "Boolean indicating whether users in this organization will be required to use an extra verification code when logging in to Dashboard. This code will be sent to their mobile phone via SMS, or can be generated by the authenticator application."
},
"enforceLoginIpRanges": {
"type": "boolean",
"description": "Boolean indicating whether organization will restrict access to Dashboard (including the API) from certain IP addresses."
},
"loginIpRanges": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of acceptable IP ranges. Entries can be single IP addresses, IP address ranges, and CIDR subnets."
},
"apiAuthentication": {
"type": "object",
"properties": {
"ipRestrictionsForKeys": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Boolean indicating whether the organization will restrict API key (not Dashboard GUI) usage to a specific list of IP addresses or CIDR ranges."
},
"ranges": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of acceptable IP ranges. Entries can be single IP addresses, IP address ranges, and CIDR subnets."
}
},
"description": "Details for API-only IP restrictions."
}
},
"description": "Details for indicating whether organization will restrict access to API (but not Dashboard) to certain IP addresses."
}
},
"example": {
"enforcePasswordExpiration": true,
"passwordExpirationDays": 90,
"enforceDifferentPasswords": true,
"numDifferentPasswords": 3,
"enforceStrongPasswords": true,
"enforceAccountLockout": true,
"accountLockoutAttempts": 3,
"enforceIdleTimeout": true,
"idleTimeoutMinutes": 30,
"enforceTwoFactorAuth": true,
"enforceLoginIpRanges": true,
"loginIpRanges": [
"192.195.83.1",
"192.195.83.255"
],
"apiAuthentication": {
"ipRestrictionsForKeys": {
"enabled": true,
"ranges": [
"192.195.83.1",
"192.168.33.33"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enforcePasswordExpiration": {
"type": "boolean",
"description": "Boolean indicating whether users are forced to change their password every X number of days."
},
"passwordExpirationDays": {
"type": "integer",
"description": "Number of days after which users will be forced to change their password."
},
"enforceDifferentPasswords": {
"type": "boolean",
"description": "Boolean indicating whether users, when setting a new password, are forced to choose a new password that is different from any past passwords."
},
"numDifferentPasswords": {
"type": "integer",
"description": "Number of recent passwords that new password must be distinct from."
},
"enforceStrongPasswords": {
"type": "boolean",
"description": "Boolean indicating whether users will be forced to choose strong passwords for their accounts. Strong passwords are at least 8 characters that contain 3 of the following: number, uppercase letter, lowercase letter, and symbol"
},
"enforceAccountLockout": {
"type": "boolean",
"description": "Boolean indicating whether users' Dashboard accounts will be locked out after a specified number of consecutive failed login attempts."
},
"accountLockoutAttempts": {
"type": "integer",
"description": "Number of consecutive failed login attempts after which users' accounts will be locked."
},
"enforceIdleTimeout": {
"type": "boolean",
"description": "Boolean indicating whether users will be logged out after being idle for the specified number of minutes."
},
"idleTimeoutMinutes": {
"type": "integer",
"description": "Number of minutes users can remain idle before being logged out of their accounts."
},
"enforceTwoFactorAuth": {
"type": "boolean",
"description": "Boolean indicating whether users in this organization will be required to use an extra verification code when logging in to Dashboard. This code will be sent to their mobile phone via SMS, or can be generated by the authenticator application."
},
"enforceLoginIpRanges": {
"type": "boolean",
"description": "Boolean indicating whether organization will restrict access to Dashboard (including the API) from certain IP addresses."
},
"loginIpRanges": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of acceptable IP ranges. Entries can be single IP addresses, IP address ranges, and CIDR subnets."
},
"apiAuthentication": {
"type": "object",
"properties": {
"ipRestrictionsForKeys": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Boolean indicating whether the organization will restrict API key (not Dashboard GUI) usage to a specific list of IP addresses or CIDR ranges."
},
"ranges": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of acceptable IP ranges. Entries can be single IP addresses, IP address ranges, and CIDR subnets."
}
},
"description": "Details for API-only IP restrictions."
}
},
"description": "Details for indicating whether organization will restrict access to API (but not Dashboard) to certain IP addresses."
}
}
},
"examples": {
"application/json": {
"enforcePasswordExpiration": true,
"passwordExpirationDays": 90,
"enforceDifferentPasswords": true,
"numDifferentPasswords": 3,
"enforceStrongPasswords": true,
"enforceAccountLockout": true,
"accountLockoutAttempts": 3,
"enforceIdleTimeout": true,
"idleTimeoutMinutes": 30,
"enforceTwoFactorAuth": true,
"enforceLoginIpRanges": true,
"loginIpRanges": [
"192.195.83.1",
"192.195.83.255"
],
"apiAuthentication": {
"ipRestrictionsForKeys": {
"enabled": true,
"ranges": [
"192.195.83.1",
"192.168.33.33"
]
}
}
}
}
}
},
"summary": "Update the login security settings for an organization",
"tags": [
"organizations",
"configure",
"loginSecurity"
]
}
},
"/organizations/{organizationId}/networks": {
"get": {
"description": "List the networks that the user has privileges on in an organization",
"operationId": "getOrganizationNetworks",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "configTemplateId",
"in": "query",
"description": "An optional parameter that is the ID of a config template. Will return all networks bound to that template."
},
{
"type": "boolean",
"name": "isBoundToConfigTemplate",
"in": "query",
"description": "An optional parameter to filter config template bound networks. If configTemplateId is set, this cannot be false."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "tags",
"in": "query",
"description": "An optional parameter to filter networks by tags. The filtering is case-sensitive. If tags are included, 'tagsFilterType' should also be included (see below)."
},
{
"type": "string",
"enum": [
"withAllTags",
"withAnyTags"
],
"name": "tagsFilterType",
"in": "query",
"description": "An optional parameter of value 'withAnyTags' or 'withAllTags' to indicate whether to return networks which contain ANY or ALL of the included tags. If no type is included, 'withAnyTags' will be selected."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 100000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network ID"
},
"organizationId": {
"type": "string",
"description": "Organization ID"
},
"name": {
"type": "string",
"description": "Network name"
},
"productTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of the product types that the network supports"
},
"timeZone": {
"type": "string",
"description": "Timezone of the network"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Network tags"
},
"enrollmentString": {
"type": "string",
"description": "Enrollment string for the network"
},
"url": {
"type": "string",
"description": "URL to the network Dashboard UI"
},
"notes": {
"type": "string",
"description": "Notes for the network"
},
"isBoundToConfigTemplate": {
"type": "boolean",
"description": "If the network is bound to a config template"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"id": "N_24329156",
"organizationId": "2930418",
"name": "Main Office",
"productTypes": [
"appliance",
"switch",
"wireless"
],
"timeZone": "America/Los_Angeles",
"tags": [
"tag1",
"tag2"
],
"enrollmentString": "my-enrollment-string",
"url": "https://n1.meraki.com//n//manage/nodes/list",
"notes": "Additional description of the network",
"isBoundToConfigTemplate": false
}
]
}
}
},
"summary": "List the networks that the user has privileges on in an organization",
"tags": [
"organizations",
"configure",
"networks"
]
},
"post": {
"description": "Create a network",
"operationId": "createOrganizationNetwork",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationNetwork",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the new network"
},
"productTypes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"appliance",
"camera",
"cellularGateway",
"sensor",
"switch",
"systemsManager",
"wireless"
]
},
"description": "The product type(s) of the new network. If more than one type is included, the network will be a combined network."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of tags to be applied to the network"
},
"timeZone": {
"type": "string",
"description": "The timezone of the network. For a list of allowed timezones, please see the 'TZ' column in the table in this article. "
},
"copyFromNetworkId": {
"type": "string",
"description": "The ID of the network to copy configuration from. Other provided parameters will override the copied configuration, except type which must match this network's type exactly."
},
"notes": {
"type": "string",
"description": "Add any notes or additional information about this network here."
}
},
"example": {
"name": "Main Office",
"productTypes": [
"appliance",
"switch",
"wireless"
],
"tags": [
"tag1",
"tag2"
],
"timeZone": "America/Los_Angeles",
"copyFromNetworkId": "N_24329156",
"notes": "Additional description of the network"
},
"required": [
"name",
"productTypes"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network ID"
},
"organizationId": {
"type": "string",
"description": "Organization ID"
},
"name": {
"type": "string",
"description": "Network name"
},
"productTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of the product types that the network supports"
},
"timeZone": {
"type": "string",
"description": "Timezone of the network"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Network tags"
},
"enrollmentString": {
"type": "string",
"description": "Enrollment string for the network"
},
"url": {
"type": "string",
"description": "URL to the network Dashboard UI"
},
"notes": {
"type": "string",
"description": "Notes for the network"
},
"isBoundToConfigTemplate": {
"type": "boolean",
"description": "If the network is bound to a config template"
}
}
},
"examples": {
"application/json": {
"id": "N_24329156",
"organizationId": "2930418",
"name": "Main Office",
"productTypes": [
"appliance",
"switch",
"wireless"
],
"timeZone": "America/Los_Angeles",
"tags": [
"tag1",
"tag2"
],
"enrollmentString": "my-enrollment-string",
"url": "https://n1.meraki.com//n//manage/nodes/list",
"notes": "Additional description of the network",
"isBoundToConfigTemplate": false
}
}
}
},
"summary": "Create a network",
"tags": [
"organizations",
"configure",
"networks"
]
}
},
"/organizations/{organizationId}/networks/combine": {
"post": {
"description": "Combine multiple networks into a single network",
"operationId": "combineOrganizationNetworks",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "combineOrganizationNetworks",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the combined network"
},
"networkIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of the network IDs that will be combined. If an ID of a combined network is included in this list, the other networks in the list will be grouped into that network"
},
"enrollmentString": {
"type": "string",
"description": "A unique identifier which can be used for device enrollment or easy access through the Meraki SM Registration page or the Self Service Portal. Please note that changing this field may cause existing bookmarks to break. All networks that are part of this combined network will have their enrollment string appended by '-network_type'. If left empty, all exisitng enrollment strings will be deleted."
}
},
"example": {
"name": "Long Island Office",
"networkIds": [
"N_1234",
"N_5678"
],
"enrollmentString": "my-enrollment-string"
},
"required": [
"name",
"networkIds"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"resultingNetwork": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network ID"
},
"organizationId": {
"type": "string",
"description": "Organization ID"
},
"name": {
"type": "string",
"description": "Network name"
},
"productTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of the product types that the network supports"
},
"timeZone": {
"type": "string",
"description": "Timezone of the network"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Network tags"
},
"enrollmentString": {
"type": "string",
"description": "Enrollment string for the network"
},
"url": {
"type": "string",
"description": "URL to the network Dashboard UI"
},
"notes": {
"type": "string",
"description": "Notes for the network"
},
"isBoundToConfigTemplate": {
"type": "boolean",
"description": "If the network is bound to a config template"
}
},
"description": "Network after the combination"
}
}
},
"examples": {
"application/json": {
"resultingNetwork": {
"id": "N_24329156",
"organizationId": "2930418",
"name": "Main Office",
"productTypes": [
"appliance",
"switch",
"wireless"
],
"timeZone": "America/Los_Angeles",
"tags": [
"tag1",
"tag2"
],
"enrollmentString": "my-enrollment-string",
"url": "https://n1.meraki.com//n//manage/nodes/list",
"notes": "Additional description of the network",
"isBoundToConfigTemplate": false
}
}
}
}
},
"summary": "Combine multiple networks into a single network",
"tags": [
"organizations",
"configure",
"networks"
]
}
},
"/organizations/{organizationId}/openapiSpec": {
"get": {
"description": "Return the OpenAPI Specification of the organization's API documentation in JSON",
"operationId": "getOrganizationOpenapiSpec",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"enum": [
2,
3
],
"name": "version",
"in": "query",
"description": "OpenAPI Specification version to return. Default is 2"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object"
},
"examples": {
"application/json": {
"openapi": "3.0.1",
"info": {
"version": "v1",
"title": "Meraki Dashboard API",
"description": "This collection of API calls provides an easy way to manage and monitor Cisco Meraki networks at scale"
},
"paths": {
"/organizations": {
"get": {
"description": "List the organizations that the user has privileges on",
"operationId": "getOrganizations",
"responses": {
"200": {
"description": "Successful operation",
"examples": {
"application/json": [
{
"id": "2930418",
"name": "My organization"
}
]
}
}
}
}
}
}
}
}
}
},
"summary": "Return the OpenAPI Specification of the organization's API documentation in JSON",
"tags": [
"organizations",
"monitor",
"openapiSpec"
]
}
},
"/organizations/{organizationId}/policies/assignments/byClient": {
"get": {
"description": "Get policies for all clients with policies",
"operationId": "getOrganizationPoliciesAssignmentsByClient",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 50."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameter t0. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
},
{
"type": "boolean",
"name": "includeUndetectedClients",
"in": "query",
"description": "Include provisioned clients that have not associated to the network."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"required": true,
"description": "Network Ids"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of client"
},
"clientId": {
"type": "string",
"description": "ID of client"
},
"mac": {
"type": "string",
"description": "MAC address of client"
},
"networkId": {
"type": "string",
"description": "NetworkID"
},
"assigned": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "name of policy"
},
"type": {
"type": "string",
"enum": [
"Allowed",
"Blocked",
"Group"
],
"description": "type of policy"
},
"id": {
"type": "string",
"description": "id of policy"
},
"limitTo": {
"type": "array",
"items": {
"type": "object",
"properties": {
"appliance": {
"type": "boolean",
"description": "true if policy is applied to the appliance"
},
"ssids": {
"type": "array",
"items": {
"type": "object",
"properties": {
"number": {
"type": "integer",
"description": "ssid number"
}
}
},
"description": "ssids"
}
}
},
"description": "policy limits"
}
}
},
"description": "Assigned policies"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"name": "Miles's phone",
"clientId": "k74272e",
"mac": "22:33:44:55:66:77",
"networkId": "N_24329156",
"assigned": [
{
"name": "My group policy",
"type": "Group",
"id": "102",
"limitTo": [
{
"appliance": false,
"ssids": [
{
"number": 1
}
]
}
]
}
]
}
]
}
}
},
"summary": "Get policies for all clients with policies",
"tags": [
"organizations",
"configure",
"policies",
"assignments",
"byClient"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/policyObjects": {
"get": {
"description": "Lists Policy Objects belonging to the organization.",
"operationId": "getOrganizationPolicyObjects",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 10 - 5000. Default is 5000."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Policy object ID"
},
"name": {
"type": "string",
"description": "Name of policy object (alphanumeric, space, dash, or underscore characters only)."
},
"category": {
"type": "string",
"description": "Category of a policy object (one of: adaptivePolicy, network)"
},
"type": {
"type": "string",
"description": "Type of a policy object (one of: adaptivePolicyIpv4Cidr, cidr, fqdn, ipAndMask)"
},
"cidr": {
"type": "string",
"description": "CIDR Value of a policy object"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Time Stamp of policy object creation."
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Time Stamp of policy object updation."
},
"groupIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "The IDs of policy object groups the policy object belongs to."
},
"networkIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "The IDs of the networks that use the policy object."
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": {
"id": "1234",
"name": "Web Servers - Datacenter 10",
"category": "network",
"type": "cidr",
"cidr": "10.0.0.0/24",
"createdAt": "2018-05-12T00:00:00Z",
"updatedAt": "2018-05-12T00:00:00Z",
"groupIds": [
"8"
],
"networkIds": [
"L_12345",
"N_123456"
]
}
}
}
},
"summary": "Lists Policy Objects belonging to the organization.",
"tags": [
"organizations",
"configure",
"policyObjects"
]
},
"post": {
"description": "Creates a new Policy Object.",
"operationId": "createOrganizationPolicyObject",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationPolicyObject",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of a policy object, unique within the organization (alphanumeric, space, dash, or underscore characters only)"
},
"category": {
"type": "string",
"description": "Category of a policy object (one of: adaptivePolicy, network)"
},
"type": {
"type": "string",
"description": "Type of a policy object (one of: adaptivePolicyIpv4Cidr, cidr, fqdn, ipAndMask)"
},
"cidr": {
"type": "string",
"description": "CIDR Value of a policy object (e.g. 10.11.12.1/24\")"
},
"fqdn": {
"type": "string",
"description": "Fully qualified domain name of policy object (e.g. \"example.com\")"
},
"mask": {
"type": "string",
"description": "Mask of a policy object (e.g. \"255.255.0.0\")"
},
"ip": {
"type": "string",
"description": "IP Address of a policy object (e.g. \"1.2.3.4\")"
},
"groupIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "The IDs of policy object groups the policy object belongs to"
}
},
"example": {
"name": "Web Servers - Datacenter 10",
"category": "network",
"type": "cidr",
"cidr": "10.0.0.0/24",
"fqdn": "example.com",
"mask": "255.255.0.0",
"ip": "1.2.3.4",
"groupIds": [
"8"
]
},
"required": [
"name",
"category",
"type"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Policy object ID"
},
"name": {
"type": "string",
"description": "Name of policy object (alphanumeric, space, dash, or underscore characters only)."
},
"category": {
"type": "string",
"description": "Category of a policy object (one of: adaptivePolicy, network)"
},
"type": {
"type": "string",
"description": "Type of a policy object (one of: adaptivePolicyIpv4Cidr, cidr, fqdn, ipAndMask)"
},
"cidr": {
"type": "string",
"description": "CIDR Value of a policy object"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Time Stamp of policy object creation."
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Time Stamp of policy object updation."
},
"groupIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "The IDs of policy object groups the policy object belongs to."
},
"networkIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "The IDs of the networks that use the policy object."
}
}
},
"examples": {
"application/json": {
"id": "1234",
"name": "Web Servers - Datacenter 10",
"category": "network",
"type": "cidr",
"cidr": "10.0.0.0/24",
"createdAt": "2018-05-12T00:00:00Z",
"updatedAt": "2018-05-12T00:00:00Z",
"groupIds": [
"8"
],
"networkIds": [
"L_12345",
"N_123456"
]
}
}
}
},
"summary": "Creates a new Policy Object.",
"tags": [
"organizations",
"configure",
"policyObjects"
]
}
},
"/organizations/{organizationId}/policyObjects/groups": {
"get": {
"description": "Lists Policy Object Groups belonging to the organization.",
"operationId": "getOrganizationPolicyObjectsGroups",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 10 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Policy object ID"
},
"name": {
"type": "string",
"description": "Name of the Policy object group."
},
"category": {
"type": "string",
"description": "Type of object groups. (NetworkObjectGroup, GeoLocationGroup, PortObjectGroup, ApplicationGroup)"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Time Stamp of policy object creation."
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Time Stamp of policy object updation."
},
"objectIds": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Policy objects associated with Network Object Group or Port Object Group"
},
"networkIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Network ID's associated with the policy objects."
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": {
"id": "1234",
"name": "Web Servers - Datacenter 10",
"category": "NetworkObjectGroup",
"createdAt": "2018-05-12T00:00:00Z",
"updatedAt": "2018-05-12T00:00:00Z",
"objectIds": [
100
],
"networkIds": [
"L_12345",
"N_123456"
]
}
}
}
},
"summary": "Lists Policy Object Groups belonging to the organization.",
"tags": [
"organizations",
"configure",
"policyObjects",
"groups"
]
},
"post": {
"description": "Creates a new Policy Object Group.",
"operationId": "createOrganizationPolicyObjectsGroup",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationPolicyObjectsGroup",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A name for the group of network addresses, unique within the organization (alphanumeric, space, dash, or underscore characters only)"
},
"category": {
"type": "string",
"description": "Category of a policy object group (one of: NetworkObjectGroup, GeoLocationGroup, PortObjectGroup, ApplicationGroup)"
},
"objectIds": {
"type": "array",
"items": {
"type": "integer"
},
"description": "A list of Policy Object ID's that this NetworkObjectGroup should be associated to (note: these ID's will replace the existing associated Policy Objects)"
}
},
"example": {
"name": "Web Servers - Datacenter 10",
"category": "NetworkObjectGroup",
"objectIds": [
100
]
},
"required": [
"name"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Policy object ID"
},
"name": {
"type": "string",
"description": "Name of the Policy object group."
},
"category": {
"type": "string",
"description": "Type of object groups. (NetworkObjectGroup, GeoLocationGroup, PortObjectGroup, ApplicationGroup)"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Time Stamp of policy object creation."
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Time Stamp of policy object updation."
},
"objectIds": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Policy objects associated with Network Object Group or Port Object Group"
},
"networkIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Network ID's associated with the policy objects."
}
}
},
"examples": {
"application/json": {
"id": "1234",
"name": "Web Servers - Datacenter 10",
"category": "NetworkObjectGroup",
"createdAt": "2018-05-12T00:00:00Z",
"updatedAt": "2018-05-12T00:00:00Z",
"objectIds": [
100
],
"networkIds": [
"L_12345",
"N_123456"
]
}
}
}
},
"summary": "Creates a new Policy Object Group.",
"tags": [
"organizations",
"configure",
"policyObjects",
"groups"
]
}
},
"/organizations/{organizationId}/policyObjects/groups/{policyObjectGroupId}": {
"get": {
"description": "Shows details of a Policy Object Group.",
"operationId": "getOrganizationPolicyObjectsGroup",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "policyObjectGroupId",
"in": "path",
"description": "Policy object group ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Policy object ID"
},
"name": {
"type": "string",
"description": "Name of the Policy object group."
},
"category": {
"type": "string",
"description": "Type of object groups. (NetworkObjectGroup, GeoLocationGroup, PortObjectGroup, ApplicationGroup)"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Time Stamp of policy object creation."
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Time Stamp of policy object updation."
},
"objectIds": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Policy objects associated with Network Object Group or Port Object Group"
},
"networkIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Network ID's associated with the policy objects."
}
}
},
"examples": {
"application/json": {
"id": "1234",
"name": "Web Servers - Datacenter 10",
"category": "NetworkObjectGroup",
"createdAt": "2018-05-12T00:00:00Z",
"updatedAt": "2018-05-12T00:00:00Z",
"objectIds": [
100
],
"networkIds": [
"L_12345",
"N_123456"
]
}
}
}
},
"summary": "Shows details of a Policy Object Group.",
"tags": [
"organizations",
"configure",
"policyObjects",
"groups"
]
},
"put": {
"description": "Updates a Policy Object Group.",
"operationId": "updateOrganizationPolicyObjectsGroup",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "policyObjectGroupId",
"in": "path",
"description": "Policy object group ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationPolicyObjectsGroup",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A name for the group of network addresses, unique within the organization (alphanumeric, space, dash, or underscore characters only)"
},
"objectIds": {
"type": "array",
"items": {
"type": "integer"
},
"description": "A list of Policy Object ID's that this NetworkObjectGroup should be associated to (note: these ID's will replace the existing associated Policy Objects)"
}
},
"example": {
"name": "Web Servers - Datacenter 10",
"objectIds": [
100
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Policy object ID"
},
"name": {
"type": "string",
"description": "Name of the Policy object group."
},
"category": {
"type": "string",
"description": "Type of object groups. (NetworkObjectGroup, GeoLocationGroup, PortObjectGroup, ApplicationGroup)"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Time Stamp of policy object creation."
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Time Stamp of policy object updation."
},
"objectIds": {
"type": "array",
"items": {
"type": "integer"
},
"description": "Policy objects associated with Network Object Group or Port Object Group"
},
"networkIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Network ID's associated with the policy objects."
}
}
},
"examples": {
"application/json": {
"id": "1234",
"name": "Web Servers - Datacenter 10",
"category": "NetworkObjectGroup",
"createdAt": "2018-05-12T00:00:00Z",
"updatedAt": "2018-05-12T00:00:00Z",
"objectIds": [
100
],
"networkIds": [
"L_12345",
"N_123456"
]
}
}
}
},
"summary": "Updates a Policy Object Group.",
"tags": [
"organizations",
"configure",
"policyObjects",
"groups"
]
},
"delete": {
"description": "Deletes a Policy Object Group.",
"operationId": "deleteOrganizationPolicyObjectsGroup",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "policyObjectGroupId",
"in": "path",
"description": "Policy object group ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Deletes a Policy Object Group.",
"tags": [
"organizations",
"configure",
"policyObjects",
"groups"
]
}
},
"/organizations/{organizationId}/policyObjects/{policyObjectId}": {
"get": {
"description": "Shows details of a Policy Object.",
"operationId": "getOrganizationPolicyObject",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "policyObjectId",
"in": "path",
"description": "Policy object ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Policy object ID"
},
"name": {
"type": "string",
"description": "Name of policy object (alphanumeric, space, dash, or underscore characters only)."
},
"category": {
"type": "string",
"description": "Category of a policy object (one of: adaptivePolicy, network)"
},
"type": {
"type": "string",
"description": "Type of a policy object (one of: adaptivePolicyIpv4Cidr, cidr, fqdn, ipAndMask)"
},
"cidr": {
"type": "string",
"description": "CIDR Value of a policy object"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Time Stamp of policy object creation."
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Time Stamp of policy object updation."
},
"groupIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "The IDs of policy object groups the policy object belongs to."
},
"networkIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "The IDs of the networks that use the policy object."
}
}
},
"examples": {
"application/json": {
"id": "1234",
"name": "Web Servers - Datacenter 10",
"category": "network",
"type": "cidr",
"cidr": "10.0.0.0/24",
"createdAt": "2018-05-12T00:00:00Z",
"updatedAt": "2018-05-12T00:00:00Z",
"groupIds": [
"8"
],
"networkIds": [
"L_12345",
"N_123456"
]
}
}
}
},
"summary": "Shows details of a Policy Object.",
"tags": [
"organizations",
"configure",
"policyObjects"
]
},
"put": {
"description": "Updates a Policy Object.",
"operationId": "updateOrganizationPolicyObject",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "policyObjectId",
"in": "path",
"description": "Policy object ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationPolicyObject",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of a policy object, unique within the organization (alphanumeric, space, dash, or underscore characters only)"
},
"cidr": {
"type": "string",
"description": "CIDR Value of a policy object (e.g. 10.11.12.1/24\")"
},
"fqdn": {
"type": "string",
"description": "Fully qualified domain name of policy object (e.g. \"example.com\")"
},
"mask": {
"type": "string",
"description": "Mask of a policy object (e.g. \"255.255.0.0\")"
},
"ip": {
"type": "string",
"description": "IP Address of a policy object (e.g. \"1.2.3.4\")"
},
"groupIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "The IDs of policy object groups the policy object belongs to"
}
},
"example": {
"name": "Web Servers - Datacenter 10",
"cidr": "10.0.0.0/24",
"fqdn": "example.com",
"mask": "255.255.0.0",
"ip": "1.2.3.4",
"groupIds": [
"8"
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Policy object ID"
},
"name": {
"type": "string",
"description": "Name of policy object (alphanumeric, space, dash, or underscore characters only)."
},
"category": {
"type": "string",
"description": "Category of a policy object (one of: adaptivePolicy, network)"
},
"type": {
"type": "string",
"description": "Type of a policy object (one of: adaptivePolicyIpv4Cidr, cidr, fqdn, ipAndMask)"
},
"cidr": {
"type": "string",
"description": "CIDR Value of a policy object"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Time Stamp of policy object creation."
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Time Stamp of policy object updation."
},
"groupIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "The IDs of policy object groups the policy object belongs to."
},
"networkIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "The IDs of the networks that use the policy object."
}
}
},
"examples": {
"application/json": {
"id": "1234",
"name": "Web Servers - Datacenter 10",
"category": "network",
"type": "cidr",
"cidr": "10.0.0.0/24",
"createdAt": "2018-05-12T00:00:00Z",
"updatedAt": "2018-05-12T00:00:00Z",
"groupIds": [
"8"
],
"networkIds": [
"L_12345",
"N_123456"
]
}
}
}
},
"summary": "Updates a Policy Object.",
"tags": [
"organizations",
"configure",
"policyObjects"
]
},
"delete": {
"description": "Deletes a Policy Object.",
"operationId": "deleteOrganizationPolicyObject",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "policyObjectId",
"in": "path",
"description": "Policy object ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Deletes a Policy Object.",
"tags": [
"organizations",
"configure",
"policyObjects"
]
}
},
"/organizations/{organizationId}/saml": {
"get": {
"description": "Returns the SAML SSO enabled settings for an organization.",
"operationId": "getOrganizationSaml",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Toggle depicting if SAML SSO settings are enabled"
}
}
},
"examples": {
"application/json": {
"enabled": true
}
}
}
},
"summary": "Returns the SAML SSO enabled settings for an organization.",
"tags": [
"organizations",
"configure",
"saml"
]
},
"put": {
"description": "Updates the SAML SSO enabled settings for an organization.",
"operationId": "updateOrganizationSaml",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationSaml",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Boolean for updating SAML SSO enabled settings."
}
},
"example": {
"enabled": true
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Toggle depicting if SAML SSO settings are enabled"
}
}
},
"examples": {
"application/json": {
"enabled": true
}
}
}
},
"summary": "Updates the SAML SSO enabled settings for an organization.",
"tags": [
"organizations",
"configure",
"saml"
]
}
},
"/organizations/{organizationId}/saml/idps": {
"get": {
"description": "List the SAML IdPs in your organization.",
"operationId": "getOrganizationSamlIdps",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"idpId": {
"type": "string",
"description": "ID associated with the SAML Identity Provider (IdP)"
},
"consumerUrl": {
"type": "string",
"description": "URL that is consuming SAML Identity Provider (IdP)"
},
"x509certSha1Fingerprint": {
"type": "string",
"description": "Fingerprint (SHA1) of the SAML certificate provided by your Identity Provider (IdP). This will be used for encryption / validation."
},
"sloLogoutUrl": {
"type": "string",
"description": "Dashboard will redirect users to this URL when they sign out."
}
}
}
},
"examples": {
"application/json": [
{
"idpId": "1284392014819",
"consumerUrl": "https://n7.meraki.com/saml/login/XXX",
"x509certSha1Fingerprint": "00:11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66:77:88:99",
"sloLogoutUrl": "https://somewhere.com"
}
]
}
}
},
"summary": "List the SAML IdPs in your organization.",
"tags": [
"organizations",
"configure",
"saml",
"idps"
]
},
"post": {
"description": "Create a SAML IdP for your organization.",
"operationId": "createOrganizationSamlIdp",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationSamlIdp",
"in": "body",
"schema": {
"type": "object",
"properties": {
"x509certSha1Fingerprint": {
"type": "string",
"description": "Fingerprint (SHA1) of the SAML certificate provided by your Identity Provider (IdP). This will be used for encryption / validation."
},
"sloLogoutUrl": {
"type": "string",
"description": "Dashboard will redirect users to this URL when they sign out."
}
},
"example": {
"x509certSha1Fingerprint": "00:11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66:77:88:99",
"sloLogoutUrl": "https://somewhere.com"
},
"required": [
"x509certSha1Fingerprint"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"idpId": {
"type": "string",
"description": "ID associated with the SAML Identity Provider (IdP)"
},
"consumerUrl": {
"type": "string",
"description": "URL that is consuming SAML Identity Provider (IdP)"
},
"x509certSha1Fingerprint": {
"type": "string",
"description": "Fingerprint (SHA1) of the SAML certificate provided by your Identity Provider (IdP). This will be used for encryption / validation."
},
"sloLogoutUrl": {
"type": "string",
"description": "Dashboard will redirect users to this URL when they sign out."
}
}
}
},
"examples": {
"application/json": [
{
"idpId": "1284392014819",
"consumerUrl": "https://n7.meraki.com/saml/login/XXX",
"x509certSha1Fingerprint": "00:11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66:77:88:99",
"sloLogoutUrl": "https://somewhere.com"
}
]
}
}
},
"summary": "Create a SAML IdP for your organization.",
"tags": [
"organizations",
"configure",
"saml",
"idps"
]
}
},
"/organizations/{organizationId}/saml/idps/{idpId}": {
"put": {
"description": "Update a SAML IdP in your organization",
"operationId": "updateOrganizationSamlIdp",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "idpId",
"in": "path",
"description": "Idp ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationSamlIdp",
"in": "body",
"schema": {
"type": "object",
"properties": {
"x509certSha1Fingerprint": {
"type": "string",
"description": "Fingerprint (SHA1) of the SAML certificate provided by your Identity Provider (IdP). This will be used for encryption / validation."
},
"sloLogoutUrl": {
"type": "string",
"description": "Dashboard will redirect users to this URL when they sign out."
}
},
"example": {
"x509certSha1Fingerprint": "00:11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66:77:88:99",
"sloLogoutUrl": "https://somewhere.com"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"idpId": {
"type": "string",
"description": "ID associated with the SAML Identity Provider (IdP)"
},
"consumerUrl": {
"type": "string",
"description": "URL that is consuming SAML Identity Provider (IdP)"
},
"x509certSha1Fingerprint": {
"type": "string",
"description": "Fingerprint (SHA1) of the SAML certificate provided by your Identity Provider (IdP). This will be used for encryption / validation."
},
"sloLogoutUrl": {
"type": "string",
"description": "Dashboard will redirect users to this URL when they sign out."
}
}
}
},
"examples": {
"application/json": [
{
"idpId": "1284392014819",
"consumerUrl": "https://n7.meraki.com/saml/login/XXX",
"x509certSha1Fingerprint": "00:11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66:77:88:99",
"sloLogoutUrl": "https://somewhere.com"
}
]
}
}
},
"summary": "Update a SAML IdP in your organization",
"tags": [
"organizations",
"configure",
"saml",
"idps"
]
},
"get": {
"description": "Get a SAML IdP from your organization.",
"operationId": "getOrganizationSamlIdp",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "idpId",
"in": "path",
"description": "Idp ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"idpId": {
"type": "string",
"description": "ID associated with the SAML Identity Provider (IdP)"
},
"consumerUrl": {
"type": "string",
"description": "URL that is consuming SAML Identity Provider (IdP)"
},
"x509certSha1Fingerprint": {
"type": "string",
"description": "Fingerprint (SHA1) of the SAML certificate provided by your Identity Provider (IdP). This will be used for encryption / validation."
},
"sloLogoutUrl": {
"type": "string",
"description": "Dashboard will redirect users to this URL when they sign out."
}
}
},
"examples": {
"application/json": {
"idpId": "1284392014819",
"consumerUrl": "https://n7.meraki.com/saml/login/XXX",
"x509certSha1Fingerprint": "00:11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66:77:88:99",
"sloLogoutUrl": "https://somewhere.com"
}
}
}
},
"summary": "Get a SAML IdP from your organization.",
"tags": [
"organizations",
"configure",
"saml",
"idps"
]
},
"delete": {
"description": "Remove a SAML IdP in your organization.",
"operationId": "deleteOrganizationSamlIdp",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "idpId",
"in": "path",
"description": "Idp ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Remove a SAML IdP in your organization.",
"tags": [
"organizations",
"configure",
"saml",
"idps"
]
}
},
"/organizations/{organizationId}/samlRoles": {
"get": {
"description": "List the SAML roles for this organization",
"operationId": "getOrganizationSamlRoles",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID associated with the SAML role"
},
"role": {
"type": "string",
"description": "The role of the SAML administrator"
},
"orgAccess": {
"type": "string",
"description": "The privilege of the SAML administrator on the organization"
},
"networks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The network ID"
},
"access": {
"type": "string",
"description": "The privilege of the SAML administrator on the network"
}
}
},
"description": "The list of networks that the SAML administrator has privileges on"
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "The name of the tag"
},
"access": {
"type": "string",
"description": "The privilege of the SAML administrator on the tag"
}
}
},
"description": "The list of tags that the SAML administrator has privleges on"
},
"camera": {
"type": "array",
"items": {
"type": "object",
"properties": {
"orgWide": {
"type": "boolean",
"description": "Whether or not SAML administrator has org-wide access"
},
"access": {
"type": "string",
"description": "Camera access ability"
}
}
},
"description": "The list of camera access privileges for SAML administrator"
}
}
}
},
"examples": {
"application/json": [
{
"id": "1284392014819",
"role": "myrole",
"orgAccess": "none",
"networks": [
{
"id": "N_24329156",
"access": "full"
}
],
"tags": [
{
"tag": "west",
"access": "read-only"
}
],
"camera": [
{
"orgWide": true,
"access": "viewAndExport"
}
]
}
]
}
}
},
"summary": "List the SAML roles for this organization",
"tags": [
"organizations",
"configure",
"samlRoles"
]
},
"post": {
"description": "Create a SAML role",
"operationId": "createOrganizationSamlRole",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationSamlRole",
"in": "body",
"schema": {
"type": "object",
"properties": {
"role": {
"type": "string",
"description": "The role of the SAML administrator"
},
"orgAccess": {
"type": "string",
"enum": [
"enterprise",
"full",
"none",
"read-only"
],
"description": "The privilege of the SAML administrator on the organization. Can be one of 'none', 'read-only', 'full' or 'enterprise'"
},
"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 SAML 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 SAML administrator has privileges on"
},
"networks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The network ID"
},
"access": {
"type": "string",
"enum": [
"full",
"guest-ambassador",
"monitor-only",
"read-only",
"ssid-admin"
],
"description": "The privilege of the SAML administrator on the network. Can be one of 'full', 'read-only', 'guest-ambassador', 'monitor-only' or 'ssid-admin'"
}
},
"required": [
"id",
"access"
]
},
"description": "The list of networks that the SAML administrator has privileges on"
}
},
"example": {
"role": "myrole",
"orgAccess": "none",
"tags": [
{
"tag": "west",
"access": "read-only"
}
],
"networks": [
{
"id": "N_24329156",
"access": "full"
}
]
},
"required": [
"role",
"orgAccess"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID associated with the SAML role"
},
"role": {
"type": "string",
"description": "The role of the SAML administrator"
},
"orgAccess": {
"type": "string",
"description": "The privilege of the SAML administrator on the organization"
},
"networks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The network ID"
},
"access": {
"type": "string",
"description": "The privilege of the SAML administrator on the network"
}
}
},
"description": "The list of networks that the SAML administrator has privileges on"
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "The name of the tag"
},
"access": {
"type": "string",
"description": "The privilege of the SAML administrator on the tag"
}
}
},
"description": "The list of tags that the SAML administrator has privleges on"
},
"camera": {
"type": "array",
"items": {
"type": "object",
"properties": {
"orgWide": {
"type": "boolean",
"description": "Whether or not SAML administrator has org-wide access"
},
"access": {
"type": "string",
"description": "Camera access ability"
}
}
},
"description": "The list of camera access privileges for SAML administrator"
}
}
},
"examples": {
"application/json": {
"id": "1284392014819",
"role": "myrole",
"orgAccess": "none",
"networks": [
{
"id": "N_24329156",
"access": "full"
}
],
"tags": [
{
"tag": "west",
"access": "read-only"
}
],
"camera": [
{
"orgWide": true,
"access": "viewAndExport"
}
]
}
}
}
},
"summary": "Create a SAML role",
"tags": [
"organizations",
"configure",
"samlRoles"
]
}
},
"/organizations/{organizationId}/samlRoles/{samlRoleId}": {
"get": {
"description": "Return a SAML role",
"operationId": "getOrganizationSamlRole",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "samlRoleId",
"in": "path",
"description": "Saml role ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID associated with the SAML role"
},
"role": {
"type": "string",
"description": "The role of the SAML administrator"
},
"orgAccess": {
"type": "string",
"description": "The privilege of the SAML administrator on the organization"
},
"networks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The network ID"
},
"access": {
"type": "string",
"description": "The privilege of the SAML administrator on the network"
}
}
},
"description": "The list of networks that the SAML administrator has privileges on"
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "The name of the tag"
},
"access": {
"type": "string",
"description": "The privilege of the SAML administrator on the tag"
}
}
},
"description": "The list of tags that the SAML administrator has privleges on"
},
"camera": {
"type": "array",
"items": {
"type": "object",
"properties": {
"orgWide": {
"type": "boolean",
"description": "Whether or not SAML administrator has org-wide access"
},
"access": {
"type": "string",
"description": "Camera access ability"
}
}
},
"description": "The list of camera access privileges for SAML administrator"
}
}
},
"examples": {
"application/json": {
"id": "1284392014819",
"role": "myrole",
"orgAccess": "none",
"networks": [
{
"id": "N_24329156",
"access": "full"
}
],
"tags": [
{
"tag": "west",
"access": "read-only"
}
],
"camera": [
{
"orgWide": true,
"access": "viewAndExport"
}
]
}
}
}
},
"summary": "Return a SAML role",
"tags": [
"organizations",
"configure",
"samlRoles"
]
},
"put": {
"description": "Update a SAML role",
"operationId": "updateOrganizationSamlRole",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "samlRoleId",
"in": "path",
"description": "Saml role ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationSamlRole",
"in": "body",
"schema": {
"type": "object",
"properties": {
"role": {
"type": "string",
"description": "The role of the SAML administrator"
},
"orgAccess": {
"type": "string",
"enum": [
"enterprise",
"full",
"none",
"read-only"
],
"description": "The privilege of the SAML administrator on the organization. Can be one of 'none', 'read-only', 'full' or 'enterprise'"
},
"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 SAML 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 SAML administrator has privileges on"
},
"networks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The network ID"
},
"access": {
"type": "string",
"enum": [
"full",
"guest-ambassador",
"monitor-only",
"read-only",
"ssid-admin"
],
"description": "The privilege of the SAML administrator on the network. Can be one of 'full', 'read-only', 'guest-ambassador', 'monitor-only' or 'ssid-admin'"
}
},
"required": [
"id",
"access"
]
},
"description": "The list of networks that the SAML administrator has privileges on"
}
},
"example": {
"role": "myrole",
"orgAccess": "none",
"tags": [
{
"tag": "west",
"access": "read-only"
}
],
"networks": [
{
"id": "N_24329156",
"access": "full"
}
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID associated with the SAML role"
},
"role": {
"type": "string",
"description": "The role of the SAML administrator"
},
"orgAccess": {
"type": "string",
"description": "The privilege of the SAML administrator on the organization"
},
"networks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The network ID"
},
"access": {
"type": "string",
"description": "The privilege of the SAML administrator on the network"
}
}
},
"description": "The list of networks that the SAML administrator has privileges on"
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "The name of the tag"
},
"access": {
"type": "string",
"description": "The privilege of the SAML administrator on the tag"
}
}
},
"description": "The list of tags that the SAML administrator has privleges on"
},
"camera": {
"type": "array",
"items": {
"type": "object",
"properties": {
"orgWide": {
"type": "boolean",
"description": "Whether or not SAML administrator has org-wide access"
},
"access": {
"type": "string",
"description": "Camera access ability"
}
}
},
"description": "The list of camera access privileges for SAML administrator"
}
}
},
"examples": {
"application/json": {
"id": "1284392014819",
"role": "myrole",
"orgAccess": "none",
"networks": [
{
"id": "N_24329156",
"access": "full"
}
],
"tags": [
{
"tag": "west",
"access": "read-only"
}
],
"camera": [
{
"orgWide": true,
"access": "viewAndExport"
}
]
}
}
}
},
"summary": "Update a SAML role",
"tags": [
"organizations",
"configure",
"samlRoles"
]
},
"delete": {
"description": "Remove a SAML role",
"operationId": "deleteOrganizationSamlRole",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "samlRoleId",
"in": "path",
"description": "Saml role ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Remove a SAML role",
"tags": [
"organizations",
"configure",
"samlRoles"
]
}
},
"/organizations/{organizationId}/secureConnect/privateApplicationGroups": {
"get": {
"description": "Provides a list of private application groups for an Organization",
"operationId": "getOrganizationSecureConnectPrivateApplicationGroups",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 10."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "nameIncludes",
"in": "query",
"description": "Optional parameter to search the application group list by group name, case is ignored"
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "applicationGroupIds",
"in": "query",
"description": "List of application group ids attached to fetch"
},
{
"type": "string",
"enum": [
"applicationGroupId",
"modifiedAt",
"name"
],
"name": "sortBy",
"in": "query",
"description": "Optional parameter to specify the field used to sort objects."
},
{
"type": "string",
"enum": [
"asc",
"desc"
],
"name": "sortOrder",
"in": "query",
"description": "Optional parameter to specify the sort order. Default value is asc."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"applicationGroupId": {
"type": "string",
"description": "Application Group resource ID, use this ID as reference for subsequent requests"
},
"name": {
"type": "string",
"description": "Application Group Name."
},
"description": {
"type": "string",
"description": "Text description for Application"
},
"applicationIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of application ids attached to this Private Application Group"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Creation time of the private app group"
},
"modifiedAt": {
"type": "string",
"format": "date-time",
"description": "Last modified time of the private app group"
}
}
},
"description": "List of private application groups for an Organization"
},
"meta": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "Total count of private application groups"
}
},
"description": "Meta data details about result"
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": {
"data": [
{
"applicationGroupId": "1122321",
"name": "Westcoast Data Center",
"description": "Private applications in Westcoast Data Center",
"applicationIds": [
"183456",
"123568"
],
"createdAt": "2021-12-13T16:07:07.222Z",
"modifiedAt": "2021-12-13T16:07:07.222Z"
}
],
"meta": {
"total": 1
}
}
}
}
},
"summary": "Provides a list of private application groups for an Organization",
"tags": [
"secureConnect",
"configure",
"privateApplicationGroups"
],
"x-release-stage": "beta"
},
"post": {
"description": "Creates a group of private applications to apply to policy. A maximum of 300 private application groups are allowed for an organization.",
"operationId": "createOrganizationSecureConnectPrivateApplicationGroup",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationSecureConnectPrivateApplicationGroup",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Application Group Name. This is required and cannot have any special characters other than spaces and hyphens"
},
"description": {
"type": "string",
"description": "Optional short description for application group"
},
"applicationIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of application ids attached to this Private Application Group"
}
},
"example": {
"name": "Westcoast Data Center",
"description": "Private applications in Westcoast Data Center",
"applicationIds": [
"183456",
"123568"
]
},
"required": [
"name"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"applicationGroupId": {
"type": "string",
"description": "Application Group resource ID, use this ID as reference for subsequent requests"
},
"name": {
"type": "string",
"description": "Application Group Name."
},
"description": {
"type": "string",
"description": "Text description for Application"
},
"applicationIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of application ids attached to this Private Application Group"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Creation time of the private app group"
},
"modifiedAt": {
"type": "string",
"format": "date-time",
"description": "Last modified time of the private app group"
}
}
},
"examples": {
"application/json": {
"applicationGroupId": "1122321",
"name": "Westcoast Data Center",
"description": "Private applications in Westcoast Data Center",
"applicationIds": [
"183456",
"123568"
],
"createdAt": "2021-12-13T16:07:07.222Z",
"modifiedAt": "2021-12-13T16:07:07.222Z"
}
}
}
},
"summary": "Creates a group of private applications to apply to policy",
"tags": [
"secureConnect",
"configure",
"privateApplicationGroups"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/secureConnect/privateApplicationGroups/{id}": {
"put": {
"description": "Update an application group in an Organization. Updates are allowed on Group Name and Group Description. Applications can be added or removed. Group type and Policy cannot be changed.",
"operationId": "updateOrganizationSecureConnectPrivateApplicationGroup",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationSecureConnectPrivateApplicationGroup",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Application Group Name. This is required and cannot have any special characters other than spaces and hyphens"
},
"description": {
"type": "string",
"description": "Optional short description for application group"
},
"applicationIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of application ids attached to this Private Application Group"
}
},
"example": {
"name": "Westcoast Data Center",
"description": "Private applications in Westcoast Data Center",
"applicationIds": [
"183456",
"123568"
]
},
"required": [
"name"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"applicationGroupId": {
"type": "string",
"description": "Application Group resource ID, use this ID as reference for subsequent requests"
},
"name": {
"type": "string",
"description": "Application Group Name."
},
"description": {
"type": "string",
"description": "Text description for Application"
},
"applicationIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of application ids attached to this Private Application Group"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Creation time of the private app group"
},
"modifiedAt": {
"type": "string",
"format": "date-time",
"description": "Last modified time of the private app group"
}
}
},
"examples": {
"application/json": {
"applicationGroupId": "1122321",
"name": "Westcoast Data Center",
"description": "Private applications in Westcoast Data Center",
"applicationIds": [
"183456",
"123568"
],
"createdAt": "2021-12-13T16:07:07.222Z",
"modifiedAt": "2021-12-13T16:07:07.222Z"
}
}
}
},
"summary": "Update an application group in an Organization",
"tags": [
"secureConnect",
"configure",
"privateApplicationGroups"
],
"x-release-stage": "beta"
},
"delete": {
"description": "Deletes private application group from an Organization. Detaches application from groups before deleting",
"operationId": "deleteOrganizationSecureConnectPrivateApplicationGroup",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
},
{
"name": "deleteOrganizationSecureConnectPrivateApplicationGroup",
"in": "body",
"schema": {
"type": "object",
"properties": {
"force": {
"type": "boolean",
"description": "Boolean flag to force delete application group, even if application group is in use by one or more rules."
}
},
"example": {
"force": false
}
}
}
],
"responses": {
"200": {
"description": "Successful operation"
}
},
"summary": "Deletes private application group from an Organization",
"tags": [
"secureConnect",
"configure",
"privateApplicationGroups"
],
"x-release-stage": "beta"
},
"get": {
"description": "Return the details of a specific private application group",
"operationId": "getOrganizationSecureConnectPrivateApplicationGroup",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"applicationGroupId": {
"type": "string",
"description": "Application Group resource ID, use this ID as reference for subsequent requests"
},
"name": {
"type": "string",
"description": "Application Group Name."
},
"description": {
"type": "string",
"description": "Text description for Application"
},
"applicationIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of application ids attached to this Private Application Group"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Creation time of the private app group"
},
"modifiedAt": {
"type": "string",
"format": "date-time",
"description": "Last modified time of the private app group"
}
}
},
"examples": {
"application/json": {
"applicationGroupId": "1122321",
"name": "Westcoast Data Center",
"description": "Private applications in Westcoast Data Center",
"applicationIds": [
"183456",
"123568"
],
"createdAt": "2021-12-13T16:07:07.222Z",
"modifiedAt": "2021-12-13T16:07:07.222Z"
}
}
}
},
"summary": "Return the details of a specific private application group",
"tags": [
"secureConnect",
"configure",
"privateApplicationGroups"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/secureConnect/privateApplications": {
"get": {
"description": "Provides a list of private applications for an Organization.",
"operationId": "getOrganizationSecureConnectPrivateApplications",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 10."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "nameIncludes",
"in": "query",
"description": "Optional parameter to filter the private applications list by application and associated application group names, case is ignored"
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "applicationGroupIds",
"in": "query",
"description": "Optional parameter for filtering the list of private applications belonging to the application group identified by the given IDs."
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"browser",
"network"
]
},
"name": "appTypes",
"in": "query",
"description": "Optional parameter for filtering the list of private applications by applications that contain at least one destination with the specified accessType value."
},
{
"type": "string",
"enum": [
"modifiedAt",
"name"
],
"name": "sortBy",
"in": "query",
"description": "Optional parameter to specify the field used to sort objects."
},
{
"type": "string",
"enum": [
"asc",
"desc"
],
"name": "sortOrder",
"in": "query",
"description": "Optional parameter to specify the sort order. Default value is asc."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"applicationId": {
"type": "string",
"description": "Private Application resource ID, use this ID as reference for subsequent requests"
},
"name": {
"type": "string",
"description": "Name of Application. This is required and should be unique across all applications for a given organization. Name cannot have any special characters other than spaces and hyphens."
},
"description": {
"type": "string",
"description": "Optional Text description for Application"
},
"destinations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationAddr": {
"type": "array",
"items": {
"type": "string"
},
"description": "IPv4 address and CIDR are allowed for Network Access Policy (accessType = network).Only /32 addresses are allowed for Browser Access Policy (accessType = browser).CIDR ranges are unsupported. IPv6 is unsupported."
},
"protocolPorts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"description": "Protocol for connecting with Application Upstream. Only TCP protocol is allowed for Browser Based Access."
},
"ports": {
"type": "string",
"description": "Port for connecting with Application Upstream. Comma separated ports and port ranges are allowed. Port number must be in between 1-65535."
}
}
},
"description": "List of protocols and ports for IP address destinations. Protocols must be unique in this list."
},
"accessType": {
"type": "string",
"description": "Browser Based Access or Network Based Access."
}
}
},
"description": "Destination targets for Private Applications."
},
"appProtocol": {
"type": "string",
"description": "Protocol for communication between proxy to private application. Applicable for Browser Based Access only."
},
"sni": {
"type": "string",
"description": "Optional SNI. Applicable for Browser Based Access only. SNI should be a valid domain."
},
"externalFQDN": {
"type": "string",
"description": "Cisco or Customer Managed URL for Application. Applicable for Browser Based Access only. This field is system generated based on the application name and organization ID and overrides user input in payload. This value must be unique across all applications for a given organization."
},
"sslVerificationEnabled": {
"type": "boolean",
"description": "Enable Upstream SSL verification for the internally hosted URL by the customer. Applicable for Browser Based Access only. Default is true."
},
"applicationGroupIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of application group ids attached to this Private Application"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Creation time of the private app"
},
"modifiedAt": {
"type": "string",
"format": "date-time",
"description": "Last modified time of the private app"
}
}
},
"description": "List of Private Applications"
},
"meta": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "Total count of Private Applications"
}
},
"description": "Meta data details about result"
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": {
"data": [
{
"applicationId": "183456",
"name": "Jira",
"description": "Jira App For My Org",
"destinations": [
{
"destinationAddr": [
"172.6.0.0/32",
"255.100.100.0/24"
],
"protocolPorts": [
{
"protocol": "TCP",
"ports": "80-82"
}
],
"accessType": "network"
}
],
"appProtocol": "https",
"sni": "xyz123.jira.com",
"externalFQDN": "https://jira-5001.ztna.ciscoplus.com",
"sslVerificationEnabled": true,
"applicationGroupIds": [
"1122321"
],
"createdAt": "2021-12-13T16:07:07.222000Z",
"modifiedAt": "2021-12-13T16:07:07.222000Z"
}
],
"meta": {
"total": 1
}
}
}
}
},
"summary": "Provides a list of private applications for an Organization.",
"tags": [
"secureConnect",
"configure",
"privateApplications"
],
"x-release-stage": "beta"
},
"post": {
"description": "Adds a new private application to the Organization. A maximum of 300 private applications are allowed for an organization.",
"operationId": "createOrganizationSecureConnectPrivateApplication",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationSecureConnectPrivateApplication",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of Application. This is required and should be unique across all applications for a given organization. Name cannot have any special characters other than spaces and hyphens."
},
"description": {
"type": "string",
"description": "Optional Text description for Application"
},
"destinations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationAddr": {
"type": "array",
"items": {
"type": "string"
},
"description": "IPv4 address and CIDR are allowed for Network Access Policy (accessType = network).Only /32 addresses are allowed for Browser Access Policy (accessType = browser).CIDR ranges are unsupported. IPv6 is unsupported."
},
"protocolPorts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"description": "Protocol for connecting with Application Upstream. Only TCP protocol is allowed for Browser Based Access."
},
"ports": {
"type": "string",
"description": "Port for connecting with Application Upstream. Comma separated ports and port ranges are allowed. Port number must be in between 1-65535."
}
},
"required": [
"protocol",
"ports"
]
},
"description": "List of protocols and ports for IP address destinations. Protocols must be unique in this list."
},
"accessType": {
"type": "string",
"enum": [
"browser",
"network"
],
"description": "Browser Based Access or Network Based Access."
}
},
"required": [
"destinationAddr",
"protocolPorts",
"accessType"
]
},
"description": "List of IP address destinations."
},
"appProtocol": {
"type": "string",
"description": "Protocol for communication between proxy to private application. Applicable for Browser Based Access only."
},
"sni": {
"type": "string",
"description": "Optional SNI. Applicable for Browser Based Access only. SNI should be a valid domain."
},
"externalFQDN": {
"type": "string",
"description": "Cisco or Customer Managed URL for Application. Applicable for Browser Based Access only. This field is system generated based on the application name and organization ID and overrides user input in payload. This value must be unique across all applications for a given organization."
},
"sslVerificationEnabled": {
"type": "boolean",
"description": "Enable Upstream SSL verification for the internally hosted URL by the customer. Applicable for Browser Based Access only. Default is true."
},
"applicationGroupIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of application group ids attached to this Private Application"
}
},
"example": {
"name": "Jira",
"description": "Jira App For My Org",
"destinations": [
{
"destinationAddr": [
"172.6.0.0/32",
"255.100.100.0/24"
],
"protocolPorts": [
{
"protocol": "TCP",
"ports": "80-82"
}
],
"accessType": "network"
}
],
"appProtocol": "https",
"sni": "xyz123.jira.com",
"externalFQDN": "https://jira-5001.ztna.ciscoplus.com",
"sslVerificationEnabled": true,
"applicationGroupIds": [
"1122321"
]
},
"required": [
"name",
"destinations"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"applicationId": {
"type": "string",
"description": "Private Application resource ID, use this ID as reference for subsequent requests"
},
"name": {
"type": "string",
"description": "Name of Application. This is required and should be unique across all applications for a given organization. Name cannot have any special characters other than spaces and hyphens."
},
"description": {
"type": "string",
"description": "Optional Text description for Application"
},
"destinations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationAddr": {
"type": "array",
"items": {
"type": "string"
},
"description": "IPv4 address and CIDR are allowed for Network Access Policy (accessType = network).Only /32 addresses are allowed for Browser Access Policy (accessType = browser).CIDR ranges are unsupported. IPv6 is unsupported."
},
"protocolPorts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"description": "Protocol for connecting with Application Upstream. Only TCP protocol is allowed for Browser Based Access."
},
"ports": {
"type": "string",
"description": "Port for connecting with Application Upstream. Comma separated ports and port ranges are allowed. Port number must be in between 1-65535."
}
}
},
"description": "List of protocols and ports for IP address destinations. Protocols must be unique in this list."
},
"accessType": {
"type": "string",
"description": "Browser Based Access or Network Based Access."
}
}
},
"description": "Destination targets for Private Applications."
},
"appProtocol": {
"type": "string",
"description": "Protocol for communication between proxy to private application. Applicable for Browser Based Access only."
},
"sni": {
"type": "string",
"description": "Optional SNI. Applicable for Browser Based Access only. SNI should be a valid domain."
},
"externalFQDN": {
"type": "string",
"description": "Cisco or Customer Managed URL for Application. Applicable for Browser Based Access only. This field is system generated based on the application name and organization ID and overrides user input in payload. This value must be unique across all applications for a given organization."
},
"sslVerificationEnabled": {
"type": "boolean",
"description": "Enable Upstream SSL verification for the internally hosted URL by the customer. Applicable for Browser Based Access only. Default is true."
},
"applicationGroupIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of application group ids attached to this Private Application"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Creation time of the private app"
},
"modifiedAt": {
"type": "string",
"format": "date-time",
"description": "Last modified time of the private app"
}
}
},
"examples": {
"application/json": {
"applicationId": "183456",
"name": "Jira",
"description": "Jira App For My Org",
"destinations": [
{
"destinationAddr": [
"172.6.0.0/32",
"255.100.100.0/24"
],
"protocolPorts": [
{
"protocol": "TCP",
"ports": "80-82"
}
],
"accessType": "network"
}
],
"appProtocol": "https",
"sni": "xyz123.jira.com",
"externalFQDN": "https://jira-5001.ztna.ciscoplus.com",
"sslVerificationEnabled": true,
"applicationGroupIds": [
"1122321"
],
"createdAt": "2021-12-13T16:07:07.222000Z",
"modifiedAt": "2021-12-13T16:07:07.222000Z"
}
}
}
},
"summary": "Adds a new private application to the Organization",
"tags": [
"secureConnect",
"configure",
"privateApplications"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/secureConnect/privateApplications/{id}": {
"put": {
"description": "Updates a specific private application. Updates can be made to Name, Description, Destinations, App Protocol, SNI and SSL verification. Application groups can be added or removed.",
"operationId": "updateOrganizationSecureConnectPrivateApplication",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationSecureConnectPrivateApplication",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of Application. This is required and should be unique across all applications for a given organization. Name cannot have any special characters other than spaces and hyphens."
},
"description": {
"type": "string",
"description": "Optional Text description for Application"
},
"destinations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationAddr": {
"type": "array",
"items": {
"type": "string"
},
"description": "IPv4 address and CIDR are allowed for Network Access Policy (accessType = network).Only /32 addresses are allowed for Browser Access Policy (accessType = browser).CIDR ranges are unsupported. IPv6 is unsupported."
},
"protocolPorts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"description": "Protocol for connecting with Application Upstream. Only TCP protocol is allowed for Browser Based Access."
},
"ports": {
"type": "string",
"description": "Port for connecting with Application Upstream. Comma separated ports and port ranges are allowed. Port number must be in between 1-65535."
}
},
"required": [
"protocol",
"ports"
]
},
"description": "List of protocols and ports for IP address destinations. Protocols must be unique in this list."
},
"accessType": {
"type": "string",
"enum": [
"browser",
"network"
],
"description": "Browser Based Access or Network Based Access."
}
},
"required": [
"destinationAddr",
"protocolPorts",
"accessType"
]
},
"description": "List of IP address destinations."
},
"appProtocol": {
"type": "string",
"description": "Protocol for communication between proxy to private application. Applicable for Browser Based Access only."
},
"sni": {
"type": "string",
"description": "Optional SNI. Applicable for Browser Based Access only. SNI should be a valid domain."
},
"externalFQDN": {
"type": "string",
"description": "Cisco or Customer Managed URL for Application. Applicable for Browser Based Access only. This field is system generated based on the application name and organization ID and overrides user input in payload. This value must be unique across all applications for a given organization."
},
"sslVerificationEnabled": {
"type": "boolean",
"description": "Enable Upstream SSL verification for the internally hosted URL by the customer. Applicable for Browser Based Access only. Default is true."
},
"applicationGroupIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of application group ids attached to this Private Application"
}
},
"example": {
"name": "Jira",
"description": "Jira App For My Org",
"destinations": [
{
"destinationAddr": [
"172.6.0.0/32",
"255.100.100.0/24"
],
"protocolPorts": [
{
"protocol": "TCP",
"ports": "80-82"
}
],
"accessType": "network"
}
],
"appProtocol": "https",
"sni": "xyz123.jira.com",
"externalFQDN": "https://jira-5001.ztna.ciscoplus.com",
"sslVerificationEnabled": true,
"applicationGroupIds": [
"1122321"
]
},
"required": [
"name",
"destinations"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"applicationId": {
"type": "string",
"description": "Private Application resource ID, use this ID as reference for subsequent requests"
},
"name": {
"type": "string",
"description": "Name of Application. This is required and should be unique across all applications for a given organization. Name cannot have any special characters other than spaces and hyphens."
},
"description": {
"type": "string",
"description": "Optional Text description for Application"
},
"destinations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationAddr": {
"type": "array",
"items": {
"type": "string"
},
"description": "IPv4 address and CIDR are allowed for Network Access Policy (accessType = network).Only /32 addresses are allowed for Browser Access Policy (accessType = browser).CIDR ranges are unsupported. IPv6 is unsupported."
},
"protocolPorts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"description": "Protocol for connecting with Application Upstream. Only TCP protocol is allowed for Browser Based Access."
},
"ports": {
"type": "string",
"description": "Port for connecting with Application Upstream. Comma separated ports and port ranges are allowed. Port number must be in between 1-65535."
}
}
},
"description": "List of protocols and ports for IP address destinations. Protocols must be unique in this list."
},
"accessType": {
"type": "string",
"description": "Browser Based Access or Network Based Access."
}
}
},
"description": "Destination targets for Private Applications."
},
"appProtocol": {
"type": "string",
"description": "Protocol for communication between proxy to private application. Applicable for Browser Based Access only."
},
"sni": {
"type": "string",
"description": "Optional SNI. Applicable for Browser Based Access only. SNI should be a valid domain."
},
"externalFQDN": {
"type": "string",
"description": "Cisco or Customer Managed URL for Application. Applicable for Browser Based Access only. This field is system generated based on the application name and organization ID and overrides user input in payload. This value must be unique across all applications for a given organization."
},
"sslVerificationEnabled": {
"type": "boolean",
"description": "Enable Upstream SSL verification for the internally hosted URL by the customer. Applicable for Browser Based Access only. Default is true."
},
"applicationGroupIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of application group ids attached to this Private Application"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Creation time of the private app"
},
"modifiedAt": {
"type": "string",
"format": "date-time",
"description": "Last modified time of the private app"
}
}
},
"examples": {
"application/json": {
"applicationId": "183456",
"name": "Jira",
"description": "Jira App For My Org",
"destinations": [
{
"destinationAddr": [
"172.6.0.0/32",
"255.100.100.0/24"
],
"protocolPorts": [
{
"protocol": "TCP",
"ports": "80-82"
}
],
"accessType": "network"
}
],
"appProtocol": "https",
"sni": "xyz123.jira.com",
"externalFQDN": "https://jira-5001.ztna.ciscoplus.com",
"sslVerificationEnabled": true,
"applicationGroupIds": [
"1122321"
],
"createdAt": "2021-12-13T16:07:07.222000Z",
"modifiedAt": "2021-12-13T16:07:07.222000Z"
}
}
}
},
"summary": "Updates a specific private application",
"tags": [
"secureConnect",
"configure",
"privateApplications"
],
"x-release-stage": "beta"
},
"delete": {
"description": "Deletes a specific private application. Delink the application from any application groups before deleting the app. Cascade delete application group if this is the only application in the group.",
"operationId": "deleteOrganizationSecureConnectPrivateApplication",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
},
{
"name": "deleteOrganizationSecureConnectPrivateApplication",
"in": "body",
"schema": {
"type": "object",
"properties": {
"force": {
"type": "boolean",
"description": "Boolean flag to force delete application, even if application is in use by one or more rules."
}
},
"example": {
"force": false
}
}
}
],
"responses": {
"200": {
"description": "Successful operation"
}
},
"summary": "Deletes a specific private application",
"tags": [
"secureConnect",
"configure",
"privateApplications"
],
"x-release-stage": "beta"
},
"get": {
"description": "Return the details of a specific private application",
"operationId": "getOrganizationSecureConnectPrivateApplication",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"applicationId": {
"type": "string",
"description": "Private Application resource ID, use this ID as reference for subsequent requests"
},
"name": {
"type": "string",
"description": "Name of Application. This is required and should be unique across all applications for a given organization. Name cannot have any special characters other than spaces and hyphens."
},
"description": {
"type": "string",
"description": "Optional Text description for Application"
},
"destinations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"destinationAddr": {
"type": "array",
"items": {
"type": "string"
},
"description": "IPv4 address and CIDR are allowed for Network Access Policy (accessType = network).Only /32 addresses are allowed for Browser Access Policy (accessType = browser).CIDR ranges are unsupported. IPv6 is unsupported."
},
"protocolPorts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"description": "Protocol for connecting with Application Upstream. Only TCP protocol is allowed for Browser Based Access."
},
"ports": {
"type": "string",
"description": "Port for connecting with Application Upstream. Comma separated ports and port ranges are allowed. Port number must be in between 1-65535."
}
}
},
"description": "List of protocols and ports for IP address destinations. Protocols must be unique in this list."
},
"accessType": {
"type": "string",
"description": "Browser Based Access or Network Based Access."
}
}
},
"description": "Destination targets for Private Applications."
},
"appProtocol": {
"type": "string",
"description": "Protocol for communication between proxy to private application. Applicable for Browser Based Access only."
},
"sni": {
"type": "string",
"description": "Optional SNI. Applicable for Browser Based Access only. SNI should be a valid domain."
},
"externalFQDN": {
"type": "string",
"description": "Cisco or Customer Managed URL for Application. Applicable for Browser Based Access only. This field is system generated based on the application name and organization ID and overrides user input in payload. This value must be unique across all applications for a given organization."
},
"sslVerificationEnabled": {
"type": "boolean",
"description": "Enable Upstream SSL verification for the internally hosted URL by the customer. Applicable for Browser Based Access only. Default is true."
},
"applicationGroupIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of application group ids attached to this Private Application"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Creation time of the private app"
},
"modifiedAt": {
"type": "string",
"format": "date-time",
"description": "Last modified time of the private app"
}
}
},
"examples": {
"application/json": {
"applicationId": "183456",
"name": "Jira",
"description": "Jira App For My Org",
"destinations": [
{
"destinationAddr": [
"172.6.0.0/32",
"255.100.100.0/24"
],
"protocolPorts": [
{
"protocol": "TCP",
"ports": "80-82"
}
],
"accessType": "network"
}
],
"appProtocol": "https",
"sni": "xyz123.jira.com",
"externalFQDN": "https://jira-5001.ztna.ciscoplus.com",
"sslVerificationEnabled": true,
"applicationGroupIds": [
"1122321"
],
"createdAt": "2021-12-13T16:07:07.222Z",
"modifiedAt": "2021-12-13T16:07:07.222Z"
}
}
}
},
"summary": "Return the details of a specific private application",
"tags": [
"secureConnect",
"configure",
"privateApplications"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/secureConnect/publicApplications": {
"get": {
"description": "Provides a list of public applications for an Organization.",
"operationId": "getOrganizationSecureConnectPublicApplications",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 100. Default is 10."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "nameIncludes",
"in": "query",
"description": "Optional parameter to filter the public applications list by application name, case is ignored"
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"high",
"low",
"medium",
"veryHigh",
"veryLow"
]
},
"name": "risks",
"in": "query",
"description": "List of risk levels to filter by"
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "categories",
"in": "query",
"description": "List of categories to filter by"
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"iaas",
"paas",
"saas"
]
},
"name": "appTypes",
"in": "query",
"description": "List of app types to filter by"
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
},
{
"type": "string",
"enum": [
"appType",
"category",
"lastDetected",
"name",
"risk"
],
"name": "sortBy",
"in": "query",
"description": "Optional parameter to specify the field used to sort objects, by default, applications are returned by lastDetected desc"
},
{
"type": "string",
"enum": [
"asc",
"desc"
],
"name": "sortOrder",
"in": "query",
"description": "Optional parameter to specify the sort order. Default value is desc."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID for Public Applications"
},
"name": {
"type": "string",
"description": "Name of Application. This is required."
},
"lastDetected": {
"type": "string",
"format": "date-time",
"description": "Time at which we last saw activity from this Public Application"
},
"risk": {
"type": "string",
"description": "Risk score associated with Public Application"
},
"category": {
"type": "string",
"description": "Category associated with Public Application"
},
"appType": {
"type": "string",
"description": "App type associated with Public Application"
}
}
},
"description": "List of Public Applications"
},
"meta": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "Total count of Public Applications"
}
},
"description": "Meta data details about result"
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": {
"items": [
{
"id": "ABCDEFG",
"name": "Snapcraft",
"lastDetected": "2021-12-13T16:07:07.222Z",
"risk": "medium",
"category": "Application Development and Testing",
"appType": "paas"
}
],
"meta": {
"total": 1
}
}
}
}
},
"summary": "Provides a list of public applications for an Organization.",
"tags": [
"secureConnect",
"configure",
"publicApplications"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/secureConnect/regions": {
"get": {
"description": "List deployed cloud hubs and CNHE regions in this organization",
"operationId": "getOrganizationSecureConnectRegions",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"enum": [
"CNHE",
"CloudHub"
],
"name": "regionType",
"in": "query",
"description": "Filter results by region type. Acceptable values are 'CloudHub' or 'CNHE'"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Region ID, may not be unique in result set and might be null for a CNHE region that has not been deployed yet"
},
"type": {
"type": "string",
"description": "The region's type (one of: 'CNHE' or 'CloudHub')"
},
"name": {
"type": "string",
"description": "Region name"
},
"dcPair": {
"type": "array",
"items": {
"type": "string"
},
"description": "The datacenter pair for the region"
}
}
},
"description": "List of regions"
},
"meta": {
"type": "object",
"properties": {
"maxTotalCloudHubs": {
"type": "integer",
"description": "Maximum number of cloud hubs that can be deployed"
}
},
"description": "Meta information"
}
}
},
"examples": {
"application/json": {
"data": [
{
"id": "123",
"type": "CNHE",
"name": "US West Coast",
"dcPair": [
"Los Angeles",
"Palo Alto"
]
}
],
"meta": {
"maxTotalCloudHubs": 5
}
}
}
}
},
"summary": "List deployed cloud hubs and CNHE regions in this organization",
"tags": [
"secureConnect",
"configure",
"regions"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/secureConnect/remoteAccessLog": {
"get": {
"description": "List the latest 5000 events logged by remote access.",
"operationId": "getOrganizationSecureConnectRemoteAccessLog",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 5000. Default is 50."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
},
{
"type": "string",
"name": "identityids",
"in": "query",
"description": "An identity ID or comma-delimited list of identity ID."
},
{
"type": "string",
"name": "identitytypes",
"in": "query",
"description": "An identity type or comma-delimited list of identity type."
},
{
"type": "string",
"enum": [
"connected",
"disconnected",
"failed"
],
"name": "connectionevent",
"in": "query",
"description": "Specify the type of connection event."
},
{
"type": "string",
"name": "anyconnectversions",
"in": "query",
"description": "Specify a comma-separated list of AnyConnect Roaming Security module\n versions to filter the data."
},
{
"type": "string",
"name": "osversions",
"in": "query",
"description": "Specify a comma-separated list of OS versions to filter the data."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"osversion": {
"type": "string",
"description": "List of OS versions"
},
"internalip": {
"type": "string",
"description": "Ip address"
},
"connecttimestamp": {
"type": "integer",
"description": "Connected timestamp"
},
"identities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Identity ID"
},
"type": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Identity type ID"
},
"type": {
"type": "string",
"description": "Type of Identity"
},
"label": {
"type": "string",
"description": "Identity type Label"
}
},
"description": "Type of Identity"
},
"label": {
"type": "string",
"description": "Identity Label"
},
"deleted": {
"type": "boolean",
"description": "Is the Identity already deleted"
}
}
},
"description": "List of identites details"
},
"reason": {
"type": "string",
"description": "Connected reason"
},
"failedreasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Reasons for connection failure"
},
"connectionevent": {
"type": "string",
"description": "Type of connection event."
},
"anyconnectversion": {
"type": "string",
"description": "List of AnyConnect Roaming Security module versions."
},
"timestamp": {
"type": "integer",
"description": "Timestamp"
}
}
},
"description": "List the events logged by remote access."
},
"meta": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "Total count of remote access logs"
}
},
"description": "Meta data details about result"
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": {
"data": [
{
"osversion": "win-10.0.19044",
"internalip": "10.0.1.5",
"connecttimestamp": 1667252442,
"identities": [
{
"id": "1173502975",
"type": {
"id": "7",
"type": "directory_user",
"label": "AD Users"
},
"label": "sample-remote-access@cisco.com",
"deleted": false
}
],
"reason": "ACCT_DISC_USER_REQ",
"failedreasons": [
],
"connectionevent": "disconnected",
"anyconnectversion": "4.10.05095",
"timestamp": 1667252458
}
],
"meta": {
"total": 1
}
}
}
}
},
"summary": "List the latest 5000 events logged by remote access.",
"tags": [
"secureConnect",
"monitor",
"remoteAccessLog"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/secureConnect/remoteAccessLogsExports": {
"get": {
"description": "Provides a list of remote access logs exports for an Organization",
"operationId": "getOrganizationSecureConnectRemoteAccessLogsExports",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 10."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"enum": [
"complete",
"continue",
"error",
"in_progress",
"new",
"zip"
],
"name": "status",
"in": "query",
"description": "Filter exports by status."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Export ID"
},
"from": {
"type": "string",
"description": "Export logs from timestamp"
},
"to": {
"type": "string",
"description": "Export logs to timestamp"
},
"userEmail": {
"type": "string",
"description": "Export user email"
},
"status": {
"type": "string",
"description": "Export status"
},
"metadata": {
"type": "object",
"properties": {
"fileCount": {
"type": "integer",
"description": "File count"
},
"logCount": {
"type": "integer",
"description": "Log count"
},
"currentFileLogCount": {
"type": "integer",
"description": "Current file count"
},
"generatorCount": {
"type": "integer",
"description": "Generator count"
},
"limitReached": {
"type": "boolean",
"description": "Limit reached"
},
"startedAt": {
"type": "string",
"description": "Started at"
},
"endedAt": {
"type": "string",
"description": "Ended at"
},
"duration": {
"type": "integer",
"description": "Duration"
}
},
"description": "Export metadata"
}
}
},
"description": "List of remote access log exports"
},
"meta": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "Total count of exports"
}
},
"description": "Meta data details about result"
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": {
"data": [
{
"id": "123",
"from": "2023-05-16 04:23:43 UTC",
"to": "2023-06-14 04:23:52 UTC",
"userEmail": "joe@meraki.net",
"status": "new",
"metadata": {
"fileCount": 0,
"logCount": 0,
"currentFileLogCount": 0,
"generatorCount": 0,
"limitReached": false,
"startedAt": "2023-05-15 21:23:43.388597",
"endedAt": "2023-05-15 21:23:43.388597",
"duration": 60
}
}
],
"meta": {
"total": 1
}
}
}
}
},
"summary": "Provides a list of remote access logs exports for an Organization",
"tags": [
"secureConnect",
"configure",
"remoteAccessLogsExports"
],
"x-release-stage": "beta"
},
"post": {
"description": "Creates a export for a provided timestamp interval.",
"operationId": "createOrganizationSecureConnectRemoteAccessLogsExport",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationSecureConnectRemoteAccessLogsExport",
"in": "body",
"schema": {
"type": "object",
"properties": {
"from": {
"type": "integer",
"description": "The start of the interval, must be within the past 30 days."
},
"to": {
"type": "integer",
"description": "The end of the interval, must not exceed the current date."
}
},
"example": {
"from": 1684211023,
"to": 1686716632
},
"required": [
"from",
"to"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Export ID"
},
"from": {
"type": "string",
"description": "Export logs from timestamp"
},
"to": {
"type": "string",
"description": "Export logs to timestamp"
},
"userEmail": {
"type": "string",
"description": "Export user email"
},
"status": {
"type": "string",
"description": "Export status"
},
"metadata": {
"type": "object",
"properties": {
"fileCount": {
"type": "integer",
"description": "File count"
},
"logCount": {
"type": "integer",
"description": "Log count"
},
"currentFileLogCount": {
"type": "integer",
"description": "Current file count"
},
"generatorCount": {
"type": "integer",
"description": "Generator count"
},
"limitReached": {
"type": "boolean",
"description": "Limit reached"
},
"startedAt": {
"type": "string",
"description": "Started at"
},
"endedAt": {
"type": "string",
"description": "Ended at"
},
"duration": {
"type": "integer",
"description": "Duration"
}
},
"description": "Export metadata"
}
}
},
"examples": {
"application/json": {
"id": "123",
"from": "2023-05-16 04:23:43 UTC",
"to": "2023-06-14 04:23:52 UTC",
"userEmail": "joe@meraki.net",
"status": "new",
"metadata": {
"fileCount": 0,
"logCount": 0,
"currentFileLogCount": 0,
"generatorCount": 0,
"limitReached": false,
"startedAt": "2023-05-15 21:23:43.388597",
"endedAt": "2023-05-15 21:23:43.388597",
"duration": 60
}
}
}
}
},
"summary": "Creates a export for a provided timestamp interval.",
"tags": [
"secureConnect",
"configure",
"remoteAccessLogsExports"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/secureConnect/remoteAccessLogsExports/download": {
"get": {
"description": "Redirects to the download link of the completed export.",
"operationId": "getOrganizationSecureConnectRemoteAccessLogsExportsDownload",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "id",
"in": "query",
"required": true,
"description": "Export ID."
},
{
"type": "string",
"name": "fileType",
"in": "query",
"required": true,
"description": "Export download file type."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"link": {
"type": "string",
"description": "Export download link"
}
}
},
"examples": {
"application/json": {
"link": "download"
}
}
}
},
"summary": "Redirects to the download link of the completed export.",
"tags": [
"secureConnect",
"configure",
"remoteAccessLogsExports",
"download"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/secureConnect/remoteAccessLogsExports/{id}": {
"get": {
"description": "Return the details of a specific remote access logs export",
"operationId": "getOrganizationSecureConnectRemoteAccessLogsExport",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Export ID"
},
"from": {
"type": "string",
"description": "Export logs from timestamp"
},
"to": {
"type": "string",
"description": "Export logs to timestamp"
},
"userEmail": {
"type": "string",
"description": "Export user email"
},
"status": {
"type": "string",
"description": "Export status"
},
"metadata": {
"type": "object",
"properties": {
"fileCount": {
"type": "integer",
"description": "File count"
},
"logCount": {
"type": "integer",
"description": "Log count"
},
"currentFileLogCount": {
"type": "integer",
"description": "Current file count"
},
"generatorCount": {
"type": "integer",
"description": "Generator count"
},
"limitReached": {
"type": "boolean",
"description": "Limit reached"
},
"startedAt": {
"type": "string",
"description": "Started at"
},
"endedAt": {
"type": "string",
"description": "Ended at"
},
"duration": {
"type": "integer",
"description": "Duration"
}
},
"description": "Export metadata"
}
}
},
"examples": {
"application/json": {
"id": "123",
"from": "2023-05-16 04:23:43 UTC",
"to": "2023-06-14 04:23:52 UTC",
"userEmail": "joe@meraki.net",
"status": "new",
"metadata": {
"fileCount": 0,
"logCount": 0,
"currentFileLogCount": 0,
"generatorCount": 0,
"limitReached": false,
"startedAt": "2023-05-15 21:23:43.388597",
"endedAt": "2023-05-15 21:23:43.388597",
"duration": 60
}
}
}
}
},
"summary": "Return the details of a specific remote access logs export",
"tags": [
"secureConnect",
"configure",
"remoteAccessLogsExports"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/secureConnect/sites": {
"get": {
"description": "List sites in this organization",
"operationId": "getOrganizationSecureConnectSites",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 10."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "search",
"in": "query",
"description": "If provided, filters results by search string"
},
{
"type": "string",
"enum": [
"enrollable",
"enrolled"
],
"name": "enrolledState",
"in": "query",
"description": "Filter results by sites that have already been enrolled or can be enrolled. Acceptable values are 'enrolled' or 'enrollable"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Site ID, may not be unique in result set"
},
"type": {
"type": "string",
"description": "The site's type (one of: 'Sigraki', 'MerakiSpoke', 'MerakiHub', 'MerakiTemplate', 'ViptelaSigSite', or 'ViptelaPrivateAccessSite')"
},
"name": {
"type": "string",
"description": "Site name"
},
"region": {
"type": "string",
"description": "The region to which the site is connected"
},
"deviceType": {
"type": "string",
"description": "The device type of the site"
},
"address": {
"type": "string",
"description": "The address of the site"
},
"enrolled": {
"type": "boolean",
"description": "Whether the site is already enrolled in Secure Connect"
},
"vpnType": {
"type": "string",
"description": "The VPN type of the site"
}
}
},
"description": "List of sites"
},
"meta": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "Total count of enrolled sites"
}
},
"description": "Meta information"
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": {
"data": [
{
"id": "123",
"type": "MerakiSpoke",
"name": "London Office",
"region": "US East",
"deviceType": "MX95-HW",
"address": "123 Main St",
"enrolled": true,
"vpnType": "Hub"
}
],
"meta": {
"total": 1
}
}
}
}
},
"summary": "List sites in this organization",
"tags": [
"secureConnect",
"configure",
"sites"
],
"x-release-stage": "beta"
},
"post": {
"description": "Enroll sites in this organization to Secure Connect. For an organization, a maximum of 4000 sites can be enrolled if they are in spoke mode or a maximum of 10 sites can be enrolled in hub mode.",
"operationId": "createOrganizationSecureConnectSite",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationSecureConnectSite",
"in": "body",
"schema": {
"type": "object",
"properties": {
"enrollments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"regionType": {
"type": "string",
"enum": [
"CNHE",
"CloudHub"
],
"description": "Type of region to enroll the site in (one of: 'CNHE' or 'CloudHub')"
},
"regionId": {
"type": "string",
"description": "ID of the region to enroll the site in"
},
"regionName": {
"type": "string",
"description": "Name of the region to enroll the site in. This is an optional param for the case where the site is being enrolled in a new CNHE region that hasn't been deployed yet."
},
"siteId": {
"type": "string",
"description": "ID of the site to enroll"
}
},
"required": [
"regionType",
"siteId"
]
},
"description": "List of sites with the associated regions to be enrolled."
},
"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": {
"enrollments": [
{
"regionType": "CNHE",
"regionId": "1234567890",
"regionName": "US West Coast",
"siteId": "1234567890"
}
],
"callback": {
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"sharedSecret": "secret",
"httpServer": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
},
"payloadTemplate": {
"id": "wpt_2100"
}
}
}
}
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"action": {
"type": "string",
"description": "Action performed by the job"
},
"status": {
"type": "string",
"description": "Status of the job"
},
"message": {
"type": "string",
"description": "Message from the job. Can either be a success message or an error if there is a failure."
},
"request": {
"type": "object",
"properties": {
"siteId": {
"type": "string",
"description": "ID of the site to enroll"
},
"regionId": {
"type": "string",
"description": "ID of the region to enroll the site in"
}
},
"description": "Request that was sent to the job"
},
"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"
}
}
},
"examples": {
"application/json": {
"action": "enroll",
"status": "success",
"message": "Site enrolled successfully",
"request": {
"siteId": "1520758",
"regionId": "42"
},
"callback": {
"id": "1284392014819",
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"status": "new"
}
}
}
}
},
"summary": "Enroll sites in this organization to Secure Connect",
"tags": [
"secureConnect",
"configure",
"sites"
],
"x-release-stage": "beta"
},
"delete": {
"description": "Detach given sites from Secure Connect",
"operationId": "deleteOrganizationSecureConnectSites",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "deleteOrganizationSecureConnectSites",
"in": "body",
"schema": {
"type": "object",
"properties": {
"sites": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of site IDs to detach"
},
"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": {
"sites": [
"1234567890"
],
"callback": {
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"sharedSecret": "secret",
"httpServer": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
},
"payloadTemplate": {
"id": "wpt_2100"
}
}
},
"required": [
"sites"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"action": {
"type": "string",
"description": "Action performed by the job"
},
"status": {
"type": "string",
"description": "Status of the job"
},
"message": {
"type": "string",
"description": "Message from the job. Can either be a success message or an error if there is a failure."
},
"request": {
"type": "object",
"properties": {
"siteId": {
"type": "string",
"description": "ID of the site to enroll"
}
},
"description": "Request that was sent to the job"
},
"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"
}
}
},
"examples": {
"application/json": {
"action": "detach",
"status": "success",
"message": "Site enrolled successfully",
"request": {
"siteId": "1520758"
},
"callback": {
"id": "1284392014819",
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"status": "new"
}
}
}
}
},
"summary": "Detach given sites from Secure Connect",
"tags": [
"secureConnect",
"configure",
"sites"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/sensor/alerts": {
"get": {
"description": "Return a list of sensor alert events",
"operationId": "getOrganizationSensorAlerts",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 100. Default is 10."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 365 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 365 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 31536000,
"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 365 days. The default is 365 days."
},
{
"type": "string",
"name": "sensorSerial",
"in": "query",
"description": "Filters alerts to those triggered by this sensor."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"required": true,
"description": "Filters alerts by network. For now, this must be a single network ID."
},
{
"type": "string",
"enum": [
"apparentPower",
"co2",
"current",
"door",
"frequency",
"humidity",
"indoorAirQuality",
"noise",
"pm25",
"powerFactor",
"realPower",
"temperature",
"tvoc",
"upstreamPower",
"voltage",
"water"
],
"name": "triggerMetric",
"in": "query",
"description": "Filters alerts to those triggered by this metric."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startTs": {
"type": "string",
"format": "date-time",
"description": "The start time of the alert"
},
"sensor": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the sensor."
},
"serial": {
"type": "string",
"description": "Serial number of the sensor."
},
"model": {
"type": "string",
"description": "Model of the sensor."
},
"url": {
"type": "string",
"description": "URL to the sensor."
}
},
"required": [
"name",
"serial",
"model",
"url"
],
"description": "The sensor that triggered the alert"
},
"trigger": {
"type": "object",
"properties": {
"ts": {
"type": "string",
"description": "Time at which the reading occurred, in ISO8601 format."
},
"metric": {
"type": "string",
"enum": [
"apparentPower",
"co2",
"current",
"door",
"frequency",
"humidity",
"indoorAirQuality",
"noise",
"pm25",
"powerFactor",
"realPower",
"temperature",
"tvoc",
"upstreamPower",
"voltage",
"water"
],
"description": "Type of sensor reading."
},
"apparentPower": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Apparent power reading in volt-amperes."
}
},
"description": "Reading for the 'apparentPower' metric. This will only be present if the 'metric' property equals 'apparentPower'."
},
"co2": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "CO2 reading in parts per million."
}
},
"description": "Reading for the 'co2' metric. This will only be present if the 'metric' property equals 'co2'."
},
"current": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Electrical current reading in amperes."
}
},
"description": "Reading for the 'current' metric. This will only be present if the 'metric' property equals 'current'."
},
"door": {
"type": "object",
"properties": {
"open": {
"type": "boolean",
"description": "True if the door is open."
}
},
"description": "Reading for the 'door' metric. This will only be present if the 'metric' property equals 'door'."
},
"frequency": {
"type": "object",
"properties": {
"level": {
"type": "number",
"format": "float",
"description": "Electrical current frequency reading in hertz."
}
},
"description": "Reading for the 'frequency' metric. This will only be present if the 'metric' property equals 'frequency'."
},
"humidity": {
"type": "object",
"properties": {
"relativePercentage": {
"type": "integer",
"description": "Humidity reading in %RH."
}
},
"description": "Reading for the 'humidity' metric. This will only be present if the 'metric' property equals 'humidity'."
},
"indoorAirQuality": {
"type": "object",
"properties": {
"score": {
"type": "integer",
"description": "Indoor air quality score between 0 and 100."
}
},
"description": "Reading for the 'indoorAirQuality' metric. This will only be present if the 'metric' property equals 'indoorAirQuality'."
},
"noise": {
"type": "object",
"properties": {
"ambient": {
"type": "object",
"properties": {
"level": {
"type": "integer",
"description": "Ambient noise reading in adjusted decibels."
}
},
"description": "Ambient noise reading."
}
},
"description": "Reading for the 'noise' metric. This will only be present if the 'metric' property equals 'noise'."
},
"pm25": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "PM2.5 reading in micrograms per cubic meter."
}
},
"description": "Reading for the 'pm25' metric. This will only be present if the 'metric' property equals 'pm25'."
},
"powerFactor": {
"type": "object",
"properties": {
"percentage": {
"type": "integer",
"description": "Power factor reading as a percentage."
}
},
"description": "Reading for the 'powerFactor' metric. This will only be present if the 'metric' property equals 'powerFactor'."
},
"realPower": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Real power reading in watts."
}
},
"description": "Reading for the 'realPower' metric. This will only be present if the 'metric' property equals 'realPower'."
},
"temperature": {
"type": "object",
"properties": {
"fahrenheit": {
"type": "number",
"format": "float",
"description": "Temperature reading in degrees Fahrenheit."
},
"celsius": {
"type": "number",
"format": "float",
"description": "Temperature reading in degrees Celsius."
}
},
"description": "Reading for the 'temperature' metric. This will only be present if the 'metric' property equals 'temperature'."
},
"tvoc": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "TVOC reading in micrograms per cubic meter."
}
},
"description": "Reading for the 'tvoc' metric. This will only be present if the 'metric' property equals 'tvoc'."
},
"upstreamPower": {
"type": "object",
"properties": {
"outageDetected": {
"type": "boolean",
"description": "True if an upstream power outage was detected."
}
},
"description": "Reading for the 'upstreamPower' metric. This will only be present if the 'metric' property equals 'upstreamPower'."
},
"voltage": {
"type": "object",
"properties": {
"level": {
"type": "number",
"format": "float",
"description": "Voltage reading in volts."
}
},
"description": "Reading for the 'voltage' metric. This will only be present if the 'metric' property equals 'voltage'."
},
"water": {
"type": "object",
"properties": {
"present": {
"type": "boolean",
"description": "True if water is detected."
}
},
"description": "Reading for the 'water' metric. This will only be present if the 'metric' property equals 'water'."
}
},
"description": "The sensor reading that triggered the alert."
},
"profile": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the sensor alert profile."
},
"name": {
"type": "string",
"description": "Name of the sensor alert profile."
},
"condition": {
"type": "object",
"properties": {
"metric": {
"type": "string",
"enum": [
"apparentPower",
"co2",
"current",
"door",
"frequency",
"humidity",
"indoorAirQuality",
"noise",
"pm25",
"powerFactor",
"realPower",
"temperature",
"tvoc",
"upstreamPower",
"voltage",
"water"
],
"description": "The type of sensor metric that will be monitored for changes."
},
"threshold": {
"type": "object",
"properties": {
"temperature": {
"type": "object",
"properties": {
"celsius": {
"type": "number",
"format": "float",
"description": "Alerting threshold in degrees Celsius."
},
"fahrenheit": {
"type": "number",
"format": "float",
"description": "Alerting threshold in degrees Fahrenheit."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative temperature level."
}
},
"description": "Temperature threshold. One of 'celsius', 'fahrenheit', or 'quality' must be provided."
},
"humidity": {
"type": "object",
"properties": {
"relativePercentage": {
"type": "integer",
"description": "Alerting threshold in %RH."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative humidity level."
}
},
"description": "Humidity threshold. One of 'relativePercentage' or 'quality' must be provided."
},
"water": {
"type": "object",
"properties": {
"present": {
"type": "boolean",
"description": "Alerting threshold for a water detection event. Must be set to true."
}
},
"required": [
"present"
],
"description": "Water detection threshold. 'present' must be provided and set to true."
},
"door": {
"type": "object",
"properties": {
"open": {
"type": "boolean",
"description": "Alerting threshold for a door open event. Must be set to true."
}
},
"required": [
"open"
],
"description": "Door open threshold. 'open' must be provided and set to true."
},
"tvoc": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "Alerting threshold as TVOC micrograms per cubic meter."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative TVOC level."
}
},
"description": "TVOC concentration threshold. One of 'concentration' or 'quality' must be provided."
},
"pm25": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "Alerting threshold as PM2.5 parts per million."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative PM2.5 level."
}
},
"description": "PM2.5 concentration threshold. One of 'concentration' or 'quality' must be provided."
},
"noise": {
"type": "object",
"properties": {
"ambient": {
"type": "object",
"properties": {
"level": {
"type": "integer",
"description": "Alerting threshold as adjusted decibels."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative ambient noise level."
}
},
"description": "Ambient noise threshold. One of 'level' or 'quality' must be provided."
}
},
"required": [
"ambient"
],
"description": "Noise threshold. 'ambient' must be provided."
},
"indoorAirQuality": {
"type": "object",
"properties": {
"score": {
"type": "integer",
"description": "Alerting threshold as indoor air quality score."
},
"quality": {
"type": "string",
"enum": [
"fair",
"good",
"inadequate",
"poor"
],
"description": "Alerting threshold as a qualitative indoor air quality level."
}
},
"description": "Indoor air quality score threshold. One of 'score' or 'quality' must be provided."
},
"realPower": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Alerting threshold in watts. Must be between 0 and 3750."
}
},
"required": [
"draw"
],
"description": "Real power threshold. 'draw' must be provided."
},
"apparentPower": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Alerting threshold in volt-amps. Must be between 0 and 3750."
}
},
"required": [
"draw"
],
"description": "Apparent power threshold. 'draw' must be provided."
},
"powerFactor": {
"type": "object",
"properties": {
"percentage": {
"type": "integer",
"description": "Alerting threshold as the ratio of active power to apparent power. Must be between 0 and 100."
}
},
"required": [
"percentage"
],
"description": "Power factor threshold. 'percentage' must be provided."
},
"current": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Alerting threshold in amps. Must be between 0 and 15."
}
},
"required": [
"draw"
],
"description": "Electrical current threshold. 'level' must be provided."
},
"voltage": {
"type": "object",
"properties": {
"level": {
"type": "number",
"format": "float",
"description": "Alerting threshold in volts. Must be between 0 and 250."
}
},
"required": [
"level"
],
"description": "Voltage threshold. 'level' must be provided."
},
"frequency": {
"type": "object",
"properties": {
"level": {
"type": "number",
"format": "float",
"description": "Alerting threshold in hertz. Must be between 0 and 60."
}
},
"required": [
"level"
],
"description": "Electrical frequency threshold. 'level' must be provided."
},
"upstreamPower": {
"type": "object",
"properties": {
"outageDetected": {
"type": "boolean",
"description": "Alerting threshold for an upstream power event. Must be set to true."
}
},
"required": [
"outageDetected"
],
"description": "Upstream power threshold. 'outageDetected' must be provided and set to true."
}
},
"description": "Threshold for sensor readings that will cause an alert to be sent. This object should contain a single property key matching the condition's 'metric' value."
},
"direction": {
"type": "string",
"enum": [
"above",
"below"
],
"description": "If 'above', an alert will be sent when a sensor reads above the threshold. If 'below', an alert will be sent when a sensor reads below the threshold. Only applicable for temperature, humidity, realPower, apparentPower, powerFactor, voltage, current, and frequency thresholds."
},
"duration": {
"type": "integer",
"enum": [
0,
60,
120,
180,
240,
300,
600,
900,
1800,
3600,
7200,
14400,
28800
],
"description": "Length of time in seconds that the triggering state must persist before an alert is sent. Available options are 0 seconds, 1 minute, 2 minutes, 3 minutes, 4 minutes, 5 minutes, 10 minutes, 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours, and 8 hours. Default is 0.",
"default": 0
}
},
"required": [
"metric",
"threshold"
],
"description": "Triggered alert condition for the sensor alert."
}
},
"required": [
"id",
"name",
"condition"
],
"description": "The triggered sensor alert profile"
},
"snapshotCamera": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Serial number of the camera"
},
"name": {
"type": "string",
"description": "Name of the camera"
},
"url": {
"type": "string",
"description": "URL to the camera"
}
},
"required": [
"serial",
"name",
"url"
],
"description": "Camera snapshot information for the alert. If the sensor did not have a camera assigned at the time of the alert, this will be null."
}
},
"required": [
"startTs",
"sensor",
"trigger",
"profile"
]
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"startTs": "2018-02-11T00:00:00.090210Z",
"sensor": {
"name": "My sensor",
"serial": "Q234-ABCD-5678",
"model": "MT10",
"url": "http://example.com"
},
"trigger": {
"ts": "2021-10-18T23:54:48.000000Z",
"metric": "temperature",
"apparentPower": {
"draw": 15.9
},
"co2": {
"concentration": 100
},
"current": {
"draw": 0.13
},
"door": {
"open": true
},
"frequency": {
"level": 60.1
},
"humidity": {
"relativePercentage": 34
},
"indoorAirQuality": {
"score": 89
},
"noise": {
"ambient": {
"level": 45
}
},
"pm25": {
"concentration": 100
},
"powerFactor": {
"percentage": 86
},
"realPower": {
"draw": 13.7
},
"temperature": {
"fahrenheit": 77.81,
"celsius": 25.45
},
"tvoc": {
"concentration": 100
},
"upstreamPower": {
"outageDetected": true
},
"voltage": {
"level": 122.4
},
"water": {
"present": true
}
},
"profile": {
"id": "1",
"name": "Too hot",
"condition": {
"metric": "temperature",
"threshold": {
"temperature": {
"celsius": 20.5,
"fahrenheit": 70.0,
"quality": "good"
},
"humidity": {
"relativePercentage": 65,
"quality": "inadequate"
},
"water": {
"present": true
},
"door": {
"open": true
},
"tvoc": {
"concentration": 400,
"quality": "poor"
},
"pm25": {
"concentration": 90,
"quality": "fair"
},
"noise": {
"ambient": {
"level": 120,
"quality": "poor"
}
},
"indoorAirQuality": {
"score": 80,
"quality": "fair"
},
"realPower": {
"draw": 14.1
},
"apparentPower": {
"draw": 17.2
},
"powerFactor": {
"percentage": 81
},
"current": {
"draw": 0.14
},
"voltage": {
"level": 119.5
},
"frequency": {
"level": 58.8
},
"upstreamPower": {
"outageDetected": true
}
},
"direction": "above",
"duration": 60
}
},
"snapshotCamera": {
"serial": "QAAA-AAAA-AAAA",
"name": "Camera",
"url": "http://example.com"
}
}
]
}
}
},
"summary": "Return a list of sensor alert events",
"tags": [
"sensor",
"monitor",
"alerts"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/sensor/readings/history": {
"get": {
"description": "Return all reported readings from sensors in a given timespan, sorted by timestamp",
"operationId": "getOrganizationSensorReadingsHistory",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 365 days and 6 hours from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 7 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 604800,
"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 7 days. The default is 2 hours."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Optional parameter to filter readings by network."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Optional parameter to filter readings by sensor."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "metrics",
"in": "query",
"description": "Types of sensor readings to retrieve. If no metrics are supplied, all available types of readings will be retrieved. Allowed values are apparentPower, battery, button, co2, current, door, downstreamPower, frequency, humidity, indoorAirQuality, noise, pm25, powerFactor, realPower, remoteLockoutSwitch, temperature, tvoc, voltage, and water."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Serial number of the sensor that took the reading."
},
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the network."
},
"name": {
"type": "string",
"description": "Name of the network."
}
},
"description": "Network to which the sensor belongs."
},
"ts": {
"type": "string",
"description": "Time at which the reading occurred, in ISO8601 format."
},
"metric": {
"type": "string",
"enum": [
"apparentPower",
"battery",
"button",
"co2",
"current",
"door",
"downstreamPower",
"frequency",
"humidity",
"indoorAirQuality",
"noise",
"pm25",
"powerFactor",
"realPower",
"remoteLockoutSwitch",
"temperature",
"tvoc",
"voltage",
"water"
],
"description": "Type of sensor reading."
},
"apparentPower": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Apparent power reading in volt-amperes."
}
},
"description": "Reading for the 'apparentPower' metric. This will only be present if the 'metric' property equals 'apparentPower'."
},
"battery": {
"type": "object",
"properties": {
"percentage": {
"type": "integer",
"description": "Remaining battery life."
}
},
"description": "Reading for the 'battery' metric. This will only be present if the 'metric' property equals 'battery'."
},
"button": {
"type": "object",
"properties": {
"pressType": {
"type": "string",
"enum": [
"long",
"short"
],
"description": "Type of button press that occurred."
}
},
"description": "Reading for the 'button' metric. This will only be present if the 'metric' property equals 'button'."
},
"co2": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "CO2 reading in parts per million."
}
},
"description": "Reading for the 'co2' metric. This will only be present if the 'metric' property equals 'co2'."
},
"current": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Electrical current reading in amperes."
}
},
"description": "Reading for the 'current' metric. This will only be present if the 'metric' property equals 'current'."
},
"door": {
"type": "object",
"properties": {
"open": {
"type": "boolean",
"description": "True if the door is open."
}
},
"description": "Reading for the 'door' metric. This will only be present if the 'metric' property equals 'door'."
},
"downstreamPower": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "True if power is turned on to the device that is connected downstream of the MT40 power monitor."
}
},
"description": "Reading for the 'downstreamPower' metric. This will only be present if the 'metric' property equals 'downstreamPower'."
},
"frequency": {
"type": "object",
"properties": {
"level": {
"type": "number",
"format": "float",
"description": "Electrical current frequency reading in hertz."
}
},
"description": "Reading for the 'frequency' metric. This will only be present if the 'metric' property equals 'frequency'."
},
"humidity": {
"type": "object",
"properties": {
"relativePercentage": {
"type": "integer",
"description": "Humidity reading in %RH."
}
},
"description": "Reading for the 'humidity' metric. This will only be present if the 'metric' property equals 'humidity'."
},
"indoorAirQuality": {
"type": "object",
"properties": {
"score": {
"type": "integer",
"description": "Indoor air quality score between 0 and 100."
}
},
"description": "Reading for the 'indoorAirQuality' metric. This will only be present if the 'metric' property equals 'indoorAirQuality'."
},
"noise": {
"type": "object",
"properties": {
"ambient": {
"type": "object",
"properties": {
"level": {
"type": "integer",
"description": "Ambient noise reading in adjusted decibels."
}
},
"description": "Ambient noise reading."
}
},
"description": "Reading for the 'noise' metric. This will only be present if the 'metric' property equals 'noise'."
},
"pm25": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "PM2.5 reading in micrograms per cubic meter."
}
},
"description": "Reading for the 'pm25' metric. This will only be present if the 'metric' property equals 'pm25'."
},
"powerFactor": {
"type": "object",
"properties": {
"percentage": {
"type": "integer",
"description": "Power factor reading as a percentage."
}
},
"description": "Reading for the 'powerFactor' metric. This will only be present if the 'metric' property equals 'powerFactor'."
},
"realPower": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Real power reading in watts."
}
},
"description": "Reading for the 'realPower' metric. This will only be present if the 'metric' property equals 'realPower'."
},
"remoteLockoutSwitch": {
"type": "object",
"properties": {
"locked": {
"type": "boolean",
"description": "True if power controls are disabled via the MT40's physical remote lockout switch."
}
},
"description": "Reading for the 'remoteLockoutSwitch' metric. This will only be present if the 'metric' property equals 'remoteLockoutSwitch'."
},
"temperature": {
"type": "object",
"properties": {
"fahrenheit": {
"type": "number",
"format": "float",
"description": "Temperature reading in degrees Fahrenheit."
},
"celsius": {
"type": "number",
"format": "float",
"description": "Temperature reading in degrees Celsius."
}
},
"description": "Reading for the 'temperature' metric. This will only be present if the 'metric' property equals 'temperature'."
},
"tvoc": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "TVOC reading in micrograms per cubic meter."
}
},
"description": "Reading for the 'tvoc' metric. This will only be present if the 'metric' property equals 'tvoc'."
},
"voltage": {
"type": "object",
"properties": {
"level": {
"type": "number",
"format": "float",
"description": "Voltage reading in volts."
}
},
"description": "Reading for the 'voltage' metric. This will only be present if the 'metric' property equals 'voltage'."
},
"water": {
"type": "object",
"properties": {
"present": {
"type": "boolean",
"description": "True if water is detected."
}
},
"description": "Reading for the 'water' metric. This will only be present if the 'metric' property equals 'water'."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"serial": "Q234-ABCD-5678",
"network": {
"id": "N_24329156",
"name": "Main Office"
},
"ts": "2021-10-18T23:54:48.000000Z",
"metric": "temperature",
"apparentPower": {
"draw": 15.9
},
"battery": {
"percentage": 91
},
"button": {
"pressType": "short"
},
"co2": {
"concentration": 100
},
"current": {
"draw": 0.13
},
"door": {
"open": true
},
"downstreamPower": {
"enabled": true
},
"frequency": {
"level": 60.1
},
"humidity": {
"relativePercentage": 34
},
"indoorAirQuality": {
"score": 89
},
"noise": {
"ambient": {
"level": 45
}
},
"pm25": {
"concentration": 100
},
"powerFactor": {
"percentage": 86
},
"realPower": {
"draw": 13.7
},
"remoteLockoutSwitch": {
"locked": false
},
"temperature": {
"fahrenheit": 77.81,
"celsius": 25.45
},
"tvoc": {
"concentration": 100
},
"voltage": {
"level": 122.4
},
"water": {
"present": true
}
}
]
}
}
},
"summary": "Return all reported readings from sensors in a given timespan, sorted by timestamp",
"tags": [
"sensor",
"monitor",
"readings",
"history"
]
}
},
"/organizations/{organizationId}/sensor/readings/history/byInterval": {
"get": {
"description": "Return all reported readings from sensors in a given timespan, summarized as a series of intervals, sorted by interval start time in descending order",
"operationId": "getOrganizationSensorReadingsHistoryByInterval",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 730 days and 12 hours from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 730 days and 12 hours after t0."
},
{
"type": "number",
"format": "float",
"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 730 days and 12 hours. The default is 7 days. If interval is provided, the timespan will be autocalculated."
},
{
"type": "integer",
"name": "interval",
"in": "query",
"description": "The time interval in seconds for returned data. The valid intervals are: 15, 120, 300, 900, 3600, 14400, 86400, 604800. The default is 86400. Interval is calculated if time params are provided."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Optional parameter to filter readings by network."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Optional parameter to filter readings by sensor."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "metrics",
"in": "query",
"description": "Types of sensor readings to retrieve. If no metrics are supplied, all available types of readings will be retrieved. Allowed values are apparentPower, battery, button, co2, current, door, energy, frequency, humidity, indoorAirQuality, noise, pm25, powerFactor, realPower, temperature, tvoc, voltage, and water."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "models",
"in": "query",
"description": "Optional parameter to filter readings by one or more models. Allowed values are MT10, MT11, MT12, MT14, MT20, and MT30."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startTs": {
"type": "string",
"description": "Starting time of the interval, in ISO8601 format."
},
"endTs": {
"type": "string",
"description": "Ending time of the interval, in ISO8601 format."
},
"serial": {
"type": "string",
"description": "Serial number of the sensor that took the reading."
},
"model": {
"type": "string",
"description": "Model of the sensor that took the reading."
},
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the network."
},
"name": {
"type": "string",
"description": "Name of the network."
}
},
"description": "Network to which the sensor belongs."
},
"metric": {
"type": "string",
"enum": [
"apparentPower",
"battery",
"button",
"co2",
"current",
"door",
"energy",
"frequency",
"humidity",
"indoorAirQuality",
"noise",
"pm25",
"powerFactor",
"realPower",
"temperature",
"tvoc",
"voltage",
"water"
],
"description": "Type of sensor reading."
},
"apparentPower": {
"type": "object",
"properties": {
"draw": {
"type": "object",
"properties": {
"minimum": {
"type": "number",
"format": "float",
"description": "Minimum apparent power reading in volt-amperes."
},
"maximum": {
"type": "number",
"format": "float",
"description": "Maximum apparent power reading in volt-amperes."
},
"average": {
"type": "number",
"format": "float",
"description": "Average apparent power reading in volt-amperes."
}
},
"description": "Aggregated apparent power readings in volt-amperes."
}
},
"description": "Reading information over the interval for the 'apparentPower' metric. This will only be present if the 'metric' property equals 'apparentPower'."
},
"battery": {
"type": "object",
"properties": {
"percentage": {
"type": "object",
"properties": {
"minimum": {
"type": "integer",
"description": "Minimum battery life reading as a percentage."
},
"maximum": {
"type": "integer",
"description": "Maximum battery life reading as a percentage."
},
"average": {
"type": "integer",
"description": "Average battery life reading as a percentage."
}
},
"description": "Aggregated battery life readings as a percentage."
}
},
"description": "Reading information over the interval for the 'battery' metric. This will only be present if the 'metric' property equals 'battery'."
},
"button": {
"type": "object",
"properties": {
"pressType": {
"type": "object",
"properties": {
"counts": {
"type": "object",
"properties": {
"short": {
"type": "integer",
"description": "Number of times that a short press was performed."
},
"long": {
"type": "integer",
"description": "Number of times that a long press was performed."
}
},
"description": "Accumulated button presses by press type."
}
},
"description": "Accumulated counts of button press readings."
}
},
"description": "Reading information over the interval for the 'button' metric. This will only be present if the 'metric' property equals 'button'."
},
"co2": {
"type": "object",
"properties": {
"concentration": {
"type": "object",
"properties": {
"minimum": {
"type": "integer",
"description": "Minimum CO2 reading in parts per million."
},
"maximum": {
"type": "integer",
"description": "Maximum CO2 reading in parts per million."
},
"average": {
"type": "integer",
"description": "Average CO2 reading in parts per million."
}
},
"description": "Aggregated CO2 readings in parts per million."
}
},
"description": "Reading information over the interval for the 'co2' metric. This will only be present if the 'metric' property equals 'co2'."
},
"current": {
"type": "object",
"properties": {
"draw": {
"type": "object",
"properties": {
"minimum": {
"type": "number",
"format": "float",
"description": "Minimum electrical current reading in amperes."
},
"maximum": {
"type": "number",
"format": "float",
"description": "Maximum electrical current reading in amperes."
},
"average": {
"type": "number",
"format": "float",
"description": "Average electrical current reading in amperes."
}
},
"description": "Aggregated electrical current readings in amperes."
}
},
"description": "Reading information over the interval for the 'current' metric. This will only be present if the 'metric' property equals 'current'."
},
"door": {
"type": "object",
"properties": {
"counts": {
"type": "object",
"properties": {
"open": {
"type": "integer",
"description": "Number of times the door was opened."
}
},
"description": "Accumulated counts of door readings."
}
},
"description": "Reading information over the interval for the 'door' metric. This will only be present if the 'metric' property equals 'door'."
},
"energy": {
"type": "object",
"properties": {
"usage": {
"type": "number",
"format": "float",
"description": "Energy usage over the time interval in kilowatt-hours."
}
},
"description": "Reading information over the interval for the 'energy' metric. This will only be present if the 'metric' property equals 'energy'."
},
"frequency": {
"type": "object",
"properties": {
"draw": {
"type": "object",
"properties": {
"minimum": {
"type": "number",
"format": "float",
"description": "Minimum electrical current frequency reading in hertz."
},
"maximum": {
"type": "number",
"format": "float",
"description": "Maximum electrical current frequency reading in hertz."
},
"average": {
"type": "number",
"format": "float",
"description": "Average electrical current frequency reading in hertz."
}
},
"description": "Aggregated electrical current frequency readings in hertz."
}
},
"description": "Reading information over the interval for the 'frequency' metric. This will only be present if the 'metric' property equals 'frequency'."
},
"humidity": {
"type": "object",
"properties": {
"relativePercentage": {
"type": "object",
"properties": {
"minimum": {
"type": "integer",
"description": "Minimum humidity reading in %RH."
},
"maximum": {
"type": "integer",
"description": "Maximum humidity reading in %RH."
},
"average": {
"type": "integer",
"description": "Average humidity reading in %RH."
}
},
"description": "Aggregated humidity readings in %RH."
}
},
"description": "Reading information over the interval for the 'humidity' metric. This will only be present if the 'metric' property equals 'humidity'."
},
"indoorAirQuality": {
"type": "object",
"properties": {
"score": {
"type": "object",
"properties": {
"minimum": {
"type": "integer",
"description": "Minimum indoor air quality reading as a score between 0-100."
},
"maximum": {
"type": "integer",
"description": "Maximum indoor air quality reading as a score between 0-100."
},
"average": {
"type": "integer",
"description": "Average indoor air quality reading as a score between 0-100."
}
},
"description": "Aggregated indoor air quality readings as a score between 0-100."
}
},
"description": "Reading information over the interval for the 'indoorAirQuality' metric. This will only be present if the 'metric' property equals 'indoorAirQuality'."
},
"noise": {
"type": "object",
"properties": {
"ambient": {
"type": "object",
"properties": {
"level": {
"type": "object",
"properties": {
"minimum": {
"type": "integer",
"description": "Minimum ambient noise reading in adjusted decibels."
},
"maximum": {
"type": "integer",
"description": "Maximum ambient noise reading in adjusted decibels."
},
"average": {
"type": "integer",
"description": "Average ambient noise reading in adjusted decibels."
}
},
"description": "Aggregated ambient noise readings in adjusted decibels."
}
},
"description": "Ambient noise reading."
}
},
"description": "Reading information over the interval for the 'noise' metric. This will only be present if the 'metric' property equals 'noise'."
},
"pm25": {
"type": "object",
"properties": {
"concentration": {
"type": "object",
"properties": {
"minimum": {
"type": "integer",
"description": "Minimum PM2.5 reading in micrograms per cubic meter."
},
"maximum": {
"type": "integer",
"description": "Maximum PM2.5 reading in micrograms per cubic meter."
},
"average": {
"type": "integer",
"description": "Average PM2.5 reading in micrograms per cubic meter."
}
},
"description": "Aggregated PM2.5 readings in micrograms per cubic meter."
}
},
"description": "Reading information over the interval for the 'pm25' metric. This will only be present if the 'metric' property equals 'pm25'."
},
"powerFactor": {
"type": "object",
"properties": {
"percentage": {
"type": "object",
"properties": {
"minimum": {
"type": "integer",
"description": "Minimum power factor reading as a percentage."
},
"maximum": {
"type": "integer",
"description": "Maximum power factor reading as a percentage."
},
"average": {
"type": "integer",
"description": "Average power factor reading as a percentage."
}
},
"description": "Aggregated power factor readings as a percentage."
}
},
"description": "Reading information over the interval for the 'powerFactor' metric. This will only be present if the 'metric' property equals 'powerFactor'."
},
"realPower": {
"type": "object",
"properties": {
"draw": {
"type": "object",
"properties": {
"minimum": {
"type": "number",
"format": "float",
"description": "Minimum real power reading in watts."
},
"maximum": {
"type": "number",
"format": "float",
"description": "Maximum real power reading in watts."
},
"average": {
"type": "number",
"format": "float",
"description": "Average real power reading in watts."
}
},
"description": "Aggregated real power readings in watts."
}
},
"description": "Reading information over the interval for the 'realPower' metric. This will only be present if the 'metric' property equals 'realPower'."
},
"temperature": {
"type": "object",
"properties": {
"fahrenheit": {
"type": "object",
"properties": {
"minimum": {
"type": "number",
"format": "float",
"description": "Minimum temperature reading in degrees Fahrenheit."
},
"maximum": {
"type": "number",
"format": "float",
"description": "Maximum temperature reading in degrees Fahrenheit."
},
"average": {
"type": "number",
"format": "float",
"description": "Average temperature reading in degrees Fahrenheit."
}
},
"description": "Aggregated temperature readings in degrees Fahrenheit."
},
"celsius": {
"type": "object",
"properties": {
"minimum": {
"type": "number",
"format": "float",
"description": "Minimum temperature reading in degrees Celsius."
},
"maximum": {
"type": "number",
"format": "float",
"description": "Maximum temperature reading in degrees Celsius."
},
"average": {
"type": "number",
"format": "float",
"description": "Average temperature reading in degrees Celsius."
}
},
"description": "Aggregated temperature readings in degrees Celsius."
}
},
"description": "Reading information over the interval for the 'temperature' metric. This will only be present if the 'metric' property equals 'temperature'."
},
"tvoc": {
"type": "object",
"properties": {
"concentration": {
"type": "object",
"properties": {
"minimum": {
"type": "integer",
"description": "Minimum TVOC reading in micrograms per cubic meter."
},
"maximum": {
"type": "integer",
"description": "Maximum TVOC reading in micrograms per cubic meter."
},
"average": {
"type": "integer",
"description": "Average TVOC reading in micrograms per cubic meter."
}
},
"description": "Aggregated TVOC readings in micrograms per cubic meter."
}
},
"description": "Reading information over the interval for the 'tvoc' metric. This will only be present if the 'metric' property equals 'tvoc'."
},
"voltage": {
"type": "object",
"properties": {
"level": {
"type": "object",
"properties": {
"minimum": {
"type": "number",
"format": "float",
"description": "Minimum voltage reading in volts."
},
"maximum": {
"type": "number",
"format": "float",
"description": "Maximum voltage reading in volts."
},
"average": {
"type": "number",
"format": "float",
"description": "Average voltage reading in volts."
}
},
"description": "Aggregated voltage readings in volts."
}
},
"description": "Reading information over the interval for the 'voltage' metric. This will only be present if the 'metric' property equals 'voltage'."
},
"water": {
"type": "object",
"properties": {
"counts": {
"type": "object",
"properties": {
"present": {
"type": "integer",
"description": "Number of times that water was detected."
}
},
"description": "Accumulated counts of water detection readings."
}
},
"description": "Reading information over the interval for the 'water' metric. This will only be present if the 'metric' property equals 'water'."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"startTs": "2022-01-07T23:00:00Z",
"endTs": "2022-01-07T23:59:59Z",
"serial": "Q234-ABCD-5678",
"model": "MT11",
"network": {
"id": "N_24329156",
"name": "Main Office"
},
"metric": "temperature",
"apparentPower": {
"draw": {
"minimum": 0.0,
"maximum": 15.9,
"average": 4.9
}
},
"battery": {
"percentage": {
"minimum": 95,
"maximum": 97,
"average": 96
}
},
"button": {
"pressType": {
"counts": {
"short": 2,
"long": 4
}
}
},
"co2": {
"concentration": {
"minimum": 221,
"maximum": 504,
"average": 440
}
},
"current": {
"draw": {
"minimum": 0.0,
"maximum": 0.13,
"average": 0.04
}
},
"door": {
"counts": {
"open": 6
}
},
"energy": {
"usage": 0.116
},
"frequency": {
"draw": {
"minimum": 59.6,
"maximum": 60.2,
"average": 60.1
}
},
"humidity": {
"relativePercentage": {
"minimum": 33,
"maximum": 35,
"average": 33
}
},
"indoorAirQuality": {
"score": {
"minimum": 33,
"maximum": 35,
"average": 33
}
},
"noise": {
"ambient": {
"level": {
"minimum": 22,
"maximum": 45,
"average": 31
}
}
},
"pm25": {
"concentration": {
"minimum": 0,
"maximum": 3,
"average": 1
}
},
"powerFactor": {
"percentage": {
"minimum": 84,
"maximum": 89,
"average": 86
}
},
"realPower": {
"draw": {
"minimum": 0.0,
"maximum": 14.2,
"average": 5.0
}
},
"temperature": {
"fahrenheit": {
"minimum": 68.15,
"maximum": 74.91,
"average": 72.08
},
"celsius": {
"minimum": 20.08,
"maximum": 23.84,
"average": 22.27
}
},
"tvoc": {
"concentration": {
"minimum": 221,
"maximum": 504,
"average": 440
}
},
"voltage": {
"level": {
"minimum": 120.7,
"maximum": 124.6,
"average": 122.6
}
},
"water": {
"counts": {
"present": 6
}
}
}
]
}
}
},
"summary": "Return all reported readings from sensors in a given timespan, summarized as a series of intervals, sorted by interval start time in descending order",
"tags": [
"sensor",
"monitor",
"readings",
"history",
"byInterval"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/sensor/readings/latest": {
"get": {
"description": "Return the latest available reading for each metric from each sensor, sorted by sensor serial",
"operationId": "getOrganizationSensorReadingsLatest",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Optional parameter to filter readings by network."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Optional parameter to filter readings by sensor."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "metrics",
"in": "query",
"description": "Types of sensor readings to retrieve. If no metrics are supplied, all available types of readings will be retrieved. Allowed values are apparentPower, battery, button, co2, current, door, downstreamPower, frequency, humidity, indoorAirQuality, noise, pm25, powerFactor, realPower, remoteLockoutSwitch, temperature, tvoc, voltage, and water."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Serial number of the sensor that took the readings."
},
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "ID of the network."
},
"name": {
"type": "string",
"description": "Name of the network."
}
},
"description": "Network to which the sensor belongs."
},
"readings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ts": {
"type": "string",
"description": "Time at which the reading occurred, in ISO8601 format."
},
"metric": {
"type": "string",
"enum": [
"apparentPower",
"battery",
"button",
"co2",
"current",
"door",
"downstreamPower",
"frequency",
"humidity",
"indoorAirQuality",
"noise",
"pm25",
"powerFactor",
"realPower",
"remoteLockoutSwitch",
"temperature",
"tvoc",
"voltage",
"water"
],
"description": "Type of sensor reading."
},
"apparentPower": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Apparent power reading in volt-amperes."
}
},
"description": "Reading for the 'apparentPower' metric. This will only be present if the 'metric' property equals 'apparentPower'."
},
"battery": {
"type": "object",
"properties": {
"percentage": {
"type": "integer",
"description": "Remaining battery life."
}
},
"description": "Reading for the 'battery' metric. This will only be present if the 'metric' property equals 'battery'."
},
"button": {
"type": "object",
"properties": {
"pressType": {
"type": "string",
"enum": [
"long",
"short"
],
"description": "Type of button press that occurred."
}
},
"description": "Reading for the 'button' metric. This will only be present if the 'metric' property equals 'button'."
},
"co2": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "CO2 reading in parts per million."
}
},
"description": "Reading for the 'co2' metric. This will only be present if the 'metric' property equals 'co2'."
},
"current": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Electrical current reading in amperes."
}
},
"description": "Reading for the 'current' metric. This will only be present if the 'metric' property equals 'current'."
},
"door": {
"type": "object",
"properties": {
"open": {
"type": "boolean",
"description": "True if the door is open."
}
},
"description": "Reading for the 'door' metric. This will only be present if the 'metric' property equals 'door'."
},
"downstreamPower": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "True if power is turned on to the device that is connected downstream of the MT40 power monitor."
}
},
"description": "Reading for the 'downstreamPower' metric. This will only be present if the 'metric' property equals 'downstreamPower'."
},
"frequency": {
"type": "object",
"properties": {
"level": {
"type": "number",
"format": "float",
"description": "Electrical current frequency reading in hertz."
}
},
"description": "Reading for the 'frequency' metric. This will only be present if the 'metric' property equals 'frequency'."
},
"humidity": {
"type": "object",
"properties": {
"relativePercentage": {
"type": "integer",
"description": "Humidity reading in %RH."
}
},
"description": "Reading for the 'humidity' metric. This will only be present if the 'metric' property equals 'humidity'."
},
"indoorAirQuality": {
"type": "object",
"properties": {
"score": {
"type": "integer",
"description": "Indoor air quality score between 0 and 100."
}
},
"description": "Reading for the 'indoorAirQuality' metric. This will only be present if the 'metric' property equals 'indoorAirQuality'."
},
"noise": {
"type": "object",
"properties": {
"ambient": {
"type": "object",
"properties": {
"level": {
"type": "integer",
"description": "Ambient noise reading in adjusted decibels."
}
},
"description": "Ambient noise reading."
}
},
"description": "Reading for the 'noise' metric. This will only be present if the 'metric' property equals 'noise'."
},
"pm25": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "PM2.5 reading in micrograms per cubic meter."
}
},
"description": "Reading for the 'pm25' metric. This will only be present if the 'metric' property equals 'pm25'."
},
"powerFactor": {
"type": "object",
"properties": {
"percentage": {
"type": "integer",
"description": "Power factor reading as a percentage."
}
},
"description": "Reading for the 'powerFactor' metric. This will only be present if the 'metric' property equals 'powerFactor'."
},
"realPower": {
"type": "object",
"properties": {
"draw": {
"type": "number",
"format": "float",
"description": "Real power reading in watts."
}
},
"description": "Reading for the 'realPower' metric. This will only be present if the 'metric' property equals 'realPower'."
},
"remoteLockoutSwitch": {
"type": "object",
"properties": {
"locked": {
"type": "boolean",
"description": "True if power controls are disabled via the MT40's physical remote lockout switch."
}
},
"description": "Reading for the 'remoteLockoutSwitch' metric. This will only be present if the 'metric' property equals 'remoteLockoutSwitch'."
},
"temperature": {
"type": "object",
"properties": {
"fahrenheit": {
"type": "number",
"format": "float",
"description": "Temperature reading in degrees Fahrenheit."
},
"celsius": {
"type": "number",
"format": "float",
"description": "Temperature reading in degrees Celsius."
}
},
"description": "Reading for the 'temperature' metric. This will only be present if the 'metric' property equals 'temperature'."
},
"tvoc": {
"type": "object",
"properties": {
"concentration": {
"type": "integer",
"description": "TVOC reading in micrograms per cubic meter."
}
},
"description": "Reading for the 'tvoc' metric. This will only be present if the 'metric' property equals 'tvoc'."
},
"voltage": {
"type": "object",
"properties": {
"level": {
"type": "number",
"format": "float",
"description": "Voltage reading in volts."
}
},
"description": "Reading for the 'voltage' metric. This will only be present if the 'metric' property equals 'voltage'."
},
"water": {
"type": "object",
"properties": {
"present": {
"type": "boolean",
"description": "True if water is detected."
}
},
"description": "Reading for the 'water' metric. This will only be present if the 'metric' property equals 'water'."
}
}
},
"description": "Array of latest readings from the sensor. Each object represents a single reading for a single metric."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"serial": "Q234-ABCD-5678",
"network": {
"id": "N_24329156",
"name": "Main Office"
},
"readings": [
{
"ts": "2021-10-18T23:54:48.000000Z",
"metric": "temperature",
"apparentPower": {
"draw": 15.9
},
"battery": {
"percentage": 91
},
"button": {
"pressType": "short"
},
"co2": {
"concentration": 100
},
"current": {
"draw": 0.13
},
"door": {
"open": true
},
"downstreamPower": {
"enabled": true
},
"frequency": {
"level": 60.1
},
"humidity": {
"relativePercentage": 34
},
"indoorAirQuality": {
"score": 89
},
"noise": {
"ambient": {
"level": 45
}
},
"pm25": {
"concentration": 100
},
"powerFactor": {
"percentage": 86
},
"realPower": {
"draw": 13.7
},
"remoteLockoutSwitch": {
"locked": false
},
"temperature": {
"fahrenheit": 77.81,
"celsius": 25.45
},
"tvoc": {
"concentration": 100
},
"voltage": {
"level": 122.4
},
"water": {
"present": true
}
}
]
}
]
}
}
},
"summary": "Return the latest available reading for each metric from each sensor, sorted by sensor serial",
"tags": [
"sensor",
"monitor",
"readings",
"latest"
]
}
},
"/organizations/{organizationId}/sm/admins/roles": {
"get": {
"description": "List the Limited Access Roles for an organization",
"operationId": "getOrganizationSmAdminsRoles",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 50."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"roleId": {
"type": "string",
"description": "The Id of the limited access role"
},
"name": {
"type": "string",
"description": "The name of the limited access role"
},
"scope": {
"type": "string",
"enum": [
"all_tags",
"some",
"without_all_tags",
"without_some"
],
"description": "The scope of the limited access role"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tags of the limited access role"
}
}
},
"description": "Array of Limited Access Roles"
},
"meta": {
"type": "object",
"properties": {
"counts": {
"type": "object",
"properties": {
"items": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "The total number of items in the dataset"
},
"remaining": {
"type": "integer",
"description": "The number of items in the dataset 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"
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": {
"items": [
{
"roleId": "1284392014819",
"name": "sample name",
"scope": "all_tags",
"tags": [
"tag"
]
}
],
"meta": {
"counts": {
"items": {
"total": 10,
"remaining": 0
}
}
}
}
}
}
},
"summary": "List the Limited Access Roles for an organization",
"tags": [
"sm",
"configure",
"admins",
"roles"
]
},
"post": {
"description": "Create a Limited Access Role",
"operationId": "createOrganizationSmAdminsRole",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationSmAdminsRole",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the Limited Access Role"
},
"scope": {
"type": "string",
"enum": [
"all_tags",
"some",
"without_all_tags",
"without_some"
],
"description": "The scope of the Limited Access Role"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tags of the Limited Access Role"
}
},
"example": {
"name": "sample name",
"scope": "all_tags",
"tags": [
"tag"
]
},
"required": [
"name"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"roleId": {
"type": "string",
"description": "The Id of the limited access role"
},
"name": {
"type": "string",
"description": "The name of the limited access role"
},
"scope": {
"type": "string",
"enum": [
"all_tags",
"some",
"without_all_tags",
"without_some"
],
"description": "The scope of the limited access role"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tags of the limited access role"
}
}
},
"examples": {
"application/json": {
"roleId": "1284392014819",
"name": "sample name",
"scope": "all_tags",
"tags": [
"tag"
]
}
}
}
},
"summary": "Create a Limited Access Role",
"tags": [
"sm",
"configure",
"admins",
"roles"
]
}
},
"/organizations/{organizationId}/sm/admins/roles/{roleId}": {
"get": {
"description": "Return a Limited Access Role",
"operationId": "getOrganizationSmAdminsRole",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "roleId",
"in": "path",
"description": "Role ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"roleId": {
"type": "string",
"description": "The Id of the limited access role"
},
"name": {
"type": "string",
"description": "The name of the limited access role"
},
"scope": {
"type": "string",
"enum": [
"all_tags",
"some",
"without_all_tags",
"without_some"
],
"description": "The scope of the limited access role"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tags of the limited access role"
}
}
},
"examples": {
"application/json": {
"roleId": "1284392014819",
"name": "sample name",
"scope": "all_tags",
"tags": [
"tag"
]
}
}
}
},
"summary": "Return a Limited Access Role",
"tags": [
"sm",
"configure",
"admins",
"roles"
]
},
"put": {
"description": "Update a Limited Access Role",
"operationId": "updateOrganizationSmAdminsRole",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "roleId",
"in": "path",
"description": "Role ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationSmAdminsRole",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the Limited Access Role"
},
"scope": {
"type": "string",
"enum": [
"all_tags",
"some",
"without_all_tags",
"without_some"
],
"description": "The scope of the Limited Access Role"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tags of the Limited Access Role"
}
},
"example": {
"name": "sample name",
"scope": "all_tags",
"tags": [
"tag"
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"roleId": {
"type": "string",
"description": "The Id of the limited access role"
},
"name": {
"type": "string",
"description": "The name of the limited access role"
},
"scope": {
"type": "string",
"enum": [
"all_tags",
"some",
"without_all_tags",
"without_some"
],
"description": "The scope of the limited access role"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tags of the limited access role"
}
}
},
"examples": {
"application/json": {
"roleId": "1284392014819",
"name": "sample name",
"scope": "all_tags",
"tags": [
"tag"
]
}
}
}
},
"summary": "Update a Limited Access Role",
"tags": [
"sm",
"configure",
"admins",
"roles"
]
},
"delete": {
"description": "Delete a Limited Access Role",
"operationId": "deleteOrganizationSmAdminsRole",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "roleId",
"in": "path",
"description": "Role ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a Limited Access Role",
"tags": [
"sm",
"configure",
"admins",
"roles"
]
}
},
"/organizations/{organizationId}/sm/apnsCert": {
"get": {
"description": "Get the organization's APNS certificate",
"operationId": "getOrganizationSmApnsCert",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"certificate": {
"type": "string",
"description": "Organization APNS Certificate used by devices to communication with Apple"
}
}
},
"examples": {
"application/json": {
"certificate": " -----BEGIN CERTIFICATE-----\n MIIFdjCCBF6gAwIBAgIIM/hhf5ww8MwwDQYJKoZIhvcNAQELBQAwgYwxQDA+BgNV\n BAMMN0FwcGxlIEFwcGxpY2F0aW9uIEludGVncmF0aW9uIDIgQ2VydGlmaWNhdGlv\n biBBdXRob3JpdHkxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9y\n aXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzAeFw0yMDAyMjYx\n ODIzNDJaFw0yMTAyMjUxODIzNDJaMIGPMUwwSgYKCZImiZPyLGQBAQw8Y29tLmFw\n cGxlLm1nbXQuRXh0ZXJuYWwuOTA3NDJhYmYtZDhhZC00MTc2LTllZmQtMGNiMzg1\n MTM1MGM0MTIwMAYDVQQDDClBUFNQOjkwNzQyYWJmLWQ4YWQtNDE3Ni05ZWZkLTBj\n YjM4NTEzNTBjNDELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw\n ggEKAoIBAQDANdpo62hfxkP1IpMPXuO1+xKekUkY+iYae6cRaP886bodUaH1OwCj\n Qd011u9Vng6m8I9rcLdIOS+IkFGKcTAHRYY3noqfEQUPyi5TN6yM1/mVYVoWZUnY\n TrNWqDN/HfRagdYfZyQ7kAtOY2K8TF78HLLqQm7ez2+r4qibumoSli9+qCzKwDW/\n hbx7JTeMlbYkhLTFgBkRxlp+usKymsLKm8D7kdbxtct4mx6p9z1FiNu4U1Hi/PgK\n I/V3zHD4Ww7SzTICiLdCPeAmt042JvXAMQi0qhzrEdDiapmWwUC9xiiORN0BTIRA\n T+DddTx8Xcly4wj9vQFdGUGLrJnzB3xZAgMBAAGjggHVMIIB0TAJBgNVHRMEAjAA\n MB8GA1UdIwQYMBaAFPe+fCFgkds9G3vYOjKBad+ebH+bMIIBHAYDVR0gBIIBEzCC\n AQ8wggELBgkqhkiG92NkBQEwgf0wgcMGCCsGAQUFBwICMIG2DIGzUmVsaWFuY2Ug\n b24gdGhpcyBjZXJ0aWZpY2F0ZSBieSBhbnkgcGFydHkgYXNzdW1lcyBhY2NlcHRh\n bmNlIG9mIHRoZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNv\n bmRpdGlvbnMgb2YgdXNlLCBjZXJ0aWZpY2F0ZSBwb2xpY3kgYW5kIGNlcnRpZmlj\n YXRpb24gcHJhY3RpY2Ugc3RhdGVtZW50cy4wNQYIKwYBBQUHAgEWKWh0dHA6Ly93\n d3cuYXBwbGUuY29tL2NlcnRpZmljYXRlYXV0aG9yaXR5MBMGA1UdJQQMMAoGCCsG\n AQUFBwMCMDAGA1UdHwQpMCcwJaAjoCGGH2h0dHA6Ly9jcmwuYXBwbGUuY29tL2Fh\n aTJjYS5jcmwwHQYDVR0OBBYEFDj4Jizt9bQX7dn3ypIanvaNIy8fMAsGA1UdDwQE\n AwIHgDAQBgoqhkiG92NkBgMCBAIFADANBgkqhkiG9w0BAQsFAAOCAQEARmLmy4Mh\n 80hTBHMj2whrC2LR0dIe2ngAUwYGSocyPZOzlGZYntUvpsNGwflbWSPNxFpVF15z\n exEcLPKM4f9KGdM27s/m/x1Es2us9Vve+wS+N0C84zMC++FJBIxj3yAINXqSpYJv\n bA5wccHlzP9F9Ks7sVNQB8y0mibYahtxVV959gC4522t5SRaEEsd82oTCtXE2Ljg\n fQ1IAmWi4MuMSPwp26oDSwun8Wxyx+sfi/it9YWxD36Ga9mrfIjK1WIHyhge0HHr\n olnvMfxgwI9E5gGV/4bQzPlmsHdz+/pLupWMkALaAxI9D7ajUG7iyyjJBCOpsr1s\n FjDvo6WUkaqMHA==\n -----END CERTIFICATE-----\n"
}
}
}
},
"summary": "Get the organization's APNS certificate",
"tags": [
"sm",
"configure",
"apnsCert"
]
}
},
"/organizations/{organizationId}/sm/apple/cloudEnrollment/syncJobs": {
"post": {
"description": "Enqueue a sync job for an ADE account",
"operationId": "createOrganizationSmAppleCloudEnrollmentSyncJob",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationSmAppleCloudEnrollmentSyncJob",
"in": "body",
"schema": {
"type": "object",
"properties": {
"adeAccountId": {
"type": "string",
"description": "ADE Account ID"
},
"fullSync": {
"type": "boolean",
"description": "Whether or not job is full sync (defaults to full sync)",
"default": false
}
},
"example": {
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"syncJobId": {
"type": "string",
"description": "The id of the ADE Sync Job"
},
"adeAccountId": {
"type": "string",
"description": "The id of the ADE account"
},
"status": {
"type": "string",
"description": "The status of the ADE Sync Job"
}
}
},
"examples": {
"application/json": {
"syncJobId": "1284392014819",
"adeAccountId": "1284392014819",
"status": "pending"
}
}
}
},
"summary": "Enqueue a sync job for an ADE account",
"tags": [
"sm",
"configure",
"apple",
"cloudEnrollment",
"syncJobs"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/sm/apple/cloudEnrollment/syncJobs/{syncJobId}": {
"get": {
"description": "Retrieve the status of an ADE sync job",
"operationId": "getOrganizationSmAppleCloudEnrollmentSyncJob",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "syncJobId",
"in": "path",
"description": "Sync job ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"syncJobId": {
"type": "string",
"description": "The id of the ADE Sync Job"
},
"adeAccountId": {
"type": "string",
"description": "The id of the ADE account"
},
"status": {
"type": "string",
"description": "The status of the ADE Sync Job"
}
}
},
"examples": {
"application/json": {
"syncJobId": "1284392014819",
"adeAccountId": "1284392014819",
"status": "pending"
}
}
}
},
"summary": "Retrieve the status of an ADE sync job",
"tags": [
"sm",
"configure",
"apple",
"cloudEnrollment",
"syncJobs"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/sm/bulkEnrollment/token": {
"post": {
"description": "Create a PccBulkEnrollmentToken",
"operationId": "createOrganizationSmBulkEnrollmentToken",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationSmBulkEnrollmentToken",
"in": "body",
"schema": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "The id of the associated node_group."
},
"expiresAt": {
"type": "string",
"description": "The expiration date."
}
},
"example": {
"networkId": "N_24329156",
"expiresAt": "2023-10-15T00:00:00Z"
},
"required": [
"networkId",
"expiresAt"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The token id."
},
"networkId": {
"type": "string",
"description": "The network id of the associated node_group."
},
"expiresAt": {
"type": "string",
"description": "The expiration date."
},
"rawToken": {
"type": "string",
"description": "The raw token the user will input into the agent."
}
}
},
"examples": {
"application/json": {
"id": "1284392014819",
"networkId": "N_24329156",
"expiresAt": "2023-10-15T00:00:00Z",
"rawToken": "MMbCbpHZtG3TKUCr9B9uc5"
}
}
}
},
"summary": "Create a PccBulkEnrollmentToken",
"tags": [
"sm",
"configure",
"bulkEnrollment",
"token"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/sm/bulkEnrollment/token/{tokenId}": {
"get": {
"description": "Return a BulkEnrollmentToken",
"operationId": "getOrganizationSmBulkEnrollmentToken",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "tokenId",
"in": "path",
"description": "Token ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The token id."
},
"networkId": {
"type": "string",
"description": "The network id of the associated node_group."
},
"expiresAt": {
"type": "string",
"description": "The expiration date."
}
}
},
"examples": {
"application/json": {
"id": "1284392014819",
"networkId": "N_24329156",
"expiresAt": "2023-10-15T00:00:00Z"
}
}
}
},
"summary": "Return a BulkEnrollmentToken",
"tags": [
"sm",
"configure",
"bulkEnrollment",
"token"
],
"x-release-stage": "beta"
},
"put": {
"description": "Update a PccBulkEnrollmentToken",
"operationId": "updateOrganizationSmBulkEnrollmentToken",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "tokenId",
"in": "path",
"description": "Token ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationSmBulkEnrollmentToken",
"in": "body",
"schema": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "The id of the associated node_group."
},
"expiresAt": {
"type": "string",
"description": "The expiration date."
}
},
"example": {
"networkId": "N_24329156",
"expiresAt": "2023-10-15T00:00:00Z"
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The token id."
},
"networkId": {
"type": "string",
"description": "The network id of the associated node_group."
},
"expiresAt": {
"type": "string",
"description": "The expiration date."
}
}
},
"examples": {
"application/json": {
"id": "1284392014819",
"networkId": "N_24329156",
"expiresAt": "2023-10-15T00:00:00Z"
}
}
}
},
"summary": "Update a PccBulkEnrollmentToken",
"tags": [
"sm",
"configure",
"bulkEnrollment",
"token"
],
"x-release-stage": "beta"
},
"delete": {
"description": "Delete a PccBulkEnrollmentToken",
"operationId": "deleteOrganizationSmBulkEnrollmentToken",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "tokenId",
"in": "path",
"description": "Token ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a PccBulkEnrollmentToken",
"tags": [
"sm",
"configure",
"bulkEnrollment",
"token"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/sm/bulkEnrollment/tokens": {
"get": {
"description": "List all BulkEnrollmentTokens for an organization.",
"operationId": "getOrganizationSmBulkEnrollmentTokens",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The token id."
},
"networkId": {
"type": "string",
"description": "The network id of the associated node_group."
},
"expiresAt": {
"type": "string",
"description": "The expiration date."
}
}
}
},
"examples": {
"application/json": [
{
"id": "1284392014819",
"networkId": "N_24329156",
"expiresAt": "2023-10-15T00:00:00Z"
}
]
}
}
},
"summary": "List all BulkEnrollmentTokens for an organization.",
"tags": [
"sm",
"configure",
"bulkEnrollment",
"tokens"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/sm/sentry/policies/assignments": {
"put": {
"description": "Update an Organizations Sentry Policies using the provided list. Sentry Policies are ordered in descending order of priority (i.e. highest priority at the bottom, this is opposite the Dashboard UI). Policies not present in the request will be deleted.",
"operationId": "updateOrganizationSmSentryPoliciesAssignments",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationSmSentryPoliciesAssignments",
"in": "body",
"schema": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "The Id of the Network"
},
"policies": {
"type": "array",
"items": {
"type": "object",
"properties": {
"policyId": {
"type": "string",
"description": "The Sentry Policy Id, if updating an existing Sentry Policy"
},
"smNetworkId": {
"type": "string",
"description": "The Id of the Systems Manager Network"
},
"scope": {
"type": "string",
"enum": [
"all",
"none",
"withAll",
"withAny",
"withoutAll",
"withoutAny"
],
"description": "The scope of the Sentry Policy"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tags for the Sentry Policy"
},
"groupPolicyId": {
"type": "string",
"description": "The Group Policy Id"
}
},
"required": [
"smNetworkId",
"scope",
"tags",
"groupPolicyId"
]
},
"description": "Array of Sentry Group Policies for the Network"
}
},
"required": [
"networkId"
]
},
"description": "Sentry Group Policies for the Organization keyed by Network Id"
}
},
"example": {
"items": [
{
"networkId": "N_24329156",
"policies": [
{
"policyId": "1284392014819",
"smNetworkId": "N_24329156",
"scope": "withAny",
"tags": [
"tag1",
"tag2"
],
"groupPolicyId": "1284392014819"
}
]
}
]
},
"required": [
"items"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "The Id of the Network"
},
"policies": {
"type": "array",
"items": {
"type": "object",
"properties": {
"policyId": {
"type": "string",
"description": "The Id of the Sentry Policy"
},
"networkId": {
"type": "string",
"description": "The Id of the Network the Sentry Policy is associated with. In a locale, this should be the Wireless Group if present, otherwise the Wired Group."
},
"smNetworkId": {
"type": "string",
"description": "The Id of the Systems Manager Network the Sentry Policy is assigned to"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tags of the Sentry Policy"
},
"scope": {
"type": "string",
"enum": [
"all",
"none",
"withAll",
"withAny",
"withoutAll",
"withoutAny"
],
"description": "The scope of the Sentry Policy"
},
"groupNumber": {
"type": "string",
"description": "The number of the Group Policy"
},
"groupPolicyId": {
"type": "string",
"description": "The Id of the Group Policy. This is associated with the network specified by the networkId."
},
"priority": {
"type": "string",
"description": "The priority of the Sentry Policy"
},
"createdAt": {
"type": "string",
"description": "The creation time of the Sentry Policy"
},
"lastUpdatedAt": {
"type": "string",
"description": "The last update time of the Sentry Policy"
}
}
},
"description": "Array of Sentry Group Policies for the Network"
}
}
},
"description": "Sentry Group Policies for the Organization keyed by Network Id"
}
}
},
"examples": {
"application/json": {
"items": [
{
"networkId": "N_24329156",
"policies": [
{
"policyId": "1284392014819",
"networkId": "N_24329156",
"smNetworkId": "N_24329156",
"tags": [
"tag1",
"tag2"
],
"scope": "withAny",
"groupNumber": "1234",
"groupPolicyId": "1284392014819",
"priority": "1",
"createdAt": "2018-05-12T00:00:00Z",
"lastUpdatedAt": "2018-05-12T00:00:00Z"
}
]
}
]
}
}
}
},
"summary": "Update an Organizations Sentry Policies using the provided list",
"tags": [
"sm",
"configure",
"sentry",
"policies",
"assignments"
]
}
},
"/organizations/{organizationId}/sm/sentry/policies/assignments/byNetwork": {
"get": {
"description": "List the Sentry Policies for an organization ordered in ascending order of priority",
"operationId": "getOrganizationSmSentryPoliciesAssignmentsByNetwork",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 50."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Optional parameter to filter Sentry Policies by Network Id"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "The Id of the Network"
},
"policies": {
"type": "array",
"items": {
"type": "object",
"properties": {
"policyId": {
"type": "string",
"description": "The Id of the Sentry Policy"
},
"networkId": {
"type": "string",
"description": "The Id of the Network the Sentry Policy is associated with. In a locale, this should be the Wireless Group if present, otherwise the Wired Group."
},
"smNetworkId": {
"type": "string",
"description": "The Id of the Systems Manager Network the Sentry Policy is assigned to"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tags of the Sentry Policy"
},
"scope": {
"type": "string",
"enum": [
"all",
"none",
"withAll",
"withAny",
"withoutAll",
"withoutAny"
],
"description": "The scope of the Sentry Policy"
},
"groupNumber": {
"type": "string",
"description": "The number of the Group Policy"
},
"groupPolicyId": {
"type": "string",
"description": "The Id of the Group Policy. This is associated with the network specified by the networkId."
},
"priority": {
"type": "string",
"description": "The priority of the Sentry Policy"
},
"createdAt": {
"type": "string",
"description": "The creation time of the Sentry Policy"
},
"lastUpdatedAt": {
"type": "string",
"description": "The last update time of the Sentry Policy"
}
}
},
"description": "Array of Sentry Group Policies for the Network"
}
}
},
"description": "Sentry Group Policies for the Organization keyed by the Network or Locale Id the Policy belongs to"
},
"meta": {
"type": "object",
"properties": {
"counts": {
"type": "object",
"properties": {
"items": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "The total number of items in the dataset"
},
"remaining": {
"type": "integer",
"description": "The number of items in the dataset 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"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"items": [
{
"networkId": "N_24329156",
"policies": [
{
"policyId": "1284392014819",
"networkId": "N_24329156",
"smNetworkId": "N_24329156",
"tags": [
"tag1",
"tag2"
],
"scope": "withAny",
"groupNumber": "1234",
"groupPolicyId": "1284392014819",
"priority": "1",
"createdAt": "2018-05-12T00:00:00Z",
"lastUpdatedAt": "2018-05-12T00:00:00Z"
}
]
}
],
"meta": {
"counts": {
"items": {
"total": 10,
"remaining": 0
}
}
}
}
]
}
}
},
"summary": "List the Sentry Policies for an organization ordered in ascending order of priority",
"tags": [
"sm",
"configure",
"sentry",
"policies",
"assignments",
"byNetwork"
]
}
},
"/organizations/{organizationId}/sm/vppAccounts": {
"get": {
"description": "List the VPP accounts in the organization",
"operationId": "getOrganizationSmVppAccounts",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"vppAccountId": {
"type": "string",
"description": "The id of the VPP Account"
},
"contentToken": {
"type": "string",
"description": "The VPP service token"
},
"email": {
"type": "string",
"description": "The email address associated with the VPP account"
},
"name": {
"type": "string",
"description": "The name of the VPP account"
},
"allowedAdmins": {
"type": "string",
"description": "The allowed admins for the VPP account"
},
"networkIdAdmins": {
"type": "string",
"description": "The network IDs of the admins for the VPP account"
},
"assignableNetworks": {
"type": "string",
"description": "The assignable networks for the VPP account"
},
"assignableNetworkIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "The network IDs of the assignable networks for the VPP account"
},
"vppLocationId": {
"type": "string",
"description": "The VPP location ID"
},
"vppLocationName": {
"type": "string",
"description": "The VPP location name"
},
"lastSyncedAt": {
"type": "string",
"description": "The last time the VPP account was synced"
},
"lastForceSyncedAt": {
"type": "string",
"description": "The last time the VPP account was force synced"
},
"parsedToken": {
"type": "object",
"properties": {
"orgName": {
"type": "string",
"description": "The organization name"
},
"hashedToken": {
"type": "string",
"description": "The hashed token"
},
"expiresAt": {
"type": "string",
"description": "The expiration time of the token"
}
},
"description": "The parsed VPP service token"
},
"id": {
"type": "string",
"description": "The id of the VPP Account"
},
"vppServiceToken": {
"type": "string",
"description": "The VPP Account's Service Token"
}
}
}
},
"examples": {
"application/json": [
{
"vppAccountId": "1284392014819",
"contentToken": "eyJleHBEYXRlIjoiMzAyMy0xMC0yMVQxMjowOTo0NSswMDAwIiwidG9rZW4iOiIvVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlQiLCJvcmdOYW1lIjoiTWVyYWtpICsgREVWRUxPUEVSIn0=",
"email": "email@example.com",
"name": "VPP Account name",
"allowedAdmins": "Network",
"networkIdAdmins": "N_24329156",
"assignableNetworks": "Some",
"assignableNetworkIds": [
"N_24329156"
],
"vppLocationId": "22222222222",
"vppLocationName": "LocationName",
"lastSyncedAt": "2021-02-25T16:59:23Z",
"lastForceSyncedAt": "2021-02-25T16:59:23Z",
"parsedToken": {
"orgName": "My organization",
"hashedToken": "f572d396fae9206628714fb2ce00f72e94f2258f",
"expiresAt": "2023-10-21T12:09:45Z"
},
"id": "1284392014819",
"vppServiceToken": "eyJleHBEYXRlIjoiMzAyMy0xMC0yMVQxMjowOTo0NSswMDAwIiwidG9rZW4iOiIvVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlQiLCJvcmdOYW1lIjoiTWVyYWtpICsgREVWRUxPUEVSIn0="
}
]
}
}
},
"summary": "List the VPP accounts in the organization",
"tags": [
"sm",
"configure",
"vppAccounts"
]
}
},
"/organizations/{organizationId}/sm/vppAccounts/{vppAccountId}": {
"get": {
"description": "Get a hash containing the unparsed token of the VPP account with the given ID",
"operationId": "getOrganizationSmVppAccount",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "vppAccountId",
"in": "path",
"description": "Vpp account ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"vppAccountId": {
"type": "string",
"description": "The id of the VPP Account"
},
"contentToken": {
"type": "string",
"description": "The VPP service token"
},
"email": {
"type": "string",
"description": "The email address associated with the VPP account"
},
"name": {
"type": "string",
"description": "The name of the VPP account"
},
"allowedAdmins": {
"type": "string",
"description": "The allowed admins for the VPP account"
},
"networkIdAdmins": {
"type": "string",
"description": "The network IDs of the admins for the VPP account"
},
"assignableNetworks": {
"type": "string",
"description": "The assignable networks for the VPP account"
},
"assignableNetworkIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "The network IDs of the assignable networks for the VPP account"
},
"vppLocationId": {
"type": "string",
"description": "The VPP location ID"
},
"vppLocationName": {
"type": "string",
"description": "The VPP location name"
},
"lastSyncedAt": {
"type": "string",
"description": "The last time the VPP account was synced"
},
"lastForceSyncedAt": {
"type": "string",
"description": "The last time the VPP account was force synced"
},
"parsedToken": {
"type": "object",
"properties": {
"orgName": {
"type": "string",
"description": "The organization name"
},
"hashedToken": {
"type": "string",
"description": "The hashed token"
},
"expiresAt": {
"type": "string",
"description": "The expiration time of the token"
}
},
"description": "The parsed VPP service token"
},
"id": {
"type": "string",
"description": "The id of the VPP Account"
},
"vppServiceToken": {
"type": "string",
"description": "The VPP Account's Service Token"
}
}
},
"examples": {
"application/json": {
"vppAccountId": "1284392014819",
"contentToken": "eyJleHBEYXRlIjoiMzAyMy0xMC0yMVQxMjowOTo0NSswMDAwIiwidG9rZW4iOiIvVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlQiLCJvcmdOYW1lIjoiTWVyYWtpICsgREVWRUxPUEVSIn0=",
"email": "email@example.com",
"name": "VPP Account name",
"allowedAdmins": "Network",
"networkIdAdmins": "N_24329156",
"assignableNetworks": "Some",
"assignableNetworkIds": [
"N_24329156"
],
"vppLocationId": "22222222222",
"vppLocationName": "LocationName",
"lastSyncedAt": "2021-02-25T16:59:23Z",
"lastForceSyncedAt": "2021-02-25T16:59:23Z",
"parsedToken": {
"orgName": "My organization",
"hashedToken": "f572d396fae9206628714fb2ce00f72e94f2258f",
"expiresAt": "2023-10-21T12:09:45Z"
},
"id": "1284392014819",
"vppServiceToken": "eyJleHBEYXRlIjoiMzAyMy0xMC0yMVQxMjowOTo0NSswMDAwIiwidG9rZW4iOiIvVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlRPS0VOVE9LRU5UT0tFTlQiLCJvcmdOYW1lIjoiTWVyYWtpICsgREVWRUxPUEVSIn0="
}
}
}
},
"summary": "Get a hash containing the unparsed token of the VPP account with the given ID",
"tags": [
"sm",
"configure",
"vppAccounts"
]
}
},
"/organizations/{organizationId}/snmp": {
"get": {
"description": "Return the SNMP settings for an organization",
"operationId": "getOrganizationSnmp",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"v2cEnabled": {
"type": "boolean",
"description": "Boolean indicating whether SNMP version 2c is enabled for the organization."
},
"v2CommunityString": {
"type": "string",
"description": "The community string for SNMP version 2c, if enabled."
},
"v3Enabled": {
"type": "boolean",
"description": "Boolean indicating whether SNMP version 3 is enabled for the organization."
},
"v3User": {
"type": "string",
"description": "The user for SNMP version 3, if enabled."
},
"v3AuthMode": {
"type": "string",
"enum": [
"MD5",
"SHA"
],
"description": "The SNMP version 3 authentication mode. Can be either 'MD5' or 'SHA'."
},
"v3PrivMode": {
"type": "string",
"enum": [
"AES128",
"DES"
],
"description": "The SNMP version 3 privacy mode. Can be either 'DES' or 'AES128'."
},
"peerIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of IPv4 addresses that are allowed to access the SNMP server."
},
"hostname": {
"type": "string",
"description": "The hostname of the SNMP server."
},
"port": {
"type": "integer",
"description": "The port of the SNMP server."
}
}
},
"examples": {
"application/json": {
"v2cEnabled": false,
"v2CommunityString": "o/ABCDEF",
"v3Enabled": true,
"v3User": "o/ABCDEF",
"v3AuthMode": "SHA",
"v3PrivMode": "AES128",
"peerIps": [
"123.123.123.1"
],
"hostname": "snmp.meraki.com",
"port": 443
}
}
}
},
"summary": "Return the SNMP settings for an organization",
"tags": [
"organizations",
"configure",
"snmp"
]
},
"put": {
"description": "Update the SNMP settings for an organization",
"operationId": "updateOrganizationSnmp",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationSnmp",
"in": "body",
"schema": {
"type": "object",
"properties": {
"v2cEnabled": {
"type": "boolean",
"description": "Boolean indicating whether SNMP version 2c is enabled for the organization."
},
"v3Enabled": {
"type": "boolean",
"description": "Boolean indicating whether SNMP version 3 is enabled for the organization."
},
"v3AuthMode": {
"type": "string",
"enum": [
"MD5",
"SHA"
],
"description": "The SNMP version 3 authentication mode. Can be either 'MD5' or 'SHA'."
},
"v3AuthPass": {
"type": "string",
"description": "The SNMP version 3 authentication password. Must be at least 8 characters if specified."
},
"v3PrivMode": {
"type": "string",
"enum": [
"AES128",
"DES"
],
"description": "The SNMP version 3 privacy mode. Can be either 'DES' or 'AES128'."
},
"v3PrivPass": {
"type": "string",
"description": "The SNMP version 3 privacy password. Must be at least 8 characters if specified."
},
"peerIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of IPv4 addresses that are allowed to access the SNMP server."
}
},
"example": {
"v2cEnabled": false,
"v3Enabled": true,
"v3AuthMode": "SHA",
"v3AuthPass": "password",
"v3PrivMode": "AES128",
"v3PrivPass": "password",
"peerIps": [
"123.123.123.1"
]
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"v2cEnabled": {
"type": "boolean",
"description": "Boolean indicating whether SNMP version 2c is enabled for the organization."
},
"v2CommunityString": {
"type": "string",
"description": "The community string for SNMP version 2c, if enabled."
},
"v3Enabled": {
"type": "boolean",
"description": "Boolean indicating whether SNMP version 3 is enabled for the organization."
},
"v3User": {
"type": "string",
"description": "The user for SNMP version 3, if enabled."
},
"v3AuthMode": {
"type": "string",
"enum": [
"MD5",
"SHA"
],
"description": "The SNMP version 3 authentication mode. Can be either 'MD5' or 'SHA'."
},
"v3PrivMode": {
"type": "string",
"enum": [
"AES128",
"DES"
],
"description": "The SNMP version 3 privacy mode. Can be either 'DES' or 'AES128'."
},
"peerIps": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of IPv4 addresses that are allowed to access the SNMP server."
},
"hostname": {
"type": "string",
"description": "The hostname of the SNMP server."
},
"port": {
"type": "integer",
"description": "The port of the SNMP server."
}
}
},
"examples": {
"application/json": {
"v2cEnabled": false,
"v2CommunityString": "o/ABCDEF",
"v3Enabled": true,
"v3User": "o/ABCDEF",
"v3AuthMode": "SHA",
"v3PrivMode": "AES128",
"peerIps": [
"123.123.123.1"
],
"hostname": "snmp.meraki.com",
"port": 443
}
}
}
},
"summary": "Update the SNMP settings for an organization",
"tags": [
"organizations",
"configure",
"snmp"
]
}
},
"/organizations/{organizationId}/splash/assets/{id}": {
"get": {
"description": "Get a Splash Theme Asset",
"operationId": "getOrganizationSplashAsset",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Splash theme asset id"
},
"name": {
"type": "string",
"description": "Splash theme asset name"
},
"fileData": {
"type": "string",
"description": "Splash theme asset file date base64 encoded"
}
}
},
"examples": {
"application/json": {
"id": "1284392014819",
"name": "continue.html",
"fileData": "PGh0bWw+PC9odG1sPg==\n"
}
}
}
},
"summary": "Get a Splash Theme Asset",
"tags": [
"organizations",
"configure",
"splash",
"assets"
],
"x-release-stage": "beta"
},
"delete": {
"description": "Delete a Splash Theme Asset",
"operationId": "deleteOrganizationSplashAsset",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a Splash Theme Asset",
"tags": [
"organizations",
"configure",
"splash",
"assets"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/splash/themes": {
"get": {
"description": "List Splash Themes",
"operationId": "getOrganizationSplashThemes",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "theme id"
},
"name": {
"type": "string",
"description": "theme name"
},
"themeAssets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "asset id"
},
"name": {
"type": "string",
"description": "asset name"
}
}
},
"description": "list of theme assets"
}
}
}
},
"examples": {
"application/json": [
{
"id": "482367494044dbbb1d2cc8579d967cef5b4ce59f",
"name": "My Custom Splash Theme",
"themeAssets": [
{
"id": "1284392014819",
"name": "continue.html"
}
]
}
]
}
}
},
"summary": "List Splash Themes",
"tags": [
"organizations",
"configure",
"splash",
"themes"
],
"x-release-stage": "beta"
},
"post": {
"description": "Create a Splash Theme",
"operationId": "createOrganizationSplashTheme",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationSplashTheme",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "theme name"
},
"baseTheme": {
"type": "string",
"description": "base theme id "
}
},
"example": {
}
}
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "theme id"
},
"name": {
"type": "string",
"description": "theme name"
},
"themeAssets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "asset id"
},
"name": {
"type": "string",
"description": "asset name"
}
}
},
"description": "list of theme assets"
}
}
},
"examples": {
"application/json": {
"id": "482367494044dbbb1d2cc8579d967cef5b4ce59f",
"name": "My Custom Splash Theme",
"themeAssets": [
{
"id": "1284392014819",
"name": "continue.html"
}
]
}
}
}
},
"summary": "Create a Splash Theme",
"tags": [
"organizations",
"configure",
"splash",
"themes"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/splash/themes/{id}": {
"delete": {
"description": "Delete a Splash Theme",
"operationId": "deleteOrganizationSplashTheme",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete a Splash Theme",
"tags": [
"organizations",
"configure",
"splash",
"themes"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/splash/themes/{themeIdentifier}/assets": {
"post": {
"description": "Create a Splash Theme Asset",
"operationId": "createOrganizationSplashThemeAsset",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "themeIdentifier",
"in": "path",
"description": "Theme identifier",
"type": "string",
"required": true
},
{
"name": "createOrganizationSplashThemeAsset",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "File name. Will overwrite files with same name."
},
"content": {
"type": "string",
"format": "byte",
"description": "a file containing the asset content"
}
},
"example": {
}
}
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Splash theme asset id"
},
"name": {
"type": "string",
"description": "Splash theme asset name"
},
"fileData": {
"type": "string",
"description": "Splash theme asset file date base64 encoded"
}
}
},
"examples": {
"application/json": {
"id": "1284392014819",
"name": "continue.html",
"fileData": "PGh0bWw+PC9odG1sPg==\n"
}
}
}
},
"summary": "Create a Splash Theme Asset",
"tags": [
"organizations",
"configure",
"splash",
"themes",
"assets"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/summary/switch/power/history": {
"get": {
"description": "Returns the total PoE power draw for all switch ports in the organization over the requested timespan (by default the last 24 hours). The returned array is a newest-first list of intervals. The time between intervals depends on the requested timespan with 20 minute intervals used for timespans up to 1 day, 4 hour intervals used for timespans up to 2 weeks, and 1 day intervals for timespans larger than 2 weeks.",
"operationId": "getOrganizationSummarySwitchPowerHistory",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ts": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the start of the interval."
},
"draw": {
"type": "number",
"format": "float",
"description": "The PoE power draw in watts for all switch ports in the organization for the given interval."
}
}
}
},
"examples": {
"application/json": [
{
"ts": "2021-06-20T01:00:00.000Z",
"draw": 5.4321
}
]
}
}
},
"summary": "Returns the total PoE power draw for all switch ports in the organization over the requested timespan (by default the last 24 hours)",
"tags": [
"switch",
"monitor",
"summary",
"power",
"history"
]
}
},
"/organizations/{organizationId}/summary/top/appliances/byUtilization": {
"get": {
"description": "Return the top 10 appliances sorted by utilization over given time range.",
"operationId": "getOrganizationSummaryTopAppliancesByUtilization",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data."
},
{
"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."
},
{
"type": "number",
"format": "float",
"minimum": 1500,
"maximum": 2678400,
"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 greater than or equal to 25 minutes and be less than or equal to 31 days. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"network": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Network name"
},
"id": {
"type": "string",
"description": "Network id"
}
},
"description": "Network info"
},
"name": {
"type": "string",
"description": "Name of the appliance"
},
"mac": {
"type": "string",
"description": "Mac address of the appliance"
},
"serial": {
"type": "string",
"description": "Serial number of the appliance"
},
"model": {
"type": "string",
"description": "Model of the appliance"
},
"utilization": {
"type": "object",
"properties": {
"average": {
"type": "object",
"properties": {
"percentage": {
"type": "number",
"format": "float",
"description": "Average percentage utilization of the appliance"
}
},
"description": "Average utilization of the appliance"
}
},
"description": "Utilization of the appliance"
}
}
}
},
"examples": {
"application/json": [
{
"network": {
"name": "Main Office",
"id": "N_24329156"
},
"name": "My appliance",
"mac": "00:11:22:33:44:55",
"serial": "Q234-ABCD-5678",
"model": "MX",
"utilization": {
"average": {
"percentage": 7.3
}
}
}
]
}
}
},
"summary": "Return the top 10 appliances sorted by utilization over given time range.",
"tags": [
"organizations",
"monitor",
"summary",
"top",
"appliances",
"byUtilization"
]
}
},
"/organizations/{organizationId}/summary/top/clients/byUsage": {
"get": {
"description": "Return metrics for organization's top 10 clients by data usage (in mb) over given time range.",
"operationId": "getOrganizationSummaryTopClientsByUsage",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data."
},
{
"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."
},
{
"type": "number",
"format": "float",
"minimum": 28800,
"maximum": 2678400,
"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 greater than or equal to 8 hours and be less than or equal to 31 days. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of client"
},
"mac": {
"type": "string",
"description": "MAC address of client"
},
"id": {
"type": "string",
"description": "ID of client"
},
"network": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of network"
},
"id": {
"type": "string",
"description": "ID of network"
}
},
"description": ""
},
"usage": {
"type": "object",
"properties": {
"total": {
"type": "number",
"format": "float",
"description": "Total data usage by client"
},
"upstream": {
"type": "number",
"format": "float",
"description": "Upstream data usage by client"
},
"downstream": {
"type": "number",
"format": "float",
"description": "Downstream data usage by client"
},
"percentage": {
"type": "number",
"format": "float",
"description": "Percentage of total data usage by client"
}
},
"description": "Data usage information"
}
}
}
},
"examples": {
"application/json": [
{
"name": "Office Switch",
"mac": "22:33:44:55:66:77",
"id": "k74272e",
"network": {
"name": "Main Office",
"id": "N_24329156"
},
"usage": {
"total": 18000.0,
"upstream": 8000.0,
"downstream": 10000.0,
"percentage": 80.2
}
}
]
}
}
},
"summary": "Return metrics for organization's top 10 clients by data usage (in mb) over given time range.",
"tags": [
"organizations",
"monitor",
"summary",
"top",
"clients",
"byUsage"
]
}
},
"/organizations/{organizationId}/summary/top/clients/manufacturers/byUsage": {
"get": {
"description": "Return metrics for organization's top clients by data usage (in mb) over given time range, grouped by manufacturer.",
"operationId": "getOrganizationSummaryTopClientsManufacturersByUsage",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the manufacturer"
},
"clients": {
"type": "object",
"properties": {
"counts": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "Total counts of clients"
}
},
"description": "Counts of clients"
}
},
"description": "Clients info"
},
"usage": {
"type": "object",
"properties": {
"total": {
"type": "number",
"format": "float",
"description": "Total data usage by client"
},
"upstream": {
"type": "number",
"format": "float",
"description": "Upstream data usage by client"
},
"downstream": {
"type": "number",
"format": "float",
"description": "Downstream data usage by client"
}
},
"description": "Clients usage"
}
}
}
},
"examples": {
"application/json": [
{
"name": "Manufacturer Name",
"clients": {
"counts": {
"total": 3
}
},
"usage": {
"total": 9000.0,
"upstream": 1000.0,
"downstream": 8000.0
}
}
]
}
}
},
"summary": "Return metrics for organization's top clients by data usage (in mb) over given time range, grouped by manufacturer.",
"tags": [
"organizations",
"monitor",
"summary",
"top",
"clients",
"manufacturers",
"byUsage"
]
}
},
"/organizations/{organizationId}/summary/top/devices/byUsage": {
"get": {
"description": "Return metrics for organization's top 10 devices sorted by data usage over given time range. Default unit is megabytes.",
"operationId": "getOrganizationSummaryTopDevicesByUsage",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data."
},
{
"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."
},
{
"type": "number",
"format": "float",
"minimum": 28800,
"maximum": 2678400,
"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 greater than or equal to 8 hours and be less than or equal to 31 days. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the device"
},
"model": {
"type": "string",
"description": "Model of the device"
},
"serial": {
"type": "string",
"description": "Serial number of the device"
},
"mac": {
"type": "string",
"description": "Mac address of the device"
},
"productType": {
"type": "string",
"description": "Product type of the device"
},
"network": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Network name"
},
"id": {
"type": "string",
"description": "Network id"
}
},
"description": "Network info"
},
"usage": {
"type": "object",
"properties": {
"total": {
"type": "number",
"format": "float",
"description": "Total data usage of the device"
},
"percentage": {
"type": "number",
"format": "float",
"description": "Data usage of the device by percentage"
}
},
"description": "Data usage of the device"
},
"clients": {
"type": "object",
"properties": {
"counts": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "Total counts of clients"
}
},
"description": "Counts of clients"
}
},
"description": "Clients"
}
}
}
},
"examples": {
"application/json": [
{
"name": "My AP",
"model": "MR34",
"serial": "Q234-ABCD-5678",
"mac": "00:11:22:33:44:55",
"productType": "switch",
"network": {
"name": "Main Office",
"id": "N_24329156"
},
"usage": {
"total": 18000.111,
"percentage": 80.223456789
},
"clients": {
"counts": {
"total": 4
}
}
}
]
}
}
},
"summary": "Return metrics for organization's top 10 devices sorted by data usage over given time range",
"tags": [
"organizations",
"monitor",
"summary",
"top",
"devices",
"byUsage"
]
}
},
"/organizations/{organizationId}/summary/top/devices/models/byUsage": {
"get": {
"description": "Return metrics for organization's top 10 device models sorted by data usage over given time range. Default unit is megabytes.",
"operationId": "getOrganizationSummaryTopDevicesModelsByUsage",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data."
},
{
"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."
},
{
"type": "number",
"format": "float",
"minimum": 28800,
"maximum": 2678400,
"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 greater than or equal to 8 hours and be less than or equal to 31 days. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"model": {
"type": "string",
"description": "The device model"
},
"count": {
"type": "integer",
"description": "Total number of devices per model"
},
"usage": {
"type": "object",
"properties": {
"total": {
"type": "number",
"format": "float",
"description": "Total usage in megabytes"
},
"average": {
"type": "number",
"format": "float",
"description": "Average usage in megabytes"
}
},
"description": "Usage info in megabytes"
}
}
}
},
"examples": {
"application/json": [
{
"model": "MR34",
"count": 2,
"usage": {
"total": 2000.0,
"average": 1000.0
}
}
]
}
}
},
"summary": "Return metrics for organization's top 10 device models sorted by data usage over given time range",
"tags": [
"organizations",
"monitor",
"summary",
"top",
"devices",
"models",
"byUsage"
]
}
},
"/organizations/{organizationId}/summary/top/networks/byStatus": {
"get": {
"description": "List the client and status overview information for the networks in an organization. Usage is measured in kilobytes and from the last seven days.",
"operationId": "getOrganizationSummaryTopNetworksByStatus",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 5000."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "Network identifier"
},
"name": {
"type": "string",
"description": "Network name"
},
"url": {
"type": "string",
"description": "Network clients list URL"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Network tags"
},
"clients": {
"type": "object",
"properties": {
"counts": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "Total count of clients in network"
}
},
"description": "Network client counts"
},
"usage": {
"type": "object",
"properties": {
"upstream": {
"type": "number",
"format": "float",
"description": "Total upstream usage in network, in KB"
},
"downstream": {
"type": "number",
"format": "float",
"description": "Total downstream usage in network, in KB"
}
},
"description": "Network client usage data"
}
},
"description": "Network clients data"
},
"statuses": {
"type": "object",
"properties": {
"overall": {
"type": "string",
"description": "Overall status of network"
},
"byProductType": {
"type": "array",
"items": {
"type": "object",
"properties": {
"productType": {
"type": "string",
"description": "Product type"
},
"counts": {
"type": "object",
"properties": {
"online": {
"type": "integer",
"description": "Count of online devices"
},
"offline": {
"type": "integer",
"description": "Count of offline devices"
},
"alerting": {
"type": "integer",
"description": "Count of alerting devices"
},
"dormant": {
"type": "integer",
"description": "Count of dormant devices"
}
},
"description": "Counts of devices by status"
}
}
},
"description": "List of status counts by product type"
}
},
"description": "Network device statuses"
},
"devices": {
"type": "object",
"properties": {
"byProductType": {
"type": "array",
"items": {
"type": "object",
"properties": {
"productType": {
"type": "string",
"description": "Product type"
},
"url": {
"type": "string",
"description": "URL to clients list for the relevant product type"
}
}
},
"description": "URLs by product type"
}
},
"description": "Network device information"
},
"productTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Product types in network"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"networkId": "N_24329156",
"name": "Main Office",
"url": "https://n1.meraki.com//n//manage/nodes/list",
"tags": [
"tag1",
"tag2"
],
"clients": {
"counts": {
"total": 72
},
"usage": {
"upstream": 3732658.44,
"downstream": 983732658.87
}
},
"statuses": {
"overall": "online",
"byProductType": [
{
"productType": "wireless",
"counts": {
"online": 2,
"offline": 1,
"alerting": 0,
"dormant": 3
}
}
]
},
"devices": {
"byProductType": [
{
"productType": "wireless",
"url": "https://n1.meraki.com//n//manage/nodes/new_list/000000000000"
}
]
},
"productTypes": [
"appliance",
"switch",
"wireless"
]
}
]
}
}
},
"summary": "List the client and status overview information for the networks in an organization",
"tags": [
"organizations",
"monitor",
"summary",
"top",
"networks",
"byStatus"
]
}
},
"/organizations/{organizationId}/summary/top/ssids/byUsage": {
"get": {
"description": "Return metrics for organization's top 10 ssids by data usage over given time range. Default unit is megabytes.",
"operationId": "getOrganizationSummaryTopSsidsByUsage",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data."
},
{
"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."
},
{
"type": "number",
"format": "float",
"minimum": 28800,
"maximum": 2678400,
"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 greater than or equal to 8 hours and be less than or equal to 31 days. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the SSID"
},
"usage": {
"type": "object",
"properties": {
"total": {
"type": "number",
"format": "float",
"description": "Total usage of the SSID"
},
"downstream": {
"type": "number",
"format": "float",
"description": "Downstream usage of the SSID"
},
"upstream": {
"type": "number",
"format": "float",
"description": "Upstream usage of the SSID"
},
"percentage": {
"type": "number",
"format": "float",
"description": "Percentage usage of the SSID"
}
},
"description": "Date usage of the SSID, in megabytes"
},
"clients": {
"type": "object",
"properties": {
"counts": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "Total counts of the clients"
}
},
"description": "Counts of the clients"
}
},
"description": "Clients info of the SSID"
}
}
}
},
"examples": {
"application/json": [
{
"name": "My SSID",
"usage": {
"total": 18000.0,
"downstream": 10000.0,
"upstream": 8000.0,
"percentage": 80.223456789
},
"clients": {
"counts": {
"total": 4
}
}
}
]
}
}
},
"summary": "Return metrics for organization's top 10 ssids by data usage over given time range",
"tags": [
"organizations",
"monitor",
"summary",
"top",
"ssids",
"byUsage"
]
}
},
"/organizations/{organizationId}/summary/top/switches/byEnergyUsage": {
"get": {
"description": "Return metrics for organization's top 10 switches by energy usage over given time range. Default unit is joules.",
"operationId": "getOrganizationSummaryTopSwitchesByEnergyUsage",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data."
},
{
"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."
},
{
"type": "number",
"format": "float",
"minimum": 1500,
"maximum": 2678400,
"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 greater than or equal to 25 minutes and be less than or equal to 31 days. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"network": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Network name"
},
"id": {
"type": "string",
"description": "Network id"
}
},
"description": "Network info"
},
"name": {
"type": "string",
"description": "Name of the switch"
},
"mac": {
"type": "string",
"description": "Mac address of the switch"
},
"model": {
"type": "string",
"description": "Model of the switch"
},
"usage": {
"type": "object",
"properties": {
"total": {
"type": "number",
"format": "float",
"description": "Total energy usage of the switch"
}
},
"description": "Energy usage of the switch"
}
}
}
},
"examples": {
"application/json": [
{
"network": {
"name": "Main Office",
"id": "N_24329156"
},
"name": "My switch",
"mac": "00:11:22:33:44:55",
"model": "MS",
"usage": {
"total": 800.021
}
}
]
}
}
},
"summary": "Return metrics for organization's top 10 switches by energy usage over given time range",
"tags": [
"organizations",
"monitor",
"summary",
"top",
"switches",
"byEnergyUsage"
]
}
},
"/organizations/{organizationId}/support/salesRepresentatives": {
"get": {
"description": "Returns the organization's sales representatives",
"operationId": "getOrganizationSupportSalesRepresentatives",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name"
},
"email": {
"type": "string",
"description": "Email"
},
"phone": {
"type": "string",
"description": "Phone number"
}
}
}
},
"examples": {
"application/json": [
{
"name": "Miles Meraki",
"email": "miles@meraki.com",
"phone": "+15555555555"
}
]
}
}
},
"summary": "Returns the organization's sales representatives",
"tags": [
"organizations",
"monitor",
"support",
"salesRepresentatives"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/switch/devices/clone": {
"post": {
"description": "Clone port-level and some switch-level configuration settings from a source switch to one or more target switches. Cloned settings include: Aggregation Groups, Power Settings, Multicast Settings, MTU Configuration, STP Bridge priority, Port Mirroring",
"operationId": "cloneOrganizationSwitchDevices",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "cloneOrganizationSwitchDevices",
"in": "body",
"schema": {
"type": "object",
"properties": {
"sourceSerial": {
"type": "string",
"description": "Serial number of the source switch (must be on a network not bound to a template)"
},
"targetSerials": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of serial numbers of one or more target switches (must be on a network not bound to a template)"
}
},
"example": {
"sourceSerial": "Q234-ABCD-5678",
"targetSerials": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
]
},
"required": [
"sourceSerial",
"targetSerials"
]
},
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"sourceSerial": {
"type": "string",
"description": "Serial number of the source switch (must be on a network not bound to a template)"
},
"targetSerials": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of serial numbers of one or more target switches (must be on a network not bound to a template)"
}
}
},
"examples": {
"application/json": {
"sourceSerial": "Q234-ABCD-5678",
"targetSerials": [
"Q234-ABCD-0001",
"Q234-ABCD-0002",
"Q234-ABCD-0003"
]
}
}
}
},
"summary": "Clone port-level and some switch-level configuration settings from a source switch to one or more target switches",
"tags": [
"switch",
"configure",
"devices"
]
}
},
"/organizations/{organizationId}/switch/ports/bySwitch": {
"get": {
"description": "List the switchports in an organization by switch",
"operationId": "getOrganizationSwitchPortsBySwitch",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 50. Default is 50."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "boolean",
"x-release-stage": "beta",
"name": "extendedParams",
"in": "query",
"description": "Optional flag to return all of the switchport data vs smaller dataset"
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Optional parameter to filter switchports by network."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "portProfileIds",
"in": "query",
"description": "Optional parameter to filter switchports belonging to the specified port profiles."
},
{
"type": "string",
"name": "name",
"in": "query",
"description": "Optional parameter to filter switchports belonging to switches by name. All returned switches will have a name that contains the search term or is an exact match."
},
{
"type": "string",
"name": "mac",
"in": "query",
"description": "Optional parameter to filter switchports belonging to switches by MAC address. All returned switches will have a MAC address that contains the search term or is an exact match."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "macs",
"in": "query",
"description": "Optional parameter to filter switchports by one or more MAC addresses belonging to devices. All switchports returned belong to MAC addresses of switches that are an exact match."
},
{
"type": "string",
"name": "serial",
"in": "query",
"description": "Optional parameter to filter switchports belonging to switches by serial number. All returned switches will have a serial number that contains the search term or is an exact match."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Optional parameter to filter switchports belonging to switches with one or more serial numbers. All switchports returned belong to serial numbers of switches that are an exact match."
},
{
"type": "string",
"name": "configurationUpdatedAfter",
"in": "query",
"description": "Optional parameter to filter results by switches where the configuration has been updated after the given timestamp."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the switch."
},
"serial": {
"type": "string",
"description": "The serial number of the switch."
},
"mac": {
"type": "string",
"description": "The MAC address of the switch."
},
"network": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the network."
},
"id": {
"type": "string",
"description": "The ID of the network."
}
},
"description": "Identifying information of the switch's network."
},
"model": {
"type": "string",
"description": "The model of the switch."
},
"ports": {
"type": "array",
"items": {
"type": "object",
"properties": {
"portId": {
"type": "string",
"description": "The identifier of the switch port."
},
"name": {
"type": "string",
"description": "The name of the switch port."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of tags of the switch port."
},
"enabled": {
"type": "boolean",
"description": "The status of the switch port."
},
"poeEnabled": {
"type": "boolean",
"description": "The PoE status of the switch port."
},
"type": {
"type": "string",
"enum": [
"access",
"stack",
"trunk"
],
"description": "The type of the switch port ('trunk', 'access' or 'stack')."
},
"vlan": {
"type": "integer",
"description": "The VLAN of the switch port. For a trunk port, this is the native VLAN. A null value will clear the value set for trunk ports."
},
"voiceVlan": {
"type": "integer",
"description": "The voice VLAN of the switch port. Only applicable to access ports."
},
"allowedVlans": {
"type": "string",
"description": "The VLANs allowed on the switch port. Only applicable to trunk ports."
},
"rstpEnabled": {
"type": "boolean",
"description": "The rapid spanning tree protocol status."
},
"stpGuard": {
"type": "string",
"enum": [
"bpdu guard",
"disabled",
"loop guard",
"root guard"
],
"description": "The state of the STP guard ('disabled', 'root guard', 'bpdu guard' or 'loop guard')."
},
"linkNegotiation": {
"type": "string",
"description": "The link speed for the switch port."
},
"accessPolicyType": {
"type": "string",
"enum": [
"Custom access policy",
"MAC allow list",
"Open",
"Sticky MAC allow list"
],
"description": "The type of the access policy of the switch port. Only applicable to access ports. Can be one of 'Open', 'Custom access policy', 'MAC allow list' or 'Sticky MAC allow list'."
},
"stickyMacAllowList": {
"type": "array",
"items": {
"type": "string"
},
"description": "The initial list of MAC addresses for sticky Mac allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
},
"stickyMacAllowListLimit": {
"type": "integer",
"description": "The maximum number of MAC addresses for sticky MAC allow list. Only applicable when 'accessPolicyType' is 'Sticky MAC allow list'."
}
}
},
"description": "Ports belonging to the switch"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"name": "Example Switch",
"serial": "Q555-5555-5555",
"mac": "01:23:45:67",
"network": {
"name": "Example Network",
"id": "N_12345"
},
"model": "MS120-8",
"ports": [
{
"portId": "1",
"name": "My switch port",
"tags": [
"tag1",
"tag2"
],
"enabled": true,
"poeEnabled": true,
"type": "access",
"vlan": 10,
"voiceVlan": 20,
"allowedVlans": "1,3,5-10",
"rstpEnabled": true,
"stpGuard": "disabled",
"linkNegotiation": "Auto negotiate",
"accessPolicyType": "Sticky MAC allow list",
"stickyMacAllowList": [
"34:56:fe:ce:8e:b0",
"34:56:fe:ce:8e:b1"
],
"stickyMacAllowListLimit": 5
}
]
}
]
}
}
},
"summary": "List the switchports in an organization by switch",
"tags": [
"switch",
"configure",
"ports",
"bySwitch"
]
}
},
"/organizations/{organizationId}/switch/ports/connectivity/history/byDevice": {
"get": {
"description": "Return all connectivity events for each switch port in the given organization, within a given time range.",
"operationId": "getOrganizationSwitchPortsConnectivityHistoryByDevice",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 100. Default is 50."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Optional parameter to filter connectivity history by network ID. This filter uses multiple exact matches."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Optional parameter to filter connectivity history by switch."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "Unique serial number for switch"
},
"ports": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique id for the port"
},
"events": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startTs": {
"type": "string",
"format": "date-time",
"description": "Timestamp at which the port connectivity status changed to the status described."
},
"endTs": {
"type": "string",
"format": "date-time",
"description": "Timestamp at which the port connectivity status changed from the status described."
},
"status": {
"type": "string",
"enum": [
"Disconnected",
"Error",
"Optimal speed and connectivity",
"Speed below 100 Mbps",
"Warning"
],
"description": "The port connectivity status during the period of time between start_ts and end_ts."
}
}
},
"description": "The connectivity events for an individual port, with the most recent snapshot first"
}
}
},
"description": "The ports associated with the given switch"
},
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The network ID"
},
"name": {
"type": "string",
"description": "The name of the network"
}
},
"description": "Information regarding the network the switch belongs to"
}
}
},
"description": "The top-level property containing all connectivity data."
},
"meta": {
"type": "object",
"properties": {
"counts": {
"type": "object",
"properties": {
"items": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "The total number of serials."
},
"remaining": {
"type": "integer",
"description": "The number of serials remaining based on current pagination location within the dataset."
}
},
"description": "The count metadata."
}
},
"description": "Count metadata related to this result set."
}
},
"description": "Other metadata related to this result set."
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": {
"items": [
{
"serial": "Q234-ABCD-0001",
"ports": [
{
"id": "123_1",
"events": [
{
"startTs": "2018-02-11T00:00:00.090210Z",
"endTs": "2018-02-11T00:00:00.090210Z",
"status": "Optimal speed and connectivity"
}
]
}
],
"network": {
"id": "N_12345678",
"name": "San Francisco Office"
}
}
],
"meta": {
"counts": {
"items": {
"total": 4,
"remaining": 2
}
}
}
}
}
}
},
"summary": "Return all connectivity events for each switch port in the given organization, within a given time range.",
"tags": [
"switch",
"monitor",
"ports",
"connectivity",
"history",
"byDevice"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/switch/ports/overview": {
"get": {
"description": "Returns the counts of all active ports for the requested timespan, grouped by speed. An active port is a port that at any point during the timeframe is observed to be connected to a responsive device and isn't configured to be disabled. For a port that is observed at multiple speeds during the timeframe, it will be counted at the highest speed observed. The number of inactive ports, and the total number of ports are also provided. Only ports on switches online during the timeframe will be represented and a port is only guaranteed to be present if its switch was online for at least 6 hours of the timeframe.",
"operationId": "getOrganizationSwitchPortsOverview",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data."
},
{
"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."
},
{
"type": "number",
"format": "float",
"minimum": 43200,
"maximum": 2678400,
"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 greater than or equal to 12 hours and be less than or equal to 31 days. The default is 1 day."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"counts": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "The total number of ports"
},
"byStatus": {
"type": "object",
"properties": {
"active": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "The total number of active ports"
},
"byMediaAndLinkSpeed": {
"type": "object",
"properties": {
"rj45": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "The total number of active RJ45 ports"
},
"10": {
"type": "integer",
"description": "The number of active 10 Mbps RJ45 ports"
},
"100": {
"type": "integer",
"description": "The number of active 100 Mbps RJ45 ports"
},
"1000": {
"type": "integer",
"description": "The number of active 1 Gbps RJ45 ports"
},
"2500": {
"type": "integer",
"description": "The number of active 2 Gbps RJ45 ports"
},
"5000": {
"type": "integer",
"description": "The number of active 5 Gbps RJ45 ports"
},
"10000": {
"type": "integer",
"description": "The number of active 10 Gbps RJ45 ports"
}
},
"description": "The count data for RJ45 ports, indexed by speed in Mb"
},
"sfp": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "The total number of active SFP ports"
},
"100": {
"type": "integer",
"description": "The number of active 100 Mbps SFP ports"
},
"1000": {
"type": "integer",
"description": "The number of active 1 Gbps SFP ports"
},
"10000": {
"type": "integer",
"description": "The number of active 10 Gbps SFP ports"
},
"20000": {
"type": "integer",
"description": "The number of active 20 Gbps SFP ports"
},
"25000": {
"type": "integer",
"description": "The number of active 25 Gbps SFP ports"
},
"40000": {
"type": "integer",
"description": "The number of active 40 Gbps SFP ports"
},
"50000": {
"type": "integer",
"description": "The number of active 50 Gbps SFP ports"
},
"100000": {
"type": "integer",
"description": "The number of active 100 Gbps SFP ports"
}
},
"description": "The count data for SFP ports, indexed by speed in Mb"
}
},
"description": "The active count data, indexed by media type (RJ45 or SFP)"
}
},
"description": "The count data for active ports"
},
"inactive": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "The total number of inactive ports"
},
"byMedia": {
"type": "object",
"properties": {
"rj45": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "The total number of inactive RJ45 ports"
}
},
"description": "The count data for inactive RJ45 ports"
},
"sfp": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "The total number of inactive SFP ports"
}
},
"description": "The count data for inactive SFP ports"
}
},
"description": "The inactive count data, indexed by media type (RJ45 or SFP)"
}
},
"description": "The count data for inactive ports"
}
},
"description": "The count data, indexed by active or inactive status"
}
},
"description": "The count data of all ports"
}
}
},
"examples": {
"application/json": {
"counts": {
"total": 120,
"byStatus": {
"active": {
"total": 87,
"byMediaAndLinkSpeed": {
"rj45": {
"total": 24,
"10": 0,
"100": 0,
"1000": 24,
"2500": 0,
"5000": 0,
"10000": 0
},
"sfp": {
"total": 63,
"100": 8,
"1000": 40,
"10000": 10,
"20000": 0,
"25000": 0,
"40000": 1,
"50000": 0,
"100000": 0
}
}
},
"inactive": {
"total": 33,
"byMedia": {
"rj45": {
"total": 16
},
"sfp": {
"total": 17
}
}
}
}
}
}
}
}
},
"summary": "Returns the counts of all active ports for the requested timespan, grouped by speed",
"tags": [
"switch",
"monitor",
"ports",
"overview"
]
}
},
"/organizations/{organizationId}/switch/ports/statuses/bySwitch": {
"get": {
"description": "List the switchports in an organization",
"operationId": "getOrganizationSwitchPortsStatusesBySwitch",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameter t0. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 50. Default is 50."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Optional parameter to filter switchports by network."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "portProfileIds",
"in": "query",
"description": "Optional parameter to filter switchports belonging to the specified port profiles."
},
{
"type": "string",
"name": "name",
"in": "query",
"description": "Optional parameter to filter switchports belonging to switches by name. All returned switches will have a name that contains the search term or is an exact match."
},
{
"type": "string",
"name": "mac",
"in": "query",
"description": "Optional parameter to filter switchports belonging to switches by MAC address. All returned switches will have a MAC address that contains the search term or is an exact match."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "macs",
"in": "query",
"description": "Optional parameter to filter switchports by one or more MAC addresses belonging to devices. All switchports returned belong to MAC addresses of switches that are an exact match."
},
{
"type": "string",
"name": "serial",
"in": "query",
"description": "Optional parameter to filter switchports belonging to switches by serial number. All returned switches will have a serial number that contains the search term or is an exact match."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Optional parameter to filter switchports belonging to switches with one or more serial numbers. All switchports returned belong to serial numbers of switches that are an exact match."
},
{
"type": "string",
"name": "configurationUpdatedAfter",
"in": "query",
"description": "Optional parameter to filter results by switches where the configuration has been updated after the given timestamp."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the switch."
},
"serial": {
"type": "string",
"description": "The serial number of the switch."
},
"mac": {
"type": "string",
"description": "The MAC address of the switch."
},
"network": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the network."
},
"id": {
"type": "string",
"description": "The ID of the network."
}
},
"description": "Identifying information of the switch's network."
},
"model": {
"type": "string",
"description": "The model of the switch."
},
"ports": {
"type": "array",
"items": {
"type": "object",
"properties": {
"portId": {
"type": "string",
"description": "The string identifier of this port on the switch. This is commonly just the port number but may contain additional identifying information such as the slot and module-type if the port is located on a port module."
},
"enabled": {
"type": "boolean",
"description": "Whether the port is configured to be enabled."
},
"status": {
"type": "string",
"enum": [
"Connected",
"Disabled",
"Disconnected"
],
"description": "The current connection status of the port."
},
"spanningTree": {
"type": "object",
"properties": {
"statuses": {
"type": "array",
"items": {
"type": "string"
},
"description": "The current Spanning Tree Protocol statuses of the port."
}
},
"description": "The Spanning Tree Protocol (STP) information of the connected device."
},
"isUplink": {
"type": "boolean",
"description": "Whether the port is the switch's uplink."
},
"errors": {
"type": "array",
"items": {
"type": "string"
},
"description": "All errors present on the port."
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "All warnings present on the port."
},
"speed": {
"type": "string",
"enum": [
"",
"1 Gbps",
"10 Gbps",
"10 Mbps",
"100 Gbps",
"100 Mbps",
"2.5 Gbps",
"20 Gbps",
"40 Gbps",
"5 Gbps"
],
"description": "The current data transfer rate which the port is operating at."
},
"duplex": {
"type": "string",
"enum": [
"",
"full",
"half"
],
"description": "The current duplex of a connected port."
},
"usageInKb": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "The total amount of data sent and received (in kilobytes)."
},
"sent": {
"type": "integer",
"description": "The amount of data sent (in kilobytes)."
},
"recv": {
"type": "integer",
"description": "The amount of data received (in kilobytes)."
}
},
"description": "A breakdown of how many kilobytes have passed through this port during the timespan."
},
"cdp": {
"type": "object",
"properties": {
"systemName": {
"type": "string",
"description": "The system name."
},
"platform": {
"type": "string",
"description": "Identifies the hardware platform of the device."
},
"deviceId": {
"type": "string",
"description": "Identifies the device name."
},
"portId": {
"type": "string",
"description": "Identifies the port from which the CDP packet was sent."
},
"nativeVlan": {
"type": "integer",
"description": "Indicates, per interface, the assumed VLAN for untagged packets on the interface."
},
"address": {
"type": "string",
"description": "Contains network addresses of both receiving and sending devices."
},
"managementAddress": {
"type": "string",
"description": "The device's management IP."
},
"version": {
"type": "string",
"description": "Contains the device software release information."
},
"vtpManagementDomain": {
"type": "string",
"description": "Advertises the configured VLAN Trunking Protocl (VTP)-management-domain name of the system."
},
"capabilities": {
"type": "string",
"description": "Identifies the device type, which indicates the functional capabilities of the device."
}
},
"description": "The Cisco Discovery Protocol (CDP) information of the connected device."
},
"lldp": {
"type": "object",
"properties": {
"systemName": {
"type": "string",
"description": "The device's system name."
},
"systemDescription": {
"type": "string",
"description": "The device's system description."
},
"chassisId": {
"type": "string",
"description": "The device's chassis ID."
},
"portId": {
"type": "string",
"description": "Identifies the port from which the LLDP packet was sent"
},
"managementVlan": {
"type": "integer",
"description": "The device's management VLAN."
},
"portVlan": {
"type": "integer",
"description": "The port's VLAN."
},
"managementAddress": {
"type": "string",
"description": "The device's management IP."
},
"portDescription": {
"type": "string",
"description": "Description of the port from which the LLDP packet was sent."
},
"systemCapabilities": {
"type": "string",
"description": "Identifies the device type, which indicates the functional capabilities of the device."
}
},
"description": "The Link Layer Discovery Protocol (LLDP) information of the connected device."
},
"clientCount": {
"type": "integer",
"description": "The number of clients connected through this port."
},
"powerUsageInWh": {
"type": "number",
"format": "float",
"description": "How much power (in watt-hours) has been delivered by this port during the timespan."
},
"trafficInKbps": {
"type": "object",
"properties": {
"total": {
"type": "number",
"format": "float",
"description": "The average speed of the data sent and received (in kilobits-per-second)."
},
"sent": {
"type": "number",
"format": "float",
"description": "The average speed of the data sent (in kilobits-per-second)."
},
"recv": {
"type": "number",
"format": "float",
"description": "The average speed of the data received (in kilobits-per-second)."
}
},
"description": "A breakdown of the average speed of data that has passed through this port during the timespan."
},
"securePort": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether Secure Port is turned on for this port."
},
"active": {
"type": "boolean",
"description": "Whether Secure Port is currently active for this port."
},
"authenticationStatus": {
"type": "string",
"enum": [
"Authentication failure",
"Authentication in progress",
"Authentication successful",
"Authentication timed out",
"Disabled",
"Enabled"
],
"description": "The current Secure Port status."
},
"configOverrides": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"access",
"stack",
"trunk"
],
"description": "The type of the ('trunk', 'access' or 'stack')."
},
"vlan": {
"type": "integer",
"description": "The VLAN of the . For a trunk port, this is the native VLAN. A null value will clear the value set for trunk ports."
},
"voiceVlan": {
"type": "integer",
"description": "The voice VLAN of the . Only applicable to access ports."
},
"allowedVlans": {
"type": "string",
"description": "The VLANs allowed on the . Only applicable to trunk ports."
}
},
"description": "The configuration overrides applied to this port when Secure Port is active."
}
},
"description": "The Secure Port status of the port."
},
"poe": {
"type": "object",
"properties": {
"isAllocated": {
"type": "boolean",
"description": "Whether the port is drawing power"
}
},
"description": "PoE status of the port."
}
}
},
"description": "The statuses of the ports on the switch."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"name": "Example Switch",
"serial": "Q555-5555-5555",
"mac": "01:23:45:67",
"network": {
"name": "Example Network",
"id": "N_12345"
},
"model": "MS120-8",
"ports": [
{
"portId": "1",
"enabled": true,
"status": "Connected",
"spanningTree": {
"statuses": [
"Learning"
]
},
"isUplink": false,
"errors": [
"PoE overload",
"Very high proportion of CRC errors"
],
"warnings": [
"SecurePort authentication in progress",
"PoE port was denied power",
"High proportion of CRC errors"
],
"speed": "10 Gbps",
"duplex": "full",
"usageInKb": {
"total": 40867,
"sent": 23008,
"recv": 17859
},
"cdp": {
"systemName": "",
"platform": "MS350-24X",
"deviceId": "0c8ddbddee:ff",
"portId": "Port 20",
"nativeVlan": 1,
"address": "10.0,0.1",
"managementAddress": "10.0.0.100",
"version": "1",
"vtpManagementDomain": "",
"capabilities": "Switch"
},
"lldp": {
"systemName": "MS350-24X - Test",
"systemDescription": "MS350-24X Cloud Managed PoE Switch",
"chassisId": "0c:8d:db:dd:ee:ff",
"portId": "20",
"managementVlan": 1,
"portVlan": 1,
"managementAddress": "10.0.0.100",
"portDescription": "Port 20",
"systemCapabilities": "switch"
},
"clientCount": 10,
"powerUsageInWh": 55.9,
"trafficInKbps": {
"total": 2.2,
"sent": 1.2,
"recv": 1.0
},
"securePort": {
"enabled": true,
"active": true,
"authenticationStatus": "Authentication in progress",
"configOverrides": {
"type": "trunk",
"vlan": 12,
"voiceVlan": 34,
"allowedVlans": "all"
}
},
"poe": {
"isAllocated": false
}
}
]
}
]
}
}
},
"summary": "List the switchports in an organization",
"tags": [
"switch",
"monitor",
"ports",
"statuses",
"bySwitch"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/uplinks/statuses": {
"get": {
"description": "List the uplink status of every Meraki MX, MG and Z series devices in the organization",
"operationId": "getOrganizationUplinksStatuses",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "A list of network IDs. The returned devices will be filtered to only include these networks."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "A list of serial numbers. The returned devices will be filtered to only include these serials."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "iccids",
"in": "query",
"description": "A list of ICCIDs. The returned devices will be filtered to only include these ICCIDs."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "Network identifier"
},
"serial": {
"type": "string",
"description": "The uplink serial"
},
"model": {
"type": "string",
"description": "The uplink model"
},
"lastReportedAt": {
"type": "string",
"format": "date-time",
"description": "Last reported time for the device"
},
"highAvailability": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Indicates whether High Availability is enabled for the device. For devices that do not support HA, this will be 'false'"
},
"role": {
"type": "string",
"description": "The HA role of the device on the network. For devices that do not support HA, this will be 'primary'"
}
},
"description": "Device High Availability Capabilities"
},
"uplinks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"interface": {
"type": "string",
"enum": [
"cellular",
"wan1",
"wan2",
"wan3"
],
"description": "Uplink interface"
},
"status": {
"type": "string",
"enum": [
"active",
"connecting",
"failed",
"not connected",
"ready"
],
"description": "Uplink status"
},
"ip": {
"type": "string",
"description": "Uplink IP"
},
"gateway": {
"type": "string",
"description": "Gateway IP"
},
"publicIp": {
"type": "string",
"description": "Public IP"
},
"primaryDns": {
"type": "string",
"description": "Primary DNS IP"
},
"secondaryDns": {
"type": "string",
"description": "Secondary DNS IP"
},
"ipAssignedBy": {
"type": "string",
"description": "The way in which the IP is assigned"
},
"provider": {
"type": "string",
"description": "Network Provider"
},
"signalStat": {
"type": "object",
"properties": {
"rsrp": {
"type": "string",
"description": "Reference Signal Received Power"
},
"rsrq": {
"type": "string",
"description": "Reference Signal Received Quality"
}
},
"description": "Tower Signal Status"
},
"connectionType": {
"type": "string",
"description": "Connection Type"
},
"apn": {
"type": "string",
"description": "Access Point Name"
},
"dns1": {
"type": "string",
"description": "Primary DNS IP"
},
"dns2": {
"type": "string",
"description": "Secondary DNS IP"
},
"signalType": {
"type": "string",
"description": "Signal Type"
},
"iccid": {
"type": "string",
"description": "Integrated Circuit Card Identification Number"
}
}
},
"description": "Uplinks"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"networkId": "N_24329156",
"serial": "Q234-ABCD-5678",
"model": "MX68C",
"lastReportedAt": "2018-02-11T00:00:00Z",
"highAvailability": {
"enabled": true,
"role": "primary"
},
"uplinks": [
{
"interface": "wan1",
"status": "active",
"ip": "1.2.3.4",
"gateway": "1.2.3.5",
"publicIp": "123.123.123.1",
"primaryDns": "8.8.8.8",
"secondaryDns": "8.8.4.4",
"ipAssignedBy": "static",
"provider": "at&t",
"signalStat": {
"rsrp": "-120",
"rsrq": "-13"
},
"connectionType": "4g",
"apn": "internet",
"dns1": "111.111.111.111",
"dns2": "222.222.222.222",
"signalType": "4G",
"iccid": "123456789"
}
]
}
]
}
}
},
"summary": "List the uplink status of every Meraki MX, MG and Z series devices in the organization",
"tags": [
"organizations",
"monitor",
"uplinks",
"statuses"
]
}
},
"/organizations/{organizationId}/webhooks/alertTypes": {
"get": {
"description": "Return a list of alert types to be used with managing webhook alerts",
"operationId": "getOrganizationWebhooksAlertTypes",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"enum": [
"appliance",
"camera",
"cellularGateway",
"health",
"platform",
"sensor",
"sm",
"switch",
"wireless"
],
"name": "productType",
"in": "query",
"description": "Filter sample alerts to a specific product type"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"alertTypeId": {
"type": "string",
"description": "The type ID of Meraki alert"
},
"alertType": {
"type": "string",
"description": "The type of Meraki alert"
},
"example": {
"type": "object",
"properties": {
"version": {
"type": "string",
"description": "Version of the alert"
},
"sharedSecret": {
"type": "string",
"description": "Shared secret for the alert"
},
"sentAt": {
"type": "string",
"format": "date-time",
"description": "When the alert notification was sent, in ISO8601 format"
},
"alertId": {
"type": "string",
"description": "ID for the alert instance"
},
"alertLevel": {
"type": "string",
"enum": [
"critical",
"informational",
"warning"
],
"description": "Severity level of the alert"
},
"occurredAt": {
"type": "string",
"format": "date-time",
"description": "When the alert occurred, in ISO8601 format"
},
"alertData": {
"type": "object",
"additionalProperties": true,
"description": "Data for the specific alert. Contents depend on the type of the alert"
},
"organizationId": {
"type": "string",
"description": "ID of the organization associated with the alert"
},
"organizationName": {
"type": "string",
"description": "Name of the organization associated with the alert"
},
"organizationUrl": {
"type": "string",
"description": "URL of the organization associated with the alert"
},
"deviceSerial": {
"type": "string",
"description": "Serial for the device associated with the alert"
},
"deviceMac": {
"type": "string",
"description": "Mac address for the device associated with the alert"
},
"deviceName": {
"type": "string",
"description": "Name of the device associated with the alert"
},
"deviceUrl": {
"type": "string",
"description": "URL of the device associated with the alert"
},
"deviceTags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of tags for the device associated with the alert"
},
"deviceModel": {
"type": "string",
"description": "Model of the device associated with the alert"
},
"networkId": {
"type": "string",
"description": "ID of the network associated with the alert"
},
"networkName": {
"type": "string",
"description": "Name of the network associated with the alert"
},
"networkUrl": {
"type": "string",
"description": "URL of the network associated with the alert"
},
"enrollmentString": {
"type": "string",
"description": "Enrollment string of the network associated with the alert"
},
"notes": {
"type": "string",
"description": "Notes for the network associated with the alert"
},
"productTypes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"appliance",
"camera",
"cellularGateway",
"sensor",
"switch",
"systemsManager",
"wireless"
]
},
"description": "List of product types that are part of the network associated with the alert"
},
"encryptedId": {
"type": "string",
"description": "Encrypted ID of the network associated with the alert"
}
},
"description": "Example alert type"
}
}
},
"examples": {
"application/json": {
"alertTypeId": "stopped_reporting",
"alertType": "APs went down",
"example": {
"version": "0.1",
"sharedSecret": "secret",
"sentAt": "2018-02-11T00:00:00.090210Z",
"alertId": "0000000000000000",
"alertLevel": "warning",
"occurredAt": "2018-02-11T00:00:00.090210Z",
"organizationId": "2930418",
"organizationName": "My organization",
"organizationUrl": "https://dashboard.meraki.com/o/VjjsAd/manage/organization/overview",
"deviceSerial": "Q234-ABCD-5678",
"deviceMac": "00:11:22:33:44:55",
"deviceName": "My AP",
"deviceUrl": "https://n1.meraki.com//n//manage/nodes/new_list/000000000000",
"deviceTags": [
"tag1",
"tag2"
],
"deviceModel": "MR34",
"networkId": "N_24329156",
"networkName": "Main Office",
"networkUrl": "https://n1.meraki.com//n//manage/nodes/list",
"enrollmentString": "my-enrollment-string",
"notes": "Additional description of the network",
"productTypes": [
"appliance",
"switch",
"wireless"
],
"encryptedId": "6GREra"
}
}
}
}
},
"summary": "Return a list of alert types to be used with managing webhook alerts",
"tags": [
"organizations",
"monitor",
"webhooks",
"alertTypes"
]
}
},
"/organizations/{organizationId}/webhooks/callbacks/statuses/{callbackId}": {
"get": {
"description": "Return the status of an API callback",
"operationId": "getOrganizationWebhooksCallbacksStatus",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "callbackId",
"in": "path",
"description": "Callback ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"callbackId": {
"type": "string",
"description": "The ID of the callback"
},
"status": {
"type": "string",
"enum": [
"completed",
"failed",
"running"
],
"description": "The status of the callback"
},
"errors": {
"type": "array",
"items": {
"type": "string"
},
"description": "The errors returned by the callback"
},
"createdBy": {
"type": "object",
"properties": {
"adminId": {
"type": "string",
"description": "The ID of the user who initiated the callback"
}
},
"description": "Information around who initiated the callback"
},
"webhook": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The webhook receiver URL where the callback will be sent"
},
"httpServer": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The webhook receiver ID that will receive information"
}
},
"description": "The webhook receiver used for the callback webhook"
},
"payloadTemplate": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the payload template"
}
},
"description": "The payload template of the webhook used for the callback"
},
"sentAt": {
"type": "string",
"format": "date-time",
"description": "The timestamp the callback was sent to the webhook receiver"
}
},
"description": "The webhook receiver used by the callback to send results"
}
}
},
"examples": {
"application/json": {
"callbackId": "1284392014819",
"status": "completed",
"errors": [
"Callback failed"
],
"createdBy": {
"adminId": "212406"
},
"webhook": {
"url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031",
"httpServer": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vd2ViaG9va3M="
},
"payloadTemplate": {
"id": "wpt_2100"
},
"sentAt": "2018-02-11T00:00:00.090210Z"
}
}
}
}
},
"summary": "Return the status of an API callback",
"tags": [
"organizations",
"configure",
"webhooks",
"callbacks",
"statuses"
]
}
},
"/organizations/{organizationId}/webhooks/httpServers": {
"get": {
"description": "List the HTTP servers for this organization",
"operationId": "getOrganizationWebhooksHttpServers",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Identifier for the HTTP server"
},
"name": {
"type": "string",
"description": "The name of the HTTP server"
},
"organizationId": {
"type": "string",
"description": "Identifier for the organization"
},
"url": {
"type": "string",
"description": "URL where the HTTP server may be reached"
},
"payloadTemplate": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Identifier for the webhook payload template"
},
"name": {
"type": "string",
"description": "Name of the webhook payload template"
}
},
"description": "Webhook payload template information"
}
}
}
},
"examples": {
"application/json": [
{
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vbXlfY3VzdG9tX3dlYmhvb2s=",
"name": "Example Webhook Server",
"organizationId": "2930418",
"url": "https://www.example.com/my_custom_webhook",
"payloadTemplate": {
"id": "wpt_00001",
"name": "Meraki (included)"
}
}
]
}
}
},
"summary": "List the HTTP servers for this organization",
"tags": [
"organizations",
"configure",
"webhooks",
"httpServers"
],
"x-release-stage": "beta"
},
"post": {
"description": "Add an HTTP server to an organization",
"operationId": "createOrganizationWebhooksHttpServer",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationWebhooksHttpServer",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A name for easy reference to the HTTP server"
},
"url": {
"type": "string",
"description": "The URL of the HTTP server"
},
"sharedSecret": {
"type": "string",
"description": "A shared secret that will be included in POSTs sent to the HTTP server. This secret can be used to verify that the request was sent by Meraki."
},
"payloadTemplate": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the payload template of the test webhook. Defaults to Generic template ID."
},
"name": {
"type": "string",
"description": "The name of the payload template to use when posting data to the HTTP server. Defaults to the 'Meraki' template."
}
},
"description": "The payload template to use when posting data to the HTTP server."
}
},
"example": {
"name": "Example Webhook Server",
"url": "https://example.com",
"sharedSecret": "shhh",
"payloadTemplate": {
"id": "wpt_00001",
"name": "Meraki (included)"
}
},
"required": [
"name",
"url"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Identifier for the HTTP server"
},
"name": {
"type": "string",
"description": "The name of the HTTP server"
},
"organizationId": {
"type": "string",
"description": "Identifier for the organization"
},
"url": {
"type": "string",
"description": "URL where the HTTP server may be reached"
},
"payloadTemplate": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Identifier for the webhook payload template"
},
"name": {
"type": "string",
"description": "Name of the webhook payload template"
}
},
"description": "Webhook payload template information"
}
}
},
"examples": {
"application/json": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vbXlfY3VzdG9tX3dlYmhvb2s=",
"name": "Example Webhook Server",
"organizationId": "2930418",
"url": "https://www.example.com/my_custom_webhook",
"payloadTemplate": {
"id": "wpt_00001",
"name": "Meraki (included)"
}
}
}
}
},
"summary": "Add an HTTP server to an organization",
"tags": [
"organizations",
"configure",
"webhooks",
"httpServers"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/webhooks/httpServers/{id}": {
"get": {
"description": "Return an HTTP server for an organization",
"operationId": "getOrganizationWebhooksHttpServer",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Identifier for the HTTP server"
},
"name": {
"type": "string",
"description": "The name of the HTTP server"
},
"organizationId": {
"type": "string",
"description": "Identifier for the organization"
},
"url": {
"type": "string",
"description": "URL where the HTTP server may be reached"
},
"payloadTemplate": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Identifier for the webhook payload template"
},
"name": {
"type": "string",
"description": "Name of the webhook payload template"
}
},
"description": "Webhook payload template information"
}
}
},
"examples": {
"application/json": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vbXlfY3VzdG9tX3dlYmhvb2s=",
"name": "Example Webhook Server",
"organizationId": "2930418",
"url": "https://www.example.com/my_custom_webhook",
"payloadTemplate": {
"id": "wpt_00001",
"name": "Meraki (included)"
}
}
}
}
},
"summary": "Return an HTTP server for an organization",
"tags": [
"organizations",
"configure",
"webhooks",
"httpServers"
],
"x-release-stage": "beta"
},
"put": {
"description": "Update an HTTP server for an organization",
"operationId": "updateOrganizationWebhooksHttpServer",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationWebhooksHttpServer",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "A name for easy reference to the HTTP server"
},
"url": {
"type": "string",
"description": "The URL of the HTTP server"
},
"sharedSecret": {
"type": "string",
"description": "A shared secret that will be included in POSTs sent to the HTTP server. This secret can be used to verify that the request was sent by Meraki."
},
"payloadTemplate": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the payload template of the test webhook. Defaults to Generic template ID."
},
"name": {
"type": "string",
"description": "The name of the payload template to use when posting data to the HTTP server. Defaults to the 'Meraki' template."
}
},
"description": "The payload template to use when posting data to the HTTP server."
}
},
"example": {
"name": "Example Webhook Server",
"url": "https://example.com",
"sharedSecret": "shhh",
"payloadTemplate": {
"id": "wpt_00001",
"name": "Meraki (included)"
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Identifier for the HTTP server"
},
"name": {
"type": "string",
"description": "The name of the HTTP server"
},
"organizationId": {
"type": "string",
"description": "Identifier for the organization"
},
"url": {
"type": "string",
"description": "URL where the HTTP server may be reached"
},
"payloadTemplate": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Identifier for the webhook payload template"
},
"name": {
"type": "string",
"description": "Name of the webhook payload template"
}
},
"description": "Webhook payload template information"
}
}
},
"examples": {
"application/json": {
"id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vbXlfY3VzdG9tX3dlYmhvb2s=",
"name": "Example Webhook Server",
"organizationId": "2930418",
"url": "https://www.example.com/my_custom_webhook",
"payloadTemplate": {
"id": "wpt_00001",
"name": "Meraki (included)"
}
}
}
}
},
"summary": "Update an HTTP server for an organization",
"tags": [
"organizations",
"configure",
"webhooks",
"httpServers"
],
"x-release-stage": "beta"
},
"delete": {
"description": "Delete an HTTP server from an organization",
"operationId": "deleteOrganizationWebhooksHttpServer",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Delete an HTTP server from an organization",
"tags": [
"organizations",
"configure",
"webhooks",
"httpServers"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/webhooks/logs": {
"get": {
"description": "Return the log of webhook POSTs sent",
"operationId": "getOrganizationWebhooksLogs",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 90 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"name": "timespan",
"in": "query",
"description": "The timespan for which the information will be fetched. If specifying timespan, do not specify parameters t0 and t1. The value must be in seconds and be less than or equal to 31 days. The default is 1 day."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 50."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "url",
"in": "query",
"description": "The URL the webhook was sent to"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"alertType": {
"type": "string",
"description": "Type of alert that the webhook is delivering"
},
"loggedAt": {
"type": "string",
"format": "date-time",
"description": "When the webhook log was created, in ISO8601 format"
},
"networkId": {
"type": "string",
"description": "Network ID for the webhook log"
},
"organizationId": {
"type": "string",
"description": "ID for the webhook log's organization"
},
"responseCode": {
"type": "integer",
"description": "Response code from the webhook"
},
"responseDuration": {
"type": "integer",
"description": "Duration of the response, in milliseconds"
},
"sentAt": {
"type": "string",
"format": "date-time",
"description": "When the webhook was sent, in ISO8601 format"
},
"url": {
"type": "string",
"description": "URL where the webhook was sent"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"alertType": "Settings changed",
"loggedAt": "2019-01-01T13:37:28.423456Z",
"networkId": "N_24329156",
"organizationId": "2930418",
"responseCode": 200,
"responseDuration": 244,
"sentAt": "2019-01-01T13:37:28.123456Z",
"url": "https://www.example.com/path"
}
]
}
}
},
"summary": "Return the log of webhook POSTs sent",
"tags": [
"organizations",
"monitor",
"webhooks",
"logs"
]
}
},
"/organizations/{organizationId}/webhooks/payloadTemplates": {
"get": {
"description": "List the webhook payload templates for an organization",
"operationId": "getOrganizationWebhooksPayloadTemplates",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"payloadTemplateId": {
"type": "string",
"description": "Webhook payload template Id"
},
"type": {
"type": "string",
"description": "The type of the payload template"
},
"name": {
"type": "string",
"description": "The name of the payload template"
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the header attribute"
},
"template": {
"type": "string",
"description": "The value returned in the header attribute, in liquid template"
}
}
},
"description": "The payload template headers, will be rendered as a key-value pair in the webhook."
},
"body": {
"type": "string",
"description": "The body of the payload template, in liquid template"
},
"sharing": {
"type": "object",
"properties": {
"byNetwork": {
"type": "object",
"properties": {
"withAll": {
"type": "boolean",
"description": "Indicates that all networks within the organization have access to the template"
},
"adminsCanModify": {
"type": "boolean",
"description": "Indicates whether network admins have permission to modify the template"
},
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "The set of network IDs whose networks have access to the template"
}
},
"description": "Information on network access to the template"
}
},
"description": "Information on which entities have access to the template"
}
}
}
},
"examples": {
"application/json": [
{
"payloadTemplateId": "wpt_343",
"type": "custom",
"name": "Custom Template",
"headers": [
{
"name": "Authorization",
"template": "Bearer {{sharedSecret}}"
}
],
"body": "{\"event_type\":\"{{alertTypeId}}\",\"client_payload\":{\"text\":\"{{alertData}}\"}}",
"sharing": {
"byNetwork": {
"withAll": true,
"adminsCanModify": true,
"ids": [
"N_1234",
"L_5678"
]
}
}
}
]
}
}
},
"summary": "List the webhook payload templates for an organization",
"tags": [
"organizations",
"configure",
"webhooks",
"payloadTemplates"
],
"x-release-stage": "beta"
},
"post": {
"description": "Create a webhook payload template for an organization",
"operationId": "createOrganizationWebhooksPayloadTemplate",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationWebhooksPayloadTemplate",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the new template"
},
"body": {
"type": "string",
"description": "The liquid template used for the body of the webhook message. Either `body` or `bodyFile` must be specified."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "the name of the header template"
},
"template": {
"type": "string",
"description": "the liquid template"
}
}
},
"description": "The liquid template used with the webhook headers."
},
"bodyFile": {
"type": "string",
"format": "byte",
"description": "A file containing liquid template used for the body of the webhook message. Either `body` or `bodyFile` must be specified."
},
"headersFile": {
"type": "string",
"format": "byte",
"description": "A file containing the liquid template used with the webhook headers."
},
"sharing": {
"type": "object",
"properties": {
"byNetwork": {
"type": "object",
"properties": {
"withAll": {
"type": "boolean",
"description": "Indicates whether all networks have access to this template. Defaults to false."
},
"adminsCanModify": {
"type": "boolean",
"description": "Indicates whether network admins may modify this template. Defaults to false."
},
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of network ids which will be allowed access to the new template."
}
},
"description": "Information on network access to the template"
}
},
"description": "Information on which entities have access to the template"
}
},
"example": {
"name": "Custom Template",
"body": "{\"event_type\":\"{{alertTypeId}}\",\"client_payload\":{\"text\":\"{{alertData}}\"}}",
"headers": [
{
"name": "Authorization",
"template": "Bearer {{sharedSecret}}"
}
],
"bodyFile": "Qm9keSBGaWxl",
"headersFile": "SGVhZGVycyBGaWxl",
"sharing": {
"byNetwork": {
"withAll": true,
"adminsCanModify": true,
"ids": [
"N_1234"
]
}
}
},
"required": [
"name"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"payloadTemplateId": {
"type": "string",
"description": "Webhook payload template Id"
},
"type": {
"type": "string",
"description": "The type of the payload template"
},
"name": {
"type": "string",
"description": "The name of the payload template"
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the header attribute"
},
"template": {
"type": "string",
"description": "The value returned in the header attribute, in liquid template"
}
}
},
"description": "The payload template headers, will be rendered as a key-value pair in the webhook."
},
"body": {
"type": "string",
"description": "The body of the payload template, in liquid template"
},
"sharing": {
"type": "object",
"properties": {
"byNetwork": {
"type": "object",
"properties": {
"withAll": {
"type": "boolean",
"description": "Indicates that all networks within the organization have access to the template"
},
"adminsCanModify": {
"type": "boolean",
"description": "Indicates whether network admins have permission to modify the template"
},
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "The set of network IDs whose networks have access to the template"
}
},
"description": "Information on network access to the template"
}
},
"description": "Information on which entities have access to the template"
}
}
},
"examples": {
"application/json": {
"payloadTemplateId": "wpt_343",
"type": "custom",
"name": "Custom Template",
"headers": [
{
"name": "Authorization",
"template": "Bearer {{sharedSecret}}"
}
],
"body": "{\"event_type\":\"{{alertTypeId}}\",\"client_payload\":{\"text\":\"{{alertData}}\"}}",
"sharing": {
"byNetwork": {
"withAll": true,
"adminsCanModify": true,
"ids": [
"N_1234",
"L_5678"
]
}
}
}
}
}
},
"summary": "Create a webhook payload template for an organization",
"tags": [
"organizations",
"configure",
"webhooks",
"payloadTemplates"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/webhooks/payloadTemplates/{payloadTemplateId}": {
"get": {
"description": "Get the webhook payload template for an organization",
"operationId": "getOrganizationWebhooksPayloadTemplate",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "payloadTemplateId",
"in": "path",
"description": "Payload template ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"payloadTemplateId": {
"type": "string",
"description": "Webhook payload template Id"
},
"type": {
"type": "string",
"description": "The type of the payload template"
},
"name": {
"type": "string",
"description": "The name of the payload template"
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the header attribute"
},
"template": {
"type": "string",
"description": "The value returned in the header attribute, in liquid template"
}
}
},
"description": "The payload template headers, will be rendered as a key-value pair in the webhook."
},
"body": {
"type": "string",
"description": "The body of the payload template, in liquid template"
},
"sharing": {
"type": "object",
"properties": {
"byNetwork": {
"type": "object",
"properties": {
"withAll": {
"type": "boolean",
"description": "Indicates that all networks within the organization have access to the template"
},
"adminsCanModify": {
"type": "boolean",
"description": "Indicates whether network admins have permission to modify the template"
},
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "The set of network IDs whose networks have access to the template"
}
},
"description": "Information on network access to the template"
}
},
"description": "Information on which entities have access to the template"
}
}
},
"examples": {
"application/json": {
"payloadTemplateId": "wpt_343",
"type": "custom",
"name": "Custom Template",
"headers": [
{
"name": "Authorization",
"template": "Bearer {{sharedSecret}}"
}
],
"body": "{\"event_type\":\"{{alertTypeId}}\",\"client_payload\":{\"text\":\"{{alertData}}\"}}",
"sharing": {
"byNetwork": {
"withAll": true,
"adminsCanModify": true,
"ids": [
"N_1234",
"L_5678"
]
}
}
}
}
}
},
"summary": "Get the webhook payload template for an organization",
"tags": [
"organizations",
"configure",
"webhooks",
"payloadTemplates"
],
"x-release-stage": "beta"
},
"delete": {
"description": "Destroy a webhook payload template for an organization. Does not work for included templates ('wpt_00001', 'wpt_00002', 'wpt_00003', 'wpt_00004', 'wpt_00005' or 'wpt_00006')",
"operationId": "deleteOrganizationWebhooksPayloadTemplate",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "payloadTemplateId",
"in": "path",
"description": "Payload template ID",
"type": "string",
"required": true
}
],
"responses": {
"204": {
"description": "Successful operation"
}
},
"summary": "Destroy a webhook payload template for an organization",
"tags": [
"organizations",
"configure",
"webhooks",
"payloadTemplates"
],
"x-release-stage": "beta"
},
"put": {
"description": "Update a webhook payload template for an organization",
"operationId": "updateOrganizationWebhooksPayloadTemplate",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "payloadTemplateId",
"in": "path",
"description": "Payload template ID",
"type": "string",
"required": true
},
{
"name": "updateOrganizationWebhooksPayloadTemplate",
"in": "body",
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the template"
},
"body": {
"type": "string",
"description": "The liquid template used for the body of the webhook message."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "the name of the header template"
},
"template": {
"type": "string",
"description": "the liquid template"
}
}
},
"description": "The liquid template used with the webhook headers."
},
"bodyFile": {
"type": "string",
"format": "byte",
"description": "A file containing liquid template used for the body of the webhook message."
},
"headersFile": {
"type": "string",
"format": "byte",
"description": "A file containing the liquid template used with the webhook headers."
},
"sharing": {
"type": "object",
"properties": {
"byNetwork": {
"type": "object",
"properties": {
"withAll": {
"type": "boolean",
"description": "Indicates whether all networks have access to this template. Defaults to false."
},
"adminsCanModify": {
"type": "boolean",
"description": "Indicates whether network admins may modify this template. Defaults to false."
},
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of network ids which will be allowed access to the new template."
}
},
"description": "Information on network access to the template"
}
},
"description": "Information on which entities have access to the template"
}
},
"example": {
"name": "Custom Template",
"body": "{\"event_type\":\"{{alertTypeId}}\",\"client_payload\":{\"text\":\"{{alertData}}\"}}",
"headers": [
{
"name": "Authorization",
"template": "Bearer {{sharedSecret}}"
}
],
"bodyFile": "Qm9keSBGaWxl",
"headersFile": "SGVhZGVycyBGaWxl",
"sharing": {
"byNetwork": {
"withAll": true,
"adminsCanModify": true,
"ids": [
"N_1234"
]
}
}
}
}
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"payloadTemplateId": {
"type": "string",
"description": "Webhook payload template Id"
},
"type": {
"type": "string",
"description": "The type of the payload template"
},
"name": {
"type": "string",
"description": "The name of the payload template"
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the header attribute"
},
"template": {
"type": "string",
"description": "The value returned in the header attribute, in liquid template"
}
}
},
"description": "The payload template headers, will be rendered as a key-value pair in the webhook."
},
"body": {
"type": "string",
"description": "The body of the payload template, in liquid template"
},
"sharing": {
"type": "object",
"properties": {
"byNetwork": {
"type": "object",
"properties": {
"withAll": {
"type": "boolean",
"description": "Indicates that all networks within the organization have access to the template"
},
"adminsCanModify": {
"type": "boolean",
"description": "Indicates whether network admins have permission to modify the template"
},
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "The set of network IDs whose networks have access to the template"
}
},
"description": "Information on network access to the template"
}
},
"description": "Information on which entities have access to the template"
}
}
},
"examples": {
"application/json": {
"payloadTemplateId": "wpt_343",
"type": "custom",
"name": "Custom Template",
"headers": [
{
"name": "Authorization",
"template": "Bearer {{sharedSecret}}"
}
],
"body": "{\"event_type\":\"{{alertTypeId}}\",\"client_payload\":{\"text\":\"{{alertData}}\"}}",
"sharing": {
"byNetwork": {
"withAll": true,
"adminsCanModify": true,
"ids": [
"N_1234",
"L_5678"
]
}
}
}
}
}
},
"summary": "Update a webhook payload template for an organization",
"tags": [
"organizations",
"configure",
"webhooks",
"payloadTemplates"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/webhooks/webhookTests": {
"post": {
"description": "Send a test webhook for an organization",
"operationId": "createOrganizationWebhooksWebhookTest",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationWebhooksWebhookTest",
"in": "body",
"schema": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The URL where the test webhook will be sent"
},
"sharedSecret": {
"type": "string",
"description": "The shared secret the test webhook will send. Optional. Defaults to an empty string.",
"default": ""
},
"payloadTemplateId": {
"type": "string",
"description": "The ID of the payload template of the test webhook. Defaults to the HTTP server's template ID if one exists for the given URL, or Generic template ID otherwise"
},
"payloadTemplateName": {
"type": "string",
"description": "The name of the payload template."
},
"alertTypeId": {
"type": "string",
"description": "The type of alert which the test webhook will send. Optional. Defaults to insight_app_outage_start.",
"default": "insight_app_outage_start"
}
},
"example": {
"url": "https://www.example.com/path",
"sharedSecret": "foobar",
"payloadTemplateId": "wpt_00001",
"payloadTemplateName": "Payload Template",
"alertTypeId": "insight_app_outage_start"
},
"required": [
"url"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Webhook delivery identifier"
},
"url": {
"type": "string",
"description": "URL where the webhook was delivered"
},
"status": {
"type": "string",
"enum": [
"abandoned",
"delivered",
"enqueued",
"processing",
"retrying"
],
"description": "Current status of the webhook delivery"
}
}
},
"examples": {
"application/json": {
"id": "1234",
"url": "https://www.example.com/path",
"status": "enqueued"
}
}
}
},
"summary": "Send a test webhook for an organization",
"tags": [
"organizations",
"configure",
"webhooks",
"webhookTests"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/webhooks/webhookTests/{webhookTestId}": {
"get": {
"description": "Return the status of a webhook test for an organization",
"operationId": "getOrganizationWebhooksWebhookTest",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "webhookTestId",
"in": "path",
"description": "Webhook test ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Webhook delivery identifier"
},
"url": {
"type": "string",
"description": "URL where the webhook was delivered"
},
"status": {
"type": "string",
"enum": [
"abandoned",
"delivered",
"enqueued",
"processing",
"retrying"
],
"description": "Current status of the webhook delivery"
}
}
},
"examples": {
"application/json": {
"id": "1234",
"url": "https://www.example.com/path",
"status": "enqueued"
}
}
}
},
"summary": "Return the status of a webhook test for an organization",
"tags": [
"organizations",
"configure",
"webhooks",
"webhookTests"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/wireless/devices/channelUtilization/byDevice": {
"get": {
"description": "Get average channel utilization for all bands in a network, split by AP",
"operationId": "getOrganizationWirelessDevicesChannelUtilizationByDevice",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Filter results by network."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Filter results by device."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 90 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 90 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 7776000,
"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 90 days. The default is 7 days."
},
{
"type": "integer",
"name": "interval",
"in": "query",
"description": "The time interval in seconds for returned data. The valid intervals are: 300, 600, 3600, 7200, 14400, 21600. The default is 3600."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "The serial number for the device."
},
"mac": {
"type": "string",
"description": "The MAC address of the device."
},
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network ID of the given utilization metrics."
}
},
"description": "Network for the given utilization metrics."
},
"byBand": {
"type": "array",
"items": {
"type": "object",
"properties": {
"band": {
"type": "string",
"description": "The band for the given metrics."
},
"wifi": {
"type": "object",
"properties": {
"percentage": {
"type": "number",
"format": "float",
"description": "Percentage of wifi channel utiliation for the given band."
}
},
"description": "An object containing wifi utilization."
},
"nonWifi": {
"type": "object",
"properties": {
"percentage": {
"type": "number",
"format": "float",
"description": "Percentage of non-wifi channel utiliation for the given band."
}
},
"description": "An object containing non-wifi utilization."
},
"total": {
"type": "object",
"properties": {
"percentage": {
"type": "number",
"format": "float",
"description": "Percentage of total channel utiliation for the given band."
}
},
"description": "An object containing total channel utilization."
}
}
},
"description": "Channel utilization broken down by band."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"serial": "Q234-ABCD-5678",
"mac": "00:11:22:33:44:55",
"network": {
"id": "N_24329156"
},
"byBand": [
{
"band": "5",
"wifi": {
"percentage": 33.12
},
"nonWifi": {
"percentage": 1.84
},
"total": {
"percentage": 34.96
}
}
]
}
]
}
}
},
"summary": "Get average channel utilization for all bands in a network, split by AP",
"tags": [
"wireless",
"monitor",
"devices",
"channelUtilization",
"byDevice"
]
}
},
"/organizations/{organizationId}/wireless/devices/channelUtilization/byNetwork": {
"get": {
"description": "Get average channel utilization across all bands for all networks in the organization",
"operationId": "getOrganizationWirelessDevicesChannelUtilizationByNetwork",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Filter results by network."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Filter results by device."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 90 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 90 days after t0."
},
{
"type": "number",
"format": "float",
"maximum": 7776000,
"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 90 days. The default is 7 days."
},
{
"type": "integer",
"name": "interval",
"in": "query",
"description": "The time interval in seconds for returned data. The valid intervals are: 300, 600, 3600, 7200, 14400, 21600. The default is 3600."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network ID of the given utilization metrics."
}
},
"description": "Network for the given utilization metrics."
},
"byBand": {
"type": "array",
"items": {
"type": "object",
"properties": {
"band": {
"type": "string",
"description": "The band for the given metrics."
},
"wifi": {
"type": "object",
"properties": {
"percentage": {
"type": "number",
"format": "float",
"description": "Percentage of wifi channel utiliation for the given band."
}
},
"description": "An object containing wifi utilization."
},
"nonWifi": {
"type": "object",
"properties": {
"percentage": {
"type": "number",
"format": "float",
"description": "Percentage of non-wifi channel utiliation for the given band."
}
},
"description": "An object containing non-wifi utilization."
},
"total": {
"type": "object",
"properties": {
"percentage": {
"type": "number",
"format": "float",
"description": "Percentage of total channel utiliation for the given band."
}
},
"description": "An object containing total channel utilization."
}
}
},
"description": "Channel utilization broken down by band."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"network": {
"id": "N_24329156"
},
"byBand": [
{
"band": "5",
"wifi": {
"percentage": 33.12
},
"nonWifi": {
"percentage": 1.84
},
"total": {
"percentage": 34.96
}
}
]
}
]
}
}
},
"summary": "Get average channel utilization across all bands for all networks in the organization",
"tags": [
"wireless",
"monitor",
"devices",
"channelUtilization",
"byNetwork"
]
}
},
"/organizations/{organizationId}/wireless/devices/channelUtilization/history/byDevice/byInterval": {
"get": {
"description": "Get a time-series of average channel utilization for all bands, segmented by device.",
"operationId": "getOrganizationWirelessDevicesChannelUtilizationHistoryByDeviceByInterval",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Filter results by network."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Filter results by device."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"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 7 days."
},
{
"type": "integer",
"name": "interval",
"in": "query",
"description": "The time interval in seconds for returned data. The valid intervals are: 300, 600, 3600, 7200, 14400, 21600. The default is 3600."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startTs": {
"type": "string",
"format": "date-time",
"description": "The start time of the channel utilization interval."
},
"endTs": {
"type": "string",
"format": "date-time",
"description": "The end time of the channel utilization interval."
},
"serial": {
"type": "string",
"description": "The serial number for the device."
},
"mac": {
"type": "string",
"description": "The MAC address of the device."
},
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network ID of the given utilization metrics."
}
},
"description": "Network for the given utilization metrics."
},
"byBand": {
"type": "array",
"items": {
"type": "object",
"properties": {
"band": {
"type": "string",
"description": "The band for the given metrics."
},
"wifi": {
"type": "object",
"properties": {
"percentage": {
"type": "number",
"format": "float",
"description": "Percentage of wifi channel utiliation for the given band."
}
},
"description": "An object containing wifi utilization."
},
"nonWifi": {
"type": "object",
"properties": {
"percentage": {
"type": "number",
"format": "float",
"description": "Percentage of non-wifi channel utiliation for the given band."
}
},
"description": "An object containing non-wifi utilization."
},
"total": {
"type": "object",
"properties": {
"percentage": {
"type": "number",
"format": "float",
"description": "Percentage of total channel utiliation for the given band."
}
},
"description": "An object containing total channel utilization."
}
}
},
"description": "Channel utilization broken down by band."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"startTs": "2018-02-11T00:00:00Z",
"endTs": "2018-05-12T00:00:00Z",
"serial": "Q234-ABCD-5678",
"mac": "00:11:22:33:44:55",
"network": {
"id": "N_24329156"
},
"byBand": [
{
"band": "5",
"wifi": {
"percentage": 33.12
},
"nonWifi": {
"percentage": 1.84
},
"total": {
"percentage": 34.96
}
}
]
}
]
}
}
},
"summary": "Get a time-series of average channel utilization for all bands, segmented by device.",
"tags": [
"wireless",
"monitor",
"devices",
"channelUtilization",
"history",
"byDevice",
"byInterval"
]
}
},
"/organizations/{organizationId}/wireless/devices/channelUtilization/history/byNetwork/byInterval": {
"get": {
"description": "Get a time-series of average channel utilization for all bands",
"operationId": "getOrganizationWirelessDevicesChannelUtilizationHistoryByNetworkByInterval",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Filter results by network."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Filter results by device."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 31 days from today."
},
{
"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."
},
{
"type": "number",
"format": "float",
"maximum": 2678400,
"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 7 days."
},
{
"type": "integer",
"name": "interval",
"in": "query",
"description": "The time interval in seconds for returned data. The valid intervals are: 300, 600, 3600, 7200, 14400, 21600. The default is 3600."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startTs": {
"type": "string",
"format": "date-time",
"description": "The start time of the channel utilization interval."
},
"endTs": {
"type": "string",
"format": "date-time",
"description": "The end time of the channel utilization interval."
},
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network ID of the given utilization metrics."
}
},
"description": "Network for the given utilization metrics."
},
"byBand": {
"type": "array",
"items": {
"type": "object",
"properties": {
"band": {
"type": "string",
"description": "The band for the given metrics."
},
"wifi": {
"type": "object",
"properties": {
"percentage": {
"type": "number",
"format": "float",
"description": "Percentage of wifi channel utiliation for the given band."
}
},
"description": "An object containing wifi utilization."
},
"nonWifi": {
"type": "object",
"properties": {
"percentage": {
"type": "number",
"format": "float",
"description": "Percentage of non-wifi channel utiliation for the given band."
}
},
"description": "An object containing non-wifi utilization."
},
"total": {
"type": "object",
"properties": {
"percentage": {
"type": "number",
"format": "float",
"description": "Percentage of total channel utiliation for the given band."
}
},
"description": "An object containing total channel utilization."
}
}
},
"description": "Channel utilization broken down by band."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"startTs": "2018-02-11T00:00:00Z",
"endTs": "2018-05-12T00:00:00Z",
"network": {
"id": "N_24329156"
},
"byBand": [
{
"band": "5",
"wifi": {
"percentage": 33.12
},
"nonWifi": {
"percentage": 1.84
},
"total": {
"percentage": 34.96
}
}
]
}
]
}
}
},
"summary": "Get a time-series of average channel utilization for all bands",
"tags": [
"wireless",
"monitor",
"devices",
"channelUtilization",
"history",
"byNetwork",
"byInterval"
]
}
},
"/organizations/{organizationId}/wireless/devices/ethernet/statuses": {
"get": {
"description": "List the most recent Ethernet link speed, duplex, aggregation and power mode and status information for wireless devices.",
"operationId": "getOrganizationWirelessDevicesEthernetStatuses",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 100."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "A list of Meraki network IDs to filter results to contain only specified networks. E.g.: networkIds[]=N_12345678&networkIds[]=L_3456"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"serial": {
"type": "string",
"description": "The serial number of the AP"
},
"name": {
"type": "string",
"description": "The name of the AP"
},
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The network ID the AP is associated to"
}
},
"description": "Network details object"
},
"power": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"description": "The PoE power mode for the AP. Can be 'full' or 'low'"
},
"ac": {
"type": "object",
"properties": {
"isConnected": {
"type": "boolean",
"description": "AC power connected"
}
},
"description": "AC power details object"
},
"poe": {
"type": "object",
"properties": {
"isConnected": {
"type": "boolean",
"description": "PoE power connected"
}
},
"description": "PoE power details object"
}
},
"description": "Power details object"
},
"ports": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Label of the port"
},
"poe": {
"type": "object",
"properties": {
"standard": {
"type": "string",
"description": "The PoE Standard for the port. Can be '802.3at', '802.3af', '802.3bt', or null"
}
},
"description": "PoE details object for the port"
},
"linkNegotiation": {
"type": "object",
"properties": {
"duplex": {
"type": "string",
"description": "The duplex mode of the port. Can be 'full' or 'half'"
},
"speed": {
"type": "integer",
"description": "The speed of the port"
}
},
"description": "Link negotiation details object for the port"
}
}
},
"description": "List of port details"
},
"aggregation": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Link Aggregation enabled flag"
},
"speed": {
"type": "integer",
"description": "Link Aggregation speed"
}
},
"description": "Aggregation details object"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"serial": "Q234-ABCD-5678",
"name": "My appliance",
"network": {
"id": "N_24329156"
},
"power": {
"mode": "full",
"ac": {
"isConnected": false
},
"poe": {
"isConnected": true
}
},
"ports": [
{
"name": "Ethernet 0",
"poe": {
"standard": "802.3at"
},
"linkNegotiation": {
"duplex": "full",
"speed": 5000
}
}
],
"aggregation": {
"enabled": true,
"speed": 10000
}
}
]
}
}
},
"summary": "List the most recent Ethernet link speed, duplex, aggregation and power mode and status information for wireless devices.",
"tags": [
"wireless",
"monitor",
"devices",
"ethernet",
"statuses"
]
}
},
"/organizations/{organizationId}/wireless/devices/packetLoss/byClient": {
"get": {
"description": "Get average packet loss for the given timespan for all clients in the organization.",
"operationId": "getOrganizationWirelessDevicesPacketLossByClient",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Filter results by network."
},
{
"type": "array",
"items": {
"type": "integer"
},
"name": "ssids",
"in": "query",
"description": "Filter results by SSID number."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "bands",
"in": "query",
"description": "Filter results by band. Valid bands are: 2.4, 5, and 6."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "macs",
"in": "query",
"description": "Filter results by client mac address(es)."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 90 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 90 days after t0."
},
{
"type": "number",
"format": "float",
"minimum": 300,
"maximum": 7776000,
"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 greater than or equal to 5 minutes and be less than or equal to 90 days. The default is 7 days."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"downstream": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "Total packets received by a client."
},
"lost": {
"type": "integer",
"description": "Total packets sent by an AP that did not reach the client."
},
"lossPercentage": {
"type": "number",
"format": "float",
"description": "Percentage of lost packets."
}
},
"description": "Packets sent from an AP to a client."
},
"upstream": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "Total packets sent by a client to an AP."
},
"lost": {
"type": "integer",
"description": "Total packets sent by a client and did not reach the AP."
},
"lossPercentage": {
"type": "number",
"format": "float",
"description": "Percentage of lost packets."
}
},
"description": "Packets sent from a client to an AP."
},
"client": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Client ID."
},
"mac": {
"type": "string",
"description": "MAC address."
}
},
"description": "Client."
},
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network ID."
},
"name": {
"type": "string",
"description": "Name of the network."
}
},
"description": "Network."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"downstream": {
"total": 1000,
"lost": 10,
"lossPercentage": 1.0
},
"upstream": {
"total": 1200,
"lost": 15,
"lossPercentage": 1.3
},
"client": {
"id": "k74272e",
"mac": "22:33:44:55:66:77"
},
"network": {
"id": "N_24329156",
"name": "Main Office"
}
}
]
}
}
},
"summary": "Get average packet loss for the given timespan for all clients in the organization.",
"tags": [
"wireless",
"monitor",
"devices",
"packetLoss",
"byClient"
]
}
},
"/organizations/{organizationId}/wireless/devices/packetLoss/byDevice": {
"get": {
"description": "Get average packet loss for the given timespan for all devices in the organization. Does not include device's own traffic.",
"operationId": "getOrganizationWirelessDevicesPacketLossByDevice",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Filter results by network."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Filter results by device."
},
{
"type": "array",
"items": {
"type": "integer"
},
"name": "ssids",
"in": "query",
"description": "Filter results by SSID number."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "bands",
"in": "query",
"description": "Filter results by band. Valid bands are: 2.4, 5, and 6."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 90 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 90 days after t0."
},
{
"type": "number",
"format": "float",
"minimum": 300,
"maximum": 7776000,
"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 greater than or equal to 5 minutes and be less than or equal to 90 days. The default is 7 days."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"downstream": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "Total packets received by a client."
},
"lost": {
"type": "integer",
"description": "Total packets sent by an AP that did not reach the client."
},
"lossPercentage": {
"type": "number",
"format": "float",
"description": "Percentage of lost packets."
}
},
"description": "Packets sent from an AP to a client."
},
"upstream": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "Total packets sent by a client to an AP."
},
"lost": {
"type": "integer",
"description": "Total packets sent by a client and did not reach the AP."
},
"lossPercentage": {
"type": "number",
"format": "float",
"description": "Percentage of lost packets."
}
},
"description": "Packets sent from a client to an AP."
},
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network ID."
},
"name": {
"type": "string",
"description": "Name of the network."
}
},
"description": "Network."
},
"device": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name"
},
"serial": {
"type": "string",
"description": "Serial Number"
},
"mac": {
"type": "string",
"description": "MAC address"
}
},
"description": "Device."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"downstream": {
"total": 1000,
"lost": 10,
"lossPercentage": 1.0
},
"upstream": {
"total": 1200,
"lost": 15,
"lossPercentage": 1.3
},
"network": {
"id": "N_24329156",
"name": "Main Office"
},
"device": {
"name": "My AP",
"serial": "Q234-ABCD-5678",
"mac": "00:11:22:33:44:55"
}
}
]
}
}
},
"summary": "Get average packet loss for the given timespan for all devices in the organization",
"tags": [
"wireless",
"monitor",
"devices",
"packetLoss",
"byDevice"
]
}
},
"/organizations/{organizationId}/wireless/devices/packetLoss/byNetwork": {
"get": {
"description": "Get average packet loss for the given timespan for all networks in the organization.",
"operationId": "getOrganizationWirelessDevicesPacketLossByNetwork",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Filter results by network."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Filter results by device."
},
{
"type": "array",
"items": {
"type": "integer"
},
"name": "ssids",
"in": "query",
"description": "Filter results by SSID number."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "bands",
"in": "query",
"description": "Filter results by band. Valid bands are: 2.4, 5, and 6."
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "string",
"name": "t0",
"in": "query",
"description": "The beginning of the timespan for the data. The maximum lookback period is 90 days from today."
},
{
"type": "string",
"name": "t1",
"in": "query",
"description": "The end of the timespan for the data. t1 can be a maximum of 90 days after t0."
},
{
"type": "number",
"format": "float",
"minimum": 300,
"maximum": 7776000,
"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 greater than or equal to 5 minutes and be less than or equal to 90 days. The default is 7 days."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"downstream": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "Total packets received by a client."
},
"lost": {
"type": "integer",
"description": "Total packets sent by an AP that did not reach the client."
},
"lossPercentage": {
"type": "number",
"format": "float",
"description": "Percentage of lost packets."
}
},
"description": "Packets sent from an AP to a client."
},
"upstream": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "Total packets sent by a client to an AP."
},
"lost": {
"type": "integer",
"description": "Total packets sent by a client and did not reach the AP."
},
"lossPercentage": {
"type": "number",
"format": "float",
"description": "Percentage of lost packets."
}
},
"description": "Packets sent from a client to an AP."
},
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network ID."
},
"name": {
"type": "string",
"description": "Name of the network."
}
},
"description": "Network."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"downstream": {
"total": 1000,
"lost": 10,
"lossPercentage": 1.0
},
"upstream": {
"total": 1200,
"lost": 15,
"lossPercentage": 1.3
},
"network": {
"id": "N_24329156",
"name": "Main Office"
}
}
]
}
}
},
"summary": "Get average packet loss for the given timespan for all networks in the organization.",
"tags": [
"wireless",
"monitor",
"devices",
"packetLoss",
"byNetwork"
]
}
},
"/organizations/{organizationId}/wireless/radio/autoRf/byNetwork": {
"get": {
"description": "List the AutoRF settings of an organization by network",
"operationId": "getOrganizationWirelessRadioAutoRfByNetwork",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Optional parameter to filter results by network."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"networkId": {
"type": "string",
"description": "Id of the network"
},
"name": {
"type": "string",
"description": "Name of the network"
},
"timeZone": {
"type": "string",
"description": "Time zone of the network"
},
"busyHour": {
"type": "object",
"properties": {
"schedule": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"automatic",
"manual"
],
"description": "The Busy Hour mode applied to the network when minimizeChanges is enabled. Must be one of 'automatic' or 'manual'. Automatic busy hour is only available on firmware versions >= MR 27.0"
},
"automatic": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "The hour that Automatic Busy Hour starts each day, in the network time zone"
},
"end": {
"type": "string",
"description": "The hour that Automatic Busy Hour ends each day, in the network time zone"
}
},
"description": "Automatic Busy Hour settings"
},
"manual": {
"type": "object",
"properties": {
"start": {
"type": "string",
"description": "The hour that Manual Busy Hour starts each day, in the network time zone"
},
"end": {
"type": "string",
"description": "The hour that Manual Busy Hour ends each day, in the network time zone"
}
},
"description": "Manual Busy Hour settings"
}
},
"description": "Busy hour mode settings"
},
"minimizeChanges": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Toggle for enabling or disabling Busy Hour in a network"
}
},
"description": "Minimize Changes settings"
}
},
"description": "Busy Hour settings"
},
"channel": {
"type": "object",
"properties": {
"avoidance": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Toggle for enabling or disabling channel avoidance in a network"
}
},
"description": "Channel avoidance settings"
}
},
"description": "Channel settings"
}
}
}
},
"examples": {
"application/json": [
{
"networkId": "L_12345",
"name": "My Network",
"timeZone": "America/Los_Angeles",
"busyHour": {
"schedule": {
"mode": "automatic",
"automatic": {
"start": "08:00",
"end": "17:00"
},
"manual": {
"start": "10:00",
"end": "15:00"
}
},
"minimizeChanges": {
"enabled": true
}
},
"channel": {
"avoidance": {
"enabled": true
}
}
}
]
}
}
},
"summary": "List the AutoRF settings of an organization by network",
"tags": [
"wireless",
"configure",
"radio",
"autoRf",
"byNetwork"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/wireless/radio/autoRf/channels/planning/activities": {
"get": {
"description": "List the channel planning activities of an organization",
"operationId": "getOrganizationWirelessRadioAutoRfChannelsPlanningActivities",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Optional parameter to filter results by network."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "deviceSerials",
"in": "query",
"description": "Optional parameter to filter results by device serial."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"startedAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp of when the channel planning activity was triggered"
},
"endsAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp of when the channel planning activity expires"
},
"type": {
"type": "string",
"enum": [
"avoid",
"monitor"
],
"description": "The type of channel planning activity that occured"
},
"reason": {
"type": "string",
"enum": [
"dfs",
"jammed"
],
"description": "The event that caused the channel planning activity"
},
"band": {
"type": "string",
"description": "The band over which the channel planning activity occurred"
},
"channel": {
"type": "integer",
"description": "The channel where the channel planning activity occured"
},
"severity": {
"type": "integer",
"description": "The severity of the channel planning activity that occured (1 = most severe, 6 = least severe)"
},
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network id"
},
"name": {
"type": "string",
"description": "Network name"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of custom tags for the network."
}
},
"description": "Network data"
},
"device": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Device name"
},
"serial": {
"type": "string",
"description": "Device serial number"
},
"mac": {
"type": "string",
"description": "Device mac address"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of custom tags for the device."
}
},
"description": "Device data"
}
}
}
},
"examples": {
"application/json": [
{
"startedAt": "2018-02-11T00:00:00Z",
"endsAt": "2018-05-12T00:00:00Z",
"type": "avoid",
"reason": "dfs",
"band": "5 Ghz",
"channel": 44,
"severity": 6,
"network": {
"id": "N_24329156",
"name": "Main Office",
"tags": [
"tag1",
"tag2"
]
},
"device": {
"name": "My AP",
"serial": "Q234-ABCD-5678",
"mac": "00:11:22:33:44:55",
"tags": [
"tag1",
"tag2"
]
}
}
]
}
}
},
"summary": "List the channel planning activities of an organization",
"tags": [
"wireless",
"configure",
"radio",
"autoRf",
"channels",
"planning",
"activities"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/wireless/rfProfiles/assignments/byDevice": {
"get": {
"description": "List the RF profiles of an organization by device",
"operationId": "getOrganizationWirelessRfProfilesAssignmentsByDevice",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 1000."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Optional parameter to filter devices by network."
},
{
"type": "array",
"items": {
"type": "string",
"enum": [
"appliance",
"camera",
"cellularGateway",
"sensor",
"switch",
"systemsManager",
"wireless"
]
},
"name": "productTypes",
"in": "query",
"description": "Optional parameter to filter devices by product type. Valid types are wireless, appliance, switch, systemsManager, camera, cellularGateway, and sensor."
},
{
"type": "string",
"name": "name",
"in": "query",
"description": "Optional parameter to filter RF profiles by device name. All returned devices will have a name that contains the search term or is an exact match."
},
{
"type": "string",
"name": "mac",
"in": "query",
"description": "Optional parameter to filter RF profiles by device MAC address. All returned devices will have a MAC address that contains the search term or is an exact match."
},
{
"type": "string",
"name": "serial",
"in": "query",
"description": "Optional parameter to filter RF profiles by device serial number. All returned devices will have a serial number that contains the search term or is an exact match."
},
{
"type": "string",
"name": "model",
"in": "query",
"description": "Optional parameter to filter RF profiles by device model. All returned devices will have a model that contains the search term or is an exact match."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "macs",
"in": "query",
"description": "Optional parameter to filter RF profiles by one or more device MAC addresses. All returned devices will have a MAC address that is an exact match."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "serials",
"in": "query",
"description": "Optional parameter to filter RF profiles by one or more device serial numbers. All returned devices will have a serial number that is an exact match."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "models",
"in": "query",
"description": "Optional parameter to filter RF profiles by one or more device models. All returned devices will have a model that is an exact match."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The network ID."
}
},
"description": "Information regarding the network the device belongs to."
},
"name": {
"type": "string",
"description": "Name of the device."
},
"serial": {
"type": "string",
"description": "Unique serial number for device."
},
"model": {
"type": "string",
"description": "Model number of the device."
},
"rfProfile": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the RF Profile the device belongs to."
},
"name": {
"type": "string",
"description": "The name of the RF Profile the device belongs to."
},
"isIndoorDefault": {
"type": "boolean",
"description": "Status to show if this profile is default indoor profile."
},
"isOutdoorDefault": {
"type": "boolean",
"description": "Status to show if this profile is default outdoor profile."
}
},
"description": "Information regarding the RF Profile of the device."
}
}
},
"description": "The top-level propery containing all status data."
},
"meta": {
"type": "object",
"properties": {
"counts": {
"type": "object",
"properties": {
"items": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "The total number of serials."
},
"remaining": {
"type": "integer",
"description": "The number of serials remaining based on current pagination location within the dataset."
}
},
"description": "The count metadata."
}
},
"description": "Count metadata related to this result set."
}
},
"description": "Other metadata related to this result set."
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"items": [
{
"network": {
"id": "1234"
},
"name": "Device_name",
"serial": "Q234-ABCD-0001",
"model": "MR34",
"rfProfile": {
"id": "123456",
"name": "Basic Outdoor Profile",
"isIndoorDefault": false,
"isOutdoorDefault": true
}
}
],
"meta": {
"counts": {
"items": {
"total": 1200,
"remaining": 200
}
}
}
}
]
}
}
},
"summary": "List the RF profiles of an organization by device",
"tags": [
"wireless",
"configure",
"rfProfiles",
"assignments",
"byDevice"
]
}
},
"/organizations/{organizationId}/wireless/zigbee": {
"get": {
"description": "Return list of Zigbee configs",
"operationId": "getOrganizationWirelessZigbee",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 50."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Filter by specified Network IDs"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique Meraki Identifier for the network"
}
},
"description": "Network details"
},
"enabled": {
"type": "boolean",
"description": "If Zigbee is enabled for the network"
},
"iotController": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of the device"
},
"mac": {
"type": "string",
"description": "Mac address of the device"
},
"serial": {
"type": "string",
"description": "Serial number of the device"
},
"status": {
"type": "string",
"description": "Zigbee connectivity status of the device"
}
},
"description": "Device details setup the IoT controller"
},
"lockManagement": {
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "Host address of the system"
},
"username": {
"type": "string",
"description": "Login User credentials"
},
"status": {
"type": "string",
"description": "Zigbee connectivity status of the management software"
}
},
"description": "Lock Management Details"
},
"defaults": {
"type": "object",
"properties": {
"transmitPowerLevel": {
"type": "integer",
"description": "Default Transmit Power Level for the network"
}
},
"description": "Default Settings for the MRs in network"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"network": {
"id": "N_24329156"
},
"enabled": true,
"iotController": {
"name": "My AP",
"mac": "e4:55:a8:38:f2:06",
"serial": "Q234-ABCD-5678",
"status": "online"
},
"lockManagement": {
"address": "10.100.100.200",
"username": "user",
"status": "offline"
},
"defaults": {
"transmitPowerLevel": 10
}
}
]
}
}
},
"summary": "Return list of Zigbee configs",
"tags": [
"wireless",
"configure",
"zigbee"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/wireless/zigbee/devices": {
"get": {
"description": "List the Zigbee MR Nodes for and organization or the supplied network(s)",
"operationId": "getOrganizationWirelessZigbeeDevices",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 1000. Default is 10."
},
{
"type": "string",
"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."
},
{
"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."
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Parameter of networks you want the zigbee deviceces for. E.g.: networkIds[]=N_12345678&networkIds[]=N_3456"
},
{
"type": "boolean",
"name": "isEnrolled",
"in": "query",
"description": "Filter devices based on if they are enrolled or not"
},
{
"type": "string",
"name": "search",
"in": "query",
"description": "Filter devices by their name and/or serial"
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The network id the zigbee node belongs too"
},
"name": {
"type": "string",
"description": "The name of the Network"
}
},
"description": "Network zigbee devive is on"
},
"panId": {
"type": "string",
"description": "Unique id for the zigbee device node"
},
"channel": {
"type": "string",
"description": "Channel the zigbee node will communicate on either auto or between 11-25"
},
"transmitPowerLevel": {
"type": "integer",
"description": "Power level for the zigbee devices will be a int between 10-20"
},
"enrolled": {
"type": "boolean",
"description": "Whether this Node is enrolled or not"
},
"status": {
"type": "string",
"enum": [
"offline",
"online"
],
"description": "The Node status, either online or offline."
},
"gateway": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the MR node"
},
"mac": {
"type": "string",
"description": "The mac address of the MR node"
},
"serial": {
"type": "string",
"description": "The serial number of the MR node"
},
"tags": {
"type": "string",
"description": "The tags assocated with the MR node"
}
},
"description": "MR node the zigbee devive is on"
},
"counts": {
"type": "object",
"properties": {
"doorLocks": {
"type": "object",
"properties": {
"byStatus": {
"type": "object",
"properties": {
"online": {
"type": "integer",
"description": "Online Door locks"
},
"offline": {
"type": "integer",
"description": "Offline Door locks"
}
},
"description": "Status Stats"
}
},
"description": "Door Locks Stats"
}
},
"description": "Stats"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"network": {
"id": "N_1234",
"name": "Main office"
},
"panId": "0x0100",
"channel": "auto",
"transmitPowerLevel": 12,
"enrolled": true,
"status": "online",
"gateway": {
"name": "MR Client",
"mac": "e4:55:a8:38:f2:06",
"serial": "1234-4567-5678",
"tags": ""
},
"counts": {
"doorLocks": {
"byStatus": {
"online": 5,
"offline": 2
}
}
}
}
]
}
}
},
"summary": "List the Zigbee MR Nodes for and organization or the supplied network(s)",
"tags": [
"wireless",
"configure",
"zigbee",
"devices"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/wireless/zigbee/disenrollments": {
"post": {
"description": "Enqueue a job to start disenrolling doorlocks on zigbee configured MRs",
"operationId": "createOrganizationWirelessZigbeeDisenrollment",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationWirelessZigbeeDisenrollment",
"in": "body",
"schema": {
"type": "object",
"properties": {
"doorLockIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of Meraki doorlock ids to disenroll from the device"
}
},
"example": {
}
}
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"disenrollmentId": {
"type": "string",
"description": "Id to check the status of your disenrollment request"
},
"url": {
"type": "string",
"description": "GET this url to check the status of your disenrollment request"
},
"request": {
"type": "object",
"properties": {
"doorLockIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of door lock Ids"
}
},
"description": "Disenrollment request parameters"
},
"status": {
"type": "string",
"description": "Status of the disenrollment request"
}
}
},
"examples": {
"application/json": {
"disenrollmentId": "1234",
"url": "/organization/{organizationId}/wireless/zigbee/disenrollments/1234",
"request": {
"doorLockIds": [
"1234"
]
},
"status": "complete"
}
}
}
},
"summary": "Enqueue a job to start disenrolling doorlocks on zigbee configured MRs",
"tags": [
"wireless",
"configure",
"zigbee",
"disenrollments"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/wireless/zigbee/disenrollments/{id}": {
"get": {
"description": "Return a disenrollment job",
"operationId": "getOrganizationWirelessZigbeeDisenrollment",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "id",
"in": "path",
"description": "ID",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "object",
"properties": {
"disenrollmentId": {
"type": "string",
"description": "Id to check the status of your disenrollment request"
},
"url": {
"type": "string",
"description": "GET this url to check the status of your disenrollment request"
},
"request": {
"type": "object",
"properties": {
"doorLockIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of door lock Ids"
}
},
"description": "Disenrollment request parameters"
},
"status": {
"type": "string",
"description": "Status of the disenrollment request"
},
"doorLocks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"doorLockId": {
"type": "string",
"description": "Meraki Doorlock Identifier"
},
"status": {
"type": "string",
"enum": [
"failure",
"success"
],
"description": "Disenrollment Status"
}
}
},
"description": "Door Locks"
}
}
},
"examples": {
"application/json": {
"disenrollmentId": "1234",
"url": "/organization/{organizationId}/wireless/zigbee/disenrollments/1234",
"request": {
"doorLockIds": [
"1234"
]
},
"status": "complete",
"doorLocks": [
{
"doorLockId": "1234",
"status": "success"
}
]
}
}
}
},
"summary": "Return a disenrollment job",
"tags": [
"wireless",
"configure",
"zigbee",
"disenrollments"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/wireless/zigbee/doorLocks": {
"get": {
"description": "Return the list of doorlocks for a network",
"operationId": "getOrganizationWirelessZigbeeDoorLocks",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"type": "array",
"items": {
"type": "string"
},
"name": "networkIds",
"in": "query",
"description": "Filter by specified Network IDs"
},
{
"type": "string",
"name": "serial",
"in": "query",
"description": "Filter by device serial"
},
{
"type": "integer",
"name": "perPage",
"in": "query",
"description": "The number of entries per page returned. Acceptable range is 3 - 500. Default is 50."
},
{
"type": "string",
"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."
},
{
"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."
}
],
"responses": {
"200": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The Door Lock ID"
},
"displayName": {
"type": "string",
"description": "The Door lock name"
},
"shortId": {
"type": "string",
"description": "The Door lock short ID"
},
"lqi": {
"type": "string",
"description": "The Door lock L quality index"
},
"rssi": {
"type": "string",
"description": "The Door lock received signal strength indicator"
},
"status": {
"type": "string",
"enum": [
"offline",
"online"
],
"description": "The Door lock status, either online or offline."
},
"eui64": {
"type": "string",
"description": "The Door lock unique identifier per network"
},
"enrolledAt": {
"type": "string",
"format": "date-time",
"description": "Date time the door lock was enrolled"
},
"lastSeenAt": {
"type": "string",
"format": "date-time",
"description": "Date time the door lock last send any messages"
},
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network ID"
},
"name": {
"type": "string",
"description": "Network name"
}
},
"description": "Network this door lock is connected to"
},
"gateway": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "MR Device Name"
},
"serial": {
"type": "string",
"description": "Gateway serial"
}
},
"description": "Gateway this door lock is connected to"
}
}
}
},
"headers": {
"Link": {
"type": "string",
"description": "A comma-separated list of first, last, prev, and next relative links used for subsequent paginated requests."
}
},
"examples": {
"application/json": [
{
"id": "1",
"displayName": "Door Lock 403",
"shortId": "ABE123",
"lqi": "1",
"rssi": "1",
"status": "online",
"eui64": "DL403",
"enrolledAt": "2023-08-14T19:57:06Z",
"lastSeenAt": "2023-08-14T19:59:01Z",
"network": {
"id": "N_24329156",
"name": "Main Office"
},
"gateway": {
"name": "My AP",
"serial": "Q234-ABCD-5678"
}
}
]
}
}
},
"summary": "Return the list of doorlocks for a network",
"tags": [
"wireless",
"configure",
"zigbee",
"doorLocks"
],
"x-release-stage": "beta"
}
},
"/organizations/{organizationId}/wireless/zigbee/doorLocks/bulkUpdate": {
"post": {
"description": "Endpoint to bulk update door locks params",
"operationId": "createOrganizationWirelessZigbeeDoorLocksBulkUpdate",
"parameters": [
{
"name": "organizationId",
"in": "path",
"description": "Organization ID",
"type": "string",
"required": true
},
{
"name": "createOrganizationWirelessZigbeeDoorLocksBulkUpdate",
"in": "body",
"schema": {
"type": "object",
"properties": {
"doorLocks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique Meraki Idenfier"
},
"displayName": {
"type": "string",
"description": "Display Name to Update"
}
}
},
"description": "List of Update Attributes"
}
},
"example": {
"doorLocks": [
{
"id": "1234",
"displayName": "group_name"
}
]
},
"required": [
"doorLocks"
]
},
"required": true
}
],
"responses": {
"201": {
"description": "Successful operation",
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The Door Lock ID"
},
"displayName": {
"type": "string",
"description": "The Door lock name"
},
"shortId": {
"type": "string",
"description": "The Door lock short ID"
},
"lqi": {
"type": "string",
"description": "The Door lock L quality index"
},
"rssi": {
"type": "string",
"description": "The Door lock received signal strength indicator"
},
"status": {
"type": "string",
"enum": [
"offline",
"online"
],
"description": "The Door lock status, either online or offline."
},
"eui64": {
"type": "string",
"description": "The Door lock unique identifier per network"
},
"enrolledAt": {
"type": "string",
"format": "date-time",
"description": "Date time the door lock was enrolled"
},
"lastSeenAt": {
"type": "string",
"format": "date-time",
"description": "Date time the door lock last send any messages"
},
"network": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Network ID"
},
"name": {
"type": "string",
"description": "Network name"
}
},
"description": "Network this door lock is connected to"
},
"gateway": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "MR Device Name"
},
"serial": {
"type": "string",
"description": "Gateway serial"
}
},
"description": "Gateway this door lock is connected to"
}
}
}
},
"examples": {
"application/json": [
{
"id": "1",
"displayName": "Door Lock 403",
"shortId": "ABE123",
"lqi": "1",
"rssi": "1",
"status": "online",
"eui64": "DL403",
"enrolledAt": "2023-08-14T19:57:06Z",
"lastSeenAt": "2023-08-14T19:59:01Z",
"network": {
"id": "N_24329156",
"name": "Main Office"
},
"gateway": {
"name": "My AP",
"serial": "Q234-ABCD-5678"
}
}
]
}
}
},
"summary": "Endpoint to bulk update door locks params",
"tags": [
"wireless",
"configure",
"zigbee",
"doorLocks",
"bulkUpdate"
],
"x-release-stage": "beta"
}
}
},
"tags": [
{
"name": "organizations"
},
{
"name": "networks"
},
{
"name": "devices"
},
{
"name": "insight"
},
{
"name": "wireless"
},
{
"name": "camera"
},
{
"name": "appliance"
},
{
"name": "switch"
},
{
"name": "cellularGateway"
},
{
"name": "sm"
},
{
"name": "sensor"
},
{
"name": "administered"
},
{
"name": "accessControlLists"
},
{
"name": "accessPolicies"
},
{
"name": "aclHitCount"
},
{
"name": "acls"
},
{
"name": "actionBatches"
},
{
"name": "activities"
},
{
"name": "adaptivePolicy"
},
{
"name": "addresses"
},
{
"name": "admins"
},
{
"name": "airMarshal"
},
{
"name": "alertTypes"
},
{
"name": "alerts"
},
{
"name": "alternateManagementInterface"
},
{
"name": "analytics"
},
{
"name": "apiRequests"
},
{
"name": "apnsCert"
},
{
"name": "apple"
},
{
"name": "appliances"
},
{
"name": "applicationCategories"
},
{
"name": "applicationUsage"
},
{
"name": "applications"
},
{
"name": "areas"
},
{
"name": "arpInspection"
},
{
"name": "arpTable"
},
{
"name": "artifacts"
},
{
"name": "assets"
},
{
"name": "assignments"
},
{
"name": "authenticationToken"
},
{
"name": "autoRf"
},
{
"name": "availabilities"
},
{
"name": "bandwidthUsageHistory"
},
{
"name": "bgp"
},
{
"name": "billing"
},
{
"name": "blink"
},
{
"name": "bluetooth"
},
{
"name": "bluetoothClients"
},
{
"name": "bonjourForwarding"
},
{
"name": "boundaries"
},
{
"name": "brandingPolicies"
},
{
"name": "bulk"
},
{
"name": "bulkEnrollment"
},
{
"name": "bulkUpdate"
},
{
"name": "byBoundary"
},
{
"name": "byClient"
},
{
"name": "byDevice"
},
{
"name": "byEnergyUsage"
},
{
"name": "byInterval"
},
{
"name": "byMetric"
},
{
"name": "byNetwork"
},
{
"name": "byStatus"
},
{
"name": "bySwitch"
},
{
"name": "byUsage"
},
{
"name": "byUtilization"
},
{
"name": "bypassActivationLockAttempts"
},
{
"name": "cableTest"
},
{
"name": "callbacks"
},
{
"name": "categories"
},
{
"name": "cellular"
},
{
"name": "cellularFirewallRules"
},
{
"name": "cellularUsageHistory"
},
{
"name": "certificates"
},
{
"name": "certs"
},
{
"name": "changeHistory"
},
{
"name": "channelUtilization"
},
{
"name": "channelUtilizationHistory"
},
{
"name": "channels"
},
{
"name": "claim"
},
{
"name": "claimKey"
},
{
"name": "clientCountHistory"
},
{
"name": "clients"
},
{
"name": "cloud"
},
{
"name": "cloudEnrollment"
},
{
"name": "cloudMonitoring"
},
{
"name": "commands"
},
{
"name": "compliance"
},
{
"name": "configTemplates"
},
{
"name": "configurationChanges"
},
{
"name": "configure"
},
{
"name": "connectionStats"
},
{
"name": "connectivity"
},
{
"name": "connectivityEvents"
},
{
"name": "connectivityMonitoringDestinations"
},
{
"name": "contentFiltering"
},
{
"name": "contents"
},
{
"name": "coterm"
},
{
"name": "current"
},
{
"name": "customAnalytics"
},
{
"name": "customPerformanceClasses"
},
{
"name": "cyclePort"
},
{
"name": "dataRateHistory"
},
{
"name": "delegated"
},
{
"name": "deltas"
},
{
"name": "desktopLogs"
},
{
"name": "detections"
},
{
"name": "deviceCertificateAuthorities"
},
{
"name": "deviceCommandLogs"
},
{
"name": "deviceProfiles"
},
{
"name": "deviceTypeGroupPolicies"
},
{
"name": "dhcp"
},
{
"name": "dhcpServerPolicy"
},
{
"name": "disenrollments"
},
{
"name": "doorLocks"
},
{
"name": "download"
},
{
"name": "dscpTaggingOptions"
},
{
"name": "dscpToCosMappings"
},
{
"name": "eapOverride"
},
{
"name": "earlyAccess"
},
{
"name": "enrollments"
},
{
"name": "entitlements"
},
{
"name": "ethernet"
},
{
"name": "eventTypes"
},
{
"name": "events"
},
{
"name": "exportEvents"
},
{
"name": "extensions"
},
{
"name": "failedConnections"
},
{
"name": "features"
},
{
"name": "fields"
},
{
"name": "firewall"
},
{
"name": "firewalledServices"
},
{
"name": "firmware"
},
{
"name": "firmwareUpgrades"
},
{
"name": "floorPlans"
},
{
"name": "groupPolicies"
},
{
"name": "groups"
},
{
"name": "health"
},
{
"name": "healthByTime"
},
{
"name": "healthScores"
},
{
"name": "history"
},
{
"name": "hotspot20"
},
{
"name": "httpServers"
},
{
"name": "identities"
},
{
"name": "identityPsks"
},
{
"name": "idps"
},
{
"name": "import"
},
{
"name": "imports"
},
{
"name": "inboundCellularFirewallRules"
},
{
"name": "inboundFirewallRules"
},
{
"name": "interfaces"
},
{
"name": "internetPolicies"
},
{
"name": "intrusion"
},
{
"name": "inventory"
},
{
"name": "ipv6"
},
{
"name": "l3FirewallRules"
},
{
"name": "l7FirewallRules"
},
{
"name": "lan"
},
{
"name": "latencyHistory"
},
{
"name": "latencyStats"
},
{
"name": "latest"
},
{
"name": "leds"
},
{
"name": "licenses"
},
{
"name": "licensing"
},
{
"name": "lines"
},
{
"name": "linkAggregations"
},
{
"name": "linkLayer"
},
{
"name": "live"
},
{
"name": "liveTools"
},
{
"name": "lldpCdp"
},
{
"name": "locationScanning"
},
{
"name": "loginSecurity"
},
{
"name": "logs"
},
{
"name": "lossAndLatencyHistory"
},
{
"name": "macTable"
},
{
"name": "malware"
},
{
"name": "managementInterface"
},
{
"name": "manufacturers"
},
{
"name": "me"
},
{
"name": "merakiAuthUsers"
},
{
"name": "meshStatuses"
},
{
"name": "models"
},
{
"name": "monitor"
},
{
"name": "monitoredMediaServers"
},
{
"name": "mqttBrokers"
},
{
"name": "mtu"
},
{
"name": "multicast"
},
{
"name": "netflow"
},
{
"name": "networkAdapters"
},
{
"name": "networkHealth"
},
{
"name": "objectDetectionModels"
},
{
"name": "onboarding"
},
{
"name": "onboardingHistory"
},
{
"name": "oneToManyNatRules"
},
{
"name": "oneToOneNatRules"
},
{
"name": "openapiSpec"
},
{
"name": "optIns"
},
{
"name": "order"
},
{
"name": "ospf"
},
{
"name": "overview"
},
{
"name": "packetLoss"
},
{
"name": "packets"
},
{
"name": "payloadTemplates"
},
{
"name": "performance"
},
{
"name": "performanceHistory"
},
{
"name": "permissions"
},
{
"name": "pii"
},
{
"name": "piiKeys"
},
{
"name": "ping"
},
{
"name": "pingDevice"
},
{
"name": "planning"
},
{
"name": "policies"
},
{
"name": "policy"
},
{
"name": "policyObjects"
},
{
"name": "portForwardingRules"
},
{
"name": "portSchedules"
},
{
"name": "ports"
},
{
"name": "power"
},
{
"name": "powerModules"
},
{
"name": "prefixes"
},
{
"name": "prepare"
},
{
"name": "priorities"
},
{
"name": "privateApplicationGroups"
},
{
"name": "privateApplications"
},
{
"name": "profiles"
},
{
"name": "provisioning"
},
{
"name": "publicApplications"
},
{
"name": "qosRules"
},
{
"name": "qualityAndRetention"
},
{
"name": "qualityRetentionProfiles"
},
{
"name": "radSec"
},
{
"name": "radio"
},
{
"name": "readings"
},
{
"name": "recent"
},
{
"name": "regions"
},
{
"name": "relationships"
},
{
"name": "remoteAccessLog"
},
{
"name": "remoteAccessLogsExports"
},
{
"name": "rendezvousPoints"
},
{
"name": "requests"
},
{
"name": "requirements"
},
{
"name": "responseCodes"
},
{
"name": "restrictions"
},
{
"name": "revocationList"
},
{
"name": "rfProfiles"
},
{
"name": "roles"
},
{
"name": "rollbacks"
},
{
"name": "routing"
},
{
"name": "routingTable"
},
{
"name": "rules"
},
{
"name": "salesRepresentatives"
},
{
"name": "saml"
},
{
"name": "samlRoles"
},
{
"name": "schedules"
},
{
"name": "sdwan"
},
{
"name": "search"
},
{
"name": "secureConnect"
},
{
"name": "security"
},
{
"name": "securityCenters"
},
{
"name": "seen"
},
{
"name": "sense"
},
{
"name": "sentry"
},
{
"name": "servers"
},
{
"name": "settings"
},
{
"name": "signalQualityHistory"
},
{
"name": "sims"
},
{
"name": "singleLan"
},
{
"name": "siteToSiteVpn"
},
{
"name": "sites"
},
{
"name": "smDevicesForKey"
},
{
"name": "smOwnersForKey"
},
{
"name": "snmp"
},
{
"name": "softwares"
},
{
"name": "speedTest"
},
{
"name": "speedTestResults"
},
{
"name": "splash"
},
{
"name": "splashAuthorizationStatus"
},
{
"name": "splashLoginAttempts"
},
{
"name": "ssids"
},
{
"name": "stacks"
},
{
"name": "staged"
},
{
"name": "stages"
},
{
"name": "staticRoutes"
},
{
"name": "statics"
},
{
"name": "stats"
},
{
"name": "status"
},
{
"name": "statuses"
},
{
"name": "stormControl"
},
{
"name": "stp"
},
{
"name": "subnetPool"
},
{
"name": "subnets"
},
{
"name": "subscription"
},
{
"name": "subscriptions"
},
{
"name": "summary"
},
{
"name": "support"
},
{
"name": "supported"
},
{
"name": "swaps"
},
{
"name": "switches"
},
{
"name": "syncJobs"
},
{
"name": "syslogServers"
},
{
"name": "targetGroups"
},
{
"name": "tests"
},
{
"name": "themes"
},
{
"name": "thirdPartyVPNPeers"
},
{
"name": "thousandEyes"
},
{
"name": "throughputTest"
},
{
"name": "token"
},
{
"name": "tokens"
},
{
"name": "top"
},
{
"name": "topology"
},
{
"name": "traceRoute"
},
{
"name": "traffic"
},
{
"name": "trafficAnalysis"
},
{
"name": "trafficHistory"
},
{
"name": "trafficShaping"
},
{
"name": "trustedAccessConfigs"
},
{
"name": "trustedServers"
},
{
"name": "upgrades"
},
{
"name": "uplink"
},
{
"name": "uplinkBandwidth"
},
{
"name": "uplinkSelection"
},
{
"name": "uplinks"
},
{
"name": "uplinksLossAndLatency"
},
{
"name": "usage"
},
{
"name": "usageHistories"
},
{
"name": "usageHistory"
},
{
"name": "userAccessDevices"
},
{
"name": "users"
},
{
"name": "v4"
},
{
"name": "video"
},
{
"name": "videoLink"
},
{
"name": "vlanAssignments"
},
{
"name": "vlanProfiles"
},
{
"name": "vlans"
},
{
"name": "vmx"
},
{
"name": "vpn"
},
{
"name": "vpnExclusions"
},
{
"name": "vpnFirewallRules"
},
{
"name": "vppAccounts"
},
{
"name": "wakeOnLan"
},
{
"name": "warmSpare"
},
{
"name": "warnings"
},
{
"name": "webApps"
},
{
"name": "webhookTests"
},
{
"name": "webhooks"
},
{
"name": "wirelessProfiles"
},
{
"name": "wlanLists"
},
{
"name": "zigbee"
},
{
"name": "zones"
}
],
"x-batchable-actions": [
{
"group": "Adaptive policy",
"summary": "Add an Adaptive Policy",
"resource": "/organizations/{organizationId}/adaptivePolicy/policies",
"operation": "create"
},
{
"group": "Adaptive policy",
"summary": "Delete an Adaptive Policy",
"resource": "/organizations/{organizationId}/adaptivePolicy/policies/{id}",
"operation": "destroy"
},
{
"group": "Adaptive policy",
"summary": "Update an Adaptive Policy",
"resource": "/organizations/{organizationId}/adaptivePolicy/policies/{id}",
"operation": "update"
},
{
"group": "Adaptive policy group",
"summary": "Creates a new adaptive policy group",
"resource": "/organizations/{organizationId}/adaptivePolicy/groups",
"operation": "create"
},
{
"group": "Adaptive policy group",
"summary": "Deletes the specified adaptive policy group and any associated policies and references",
"resource": "/organizations/{organizationId}/adaptivePolicy/groups/{id}",
"operation": "destroy"
},
{
"group": "Adaptive policy group",
"summary": "Updates an adaptive policy group. If updating \"Infrastructure\", only the SGT is allowed. Cannot update \"Unknown\".",
"resource": "/organizations/{organizationId}/adaptivePolicy/groups/{id}",
"operation": "update"
},
{
"group": "Adaptive policy settings",
"summary": "Update global adaptive policy settings",
"resource": "/organizations/{organizationId}/adaptivePolicy/settings",
"operation": "update"
},
{
"group": "Alternate management interface",
"summary": "Update the switch alternate management interface for the network",
"resource": "/networks/{networkId}/switch/alternateManagementInterface",
"operation": "update"
},
{
"group": "Appliance radio settings",
"summary": "Update the radio settings of an appliance",
"resource": "/devices/{serial}/appliance/radio/settings",
"operation": "update"
},
{
"group": "Appliance ssid",
"summary": "Update the attributes of an MX SSID",
"resource": "/networks/{networkId}/appliance/ssids/{number}",
"operation": "update"
},
{
"group": "Billing",
"summary": "Update the billing settings",
"resource": "/networks/{networkId}/wireless/billing",
"operation": "update"
},
{
"group": "Bluetooth device setting",
"summary": "Update the bluetooth settings for a wireless device",
"resource": "/devices/{serial}/wireless/bluetooth/settings",
"operation": "update"
},
{
"group": "Camera custom analytics settings",
"summary": "Update custom analytics settings for a camera",
"resource": "/devices/{serial}/camera/customAnalytics",
"operation": "update"
},
{
"group": "Camera video settings",
"summary": "Update video settings for the given camera",
"resource": "/devices/{serial}/camera/video/settings",
"operation": "update"
},
{
"group": "Camera wireless profile settings",
"summary": "Assign wireless profiles to the given camera. Incremental updates are not supported, all profile assignment need to be supplied at once.",
"resource": "/devices/{serial}/camera/wirelessProfiles",
"operation": "update"
},
{
"group": "Cellular gateway connectivity monitoring destination",
"summary": "Update the connectivity testing destinations for an MG network",
"resource": "/networks/{networkId}/cellularGateway/connectivityMonitoringDestinations",
"operation": "update"
},
{
"group": "Cellular gateway device lan",
"summary": "Update the LAN Settings for a single MG.",
"resource": "/devices/{serial}/cellularGateway/lan",
"operation": "update"
},
{
"group": "Cellular gateway dhcp setting",
"summary": "Update common DHCP settings of MGs",
"resource": "/networks/{networkId}/cellularGateway/dhcp",
"operation": "update"
},
{
"group": "Cellular gateway port forwarding rules",
"summary": "Updates the port forwarding rules for a single MG.",
"resource": "/devices/{serial}/cellularGateway/portForwardingRules",
"operation": "update"
},
{
"group": "Cellular gateway subnet pool",
"summary": "Update the subnet pool and mask configuration for MGs in the network.",
"resource": "/networks/{networkId}/cellularGateway/subnetPool",
"operation": "update"
},
{
"group": "Cellular gateway uplink setting",
"summary": "Updates the uplink settings for your MG network.",
"resource": "/networks/{networkId}/cellularGateway/uplink",
"operation": "update"
},
{
"group": "Certificate",
"summary": "Import certificate for this organization",
"resource": "/organizations/{organizationId}/certificates/import",
"operation": "create"
},
{
"group": "Config template",
"summary": "Create a new configuration template",
"resource": "/organizations/{organizationId}/configTemplates",
"operation": "create"
},
{
"group": "Config template",
"summary": "Update a configuration template",
"resource": "/organizations/{organizationId}/configTemplates/{configTemplateId}",
"operation": "update"
},
{
"group": "Custom performance class",
"summary": "Add a custom performance class for an MX network",
"resource": "/networks/{networkId}/appliance/trafficShaping/customPerformanceClasses",
"operation": "create"
},
{
"group": "Custom performance class",
"summary": "Delete a custom performance class from an MX network",
"resource": "/networks/{networkId}/appliance/trafficShaping/customPerformanceClasses/{customPerformanceClassId}",
"operation": "destroy"
},
{
"group": "Custom performance class",
"summary": "Update a custom performance class for an MX network",
"resource": "/networks/{networkId}/appliance/trafficShaping/customPerformanceClasses/{customPerformanceClassId}",
"operation": "update"
},
{
"group": "Dai trusted server",
"summary": "Add a server to be trusted by Dynamic ARP Inspection on this network",
"resource": "/networks/{networkId}/switch/dhcpServerPolicy/arpInspection/trustedServers",
"operation": "create"
},
{
"group": "Dai trusted server",
"summary": "Remove a server from being trusted by Dynamic ARP Inspection on this network",
"resource": "/networks/{networkId}/switch/dhcpServerPolicy/arpInspection/trustedServers/{trustedServerId}",
"operation": "destroy"
},
{
"group": "Dai trusted server",
"summary": "Update a server that is trusted by Dynamic ARP Inspection on this network",
"resource": "/networks/{networkId}/switch/dhcpServerPolicy/arpInspection/trustedServers/{trustedServerId}",
"operation": "update"
},
{
"group": "Dash xl/dashboard branding policy",
"summary": "Add a new branding policy to an organization",
"resource": "/organizations/{organizationId}/brandingPolicies",
"operation": "create"
},
{
"group": "Dash xl/dashboard branding policy",
"summary": "Delete a branding policy",
"resource": "/organizations/{organizationId}/brandingPolicies/{brandingPolicyId}",
"operation": "destroy"
},
{
"group": "Dash xl/dashboard branding policy",
"summary": "Update a branding policy",
"resource": "/organizations/{organizationId}/brandingPolicies/{brandingPolicyId}",
"operation": "update"
},
{
"group": "Dash xl/dashboard branding policy priorities",
"summary": "Update the priority ordering of an organization's branding policies.",
"resource": "/organizations/{organizationId}/brandingPolicies/priorities",
"operation": "update"
},
{
"group": "Dashboard features/actions/client",
"summary": "Provisions a client with a name and policy. Clients can be provisioned before they associate to the network.",
"resource": "/networks/{networkId}/clients",
"operation": "provision"
},
{
"group": "Device",
"summary": "Update the attributes of a device",
"resource": "/devices/{serial}",
"operation": "update"
},
{
"group": "Device",
"summary": "Remove a single device",
"resource": "/networks/{networkId}/devices",
"operation": "remove"
},
{
"group": "Device",
"summary": "Claim devices into a network. (Note: for recently claimed devices, it may take a few minutes for API requests against that device to succeed). This operation can be used up to ten times within a single five minute window.",
"resource": "/networks/{networkId}/devices/claim",
"operation": "claim"
},
{
"group": "Dhcp server policy",
"summary": "Update the DHCP server settings. Blocked/allowed servers are only applied when default policy is allow/block, respectively",
"resource": "/networks/{networkId}/switch/dhcpServerPolicy",
"operation": "update"
},
{
"group": "Dscp cos mapping",
"summary": "Update the DSCP to CoS mappings",
"resource": "/networks/{networkId}/switch/dscpToCosMappings",
"operation": "update"
},
{
"group": "Eap override",
"summary": "Update the EAP overridden parameters for an SSID.",
"resource": "/networks/{networkId}/wireless/ssids/{number}/eapOverride",
"operation": "update"
},
{
"group": "End users/actions/meraki auth user",
"summary": "Authorize a user configured with Meraki Authentication for a network (currently supports 802.1X, splash guest, and client VPN users, and currently, organizations have a 50,000 user cap)",
"resource": "/networks/{networkId}/merakiAuthUsers",
"operation": "create"
},
{
"group": "End users/actions/meraki auth user",
"summary": "Delete an 802.1X RADIUS user, or deauthorize and optionally delete a splash guest or client VPN user.",
"resource": "/networks/{networkId}/merakiAuthUsers/{merakiAuthUserId}",
"operation": "destroy"
},
{
"group": "End users/actions/meraki auth user",
"summary": "Update a user configured with Meraki Authentication (currently, 802.1X RADIUS, splash guest, and client VPN users can be updated)",
"resource": "/networks/{networkId}/merakiAuthUsers/{merakiAuthUserId}",
"operation": "update"
},
{
"group": "Feature opt in",
"summary": "Update an early access feature opt-in for an organization",
"resource": "/organizations/{organizationId}/earlyAccess/features/optIns/{optInId}",
"operation": "update"
},
{
"group": "Firmware upgrade rollback",
"summary": "Rollback a Firmware Upgrade For A Network",
"resource": "/networks/{networkId}/firmwareUpgrades/rollbacks",
"operation": "create"
},
{
"group": "Firmware upgrades update",
"summary": "Update firmware upgrade information for a network",
"resource": "/networks/{networkId}/firmwareUpgrades",
"operation": "update"
},
{
"group": "Floor plan",
"summary": "Destroy a floor plan",
"resource": "/networks/{networkId}/floorPlans/{floorPlanId}",
"operation": "destroy"
},
{
"group": "Floor plan",
"summary": "Update a floor plan's geolocation and other meta data",
"resource": "/networks/{networkId}/floorPlans/{floorPlanId}",
"operation": "update"
},
{
"group": "Foo",
"summary": "Delete a PccBulkEnrollmentToken",
"resource": "/organizations/{organizationId}/sm/bulkEnrollment/token/{tokenId}",
"operation": "destroy"
},
{
"group": "Frontizo/actions/site",
"summary": "Enroll sites in this organization to Secure Connect. For an organization, a maximum of 4000 sites can be enrolled if they are in spoke mode or a maximum of 10 sites can be enrolled in hub mode.",
"resource": "/organizations/{organizationId}/secureConnect/sites",
"operation": "create"
},
{
"group": "Frontizo/actions/site",
"summary": "Detach given sites from Secure Connect",
"resource": "/organizations/{organizationId}/secureConnect/sites",
"operation": "destroy"
},
{
"group": "Group policy",
"summary": "Create a group policy",
"resource": "/networks/{networkId}/groupPolicies",
"operation": "create"
},
{
"group": "Group policy",
"summary": "Delete a group policy",
"resource": "/networks/{networkId}/groupPolicies/{groupPolicyId}",
"operation": "destroy"
},
{
"group": "Group policy",
"summary": "Update a group policy",
"resource": "/networks/{networkId}/groupPolicies/{groupPolicyId}",
"operation": "update"
},
{
"group": "Hotspot20",
"summary": "Update the Hotspot 2.0 settings of an SSID",
"resource": "/networks/{networkId}/wireless/ssids/{number}/hotspot20",
"operation": "update"
},
{
"group": "Insight/actions/org wide alerts/alert config",
"summary": "Create an organization-wide alert configuration",
"resource": "/organizations/{organizationId}/alerts/profiles",
"operation": "create"
},
{
"group": "Insight/actions/org wide alerts/alert config",
"summary": "Removes an organization-wide alert config",
"resource": "/organizations/{organizationId}/alerts/profiles/{alertConfigId}",
"operation": "destroy"
},
{
"group": "Insight/actions/org wide alerts/alert config",
"summary": "Update an organization-wide alert config",
"resource": "/organizations/{organizationId}/alerts/profiles/{alertConfigId}",
"operation": "update"
},
{
"group": "Insight/actions/tracked app",
"summary": "Add an Insight tracked application",
"resource": "/organizations/{organizationId}/insight/applications",
"operation": "create"
},
{
"group": "Insight/actions/tracked app",
"summary": "Delete an Insight tracked application",
"resource": "/organizations/{organizationId}/insight/applications/{applicationId}",
"operation": "destroy"
},
{
"group": "Insight/actions/tracked app",
"summary": "Update an Insight tracked application",
"resource": "/organizations/{organizationId}/insight/applications/{applicationId}",
"operation": "update"
},
{
"group": "Insight/actions/web app",
"summary": "Add a custom web application for Insight to be able to track",
"resource": "/organizations/{organizationId}/insight/webApps",
"operation": "create"
},
{
"group": "Insight/actions/web app",
"summary": "Delete a custom web application by counter set rule id.",
"resource": "/organizations/{organizationId}/insight/webApps/{customCounterSetRuleId}",
"operation": "destroy"
},
{
"group": "Insight/actions/web app",
"summary": "Update a custom web application for Insight to be able to track",
"resource": "/organizations/{organizationId}/insight/webApps/{customCounterSetRuleId}",
"operation": "update"
},
{
"group": "Insight/meraki application platform/thousand eyes/actions/config",
"summary": "Add a ThousandEyes agent for this network. Only valid for networks with access to Meraki Insight. Organization must have a ThousandEyes account connected to perform this action.",
"resource": "/organizations/{organizationId}/extensions/thousandEyes/networks",
"operation": "create"
},
{
"group": "Insight/meraki application platform/thousand eyes/actions/config",
"summary": "Delete a ThousandEyes agent from this network. Only valid for networks with access to Meraki Insight. Organization must have a ThousandEyes account connected to perform this action.",
"resource": "/organizations/{organizationId}/extensions/thousandEyes/networks/{networkId}",
"operation": "destroy"
},
{
"group": "Insight/meraki application platform/thousand eyes/actions/config",
"summary": "Update a ThousandEyes agent from this network. Only valid for networks with access to Meraki Insight. Organization must have a ThousandEyes account connected to perform this action.",
"resource": "/organizations/{organizationId}/extensions/thousandEyes/networks/{networkId}",
"operation": "update"
},
{
"group": "Insight/thousand eyes/actions/test",
"summary": "Create a ThousandEyes test based on a provided test template. Only valid for networks with access to Meraki Insight. Organization must have a ThousandEyes account connected to perform this action.",
"resource": "/organizations/{organizationId}/extensions/thousandEyes/tests",
"operation": "create"
},
{
"group": "L3 firewall",
"summary": "Update the L3 firewall rules of an SSID on an MR network",
"resource": "/networks/{networkId}/wireless/ssids/{number}/firewall/l3FirewallRules",
"operation": "update"
},
{
"group": "L3 interface",
"summary": "Create a layer 3 interface for a switch",
"resource": "/devices/{serial}/switch/routing/interfaces",
"operation": "create"
},
{
"group": "L3 interface",
"summary": "Delete a layer 3 interface from the switch",
"resource": "/devices/{serial}/switch/routing/interfaces/{interfaceId}",
"operation": "destroy"
},
{
"group": "L3 interface",
"summary": "Update a layer 3 interface for a switch",
"resource": "/devices/{serial}/switch/routing/interfaces/{interfaceId}",
"operation": "update"
},
{
"group": "L3 interface dhcp",
"summary": "Update a layer 3 interface DHCP configuration for a switch",
"resource": "/devices/{serial}/switch/routing/interfaces/{interfaceId}/dhcp",
"operation": "update"
},
{
"group": "L3 static route",
"summary": "Create a layer 3 static route for a switch",
"resource": "/devices/{serial}/switch/routing/staticRoutes",
"operation": "create"
},
{
"group": "L3 static route",
"summary": "Delete a layer 3 static route for a switch",
"resource": "/devices/{serial}/switch/routing/staticRoutes/{staticRouteId}",
"operation": "destroy"
},
{
"group": "L3 static route",
"summary": "Update a layer 3 static route for a switch",
"resource": "/devices/{serial}/switch/routing/staticRoutes/{staticRouteId}",
"operation": "update"
},
{
"group": "License",
"summary": "Assign SM seats to a network. This will increase the managed SM device limit of the network",
"resource": "/organizations/{organizationId}/licenses",
"operation": "assignSeats"
},
{
"group": "License",
"summary": "Move licenses to another organization. This will also move any devices that the licenses are assigned to",
"resource": "/organizations/{organizationId}/licenses",
"operation": "move"
},
{
"group": "License",
"summary": "Move SM seats to another organization",
"resource": "/organizations/{organizationId}/licenses",
"operation": "moveSeats"
},
{
"group": "License",
"summary": "Renew SM seats of a license. This will extend the license expiration date of managed SM devices covered by this license",
"resource": "/organizations/{organizationId}/licenses",
"operation": "renewSeats"
},
{
"group": "License",
"summary": "Update a license",
"resource": "/organizations/{organizationId}/licenses/{licenseId}",
"operation": "update"
},
{
"group": "Link aggregation",
"summary": "Create a link aggregation group",
"resource": "/networks/{networkId}/switch/linkAggregations",
"operation": "create"
},
{
"group": "Link aggregation",
"summary": "Split a link aggregation group into separate ports",
"resource": "/networks/{networkId}/switch/linkAggregations/{linkAggregationId}",
"operation": "destroy"
},
{
"group": "Link aggregation",
"summary": "Update a link aggregation group",
"resource": "/networks/{networkId}/switch/linkAggregations/{linkAggregationId}",
"operation": "update"
},
{
"group": "Location scanning",
"summary": "Change scanning API settings",
"resource": "/networks/{networkId}/locationScanning",
"operation": "update"
},
{
"group": "Location scanning http servers",
"summary": "Set the list of scanning API receivers. Old receivers will be removed",
"resource": "/networks/{networkId}/locationScanning/httpServers",
"operation": "update"
},
{
"group": "MTU configuration",
"summary": "Update the MTU configuration",
"resource": "/networks/{networkId}/switch/mtu",
"operation": "update"
},
{
"group": "MX VLAN settings",
"summary": "Enable/Disable VLANs for the given network",
"resource": "/networks/{networkId}/appliance/vlans/settings",
"operation": "update"
},
{
"group": "MX connectivity monitoring destination",
"summary": "Update the connectivity testing destinations for an MX network",
"resource": "/networks/{networkId}/appliance/connectivityMonitoringDestinations",
"operation": "update"
},
{
"group": "MX l7 firewall",
"summary": "Update the MX L7 firewall rules for an MX network",
"resource": "/networks/{networkId}/appliance/firewall/l7FirewallRules",
"operation": "update"
},
{
"group": "MX port",
"summary": "Update the per-port VLAN settings for a single MX port.",
"resource": "/networks/{networkId}/appliance/ports/{portId}",
"operation": "update"
},
{
"group": "MX uplink setting",
"summary": "Updates the uplink bandwidth settings for your MX network.",
"resource": "/networks/{networkId}/appliance/trafficShaping/uplinkBandwidth",
"operation": "update"
},
{
"group": "Management interface settings",
"summary": "Update the management interface settings for a device",
"resource": "/devices/{serial}/managementInterface",
"operation": "update"
},
{
"group": "Monitored media server",
"summary": "Add a media server to be monitored for this organization. Only valid for organizations with Meraki Insight.",
"resource": "/organizations/{organizationId}/insight/monitoredMediaServers",
"operation": "create"
},
{
"group": "Monitored media server",
"summary": "Delete a monitored media server from this organization. Only valid for organizations with Meraki Insight.",
"resource": "/organizations/{organizationId}/insight/monitoredMediaServers/{monitoredMediaServerId}",
"operation": "destroy"
},
{
"group": "Monitored media server",
"summary": "Update a monitored media server for this organization. Only valid for organizations with Meraki Insight.",
"resource": "/organizations/{organizationId}/insight/monitoredMediaServers/{monitoredMediaServerId}",
"operation": "update"
},
{
"group": "Mqtt broker",
"summary": "Add an MQTT broker",
"resource": "/networks/{networkId}/mqttBrokers",
"operation": "create"
},
{
"group": "Mqtt broker",
"summary": "Delete an MQTT broker",
"resource": "/networks/{networkId}/mqttBrokers/{mqttBrokerId}",
"operation": "destroy"
},
{
"group": "Mqtt broker",
"summary": "Update an MQTT broker",
"resource": "/networks/{networkId}/mqttBrokers/{mqttBrokerId}",
"operation": "update"
},
{
"group": "Mr/actions/ap port profile",
"summary": "Create an AP port profile",
"resource": "/networks/{networkId}/wireless/ethernet/ports/profiles",
"operation": "create"
},
{
"group": "Mr/actions/ap port profile",
"summary": "Delete an AP port profile",
"resource": "/networks/{networkId}/wireless/ethernet/ports/profiles/{profileId}",
"operation": "destroy"
},
{
"group": "Mr/actions/ap port profile",
"summary": "Update the AP port profile by ID for this network",
"resource": "/networks/{networkId}/wireless/ethernet/ports/profiles/{profileId}",
"operation": "update"
},
{
"group": "Mr/actions/ap port profile assign",
"summary": "Assign AP port profile to list of APs",
"resource": "/networks/{networkId}/wireless/ethernet/ports/profiles",
"operation": "aps"
},
{
"group": "Mr/actions/ap port profile set",
"summary": "Set the AP port profile to be default for this network",
"resource": "/networks/{networkId}/wireless/ethernet/ports/profiles",
"operation": "default"
},
{
"group": "Mr/actions/wireless alternate management interface v6",
"summary": "Update alternate management interface IPv6 address",
"resource": "/devices/{serial}/wireless/alternateManagementInterface/ipv6",
"operation": "update"
},
{
"group": "Mr/actions/zigbee config",
"summary": "Update Zigbee Configs for specified network",
"resource": "/networks/{networkId}/wireless/zigbee",
"operation": "update"
},
{
"group": "Mr/actions/zigbee doorlocks bulk",
"summary": "Endpoint to bulk update door locks params",
"resource": "/organizations/{organizationId}/wireless/zigbee/doorLocks/bulkUpdate",
"operation": "update"
},
{
"group": "Mr/speedy/actions/auto RF",
"summary": "Update the AutoRF settings for a wireless network",
"resource": "/networks/{networkId}/wireless/radio/autoRf",
"operation": "update"
},
{
"group": "Ms/live tools/actions/perform leds",
"summary": "Enqueue a job to blink leds on a device",
"resource": "/devices/{serial}/liveTools/leds/blink",
"operation": "blink"
},
{
"group": "Ms/live tools/actions/perform throughput",
"summary": "Enqueue a job to test a device throughput, the test will run for 10 secs to test throughput",
"resource": "/devices/{serial}/liveTools/throughputTest",
"operation": "test"
},
{
"group": "Ms/switch",
"summary": "Update switch network settings",
"resource": "/networks/{networkId}/switch/settings",
"operation": "settings/actions/update"
},
{
"group": "Mt/api/actions/alert profiles",
"summary": "Creates a sensor alert profile for a network.",
"resource": "/networks/{networkId}/sensor/alerts/profiles",
"operation": "create"
},
{
"group": "Mt/api/actions/alert profiles",
"summary": "Deletes a sensor alert profile from a network.",
"resource": "/networks/{networkId}/sensor/alerts/profiles/{id}",
"operation": "destroy"
},
{
"group": "Mt/api/actions/alert profiles",
"summary": "Updates a sensor alert profile for a network.",
"resource": "/networks/{networkId}/sensor/alerts/profiles/{id}",
"operation": "update"
},
{
"group": "Mt/api/actions/commands",
"summary": "Sends a command to a sensor",
"resource": "/devices/{serial}/sensor/commands",
"operation": "create"
},
{
"group": "Mt/api/actions/sensor gateway role",
"summary": "Assign one or more sensor roles to a given sensor or camera device.",
"resource": "/devices/{serial}/sensor/relationships",
"operation": "update"
},
{
"group": "Mt/api/actions/sensor mqtt broker",
"summary": "Update the sensor settings of an MQTT broker. To update the broker itself, use /networks/{networkId}/mqttBrokers/{mqttBrokerId}.",
"resource": "/networks/{networkId}/sensor/mqttBrokers/{mqttBrokerId}",
"operation": "update"
},
{
"group": "Multicast",
"summary": "Update multicast settings for a network",
"resource": "/networks/{networkId}/switch/routing/multicast",
"operation": "update"
},
{
"group": "Network",
"summary": "Bind a network to a template.",
"resource": "/networks/{networkId}",
"operation": "bind"
},
{
"group": "Network",
"summary": "Delete a network",
"resource": "/networks/{networkId}",
"operation": "destroy"
},
{
"group": "Network",
"summary": "Split a combined network into individual networks for each type of device",
"resource": "/networks/{networkId}",
"operation": "split"
},
{
"group": "Network",
"summary": "Unbind a network from a template.",
"resource": "/networks/{networkId}",
"operation": "unbind"
},
{
"group": "Network",
"summary": "Update a network",
"resource": "/networks/{networkId}",
"operation": "update"
},
{
"group": "Network",
"summary": "Combine multiple networks into a single network",
"resource": "/organizations/{organizationId}/networks",
"operation": "combine"
},
{
"group": "Network",
"summary": "Create a network",
"resource": "/organizations/{organizationId}/networks",
"operation": "create"
},
{
"group": "Network appliance settings",
"summary": "Update the appliance settings for a network",
"resource": "/networks/{networkId}/appliance/settings",
"operation": "update"
},
{
"group": "Network settings",
"summary": "Update the settings for a network",
"resource": "/networks/{networkId}/settings",
"operation": "update"
},
{
"group": "Organization SAML IdP",
"summary": "Create a SAML IdP for your organization.",
"resource": "/organizations/{organizationId}/saml/idps",
"operation": "create"
},
{
"group": "Organization SAML IdP",
"summary": "Remove a SAML IdP in your organization.",
"resource": "/organizations/{organizationId}/saml/idps/{idpId}",
"operation": "destroy"
},
{
"group": "Organization SAML IdP",
"summary": "Update a SAML IdP in your organization",
"resource": "/organizations/{organizationId}/saml/idps/{idpId}",
"operation": "update"
},
{
"group": "Organization login security settings",
"summary": "Update the login security settings for an organization",
"resource": "/organizations/{organizationId}/loginSecurity",
"operation": "update"
},
{
"group": "Organization webhook template",
"summary": "Create a webhook payload template for an organization",
"resource": "/organizations/{organizationId}/webhooks/payloadTemplates",
"operation": "create"
},
{
"group": "Organization webhook template",
"summary": "Destroy a webhook payload template for an organization. Does not work for included templates ('wpt_00001', 'wpt_00002', 'wpt_00003', 'wpt_00004', 'wpt_00005' or 'wpt_00006')",
"resource": "/organizations/{organizationId}/webhooks/payloadTemplates/{payloadTemplateId}",
"operation": "destroy"
},
{
"group": "Organization webhook template",
"summary": "Update a webhook payload template for an organization",
"resource": "/organizations/{organizationId}/webhooks/payloadTemplates/{payloadTemplateId}",
"operation": "update"
},
{
"group": "Ospf routing",
"summary": "Update layer 3 OSPF routing configuration",
"resource": "/networks/{networkId}/switch/routing/ospf",
"operation": "update"
},
{
"group": "Policy object",
"summary": "Creates a new Policy Object.",
"resource": "/organizations/{organizationId}/policyObjects",
"operation": "create"
},
{
"group": "Policy object",
"summary": "Deletes a Policy Object.",
"resource": "/organizations/{organizationId}/policyObjects/{policyObjectId}",
"operation": "destroy"
},
{
"group": "Policy object",
"summary": "Updates a Policy Object.",
"resource": "/organizations/{organizationId}/policyObjects/{policyObjectId}",
"operation": "update"
},
{
"group": "Policy object group",
"summary": "Creates a new Policy Object Group.",
"resource": "/organizations/{organizationId}/policyObjects/groups",
"operation": "create"
},
{
"group": "Policy object group",
"summary": "Deletes a Policy Object Group.",
"resource": "/organizations/{organizationId}/policyObjects/groups/{policyObjectGroupId}",
"operation": "destroy"
},
{
"group": "Policy object group",
"summary": "Updates a Policy Object Group.",
"resource": "/organizations/{organizationId}/policyObjects/groups/{policyObjectGroupId}",
"operation": "update"
},
{
"group": "Psk group",
"summary": "Create an Identity PSK",
"resource": "/networks/{networkId}/wireless/ssids/{number}/identityPsks",
"operation": "create"
},
{
"group": "Psk group",
"summary": "Delete an Identity PSK",
"resource": "/networks/{networkId}/wireless/ssids/{number}/identityPsks/{identityPskId}",
"operation": "destroy"
},
{
"group": "Psk group",
"summary": "Update an Identity PSK",
"resource": "/networks/{networkId}/wireless/ssids/{number}/identityPsks/{identityPskId}",
"operation": "update"
},
{
"group": "Qos rule",
"summary": "Add a quality of service rule",
"resource": "/networks/{networkId}/switch/qosRules",
"operation": "create"
},
{
"group": "Qos rule",
"summary": "Update the order in which the rules should be processed by the switch",
"resource": "/networks/{networkId}/switch/qosRules/order",
"operation": "update_order"
},
{
"group": "Qos rule",
"summary": "Delete a quality of service rule",
"resource": "/networks/{networkId}/switch/qosRules/{qosRuleId}",
"operation": "destroy"
},
{
"group": "Qos rule",
"summary": "Update a quality of service rule",
"resource": "/networks/{networkId}/switch/qosRules/{qosRuleId}",
"operation": "update"
},
{
"group": "Quality and retention setting",
"summary": "Update quality and retention settings for the given camera",
"resource": "/devices/{serial}/camera/qualityAndRetention",
"operation": "update"
},
{
"group": "RF profile",
"summary": "Creates new RF profile for this network",
"resource": "/networks/{networkId}/wireless/rfProfiles",
"operation": "create"
},
{
"group": "RF profile",
"summary": "Delete a RF Profile",
"resource": "/networks/{networkId}/wireless/rfProfiles/{rfProfileId}",
"operation": "destroy"
},
{
"group": "RF profile",
"summary": "Updates specified RF profile for this network",
"resource": "/networks/{networkId}/wireless/rfProfiles/{rfProfileId}",
"operation": "update"
},
{
"group": "Radio settings",
"summary": "Update the radio settings of a device",
"resource": "/devices/{serial}/wireless/radio/settings",
"operation": "update"
},
{
"group": "Rendezvous point",
"summary": "Create a multicast rendezvous point",
"resource": "/networks/{networkId}/switch/routing/multicast/rendezvousPoints",
"operation": "create"
},
{
"group": "Rendezvous point",
"summary": "Delete a multicast rendezvous point",
"resource": "/networks/{networkId}/switch/routing/multicast/rendezvousPoints/{rendezvousPointId}",
"operation": "destroy"
},
{
"group": "Rendezvous point",
"summary": "Update a multicast rendezvous point",
"resource": "/networks/{networkId}/switch/routing/multicast/rendezvousPoints/{rendezvousPointId}",
"operation": "update"
},
{
"group": "STP configuration",
"summary": "Updates STP settings",
"resource": "/networks/{networkId}/switch/stp",
"operation": "update"
},
{
"group": "Sense setting",
"summary": "Update sense settings for the given camera",
"resource": "/devices/{serial}/camera/sense",
"operation": "update"
},
{
"group": "Single lan",
"summary": "Update single LAN configuration",
"resource": "/networks/{networkId}/appliance/singleLan",
"operation": "update"
},
{
"group": "Site to site vpn",
"summary": "Update the site-to-site VPN settings of a network. Only valid for MX networks in NAT mode.",
"resource": "/networks/{networkId}/appliance/vpn/siteToSiteVpn",
"operation": "update"
},
{
"group": "Sm/actions/ade sync job",
"summary": "Enqueue a sync job for an ADE account",
"resource": "/organizations/{organizationId}/sm/apple/cloudEnrollment/syncJobs",
"operation": "create"
},
{
"group": "Sm/actions/admins/role",
"summary": "Create a Limited Access Role",
"resource": "/organizations/{organizationId}/sm/admins/roles",
"operation": "create"
},
{
"group": "Sm/actions/admins/role",
"summary": "Delete a Limited Access Role",
"resource": "/organizations/{organizationId}/sm/admins/roles/{roleId}",
"operation": "destroy"
},
{
"group": "Sm/actions/admins/role",
"summary": "Update a Limited Access Role",
"resource": "/organizations/{organizationId}/sm/admins/roles/{roleId}",
"operation": "update"
},
{
"group": "Sm/actions/pcc bulk enrollment token",
"summary": "Create a PccBulkEnrollmentToken",
"resource": "/organizations/{organizationId}/sm/bulkEnrollment/token",
"operation": "create"
},
{
"group": "Sm/actions/pcc bulk enrollment token",
"summary": "Update a PccBulkEnrollmentToken",
"resource": "/organizations/{organizationId}/sm/bulkEnrollment/token/{tokenId}",
"operation": "update"
},
{
"group": "Sm/actions/sentry/policies/assignments",
"summary": "Update an Organizations Sentry Policies using the provided list. Sentry Policies are ordered in descending order of priority (i.e. highest priority at the bottom, this is opposite the Dashboard UI). Policies not present in the request will be deleted.",
"resource": "/organizations/{organizationId}/sm/sentry/policies/assignments",
"operation": "update"
},
{
"group": "Splash theme",
"summary": "Create a Splash Theme",
"resource": "/organizations/{organizationId}/splash/themes",
"operation": "create"
},
{
"group": "Splash theme asset",
"summary": "Delete a Splash Theme Asset",
"resource": "/organizations/{organizationId}/splash/assets/{id}",
"operation": "destroy"
},
{
"group": "Splash theme asset",
"summary": "Create a Splash Theme Asset",
"resource": "/organizations/{organizationId}/splash/themes/{themeIdentifier}/assets",
"operation": "create"
},
{
"group": "Splash2 theme",
"summary": "Delete a Splash Theme",
"resource": "/organizations/{organizationId}/splash/themes/{id}",
"operation": "destroy"
},
{
"group": "Ssid",
"summary": "Update the attributes of an MR SSID",
"resource": "/networks/{networkId}/wireless/ssids/{number}",
"operation": "update"
},
{
"group": "Ssid bonjour forwarding",
"summary": "Update the bonjour forwarding setting and rules for the SSID",
"resource": "/networks/{networkId}/wireless/ssids/{number}/bonjourForwarding",
"operation": "update"
},
{
"group": "Ssid device type group policies",
"summary": "Update the device type group policies for the SSID",
"resource": "/networks/{networkId}/wireless/ssids/{number}/deviceTypeGroupPolicies",
"operation": "update"
},
{
"group": "Ssid outage schedule",
"summary": "Update the outage schedule for the SSID",
"resource": "/networks/{networkId}/wireless/ssids/{number}/schedules",
"operation": "update"
},
{
"group": "Ssid splash settings",
"summary": "Modify the splash page settings for the given SSID",
"resource": "/networks/{networkId}/wireless/ssids/{number}/splash/settings",
"operation": "update"
},
{
"group": "Ssid vpn",
"summary": "Update the VPN settings for the SSID",
"resource": "/networks/{networkId}/wireless/ssids/{number}/vpn",
"operation": "update"
},
{
"group": "Staged upgrade/group",
"summary": "Create a Staged Upgrade Group for a network",
"resource": "/networks/{networkId}/firmwareUpgrades/staged/groups",
"operation": "create"
},
{
"group": "Staged upgrade/group",
"summary": "Delete a Staged Upgrade Group",
"resource": "/networks/{networkId}/firmwareUpgrades/staged/groups/{groupId}",
"operation": "destroy"
},
{
"group": "Static delegated prefix",
"summary": "Add a static delegated prefix from a network",
"resource": "/networks/{networkId}/appliance/prefixes/delegated/statics",
"operation": "create"
},
{
"group": "Static delegated prefix",
"summary": "Delete a static delegated prefix from a network",
"resource": "/networks/{networkId}/appliance/prefixes/delegated/statics/{staticDelegatedPrefixId}",
"operation": "destroy"
},
{
"group": "Static delegated prefix",
"summary": "Update a static delegated prefix from a network",
"resource": "/networks/{networkId}/appliance/prefixes/delegated/statics/{staticDelegatedPrefixId}",
"operation": "update"
},
{
"group": "Storm control",
"summary": "Update the storm control configuration for a switch network",
"resource": "/networks/{networkId}/switch/stormControl",
"operation": "update"
},
{
"group": "Switch",
"summary": "Clone port-level and some switch-level configuration settings from a source switch to one or more target switches. Cloned settings include: Aggregation Groups, Power Settings, Multicast Settings, MTU Configuration, STP Bridge priority, Port Mirroring",
"resource": "/organizations/{organizationId}/switch/devices",
"operation": "clone"
},
{
"group": "Switch access policy",
"summary": "Create an access policy for a switch network. If you would like to enable Meraki Authentication, set radiusServers to empty array.",
"resource": "/networks/{networkId}/switch/accessPolicies",
"operation": "create"
},
{
"group": "Switch access policy",
"summary": "Delete an access policy for a switch network",
"resource": "/networks/{networkId}/switch/accessPolicies/{accessPolicyNumber}",
"operation": "destroy"
},
{
"group": "Switch access policy",
"summary": "Update an access policy for a switch network. If you would like to enable Meraki Authentication, set radiusServers to empty array.",
"resource": "/networks/{networkId}/switch/accessPolicies/{accessPolicyNumber}",
"operation": "update"
},
{
"group": "Switch port",
"summary": "Cycle a set of switch ports",
"resource": "/devices/{serial}/switch/ports",
"operation": "cycle"
},
{
"group": "Switch port",
"summary": "Update a switch port",
"resource": "/devices/{serial}/switch/ports/{portId}",
"operation": "update"
},
{
"group": "Switch port schedule",
"summary": "Update a switch port schedule",
"resource": "/networks/{networkId}/switch/portSchedules/{portScheduleId}",
"operation": "update"
},
{
"group": "Switch profile port",
"summary": "Update a switch template port",
"resource": "/organizations/{organizationId}/configTemplates/{configTemplateId}/switch/profiles/{profileId}/ports/{portId}",
"operation": "update"
},
{
"group": "Switch stacks l3 interface",
"summary": "Create a layer 3 interface for a switch stack",
"resource": "/networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces",
"operation": "create"
},
{
"group": "Switch stacks l3 interface",
"summary": "Delete a layer 3 interface from a switch stack",
"resource": "/networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId}",
"operation": "destroy"
},
{
"group": "Switch stacks l3 interface",
"summary": "Update a layer 3 interface for a switch stack",
"resource": "/networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId}",
"operation": "update"
},
{
"group": "Switch stacks l3 interface dhcp",
"summary": "Update a layer 3 interface DHCP configuration for a switch stack",
"resource": "/networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId}/dhcp",
"operation": "update"
},
{
"group": "Switch stacks l3 static route",
"summary": "Create a layer 3 static route for a switch stack",
"resource": "/networks/{networkId}/switch/stacks/{switchStackId}/routing/staticRoutes",
"operation": "create"
},
{
"group": "Switch stacks l3 static route",
"summary": "Delete a layer 3 static route for a switch stack",
"resource": "/networks/{networkId}/switch/stacks/{switchStackId}/routing/staticRoutes/{staticRouteId}",
"operation": "destroy"
},
{
"group": "Switch stacks l3 static route",
"summary": "Update a layer 3 static route for a switch stack",
"resource": "/networks/{networkId}/switch/stacks/{switchStackId}/routing/staticRoutes/{staticRouteId}",
"operation": "update"
},
{
"group": "Switch warm spare settings",
"summary": "Update warm spare configuration for a switch. The spare will use the same L3 configuration as the primary. Note that this will irreversibly destroy any existing L3 configuration on the spare.",
"resource": "/devices/{serial}/switch/warmSpare",
"operation": "update"
},
{
"group": "Traffic shaping settings",
"summary": "Update the traffic shaping settings rules for an MX network",
"resource": "/networks/{networkId}/appliance/trafficShaping/rules",
"operation": "update"
},
{
"group": "Traffic shaping settings",
"summary": "Update the traffic shaping rules for an SSID on an MR network.",
"resource": "/networks/{networkId}/wireless/ssids/{number}/trafficShaping/rules",
"operation": "update"
},
{
"group": "Uplink selection settings",
"summary": "Update uplink selection settings for an MX network",
"resource": "/networks/{networkId}/appliance/trafficShaping/uplinkSelection",
"operation": "update"
},
{
"group": "User access device",
"summary": "Delete a User Access Device",
"resource": "/networks/{networkId}/sm/userAccessDevices/{userAccessDeviceId}",
"operation": "destroy"
},
{
"group": "V1/adaptive policy acl",
"summary": "Creates new adaptive policy ACL",
"resource": "/organizations/{organizationId}/adaptivePolicy/acls",
"operation": "create"
},
{
"group": "V1/adaptive policy acl",
"summary": "Deletes the specified adaptive policy ACL. Note this adaptive policy ACL will also be removed from policies using it.",
"resource": "/organizations/{organizationId}/adaptivePolicy/acls/{aclId}",
"operation": "destroy"
},
{
"group": "V1/adaptive policy acl",
"summary": "Updates an adaptive policy ACL",
"resource": "/organizations/{organizationId}/adaptivePolicy/acls/{aclId}",
"operation": "update"
},
{
"group": "VLAN",
"summary": "Add a VLAN",
"resource": "/networks/{networkId}/appliance/vlans",
"operation": "create"
},
{
"group": "VLAN",
"summary": "Delete a VLAN from a network",
"resource": "/networks/{networkId}/appliance/vlans/{vlanId}",
"operation": "destroy"
},
{
"group": "VLAN",
"summary": "Update a VLAN",
"resource": "/networks/{networkId}/appliance/vlans/{vlanId}",
"operation": "update"
},
{
"group": "VLAN profile",
"summary": "Create a VLAN profile for a network",
"resource": "/networks/{networkId}/vlanProfiles",
"operation": "create"
},
{
"group": "VLAN profile",
"summary": "Delete a VLAN profile of a network",
"resource": "/networks/{networkId}/vlanProfiles/{iname}",
"operation": "destroy"
},
{
"group": "Vmx",
"summary": "Claim a vMX into a network",
"resource": "/networks/{networkId}/devices/claim/vmx",
"operation": "claim"
},
{
"group": "Vmx token",
"summary": "Generate a new vMX authentication token",
"resource": "/devices/{serial}/appliance/vmx/authenticationToken",
"operation": "create"
},
{
"group": "Warm spare",
"summary": "Swap MX primary and warm spare appliances",
"resource": "/networks/{networkId}/appliance/warmSpare",
"operation": "swap"
},
{
"group": "Warm spare",
"summary": "Update MX warm spare settings",
"resource": "/networks/{networkId}/appliance/warmSpare",
"operation": "update"
},
{
"group": "Webhook template",
"summary": "Create a webhook payload template for a network",
"resource": "/networks/{networkId}/webhooks/payloadTemplates",
"operation": "create"
},
{
"group": "Webhook template",
"summary": "Destroy a webhook payload template for a network. Does not work for included templates ('wpt_00001', 'wpt_00002', 'wpt_00003', 'wpt_00004', 'wpt_00005' or 'wpt_00006')",
"resource": "/networks/{networkId}/webhooks/payloadTemplates/{payloadTemplateId}",
"operation": "destroy"
},
{
"group": "Webhook template",
"summary": "Update a webhook payload template for a network",
"resource": "/networks/{networkId}/webhooks/payloadTemplates/{payloadTemplateId}",
"operation": "update"
},
{
"group": "Wired/actions/bgp settings",
"summary": "Update a Hub BGP Configuration",
"resource": "/networks/{networkId}/appliance/vpn/bgp",
"operation": "update"
},
{
"group": "Wired/actions/vpn exclusions",
"summary": "Update VPN exclusion rules for an MX network.",
"resource": "/networks/{networkId}/appliance/trafficShaping/vpnExclusions",
"operation": "update"
},
{
"group": "Wired/actions/wan traffic uplink",
"summary": "Update SDWAN internet traffic preferences for an MX network",
"resource": "/networks/{networkId}/appliance/sdwan/internetPolicies",
"operation": "update"
},
{
"group": "Wired/appliance RF profile",
"summary": "Creates new RF profile for this network",
"resource": "/networks/{networkId}/appliance/rfProfiles",
"operation": "create"
},
{
"group": "Wired/appliance RF profile",
"summary": "Delete a RF Profile",
"resource": "/networks/{networkId}/appliance/rfProfiles/{rfProfileId}",
"operation": "destroy"
},
{
"group": "Wired/appliance RF profile",
"summary": "Updates specified RF profile for this network",
"resource": "/networks/{networkId}/appliance/rfProfiles/{rfProfileId}",
"operation": "update"
},
{
"group": "Wired/uplinks/settings",
"summary": "Update the uplink settings for an MX appliance",
"resource": "/devices/{serial}/appliance/uplinks/settings",
"operation": "update"
},
{
"group": "Wired/vpn/third party vpn peers",
"summary": "Update the third party VPN peers for an organization",
"resource": "/organizations/{organizationId}/appliance/vpn/thirdPartyVPNPeers",
"operation": "update"
},
{
"group": "Wireless alternate management interface",
"summary": "Update alternate management interface and device static IP",
"resource": "/networks/{networkId}/wireless/alternateManagementInterface",
"operation": "update"
},
{
"group": "Wireless l7 firewall",
"summary": "Update the L7 firewall rules of an SSID on an MR network",
"resource": "/networks/{networkId}/wireless/ssids/{number}/firewall/l7FirewallRules",
"operation": "update"
},
{
"group": "Wireless settings",
"summary": "Update the wireless settings for a network",
"resource": "/networks/{networkId}/wireless/settings",
"operation": "update"
}
]
}