Cisco Meraki · Agentic Access

Cisco Meraki Agentic Access

x-agentic-access generated

Cisco Meraki exposes 957 API operations that an AI agent could call, of which 445 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.

By consequence: 512 read, 132 write, 225 physical, and 16 safety-critical.

88 operations are classed safety-critical and should require human-in-the-loop approval at runtime.

Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.

NetworkingWirelessSwitchingSecurity AppliancesCloud-Managed NetworkingMDMCamerasIoT
Operations: 957 Acting: 445 Human-in-the-loop: 88 Method: generated

By consequence

read 512 write 132 physical 225 safety-critical 16

Highest-consequence actions

The physical and safety-critical operations an agent could invoke — the ones that most warrant scoped tokens, tight TTLs, and escalation. Full per-operation contracts are in the source below.

MethodPathConsequenceHuman-in-loop
POST /administered/identities/me/api/keys/{suffix}/revoke safety-critical required
POST /devices/{serial}/blinkLeds safety-critical required
PUT /devices/{serial}/camera/sense safety-critical required
POST /devices/{serial}/liveTools/leds/blink safety-critical required
POST /devices/{serial}/liveTools/ports/cycle safety-critical required
POST /devices/{serial}/liveTools/power/usage safety-critical required
POST /devices/{serial}/reboot safety-critical required
POST /devices/{serial}/switch/ports/cycle safety-critical required
POST /networks/{networkId}/appliance/devices/redundancy/swap safety-critical required
POST /networks/{networkId}/appliance/warmSpare/swap safety-critical required
POST /networks/{networkId}/sm/devices/reboot safety-critical required
POST /networks/{networkId}/sm/devices/shutdown safety-critical required
POST /networks/{networkId}/sm/devices/wipe safety-critical required
POST /organizations/{organizationId}/cellularGateway/esims/swap safety-critical required
PUT /organizations/{organizationId}/cellularGateway/esims/swap/{id} safety-critical required
POST /organizations/{organizationId}/inventory/devices/swaps/bulk safety-critical required
PUT /devices/{serial} physical conditional
POST /devices/{serial}/appliance/interfaces/ports/update physical conditional
PUT /devices/{serial}/appliance/radio/settings physical conditional
PUT /devices/{serial}/appliance/uplinks/settings physical conditional
POST /devices/{serial}/appliance/vmx/authenticationToken physical conditional
PUT /devices/{serial}/camera/customAnalytics physical conditional
POST /devices/{serial}/camera/generateSnapshot physical conditional
PUT /devices/{serial}/camera/qualityAndRetention physical conditional
PUT /devices/{serial}/camera/video/settings physical conditional

Source

Agentic Access

Raw ↑
generated: '2026-07-31'
method: generated
source: openapi/cisco-meraki-administered-api-openapi.json, openapi/cisco-meraki-appliance-api-openapi.json, 
  openapi/cisco-meraki-camera-api-openapi.json, openapi/cisco-meraki-campusgateway-api-openapi.json, 
  openapi/cisco-meraki-cellulargateway-api-openapi.json, openapi/cisco-meraki-devices-api-openapi.json, 
  openapi/cisco-meraki-insight-api-openapi.json, openapi/cisco-meraki-licensing-api-openapi.json, 
  openapi/cisco-meraki-networks-api-openapi.json, openapi/cisco-meraki-organizations-api-openapi.json, 
  openapi/cisco-meraki-sensor-api-openapi.json, openapi/cisco-meraki-sm-api-openapi.json, 
  openapi/cisco-meraki-spaces-api-openapi.json, openapi/cisco-meraki-switch-api-openapi.json, 
  openapi/cisco-meraki-wireless-api-openapi.json, openapi/cisco-meraki-wirelesscontroller-api-openapi.json
x-provenance:
  authored_by: API Evangelist
  derived_from: Cisco's published OpenAPI definitions
  note: >-
    Classification is heuristic and authored by API Evangelist, not by Cisco. The underlying operations are Cisco-published.
    Review and bind audience per deployment before use.
description: >-
  Recommended x-agentic-access execution contracts, classified heuristically from the OpenAPI. A governance starting
  point for exposing this API to AI agents — review and bind audience per deployment. See research/curity/agentic-governance/.
summary:
  operations: 957
  by_action_class:
    connected: 512
    acting: 445
  by_consequence:
    read: 512
    write: 132
    safety-critical: 16
    physical: 225
    destructive: 72
  human_in_the_loop_required: 88
operations:
- path: /administered/identities/me
  method: get
  operationId: getAdministeredIdentitiesMe
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /administered/identities/me/api/keys
  method: get
  operationId: getAdministeredIdentitiesMeApiKeys
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /administered/identities/me/api/keys/generate
  method: post
  operationId: generateAdministeredIdentitiesMeApiKeys
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /administered/identities/me/api/keys/{suffix}/revoke
  method: post
  operationId: revokeAdministeredIdentitiesMeApiKeys
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience:
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /devices/{serial}/appliance/dhcp/subnets
  method: get
  operationId: getDeviceApplianceDhcpSubnets
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /devices/{serial}/appliance/interfaces/ports/update
  method: post
  operationId: createDeviceApplianceInterfacesPortsUpdate
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /devices/{serial}/appliance/performance
  method: get
  operationId: getDeviceAppliancePerformance
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /devices/{serial}/appliance/prefixes/delegated
  method: get
  operationId: getDeviceAppliancePrefixesDelegated
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /devices/{serial}/appliance/prefixes/delegated/vlanAssignments
  method: get
  operationId: getDeviceAppliancePrefixesDelegatedVlanAssignments
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /devices/{serial}/appliance/radio/settings
  method: get
  operationId: getDeviceApplianceRadioSettings
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /devices/{serial}/appliance/radio/settings
  method: put
  operationId: updateDeviceApplianceRadioSettings
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /devices/{serial}/appliance/uplinks/settings
  method: get
  operationId: getDeviceApplianceUplinksSettings
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /devices/{serial}/appliance/uplinks/settings
  method: put
  operationId: updateDeviceApplianceUplinksSettings
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /devices/{serial}/appliance/vmx/authenticationToken
  method: post
  operationId: createDeviceApplianceVmxAuthenticationToken
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/clients/{clientId}/security/events
  method: get
  operationId: getNetworkApplianceClientSecurityEvents
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/connectivityMonitoringDestinations
  method: get
  operationId: getNetworkApplianceConnectivityMonitoringDestinations
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/connectivityMonitoringDestinations
  method: put
  operationId: updateNetworkApplianceConnectivityMonitoringDestinations
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/contentFiltering
  method: get
  operationId: getNetworkApplianceContentFiltering
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/contentFiltering
  method: put
  operationId: updateNetworkApplianceContentFiltering
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/contentFiltering/categories
  method: get
  operationId: getNetworkApplianceContentFilteringCategories
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/devices/redundancy
  method: put
  operationId: updateNetworkApplianceDevicesRedundancy
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/devices/redundancy/swap
  method: post
  operationId: createNetworkApplianceDevicesRedundancySwap
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience:
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /networks/{networkId}/appliance/firewall/cellularFirewallRules
  method: get
  operationId: getNetworkApplianceFirewallCellularFirewallRules
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/firewall/cellularFirewallRules
  method: put
  operationId: updateNetworkApplianceFirewallCellularFirewallRules
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/firewall/firewalledServices
  method: get
  operationId: getNetworkApplianceFirewallFirewalledServices
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/firewall/firewalledServices/{service}
  method: get
  operationId: getNetworkApplianceFirewallFirewalledService
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/firewall/firewalledServices/{service}
  method: put
  operationId: updateNetworkApplianceFirewallFirewalledService
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/firewall/inboundCellularFirewallRules
  method: get
  operationId: getNetworkApplianceFirewallInboundCellularFirewallRules
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/firewall/inboundCellularFirewallRules
  method: put
  operationId: updateNetworkApplianceFirewallInboundCellularFirewallRules
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/firewall/inboundFirewallRules
  method: get
  operationId: getNetworkApplianceFirewallInboundFirewallRules
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/firewall/inboundFirewallRules
  method: put
  operationId: updateNetworkApplianceFirewallInboundFirewallRules
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/firewall/l3FirewallRules
  method: get
  operationId: getNetworkApplianceFirewallL3FirewallRules
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/firewall/l3FirewallRules
  method: put
  operationId: updateNetworkApplianceFirewallL3FirewallRules
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/firewall/l7FirewallRules
  method: get
  operationId: getNetworkApplianceFirewallL7FirewallRules
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/firewall/l7FirewallRules
  method: put
  operationId: updateNetworkApplianceFirewallL7FirewallRules
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/firewall/l7FirewallRules/applicationCategories
  method: get
  operationId: getNetworkApplianceFirewallL7FirewallRulesApplicationCategories
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/firewall/multicastForwarding
  method: put
  operationId: updateNetworkApplianceFirewallMulticastForwarding
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/firewall/oneToManyNatRules
  method: get
  operationId: getNetworkApplianceFirewallOneToManyNatRules
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/firewall/oneToManyNatRules
  method: put
  operationId: updateNetworkApplianceFirewallOneToManyNatRules
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/firewall/oneToOneNatRules
  method: get
  operationId: getNetworkApplianceFirewallOneToOneNatRules
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/firewall/oneToOneNatRules
  method: put
  operationId: updateNetworkApplianceFirewallOneToOneNatRules
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/firewall/portForwardingRules
  method: get
  operationId: getNetworkApplianceFirewallPortForwardingRules
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/firewall/portForwardingRules
  method: put
  operationId: updateNetworkApplianceFirewallPortForwardingRules
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/firewall/settings
  method: get
  operationId: getNetworkApplianceFirewallSettings
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/firewall/settings
  method: put
  operationId: updateNetworkApplianceFirewallSettings
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/interfaces/l3
  method: post
  operationId: createNetworkApplianceInterfacesL3
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/interfaces/l3/{interfaceId}
  method: put
  operationId: updateNetworkApplianceInterfacesL3
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/interfaces/l3/{interfaceId}
  method: delete
  operationId: deleteNetworkApplianceInterfacesL3
  x-agentic-access:
    action-class: acting
    consequence: destructive
    subject: required
    audience:
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /networks/{networkId}/appliance/ports
  method: get
  operationId: getNetworkAppliancePorts
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/ports/{portId}
  method: get
  operationId: getNetworkAppliancePort
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/ports/{portId}
  method: put
  operationId: updateNetworkAppliancePort
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/prefixes/delegated/statics
  method: get
  operationId: getNetworkAppliancePrefixesDelegatedStatics
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/prefixes/delegated/statics
  method: post
  operationId: createNetworkAppliancePrefixesDelegatedStatic
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/prefixes/delegated/statics/{staticDelegatedPrefixId}
  method: get
  operationId: getNetworkAppliancePrefixesDelegatedStatic
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/prefixes/delegated/statics/{staticDelegatedPrefixId}
  method: put
  operationId: updateNetworkAppliancePrefixesDelegatedStatic
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/prefixes/delegated/statics/{staticDelegatedPrefixId}
  method: delete
  operationId: deleteNetworkAppliancePrefixesDelegatedStatic
  x-agentic-access:
    action-class: acting
    consequence: destructive
    subject: required
    audience:
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /networks/{networkId}/appliance/rfProfiles
  method: get
  operationId: getNetworkApplianceRfProfiles
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/rfProfiles
  method: post
  operationId: createNetworkApplianceRfProfile
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/rfProfiles/{rfProfileId}
  method: put
  operationId: updateNetworkApplianceRfProfile
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/rfProfiles/{rfProfileId}
  method: delete
  operationId: deleteNetworkApplianceRfProfile
  x-agentic-access:
    action-class: acting
    consequence: destructive
    subject: required
    audience:
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /networks/{networkId}/appliance/rfProfiles/{rfProfileId}
  method: get
  operationId: getNetworkApplianceRfProfile
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/sdwan/internetPolicies
  method: put
  operationId: updateNetworkApplianceSdwanInternetPolicies
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/security/events
  method: get
  operationId: getNetworkApplianceSecurityEvents
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/security/intrusion
  method: get
  operationId: getNetworkApplianceSecurityIntrusion
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/security/intrusion
  method: put
  operationId: updateNetworkApplianceSecurityIntrusion
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/security/malware
  method: get
  operationId: getNetworkApplianceSecurityMalware
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/security/malware
  method: put
  operationId: updateNetworkApplianceSecurityMalware
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/settings
  method: get
  operationId: getNetworkApplianceSettings
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/settings
  method: put
  operationId: updateNetworkApplianceSettings
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/singleLan
  method: get
  operationId: getNetworkApplianceSingleLan
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/singleLan
  method: put
  operationId: updateNetworkApplianceSingleLan
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/ssids
  method: get
  operationId: getNetworkApplianceSsids
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/ssids/{number}
  method: get
  operationId: getNetworkApplianceSsid
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/ssids/{number}
  method: put
  operationId: updateNetworkApplianceSsid
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/staticRoutes
  method: get
  operationId: getNetworkApplianceStaticRoutes
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/staticRoutes
  method: post
  operationId: createNetworkApplianceStaticRoute
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/staticRoutes/{staticRouteId}
  method: get
  operationId: getNetworkApplianceStaticRoute
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/staticRoutes/{staticRouteId}
  method: put
  operationId: updateNetworkApplianceStaticRoute
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/staticRoutes/{staticRouteId}
  method: delete
  operationId: deleteNetworkApplianceStaticRoute
  x-agentic-access:
    action-class: acting
    consequence: destructive
    subject: required
    audience:
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /networks/{networkId}/appliance/trafficShaping
  method: get
  operationId: getNetworkApplianceTrafficShaping
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/trafficShaping
  method: put
  operationId: updateNetworkApplianceTrafficShaping
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/trafficShaping/customPerformanceClasses
  method: get
  operationId: getNetworkApplianceTrafficShapingCustomPerformanceClasses
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/trafficShaping/customPerformanceClasses
  method: post
  operationId: createNetworkApplianceTrafficShapingCustomPerformanceClass
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/trafficShaping/customPerformanceClasses/{customPerformanceClassId}
  method: get
  operationId: getNetworkApplianceTrafficShapingCustomPerformanceClass
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/trafficShaping/customPerformanceClasses/{customPerformanceClassId}
  method: put
  operationId: updateNetworkApplianceTrafficShapingCustomPerformanceClass
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/trafficShaping/customPerformanceClasses/{customPerformanceClassId}
  method: delete
  operationId: deleteNetworkApplianceTrafficShapingCustomPerformanceClass
  x-agentic-access:
    action-class: acting
    consequence: destructive
    subject: required
    audience:
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /networks/{networkId}/appliance/trafficShaping/rules
  method: put
  operationId: updateNetworkApplianceTrafficShapingRules
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/trafficShaping/rules
  method: get
  operationId: getNetworkApplianceTrafficShapingRules
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/trafficShaping/uplinkBandwidth
  method: get
  operationId: getNetworkApplianceTrafficShapingUplinkBandwidth
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/trafficShaping/uplinkBandwidth
  method: put
  operationId: updateNetworkApplianceTrafficShapingUplinkBandwidth
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /networks/{networkId}/appliance/trafficShaping/uplinkSelection
  method: get
  operationId: getNetworkApplianceTrafficShapingUplinkSelection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /networks/{networkId}/appliance/trafficShaping/uplinkSelection
  method: put
  operationId: updateNetworkApplianceTrafficShapingUplinkSelection
  x-agentic-access:
    action-class: acting
    consequence: physical
    subject: required
    audience:
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      tri

# --- truncated at 32 KB (310 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cisco-meraki/refs/heads/main/agentic-access/cisco-meraki-agentic-access.yml