diff --git a/openapi/spec2.json b/openapi/spec2.json index f1957a8..48810e8 100644 --- a/openapi/spec2.json +++ b/openapi/spec2.json @@ -1,9 +1,9 @@ { "swagger": "2.0", "info": { - "version": "1.48.0", + "version": "1.49.0", "title": "Meraki Dashboard API", - "description": "The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification.\n\n> Date: 03 July, 2024\n>\n> [Recent Updates](https://meraki.io/whats-new/)\n\n---\n\n[API Documentation](https://meraki.io/api)\n\n[Community Support](https://meraki.io/community)\n\n[Meraki Homepage](https://www.meraki.com)\n", + "description": "The Cisco Meraki Dashboard API is a modern REST API based on the OpenAPI specification.\n\n> Date: 07 August, 2024\n>\n> [Recent Updates](https://meraki.io/whats-new/)\n\n---\n\n[API Documentation](https://meraki.io/api)\n\n[Community Support](https://meraki.io/community)\n\n[Meraki Homepage](https://www.meraki.com)\n", "contact": { "name": "Meraki Developer Community", "url": "https://meraki.io/community" @@ -148,6 +148,113 @@ ] } }, + "/administered/identities/me/api/keys": { + "get": { + "description": "List the non-sensitive metadata associated with the API keys that belong to the user", + "operationId": "getAdministeredIdentitiesMeApiKeys", + "responses": { + "200": { + "description": "Successful operation", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "suffix": { + "type": "string", + "description": "Last 4 characters of the API key" + }, + "createdAt": { + "type": "string", + "description": "Date that the API key was created" + } + } + } + }, + "examples": { + "application/json": [ + { + "suffix": "da4f", + "createdAt": "2018-02-11T00:00:00.090210Z" + } + ] + } + } + }, + "summary": "List the non-sensitive metadata associated with the API keys that belong to the user", + "tags": [ + "administered", + "configure", + "identities", + "me", + "api", + "keys" + ] + } + }, + "/administered/identities/me/api/keys/generate": { + "post": { + "description": "Generates an API key for an identity. For users who have access to more than one organization, the change will take up to five minutes to propagate. If one of the organizations is currently under maintenance, the change may not propagate fully until after the maintenance has been completed.", + "operationId": "generateAdministeredIdentitiesMeApiKeys", + "responses": { + "202": { + "description": "Successful operation", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "API key in plaintext. This value will not be accessible outside of key generation" + } + } + }, + "examples": { + "application/json": { + "key": "1284392014819" + } + } + } + }, + "summary": "Generates an API key for an identity", + "tags": [ + "administered", + "configure", + "identities", + "me", + "api", + "keys" + ] + } + }, + "/administered/identities/me/api/keys/{suffix}/revoke": { + "post": { + "description": "Revokes an identity's API key, using the last four characters of the key. For users who have access to more than one organization, the change will take up to five minutes to propagate. If one of the organizations is currently under maintenance, the change may not propagate fully until after the maintenance has been completed.", + "operationId": "revokeAdministeredIdentitiesMeApiKeys", + "parameters": [ + { + "name": "suffix", + "in": "path", + "description": "Suffix", + "type": "string", + "required": true + } + ], + "responses": { + "202": { + "description": "Successful operation" + } + }, + "summary": "Revokes an identity's API key, using the last four characters of the key", + "tags": [ + "administered", + "configure", + "identities", + "me", + "api", + "keys" + ] + } + }, "/administered/licensing/subscription/entitlements": { "get": { "description": "Retrieve the list of purchasable entitlements", @@ -4905,10 +5012,7 @@ "allowedIpTypes" ] }, - "description": "APN configurations. If empty, the default APN will be used.", - "default": [ - - ] + "description": "APN configurations. If empty, the default APN will be used." }, "simOrder": { "type": "integer", @@ -6071,7 +6175,7 @@ "items": { "type": "string" }, - "description": "A list of ports for which to perform the cable test." + "description": "A list of ports for which to perform the cable test. For Catalyst switches, IOS interface names are also supported, such as \"GigabitEthernet1/0/8\", \"Gi1/0/8\", or even \"1/0/8\"." }, "callback": { "type": "object", @@ -9031,6 +9135,20 @@ "type": "string", "description": "The ID of the port schedule. A value of null will clear the port schedule." }, + "schedule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the port schedule." + }, + "name": { + "type": "string", + "description": "The name of the port schedule." + } + }, + "description": "The port schedule data." + }, "udld": { "type": "string", "enum": [ @@ -9079,6 +9197,20 @@ "type": "string", "description": "The adaptive policy group ID that will be used to tag traffic through this switch port. This ID must pre-exist during the configuration, else needs to be created using adaptivePolicy/groups API. Cannot be applied to a port on a switch bound to profile." }, + "adaptivePolicyGroup": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the adaptive policy group." + }, + "name": { + "type": "string", + "description": "The name of the adaptive policy group." + } + }, + "description": "The adaptive policy group data of the port." + }, "peerSgtCapable": { "type": "boolean", "description": "If true, Peer SGT is enabled for traffic through this switch port. Applicable to trunk port only, not access port. Cannot be applied to a port on a switch bound to profile." @@ -9171,6 +9303,10 @@ "1 Gigabit full duplex (auto)" ], "portScheduleId": "1234", + "schedule": { + "id": "1234", + "name": "Port Schedule" + }, "udld": "Alert only", "accessPolicyType": "Sticky MAC allow list", "accessPolicyNumber": 2, @@ -9185,6 +9321,10 @@ "stickyMacAllowListLimit": 5, "stormControlEnabled": true, "adaptivePolicyGroupId": "123", + "adaptivePolicyGroup": { + "id": "123", + "name": "Adaptive Policy Group" + }, "peerSgtCapable": false, "flexibleStackingEnabled": true, "daiTrusted": false, @@ -9907,6 +10047,20 @@ "type": "string", "description": "The ID of the port schedule. A value of null will clear the port schedule." }, + "schedule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the port schedule." + }, + "name": { + "type": "string", + "description": "The name of the port schedule." + } + }, + "description": "The port schedule data." + }, "udld": { "type": "string", "enum": [ @@ -9955,6 +10109,20 @@ "type": "string", "description": "The adaptive policy group ID that will be used to tag traffic through this switch port. This ID must pre-exist during the configuration, else needs to be created using adaptivePolicy/groups API. Cannot be applied to a port on a switch bound to profile." }, + "adaptivePolicyGroup": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the adaptive policy group." + }, + "name": { + "type": "string", + "description": "The name of the adaptive policy group." + } + }, + "description": "The adaptive policy group data of the port." + }, "peerSgtCapable": { "type": "boolean", "description": "If true, Peer SGT is enabled for traffic through this switch port. Applicable to trunk port only, not access port. Cannot be applied to a port on a switch bound to profile." @@ -10045,6 +10213,10 @@ "1 Gigabit full duplex (auto)" ], "portScheduleId": "1234", + "schedule": { + "id": "1234", + "name": "Port Schedule" + }, "udld": "Alert only", "accessPolicyType": "Sticky MAC allow list", "accessPolicyNumber": 2, @@ -10059,6 +10231,10 @@ "stickyMacAllowListLimit": 5, "stormControlEnabled": true, "adaptivePolicyGroupId": "123", + "adaptivePolicyGroup": { + "id": "123", + "name": "Adaptive Policy Group" + }, "peerSgtCapable": false, "flexibleStackingEnabled": true, "daiTrusted": false, @@ -10395,6 +10571,20 @@ "type": "string", "description": "The ID of the port schedule. A value of null will clear the port schedule." }, + "schedule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the port schedule." + }, + "name": { + "type": "string", + "description": "The name of the port schedule." + } + }, + "description": "The port schedule data." + }, "udld": { "type": "string", "enum": [ @@ -10443,6 +10633,20 @@ "type": "string", "description": "The adaptive policy group ID that will be used to tag traffic through this switch port. This ID must pre-exist during the configuration, else needs to be created using adaptivePolicy/groups API. Cannot be applied to a port on a switch bound to profile." }, + "adaptivePolicyGroup": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the adaptive policy group." + }, + "name": { + "type": "string", + "description": "The name of the adaptive policy group." + } + }, + "description": "The adaptive policy group data of the port." + }, "peerSgtCapable": { "type": "boolean", "description": "If true, Peer SGT is enabled for traffic through this switch port. Applicable to trunk port only, not access port. Cannot be applied to a port on a switch bound to profile." @@ -10533,6 +10737,10 @@ "1 Gigabit full duplex (auto)" ], "portScheduleId": "1234", + "schedule": { + "id": "1234", + "name": "Port Schedule" + }, "udld": "Alert only", "accessPolicyType": "Sticky MAC allow list", "accessPolicyNumber": 2, @@ -10547,6 +10755,10 @@ "stickyMacAllowListLimit": 5, "stormControlEnabled": true, "adaptivePolicyGroupId": "123", + "adaptivePolicyGroup": { + "id": "123", + "name": "Adaptive Policy Group" + }, "peerSgtCapable": false, "flexibleStackingEnabled": true, "daiTrusted": false, @@ -12009,7 +12221,11 @@ }, "nextHopIp": { "type": "string", - "description": " The IP address of the router to which traffic for this destination network should be sent" + "description": "The IP address of the router to which traffic for this destination network should be sent" + }, + "managementNextHop": { + "type": "string", + "description": "Optional fallback IP address for management traffic" }, "advertiseViaOspfEnabled": { "type": "boolean", @@ -12033,6 +12249,7 @@ "name": "My route", "subnet": "192.168.1.0/24", "nextHopIp": "1.2.3.4", + "managementNextHop": "1.2.3.5", "advertiseViaOspfEnabled": false, "preferOverOspfRoutesEnabled": false } @@ -12121,7 +12338,11 @@ }, "nextHopIp": { "type": "string", - "description": " The IP address of the router to which traffic for this destination network should be sent" + "description": "The IP address of the router to which traffic for this destination network should be sent" + }, + "managementNextHop": { + "type": "string", + "description": "Optional fallback IP address for management traffic" }, "advertiseViaOspfEnabled": { "type": "boolean", @@ -12143,6 +12364,7 @@ "name": "My route", "subnet": "192.168.1.0/24", "nextHopIp": "1.2.3.4", + "managementNextHop": "1.2.3.5", "advertiseViaOspfEnabled": false, "preferOverOspfRoutesEnabled": false } @@ -12198,7 +12420,11 @@ }, "nextHopIp": { "type": "string", - "description": " The IP address of the router to which traffic for this destination network should be sent" + "description": "The IP address of the router to which traffic for this destination network should be sent" + }, + "managementNextHop": { + "type": "string", + "description": "Optional fallback IP address for management traffic" }, "advertiseViaOspfEnabled": { "type": "boolean", @@ -12220,6 +12446,7 @@ "name": "My route", "subnet": "192.168.1.0/24", "nextHopIp": "1.2.3.4", + "managementNextHop": "1.2.3.5", "advertiseViaOspfEnabled": false, "preferOverOspfRoutesEnabled": false } @@ -12270,6 +12497,10 @@ "type": "string", "description": "IP address of the next hop device to which the device sends its traffic for the subnet" }, + "managementNextHop": { + "type": "string", + "description": "Optional fallback IP address for management traffic" + }, "advertiseViaOspfEnabled": { "type": "boolean", "description": "Option to advertise static route via OSPF" @@ -12283,6 +12514,7 @@ "name": "My route", "subnet": "192.168.1.0/24", "nextHopIp": "1.2.3.4", + "managementNextHop": "1.2.3.5", "advertiseViaOspfEnabled": false, "preferOverOspfRoutesEnabled": false } @@ -12309,7 +12541,11 @@ }, "nextHopIp": { "type": "string", - "description": " The IP address of the router to which traffic for this destination network should be sent" + "description": "The IP address of the router to which traffic for this destination network should be sent" + }, + "managementNextHop": { + "type": "string", + "description": "Optional fallback IP address for management traffic" }, "advertiseViaOspfEnabled": { "type": "boolean", @@ -12331,6 +12567,7 @@ "name": "My route", "subnet": "192.168.1.0/24", "nextHopIp": "1.2.3.4", + "managementNextHop": "1.2.3.5", "advertiseViaOspfEnabled": false, "preferOverOspfRoutesEnabled": false } @@ -55224,8 +55461,7 @@ "summary": "List the owners in an SM network with various specified fields and filters", "tags": [ "sm", - "configure", - "users" + "configure" ] } }, @@ -55312,7 +55548,6 @@ "tags": [ "sm", "configure", - "users", "deviceProfiles" ] } @@ -55475,7 +55710,6 @@ "tags": [ "sm", "configure", - "users", "softwares" ] } @@ -65028,7 +65262,11 @@ }, "nextHopIp": { "type": "string", - "description": " The IP address of the router to which traffic for this destination network should be sent" + "description": "The IP address of the router to which traffic for this destination network should be sent" + }, + "managementNextHop": { + "type": "string", + "description": "Optional fallback IP address for management traffic" }, "advertiseViaOspfEnabled": { "type": "boolean", @@ -65052,6 +65290,7 @@ "name": "My route", "subnet": "192.168.1.0/24", "nextHopIp": "1.2.3.4", + "managementNextHop": "1.2.3.5", "advertiseViaOspfEnabled": false, "preferOverOspfRoutesEnabled": false } @@ -65148,7 +65387,11 @@ }, "nextHopIp": { "type": "string", - "description": " The IP address of the router to which traffic for this destination network should be sent" + "description": "The IP address of the router to which traffic for this destination network should be sent" + }, + "managementNextHop": { + "type": "string", + "description": "Optional fallback IP address for management traffic" }, "advertiseViaOspfEnabled": { "type": "boolean", @@ -65170,6 +65413,7 @@ "name": "My route", "subnet": "192.168.1.0/24", "nextHopIp": "1.2.3.4", + "managementNextHop": "1.2.3.5", "advertiseViaOspfEnabled": false, "preferOverOspfRoutesEnabled": false } @@ -65233,7 +65477,11 @@ }, "nextHopIp": { "type": "string", - "description": " The IP address of the router to which traffic for this destination network should be sent" + "description": "The IP address of the router to which traffic for this destination network should be sent" + }, + "managementNextHop": { + "type": "string", + "description": "Optional fallback IP address for management traffic" }, "advertiseViaOspfEnabled": { "type": "boolean", @@ -65255,6 +65503,7 @@ "name": "My route", "subnet": "192.168.1.0/24", "nextHopIp": "1.2.3.4", + "managementNextHop": "1.2.3.5", "advertiseViaOspfEnabled": false, "preferOverOspfRoutesEnabled": false } @@ -65352,7 +65601,11 @@ }, "nextHopIp": { "type": "string", - "description": " The IP address of the router to which traffic for this destination network should be sent" + "description": "The IP address of the router to which traffic for this destination network should be sent" + }, + "managementNextHop": { + "type": "string", + "description": "Optional fallback IP address for management traffic" }, "advertiseViaOspfEnabled": { "type": "boolean", @@ -65374,6 +65627,7 @@ "name": "My route", "subnet": "192.168.1.0/24", "nextHopIp": "1.2.3.4", + "managementNextHop": "1.2.3.5", "advertiseViaOspfEnabled": false, "preferOverOspfRoutesEnabled": false } @@ -70630,6 +70884,16 @@ "in": "query", "description": "A token used by the server to indicate the end of the page. Often this is a timestamp or an ID but it is not limited to those. This parameter should not be defined by client applications. The link for the first, last, prev, or next page in the HTTP Link header should define it." }, + { + "type": "string", + "enum": [ + "ascending", + "descending" + ], + "name": "sortOrder", + "in": "query", + "description": "Sorted order of entries. Order options are 'ascending' and 'descending'. Default is 'ascending'." + }, { "type": "string", "name": "t0", @@ -70812,6 +71076,10 @@ "deviceSerial": { "type": "string", "description": "Serial number of the device the event occurred for" + }, + "captureId": { + "type": "string", + "description": "Id of the packet capture triggered for the event, if any" } } } @@ -70834,7 +71102,8 @@ "durationMs": 100, "channel": 44, "rssi": 80, - "deviceSerial": "Q234-ABCD-5678" + "deviceSerial": "Q234-ABCD-5678", + "captureId": "123456" } ] } @@ -74160,6 +74429,14 @@ } }, "description": "Per-SSID radio settings by number." + }, + "isIndoorDefault": { + "type": "boolean", + "description": "Set this profile as the default indoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default" + }, + "isOutdoorDefault": { + "type": "boolean", + "description": "Set this profile as the default outdoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default" } } }, @@ -74479,7 +74756,9 @@ }, "bandSteeringEnabled": true } - } + }, + "isIndoorDefault": false, + "isOutdoorDefault": false } } } @@ -76516,6 +76795,14 @@ } }, "description": "Per-SSID radio settings by number." + }, + "isIndoorDefault": { + "type": "boolean", + "description": "Set this profile as the default indoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default" + }, + "isOutdoorDefault": { + "type": "boolean", + "description": "Set this profile as the default outdoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default" } } }, @@ -76835,7 +77122,9 @@ }, "bandSteeringEnabled": true } - } + }, + "isIndoorDefault": false, + "isOutdoorDefault": false } } } @@ -76850,7 +77139,7 @@ }, "/networks/{networkId}/wireless/rfProfiles/{rfProfileId}": { "put": { - "description": "Updates specified RF profile for this network", + "description": "Updates specified RF profile for this network. Note: built-in RF profiles can only be assigned as a default, and its attributes are immutable", "operationId": "updateNetworkWirelessRfProfile", "parameters": [ { @@ -76877,6 +77166,14 @@ "type": "string", "description": "The name of the new profile. Must be unique." }, + "isIndoorDefault": { + "type": "boolean", + "description": "Set this profile as the default indoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default" + }, + "isOutdoorDefault": { + "type": "boolean", + "description": "Set this profile as the default outdoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default" + }, "clientBalancingEnabled": { "type": "boolean", "description": "Steers client to best available access point. Can be either true or false." @@ -77763,6 +78060,8 @@ }, "example": { "name": "1234", + "isIndoorDefault": true, + "isOutdoorDefault": true, "clientBalancingEnabled": true, "minBitrateType": "band", "bandSelectionType": "ap", @@ -78876,6 +79175,14 @@ } }, "description": "Per-SSID radio settings by number." + }, + "isIndoorDefault": { + "type": "boolean", + "description": "Set this profile as the default indoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default" + }, + "isOutdoorDefault": { + "type": "boolean", + "description": "Set this profile as the default outdoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default" } } }, @@ -79195,7 +79502,9 @@ }, "bandSteeringEnabled": true } - } + }, + "isIndoorDefault": false, + "isOutdoorDefault": false } } } @@ -80059,6 +80368,14 @@ } }, "description": "Per-SSID radio settings by number." + }, + "isIndoorDefault": { + "type": "boolean", + "description": "Set this profile as the default indoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default" + }, + "isOutdoorDefault": { + "type": "boolean", + "description": "Set this profile as the default outdoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default" } } }, @@ -80378,7 +80695,9 @@ }, "bandSteeringEnabled": true } - } + }, + "isIndoorDefault": false, + "isOutdoorDefault": false } } } @@ -80875,6 +81194,7 @@ "authMode": { "type": "string", "enum": [ + "8021x-entra", "8021x-google", "8021x-localradius", "8021x-meraki", @@ -81214,6 +81534,7 @@ "authMode": { "type": "string", "enum": [ + "8021x-entra", "8021x-google", "8021x-localradius", "8021x-meraki", @@ -81514,6 +81835,7 @@ "authMode": { "type": "string", "enum": [ + "8021x-entra", "8021x-google", "8021x-localradius", "8021x-meraki", @@ -81528,7 +81850,7 @@ "open-with-radius", "psk" ], - "description": "The association control method for the SSID ('open', 'open-enhanced', 'psk', 'open-with-radius', 'open-with-nac', '8021x-meraki', '8021x-nac', '8021x-radius', '8021x-google', '8021x-localradius', 'ipsk-with-radius', 'ipsk-without-radius' or 'ipsk-with-nac')" + "description": "The association control method for the SSID ('open', 'open-enhanced', 'psk', 'open-with-radius', 'open-with-nac', '8021x-meraki', '8021x-nac', '8021x-radius', '8021x-google', '8021x-entra', '8021x-localradius', 'ipsk-with-radius', 'ipsk-without-radius' or 'ipsk-with-nac')" }, "enterpriseAdminAccess": { "type": "string", @@ -82378,6 +82700,7 @@ "authMode": { "type": "string", "enum": [ + "8021x-entra", "8021x-google", "8021x-localradius", "8021x-meraki", @@ -90599,10 +90922,9 @@ "authenticationMethod": { "type": "string", "enum": [ - "Cisco SecureX Sign-On", "Email" ], - "description": "The method of authentication the user will use to sign in to the Meraki dashboard. Can be one of 'Email' or 'Cisco SecureX Sign-On'. The default is Email authentication" + "description": "No longer used as of Cisco SecureX end-of-life. Can be one of 'Email'. The default is Email authentication." } }, "example": { @@ -94774,11 +95096,14 @@ "wan_usage", "water_cable_disconnect", "water_usb_connect", + "wlc_add_standby", "wlc_ap_limit", + "wlc_ap_onboard", "wlc_ha_active_recovery", "wlc_ha_fail_over_past_day", "wlc_ha_standby_offline", "wlc_ha_standby_recovery", + "wlc_interface_errors", "wpa3_warning", "wrong_console_credentials", "yang_authz_conflict", @@ -95328,11 +95653,14 @@ "wan_usage", "water_cable_disconnect", "water_usb_connect", + "wlc_add_standby", "wlc_ap_limit", + "wlc_ap_onboard", "wlc_ha_active_recovery", "wlc_ha_fail_over_past_day", "wlc_ha_standby_offline", "wlc_ha_standby_recovery", + "wlc_interface_errors", "wpa3_warning", "wrong_console_credentials", "yang_authz_conflict", @@ -95357,6 +95685,18 @@ "in": "query", "description": "Optional parameter to filter by end timestamp" }, + { + "type": "string", + "enum": [ + "configuration", + "connectivity", + "device_health", + "insights" + ], + "name": "category", + "in": "query", + "description": "Optional parameter to filter by category." + }, { "type": "array", "items": { @@ -95708,11 +96048,14 @@ "wan_usage", "water_cable_disconnect", "water_usb_connect", + "wlc_add_standby", "wlc_ap_limit", + "wlc_ap_onboard", "wlc_ha_active_recovery", "wlc_ha_fail_over_past_day", "wlc_ha_standby_offline", "wlc_ha_standby_recovery", + "wlc_interface_errors", "wpa3_warning", "wrong_console_credentials", "yang_authz_conflict", @@ -95737,6 +96080,18 @@ "in": "query", "description": "Optional parameter to filter by end timestamp" }, + { + "type": "string", + "enum": [ + "configuration", + "connectivity", + "device_health", + "insights" + ], + "name": "category", + "in": "query", + "description": "Optional parameter to filter by category." + }, { "type": "array", "items": { @@ -96135,11 +96490,14 @@ "wan_usage", "water_cable_disconnect", "water_usb_connect", + "wlc_add_standby", "wlc_ap_limit", + "wlc_ap_onboard", "wlc_ha_active_recovery", "wlc_ha_fail_over_past_day", "wlc_ha_standby_offline", "wlc_ha_standby_recovery", + "wlc_interface_errors", "wpa3_warning", "wrong_console_credentials", "yang_authz_conflict", @@ -96164,6 +96522,18 @@ "in": "query", "description": "Optional parameter to filter by end timestamp" }, + { + "type": "string", + "enum": [ + "configuration", + "connectivity", + "device_health", + "insights" + ], + "name": "category", + "in": "query", + "description": "Optional parameter to filter by category." + }, { "type": "string", "enum": [ @@ -96520,11 +96890,14 @@ "wan_usage", "water_cable_disconnect", "water_usb_connect", + "wlc_add_standby", "wlc_ap_limit", + "wlc_ap_onboard", "wlc_ha_active_recovery", "wlc_ha_fail_over_past_day", "wlc_ha_standby_offline", "wlc_ha_standby_recovery", + "wlc_interface_errors", "wpa3_warning", "wrong_console_credentials", "yang_authz_conflict", @@ -96550,6 +96923,18 @@ "in": "query", "description": "Optional parameter to filter by end timestamp defaults to the current time" }, + { + "type": "string", + "enum": [ + "configuration", + "connectivity", + "device_health", + "insights" + ], + "name": "category", + "in": "query", + "description": "Optional parameter to filter by category." + }, { "type": "array", "items": { @@ -101628,6 +102013,20 @@ "type": "string", "description": "The ID of the port schedule. A value of null will clear the port schedule." }, + "schedule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the port schedule." + }, + "name": { + "type": "string", + "description": "The name of the port schedule." + } + }, + "description": "The port schedule data." + }, "udld": { "type": "string", "enum": [ @@ -101760,6 +102159,10 @@ "1 Gigabit full duplex (auto)" ], "portScheduleId": "1234", + "schedule": { + "id": "1234", + "name": "Port Schedule" + }, "udld": "Alert only", "accessPolicyType": "Sticky MAC allow list", "accessPolicyNumber": 2, @@ -101921,6 +102324,20 @@ "type": "string", "description": "The ID of the port schedule. A value of null will clear the port schedule." }, + "schedule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the port schedule." + }, + "name": { + "type": "string", + "description": "The name of the port schedule." + } + }, + "description": "The port schedule data." + }, "udld": { "type": "string", "enum": [ @@ -102051,6 +102468,10 @@ "1 Gigabit full duplex (auto)" ], "portScheduleId": "1234", + "schedule": { + "id": "1234", + "name": "Port Schedule" + }, "udld": "Alert only", "accessPolicyType": "Sticky MAC allow list", "accessPolicyNumber": 2, @@ -102405,6 +102826,20 @@ "type": "string", "description": "The ID of the port schedule. A value of null will clear the port schedule." }, + "schedule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the port schedule." + }, + "name": { + "type": "string", + "description": "The name of the port schedule." + } + }, + "description": "The port schedule data." + }, "udld": { "type": "string", "enum": [ @@ -102535,6 +102970,10 @@ "1 Gigabit full duplex (auto)" ], "portScheduleId": "1234", + "schedule": { + "id": "1234", + "name": "Port Schedule" + }, "udld": "Alert only", "accessPolicyType": "Sticky MAC allow list", "accessPolicyNumber": 2, @@ -102742,7 +103181,7 @@ }, "/organizations/{organizationId}/devices": { "get": { - "description": "List the devices in an organization", + "description": "List the devices in an organization that have been assigned to a network.", "operationId": "getOrganizationDevices", "parameters": [ { @@ -103019,7 +103458,7 @@ } } }, - "summary": "List the devices in an organization", + "summary": "List the devices in an organization that have been assigned to a network.", "tags": [ "organizations", "configure", @@ -103073,7 +103512,7 @@ }, "name": "productTypes", "in": "query", - "description": "Optional parameter to filter device availabilities by device product types. This filter uses multiple exact matches." + "description": "Optional parameter to filter device availabilities by device product types. This filter uses multiple exact matches. Valid types are wireless, appliance, switch, camera, cellularGateway, sensor, and wirelessController" }, { "type": "array", @@ -105774,6 +106213,12 @@ "name": "upgradeStatuses", "in": "query", "description": "Optional parameter to filter by firmware upgrade statuses." + }, + { + "type": "boolean", + "name": "currentUpgradesOnly", + "in": "query", + "description": "Optional parameter to filter to only current or pending upgrade statuses" } ], "responses": { @@ -119988,11 +120433,11 @@ "properties": { "duplex": { "type": "string", - "description": "The duplex mode of the port. Can be 'full' or 'half'" + "description": "The duplex mode of the port. Can be 'full' or 'half' will return null on Catalyst devices" }, "speed": { "type": "integer", - "description": "The speed of the port" + "description": "Show the speed of the port. The port speed will return null on Catalyst devices" } }, "description": "Link negotiation details object for the port" @@ -120006,11 +120451,11 @@ "properties": { "enabled": { "type": "boolean", - "description": "Link Aggregation enabled flag" + "description": "Link Aggregation enabled flag will return null on Catalyst devices" }, "speed": { "type": "integer", - "description": "Link Aggregation speed" + "description": "Link Aggregation speed will return null on Catalyst devices" } }, "description": "Aggregation details object" @@ -121261,6 +121706,9 @@ { "name": "analytics" }, + { + "name": "api" + }, { "name": "apiRequests" }, @@ -121606,6 +122054,9 @@ { "name": "ipv6" }, + { + "name": "keys" + }, { "name": "l3FirewallRules" }, @@ -122038,9 +122489,6 @@ { "name": "userAccessDevices" }, - { - "name": "users" - }, { "name": "v4" }, @@ -122304,6 +122752,12 @@ "resource": "/networks/{networkId}/clients", "operation": "provision" }, + { + "group": "Dashboard features/actions/early access/feature opt in", + "summary": "Update an early access feature opt-in for an organization", + "resource": "/organizations/{organizationId}/earlyAccess/features/optIns/{optInId}", + "operation": "update" + }, { "group": "Device", "summary": "Update the attributes of a device", @@ -122370,12 +122824,6 @@ "resource": "/devices/{serial}/wireless/electronicShelfLabel", "operation": "update" }, - { - "group": "Feature opt in", - "summary": "Update an early access feature opt-in for an organization", - "resource": "/organizations/{organizationId}/earlyAccess/features/optIns/{optInId}", - "operation": "update" - }, { "group": "Firmware upgrade rollback", "summary": "Rollback a Firmware Upgrade For A Network", @@ -122936,7 +123384,7 @@ }, { "group": "RF profile", - "summary": "Updates specified RF profile for this network", + "summary": "Updates specified RF profile for this network. Note: built-in RF profiles can only be assigned as a default, and its attributes are immutable", "resource": "/networks/{networkId}/wireless/rfProfiles/{rfProfileId}", "operation": "update" }, diff --git a/openapi/spec3.json b/openapi/spec3.json index b36a87c..08eb415 100644 --- a/openapi/spec3.json +++ b/openapi/spec3.json @@ -2,12 +2,12 @@ "openapi": "3.0.1", "info": { "title": "Meraki Dashboard API", - "description": "A RESTful API to programmatically manage and monitor Cisco Meraki networks at scale.\n\n> Date: 03 July, 2024\n>\n> [Recent Updates](https://meraki.io/whats-new/)\n\n---\n\n[API Documentation](https://meraki.io/api)\n\n[Community Support](https://meraki.io/community)\n\n[Meraki Homepage](https://www.meraki.com)\n", + "description": "A RESTful API to programmatically manage and monitor Cisco Meraki networks at scale.\n\n> Date: 07 August, 2024\n>\n> [Recent Updates](https://meraki.io/whats-new/)\n\n---\n\n[API Documentation](https://meraki.io/api)\n\n[Community Support](https://meraki.io/community)\n\n[Meraki Homepage](https://www.meraki.com)\n", "contact": { "name": "Meraki Developer Community", "url": "https://meraki.io/community" }, - "version": "1.48.0" + "version": "1.49.0" }, "servers": [ { @@ -151,6 +151,119 @@ ] } }, + "/administered/identities/me/api/keys": { + "get": { + "description": "List the non-sensitive metadata associated with the API keys that belong to the user", + "operationId": "getAdministeredIdentitiesMeApiKeys", + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "suffix": { + "type": "string", + "description": "Last 4 characters of the API key" + }, + "createdAt": { + "type": "string", + "description": "Date that the API key was created" + } + } + } + }, + "example": [ + { + "suffix": "da4f", + "createdAt": "2018-02-11T00:00:00.090210Z" + } + ] + } + } + } + }, + "summary": "List the non-sensitive metadata associated with the API keys that belong to the user", + "tags": [ + "administered", + "configure", + "identities", + "me", + "api", + "keys" + ] + } + }, + "/administered/identities/me/api/keys/generate": { + "post": { + "description": "Generates an API key for an identity. For users who have access to more than one organization, the change will take up to five minutes to propagate. If one of the organizations is currently under maintenance, the change may not propagate fully until after the maintenance has been completed.", + "operationId": "generateAdministeredIdentitiesMeApiKeys", + "responses": { + "202": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "API key in plaintext. This value will not be accessible outside of key generation" + } + } + }, + "example": { + "key": "1284392014819" + } + } + } + } + }, + "summary": "Generates an API key for an identity", + "tags": [ + "administered", + "configure", + "identities", + "me", + "api", + "keys" + ] + } + }, + "/administered/identities/me/api/keys/{suffix}/revoke": { + "post": { + "description": "Revokes an identity's API key, using the last four characters of the key. For users who have access to more than one organization, the change will take up to five minutes to propagate. If one of the organizations is currently under maintenance, the change may not propagate fully until after the maintenance has been completed.", + "operationId": "revokeAdministeredIdentitiesMeApiKeys", + "parameters": [ + { + "name": "suffix", + "in": "path", + "description": "Suffix", + "schema": { + "type": "string" + }, + "required": true + } + ], + "responses": { + "202": { + "description": "Successful operation" + } + }, + "summary": "Revokes an identity's API key, using the last four characters of the key", + "tags": [ + "administered", + "configure", + "identities", + "me", + "api", + "keys" + ] + } + }, "/administered/licensing/subscription/entitlements": { "get": { "description": "Retrieve the list of purchasable entitlements", @@ -5209,10 +5322,7 @@ "allowedIpTypes" ] }, - "description": "APN configurations. If empty, the default APN will be used.", - "default": [ - - ] + "description": "APN configurations. If empty, the default APN will be used." }, "simOrder": { "type": "integer", @@ -6718,7 +6828,7 @@ "items": { "type": "string" }, - "description": "A list of ports for which to perform the cable test." + "description": "A list of ports for which to perform the cable test. For Catalyst switches, IOS interface names are also supported, such as \"GigabitEthernet1/0/8\", \"Gi1/0/8\", or even \"1/0/8\"." }, "callback": { "type": "object", @@ -10346,6 +10456,20 @@ "type": "string", "description": "The ID of the port schedule. A value of null will clear the port schedule." }, + "schedule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the port schedule." + }, + "name": { + "type": "string", + "description": "The name of the port schedule." + } + }, + "description": "The port schedule data." + }, "udld": { "type": "string", "enum": [ @@ -10394,6 +10518,20 @@ "type": "string", "description": "The adaptive policy group ID that will be used to tag traffic through this switch port. This ID must pre-exist during the configuration, else needs to be created using adaptivePolicy/groups API. Cannot be applied to a port on a switch bound to profile." }, + "adaptivePolicyGroup": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the adaptive policy group." + }, + "name": { + "type": "string", + "description": "The name of the adaptive policy group." + } + }, + "description": "The adaptive policy group data of the port." + }, "peerSgtCapable": { "type": "boolean", "description": "If true, Peer SGT is enabled for traffic through this switch port. Applicable to trunk port only, not access port. Cannot be applied to a port on a switch bound to profile." @@ -10485,6 +10623,10 @@ "1 Gigabit full duplex (auto)" ], "portScheduleId": "1234", + "schedule": { + "id": "1234", + "name": "Port Schedule" + }, "udld": "Alert only", "accessPolicyType": "Sticky MAC allow list", "accessPolicyNumber": 2, @@ -10499,6 +10641,10 @@ "stickyMacAllowListLimit": 5, "stormControlEnabled": true, "adaptivePolicyGroupId": "123", + "adaptivePolicyGroup": { + "id": "123", + "name": "Adaptive Policy Group" + }, "peerSgtCapable": false, "flexibleStackingEnabled": true, "daiTrusted": false, @@ -11250,6 +11396,20 @@ "type": "string", "description": "The ID of the port schedule. A value of null will clear the port schedule." }, + "schedule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the port schedule." + }, + "name": { + "type": "string", + "description": "The name of the port schedule." + } + }, + "description": "The port schedule data." + }, "udld": { "type": "string", "enum": [ @@ -11298,6 +11458,20 @@ "type": "string", "description": "The adaptive policy group ID that will be used to tag traffic through this switch port. This ID must pre-exist during the configuration, else needs to be created using adaptivePolicy/groups API. Cannot be applied to a port on a switch bound to profile." }, + "adaptivePolicyGroup": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the adaptive policy group." + }, + "name": { + "type": "string", + "description": "The name of the adaptive policy group." + } + }, + "description": "The adaptive policy group data of the port." + }, "peerSgtCapable": { "type": "boolean", "description": "If true, Peer SGT is enabled for traffic through this switch port. Applicable to trunk port only, not access port. Cannot be applied to a port on a switch bound to profile." @@ -11387,6 +11561,10 @@ "1 Gigabit full duplex (auto)" ], "portScheduleId": "1234", + "schedule": { + "id": "1234", + "name": "Port Schedule" + }, "udld": "Alert only", "accessPolicyType": "Sticky MAC allow list", "accessPolicyNumber": 2, @@ -11401,6 +11579,10 @@ "stickyMacAllowListLimit": 5, "stormControlEnabled": true, "adaptivePolicyGroupId": "123", + "adaptivePolicyGroup": { + "id": "123", + "name": "Adaptive Policy Group" + }, "peerSgtCapable": false, "flexibleStackingEnabled": true, "daiTrusted": false, @@ -11747,6 +11929,20 @@ "type": "string", "description": "The ID of the port schedule. A value of null will clear the port schedule." }, + "schedule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the port schedule." + }, + "name": { + "type": "string", + "description": "The name of the port schedule." + } + }, + "description": "The port schedule data." + }, "udld": { "type": "string", "enum": [ @@ -11795,6 +11991,20 @@ "type": "string", "description": "The adaptive policy group ID that will be used to tag traffic through this switch port. This ID must pre-exist during the configuration, else needs to be created using adaptivePolicy/groups API. Cannot be applied to a port on a switch bound to profile." }, + "adaptivePolicyGroup": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the adaptive policy group." + }, + "name": { + "type": "string", + "description": "The name of the adaptive policy group." + } + }, + "description": "The adaptive policy group data of the port." + }, "peerSgtCapable": { "type": "boolean", "description": "If true, Peer SGT is enabled for traffic through this switch port. Applicable to trunk port only, not access port. Cannot be applied to a port on a switch bound to profile." @@ -11884,6 +12094,10 @@ "1 Gigabit full duplex (auto)" ], "portScheduleId": "1234", + "schedule": { + "id": "1234", + "name": "Port Schedule" + }, "udld": "Alert only", "accessPolicyType": "Sticky MAC allow list", "accessPolicyNumber": 2, @@ -11898,6 +12112,10 @@ "stickyMacAllowListLimit": 5, "stormControlEnabled": true, "adaptivePolicyGroupId": "123", + "adaptivePolicyGroup": { + "id": "123", + "name": "Adaptive Policy Group" + }, "peerSgtCapable": false, "flexibleStackingEnabled": true, "daiTrusted": false, @@ -13410,7 +13628,11 @@ }, "nextHopIp": { "type": "string", - "description": " The IP address of the router to which traffic for this destination network should be sent" + "description": "The IP address of the router to which traffic for this destination network should be sent" + }, + "managementNextHop": { + "type": "string", + "description": "Optional fallback IP address for management traffic" }, "advertiseViaOspfEnabled": { "type": "boolean", @@ -13433,6 +13655,7 @@ "name": "My route", "subnet": "192.168.1.0/24", "nextHopIp": "1.2.3.4", + "managementNextHop": "1.2.3.5", "advertiseViaOspfEnabled": false, "preferOverOspfRoutesEnabled": false } @@ -13528,7 +13751,11 @@ }, "nextHopIp": { "type": "string", - "description": " The IP address of the router to which traffic for this destination network should be sent" + "description": "The IP address of the router to which traffic for this destination network should be sent" + }, + "managementNextHop": { + "type": "string", + "description": "Optional fallback IP address for management traffic" }, "advertiseViaOspfEnabled": { "type": "boolean", @@ -13549,6 +13776,7 @@ "name": "My route", "subnet": "192.168.1.0/24", "nextHopIp": "1.2.3.4", + "managementNextHop": "1.2.3.5", "advertiseViaOspfEnabled": false, "preferOverOspfRoutesEnabled": false } @@ -13611,7 +13839,11 @@ }, "nextHopIp": { "type": "string", - "description": " The IP address of the router to which traffic for this destination network should be sent" + "description": "The IP address of the router to which traffic for this destination network should be sent" + }, + "managementNextHop": { + "type": "string", + "description": "Optional fallback IP address for management traffic" }, "advertiseViaOspfEnabled": { "type": "boolean", @@ -13632,6 +13864,7 @@ "name": "My route", "subnet": "192.168.1.0/24", "nextHopIp": "1.2.3.4", + "managementNextHop": "1.2.3.5", "advertiseViaOspfEnabled": false, "preferOverOspfRoutesEnabled": false } @@ -13688,6 +13921,10 @@ "type": "string", "description": "IP address of the next hop device to which the device sends its traffic for the subnet" }, + "managementNextHop": { + "type": "string", + "description": "Optional fallback IP address for management traffic" + }, "advertiseViaOspfEnabled": { "type": "boolean", "description": "Option to advertise static route via OSPF" @@ -13701,6 +13938,7 @@ "name": "My route", "subnet": "192.168.1.0/24", "nextHopIp": "1.2.3.4", + "managementNextHop": "1.2.3.5", "advertiseViaOspfEnabled": false, "preferOverOspfRoutesEnabled": false } @@ -13731,7 +13969,11 @@ }, "nextHopIp": { "type": "string", - "description": " The IP address of the router to which traffic for this destination network should be sent" + "description": "The IP address of the router to which traffic for this destination network should be sent" + }, + "managementNextHop": { + "type": "string", + "description": "Optional fallback IP address for management traffic" }, "advertiseViaOspfEnabled": { "type": "boolean", @@ -13752,6 +13994,7 @@ "name": "My route", "subnet": "192.168.1.0/24", "nextHopIp": "1.2.3.4", + "managementNextHop": "1.2.3.5", "advertiseViaOspfEnabled": false, "preferOverOspfRoutesEnabled": false } @@ -58400,8 +58643,7 @@ "summary": "List the owners in an SM network with various specified fields and filters", "tags": [ "sm", - "configure", - "users" + "configure" ] } }, @@ -58494,7 +58736,6 @@ "tags": [ "sm", "configure", - "users", "deviceProfiles" ] } @@ -58663,7 +58904,6 @@ "tags": [ "sm", "configure", - "users", "softwares" ] } @@ -68629,7 +68869,11 @@ }, "nextHopIp": { "type": "string", - "description": " The IP address of the router to which traffic for this destination network should be sent" + "description": "The IP address of the router to which traffic for this destination network should be sent" + }, + "managementNextHop": { + "type": "string", + "description": "Optional fallback IP address for management traffic" }, "advertiseViaOspfEnabled": { "type": "boolean", @@ -68652,6 +68896,7 @@ "name": "My route", "subnet": "192.168.1.0/24", "nextHopIp": "1.2.3.4", + "managementNextHop": "1.2.3.5", "advertiseViaOspfEnabled": false, "preferOverOspfRoutesEnabled": false } @@ -68757,7 +69002,11 @@ }, "nextHopIp": { "type": "string", - "description": " The IP address of the router to which traffic for this destination network should be sent" + "description": "The IP address of the router to which traffic for this destination network should be sent" + }, + "managementNextHop": { + "type": "string", + "description": "Optional fallback IP address for management traffic" }, "advertiseViaOspfEnabled": { "type": "boolean", @@ -68778,6 +69027,7 @@ "name": "My route", "subnet": "192.168.1.0/24", "nextHopIp": "1.2.3.4", + "managementNextHop": "1.2.3.5", "advertiseViaOspfEnabled": false, "preferOverOspfRoutesEnabled": false } @@ -68850,7 +69100,11 @@ }, "nextHopIp": { "type": "string", - "description": " The IP address of the router to which traffic for this destination network should be sent" + "description": "The IP address of the router to which traffic for this destination network should be sent" + }, + "managementNextHop": { + "type": "string", + "description": "Optional fallback IP address for management traffic" }, "advertiseViaOspfEnabled": { "type": "boolean", @@ -68871,6 +69125,7 @@ "name": "My route", "subnet": "192.168.1.0/24", "nextHopIp": "1.2.3.4", + "managementNextHop": "1.2.3.5", "advertiseViaOspfEnabled": false, "preferOverOspfRoutesEnabled": false } @@ -68980,7 +69235,11 @@ }, "nextHopIp": { "type": "string", - "description": " The IP address of the router to which traffic for this destination network should be sent" + "description": "The IP address of the router to which traffic for this destination network should be sent" + }, + "managementNextHop": { + "type": "string", + "description": "Optional fallback IP address for management traffic" }, "advertiseViaOspfEnabled": { "type": "boolean", @@ -69001,6 +69260,7 @@ "name": "My route", "subnet": "192.168.1.0/24", "nextHopIp": "1.2.3.4", + "managementNextHop": "1.2.3.5", "advertiseViaOspfEnabled": false, "preferOverOspfRoutesEnabled": false } @@ -74638,6 +74898,18 @@ "type": "string" } }, + { + "name": "sortOrder", + "in": "query", + "description": "Sorted order of entries. Order options are 'ascending' and 'descending'. Default is 'ascending'.", + "schema": { + "type": "string", + "enum": [ + "ascending", + "descending" + ] + } + }, { "name": "t0", "in": "query", @@ -74838,6 +75110,10 @@ "deviceSerial": { "type": "string", "description": "Serial number of the device the event occurred for" + }, + "captureId": { + "type": "string", + "description": "Id of the packet capture triggered for the event, if any" } } } @@ -74853,7 +75129,8 @@ "durationMs": 100, "channel": 44, "rssi": 80, - "deviceSerial": "Q234-ABCD-5678" + "deviceSerial": "Q234-ABCD-5678", + "captureId": "123456" } ] } @@ -78446,6 +78723,14 @@ } }, "description": "Per-SSID radio settings by number." + }, + "isIndoorDefault": { + "type": "boolean", + "description": "Set this profile as the default indoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default" + }, + "isOutdoorDefault": { + "type": "boolean", + "description": "Set this profile as the default outdoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default" } } }, @@ -78764,7 +79049,9 @@ }, "bandSteeringEnabled": true } - } + }, + "isIndoorDefault": false, + "isOutdoorDefault": false } } } @@ -80808,6 +81095,14 @@ } }, "description": "Per-SSID radio settings by number." + }, + "isIndoorDefault": { + "type": "boolean", + "description": "Set this profile as the default indoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default" + }, + "isOutdoorDefault": { + "type": "boolean", + "description": "Set this profile as the default outdoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default" } } }, @@ -81126,7 +81421,9 @@ }, "bandSteeringEnabled": true } - } + }, + "isIndoorDefault": false, + "isOutdoorDefault": false } } } @@ -81142,7 +81439,7 @@ }, "/networks/{networkId}/wireless/rfProfiles/{rfProfileId}": { "put": { - "description": "Updates specified RF profile for this network", + "description": "Updates specified RF profile for this network. Note: built-in RF profiles can only be assigned as a default, and its attributes are immutable", "operationId": "updateNetworkWirelessRfProfile", "parameters": [ { @@ -81174,6 +81471,14 @@ "type": "string", "description": "The name of the new profile. Must be unique." }, + "isIndoorDefault": { + "type": "boolean", + "description": "Set this profile as the default indoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default" + }, + "isOutdoorDefault": { + "type": "boolean", + "description": "Set this profile as the default outdoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default" + }, "clientBalancingEnabled": { "type": "boolean", "description": "Steers client to best available access point. Can be either true or false." @@ -82060,6 +82365,8 @@ }, "example": { "name": "1234", + "isIndoorDefault": true, + "isOutdoorDefault": true, "clientBalancingEnabled": true, "minBitrateType": "band", "bandSelectionType": "ap", @@ -83177,6 +83484,14 @@ } }, "description": "Per-SSID radio settings by number." + }, + "isIndoorDefault": { + "type": "boolean", + "description": "Set this profile as the default indoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default" + }, + "isOutdoorDefault": { + "type": "boolean", + "description": "Set this profile as the default outdoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default" } } }, @@ -83495,7 +83810,9 @@ }, "bandSteeringEnabled": true } - } + }, + "isIndoorDefault": false, + "isOutdoorDefault": false } } } @@ -84370,6 +84687,14 @@ } }, "description": "Per-SSID radio settings by number." + }, + "isIndoorDefault": { + "type": "boolean", + "description": "Set this profile as the default indoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default" + }, + "isOutdoorDefault": { + "type": "boolean", + "description": "Set this profile as the default outdoor rf profile. If the profile ID is one of 'indoor' or 'outdoor', then a new profile will be created from the respective ID and set as the default" } } }, @@ -84688,7 +85013,9 @@ }, "bandSteeringEnabled": true } - } + }, + "isIndoorDefault": false, + "isOutdoorDefault": false } } } @@ -85225,6 +85552,7 @@ "authMode": { "type": "string", "enum": [ + "8021x-entra", "8021x-google", "8021x-localradius", "8021x-meraki", @@ -85570,6 +85898,7 @@ "authMode": { "type": "string", "enum": [ + "8021x-entra", "8021x-google", "8021x-localradius", "8021x-meraki", @@ -85875,6 +86204,7 @@ "authMode": { "type": "string", "enum": [ + "8021x-entra", "8021x-google", "8021x-localradius", "8021x-meraki", @@ -85889,7 +86219,7 @@ "open-with-radius", "psk" ], - "description": "The association control method for the SSID ('open', 'open-enhanced', 'psk', 'open-with-radius', 'open-with-nac', '8021x-meraki', '8021x-nac', '8021x-radius', '8021x-google', '8021x-localradius', 'ipsk-with-radius', 'ipsk-without-radius' or 'ipsk-with-nac')" + "description": "The association control method for the SSID ('open', 'open-enhanced', 'psk', 'open-with-radius', 'open-with-nac', '8021x-meraki', '8021x-nac', '8021x-radius', '8021x-google', '8021x-entra', '8021x-localradius', 'ipsk-with-radius', 'ipsk-without-radius' or 'ipsk-with-nac')" }, "enterpriseAdminAccess": { "type": "string", @@ -86743,6 +87073,7 @@ "authMode": { "type": "string", "enum": [ + "8021x-entra", "8021x-google", "8021x-localradius", "8021x-meraki", @@ -95487,10 +95818,9 @@ "authenticationMethod": { "type": "string", "enum": [ - "Cisco SecureX Sign-On", "Email" ], - "description": "The method of authentication the user will use to sign in to the Meraki dashboard. Can be one of 'Email' or 'Cisco SecureX Sign-On'. The default is Email authentication" + "description": "No longer used as of Cisco SecureX end-of-life. Can be one of 'Email'. The default is Email authentication." } }, "example": { @@ -99916,11 +100246,14 @@ "wan_usage", "water_cable_disconnect", "water_usb_connect", + "wlc_add_standby", "wlc_ap_limit", + "wlc_ap_onboard", "wlc_ha_active_recovery", "wlc_ha_fail_over_past_day", "wlc_ha_standby_offline", "wlc_ha_standby_recovery", + "wlc_interface_errors", "wpa3_warning", "wrong_console_credentials", "yang_authz_conflict", @@ -100508,11 +100841,14 @@ "wan_usage", "water_cable_disconnect", "water_usb_connect", + "wlc_add_standby", "wlc_ap_limit", + "wlc_ap_onboard", "wlc_ha_active_recovery", "wlc_ha_fail_over_past_day", "wlc_ha_standby_offline", "wlc_ha_standby_recovery", + "wlc_interface_errors", "wpa3_warning", "wrong_console_credentials", "yang_authz_conflict", @@ -100539,6 +100875,20 @@ "format": "date-time" } }, + { + "name": "category", + "in": "query", + "description": "Optional parameter to filter by category.", + "schema": { + "type": "string", + "enum": [ + "configuration", + "connectivity", + "device_health", + "insights" + ] + } + }, { "name": "serials", "in": "query", @@ -100924,11 +101274,14 @@ "wan_usage", "water_cable_disconnect", "water_usb_connect", + "wlc_add_standby", "wlc_ap_limit", + "wlc_ap_onboard", "wlc_ha_active_recovery", "wlc_ha_fail_over_past_day", "wlc_ha_standby_offline", "wlc_ha_standby_recovery", + "wlc_interface_errors", "wpa3_warning", "wrong_console_credentials", "yang_authz_conflict", @@ -100955,6 +101308,20 @@ "format": "date-time" } }, + { + "name": "category", + "in": "query", + "description": "Optional parameter to filter by category.", + "schema": { + "type": "string", + "enum": [ + "configuration", + "connectivity", + "device_health", + "insights" + ] + } + }, { "name": "serials", "in": "query", @@ -101389,11 +101756,14 @@ "wan_usage", "water_cable_disconnect", "water_usb_connect", + "wlc_add_standby", "wlc_ap_limit", + "wlc_ap_onboard", "wlc_ha_active_recovery", "wlc_ha_fail_over_past_day", "wlc_ha_standby_offline", "wlc_ha_standby_recovery", + "wlc_interface_errors", "wpa3_warning", "wrong_console_credentials", "yang_authz_conflict", @@ -101420,6 +101790,20 @@ "format": "date-time" } }, + { + "name": "category", + "in": "query", + "description": "Optional parameter to filter by category.", + "schema": { + "type": "string", + "enum": [ + "configuration", + "connectivity", + "device_health", + "insights" + ] + } + }, { "name": "sortBy", "in": "query", @@ -101808,11 +102192,14 @@ "wan_usage", "water_cable_disconnect", "water_usb_connect", + "wlc_add_standby", "wlc_ap_limit", + "wlc_ap_onboard", "wlc_ha_active_recovery", "wlc_ha_fail_over_past_day", "wlc_ha_standby_offline", "wlc_ha_standby_recovery", + "wlc_interface_errors", "wpa3_warning", "wrong_console_credentials", "yang_authz_conflict", @@ -101840,6 +102227,20 @@ "format": "date-time" } }, + { + "name": "category", + "in": "query", + "description": "Optional parameter to filter by category.", + "schema": { + "type": "string", + "enum": [ + "configuration", + "connectivity", + "device_health", + "insights" + ] + } + }, { "name": "serials", "in": "query", @@ -107223,6 +107624,20 @@ "type": "string", "description": "The ID of the port schedule. A value of null will clear the port schedule." }, + "schedule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the port schedule." + }, + "name": { + "type": "string", + "description": "The name of the port schedule." + } + }, + "description": "The port schedule data." + }, "udld": { "type": "string", "enum": [ @@ -107354,6 +107769,10 @@ "1 Gigabit full duplex (auto)" ], "portScheduleId": "1234", + "schedule": { + "id": "1234", + "name": "Port Schedule" + }, "udld": "Alert only", "accessPolicyType": "Sticky MAC allow list", "accessPolicyNumber": 2, @@ -107526,6 +107945,20 @@ "type": "string", "description": "The ID of the port schedule. A value of null will clear the port schedule." }, + "schedule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the port schedule." + }, + "name": { + "type": "string", + "description": "The name of the port schedule." + } + }, + "description": "The port schedule data." + }, "udld": { "type": "string", "enum": [ @@ -107655,6 +108088,10 @@ "1 Gigabit full duplex (auto)" ], "portScheduleId": "1234", + "schedule": { + "id": "1234", + "name": "Port Schedule" + }, "udld": "Alert only", "accessPolicyType": "Sticky MAC allow list", "accessPolicyNumber": 2, @@ -108023,6 +108460,20 @@ "type": "string", "description": "The ID of the port schedule. A value of null will clear the port schedule." }, + "schedule": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the port schedule." + }, + "name": { + "type": "string", + "description": "The name of the port schedule." + } + }, + "description": "The port schedule data." + }, "udld": { "type": "string", "enum": [ @@ -108152,6 +108603,10 @@ "1 Gigabit full duplex (auto)" ], "portScheduleId": "1234", + "schedule": { + "id": "1234", + "name": "Port Schedule" + }, "udld": "Alert only", "accessPolicyType": "Sticky MAC allow list", "accessPolicyNumber": 2, @@ -108382,7 +108837,7 @@ }, "/organizations/{organizationId}/devices": { "get": { - "description": "List the devices in an organization", + "description": "List the devices in an organization that have been assigned to a network.", "operationId": "getOrganizationDevices", "parameters": [ { @@ -108699,7 +109154,7 @@ } } }, - "summary": "List the devices in an organization", + "summary": "List the devices in an organization that have been assigned to a network.", "tags": [ "organizations", "configure", @@ -108759,7 +109214,7 @@ { "name": "productTypes", "in": "query", - "description": "Optional parameter to filter device availabilities by device product types. This filter uses multiple exact matches.", + "description": "Optional parameter to filter device availabilities by device product types. This filter uses multiple exact matches. Valid types are wireless, appliance, switch, camera, cellularGateway, sensor, and wirelessController", "schema": { "type": "array", "items": { @@ -111701,6 +112156,14 @@ ] } } + }, + { + "name": "currentUpgradesOnly", + "in": "query", + "description": "Optional parameter to filter to only current or pending upgrade statuses", + "schema": { + "type": "boolean" + } } ], "responses": { @@ -126953,11 +127416,11 @@ "properties": { "duplex": { "type": "string", - "description": "The duplex mode of the port. Can be 'full' or 'half'" + "description": "The duplex mode of the port. Can be 'full' or 'half' will return null on Catalyst devices" }, "speed": { "type": "integer", - "description": "The speed of the port" + "description": "Show the speed of the port. The port speed will return null on Catalyst devices" } }, "description": "Link negotiation details object for the port" @@ -126971,11 +127434,11 @@ "properties": { "enabled": { "type": "boolean", - "description": "Link Aggregation enabled flag" + "description": "Link Aggregation enabled flag will return null on Catalyst devices" }, "speed": { "type": "integer", - "description": "Link Aggregation speed" + "description": "Link Aggregation speed will return null on Catalyst devices" } }, "description": "Aggregation details object" @@ -128356,6 +128819,9 @@ { "name": "analytics" }, + { + "name": "api" + }, { "name": "apiRequests" }, @@ -128701,6 +129167,9 @@ { "name": "ipv6" }, + { + "name": "keys" + }, { "name": "l3FirewallRules" }, @@ -129133,9 +129602,6 @@ { "name": "userAccessDevices" }, - { - "name": "users" - }, { "name": "v4" }, @@ -129399,6 +129865,12 @@ "resource": "/networks/{networkId}/clients", "operation": "provision" }, + { + "group": "Dashboard features/actions/early access/feature opt in", + "summary": "Update an early access feature opt-in for an organization", + "resource": "/organizations/{organizationId}/earlyAccess/features/optIns/{optInId}", + "operation": "update" + }, { "group": "Device", "summary": "Update the attributes of a device", @@ -129465,12 +129937,6 @@ "resource": "/devices/{serial}/wireless/electronicShelfLabel", "operation": "update" }, - { - "group": "Feature opt in", - "summary": "Update an early access feature opt-in for an organization", - "resource": "/organizations/{organizationId}/earlyAccess/features/optIns/{optInId}", - "operation": "update" - }, { "group": "Firmware upgrade rollback", "summary": "Rollback a Firmware Upgrade For A Network", @@ -130031,7 +130497,7 @@ }, { "group": "RF profile", - "summary": "Updates specified RF profile for this network", + "summary": "Updates specified RF profile for this network. Note: built-in RF profiles can only be assigned as a default, and its attributes are immutable", "resource": "/networks/{networkId}/wireless/rfProfiles/{rfProfileId}", "operation": "update" },