From 1b5fb607993a7b84a2c0fb6b850e609f9e4f46d4 Mon Sep 17 00:00:00 2001 From: Cory Guynn Date: Thu, 4 Jul 2024 12:34:54 +0200 Subject: [PATCH] v1.48.0 --- changelog/changelog-config.json | 3 + changelog/v1-beta.md | 5262 ++++++++++++++++--------------- changelog/v1.48.0.md | 359 +++ documents/2024.md | 71 + 4 files changed, 3086 insertions(+), 2609 deletions(-) create mode 100644 changelog/v1.48.0.md diff --git a/changelog/changelog-config.json b/changelog/changelog-config.json index ab6f690..a3c1690 100644 --- a/changelog/changelog-config.json +++ b/changelog/changelog-config.json @@ -8,6 +8,9 @@ { "title": "Generally Available", "items": [ + { + "content": "v1.48.0.md" + }, { "content": "v1.47.0.md" }, diff --git a/changelog/v1-beta.md b/changelog/v1-beta.md index 3dcd131..0f247a7 100644 --- a/changelog/v1-beta.md +++ b/changelog/v1-beta.md @@ -1,22 +1,15 @@ - [What's Updated](#whats-updated) - * [\[ licensing \]](#-licensing-) - + [subscription](#subscription) - - [List available subscriptions](#list-available-subscriptions) - - [Claim a subscription into an organization.](#claim-a-subscription-into-an-organization) - - [Find a subscription by claim key](#find-a-subscription-by-claim-key) - * [\[ switch \]](#-switch-) - + [stacks](#stacks) - - [List layer 3 interfaces for a switch stack](#list-layer-3-interfaces-for-a-switch-stack) - - [Return a layer 3 interface from a switch stack](#return-a-layer-3-interface-from-a-switch-stack) - - [Create a layer 3 interface for a switch stack](#create-a-layer-3-interface-for-a-switch-stack) - - [Update a layer 3 interface for a switch stack](#update-a-layer-3-interface-for-a-switch-stack) + * [\[ appliance \]](#-appliance-) + + [uplinks](#uplinks) + - [Return the uplink settings for an MX appliance](#return-the-uplink-settings-for-an-mx-appliance) + - [Update the uplink settings for an MX appliance](#update-the-uplink-settings-for-an-mx-appliance) + + [vlans](#vlans) + - [Update a VLAN](#update-a-vlan) + - [Add a VLAN](#add-a-vlan) + [ports](#ports) - - [List the switchports in an organization by switch](#list-the-switchports-in-an-organization-by-switch) - + [routing](#routing) - - [List layer 3 interfaces for a switch](#list-layer-3-interfaces-for-a-switch) - - [Return a layer 3 interface for a switch](#return-a-layer-3-interface-for-a-switch) - - [Create a layer 3 interface for a switch](#create-a-layer-3-interface-for-a-switch) - - [Update a layer 3 interface for a switch](#update-a-layer-3-interface-for-a-switch) + - [List per-port VLAN settings for all ports of a MX.](#list-per-port-vlan-settings-for-all-ports-of-a-mx) + - [Return per-port VLAN settings for a single MX port.](#return-per-port-vlan-settings-for-a-single-mx-port) + - [Update the per-port VLAN settings for a single MX port.](#update-the-per-port-vlan-settings-for-a-single-mx-port) * [\[ networks \]](#-networks-) + [settings](#settings) - [Update the settings for a network](#update-the-settings-for-a-network) @@ -25,47 +18,40 @@ - [Update firmware upgrade information for a network](#update-firmware-upgrade-information-for-a-network) + [devices](#devices) - [Claim devices into a network. (Note: for recently claimed devices, it may take a few minutes for API requests against that device to succeed)](#claim-devices-into-a-network-note-for-recently-claimed-devices-it-may-take-a-few-minutes-for-api-requests-against-that-device-to-succeed) + * [\[ switch \]](#-switch-) + + [stacks](#stacks) + - [Update a layer 3 interface for a switch stack](#update-a-layer-3-interface-for-a-switch-stack) + - [Create a layer 3 interface for a switch stack](#create-a-layer-3-interface-for-a-switch-stack) + + [ports](#ports-1) + - [List the switchports in an organization by switch](#list-the-switchports-in-an-organization-by-switch) * [\[ wireless \]](#-wireless-) + [ssids](#ssids) - [Update the attributes of an MR SSID](#update-the-attributes-of-an-mr-ssid) + [rfProfiles](#rfprofiles) - [List RF profiles for this network](#list-rf-profiles-for-this-network) - [Return a RF profile](#return-a-rf-profile) - - [Creates new RF profile for this network](#creates-new-rf-profile-for-this-network) - [Updates specified RF profile for this network](#updates-specified-rf-profile-for-this-network) - * [\[ appliance \]](#-appliance-) - + [vlans](#vlans) - - [Add a VLAN](#add-a-vlan) - - [Update a VLAN](#update-a-vlan) - + [ports](#ports-1) - - [List per-port VLAN settings for all ports of a MX.](#list-per-port-vlan-settings-for-all-ports-of-a-mx) - - [Return per-port VLAN settings for a single MX port.](#return-per-port-vlan-settings-for-a-single-mx-port) - - [Update the per-port VLAN settings for a single MX port.](#update-the-per-port-vlan-settings-for-a-single-mx-port) - + [uplinks](#uplinks) - - [Return the uplink settings for an MX appliance](#return-the-uplink-settings-for-an-mx-appliance) - - [Update the uplink settings for an MX appliance](#update-the-uplink-settings-for-an-mx-appliance) - * [\[ insight \]](#-insight-) - + [applications](#applications) - - [Add an Insight tracked application](#add-an-insight-tracked-application) - - [Add an Insight tracked application](#add-an-insight-tracked-application-1) + - [Creates new RF profile for this network](#creates-new-rf-profile-for-this-network) * [\[ organizations \]](#-organizations-) + [devices](#devices-1) - [List the availability history information for devices in an organization.](#list-the-availability-history-information-for-devices-in-an-organization) - [List the status of every Meraki device in the organization](#list-the-status-of-every-meraki-device-in-the-organization) + * [\[ insight \]](#-insight-) + + [applications](#applications) + - [Add an Insight tracked application](#add-an-insight-tracked-application) + - [Add an Insight tracked application](#add-an-insight-tracked-application-1) - [What's New](#whats-new) - * [\[ switch \]](#-switch--1) - + [ports](#ports-2) - - [Return all connectivity events for each switch port in the given organization, within a given time range.](#return-all-connectivity-events-for-each-switch-port-in-the-given-organization-within-a-given-time-range) - - [List the switchports in an organization](#list-the-switchports-in-an-organization) * [\[ networks \]](#-networks--1) + [locationScanning](#locationscanning) - [Return scanning API settings](#return-scanning-api-settings) - [Change scanning API settings](#change-scanning-api-settings) - [Return list of scanning API receivers](#return-list-of-scanning-api-receivers) - [Set the list of scanning API receivers. Old receivers will be removed](#set-the-list-of-scanning-api-receivers-old-receivers-will-be-removed) + * [\[ switch \]](#-switch--1) + + [ports](#ports-2) + - [Return all connectivity events for each switch port in the given organization, within a given time range.](#return-all-connectivity-events-for-each-switch-port-in-the-given-organization-within-a-given-time-range) + - [List the switchports in an organization](#list-the-switchports-in-an-organization) * [\[ wireless \]](#-wireless--1) - + [healthScores](#healthscores) - - [Fetch the health scores for a given AP on this network](#fetch-the-health-scores-for-a-given-ap-on-this-network) + [zigbee](#zigbee) - [Enqueue a job to start enrolling doorlocks on zigbee configured MRs](#enqueue-a-job-to-start-enrolling-doorlocks-on-zigbee-configured-mrs) - [Return an enrollment job](#return-an-enrollment-job) @@ -76,28 +62,80 @@ - [Return a disenrollment job](#return-a-disenrollment-job) - [Return the list of doorlocks for a network](#return-the-list-of-doorlocks-for-a-network) - [Endpoint to bulk update door locks params](#endpoint-to-bulk-update-door-locks-params) - + [radio](#radio) - - [Update the AutoRF settings for a wireless network](#update-the-autorf-settings-for-a-wireless-network) - - [List the AutoRF settings of an organization by network](#list-the-autorf-settings-of-an-organization-by-network) - - [List the channel planning activities of an organization](#list-the-channel-planning-activities-of-an-organization) - + [devices](#devices-2) - - [Fetch the health scores of all APs on this network](#fetch-the-health-scores-of-all-aps-on-this-network) - - [Export Mars access point client count list](#export-mars-access-point-client-count-list) - - [List of Catalyst access points and summary information](#list-of-catalyst-access-points-and-summary-information) - + [wirelessLanController](#wirelesslancontroller) - - [Export wireless controller summaries containing Total AP and client counts](#export-wireless-controller-summaries-containing-total-ap-and-client-counts) - - [Export wireless controller associated access point list](#export-wireless-controller-associated-access-point-list) - - [Return wireless client counts over time for a wireless LAN controller in an organization](#return-wireless-client-counts-over-time-for-a-wireless-lan-controller-in-an-organization) - - [Export wireless controller connectivity data. If it is HA setup, then only returns active WLC data start from switchover](#export-wireless-controller-connectivity-data-if-it-is-ha-setup-then-only-returns-active-wlc-data-start-from-switchover) - - [Export wireless controller CPU utilization of core and wireless network controller daemon process, and memory utilization](#export-wireless-controller-cpu-utilization-of-core-and-wireless-network-controller-daemon-process-and-memory-utilization) - - [List the failover events for wireless LAN controller](#list-the-failover-events-for-wireless-lan-controller) - - [Export wireless controller layer 2 interfaces](#export-wireless-controller-layer-2-interfaces) - - [Export Wireless LAN Controller layer 3 interfaces](#export-wireless-lan-controller-layer-3-interfaces) - - [Export wireless controller redundancy details](#export-wireless-controller-redundancy-details) + [clients](#clients) - [Fetch the health scores for all clients on this network](#fetch-the-health-scores-for-all-clients-on-this-network) - [Return counts of distinct wireless clients connecting to a network over time](#return-counts-of-distinct-wireless-clients-connecting-to-a-network-over-time) - [Fetch the health scores for a given client on this network. Clients are identified by their MAC or ID](#fetch-the-health-scores-for-a-given-client-on-this-network-clients-are-identified-by-their-mac-or-id) + - [List access point client count at the moment in an organization](#list-access-point-client-count-at-the-moment-in-an-organization) + + [healthScores](#healthscores) + - [Fetch the health scores for a given AP on this network](#fetch-the-health-scores-for-a-given-ap-on-this-network) + + [devices](#devices-2) + - [Fetch the health scores of all APs on this network](#fetch-the-health-scores-of-all-aps-on-this-network) + - [List of Catalyst access points information](#list-of-catalyst-access-points-information) + + [radio](#radio) + - [Update the AutoRF settings for a wireless network](#update-the-autorf-settings-for-a-wireless-network) + - [List the AutoRF settings of an organization by network](#list-the-autorf-settings-of-an-organization-by-network) + - [List the channel planning activities of an organization](#list-the-channel-planning-activities-of-an-organization) + * [\[ organizations \]](#-organizations--1) + + [auth](#auth) + - [List the organization-wide RADIUS servers in the organization](#list-the-organization-wide-radius-servers-in-the-organization) + - [Add an organization-wide RADIUS server](#add-an-organization-wide-radius-server) + - [Return list of network and policies that organization-wide RADIUS servers are bing used](#return-list-of-network-and-policies-that-organization-wide-radius-servers-are-bing-used) + - [Return an organization-wide RADIUS server](#return-an-organization-wide-radius-server) + - [Update an organization-wide RADIUS server](#update-an-organization-wide-radius-server) + - [Delete an organization-wide RADIUS server from a organization](#delete-an-organization-wide-radius-server-from-a-organization) + + [certificates](#certificates) + - [Gets all or specific certificates for an organization](#gets-all-or-specific-certificates-for-an-organization) + - [Import certificate for this organization](#import-certificate-for-this-organization) + - [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.](#query-for-details-on-the-organizations-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-theyve-been-generated-an-organization-will-have-at-most-one-ca-unless-the-ca-is-being-rotated) + - [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.](#create-an-organizations-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) + - [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.](#query-for-details-on-an-organizations-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-its-been-generated) + - [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.](#update-an-organizations-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-servers-and-devices-establishing-a-secure-connection-using-certs-signed-by-this-ca-will-pass-verification) + - [Query for certificate revocation list (CRL) for the organization's RADSEC device Certificate Authority (CA) with the given id.](#query-for-certificate-revocation-list-crl-for-the-organizations-radsec-device-certificate-authority-ca-with-the-given-id) + - [Query for all delta certificate revocation list (CRL) for the organization's RADSEC device Certificate Authority (CA) with the given id.](#query-for-all-delta-certificate-revocation-list-crl-for-the-organizations-radsec-device-certificate-authority-ca-with-the-given-id) + - [Update a certificate's description for an organization](#update-a-certificates-description-for-an-organization) + - [Delete a certificate for an organization](#delete-a-certificate-for-an-organization) + - [Download the trusted certificate by certificate id.](#download-the-trusted-certificate-by-certificate-id) + + [cloud](#cloud) + - [List of source/destination traffic rules](#list-of-sourcedestination-traffic-rules) + + [extensions](#extensions) + - [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.](#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) + - [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.](#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) + - [List all the networks eligible for ThousandEyes agent activation under this organization.](#list-all-the-networks-eligible-for-thousandeyes-agent-activation-under-this-organization) + - [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.](#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) + - [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.](#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) + - [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.](#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) + - [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.](#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) + + [policies](#policies) + - [Get policies for all clients with policies](#get-policies-for-all-clients-with-policies) + + [support](#support) + - [Returns the organization's sales representatives](#returns-the-organizations-sales-representatives) + + [webhooks](#webhooks) + - [List the HTTP servers for this organization](#list-the-http-servers-for-this-organization) + - [Add an HTTP server to an organization](#add-an-http-server-to-an-organization) + - [Return an HTTP server for an organization](#return-an-http-server-for-an-organization) + - [Update an HTTP server for an organization](#update-an-http-server-for-an-organization) + - [Delete an HTTP server from an organization](#delete-an-http-server-from-an-organization) + - [List the webhook payload templates for an organization](#list-the-webhook-payload-templates-for-an-organization) + - [Create a webhook payload template for an organization](#create-a-webhook-payload-template-for-an-organization) + - [Get the webhook payload template for an organization](#get-the-webhook-payload-template-for-an-organization) + - [Update a webhook payload template for an organization](#update-a-webhook-payload-template-for-an-organization) + - [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')](#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) + - [Send a test webhook for an organization](#send-a-test-webhook-for-an-organization) + - [Return the status of a webhook test for an organization](#return-the-status-of-a-webhook-test-for-an-organization) + + [wirelessController](#wirelesscontroller) + - [List connectivity data of wireless LAN controllers in an organization. If it is HA setup, then only returns active WLC data start from switchover](#list-connectivity-data-of-wireless-lan-controllers-in-an-organization-if-it-is-ha-setup-then-only-returns-active-wlc-data-start-from-switchover) + - [List wireless client counts of wireless LAN controllers over time in an organization](#list-wireless-client-counts-of-wireless-lan-controllers-over-time-in-an-organization) + - [List all access points associated with wireless LAN controllers in an organization](#list-all-access-points-associated-with-wireless-lan-controllers-in-an-organization) + - [List wireless LAN controller layer 2 interfaces in an organization](#list-wireless-lan-controller-layer-2-interfaces-in-an-organization) + - [List wireless LAN controller layer 2 interfaces history status in an organization](#list-wireless-lan-controller-layer-2-interfaces-history-status-in-an-organization) + - [List wireless LAN controller layer 2 interfaces history usage in an organization](#list-wireless-lan-controller-layer-2-interfaces-history-usage-in-an-organization) + - [List wireless LAN controller layer 3 interfaces in an organization](#list-wireless-lan-controller-layer-3-interfaces-in-an-organization) + - [List wireless LAN controller layer 3 interfaces history status in an organization](#list-wireless-lan-controller-layer-3-interfaces-history-status-in-an-organization) + - [List wireless LAN controller layer 3 interfaces history usage in an organization](#list-wireless-lan-controller-layer-3-interfaces-history-usage-in-an-organization) + - [List the failover events of wireless LAN controllers in an organization](#list-the-failover-events-of-wireless-lan-controllers-in-an-organization) + - [List redundancy details of wireless LAN controllers in an organization. The failover count refers to the total failovers system happens from the moment of this device onboarding to Dashboard](#list-redundancy-details-of-wireless-lan-controllers-in-an-organization-the-failover-count-refers-to-the-total-failovers-system-happens-from-the-moment-of-this-device-onboarding-to-dashboard) + - [List the overview information of wireless LAN controllers in an organization and it is updated every minute.](#list-the-overview-information-of-wireless-lan-controllers-in-an-organization-and-it-is-updated-every-minute) * [\[ insight \]](#-insight--1) + [speedTestResults](#speedtestresults) - [List the speed tests for the given devices under this organization. Only valid for organizations with Meraki Insight.](#list-the-speed-tests-for-the-given-devices-under-this-organization-only-valid-for-organizations-with-meraki-insight) @@ -176,69 +214,20 @@ - [Update a PccBulkEnrollmentToken](#update-a-pccbulkenrollmenttoken) - [Delete a PccBulkEnrollmentToken](#delete-a-pccbulkenrollmenttoken) - [List all BulkEnrollmentTokens for an organization.](#list-all-bulkenrollmenttokens-for-an-organization) - * [\[ organizations \]](#-organizations--1) - + [auth](#auth) - - [List the organization-wide RADIUS servers in the organization](#list-the-organization-wide-radius-servers-in-the-organization) - - [Add an organization-wide RADIUS server](#add-an-organization-wide-radius-server) - - [Return list of network and policies that organization-wide RADIUS servers are bing used](#return-list-of-network-and-policies-that-organization-wide-radius-servers-are-bing-used) - - [Return an organization-wide RADIUS server](#return-an-organization-wide-radius-server) - - [Update an organization-wide RADIUS server](#update-an-organization-wide-radius-server) - - [Delete an organization-wide RADIUS server from a organization](#delete-an-organization-wide-radius-server-from-a-organization) - + [certificates](#certificates) - - [Gets all or specific certificates for an organization](#gets-all-or-specific-certificates-for-an-organization) - - [Import certificate for this organization](#import-certificate-for-this-organization) - - [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.](#query-for-details-on-the-organizations-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-theyve-been-generated-an-organization-will-have-at-most-one-ca-unless-the-ca-is-being-rotated) - - [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.](#create-an-organizations-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) - - [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.](#query-for-details-on-an-organizations-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-its-been-generated) - - [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.](#update-an-organizations-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-servers-and-devices-establishing-a-secure-connection-using-certs-signed-by-this-ca-will-pass-verification) - - [Query for certificate revocation list (CRL) for the organization's RADSEC device Certificate Authority (CA) with the given id.](#query-for-certificate-revocation-list-crl-for-the-organizations-radsec-device-certificate-authority-ca-with-the-given-id) - - [Query for all delta certificate revocation list (CRL) for the organization's RADSEC device Certificate Authority (CA) with the given id.](#query-for-all-delta-certificate-revocation-list-crl-for-the-organizations-radsec-device-certificate-authority-ca-with-the-given-id) - - [Update a certificate's description for an organization](#update-a-certificates-description-for-an-organization) - - [Delete a certificate for an organization](#delete-a-certificate-for-an-organization) - - [Download the trusted certificate by certificate id.](#download-the-trusted-certificate-by-certificate-id) - + [cloud](#cloud) - - [List of source/destination traffic rules](#list-of-sourcedestination-traffic-rules) - + [extensions](#extensions) - - [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.](#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) - - [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.](#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) - - [List all the networks eligible for ThousandEyes agent activation under this organization.](#list-all-the-networks-eligible-for-thousandeyes-agent-activation-under-this-organization) - - [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.](#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) - - [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.](#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) - - [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.](#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) - - [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.](#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) - + [policies](#policies) - - [Get policies for all clients with policies](#get-policies-for-all-clients-with-policies) - + [devices](#devices-3) - - [Updating device details (currently only used for Catalyst devices)](#updating-device-details-currently-only-used-for-catalyst-devices) - + [support](#support) - - [Returns the organization's sales representatives](#returns-the-organizations-sales-representatives) - + [webhooks](#webhooks) - - [List the HTTP servers for this organization](#list-the-http-servers-for-this-organization) - - [Add an HTTP server to an organization](#add-an-http-server-to-an-organization) - - [Return an HTTP server for an organization](#return-an-http-server-for-an-organization) - - [Update an HTTP server for an organization](#update-an-http-server-for-an-organization) - - [Delete an HTTP server from an organization](#delete-an-http-server-from-an-organization) - - [List the webhook payload templates for an organization](#list-the-webhook-payload-templates-for-an-organization) - - [Create a webhook payload template for an organization](#create-a-webhook-payload-template-for-an-organization) - - [Get the webhook payload template for an organization](#get-the-webhook-payload-template-for-an-organization) - - [Update a webhook payload template for an organization](#update-a-webhook-payload-template-for-an-organization) - - [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')](#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) - - [Send a test webhook for an organization](#send-a-test-webhook-for-an-organization) - - [Return the status of a webhook test for an organization](#return-the-status-of-a-webhook-test-for-an-organization) -Version **1.47.0** _to_ **1.47.0-beta.1** +Version **1.48.0** _to_ **1.48.0-beta.0** * * * **Summary of Changes** -**94 - New** +**96 - New** -**83 - Updated** +**51 - Updated** -**854 - Total Endpoints** +**857 - Total Endpoints** -**571 - Total Paths** +**574 - Total Paths** * * * @@ -247,151 +236,86 @@ Version **1.47.0** _to_ **1.47.0-beta.1** What's Updated ============== -\[ licensing \] +\[ appliance \] --------------- -### subscription - -#### List available subscriptions - -GET _`/administered/licensing/subscription/subscriptions`_ - -> \- Optional property `organizations` Added - -> \- Response property `organizations` value added - -* * * - -#### Claim a subscription into an organization. - -POST _`/administered/licensing/subscription/subscriptions/claim`_ - -> \- Optional property `organizations` Added - -* * * - -#### Find a subscription by claim key - -POST _`/administered/licensing/subscription/subscriptions/claimKey/validate`_ - -> \- Optional property `organizations` Added - -* * * - -\[ switch \] ------------- - -### stacks +### uplinks -#### List layer 3 interfaces for a switch stack +#### Return the uplink settings for an MX appliance -GET _`/networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces`_ +GET _`/devices/{serial}/appliance/uplinks/settings`_ -> \- Optional property `uplinkV4` Added +> \- Optional property `sgt` Added -> \- Optional property `uplinkV6` Added +> \- Optional property `sgt` Added -> \- Response property `uplinkV4` value added +> \- Response property `sgt` value added -> \- Response property `uplinkV6` value added +> \- Response property `sgt` value added * * * -#### Return a layer 3 interface from a switch stack - -GET _`/networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId}`_ +#### Update the uplink settings for an MX appliance -> \- Optional property `uplinkV4` Added +PUT _`/devices/{serial}/appliance/uplinks/settings`_ -> \- Optional property `uplinkV6` Added +> \- Optional property `sgt` Added -> \- Response property `uplinkV4` value added +> \- Optional property `sgt` Added -> \- Response property `uplinkV6` value added +> \- Optional property `sgt` Added * * * -#### Create a layer 3 interface for a switch stack - -POST _`/networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces`_ +### vlans -> \- Optional property `ospfV3` Added +#### Update a VLAN -> \- Optional property `uplinkV4` Added +PUT _`/networks/{networkId}/appliance/vlans/{vlanId}`_ -> \- Optional property `uplinkV6` Added +> \- Optional property `adaptivePolicyGroupId` Added * * * -#### Update a layer 3 interface for a switch stack - -PUT _`/networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId}`_ - -> \- Optional property `ospfV3` Added +#### Add a VLAN -> \- Optional property `uplinkV4` Added +POST _`/networks/{networkId}/appliance/vlans`_ -> \- Optional property `uplinkV6` Added +> \- Optional property `adaptivePolicyGroupId` Added * * * ### ports -#### List the switchports in an organization by switch - -GET _`/organizations/{organizationId}/switch/ports/bySwitch`_ - -> \- Optional param `extendedParams` added - -* * * - -### routing - -#### List layer 3 interfaces for a switch - -GET _`/devices/{serial}/switch/routing/interfaces`_ - -> \- Optional property `uplinkV4` Added +#### List per-port VLAN settings for all ports of a MX. -> \- Optional property `uplinkV6` Added +GET _`/networks/{networkId}/appliance/ports`_ -> \- Response property `uplinkV4` value added +> \- Optional property `peerSgtCapable` Added -> \- Response property `uplinkV6` value added +> \- Response property `peerSgtCapable` value added * * * -#### Return a layer 3 interface for a switch - -GET _`/devices/{serial}/switch/routing/interfaces/{interfaceId}`_ - -> \- Optional property `uplinkV4` Added +#### Return per-port VLAN settings for a single MX port. -> \- Optional property `uplinkV6` Added +GET _`/networks/{networkId}/appliance/ports/{portId}`_ -> \- Response property `uplinkV4` value added +> \- Optional property `peerSgtCapable` Added -> \- Response property `uplinkV6` value added +> \- Response property `peerSgtCapable` value added * * * -#### Create a layer 3 interface for a switch - -POST _`/devices/{serial}/switch/routing/interfaces`_ - -> \- Optional property `uplinkV4` Added - -> \- Optional property `uplinkV6` Added - -* * * +#### Update the per-port VLAN settings for a single MX port. -#### Update a layer 3 interface for a switch +PUT _`/networks/{networkId}/appliance/ports/{portId}`_ -PUT _`/devices/{serial}/switch/routing/interfaces/{interfaceId}`_ +> \- Optional property `peerSgtCapable` Added -> \- Optional property `uplinkV4` Added +> \- Optional property `adaptivePolicyGroupId` Added -> \- Optional property `uplinkV6` Added +> \- Optional property `peerSgtCapable` Added * * * @@ -416,12 +340,8 @@ GET _`/networks/{networkId}/firmwareUpgrades`_ > \- Optional property `upgradeStrategy` Added -> \- Optional property `wirelessController` Added - > \- Response property `upgradeStrategy` value added -> \- Response property `wirelessController` value added - * * * #### Update firmware upgrade information for a network @@ -430,12 +350,8 @@ PUT _`/networks/{networkId}/firmwareUpgrades`_ > \- Optional property `upgradeStrategy` Added -> \- Optional property `wirelessController` Added - > \- Optional property `upgradeStrategy` Added -> \- Optional property `wirelessController` Added - * * * ### devices @@ -448,14 +364,45 @@ POST _`/networks/{networkId}/devices/claim`_ * * * -\[ wireless \] --------------- +\[ switch \] +------------ -### ssids +### stacks -#### Update the attributes of an MR SSID +#### Update a layer 3 interface for a switch stack -PUT _`/networks/{networkId}/wireless/ssids/{number}`_ +PUT _`/networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId}`_ + +> \- Optional property `ospfV3` Added + +* * * + +#### Create a layer 3 interface for a switch stack + +POST _`/networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces`_ + +> \- Optional property `ospfV3` Added + +* * * + +### ports + +#### List the switchports in an organization by switch + +GET _`/organizations/{organizationId}/switch/ports/bySwitch`_ + +> \- Optional param `extendedParams` added + +* * * + +\[ wireless \] +-------------- + +### ssids + +#### Update the attributes of an MR SSID + +PUT _`/networks/{networkId}/wireless/ssids/{number}`_ > \- Optional property `radiusRadsecTlsIdleTimeout` Added @@ -491,16 +438,6 @@ GET _`/networks/{networkId}/wireless/rfProfiles/{rfProfileId}`_ * * * -#### Creates new RF profile for this network - -POST _`/networks/{networkId}/wireless/rfProfiles`_ - -> \- Optional property `isIndoorDefault` Added - -> \- Optional property `isOutdoorDefault` Added - -* * * - #### Updates specified RF profile for this network PUT _`/networks/{networkId}/wireless/rfProfiles/{rfProfileId}`_ @@ -515,86 +452,50 @@ PUT _`/networks/{networkId}/wireless/rfProfiles/{rfProfileId}`_ * * * -\[ appliance \] ---------------- - -### vlans - -#### Add a VLAN - -POST _`/networks/{networkId}/appliance/vlans`_ - -> \- Optional property `adaptivePolicyGroupId` Added - -* * * - -#### Update a VLAN - -PUT _`/networks/{networkId}/appliance/vlans/{vlanId}`_ - -> \- Optional property `adaptivePolicyGroupId` Added - -* * * - -### ports - -#### List per-port VLAN settings for all ports of a MX. - -GET _`/networks/{networkId}/appliance/ports`_ - -> \- Optional property `peerSgtCapable` Added - -> \- Response property `peerSgtCapable` value added - -* * * - -#### Return per-port VLAN settings for a single MX port. +#### Creates new RF profile for this network -GET _`/networks/{networkId}/appliance/ports/{portId}`_ +POST _`/networks/{networkId}/wireless/rfProfiles`_ -> \- Optional property `peerSgtCapable` Added +> \- Optional property `isIndoorDefault` Added -> \- Response property `peerSgtCapable` value added +> \- Optional property `isOutdoorDefault` Added * * * -#### Update the per-port VLAN settings for a single MX port. +\[ organizations \] +------------------- -PUT _`/networks/{networkId}/appliance/ports/{portId}`_ +### devices -> \- Optional property `peerSgtCapable` Added +#### List the availability history information for devices in an organization. -> \- Optional property `adaptivePolicyGroupId` Added +GET _`/organizations/{organizationId}/devices/availabilities/changeHistory`_ -> \- Optional property `peerSgtCapable` Added +> \- Optional param `categories` added -* * * +> \- Optional param `networkTags` added -### uplinks +> \- Optional param `networkTagsFilterType` added -#### Return the uplink settings for an MX appliance +> \- Optional param `deviceTags` added -GET _`/devices/{serial}/appliance/uplinks/settings`_ +> \- Optional param `deviceTagsFilterType` added -> \- Optional property `sgt` Added +> \- Optional property `tags` Added -> \- Optional property `sgt` Added +> \- Optional property `category` Added -> \- Response property `sgt` value added +> \- Response property `tags` value added -> \- Response property `sgt` value added +> \- Response property `category` value added * * * -#### Update the uplink settings for an MX appliance - -PUT _`/devices/{serial}/appliance/uplinks/settings`_ - -> \- Optional property `sgt` Added +#### List the status of every Meraki device in the organization -> \- Optional property `sgt` Added +GET _`/organizations/{organizationId}/devices/statuses`_ -> \- Optional property `sgt` Added +> \- Optional param `configurationUpdatedAfter` added * * * @@ -632,46 +533,116 @@ POST _`/organizations/{organizationId}/insight/applications`_ * * * -\[ organizations \] -------------------- - -### devices - -#### List the availability history information for devices in an organization. - -GET _`/organizations/{organizationId}/devices/availabilities/changeHistory`_ - -> \- Optional param `categories` added - -> \- Optional param `networkTags` added - -> \- Optional param `networkTagsFilterType` added - -> \- Optional param `deviceTags` added - -> \- Optional param `deviceTagsFilterType` added +What's New +========== -> \- Optional property `tags` Added +\[ networks \] +-------------- -> \- Optional property `category` Added +### locationScanning -> \- Response property `tags` value added +PATH _`/networks/{networkId}/locationScanning`_ -> \- Response property `category` value added +> \- Path added +> +> \- New endpoint +> +> #### Return scanning API settings +> +> **GET** `/networks/{networkId}/locationScanning` +> +> { +> "analyticsEnabled": true, +> "scanningApiEnabled": true, +> "validator": "xxyzzy" +> } +> +> * * * +> +> +> \- New endpoint +> +> #### Change scanning API settings +> +> **PUT** `/networks/{networkId}/locationScanning` +> +> { +> "analyticsEnabled": true, +> "scanningApiEnabled": true, +> "validator": "xxyzzy" +> } +> +> * * * * * * -#### List the status of every Meraki device in the organization - -GET _`/organizations/{organizationId}/devices/statuses`_ +PATH _`/networks/{networkId}/locationScanning/httpServers`_ -> \- Optional param `configurationUpdatedAfter` added +> \- Path added +> +> \- New endpoint +> +> #### Return list of scanning API receivers +> +> **GET** `/networks/{networkId}/locationScanning/httpServers` +> +> [ +> { +> "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}}]" +> } +> ] +> } +> ] +> +> * * * +> +> +> \- New endpoint +> +> #### Set the list of scanning API receivers. Old receivers will be removed +> +> **PUT** `/networks/{networkId}/locationScanning/httpServers` +> +> { +> "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}}]" +> } +> ] +> } +> +> * * * * * * -What's New -========== - \[ switch \] ------------ @@ -823,153 +794,18 @@ PATH _`/organizations/{organizationId}/switch/ports/statuses/bySwitch`_ * * * -\[ networks \] +\[ wireless \] -------------- -### locationScanning +### zigbee -PATH _`/networks/{networkId}/locationScanning`_ +PATH _`/devices/{serial}/wireless/zigbee/enrollments`_ > \- Path added > > \- New endpoint > -> #### Return scanning API settings -> -> **GET** `/networks/{networkId}/locationScanning` -> -> { -> "analyticsEnabled": true, -> "scanningApiEnabled": true, -> "validator": "xxyzzy" -> } -> -> * * * -> -> -> \- New endpoint -> -> #### Change scanning API settings -> -> **PUT** `/networks/{networkId}/locationScanning` -> -> { -> "analyticsEnabled": true, -> "scanningApiEnabled": true, -> "validator": "xxyzzy" -> } -> -> * * * - -* * * - -PATH _`/networks/{networkId}/locationScanning/httpServers`_ - -> \- Path added -> -> \- New endpoint -> -> #### Return list of scanning API receivers -> -> **GET** `/networks/{networkId}/locationScanning/httpServers` -> -> [ -> { -> "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}}]" -> } -> ] -> } -> ] -> -> * * * -> -> -> \- New endpoint -> -> #### Set the list of scanning API receivers. Old receivers will be removed -> -> **PUT** `/networks/{networkId}/locationScanning/httpServers` -> -> { -> "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}}]" -> } -> ] -> } -> -> * * * - -* * * - -\[ wireless \] --------------- - -### healthScores - -PATH _`/devices/{serial}/wireless/healthScores`_ - -> \- Path added -> -> \- New endpoint -> -> #### Fetch the health scores for a given AP on this network -> -> **GET** `/devices/{serial}/wireless/healthScores` -> -> { -> "device": { -> "serial": "Q234-ABCD-5678" -> }, -> "performance": { -> "latest": 80 -> }, -> "onboarding": { -> "latest": 20 -> } -> } -> -> * * * - -* * * - -### zigbee - -PATH _`/devices/{serial}/wireless/zigbee/enrollments`_ - -> \- Path added -> -> \- New endpoint -> -> #### Enqueue a job to start enrolling doorlocks on zigbee configured MRs +> #### Enqueue a job to start enrolling doorlocks on zigbee configured MRs > > **POST** `/devices/{serial}/wireless/zigbee/enrollments` > @@ -1274,83 +1110,88 @@ PATH _`/organizations/{organizationId}/wireless/zigbee/doorLocks/bulkUpdate`_ * * * -### radio +### clients -PATH _`/networks/{networkId}/wireless/radio/autoRf`_ +PATH _`/networks/{networkId}/wireless/clients/healthScores`_ > \- Path added > > \- New endpoint > -> #### Update the AutoRF settings for a wireless network +> #### Fetch the health scores for all clients on this network > -> **PUT** `/networks/{networkId}/wireless/radio/autoRf` +> **GET** `/networks/{networkId}/wireless/clients/healthScores` > -> { -> "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" -> } +> [ +> { +> "mac": "22:33:44:55:66:77", +> "clientId": "k74272e", +> "performance": { +> "latest": 80, +> "currentConnection": 100 > }, -> "minimizeChanges": { -> "enabled": true +> "onboarding": { +> "latest": 100 > } > }, -> "channel": { -> "avoidance": { -> "enabled": true +> { +> "mac": "22:33:44:55:66:77", +> "clientId": "k74272e", +> "performance": { +> "latest": 30, +> "currentConnection": 50 +> }, +> "onboarding": { +> "latest": 70 > } > } -> } +> ] > > * * * * * * -PATH _`/organizations/{organizationId}/wireless/radio/autoRf/byNetwork`_ +PATH _`/networks/{networkId}/wireless/clients/onboardingHistory`_ > \- Path added > > \- New endpoint > -> #### List the AutoRF settings of an organization by network +> #### Return counts of distinct wireless clients connecting to a network over time > -> **GET** `/organizations/{organizationId}/wireless/radio/autoRf/byNetwork` +> **GET** `/networks/{networkId}/wireless/clients/onboardingHistory` > > [ > { -> "networkId": "L_12345", -> "name": "My Network", -> "timeZone": "America/Los_Angeles", -> "busyHour": { -> "schedule": { -> "mode": "automatic", -> "automatic": { -> "start": "08:00", -> "end": "17:00" +> "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 > }, -> "manual": { -> "start": "10:00", -> "end": "15:00" +> "authentication": { +> "prospective": 97, +> "successful": 81, +> "failed": 16 +> }, +> "dhcp": { +> "prospective": 81, +> "successful": 75, +> "failed": 6 +> }, +> "dns": { +> "prospective": 75, +> "successful": 75, +> "failed": 0 > } -> }, -> "minimizeChanges": { -> "enabled": true -> } -> }, -> "channel": { -> "avoidance": { -> "enabled": true > } > } > } @@ -1360,44 +1201,93 @@ PATH _`/organizations/{organizationId}/wireless/radio/autoRf/byNetwork`_ * * * -PATH _`/organizations/{organizationId}/wireless/radio/autoRf/channels/planning/activities`_ +PATH _`/networks/{networkId}/wireless/clients/{clientId}/healthScores`_ > \- Path added > > \- New endpoint > -> #### List the channel planning activities of an organization +> #### Fetch the health scores for a given client on this network. Clients are identified by their MAC or ID > -> **GET** `/organizations/{organizationId}/wireless/radio/autoRf/channels/planning/activities` +> **GET** `/networks/{networkId}/wireless/clients/{clientId}/healthScores` > -> [ -> { -> "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", +> { +> "mac": "22:33:44:55:66:77", +> "clientId": "k74272e", +> "performance": { +> "latest": 80, +> "currentConnection": 100 +> }, +> "onboarding": { +> "latest": 100 +> } +> } +> +> * * * + +* * * + +PATH _`/organizations/{organizationId}/wireless/clients/overview/byDevice`_ + +> \- Path added +> +> \- New endpoint +> +> #### List access point client count at the moment in an organization +> +> **GET** `/organizations/{organizationId}/wireless/clients/overview/byDevice` +> +> { +> "items": [ +> { +> "network": { +> "id": "N_24329156" +> }, > "serial": "Q234-ABCD-5678", -> "mac": "00:11:22:33:44:55", -> "tags": [ -> "tag1", -> "tag2" -> ] +> "counts": { +> "byStatus": { +> "online": 1 +> } +> } +> } +> ], +> "meta": { +> "counts": { +> "items": { +> "total": 10, +> "remaining": 0 +> } > } > } -> ] +> } +> +> * * * + +* * * + +### healthScores + +PATH _`/devices/{serial}/wireless/healthScores`_ + +> \- Path added +> +> \- New endpoint +> +> #### Fetch the health scores for a given AP on this network +> +> **GET** `/devices/{serial}/wireless/healthScores` +> +> { +> "device": { +> "serial": "Q234-ABCD-5678" +> }, +> "performance": { +> "latest": 80 +> }, +> "onboarding": { +> "latest": 20 +> } +> } > > * * * @@ -1433,100 +1323,138 @@ PATH _`/networks/{networkId}/wireless/devices/healthScores`_ * * * -PATH _`/organizations/{organizationId}/wireless/devices/catalyst/accessPointClientCount`_ +PATH _`/organizations/{organizationId}/wireless/devices/wirelessControllers/byDevice`_ > \- Path added > > \- New endpoint > -> #### Export Mars access point client count list +> #### List of Catalyst access points information > -> **GET** `/organizations/{organizationId}/wireless/devices/catalyst/accessPointClientCount` +> **GET** `/organizations/{organizationId}/wireless/devices/wirelessControllers/byDevice` > -> [ -> { -> "serial": "Q234-ABCD-5678", -> "clientCount": { -> "activeCount": 1 +> { +> "items": [ +> { +> "network": { +> "id": "N_24329156" +> }, +> "serial": "Q234-ABCD-5678", +> "controller": { +> "serial": "Q234-ABCD-5678" +> }, +> "joinedAt": "2020-01-01T00:00:00Z", +> "model": "C9115AXI-H", +> "tags": [ +> { +> "policy": "4F", +> "site": "default-site-tag", +> "rf": "default-rf-tag" +> } +> ], +> "mode": "local", +> "countryCode": "CA", +> "details": [ +> { +> "name": "catalyst serial", +> "value": "FGL2446L7QQ" +> } +> ] +> } +> ], +> "meta": { +> "counts": { +> "items": { +> "total": 10, +> "remaining": 0 +> } > } > } -> ] +> } > > * * * * * * -PATH _`/organizations/{organizationId}/wireless/devices/catalyst/accessPoints`_ +### radio + +PATH _`/networks/{networkId}/wireless/radio/autoRf`_ > \- Path added > > \- New endpoint > -> #### List of Catalyst access points and summary information +> #### Update the AutoRF settings for a wireless network > -> **GET** `/organizations/{organizationId}/wireless/devices/catalyst/accessPoints` +> **PUT** `/networks/{networkId}/wireless/radio/autoRf` > -> [ -> { -> "id": 180905961993748, -> "serial": "Q234-ABCD-5678", -> "model": "C9115AXI-H", -> "physicalSerial": "FGL2446L7QQ", -> "tags": { -> "policyTag": "4F", -> "siteTag": "default-site-tag", -> "rfTag": "default-rf-tag" -> }, -> "power": { -> "mode": "Full Power", -> "type": "PoE+" +> { +> "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" +> } > }, -> "mode": "Local", -> "countryCode": "CA", -> "wlcJoinTime": "2020-01-01T00:00:00Z", -> "wirelessController": { -> "id": 194361162581248, -> "name": "Wireless Controller", -> "mac": "00:11:22:33:44:55", -> "url": "https://n1.meraki.com//n//manage/nodes/new_list/000000000000", -> "firmwareVersion": " IOS XE", -> "serial": "A2CC-8TYV-VCO9", -> "status": 0 +> "minimizeChanges": { +> "enabled": true +> } +> }, +> "channel": { +> "avoidance": { +> "enabled": true > } > } -> ] +> } > > * * * * * * -### wirelessLanController - -PATH _`/organizations/{organizationId}/wireless/wirelessLanController/summaries`_ +PATH _`/organizations/{organizationId}/wireless/radio/autoRf/byNetwork`_ > \- Path added > > \- New endpoint > -> #### Export wireless controller summaries containing Total AP and client counts +> #### List the AutoRF settings of an organization by network > -> **GET** `/organizations/{organizationId}/wireless/wirelessLanController/summaries` +> **GET** `/organizations/{organizationId}/wireless/radio/autoRf/byNetwork` > > [ > { -> "id": "123", -> "serial": "Q234-ABCD-5678", -> "activeClientCount": 300, -> "accessPointCount": { -> "total": 200, -> "online": 180, -> "offline": 20 +> "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 +> } > }, -> "role": "Active", -> "redundancyId": "123456", -> "chassisName": "Chassis 1", -> "rmi": "10.14.140.5", -> "firmwareVersion": "ios-xe" +> "channel": { +> "avoidance": { +> "enabled": true +> } +> } > } > ] > @@ -1534,22 +1462,42 @@ PATH _`/organizations/{organizationId}/wireless/wirelessLanController/summaries` * * * -PATH _`/organizations/{organizationId}/wireless/wirelessLanController/{serial}/accessPoints`_ +PATH _`/organizations/{organizationId}/wireless/radio/autoRf/channels/planning/activities`_ > \- Path added > > \- New endpoint > -> #### Export wireless controller associated access point list +> #### List the channel planning activities of an organization > -> **GET** `/organizations/{organizationId}/wireless/wirelessLanController/{serial}/accessPoints` +> **GET** `/organizations/{organizationId}/wireless/radio/autoRf/channels/planning/activities` > > [ > { -> "serial": "Q234-ABCD-5678", -> "networkId": "N_24329156", -> "networkUrl": "https://network/url", -> "networkName": "Network1" +> "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" +> ] +> } > } > ] > @@ -1557,48 +1505,53 @@ PATH _`/organizations/{organizationId}/wireless/wirelessLanController/{serial}/a * * * -PATH _`/organizations/{organizationId}/wireless/wirelessLanController/{serial}/clientCountHistory`_ +\[ organizations \] +------------------- + +### auth + +PATH _`/organizations/{organizationId}/auth/radius/servers`_ > \- Path added > > \- New endpoint > -> #### Return wireless client counts over time for a wireless LAN controller in an organization +> #### List the organization-wide RADIUS servers in the organization > -> **GET** `/organizations/{organizationId}/wireless/wirelessLanController/{serial}/clientCountHistory` +> **GET** `/organizations/{organizationId}/auth/radius/servers` > -> { -> "startTs": "2020-01-01T00:00:00Z", -> "endTs": "2020-01-01T01:00:00Z", -> "clientCount": 14 -> } +> [ +> { +> "serverId": "42", +> "name": "HQ RADIUS server", +> "address": "1.2.3.4", +> "modes": [ +> { +> "mode": "auth", +> "port": 1812 +> } +> ] +> } +> ] > > * * * - -* * * - -PATH _`/organizations/{organizationId}/wireless/wirelessLanController/{serial}/connectivity`_ - -> \- Path added +> > > \- New endpoint > -> #### Export wireless controller connectivity data. If it is HA setup, then only returns active WLC data start from switchover +> #### Add an organization-wide RADIUS server > -> **GET** `/organizations/{organizationId}/wireless/wirelessLanController/{serial}/connectivity` +> **POST** `/organizations/{organizationId}/auth/radius/servers` > > { -> "t0": 1682938800, -> "t1": 1682939100, -> "upseries": [ -> [ -> 1702645602000, -> 0 -> ], -> [ -> 1702793132000, -> 4 -> ] +> "serverId": "42", +> "name": "HQ RADIUS server", +> "address": "1.2.3.4", +> "modes": [ +> { +> "mode": "auth", +> "port": 1812 +> } > ] > } > @@ -1606,51 +1559,34 @@ PATH _`/organizations/{organizationId}/wireless/wirelessLanController/{serial}/c * * * -PATH _`/organizations/{organizationId}/wireless/wirelessLanController/{serial}/cpuMemoryUtilization`_ +PATH _`/organizations/{organizationId}/auth/radius/servers/assignments`_ > \- Path added > > \- New endpoint > -> #### Export wireless controller CPU utilization of core and wireless network controller daemon process, and memory utilization +> #### Return list of network and policies that organization-wide RADIUS servers are bing used > -> **GET** `/organizations/{organizationId}/wireless/wirelessLanController/{serial}/cpuMemoryUtilization` +> **GET** `/organizations/{organizationId}/auth/radius/servers/assignments` > > { -> "t0": 1682938800, -> "t1": 1682939100, -> "coreUtils": [ -> { -> "name": "core_1", -> "utils": [ -> { -> "ts": 1682938800, -> "utilization": 0 -> } -> ] -> } -> ], -> "wncdProcessUtils": [ -> { -> "name": "wncd_1", -> "utils": [ -> { -> "ts": 1682938800, -> "utilization": 1 -> } -> ] -> } -> ], -> "memoryUtils": [ +> "serverId": "42", +> "name": "HQ RADIUS server", +> "assignments": [ > { -> "ts": 1682938800, -> "utilization": 70 -> } -> ], -> "averageCoreUtils": [ -> { -> "ts": 1682938800, -> "utilization": 3 +> "network": { +> "id": "L_1234", +> "eid": "L_1234", +> "tag": "San-Francisco", +> "name": "San Francisco Office", +> "dashboardUrl": "https://n1.meraki.dev.ikram.io/tag/n/1234/manage/nodes/list" +> }, +> "assignee": { +> "type": "Access policy", +> "id": "42", +> "name": "Access policy #42", +> "dashboardUrl": "https://n1.meraki.dev.ikram.io/tag/n/1234/manage/configure/switch_access" +> } > } > ] > } @@ -1659,472 +1595,351 @@ PATH _`/organizations/{organizationId}/wireless/wirelessLanController/{serial}/c * * * -PATH _`/organizations/{organizationId}/wireless/wirelessLanController/{serial}/failOverEvents`_ +PATH _`/organizations/{organizationId}/auth/radius/servers/{serverId}`_ > \- Path added > > \- New endpoint > -> #### List the failover events for wireless LAN controller +> #### Return an organization-wide RADIUS server > -> **GET** `/organizations/{organizationId}/wireless/wirelessLanController/{serial}/failOverEvents` +> **GET** `/organizations/{organizationId}/auth/radius/servers/{serverId}` > -> [ -> { -> "events": [ -> { -> "ts": 1682938800, -> "reason": "Active Unit Failed", -> "previousActive": "Chassis 2", -> "newActive": "Chassis 1" -> } -> ] -> } -> ] +> { +> "serverId": "42", +> "name": "HQ RADIUS server", +> "address": "1.2.3.4", +> "modes": [ +> { +> "mode": "auth", +> "port": 1812 +> } +> ] +> } +> +> * * * +> +> +> \- New endpoint +> +> #### Update an organization-wide RADIUS server +> +> **PUT** `/organizations/{organizationId}/auth/radius/servers/{serverId}` +> +> { +> "serverId": "42", +> "name": "HQ RADIUS server", +> "address": "1.2.3.4", +> "modes": [ +> { +> "mode": "auth", +> "port": 1812 +> } +> ] +> } +> +> * * * +> +> +> \- New endpoint +> +> #### Delete an organization-wide RADIUS server from a organization +> +> **DELETE** `/organizations/{organizationId}/auth/radius/servers/{serverId}` > > * * * * * * -PATH _`/organizations/{organizationId}/wireless/wirelessLanController/{serial}/layer2Interfaces`_ +### certificates + +PATH _`/organizations/{organizationId}/certificates`_ > \- Path added > > \- New endpoint > -> #### Export wireless controller layer 2 interfaces +> #### Gets all or specific certificates for an organization > -> **GET** `/organizations/{organizationId}/wireless/wirelessLanController/{serial}/layer2Interfaces` +> **GET** `/organizations/{organizationId}/certificates` > -> [ -> { -> "id": "1", -> "name": "TenGigabitEthernet0/0/5", -> "description": "Uplink", -> "interfaceType": "IANA_IFTYPE_ETHERNETCSMACD", -> "enabled": true, -> "mac": "b0:c5:3c:0d:c5:0b", -> "rxBytes": 0, -> "txBytes": 0, -> "status": [ -> { -> "ts": 1677383054, -> "interfaceState": "INTF_STATE_STATE_INTF_DOWN", -> "operState": "OPER_STATE_STATE_OPER_LOWER_LAYER_DOWN" -> } -> ], -> "currStatus": 0, -> "mediaType": "ETHER_MEDIA_SFP", -> "type": "10gig", -> "isUplink": true, -> "isRedundancyPort": true, -> "vid": 10, -> "nativeVid": 10, -> "linkNegotiation": "auto", -> "lldpInfos": [ +> { +> "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": [ > { -> "mac": "00:45:1d:28:7d:8c", -> "portIdentifier": "TenGigabitEthernet0/0/1", -> "updatedAt": "2023-05-23 12:02:46.298", -> "deviceName": "cat2026.s2035", -> "deviceDescription": "cisco C9300-24P", -> "merakiPortIdentifier": "TenGigabitEthernet0/0/1", -> "cdp": { -> "device": "cat2026.s2035", -> "port": "TenGigabitEthernet0/0/1", -> "opts": [ -> [ -> "Device ID", -> "cat2026.s2035" -> ], -> [ -> "Port ID", -> "TenGigabitEthernet0/0/1" -> ], -> [ -> "Native VLAN", -> "1" -> ], -> [ -> "Address", -> "192.168.1.128" -> ] -> ] -> }, -> "lldp": { -> "device": "cat2026.s2035", -> "port": "TenGigabitEthernet0/0/1", -> "opts": [ -> [ -> "System name", -> "cat2026.s2035" -> ], -> [ -> "Port ID", -> "TenGigabitEthernet0/0/1" -> ], -> [ -> "Chassis ID", -> "00:45:1d:28:7d:80" -> ], -> [ -> "Management address", -> "192.168.1.128" -> ] -> ] -> } +> "algorithm": "SHA1", +> "hash": "hash text here" > } -> ], -> "moduleType": "C9800-2X40GE" +> ] > } -> ] +> } > > * * * * * * -PATH _`/organizations/{organizationId}/wireless/wirelessLanController/{serial}/layer3Interfaces`_ +PATH _`/organizations/{organizationId}/certificates/import`_ > \- Path added > > \- New endpoint > -> #### Export Wireless LAN Controller layer 3 interfaces +> #### Import certificate for this organization > -> **GET** `/organizations/{organizationId}/wireless/wirelessLanController/{serial}/layer3Interfaces` +> **POST** `/organizations/{organizationId}/certificates/import` > -> [ -> { -> "id": "1", -> "name": "vlan123", -> "description": "Wireless Mgmt", -> "interfaceType": "IANA_IFTYPE_ETHERNETCSMACD", -> "ipv4Address": "192.168.123.1", -> "ipv6Address": "fd0a:9b09:1f7:1:eece:13ff:fe00:7400", -> "subnet": "192.168.123.0/24", -> "mac": "1c:e8:5d:00:00:0c", -> "rxBytes": 0, -> "txBytes": 0, -> "vrf": "Global", -> "status": [ +> { +> "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": [ > { -> "ts": 1677383054, -> "interfaceState": "INTF_STATE_STATE_INTF_DOWN", -> "operState": "OPER_STATE_STATE_OPER_LOWER_LAYER_DOWN" +> "algorithm": "SHA1", +> "hash": "hash text here" > } -> ], -> "currStatus": "STATE_OPER_READY", -> "moduleType": "C9800-2X40GE", -> "linkNegotiation": "auto", -> "type": "10gig", -> "isUplink": true, -> "vid": 10, -> "nativeVid": 10 +> ] > } -> ] +> } > > * * * * * * -PATH _`/organizations/{organizationId}/wireless/wirelessLanController/{serial}/redundancyDetails`_ +PATH _`/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities`_ > \- Path added > > \- New endpoint > -> #### Export wireless controller redundancy details +> #### 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. > -> **GET** `/organizations/{organizationId}/wireless/wirelessLanController/{serial}/redundancyDetails` +> **GET** `/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities` > > [ > { -> "wlcId": 194361162581248, -> "mode": "sso", -> "enabled": true, -> "lastFailoverTime": 1702477593, -> "lastFailoverReason": "Active Unit Failed", -> "systemFailovers": 2, -> "mobilityMac": "b0:c5:3c:0d:c5:0b" +> "authorityId": "1234", +> "status": "trusted", +> "contents": "-----BEGIN CERTIFICATE-----\nMIIDzDCCAragAwIBAgIUOd0ukLcjH43TfTHFG9qE0FtlMVgwCwYJKoZIhvcNAQEL\n...\numkqeYeO30g1uYvDuWLXVA==\n-----END CERTIFICATE-----\n" > } > ] > > * * * - -* * * - -### clients - -PATH _`/networks/{networkId}/wireless/clients/healthScores`_ - -> \- Path added +> > > \- New endpoint > -> #### Fetch the health scores for all clients on this network +> #### 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. > -> **GET** `/networks/{networkId}/wireless/clients/healthScores` +> **POST** `/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities` > -> [ -> { -> "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 -> } -> } -> ] +> { +> "authorityId": "1234", +> "status": "generating", +> "contents": "" +> } > > * * * * * * -PATH _`/networks/{networkId}/wireless/clients/onboardingHistory`_ +PATH _`/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities/{id}`_ > \- Path added > > \- New endpoint > -> #### Return counts of distinct wireless clients connecting to a network over time +> #### 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. > -> **GET** `/networks/{networkId}/wireless/clients/onboardingHistory` -> -> [ -> { -> "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 -> } -> } -> } -> } -> ] -> -> * * * - -* * * - -PATH _`/networks/{networkId}/wireless/clients/{clientId}/healthScores`_ - -> \- Path added -> -> \- New endpoint -> -> #### Fetch the health scores for a given client on this network. Clients are identified by their MAC or ID -> -> **GET** `/networks/{networkId}/wireless/clients/{clientId}/healthScores` +> **GET** `/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities/{id}` > > { -> "mac": "22:33:44:55:66:77", -> "clientId": "k74272e", -> "performance": { -> "latest": 80, -> "currentConnection": 100 -> }, -> "onboarding": { -> "latest": 100 -> } +> "authorityId": "1234", +> "status": "trusted", +> "contents": "-----BEGIN CERTIFICATE-----\nMIIDzDCCAragAwIBAgIUOd0ukLcjH43TfTHFG9qE0FtlMVgwCwYJKoZIhvcNAQEL\n...\numkqeYeO30g1uYvDuWLXVA==\n-----END CERTIFICATE-----\n" > } > > * * * - -* * * - -\[ insight \] -------------- - -### speedTestResults - -PATH _`/organizations/{organizationId}/insight/speedTestResults`_ - -> \- Path added +> > > \- New endpoint > -> #### List the speed tests for the given devices under this organization. Only valid for organizations with Meraki Insight. +> #### 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. > -> **GET** `/organizations/{organizationId}/insight/speedTestResults` +> **PUT** `/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities/{id}` > -> [ -> { -> "speedTestId": "1284392014819", -> "networkId": "N_24329156", -> "request": { -> "serial": "Q234-ABCD-5678", -> "interface": "wan1" -> }, -> "results": { -> "speeds": { -> "average": 247.279 -> } -> }, -> "startedAt": "2021-12-08T20:07:13Z" -> } -> ] +> { +> "authorityId": "1234", +> "status": "trusted", +> "contents": "-----BEGIN CERTIFICATE-----\nMIIDzDCCAragAwIBAgIUOd0ukLcjH43TfTHFG9qE0FtlMVgwCwYJKoZIhvcNAQEL\n...\numkqeYeO30g1uYvDuWLXVA==\n-----END CERTIFICATE-----\n" +> } > > * * * * * * -### webApps - -PATH _`/organizations/{organizationId}/insight/webApps`_ +PATH _`/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities/{id}/revocationList`_ > \- Path added > > \- New endpoint > -> #### Lists all default web applications rules with counter set rule ids -> -> **GET** `/organizations/{organizationId}/insight/webApps` -> -> [ -> { -> "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" -> } -> } -> ] -> -> * * * -> -> -> \- New endpoint -> -> #### Add a custom web application for Insight to be able to track +> #### Query for certificate revocation list (CRL) for the organization's RADSEC device Certificate Authority (CA) with the given id. > -> **POST** `/organizations/{organizationId}/insight/webApps` +> **GET** `/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities/{id}/revocationList` > > { -> "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" -> } +> "crl": "-----BEGIN X509 CRL-----\nMIICVjCCAj8CAQEwQQD\n...\n-----END X509 CRL-----\n" > } > > * * * * * * -PATH _`/organizations/{organizationId}/insight/webApps/{customCounterSetRuleId}`_ +PATH _`/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities/{id}/revocationList/deltas`_ > \- Path added > > \- New endpoint > -> #### Update a custom web application for Insight to be able to track +> #### Query for all delta certificate revocation list (CRL) for the organization's RADSEC device Certificate Authority (CA) with the given id. > -> **PUT** `/organizations/{organizationId}/insight/webApps/{customCounterSetRuleId}` +> **GET** `/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities/{id}/revocationList/deltas` > > { -> "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" -> } +> "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" +> ] > } > > * * * -> -> -> \- New endpoint -> -> #### Delete a custom web application by counter set rule id. -> -> **DELETE** `/organizations/{organizationId}/insight/webApps/{customCounterSetRuleId}` -> -> * * * * * * -### applications - -PATH _`/organizations/{organizationId}/insight/applications/{applicationId}`_ +PATH _`/organizations/{organizationId}/certificates/{certificateId}`_ > \- Path added > > \- New endpoint > -> #### Update an Insight tracked application +> #### Update a certificate's description for an organization > -> **PUT** `/organizations/{organizationId}/insight/applications/{applicationId}` +> **PUT** `/organizations/{organizationId}/certificates/{certificateId}` > > { -> "applicationId": "19.12", -> "name": "Meraki HTTPS", -> "thresholds": { -> "type": "smart", -> "byNetwork": [ +> "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": [ > { -> "networkId": "N_12345678", -> "goodput": 50000, -> "responseDuration": 1000 +> "algorithm": "SHA1", +> "hash": "hash text here" > } > ] > } @@ -2135,407 +1950,335 @@ PATH _`/organizations/{organizationId}/insight/applications/{applicationId}`_ > > \- New endpoint > -> #### Delete an Insight tracked application +> #### Delete a certificate for an organization > -> **DELETE** `/organizations/{organizationId}/insight/applications/{applicationId}` +> **DELETE** `/organizations/{organizationId}/certificates/{certificateId}` > > * * * * * * -\[ devices \] -------------- - -### traceRoute - -PATH _`/devices/{serial}/liveTools/traceRoute`_ +PATH _`/organizations/{organizationId}/certificates/{certificateId}/contents`_ > \- Path added > > \- New endpoint > -> #### Enqueue a job to run trace route in the device. This endpoint has a sustained rate limit of one request every five seconds per device, with an allowed burst of five requests. +> #### Download the trusted certificate by certificate id. > -> **POST** `/devices/{serial}/liveTools/traceRoute` +> **GET** `/organizations/{organizationId}/certificates/{certificateId}/contents` > > { -> "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" -> } +> "contents": "-----BEGIN CERTIFICATE-----MIIHvjCCBqagAwIBAgIQB4CbtQD3es3UQ988CCKGPjANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMSkwJwYDVQQDEyBEaWdpQ2VydCBUTFMgUlNBIFNIQTI1NiAyMDIwIENBMTAeFw0yMjA4MTAwMDAwMDBaFw0yMzA4MDkyMzU5NTlaMG4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMRMwEQYDVQQKEwpNZXJha2kgTExDMR0wGwYDVQQDExRyYWRpdXMuZGV2LmlrYXJlbS5pbzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANSxcK8g9J3nRwDqNurYbXDieo5vHw5wWO4m3uJSvWtQ+zDMZzjEhA6ix3VfftGLLE+0C99a9B2oOubZgO/sAIJmLD6Oz25bUinAtzuEmOQiqZ8OZjYZd//emPOty7POZSU5C3rGUX0ESzrStL20iJoGzyA0U9clI+14yZCyXY1+Th3VSQCvGs/DmOMPn+MdBoMXIgzVk7+wjMr53fN6H8Q26y52NlLTmAxum2L7ag4owTecURzC6-----END CERTIFICATE-----" > } > > * * * * * * -PATH _`/devices/{serial}/liveTools/traceRoute/{traceRouteId}`_ +### cloud + +PATH _`/organizations/{organizationId}/cloud/connectivity/requirements`_ > \- Path added > > \- New endpoint > -> #### Return a trace route job +> #### List of source/destination traffic rules > -> **GET** `/devices/{serial}/liveTools/traceRoute/{traceRouteId}` +> **GET** `/organizations/{organizationId}/cloud/connectivity/requirements` > -> { -> "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": 0.00005, -> "count": 3 +> [ +> { +> "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" +> ] +> } +> ] > } -> ], -> "error": "The device is unreachable." -> } +> } +> ] > > * * * * * * -### speedTest +### extensions -PATH _`/devices/{serial}/liveTools/speedTest`_ +PATH _`/organizations/{organizationId}/extensions/thousandEyes/networks`_ > \- Path added > > \- New endpoint > -> #### Enqueue a job to execute a speed test from a device +> #### 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. > -> **POST** `/devices/{serial}/liveTools/speedTest` +> **GET** `/organizations/{organizationId}/extensions/thousandEyes/networks` > -> { -> "speedTestId": "1284392014819", -> "url": "/devices/SERIAL/liveTools/speedTest/1284392014819", -> "request": { -> "serial": "Q234-ABCD-5678", -> "interface": "wan1" -> }, -> "status": "complete", -> "results": { -> "speeds": { -> "average": 123.45 -> } +> [ +> { +> "networkId": "N_24329156", +> "enabled": true, +> "agentId": "12345" > } -> } +> ] > > * * * - -* * * - -PATH _`/devices/{serial}/liveTools/speedTest/{id}`_ - -> \- Path added +> > > \- New endpoint > -> #### Returns a speed test result in megabits per second. If test is not complete, no results are present. +> #### 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. > -> **GET** `/devices/{serial}/liveTools/speedTest/{id}` +> **POST** `/organizations/{organizationId}/extensions/thousandEyes/networks` > > { -> "speedTestId": "1284392014819", -> "url": "/devices/SERIAL/liveTools/speedTest/1284392014819", -> "request": { -> "serial": "Q234-ABCD-5678", -> "interface": "wan1" -> }, -> "status": "complete", -> "results": { -> "speeds": { -> "average": 123.45 -> } -> } +> "networkId": "N_24329156", +> "enabled": true, +> "agentId": "12345" > } > > * * * * * * -### routingTable - -PATH _`/devices/{serial}/liveTools/routingTable`_ +PATH _`/organizations/{organizationId}/extensions/thousandEyes/networks/supported`_ > \- Path added > > \- New endpoint > -> #### Enqueue a job to perform a routing table request for the device. Only native Catalyst switches are supported. This endpoint has a sustained rate limit of one request every five seconds per device, with an allowed burst of five requests. +> #### List all the networks eligible for ThousandEyes agent activation under this organization. > -> **POST** `/devices/{serial}/liveTools/routingTable` +> **GET** `/organizations/{organizationId}/extensions/thousandEyes/networks/supported` > -> { -> "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" +> [ +> { +> "networkId": "N_24329156", +> "name": "Main Office", +> "tags": [ +> "tag1", +> "tag2" +> ], +> "device": { +> "model": "MX105", +> "firmware": { +> "currentVersion": { +> "shortName": "MX 18.104" +> } +> }, +> "agent": { +> "isInstalled": false +> } +> } > } -> } +> ] > > * * * * * * -PATH _`/devices/{serial}/liveTools/routingTable/{id}`_ +PATH _`/organizations/{organizationId}/extensions/thousandEyes/networks/{networkId}`_ > \- Path added > > \- New endpoint > -> #### Return an routing table live tool job. +> #### 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. > -> **GET** `/devices/{serial}/liveTools/routingTable/{id}` +> **GET** `/organizations/{organizationId}/extensions/thousandEyes/networks/{networkId}` > > { -> "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" +> "networkId": "N_24329156", +> "enabled": true, +> "agentId": "12345" > } > > * * * - -* * * - -### macTable - -PATH _`/devices/{serial}/liveTools/macTable`_ - -> \- Path added +> > > \- New endpoint > -> #### Enqueue a job to request the MAC table from the device. Switches currently support this feature. This endpoint has a sustained rate limit of one request every five seconds per device, with an allowed burst of five requests. +> #### 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. > -> **POST** `/devices/{serial}/liveTools/macTable` +> **PUT** `/organizations/{organizationId}/extensions/thousandEyes/networks/{networkId}` > > { -> "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" -> } +> "networkId": "N_24329156", +> "enabled": true, +> "agentId": "12345" > } > > * * * - -* * * - -PATH _`/devices/{serial}/liveTools/macTable/{macTableId}`_ - -> \- Path added +> > > \- New endpoint > -> #### Return a MAC table live tool job. -> -> **GET** `/devices/{serial}/liveTools/macTable/{macTableId}` +> #### 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. > -> { -> "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." -> } +> **DELETE** `/organizations/{organizationId}/extensions/thousandEyes/networks/{networkId}` > > * * * * * * -### leds - -PATH _`/devices/{serial}/liveTools/leds/blink`_ +PATH _`/organizations/{organizationId}/extensions/thousandEyes/tests`_ > \- Path added > > \- New endpoint > -> #### Enqueue a job to blink LEDs on a device. This endpoint has a rate limit of one request every 10 seconds. +> #### 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. > -> **POST** `/devices/{serial}/liveTools/leds/blink` +> **POST** `/organizations/{organizationId}/extensions/thousandEyes/tests` > > { -> "ledsBlinkId": "123", -> "url": "/devices/QXXX-YYYY-ZZZZ/liveTools/leds/blink/1738", -> "status": "complete", -> "request": { -> "serial": "Q234-ABCD-5678", -> "duration": 30 -> }, -> "error": "error description", -> "callback": { -> "id": "1284392014819", -> "url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031", -> "status": "new" -> } +> "jobStatus": "new", +> "pccBackgroundJob": "13289785" > } > > * * * * * * -PATH _`/devices/{serial}/liveTools/leds/blink/{ledsBlinkId}`_ +### policies + +PATH _`/organizations/{organizationId}/policies/assignments/byClient`_ > \- Path added > > \- New endpoint > -> #### Return a blink LEDs job +> #### Get policies for all clients with policies > -> **GET** `/devices/{serial}/liveTools/leds/blink/{ledsBlinkId}` +> **GET** `/organizations/{organizationId}/policies/assignments/byClient` > -> { -> "ledsBlinkId": "123", -> "url": "/devices/QXXX-YYYY-ZZZZ/liveTools/leds/blink/1738", -> "status": "complete", -> "request": { -> "serial": "Q234-ABCD-5678", -> "duration": 30 -> }, -> "error": "error description" -> } +> [ +> { +> "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 +> } +> ] +> } +> ] +> } +> ] +> } +> ] > > * * * * * * -### cyclePort +### support -PATH _`/devices/{serial}/liveTools/cyclePort`_ +PATH _`/organizations/{organizationId}/support/salesRepresentatives`_ > \- Path added > > \- New endpoint > -> #### Enqueue a job to perform a cycle port for the device on the specified ports. This endpoint has a sustained rate limit of one request every five seconds per device, with an allowed burst of five requests. +> #### Returns the organization's sales representatives > -> **POST** `/devices/{serial}/liveTools/cyclePort` +> **GET** `/organizations/{organizationId}/support/salesRepresentatives` > -> { -> "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" +> [ +> { +> "name": "Miles Meraki", +> "email": "miles@meraki.com", +> "phone": "+15555555555" > } -> } +> ] > > * * * * * * -PATH _`/devices/{serial}/liveTools/cyclePort/{id}`_ +### webhooks + +PATH _`/organizations/{organizationId}/webhooks/httpServers`_ > \- Path added > > \- New endpoint > -> #### Return a cycle port live tool job. +> #### List the HTTP servers for this organization > -> **GET** `/devices/{serial}/liveTools/cyclePort/{id}` +> **GET** `/organizations/{organizationId}/webhooks/httpServers` > -> { -> "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." -> } +> [ +> { +> "id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vbXlfY3VzdG9tX3dlYmhvb2s=", +> "name": "Example Webhook Server", +> "organizationId": "2930418", +> "url": "https://www.example.com/my_custom_webhook", +> "payloadTemplate": { +> "id": "wpt_00001", +> "name": "Meraki (included)" +> } +> } +> ] > > * * * - -* * * - -### aclHitCount - -PATH _`/devices/{serial}/liveTools/aclHitCount`_ - -> \- Path added +> > > \- New endpoint > -> #### Enqueue a job to perform an ACL hit count for the device. This endpoint has a sustained rate limit of one request every five seconds per device, with an allowed burst of five requests. +> #### Add an HTTP server to an organization > -> **POST** `/devices/{serial}/liveTools/aclHitCount` +> **POST** `/organizations/{organizationId}/webhooks/httpServers` > > { -> "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" +> "id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vbXlfY3VzdG9tX3dlYmhvb2s=", +> "name": "Example Webhook Server", +> "organizationId": "2930418", +> "url": "https://www.example.com/my_custom_webhook", +> "payloadTemplate": { +> "id": "wpt_00001", +> "name": "Meraki (included)" > } > } > @@ -2543,442 +2286,161 @@ PATH _`/devices/{serial}/liveTools/aclHitCount`_ * * * -PATH _`/devices/{serial}/liveTools/aclHitCount/{id}`_ +PATH _`/organizations/{organizationId}/webhooks/httpServers/{id}`_ > \- Path added > > \- New endpoint > -> #### Return an ACL hit count live tool job. +> #### Return an HTTP server for an organization > -> **GET** `/devices/{serial}/liveTools/aclHitCount/{id}` +> **GET** `/organizations/{organizationId}/webhooks/httpServers/{id}` > > { -> "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." +> "id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vbXlfY3VzdG9tX3dlYmhvb2s=", +> "name": "Example Webhook Server", +> "organizationId": "2930418", +> "url": "https://www.example.com/my_custom_webhook", +> "payloadTemplate": { +> "id": "wpt_00001", +> "name": "Meraki (included)" +> } > } > > * * * - -* * * - -\[ sensor \] ------------- - -### schedules - -PATH _`/networks/{networkId}/sensor/schedules`_ - -> \- Path added +> > > \- New endpoint > -> #### Returns a list of all sensor schedules. +> #### Update an HTTP server for an organization > -> **GET** `/networks/{networkId}/sensor/schedules` +> **PUT** `/organizations/{organizationId}/webhooks/httpServers/{id}` > -> [ -> { -> "id": "123", -> "name": "Weekday schedule" -> }, -> { -> "id": "124", -> "name": "Office hours" +> { +> "id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vbXlfY3VzdG9tX3dlYmhvb2s=", +> "name": "Example Webhook Server", +> "organizationId": "2930418", +> "url": "https://www.example.com/my_custom_webhook", +> "payloadTemplate": { +> "id": "wpt_00001", +> "name": "Meraki (included)" > } -> ] +> } +> +> * * * +> +> +> \- New endpoint +> +> #### Delete an HTTP server from an organization +> +> **DELETE** `/organizations/{organizationId}/webhooks/httpServers/{id}` > > * * * * * * -### alerts - -PATH _`/organizations/{organizationId}/sensor/alerts`_ +PATH _`/organizations/{organizationId}/webhooks/payloadTemplates`_ > \- Path added > > \- New endpoint > -> #### Return a list of sensor alert events +> #### List the webhook payload templates for an organization > -> **GET** `/organizations/{organizationId}/sensor/alerts` +> **GET** `/organizations/{organizationId}/webhooks/payloadTemplates` > > [ > { -> "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 +> "payloadTemplateId": "wpt_343", +> "type": "custom", +> "name": "Custom Template", +> "headers": [ +> { +> "name": "Authorization", +> "template": "Bearer {{sharedSecret}}" > } -> }, -> "profile": { -> "id": "1", -> "name": "Too hot", -> "condition": { -> "metric": "temperature", -> "threshold": { -> "temperature": { -> "celsius": 20.5, -> "fahrenheit": 70, -> "quality": "good" -> }, -> "humidity": { -> "relativePercentage": 65, -> "quality": "inadequate" -> }, -> "water": { -> "present": true -> }, -> "door": { -> "open": true -> }, -> "tvoc": { -> "concentration": 400, -> "quality": "poor" -> }, -> "co2": { -> "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 +> ], +> "body": "{\"event_type\":\"{{alertTypeId}}\",\"client_payload\":{\"text\":\"{{alertData}}\"}}", +> "sharing": { +> "byNetwork": { +> "withAll": true, +> "adminsCanModify": true, +> "ids": [ +> "N_1234", +> "L_5678" +> ] > } -> }, -> "snapshotCamera": { -> "serial": "QAAA-AAAA-AAAA", -> "name": "Camera", -> "url": "http://example.com" > } > } > ] > > * * * - -* * * - -### readings - -PATH _`/organizations/{organizationId}/sensor/readings/history/byInterval`_ - -> \- Path added +> > > \- New endpoint > -> #### Return all reported readings from sensors in a given timespan, summarized as a series of intervals, sorted by interval start time in descending order +> #### Create a webhook payload template for an organization > -> **GET** `/organizations/{organizationId}/sensor/readings/history/byInterval` +> **POST** `/organizations/{organizationId}/webhooks/payloadTemplates` > -> [ -> { -> "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, -> "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, -> "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, -> "maximum": 14.2, -> "average": 5 -> } -> }, -> "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 -> } +> { +> "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" +> ] > } > } -> ] +> } > > * * * * * * -\[ secureConnect \] -------------------- - -### privateApplicationGroups - -PATH _`/organizations/{organizationId}/secureConnect/privateApplicationGroups`_ +PATH _`/organizations/{organizationId}/webhooks/payloadTemplates/{payloadTemplateId}`_ > \- Path added > > \- New endpoint > -> #### Provides a list of private application groups for an Organization +> #### Get the webhook payload template for an organization > -> **GET** `/organizations/{organizationId}/secureConnect/privateApplicationGroups` +> **GET** `/organizations/{organizationId}/webhooks/payloadTemplates/{payloadTemplateId}` > > { -> "data": [ +> "payloadTemplateId": "wpt_343", +> "type": "custom", +> "name": "Custom Template", +> "headers": [ > { -> "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" +> "name": "Authorization", +> "template": "Bearer {{sharedSecret}}" > } > ], -> "meta": { -> "total": 1 +> "body": "{\"event_type\":\"{{alertTypeId}}\",\"client_payload\":{\"text\":\"{{alertData}}\"}}", +> "sharing": { +> "byNetwork": { +> "withAll": true, +> "adminsCanModify": true, +> "ids": [ +> "N_1234", +> "L_5678" +> ] +> } > } > } > @@ -2987,291 +2449,382 @@ PATH _`/organizations/{organizationId}/secureConnect/privateApplicationGroups`_ > > \- New endpoint > -> #### Creates a group of private applications to apply to policy. A maximum of 300 private application groups are allowed for an organization. +> #### Update a webhook payload template for an organization > -> **POST** `/organizations/{organizationId}/secureConnect/privateApplicationGroups` +> **PUT** `/organizations/{organizationId}/webhooks/payloadTemplates/{payloadTemplateId}` > > { -> "applicationGroupId": "1122321", -> "name": "Westcoast Data Center", -> "description": "Private applications in Westcoast Data Center", -> "applicationIds": [ -> "183456", -> "123568" +> "payloadTemplateId": "wpt_343", +> "type": "custom", +> "name": "Custom Template", +> "headers": [ +> { +> "name": "Authorization", +> "template": "Bearer {{sharedSecret}}" +> } > ], -> "createdAt": "2021-12-13T16:07:07.222Z", -> "modifiedAt": "2021-12-13T16:07:07.222Z" +> "body": "{\"event_type\":\"{{alertTypeId}}\",\"client_payload\":{\"text\":\"{{alertData}}\"}}", +> "sharing": { +> "byNetwork": { +> "withAll": true, +> "adminsCanModify": true, +> "ids": [ +> "N_1234", +> "L_5678" +> ] +> } +> } > } > > * * * +> +> +> \- New endpoint +> +> #### 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') +> +> **DELETE** `/organizations/{organizationId}/webhooks/payloadTemplates/{payloadTemplateId}` +> +> * * * * * * -PATH _`/organizations/{organizationId}/secureConnect/privateApplicationGroups/{id}`_ +PATH _`/organizations/{organizationId}/webhooks/webhookTests`_ > \- Path added > > \- New endpoint > -> #### Return the details of a specific private application group +> #### Send a test webhook for an organization > -> **GET** `/organizations/{organizationId}/secureConnect/privateApplicationGroups/{id}` +> **POST** `/organizations/{organizationId}/webhooks/webhookTests` > > { -> "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" +> "id": "1234", +> "url": "https://www.example.com/path", +> "status": "enqueued" > } > > * * * -> + +* * * + +PATH _`/organizations/{organizationId}/webhooks/webhookTests/{webhookTestId}`_ + +> \- Path added > > \- New endpoint > -> #### 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. +> #### Return the status of a webhook test for an organization > -> **PUT** `/organizations/{organizationId}/secureConnect/privateApplicationGroups/{id}` +> **GET** `/organizations/{organizationId}/webhooks/webhookTests/{webhookTestId}` > > { -> "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" +> "id": "1234", +> "url": "https://www.example.com/path", +> "status": "enqueued" > } > > * * * -> + +* * * + +### wirelessController + +PATH _`/organizations/{organizationId}/wirelessController/availabilities/changeHistory`_ + +> \- Path added > > \- New endpoint > -> #### Deletes private application group from an Organization. Detaches application from groups before deleting +> #### List connectivity data of wireless LAN controllers in an organization. If it is HA setup, then only returns active WLC data start from switchover > -> **DELETE** `/organizations/{organizationId}/secureConnect/privateApplicationGroups/{id}` +> **GET** `/organizations/{organizationId}/wirelessController/availabilities/changeHistory` +> +> { +> "items": [ +> { +> "serial": "Q234-ABCD-5678", +> "changes": [ +> { +> "startTs": "2020-01-01T00:00:00Z", +> "endTs": "null", +> "status": "online" +> } +> ] +> } +> ], +> "meta": { +> "counts": { +> "items": { +> "total": 10, +> "remaining": 0 +> } +> } +> } +> } > > * * * * * * -### privateApplications - -PATH _`/organizations/{organizationId}/secureConnect/privateApplications`_ +PATH _`/organizations/{organizationId}/wirelessController/clients/overview/history/byDevice/byInterval`_ > \- Path added > > \- New endpoint > -> #### Provides a list of private applications for an Organization. +> #### List wireless client counts of wireless LAN controllers over time in an organization > -> **GET** `/organizations/{organizationId}/secureConnect/privateApplications` +> **GET** `/organizations/{organizationId}/wirelessController/clients/overview/history/byDevice/byInterval` > > { -> "data": [ +> "items": [ > { -> "applicationId": "183456", -> "name": "Jira", -> "description": "Jira App For My Org", -> "destinations": [ +> "serial": "Q234-ABCD-5678", +> "network": { +> "id": "N_24329156" +> }, +> "readings": [ > { -> "destinationAddr": [ -> "172.6.0.0/32", -> "255.100.100.0/24" -> ], -> "protocolPorts": [ -> { -> "protocol": "TCP", -> "ports": "80-82" +> "startTs": "2020-01-01T00:00:00Z", +> "endTs": "2020-01-01T01:00:00Z", +> "counts": { +> "byStatus": { +> "online": 1 > } -> ], -> "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 +> "counts": { +> "items": { +> "total": 10, +> "remaining": 0 +> } +> } > } > } > > * * * -> + +* * * + +PATH _`/organizations/{organizationId}/wirelessController/connections`_ + +> \- Path added > > \- New endpoint > -> #### Adds a new private application to the Organization. A maximum of 300 private applications are allowed for an organization. +> #### List all access points associated with wireless LAN controllers in an organization > -> **POST** `/organizations/{organizationId}/secureConnect/privateApplications` +> **GET** `/organizations/{organizationId}/wirelessController/connections` > > { -> "applicationId": "183456", -> "name": "Jira", -> "description": "Jira App For My Org", -> "destinations": [ +> "items": [ > { -> "destinationAddr": [ -> "172.6.0.0/32", -> "255.100.100.0/24" -> ], -> "protocolPorts": [ -> { -> "protocol": "TCP", -> "ports": "80-82" -> } -> ], -> "accessType": "network" +> "serial": "Q234-ABCD-5678", +> "controller": { +> "serial": "Q234-ABCD-5678" +> }, +> "network": { +> "id": "N_24329156", +> "url": "https://network/url", +> "name": "Network1" +> } > } > ], -> "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": { +> "counts": { +> "items": { +> "total": 10, +> "remaining": 0 +> } +> } +> } > } > > * * * * * * -PATH _`/organizations/{organizationId}/secureConnect/privateApplications/{id}`_ +PATH _`/organizations/{organizationId}/wirelessController/devices/interfaces/l2/byDevice`_ > \- Path added > > \- New endpoint > -> #### Return the details of a specific private application +> #### List wireless LAN controller layer 2 interfaces in an organization > -> **GET** `/organizations/{organizationId}/secureConnect/privateApplications/{id}` +> **GET** `/organizations/{organizationId}/wirelessController/devices/interfaces/l2/byDevice` > > { -> "applicationId": "183456", -> "name": "Jira", -> "description": "Jira App For My Org", -> "destinations": [ +> "items": [ > { -> "destinationAddr": [ -> "172.6.0.0/32", -> "255.100.100.0/24" -> ], -> "protocolPorts": [ +> "serial": "Q234-ABCD-5678", +> "interfaces": [ > { -> "protocol": "TCP", -> "ports": "80-82" +> "name": "TenGigabitEthernet0/0/5", +> "description": "Uplink", +> "enabled": true, +> "mac": "b0:c5:3c:0d:c5:0b", +> "status": "disabled", +> "speed": "1 Gbps", +> "isUplink": true, +> "vlan": 10, +> "isRedundancyPort": true, +> "linkNegotiation": "auto", +> "module": { +> "model": "C9800-2X40GE" +> } > } -> ], -> "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" +> "meta": { +> "counts": { +> "items": { +> "total": 10, +> "remaining": 0 +> } +> } +> } > } > > * * * -> + +* * * + +PATH _`/organizations/{organizationId}/wirelessController/devices/interfaces/l2/statuses/changeHistory/byDevice`_ + +> \- Path added > > \- New endpoint > -> #### 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. +> #### List wireless LAN controller layer 2 interfaces history status in an organization > -> **PUT** `/organizations/{organizationId}/secureConnect/privateApplications/{id}` +> **GET** `/organizations/{organizationId}/wirelessController/devices/interfaces/l2/statuses/changeHistory/byDevice` > > { -> "applicationId": "183456", -> "name": "Jira", -> "description": "Jira App For My Org", -> "destinations": [ +> "items": [ > { -> "destinationAddr": [ -> "172.6.0.0/32", -> "255.100.100.0/24" -> ], -> "protocolPorts": [ +> "serial": "Q234-ABCD-5678", +> "interfaces": [ > { -> "protocol": "TCP", -> "ports": "80-82" +> "name": "TenGigabitEthernet0/0/5", +> "mac": "b0:c5:3c:0d:c5:0b", +> "changes": [ +> { +> "ts": "2020-01-01T00:00:00Z", +> "status": "disabled" +> } +> ] > } -> ], -> "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": { +> "counts": { +> "items": { +> "total": 10, +> "remaining": 0 +> } +> } +> } > } > > * * * -> + +* * * + +PATH _`/organizations/{organizationId}/wirelessController/devices/interfaces/l2/usage/history/byInterval`_ + +> \- Path added > > \- New endpoint > -> #### 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. +> #### List wireless LAN controller layer 2 interfaces history usage in an organization > -> **DELETE** `/organizations/{organizationId}/secureConnect/privateApplications/{id}` +> **GET** `/organizations/{organizationId}/wirelessController/devices/interfaces/l2/usage/history/byInterval` +> +> { +> "items": [ +> { +> "serial": "Q234-ABCD-5678", +> "readings": [ +> { +> "name": "TenGigabitEthernet0/0/5", +> "mac": "b0:c5:3c:0d:c5:0b", +> "recv": 0, +> "send": 0 +> } +> ] +> } +> ], +> "meta": { +> "counts": { +> "items": { +> "total": 10, +> "remaining": 0 +> } +> } +> } +> } > > * * * * * * -### publicApplications - -PATH _`/organizations/{organizationId}/secureConnect/publicApplications`_ +PATH _`/organizations/{organizationId}/wirelessController/devices/interfaces/l3/byDevice`_ > \- Path added > > \- New endpoint > -> #### Provides a list of public applications for an Organization. +> #### List wireless LAN controller layer 3 interfaces in an organization > -> **GET** `/organizations/{organizationId}/secureConnect/publicApplications` +> **GET** `/organizations/{organizationId}/wirelessController/devices/interfaces/l3/byDevice` > > { > "items": [ > { -> "id": "ABCDEFG", -> "name": "Snapcraft", -> "lastDetected": "2021-12-13T16:07:07.222Z", -> "risk": "medium", -> "category": "Application Development and Testing", -> "appType": "paas" +> "serial": "Q234-ABCD-5678", +> "interfaces": [ +> { +> "name": "vlan123", +> "description": "Wireless Mgmt", +> "mac": "1c:e8:5d:00:00:0c", +> "status": "disabled", +> "speed": "1 Gbps", +> "addresses": [ +> { +> "protocol": "ipv4", +> "address": "192.168.123.1", +> "subnet": "192.168.123.0/24" +> } +> ], +> "vrf": { +> "name": "Global" +> }, +> "isUplink": true, +> "vlan": 10, +> "linkNegotiation": "auto", +> "module": { +> "model": "C9800-2X40GE" +> } +> } +> ] > } > ], > "meta": { -> "total": 1 +> "counts": { +> "items": { +> "total": 10, +> "remaining": 0 +> } +> } > } > } > @@ -3279,32 +2832,41 @@ PATH _`/organizations/{organizationId}/secureConnect/publicApplications`_ * * * -### regions - -PATH _`/organizations/{organizationId}/secureConnect/regions`_ +PATH _`/organizations/{organizationId}/wirelessController/devices/interfaces/l3/statuses/changeHistory/byDevice`_ > \- Path added > > \- New endpoint > -> #### List deployed cloud hubs and regions in this organization +> #### List wireless LAN controller layer 3 interfaces history status in an organization > -> **GET** `/organizations/{organizationId}/secureConnect/regions` +> **GET** `/organizations/{organizationId}/wirelessController/devices/interfaces/l3/statuses/changeHistory/byDevice` > > { -> "data": [ -> { -> "id": "123", -> "type": "Region", -> "name": "US West Coast", -> "dcPair": [ -> "Los Angeles", -> "Palo Alto" +> "items": [ +> { +> "serial": "Q234-ABCD-5678", +> "interfaces": [ +> { +> "name": "TenGigabitEthernet0/0/5", +> "mac": "b0:c5:3c:0d:c5:0b", +> "changes": [ +> { +> "ts": "2020-01-01T00:00:00Z", +> "status": "disabled" +> } +> ] +> } > ] > } > ], > "meta": { -> "maxTotalCloudHubs": 5 +> "counts": { +> "items": { +> "total": 10, +> "remaining": 0 +> } +> } > } > } > @@ -3312,45 +2874,37 @@ PATH _`/organizations/{organizationId}/secureConnect/regions`_ * * * -### remoteAccessLog - -PATH _`/organizations/{organizationId}/secureConnect/remoteAccessLog`_ +PATH _`/organizations/{organizationId}/wirelessController/devices/interfaces/l3/usage/history/byInterval`_ > \- Path added > > \- New endpoint > -> #### List the latest 5000 events logged by remote access. +> #### List wireless LAN controller layer 3 interfaces history usage in an organization > -> **GET** `/organizations/{organizationId}/secureConnect/remoteAccessLog` +> **GET** `/organizations/{organizationId}/wirelessController/devices/interfaces/l3/usage/history/byInterval` > > { -> "data": [ +> "items": [ > { -> "osversion": "win-10.0.19044", -> "internalip": "10.0.1.5", -> "connecttimestamp": 1667252442, -> "identities": [ +> "serial": "Q234-ABCD-5678", +> "readings": [ > { -> "id": "1173502975", -> "type": { -> "id": "7", -> "type": "directory_user", -> "label": "AD Users" -> }, -> "label": "sample-remote-access@cisco.com", -> "deleted": false +> "name": "TenGigabitEthernet0/0/5", +> "mac": "b0:c5:3c:0d:c5:0b", +> "recv": 0, +> "send": 0 > } -> ], -> "reason": "ACCT_DISC_USER_REQ", -> "failedreasons": [], -> "connectionevent": "disconnected", -> "anyconnectversion": "4.10.05095", -> "timestamp": 1667252458 +> ] > } > ], > "meta": { -> "total": 1 +> "counts": { +> "items": { +> "total": 10, +> "remaining": 0 +> } +> } > } > } > @@ -3358,67 +2912,85 @@ PATH _`/organizations/{organizationId}/secureConnect/remoteAccessLog`_ * * * -### remoteAccessLogsExports - -PATH _`/organizations/{organizationId}/secureConnect/remoteAccessLogsExports`_ +PATH _`/organizations/{organizationId}/wirelessController/devices/redundancy/failover/history`_ > \- Path added > > \- New endpoint > -> #### Provides a list of remote access logs exports for an Organization +> #### List the failover events of wireless LAN controllers in an organization > -> **GET** `/organizations/{organizationId}/secureConnect/remoteAccessLogsExports` +> **GET** `/organizations/{organizationId}/wirelessController/devices/redundancy/failover/history` > -> { -> "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 +> [ +> { +> "items": [ +> { +> "serial": "Q234-ABCD-5678", +> "ts": "2020-01-01T00:00:00Z", +> "reason": "Active Unit Failed", +> "failed": { +> "chassis": { +> "name": "Chassis 2" +> } +> }, +> "active": { +> "chassis": { +> "name": "Chassis 1" +> } +> } +> } +> ], +> "meta": { +> "counts": { +> "items": { +> "total": 10, +> "remaining": 0 +> } > } > } -> ], -> "meta": { -> "total": 1 > } -> } +> ] > > * * * -> + +* * * + +PATH _`/organizations/{organizationId}/wirelessController/devices/redundancy/statuses`_ + +> \- Path added > > \- New endpoint > -> #### Creates a export for a provided timestamp interval. +> #### List redundancy details of wireless LAN controllers in an organization. The failover count refers to the total failovers system happens from the moment of this device onboarding to Dashboard > -> **POST** `/organizations/{organizationId}/secureConnect/remoteAccessLogsExports` +> **GET** `/organizations/{organizationId}/wirelessController/devices/redundancy/statuses` > > { -> "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 +> "items": [ +> { +> "serial": "Q234-ABCD-5678", +> "mode": "SSO", +> "enabled": true, +> "failover": { +> "last": { +> "ts": "2020-01-01T00:00:00Z", +> "reason": "Active Unit Failed" +> }, +> "counts": { +> "total": 2 +> } +> }, +> "mobilityMac": "b0:c5:3c:0d:c5:0b" +> } +> ], +> "meta": { +> "counts": { +> "items": { +> "total": 10, +> "remaining": 0 +> } +> } > } > } > @@ -3426,535 +2998,578 @@ PATH _`/organizations/{organizationId}/secureConnect/remoteAccessLogsExports`_ * * * -PATH _`/organizations/{organizationId}/secureConnect/remoteAccessLogsExports/download`_ +PATH _`/organizations/{organizationId}/wirelessController/overview/byDevice`_ > \- Path added > > \- New endpoint > -> #### Redirects to the download link of the completed export. +> #### List the overview information of wireless LAN controllers in an organization and it is updated every minute. > -> **GET** `/organizations/{organizationId}/secureConnect/remoteAccessLogsExports/download` +> **GET** `/organizations/{organizationId}/wirelessController/overview/byDevice` > > { -> "link": "download" +> "items": [ +> { +> "serial": "Q234-ABCD-5678", +> "network": { +> "id": "N_24329156" +> }, +> "counts": { +> "clients": { +> "byStatus": { +> "online": 300 +> } +> }, +> "connections": { +> "total": 200, +> "byStatus": { +> "online": 180, +> "offline": 20 +> } +> } +> }, +> "redundancy": { +> "role": "Active", +> "id": "123456", +> "chassisName": "Chassis 1", +> "management": { +> "addresses": [ +> { +> "address": "10.14.140.5" +> } +> ] +> } +> }, +> "firmware": { +> "version": { +> "shortName": "ios-xe" +> } +> } +> } +> ], +> "meta": { +> "counts": { +> "items": { +> "total": 10, +> "remaining": 0 +> } +> } +> } > } > > * * * * * * -PATH _`/organizations/{organizationId}/secureConnect/remoteAccessLogsExports/{id}`_ +\[ insight \] +------------- + +### speedTestResults + +PATH _`/organizations/{organizationId}/insight/speedTestResults`_ > \- Path added > > \- New endpoint > -> #### Return the details of a specific remote access logs export +> #### List the speed tests for the given devices under this organization. Only valid for organizations with Meraki Insight. > -> **GET** `/organizations/{organizationId}/secureConnect/remoteAccessLogsExports/{id}` +> **GET** `/organizations/{organizationId}/insight/speedTestResults` > -> { -> "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 +> [ +> { +> "speedTestId": "1284392014819", +> "networkId": "N_24329156", +> "request": { +> "serial": "Q234-ABCD-5678", +> "interface": "wan1" +> }, +> "results": { +> "speeds": { +> "average": 247.279 +> } +> }, +> "startedAt": "2021-12-08T20:07:13Z" > } -> } +> ] > > * * * * * * -### sites +### webApps -PATH _`/organizations/{organizationId}/secureConnect/sites`_ +PATH _`/organizations/{organizationId}/insight/webApps`_ > \- Path added > > \- New endpoint > -> #### List sites in this organization +> #### Lists all default web applications rules with counter set rule ids > -> **GET** `/organizations/{organizationId}/secureConnect/sites` +> **GET** `/organizations/{organizationId}/insight/webApps` > -> { -> "data": [ -> { -> "id": "123", -> "type": "MerakiSpoke", -> "name": "London Office", -> "region": "US East", -> "deviceType": "MX95-HW", -> "address": "123 Main St", -> "enrolled": true, -> "vpnType": "Hub", -> "defaultRoute": true +> [ +> { +> "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" > } -> ], -> "meta": { -> "total": 1 > } -> } +> ] > > * * * > > > \- New endpoint > -> #### 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. +> #### Add a custom web application for Insight to be able to track > -> **POST** `/organizations/{organizationId}/secureConnect/sites` +> **POST** `/organizations/{organizationId}/insight/webApps` > > { -> "action": "enroll", -> "status": "success", -> "message": "Site enrolled successfully", -> "request": { -> "siteId": "1520758", -> "regionId": "42" +> "counterSetRuleId": "12345", +> "name": "Meraki HTTPS", +> "category": "Remote monitoring & management", +> "thresholds": { +> "goodput": "20000", +> "responseDelay": "3000" > }, -> "callback": { -> "id": "1284392014819", -> "url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031", -> "status": "new" +> "expression": "http_host[*.example.com] or http_host", +> "signature": { +> "signatureType": "custom_host", +> "host": "exampled.com" > } > } > > * * * -> + +* * * + +PATH _`/organizations/{organizationId}/insight/webApps/{customCounterSetRuleId}`_ + +> \- Path added > > \- New endpoint > -> #### Detach given sites from Secure Connect +> #### Update a custom web application for Insight to be able to track > -> **DELETE** `/organizations/{organizationId}/secureConnect/sites` +> **PUT** `/organizations/{organizationId}/insight/webApps/{customCounterSetRuleId}` > > { -> "action": "detach", -> "status": "success", -> "message": "Site enrolled successfully", -> "request": { -> "siteId": "1520758" +> "counterSetRuleId": "12345", +> "name": "Meraki HTTPS", +> "category": "Remote monitoring & management", +> "thresholds": { +> "goodput": "20000", +> "responseDelay": "3000" > }, -> "callback": { -> "id": "1284392014819", -> "url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031", -> "status": "new" +> "expression": "http_host[*.example.com] or http_host", +> "signature": { +> "signatureType": "custom_host", +> "host": "exampled.com" > } > } > > * * * +> +> +> \- New endpoint +> +> #### Delete a custom web application by counter set rule id. +> +> **DELETE** `/organizations/{organizationId}/insight/webApps/{customCounterSetRuleId}` +> +> * * * * * * -\[ sm \] --------- - -### apple +### applications -PATH _`/organizations/{organizationId}/sm/apple/cloudEnrollment/syncJobs`_ +PATH _`/organizations/{organizationId}/insight/applications/{applicationId}`_ > \- Path added > > \- New endpoint > -> #### Enqueue a sync job for an ADE account +> #### Update an Insight tracked application > -> **POST** `/organizations/{organizationId}/sm/apple/cloudEnrollment/syncJobs` +> **PUT** `/organizations/{organizationId}/insight/applications/{applicationId}` > > { -> "syncJobId": "1284392014819", -> "adeAccountId": "1284392014819", -> "status": "pending" +> "applicationId": "19.12", +> "name": "Meraki HTTPS", +> "thresholds": { +> "type": "smart", +> "byNetwork": [ +> { +> "networkId": "N_12345678", +> "goodput": 50000, +> "responseDuration": 1000 +> } +> ] +> } > } > > * * * - -* * * - -PATH _`/organizations/{organizationId}/sm/apple/cloudEnrollment/syncJobs/{syncJobId}`_ - -> \- Path added +> > > \- New endpoint > -> #### Retrieve the status of an ADE sync job -> -> **GET** `/organizations/{organizationId}/sm/apple/cloudEnrollment/syncJobs/{syncJobId}` +> #### Delete an Insight tracked application > -> { -> "syncJobId": "1284392014819", -> "adeAccountId": "1284392014819", -> "status": "pending" -> } +> **DELETE** `/organizations/{organizationId}/insight/applications/{applicationId}` > > * * * * * * -### bulkEnrollment +\[ devices \] +------------- -PATH _`/organizations/{organizationId}/sm/bulkEnrollment/token`_ +### traceRoute + +PATH _`/devices/{serial}/liveTools/traceRoute`_ > \- Path added > > \- New endpoint > -> #### Create a PccBulkEnrollmentToken +> #### Enqueue a job to run trace route in the device. This endpoint has a sustained rate limit of one request every five seconds per device, with an allowed burst of five requests. > -> **POST** `/organizations/{organizationId}/sm/bulkEnrollment/token` +> **POST** `/devices/{serial}/liveTools/traceRoute` > > { -> "id": "1284392014819", -> "networkId": "N_24329156", -> "expiresAt": "2023-10-15T00:00:00Z", -> "rawToken": "MMbCbpHZtG3TKUCr9B9uc5" +> "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" +> } > } > > * * * * * * -PATH _`/organizations/{organizationId}/sm/bulkEnrollment/token/{tokenId}`_ +PATH _`/devices/{serial}/liveTools/traceRoute/{traceRouteId}`_ > \- Path added > > \- New endpoint > -> #### Return a BulkEnrollmentToken +> #### Return a trace route job > -> **GET** `/organizations/{organizationId}/sm/bulkEnrollment/token/{tokenId}` +> **GET** `/devices/{serial}/liveTools/traceRoute/{traceRouteId}` > > { -> "id": "1284392014819", -> "networkId": "N_24329156", -> "expiresAt": "2023-10-15T00:00:00Z" +> "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": 0.00005, +> "count": 3 +> } +> ], +> "error": "The device is unreachable." > } > > * * * -> + +* * * + +### speedTest + +PATH _`/devices/{serial}/liveTools/speedTest`_ + +> \- Path added > > \- New endpoint > -> #### Update a PccBulkEnrollmentToken +> #### Enqueue a job to execute a speed test from a device > -> **PUT** `/organizations/{organizationId}/sm/bulkEnrollment/token/{tokenId}` +> **POST** `/devices/{serial}/liveTools/speedTest` > > { -> "id": "1284392014819", -> "networkId": "N_24329156", -> "expiresAt": "2023-10-15T00:00:00Z" +> "speedTestId": "1284392014819", +> "url": "/devices/SERIAL/liveTools/speedTest/1284392014819", +> "request": { +> "serial": "Q234-ABCD-5678", +> "interface": "wan1" +> }, +> "status": "complete", +> "results": { +> "speeds": { +> "average": 123.45 +> } +> } > } > > * * * -> -> -> \- New endpoint -> -> #### Delete a PccBulkEnrollmentToken -> -> **DELETE** `/organizations/{organizationId}/sm/bulkEnrollment/token/{tokenId}` -> -> * * * * * * -PATH _`/organizations/{organizationId}/sm/bulkEnrollment/tokens`_ +PATH _`/devices/{serial}/liveTools/speedTest/{id}`_ > \- Path added > > \- New endpoint > -> #### List all BulkEnrollmentTokens for an organization. +> #### Returns a speed test result in megabits per second. If test is not complete, no results are present. > -> **GET** `/organizations/{organizationId}/sm/bulkEnrollment/tokens` +> **GET** `/devices/{serial}/liveTools/speedTest/{id}` > -> [ -> { -> "id": "1284392014819", -> "networkId": "N_24329156", -> "expiresAt": "2023-10-15T00:00:00Z" +> { +> "speedTestId": "1284392014819", +> "url": "/devices/SERIAL/liveTools/speedTest/1284392014819", +> "request": { +> "serial": "Q234-ABCD-5678", +> "interface": "wan1" +> }, +> "status": "complete", +> "results": { +> "speeds": { +> "average": 123.45 +> } > } -> ] +> } > > * * * * * * -\[ organizations \] -------------------- - -### auth +### routingTable -PATH _`/organizations/{organizationId}/auth/radius/servers`_ +PATH _`/devices/{serial}/liveTools/routingTable`_ > \- Path added > > \- New endpoint > -> #### List the organization-wide RADIUS servers in the organization +> #### Enqueue a job to perform a routing table request for the device. Only native Catalyst switches are supported. This endpoint has a sustained rate limit of one request every five seconds per device, with an allowed burst of five requests. > -> **GET** `/organizations/{organizationId}/auth/radius/servers` +> **POST** `/devices/{serial}/liveTools/routingTable` > -> [ -> { -> "serverId": "42", -> "name": "HQ RADIUS server", -> "address": "1.2.3.4", -> "modes": [ -> { -> "mode": "auth", -> "port": 1812 -> } -> ] +> { +> "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" > } -> ] +> } > > * * * -> + +* * * + +PATH _`/devices/{serial}/liveTools/routingTable/{id}`_ + +> \- Path added > > \- New endpoint > -> #### Add an organization-wide RADIUS server +> #### Return an routing table live tool job. > -> **POST** `/organizations/{organizationId}/auth/radius/servers` +> **GET** `/devices/{serial}/liveTools/routingTable/{id}` > > { -> "serverId": "42", -> "name": "HQ RADIUS server", -> "address": "1.2.3.4", -> "modes": [ +> "routingTableId": "1284392014819", +> "url": "/devices/Q234-ABCD-5678/liveTools/routingTable/1284392014819", +> "request": { +> "serial": "Q234-ABCD-5678" +> }, +> "status": "complete", +> "entries": [ > { -> "mode": "auth", -> "port": 1812 +> "type": "static", +> "subnet": "10.200.10.1/32", +> "staticGateway": "22.22.22.21" > } -> ] +> ], +> "error": "The device is unreachable" > } > > * * * * * * -PATH _`/organizations/{organizationId}/auth/radius/servers/assignments`_ +### macTable + +PATH _`/devices/{serial}/liveTools/macTable`_ > \- Path added > > \- New endpoint > -> #### Return list of network and policies that organization-wide RADIUS servers are bing used +> #### Enqueue a job to request the MAC table from the device. Switches currently support this feature. This endpoint has a sustained rate limit of one request every five seconds per device, with an allowed burst of five requests. > -> **GET** `/organizations/{organizationId}/auth/radius/servers/assignments` +> **POST** `/devices/{serial}/liveTools/macTable` > > { -> "serverId": "42", -> "name": "HQ RADIUS server", -> "assignments": [ -> { -> "network": { -> "id": "L_1234", -> "eid": "L_1234", -> "tag": "San-Francisco", -> "name": "San Francisco Office", -> "dashboardUrl": "https://n1.meraki.dev.ikram.io/tag/n/1234/manage/nodes/list" -> }, -> "assignee": { -> "type": "Access policy", -> "id": "42", -> "name": "Access policy #42", -> "dashboardUrl": "https://n1.meraki.dev.ikram.io/tag/n/1234/manage/configure/switch_access" -> } -> } -> ] +> "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" +> } > } > > * * * * * * -PATH _`/organizations/{organizationId}/auth/radius/servers/{serverId}`_ +PATH _`/devices/{serial}/liveTools/macTable/{macTableId}`_ > \- Path added > > \- New endpoint > -> #### Return an organization-wide RADIUS server +> #### Return a MAC table live tool job. > -> **GET** `/organizations/{organizationId}/auth/radius/servers/{serverId}` +> **GET** `/devices/{serial}/liveTools/macTable/{macTableId}` > > { -> "serverId": "42", -> "name": "HQ RADIUS server", -> "address": "1.2.3.4", -> "modes": [ +> "macTableId": "1284392014819", +> "url": "/devices/Q234-ABCD-5678/liveTools/macTable/1284392014819", +> "request": { +> "serial": "Q234-ABCD-5678" +> }, +> "status": "complete", +> "entries": [ > { -> "mode": "auth", -> "port": 1812 +> "mac": "00:11:22:33:44:55", +> "port": "Tw1/0/9", +> "vlanId": 100 > } -> ] +> ], +> "error": "The device is unreachable." > } > > * * * -> + +* * * + +### leds + +PATH _`/devices/{serial}/liveTools/leds/blink`_ + +> \- Path added > > \- New endpoint > -> #### Update an organization-wide RADIUS server +> #### Enqueue a job to blink LEDs on a device. This endpoint has a rate limit of one request every 10 seconds. > -> **PUT** `/organizations/{organizationId}/auth/radius/servers/{serverId}` +> **POST** `/devices/{serial}/liveTools/leds/blink` > > { -> "serverId": "42", -> "name": "HQ RADIUS server", -> "address": "1.2.3.4", -> "modes": [ -> { -> "mode": "auth", -> "port": 1812 -> } -> ] +> "ledsBlinkId": "123", +> "url": "/devices/QXXX-YYYY-ZZZZ/liveTools/leds/blink/1738", +> "status": "complete", +> "request": { +> "serial": "Q234-ABCD-5678", +> "duration": 30 +> }, +> "error": "error description", +> "callback": { +> "id": "1284392014819", +> "url": "https://webhook.site/28efa24e-f830-4d9f-a12b-fbb9e5035031", +> "status": "new" +> } > } > > * * * -> -> -> \- New endpoint -> -> #### Delete an organization-wide RADIUS server from a organization -> -> **DELETE** `/organizations/{organizationId}/auth/radius/servers/{serverId}` -> -> * * * * * * -### certificates - -PATH _`/organizations/{organizationId}/certificates`_ +PATH _`/devices/{serial}/liveTools/leds/blink/{ledsBlinkId}`_ > \- Path added > > \- New endpoint > -> #### Gets all or specific certificates for an organization +> #### Return a blink LEDs job > -> **GET** `/organizations/{organizationId}/certificates` +> **GET** `/devices/{serial}/liveTools/leds/blink/{ledsBlinkId}` > > { -> "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" -> } -> ] -> } +> "ledsBlinkId": "123", +> "url": "/devices/QXXX-YYYY-ZZZZ/liveTools/leds/blink/1738", +> "status": "complete", +> "request": { +> "serial": "Q234-ABCD-5678", +> "duration": 30 +> }, +> "error": "error description" > } > > * * * * * * -PATH _`/organizations/{organizationId}/certificates/import`_ +### cyclePort + +PATH _`/devices/{serial}/liveTools/cyclePort`_ > \- Path added > > \- New endpoint > -> #### Import certificate for this organization +> #### Enqueue a job to perform a cycle port for the device on the specified ports. This endpoint has a sustained rate limit of one request every five seconds per device, with an allowed burst of five requests. > -> **POST** `/organizations/{organizationId}/certificates/import` +> **POST** `/devices/{serial}/liveTools/cyclePort` > > { -> "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" -> } +> "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" > } > } > @@ -3962,353 +3577,714 @@ PATH _`/organizations/{organizationId}/certificates/import`_ * * * -PATH _`/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities`_ +PATH _`/devices/{serial}/liveTools/cyclePort/{id}`_ > \- Path added > > \- New endpoint > -> #### 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. +> #### Return a cycle port live tool job. > -> **GET** `/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities` +> **GET** `/devices/{serial}/liveTools/cyclePort/{id}` > -> [ -> { -> "authorityId": "1234", -> "status": "trusted", -> "contents": "-----BEGIN CERTIFICATE-----\nMIIDzDCCAragAwIBAgIUOd0ukLcjH43TfTHFG9qE0FtlMVgwCwYJKoZIhvcNAQEL\n...\numkqeYeO30g1uYvDuWLXVA==\n-----END CERTIFICATE-----\n" -> } -> ] +> { +> "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." +> } > > * * * -> + +* * * + +### aclHitCount + +PATH _`/devices/{serial}/liveTools/aclHitCount`_ + +> \- Path added > > \- New endpoint > -> #### 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. +> #### Enqueue a job to perform an ACL hit count for the device. This endpoint has a sustained rate limit of one request every five seconds per device, with an allowed burst of five requests. > -> **POST** `/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities` +> **POST** `/devices/{serial}/liveTools/aclHitCount` > > { -> "authorityId": "1234", -> "status": "generating", -> "contents": "" +> "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" +> } > } > > * * * * * * -PATH _`/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities/{id}`_ +PATH _`/devices/{serial}/liveTools/aclHitCount/{id}`_ > \- Path added > > \- New endpoint > -> #### 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. +> #### Return an ACL hit count live tool job. > -> **GET** `/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities/{id}` +> **GET** `/devices/{serial}/liveTools/aclHitCount/{id}` > > { -> "authorityId": "1234", -> "status": "trusted", -> "contents": "-----BEGIN CERTIFICATE-----\nMIIDzDCCAragAwIBAgIUOd0ukLcjH43TfTHFG9qE0FtlMVgwCwYJKoZIhvcNAQEL\n...\numkqeYeO30g1uYvDuWLXVA==\n-----END CERTIFICATE-----\n" +> "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." > } > > * * * -> + +* * * + +\[ sensor \] +------------ + +### schedules + +PATH _`/networks/{networkId}/sensor/schedules`_ + +> \- Path added > > \- New endpoint > -> #### 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. +> #### Returns a list of all sensor schedules. > -> **PUT** `/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities/{id}` +> **GET** `/networks/{networkId}/sensor/schedules` > -> { -> "authorityId": "1234", -> "status": "trusted", -> "contents": "-----BEGIN CERTIFICATE-----\nMIIDzDCCAragAwIBAgIUOd0ukLcjH43TfTHFG9qE0FtlMVgwCwYJKoZIhvcNAQEL\n...\numkqeYeO30g1uYvDuWLXVA==\n-----END CERTIFICATE-----\n" -> } +> [ +> { +> "id": "123", +> "name": "Weekday schedule" +> }, +> { +> "id": "124", +> "name": "Office hours" +> } +> ] > > * * * * * * -PATH _`/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities/{id}/revocationList`_ +### alerts + +PATH _`/organizations/{organizationId}/sensor/alerts`_ > \- Path added > > \- New endpoint > -> #### Query for certificate revocation list (CRL) for the organization's RADSEC device Certificate Authority (CA) with the given id. +> #### Return a list of sensor alert events > -> **GET** `/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities/{id}/revocationList` +> **GET** `/organizations/{organizationId}/sensor/alerts` > -> { -> "crl": "-----BEGIN X509 CRL-----\nMIICVjCCAj8CAQEwQQD\n...\n-----END X509 CRL-----\n" -> } +> [ +> { +> "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, +> "quality": "good" +> }, +> "humidity": { +> "relativePercentage": 65, +> "quality": "inadequate" +> }, +> "water": { +> "present": true +> }, +> "door": { +> "open": true +> }, +> "tvoc": { +> "concentration": 400, +> "quality": "poor" +> }, +> "co2": { +> "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" +> } +> } +> ] > > * * * * * * -PATH _`/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities/{id}/revocationList/deltas`_ - -> \- Path added -> -> \- New endpoint -> -> #### Query for all delta certificate revocation list (CRL) for the organization's RADSEC device Certificate Authority (CA) with the given id. -> -> **GET** `/organizations/{organizationId}/certificates/radSec/deviceCertificateAuthorities/{id}/revocationList/deltas` -> -> { -> "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" -> ] -> } -> -> * * * - -* * * +### readings -PATH _`/organizations/{organizationId}/certificates/{certificateId}`_ +PATH _`/organizations/{organizationId}/sensor/readings/history/byInterval`_ > \- Path added > > \- New endpoint > -> #### Update a certificate's description for an organization +> #### Return all reported readings from sensors in a given timespan, summarized as a series of intervals, sorted by interval start time in descending order > -> **PUT** `/organizations/{organizationId}/certificates/{certificateId}` +> **GET** `/organizations/{organizationId}/sensor/readings/history/byInterval` > -> { -> "certificateId": "1284392014819", -> "description": "friendly description", -> "parentCertificateId": "1284392014818", -> "source": "NAC", -> "fields": { -> "validity": { -> "start": "2022-09-01T12:00:00Z", -> "end": "2022-10-01T12:00:00Z" +> [ +> { +> "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" > }, -> "subject": { -> "commonName": "subjectRoot", -> "organizationalUnit": "CloudNAC", -> "organization": "Cisco Systems", -> "locality": "Bangalore", -> "state": "KA", -> "country": "IN" +> "metric": "temperature", +> "apparentPower": { +> "draw": { +> "minimum": 0, +> "maximum": 15.9, +> "average": 4.9 +> } > }, -> "subjectAlternativeName": "AAA Certificate Services Hidden Certificate", -> "issuer": { -> "commonName": "issuerRoot", -> "organizationalUnit": "CloudNAC", -> "organization": "Cisco Systems", -> "locality": "Bangalore", -> "state": "KA", -> "country": "IN" +> "battery": { +> "percentage": { +> "minimum": 95, +> "maximum": 97, +> "average": 96 +> } > }, -> "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" -> ] +> "button": { +> "pressType": { +> "counts": { +> "short": 2, +> "long": 4 +> } +> } > }, -> "hashes": [ -> { -> "algorithm": "SHA1", -> "hash": "hash text here" +> "co2": { +> "concentration": { +> "minimum": 221, +> "maximum": 504, +> "average": 440 > } -> ] +> }, +> "current": { +> "draw": { +> "minimum": 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, +> "maximum": 14.2, +> "average": 5 +> } +> }, +> "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 +> } +> } > } -> } -> -> * * * -> -> -> \- New endpoint -> -> #### Delete a certificate for an organization -> -> **DELETE** `/organizations/{organizationId}/certificates/{certificateId}` +> ] > > * * * * * * -PATH _`/organizations/{organizationId}/certificates/{certificateId}/contents`_ +\[ secureConnect \] +------------------- + +### privateApplicationGroups + +PATH _`/organizations/{organizationId}/secureConnect/privateApplicationGroups`_ > \- Path added > > \- New endpoint > -> #### Download the trusted certificate by certificate id. +> #### Provides a list of private application groups for an Organization +> +> **GET** `/organizations/{organizationId}/secureConnect/privateApplicationGroups` +> +> { +> "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 +> } +> } +> +> * * * +> +> +> \- New endpoint +> +> #### Creates a group of private applications to apply to policy. A maximum of 300 private application groups are allowed for an organization. > -> **GET** `/organizations/{organizationId}/certificates/{certificateId}/contents` +> **POST** `/organizations/{organizationId}/secureConnect/privateApplicationGroups` > > { -> "contents": "-----BEGIN CERTIFICATE-----MIIHvjCCBqagAwIBAgIQB4CbtQD3es3UQ988CCKGPjANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMSkwJwYDVQQDEyBEaWdpQ2VydCBUTFMgUlNBIFNIQTI1NiAyMDIwIENBMTAeFw0yMjA4MTAwMDAwMDBaFw0yMzA4MDkyMzU5NTlaMG4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMRMwEQYDVQQKEwpNZXJha2kgTExDMR0wGwYDVQQDExRyYWRpdXMuZGV2LmlrYXJlbS5pbzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANSxcK8g9J3nRwDqNurYbXDieo5vHw5wWO4m3uJSvWtQ+zDMZzjEhA6ix3VfftGLLE+0C99a9B2oOubZgO/sAIJmLD6Oz25bUinAtzuEmOQiqZ8OZjYZd//emPOty7POZSU5C3rGUX0ESzrStL20iJoGzyA0U9clI+14yZCyXY1+Th3VSQCvGs/DmOMPn+MdBoMXIgzVk7+wjMr53fN6H8Q26y52NlLTmAxum2L7ag4owTecURzC6-----END CERTIFICATE-----" +> "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" > } > > * * * * * * -### cloud - -PATH _`/organizations/{organizationId}/cloud/connectivity/requirements`_ +PATH _`/organizations/{organizationId}/secureConnect/privateApplicationGroups/{id}`_ > \- Path added > > \- New endpoint > -> #### List of source/destination traffic rules +> #### Return the details of a specific private application group > -> **GET** `/organizations/{organizationId}/cloud/connectivity/requirements` +> **GET** `/organizations/{organizationId}/secureConnect/privateApplicationGroups/{id}` > -> [ -> { -> "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" -> ] -> } -> ] -> } -> } -> ] +> { +> "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" +> } > > * * * - -* * * - -### extensions - -PATH _`/organizations/{organizationId}/extensions/thousandEyes/networks`_ - -> \- Path added +> > > \- New endpoint > -> #### 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. +> #### 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. > -> **GET** `/organizations/{organizationId}/extensions/thousandEyes/networks` +> **PUT** `/organizations/{organizationId}/secureConnect/privateApplicationGroups/{id}` > -> [ -> { -> "networkId": "N_24329156", -> "enabled": true, -> "agentId": "12345" -> } -> ] +> { +> "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" +> } > > * * * > > > \- New endpoint > -> #### 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. -> -> **POST** `/organizations/{organizationId}/extensions/thousandEyes/networks` +> #### Deletes private application group from an Organization. Detaches application from groups before deleting > -> { -> "networkId": "N_24329156", -> "enabled": true, -> "agentId": "12345" -> } +> **DELETE** `/organizations/{organizationId}/secureConnect/privateApplicationGroups/{id}` > > * * * * * * -PATH _`/organizations/{organizationId}/extensions/thousandEyes/networks/supported`_ +### privateApplications + +PATH _`/organizations/{organizationId}/secureConnect/privateApplications`_ > \- Path added > > \- New endpoint > -> #### List all the networks eligible for ThousandEyes agent activation under this organization. +> #### Provides a list of private applications for an Organization. > -> **GET** `/organizations/{organizationId}/extensions/thousandEyes/networks/supported` +> **GET** `/organizations/{organizationId}/secureConnect/privateApplications` > -> [ -> { -> "networkId": "N_24329156", -> "name": "Main Office", -> "tags": [ -> "tag1", -> "tag2" -> ], -> "device": { -> "model": "MX105", -> "firmware": { -> "currentVersion": { -> "shortName": "MX 18.104" +> { +> "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" > } -> }, -> "agent": { -> "isInstalled": false -> } +> ], +> "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 > } -> ] +> } +> +> * * * +> +> +> \- New endpoint +> +> #### Adds a new private application to the Organization. A maximum of 300 private applications are allowed for an organization. +> +> **POST** `/organizations/{organizationId}/secureConnect/privateApplications` +> +> { +> "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" +> } > > * * * * * * -PATH _`/organizations/{organizationId}/extensions/thousandEyes/networks/{networkId}`_ +PATH _`/organizations/{organizationId}/secureConnect/privateApplications/{id}`_ > \- Path added > > \- New endpoint > -> #### 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. +> #### Return the details of a specific private application > -> **GET** `/organizations/{organizationId}/extensions/thousandEyes/networks/{networkId}` +> **GET** `/organizations/{organizationId}/secureConnect/privateApplications/{id}` > > { -> "networkId": "N_24329156", -> "enabled": true, -> "agentId": "12345" +> "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" > } > > * * * @@ -4316,14 +4292,38 @@ PATH _`/organizations/{organizationId}/extensions/thousandEyes/networks/{network > > \- New endpoint > -> #### 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. +> #### 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. > -> **PUT** `/organizations/{organizationId}/extensions/thousandEyes/networks/{networkId}` +> **PUT** `/organizations/{organizationId}/secureConnect/privateApplications/{id}` > > { -> "networkId": "N_24329156", -> "enabled": true, -> "agentId": "12345" +> "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" > } > > * * * @@ -4331,165 +4331,236 @@ PATH _`/organizations/{organizationId}/extensions/thousandEyes/networks/{network > > \- New endpoint > -> #### 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. +> #### 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. > -> **DELETE** `/organizations/{organizationId}/extensions/thousandEyes/networks/{networkId}` +> **DELETE** `/organizations/{organizationId}/secureConnect/privateApplications/{id}` > > * * * * * * -PATH _`/organizations/{organizationId}/extensions/thousandEyes/tests`_ +### publicApplications + +PATH _`/organizations/{organizationId}/secureConnect/publicApplications`_ > \- Path added > > \- New endpoint > -> #### 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. +> #### Provides a list of public applications for an Organization. > -> **POST** `/organizations/{organizationId}/extensions/thousandEyes/tests` +> **GET** `/organizations/{organizationId}/secureConnect/publicApplications` > > { -> "jobStatus": "new", -> "pccBackgroundJob": "13289785" +> "items": [ +> { +> "id": "ABCDEFG", +> "name": "Snapcraft", +> "lastDetected": "2021-12-13T16:07:07.222Z", +> "risk": "medium", +> "category": "Application Development and Testing", +> "appType": "paas" +> } +> ], +> "meta": { +> "total": 1 +> } > } > > * * * * * * -### policies +### regions -PATH _`/organizations/{organizationId}/policies/assignments/byClient`_ +PATH _`/organizations/{organizationId}/secureConnect/regions`_ > \- Path added > > \- New endpoint > -> #### Get policies for all clients with policies +> #### List deployed cloud hubs and regions in this organization > -> **GET** `/organizations/{organizationId}/policies/assignments/byClient` +> **GET** `/organizations/{organizationId}/secureConnect/regions` > -> [ -> { -> "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 -> } -> ] -> } -> ] -> } -> ] +> { +> "data": [ +> { +> "id": "123", +> "type": "Region", +> "name": "US West Coast", +> "dcPair": [ +> "Los Angeles", +> "Palo Alto" +> ] +> } +> ], +> "meta": { +> "maxTotalCloudHubs": 5 > } -> ] +> } > > * * * * * * -### devices +### remoteAccessLog -PATH _`/organizations/{organizationId}/devices/details/bulkUpdate`_ +PATH _`/organizations/{organizationId}/secureConnect/remoteAccessLog`_ > \- Path added > > \- New endpoint > -> #### Updating device details (currently only used for Catalyst devices) +> #### List the latest 5000 events logged by remote access. > -> **POST** `/organizations/{organizationId}/devices/details/bulkUpdate` +> **GET** `/organizations/{organizationId}/secureConnect/remoteAccessLog` > > { -> "serials": [ -> "Q234-ABCD-0001", -> "Q234-ABCD-0002", -> "Q234-ABCD-0003" -> ] +> "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 +> } > } > > * * * * * * -### support +### remoteAccessLogsExports -PATH _`/organizations/{organizationId}/support/salesRepresentatives`_ +PATH _`/organizations/{organizationId}/secureConnect/remoteAccessLogsExports`_ > \- Path added > > \- New endpoint > -> #### Returns the organization's sales representatives +> #### Provides a list of remote access logs exports for an Organization > -> **GET** `/organizations/{organizationId}/support/salesRepresentatives` +> **GET** `/organizations/{organizationId}/secureConnect/remoteAccessLogsExports` > -> [ -> { -> "name": "Miles Meraki", -> "email": "miles@meraki.com", -> "phone": "+15555555555" +> { +> "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 > } -> ] +> } +> +> * * * +> +> +> \- New endpoint +> +> #### Creates a export for a provided timestamp interval. +> +> **POST** `/organizations/{organizationId}/secureConnect/remoteAccessLogsExports` +> +> { +> "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 +> } +> } > > * * * * * * -### webhooks - -PATH _`/organizations/{organizationId}/webhooks/httpServers`_ +PATH _`/organizations/{organizationId}/secureConnect/remoteAccessLogsExports/download`_ > \- Path added > > \- New endpoint > -> #### List the HTTP servers for this organization +> #### Redirects to the download link of the completed export. > -> **GET** `/organizations/{organizationId}/webhooks/httpServers` +> **GET** `/organizations/{organizationId}/secureConnect/remoteAccessLogsExports/download` > -> [ -> { -> "id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vbXlfY3VzdG9tX3dlYmhvb2s=", -> "name": "Example Webhook Server", -> "organizationId": "2930418", -> "url": "https://www.example.com/my_custom_webhook", -> "payloadTemplate": { -> "id": "wpt_00001", -> "name": "Meraki (included)" -> } -> } -> ] +> { +> "link": "download" +> } > > * * * -> + +* * * + +PATH _`/organizations/{organizationId}/secureConnect/remoteAccessLogsExports/{id}`_ + +> \- Path added > > \- New endpoint > -> #### Add an HTTP server to an organization +> #### Return the details of a specific remote access logs export > -> **POST** `/organizations/{organizationId}/webhooks/httpServers` +> **GET** `/organizations/{organizationId}/secureConnect/remoteAccessLogsExports/{id}` > > { -> "id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vbXlfY3VzdG9tX3dlYmhvb2s=", -> "name": "Example Webhook Server", -> "organizationId": "2930418", -> "url": "https://www.example.com/my_custom_webhook", -> "payloadTemplate": { -> "id": "wpt_00001", -> "name": "Meraki (included)" +> "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 > } > } > @@ -4497,24 +4568,34 @@ PATH _`/organizations/{organizationId}/webhooks/httpServers`_ * * * -PATH _`/organizations/{organizationId}/webhooks/httpServers/{id}`_ +### sites + +PATH _`/organizations/{organizationId}/secureConnect/sites`_ > \- Path added > > \- New endpoint > -> #### Return an HTTP server for an organization +> #### List sites in this organization > -> **GET** `/organizations/{organizationId}/webhooks/httpServers/{id}` +> **GET** `/organizations/{organizationId}/secureConnect/sites` > > { -> "id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vbXlfY3VzdG9tX3dlYmhvb2s=", -> "name": "Example Webhook Server", -> "organizationId": "2930418", -> "url": "https://www.example.com/my_custom_webhook", -> "payloadTemplate": { -> "id": "wpt_00001", -> "name": "Meraki (included)" +> "data": [ +> { +> "id": "123", +> "type": "MerakiSpoke", +> "name": "London Office", +> "region": "US East", +> "deviceType": "MX95-HW", +> "address": "123 Main St", +> "enrolled": true, +> "vpnType": "Hub", +> "defaultRoute": true +> } +> ], +> "meta": { +> "total": 1 > } > } > @@ -4523,18 +4604,22 @@ PATH _`/organizations/{organizationId}/webhooks/httpServers/{id}`_ > > \- New endpoint > -> #### Update an HTTP server for an organization +> #### 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. > -> **PUT** `/organizations/{organizationId}/webhooks/httpServers/{id}` +> **POST** `/organizations/{organizationId}/secureConnect/sites` > > { -> "id": "aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vbXlfY3VzdG9tX3dlYmhvb2s=", -> "name": "Example Webhook Server", -> "organizationId": "2930418", -> "url": "https://www.example.com/my_custom_webhook", -> "payloadTemplate": { -> "id": "wpt_00001", -> "name": "Meraki (included)" +> "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" > } > } > @@ -4543,148 +4628,110 @@ PATH _`/organizations/{organizationId}/webhooks/httpServers/{id}`_ > > \- New endpoint > -> #### Delete an HTTP server from an organization +> #### Detach given sites from Secure Connect > -> **DELETE** `/organizations/{organizationId}/webhooks/httpServers/{id}` +> **DELETE** `/organizations/{organizationId}/secureConnect/sites` +> +> { +> "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" +> } +> } > > * * * * * * -PATH _`/organizations/{organizationId}/webhooks/payloadTemplates`_ +\[ sm \] +-------- + +### apple + +PATH _`/organizations/{organizationId}/sm/apple/cloudEnrollment/syncJobs`_ > \- Path added > > \- New endpoint > -> #### List the webhook payload templates for an organization +> #### Enqueue a sync job for an ADE account > -> **GET** `/organizations/{organizationId}/webhooks/payloadTemplates` +> **POST** `/organizations/{organizationId}/sm/apple/cloudEnrollment/syncJobs` > -> [ -> { -> "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" -> ] -> } -> } -> } -> ] +> { +> "syncJobId": "1284392014819", +> "adeAccountId": "1284392014819", +> "status": "pending" +> } > > * * * -> + +* * * + +PATH _`/organizations/{organizationId}/sm/apple/cloudEnrollment/syncJobs/{syncJobId}`_ + +> \- Path added > > \- New endpoint > -> #### Create a webhook payload template for an organization +> #### Retrieve the status of an ADE sync job > -> **POST** `/organizations/{organizationId}/webhooks/payloadTemplates` +> **GET** `/organizations/{organizationId}/sm/apple/cloudEnrollment/syncJobs/{syncJobId}` > > { -> "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" -> ] -> } -> } +> "syncJobId": "1284392014819", +> "adeAccountId": "1284392014819", +> "status": "pending" > } > > * * * * * * -PATH _`/organizations/{organizationId}/webhooks/payloadTemplates/{payloadTemplateId}`_ +### bulkEnrollment + +PATH _`/organizations/{organizationId}/sm/bulkEnrollment/token`_ > \- Path added > > \- New endpoint > -> #### Get the webhook payload template for an organization +> #### Create a PccBulkEnrollmentToken > -> **GET** `/organizations/{organizationId}/webhooks/payloadTemplates/{payloadTemplateId}` +> **POST** `/organizations/{organizationId}/sm/bulkEnrollment/token` > > { -> "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" -> ] -> } -> } +> "id": "1284392014819", +> "networkId": "N_24329156", +> "expiresAt": "2023-10-15T00:00:00Z", +> "rawToken": "MMbCbpHZtG3TKUCr9B9uc5" > } > > * * * -> + +* * * + +PATH _`/organizations/{organizationId}/sm/bulkEnrollment/token/{tokenId}`_ + +> \- Path added > > \- New endpoint > -> #### Update a webhook payload template for an organization +> #### Return a BulkEnrollmentToken > -> **PUT** `/organizations/{organizationId}/webhooks/payloadTemplates/{payloadTemplateId}` +> **GET** `/organizations/{organizationId}/sm/bulkEnrollment/token/{tokenId}` > > { -> "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" -> ] -> } -> } +> "id": "1284392014819", +> "networkId": "N_24329156", +> "expiresAt": "2023-10-15T00:00:00Z" > } > > * * * @@ -4692,49 +4739,46 @@ PATH _`/organizations/{organizationId}/webhooks/payloadTemplates/{payloadTemplat > > \- New endpoint > -> #### 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') +> #### Update a PccBulkEnrollmentToken > -> **DELETE** `/organizations/{organizationId}/webhooks/payloadTemplates/{payloadTemplateId}` +> **PUT** `/organizations/{organizationId}/sm/bulkEnrollment/token/{tokenId}` +> +> { +> "id": "1284392014819", +> "networkId": "N_24329156", +> "expiresAt": "2023-10-15T00:00:00Z" +> } > > * * * - -* * * - -PATH _`/organizations/{organizationId}/webhooks/webhookTests`_ - -> \- Path added +> > > \- New endpoint > -> #### Send a test webhook for an organization -> -> **POST** `/organizations/{organizationId}/webhooks/webhookTests` +> #### Delete a PccBulkEnrollmentToken > -> { -> "id": "1234", -> "url": "https://www.example.com/path", -> "status": "enqueued" -> } +> **DELETE** `/organizations/{organizationId}/sm/bulkEnrollment/token/{tokenId}` > > * * * * * * -PATH _`/organizations/{organizationId}/webhooks/webhookTests/{webhookTestId}`_ +PATH _`/organizations/{organizationId}/sm/bulkEnrollment/tokens`_ > \- Path added > > \- New endpoint > -> #### Return the status of a webhook test for an organization +> #### List all BulkEnrollmentTokens for an organization. > -> **GET** `/organizations/{organizationId}/webhooks/webhookTests/{webhookTestId}` +> **GET** `/organizations/{organizationId}/sm/bulkEnrollment/tokens` > -> { -> "id": "1234", -> "url": "https://www.example.com/path", -> "status": "enqueued" -> } +> [ +> { +> "id": "1284392014819", +> "networkId": "N_24329156", +> "expiresAt": "2023-10-15T00:00:00Z" +> } +> ] > > * * * diff --git a/changelog/v1.48.0.md b/changelog/v1.48.0.md new file mode 100644 index 0000000..13cc0d3 --- /dev/null +++ b/changelog/v1.48.0.md @@ -0,0 +1,359 @@ + - [What's Updated](#whats-updated) + * [\[ licensing \]](#-licensing-) + + [subscription](#subscription) + - [List available subscriptions](#list-available-subscriptions) + - [Claim a subscription into an organization.](#claim-a-subscription-into-an-organization) + - [Find a subscription by claim key](#find-a-subscription-by-claim-key) + * [\[ devices \]](#-devices-) + + [cellular](#cellular) + - [Updates the SIM and APN configurations for a cellular device.](#updates-the-sim-and-apn-configurations-for-a-cellular-device) + * [\[ switch \]](#-switch-) + + [ports](#ports) + - [List the switch ports for a switch](#list-the-switch-ports-for-a-switch) + - [Return a switch port](#return-a-switch-port) + - [Update a switch port](#update-a-switch-port) + + [routing](#routing) + - [List layer 3 interfaces for a switch](#list-layer-3-interfaces-for-a-switch) + - [Return a layer 3 interface for a switch](#return-a-layer-3-interface-for-a-switch) + - [Create a layer 3 interface for a switch](#create-a-layer-3-interface-for-a-switch) + - [Update a layer 3 interface for a switch](#update-a-layer-3-interface-for-a-switch) + + [stacks](#stacks) + - [List layer 3 interfaces for a switch stack](#list-layer-3-interfaces-for-a-switch-stack) + - [Return a layer 3 interface from a switch stack](#return-a-layer-3-interface-from-a-switch-stack) + - [Create a layer 3 interface for a switch stack](#create-a-layer-3-interface-for-a-switch-stack) + - [Update a layer 3 interface for a switch stack](#update-a-layer-3-interface-for-a-switch-stack) + + [configTemplates](#configtemplates) + - [Return all the ports of a switch template](#return-all-the-ports-of-a-switch-template) + - [Return a switch template port](#return-a-switch-template-port) + - [Update a switch template port](#update-a-switch-template-port) + * [\[ networks \]](#-networks-) + + [clients](#clients) + - [List the clients that have used this network in the timespan](#list-the-clients-that-have-used-this-network-in-the-timespan) + + [events](#events) + - [List the events for the network](#list-the-events-for-the-network) + + [firmwareUpgrades](#firmwareupgrades) + - [Get firmware upgrade information for a network](#get-firmware-upgrade-information-for-a-network) + - [Update firmware upgrade information for a network](#update-firmware-upgrade-information-for-a-network) +- [What's New](#whats-new) + * [\[ organizations \]](#-organizations-) + + [devices](#devices) + - [Updating device details (currently only used for Catalyst devices)](#updating-device-details-currently-only-used-for-catalyst-devices) + +Version **1.47.0** _to_ **1.48.0** + +* * * + +**Summary of Changes** + +**1 - New** + +**53 - Updated** + +**729 - Total Endpoints** + +**478 - Total Paths** + +* * * + +* * * + +What's Updated +============== + +\[ licensing \] +--------------- + +### subscription + +#### List available subscriptions + +GET _`/administered/licensing/subscription/subscriptions`_ + +> \- Optional property `organizations` Added + +> \- Optional property `enterpriseAgreement` Added + +> \- Response property `organizations` value added + +> \- Response property `enterpriseAgreement` value added + +* * * + +#### Claim a subscription into an organization. + +POST _`/administered/licensing/subscription/subscriptions/claim`_ + +> \- Optional property `organizations` Added + +> \- Optional property `enterpriseAgreement` Added + +* * * + +#### Find a subscription by claim key + +POST _`/administered/licensing/subscription/subscriptions/claimKey/validate`_ + +> \- Optional property `organizations` Added + +> \- Optional property `enterpriseAgreement` Added + +* * * + +\[ devices \] +------------- + +### cellular + +#### Updates the SIM and APN configurations for a cellular device. + +PUT _`/devices/{serial}/cellular/sims`_ + +> \- Optional property `simOrder` Added + +> \- Optional property `simOrdering` Added + +* * * + +\[ switch \] +------------ + +### ports + +#### List the switch ports for a switch + +GET _`/devices/{serial}/switch/ports`_ + +> \- Optional property `dot3az` Added + +> \- Response property `dot3az` value added + +* * * + +#### Return a switch port + +GET _`/devices/{serial}/switch/ports/{portId}`_ + +> \- Optional property `dot3az` Added + +> \- Response property `dot3az` value added + +* * * + +#### Update a switch port + +PUT _`/devices/{serial}/switch/ports/{portId}`_ + +> \- Optional property `dot3az` Added + +> \- Optional property `dot3az` Added + +* * * + +### routing + +#### List layer 3 interfaces for a switch + +GET _`/devices/{serial}/switch/routing/interfaces`_ + +> \- Optional property `uplinkV4` Added + +> \- Optional property `uplinkV6` Added + +> \- Response property `uplinkV4` value added + +> \- Response property `uplinkV6` value added + +* * * + +#### Return a layer 3 interface for a switch + +GET _`/devices/{serial}/switch/routing/interfaces/{interfaceId}`_ + +> \- Optional property `uplinkV4` Added + +> \- Optional property `uplinkV6` Added + +> \- Response property `uplinkV4` value added + +> \- Response property `uplinkV6` value added + +* * * + +#### Create a layer 3 interface for a switch + +POST _`/devices/{serial}/switch/routing/interfaces`_ + +> \- Optional property `uplinkV4` Added + +> \- Optional property `uplinkV6` Added + +* * * + +#### Update a layer 3 interface for a switch + +PUT _`/devices/{serial}/switch/routing/interfaces/{interfaceId}`_ + +> \- Optional property `uplinkV4` Added + +> \- Optional property `uplinkV6` Added + +* * * + +### stacks + +#### List layer 3 interfaces for a switch stack + +GET _`/networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces`_ + +> \- Optional property `uplinkV4` Added + +> \- Optional property `uplinkV6` Added + +> \- Response property `uplinkV4` value added + +> \- Response property `uplinkV6` value added + +* * * + +#### Return a layer 3 interface from a switch stack + +GET _`/networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId}`_ + +> \- Optional property `uplinkV4` Added + +> \- Optional property `uplinkV6` Added + +> \- Response property `uplinkV4` value added + +> \- Response property `uplinkV6` value added + +* * * + +#### Create a layer 3 interface for a switch stack + +POST _`/networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces`_ + +> \- Optional property `uplinkV4` Added + +> \- Optional property `uplinkV6` Added + +* * * + +#### Update a layer 3 interface for a switch stack + +PUT _`/networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId}`_ + +> \- Optional property `uplinkV4` Added + +> \- Optional property `uplinkV6` Added + +* * * + +### configTemplates + +#### Return all the ports of a switch template + +GET _`/organizations/{organizationId}/configTemplates/{configTemplateId}/switch/profiles/{profileId}/ports`_ + +> \- Optional property `dot3az` Added + +> \- Response property `dot3az` value added + +* * * + +#### Return a switch template port + +GET _`/organizations/{organizationId}/configTemplates/{configTemplateId}/switch/profiles/{profileId}/ports/{portId}`_ + +> \- Optional property `dot3az` Added + +> \- Response property `dot3az` value added + +* * * + +#### Update a switch template port + +PUT _`/organizations/{organizationId}/configTemplates/{configTemplateId}/switch/profiles/{profileId}/ports/{portId}`_ + +> \- Optional property `dot3az` Added + +> \- Optional property `dot3az` Added + +* * * + +\[ networks \] +-------------- + +### clients + +#### List the clients that have used this network in the timespan + +GET _`/networks/{networkId}/clients`_ + +> \- Response property `items` value added + +* * * + +### events + +#### List the events for the network + +GET _`/networks/{networkId}/events`_ + +> \- Optional param `eventDetails` added + +> \- Optional param `eventSeverity` added + +* * * + +### firmwareUpgrades + +#### Get firmware upgrade information for a network + +GET _`/networks/{networkId}/firmwareUpgrades`_ + +> \- Optional property `wirelessController` Added + +> \- Response property `wirelessController` value added + +* * * + +#### Update firmware upgrade information for a network + +PUT _`/networks/{networkId}/firmwareUpgrades`_ + +> \- Optional property `wirelessController` Added + +> \- Optional property `wirelessController` Added + +* * * + +What's New +========== + +\[ organizations \] +------------------- + +### devices + +PATH _`/organizations/{organizationId}/devices/details/bulkUpdate`_ + +> \- Path added +> +> \- New endpoint +> +> #### Updating device details (currently only used for Catalyst devices) +> +> **POST** `/organizations/{organizationId}/devices/details/bulkUpdate` +> +> { +> "serials": [ +> "Q234-ABCD-0001", +> "Q234-ABCD-0002", +> "Q234-ABCD-0003" +> ] +> } +> +> * * * + +* * * \ No newline at end of file diff --git a/documents/2024.md b/documents/2024.md index e124d6d..362d0e8 100644 --- a/documents/2024.md +++ b/documents/2024.md @@ -1,3 +1,74 @@ +# 07-2024 + +## Dashboard API Release v1.48 +[**Changelog**](https://developer.cisco.com/meraki/whats-new/v1-48-0/) + +## Summary of Changes +- **New Endpoints**: 1 +- **Updated Endpoints**: 53 +- **Total Endpoints**: 729 +- **Total Paths**: 478 + +## What's New + +**Organizations - Devices** +- **Bulk Update Device Details**: [Updating device details (currently only used for Catalyst devices)](https://developer.cisco.com/meraki/api-v1/bulk-update-organization-devices-details/) + - This new endpoint allows bulk updating of device details, which is currently applicable to Catalyst devices. It helps streamline the management of multiple devices within an organization. + - **POST /organizations/{organizationId}/devices/details/bulkUpdate** + +## What's Updated + +**Licensing** +- **Subscription Management**: + - **List Available Subscriptions**: [GET /administered/licensing/subscription/subscriptions](https://developer.cisco.com/meraki/api-v1/get-administered-licensing-subscription-subscriptions/) + - **Claim a Subscription**: [POST /administered/licensing/subscription/subscriptions/claim](https://developer.cisco.com/meraki/api-v1/claim-administered-licensing-subscription-subscriptions/) + - **Find Subscription by Claim Key**: [POST /administered/licensing/subscription/subscriptions/claimKey/validate](https://developer.cisco.com/meraki/api-v1/validate-administered-licensing-subscription-subscriptions-claim-key/) + - Enhanced these endpoints with optional properties `organizations` and `enterpriseAgreement`. + +**Devices** +- **Cellular Configuration**: + - **Update SIM and APN Configurations**: [PUT /devices/{serial}/cellular/sims](https://developer.cisco.com/meraki/api-v1/update-device-cellular-sims/) + - Added optional properties `simOrder` and `simOrdering`. + +**Switch** +- **Port Management**: + - **List Switch Ports**: [GET /devices/{serial}/switch/ports](https://developer.cisco.com/meraki/api-v1/get-device-switch-ports/) + - **Return Switch Port**: [GET /devices/{serial}/switch/ports/{portId}](https://developer.cisco.com/meraki/api-v1/get-device-switch-port/) + - **Update Switch Port**: [PUT /devices/{serial}/switch/ports/{portId}](https://developer.cisco.com/meraki/api-v1/update-device-switch-port/) + - Added optional property `dot3az` and corresponding response values to these endpoints. + +- **Routing Management**: + - **List Layer 3 Interfaces for a Switch**: [GET /devices/{serial}/switch/routing/interfaces](https://developer.cisco.com/meraki/api-v1/get-device-switch-routing-interfaces/) + - **Return Layer 3 Interface for a Switch**: [GET /devices/{serial}/switch/routing/interfaces/{interfaceId}](https://developer.cisco.com/meraki/api-v1/get-device-switch-routing-interface/) + - **Create Layer 3 Interface for a Switch**: [POST /devices/{serial}/switch/routing/interfaces](https://developer.cisco.com/meraki/api-v1/create-device-switch-routing-interface/) + - **Update Layer 3 Interface for a Switch**: [PUT /devices/{serial}/switch/routing/interfaces/{interfaceId}](https://developer.cisco.com/meraki/api-v1/update-device-switch-routing-interface/) + - **List Layer 3 Interfaces for a Switch Stack**: [GET /networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces](https://developer.cisco.com/meraki/api-v1/get-network-switch-stack-routing-interfaces/) + - **Return Layer 3 Interface from a Switch Stack**: [GET /networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId}](https://developer.cisco.com/meraki/api-v1/get-network-switch-stack-routing-interface/) + - **Create Layer 3 Interface for a Switch Stack**: [POST /networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces](https://developer.cisco.com/meraki/api-v1/create-network-switch-stack-routing-interface/) + - **Update Layer 3 Interface for a Switch Stack**: [PUT /networks/{networkId}/switch/stacks/{switchStackId}/routing/interfaces/{interfaceId}](https://developer.cisco.com/meraki/api-v1/update-network-switch-stack-routing-interface/) + - Added optional properties `uplinkV4` and `uplinkV6` and corresponding response values to these endpoints. + +- **Switch Template Ports Management**: + - **Return All Ports of a Switch Template**: [GET /organizations/{organizationId}/configTemplates/{configTemplateId}/switch/profiles/{profileId}/ports](https://developer.cisco.com/meraki/api-v1/get-organization-config-template-switch-profile-ports/) + - **Return a Switch Template Port**: [GET /organizations/{organizationId}/configTemplates/{configTemplateId}/switch/profiles/{profileId}/ports/{portId}](https://developer.cisco.com/meraki/api-v1/get-organization-config-template-switch-profile-port/) + - **Update a Switch Template Port**: [PUT /organizations/{organizationId}/configTemplates/{configTemplateId}/switch/profiles/{profileId}/ports/{portId}](https://developer.cisco.com/meraki/api-v1/update-organization-config-template-switch-profile-port/) + - Added optional property `dot3az` and corresponding response values to these endpoints. + +**Networks** +- **Clients Management**: + - **List Network Clients**: [GET /networks/{networkId}/clients](https://developer.cisco.com/meraki/api-v1/get-network-clients/) + - Added response property `items`. + +- **Events Management**: + - **List Network Events**: [GET /networks/{networkId}/events](https://developer.cisco.com/meraki/api-v1/get-network-events/) + - Added optional parameters `eventDetails` and `eventSeverity`. + +- **Firmware Upgrades**: + - **Get Firmware Upgrade Information**: [GET /networks/{networkId}/firmwareUpgrades](https://developer.cisco.com/meraki/api-v1/get-network-firmware-upgrades/) + - **Update Firmware Upgrade Information**: [PUT /networks/{networkId}/firmwareUpgrades](https://developer.cisco.com/meraki/api-v1/update-network-firmware-upgrades/) + - Added optional property `wirelessController` and corresponding response values to these endpoints. + + # 06-2024