Snow Software · Agentic Access

Snow Software Agentic Access

x-agentic-access generated

Snow Software exposes 130 API operations that an AI agent could call, of which 40 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: 90 read, 39 write, and 1 safety-critical.

1 operation 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.

Cloud License ManagementFinOpsIT Asset ManagementSaaS ManagementSoftware Asset Management
Operations: 130 Acting: 40 Human-in-the-loop: 1 Method: generated

By consequence

read 90 write 39 safety-critical 1

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
PATCH /api/sam/estate/v1/computers/patch-auto-editing/{id} safety-critical required

Source

Agentic Access

Raw ↑
generated: '2026-07-15'
method: generated
source: openapi/snow-software-computers-openapi.json, openapi/snow-software-licenses-openapi.yml,
  openapi/snow-software-saas-applications-openapi.yml, openapi/snow-software-saas-subscriptions-openapi.yml
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: 130
  by_action_class:
    acting: 40
    connected: 90
  by_consequence:
    write: 39
    read: 90
    safety-critical: 1
  human_in_the_loop_required: 1
operations:
- path: /api/sam/estate/v1/computers/bulk-update
  method: patch
  operationId: BulkUpdateComputerStatus
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/estate/v1/computers-metering
  method: get
  operationId: getApplicationMetering
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers/{id}/metering
  method: get
  operationId: getComputerApplicationMetering
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers/{id}/applications
  method: get
  operationId: getComputerApplications
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers/{id}/applications/{applicationid}
  method: get
  operationId: getComputerApplicationDetails
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers-applications
  method: get
  operationId: getComputersApplications
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers-application-usage
  method: get
  operationId: getApplicationUsages
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers-application-user-usage
  method: get
  operationId: getApplicationUserUsage
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers-application-usage/summaries
  method: get
  operationId: getApplicationUsageSummary
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers/{id}/contracts
  method: get
  operationId: getComputerContracts
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers/{id}/costs
  method: get
  operationId: getComputerCosts
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers/{id}/hardware/displayadapters
  method: get
  operationId: getComputerDisplayAdapters
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers/{id}/hardware/harddrives
  method: get
  operationId: getComputerDrives
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers/{id}/hardware/opticaldrives
  method: get
  operationId: getComputerOpticalDrives
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers/{id}/hardware
  method: get
  operationId: getComputerHardwareDetails
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers/{id}/hardware/disks/logical
  method: get
  operationId: getComputerLogicalDisks
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers/{id}/logonhistory
  method: get
  operationId: getComputerLogonHistory
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers-logonhistory/{userid}
  method: get
  operationId: getComputerLogonHistoryForUser
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers/{id}/logonhistory/{userid}
  method: get
  operationId: getComputerLogonHistoryDetails
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers/{id}/hardware/monitors
  method: get
  operationId: getComputerMonitors
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers/{id}/hardware/networkadapters
  method: get
  operationId: getComputerNetworkAdapters
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers-networkadapters
  method: get
  operationId: getAllNetworkAdapters
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers/{id}/hardware/cpu
  method: get
  operationId: getComputerProcessors
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers/{id}/hardware/cpu/socketmap
  method: get
  operationId: getComputerSocketMapDetails
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers/{id}/registry
  method: get
  operationId: getComputerRegistries
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers/{id}/remote-clients
  method: get
  operationId: getComputerRemoteClients
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers/{id}
  method: get
  operationId: getComputer
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers/{id}
  method: delete
  operationId: deleteComputer
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.computer.d
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/estate/v1/computers/{id}
  method: put
  operationId: updateComputer
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.computer.u
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/estate/v1/computers
  method: get
  operationId: getComputers
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers/{id}/archive
  method: patch
  operationId: archiveComputer
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.computer.u
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/estate/v1/computers/patch-auto-editing/{id}
  method: patch
  operationId: updateComputer
  x-agentic-access:
    action-class: acting
    consequence: safety-critical
    subject: required
    audience: null
    token:
      max-ttl: 120
      exchange: true
      purpose-required: true
      proof-of-possession: true
    escalation:
      human-in-the-loop: required
    audit: required
- path: /api/sam/estate/v1/computers/patch-organization-assigment/{id}
  method: patch
  operationId: updateComputer
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.computer.u
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/estate/v1/computers/{id}/virtual-machines
  method: get
  operationId: getComputerVirtualMachines
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers/{id}/environment-variables
  method: get
  operationId: getEnvironmentVariablesForComputer
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/estate/v1/computers-environment-variables
  method: get
  operationId: getComputerEnvironmentVariables
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.computer.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/{id}/upgrades
  method: get
  operationId: getLicenseUpgradeCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/{id}/upgrades/{upgradedLicenseId}
  method: get
  operationId: getLicenseUpgradeDetails
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/transfers/{applicationId}/computers
  method: get
  operationId: getComputerTransferCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/transfers/{applicationId}/computers/{computerId}
  method: get
  operationId: getComputerTransferDetailsCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/transfers/{applicationId}/custom-values
  method: get
  operationId: getCustomValueTransferCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/transfers/{applicationId}/custom-values/{customId}
  method: get
  operationId: getCustomValueTransferDetailsCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/transfers/{applicationId}
  method: get
  operationId: getLicenseTransferCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/transfers/{applicationId}/users
  method: get
  operationId: getUserTransferCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/transfers/{applicationId}/users/{userId}
  method: get
  operationId: getUserTransferDetailsCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/tracking-computers/{computerId}
  method: get
  operationId: getApplicationsComputerTrackingCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/tracking/{applicationId}/computers
  method: get
  operationId: getComputerTrackingCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/tracking/{applicationId}/computers/{computerId}
  method: get
  operationId: getComputerTrackingDetailsCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/tracking/{applicationId}
  method: get
  operationId: getSiteAssignment
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/tracking/{applicationId}/users
  method: get
  operationId: getUserTrackingCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/tracking/{applicationId}/users/{userId}
  method: get
  operationId: getUserTrackingDetailsCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses-policies/{policyId}/fields
  method: get
  operationId: getLicensePolicyFieldCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses-policies/{policyId}/fields/{fieldId}
  method: get
  operationId: getLicensePolicyField
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses-policies
  method: get
  operationId: getPolicyCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses-policies/{policyId}
  method: get
  operationId: getPolicy
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/maintenance-periods
  method: get
  operationId: getLicenseMaintenanceAndSupportPeriods
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/{id}/maintenance-periods
  method: get
  operationId: getLicenseMaintenanceAndSupportPeriodsByLicenseId
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/{id}/maintenance-periods
  method: post
  operationId: addMaintenanceAndSupportPeriod
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.license.crud
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/v1/licenses/{id}/maintenance-periods
  method: put
  operationId: replaceMaintenanceAndSupportPeriods
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.license.crud
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/v1/licenses/{id}/maintenance-periods
  method: delete
  operationId: deleteMaintenanceAndSupportPeriods
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.license.crud
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/v1/licenses/{id}/maintenance-periods/{periodId}
  method: put
  operationId: replaceMaintenanceAndSupportPeriod
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.license.crud
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/v1/licenses/{id}/maintenance-periods/{periodId}
  method: delete
  operationId: deleteMaintenancePeriod
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.license.crud
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/v1/licenses
  method: get
  operationId: getLicenseCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses
  method: post
  operationId: addLicense
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.license.crud
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/v1/licenses/{id}
  method: get
  operationId: getLicenseById
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/{id}
  method: put
  operationId: replaceLicense
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.license.crud
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/v1/licenses/{id}
  method: delete
  operationId: deleteLicense
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.license.crud
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/v1/licenses/bulk-update
  method: post
  operationId: bulkUpdateLicenses
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.license.crud
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/v1/licenses-entitlements
  method: get
  operationId: getLicenseEntitlementCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/entitlements/computers
  method: get
  operationId: getComputerApplicationEntitlementCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/entitlements/entitlement-states
  method: get
  operationId: getEntitlementStateCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/entitlements/users
  method: get
  operationId: getUserApplicationEntitlementCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses-extended-coverage-types
  method: get
  operationId: getExtendedCoverageTypeCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/extended-coverage
  method: get
  operationId: getLicenseExtendedCoverageCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/extended-coverage/{coverageId}
  method: get
  operationId: getLicenseExtendedCoverageDetails
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/{id}/costs
  method: get
  operationId: getLicenseCostCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/{id}/costs/{organizationId}
  method: get
  operationId: getLicenseCost
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/{id}/costs-summary
  method: get
  operationId: getLicenseCostSummary
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/compliance/summary/{applicationId}/allocation
  method: get
  operationId: getAllocationSummaryCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/compliance/summary/{applicationId}
  method: get
  operationId: getComplianceSummaryCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/compliance/summary/{applicationId}/usage
  method: get
  operationId: getComplianceSummaryUsageCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/assignment-types
  method: get
  operationId: getAssignmentTypesCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/{id}/assignments/computers
  method: get
  operationId: getComputerAssignmentCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/{id}/assignments/computers
  method: post
  operationId: addComputerAssignment
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.license.crud
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/v1/licenses/{id}/assignments/computers
  method: put
  operationId: replaceComputerAssignmentCollection
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.license.crud
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/v1/licenses/{id}/assignments/computers
  method: delete
  operationId: deleteComputerAssignmentCollection
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.license.crud
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/v1/licenses/{id}/assignments/computers/{assignmentId}
  method: get
  operationId: getComputerAssignment
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/{id}/assignments/computers/{assignmentId}
  method: put
  operationId: replaceComputerAssignment
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.license.crud
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/v1/licenses/{id}/assignments/computers/{assignmentId}
  method: delete
  operationId: deleteComputerAssignment
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.license.crud
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/v1/licenses/{id}/assignments/datacenters
  method: get
  operationId: getDatacenterAssignmentCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/{id}/assignments/datacenters
  method: post
  operationId: addDatacenterAssignment
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.license.crud
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/v1/licenses/{id}/assignments/datacenters
  method: put
  operationId: replaceDataCenterAssignmentCollection
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.license.crud
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/v1/licenses/{id}/assignments/datacenters
  method: delete
  operationId: deleteDataCenterAssignmentCollection
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.license.crud
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/v1/licenses/{id}/assignments/datacenters/{assignmentId}
  method: get
  operationId: getDatacenterAssignment
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/{id}/assignments/datacenters/{assignmentId}
  method: put
  operationId: replaceDatacenterAssignment
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.license.crud
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/v1/licenses/{id}/assignments/datacenters/{assignmentId}
  method: delete
  operationId: deleteDatacenterAssignment
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.license.crud
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/v1/licenses/{id}/assignments-summary
  method: get
  operationId: getLicenseAssignmentDetails
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/{id}/assignments/organizations
  method: get
  operationId: getOrganizationAssignmentCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    scope:
    - sam.license.r
    token:
      max-ttl: 3600
    audit: none
- path: /api/sam/v1/licenses/{id}/assignments/organizations
  method: post
  operationId: addOrganizationAssignment
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.license.crud
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/v1/licenses/{id}/assignments/organizations
  method: put
  operationId: replaceOrganizationAssignmentCollection
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.license.crud
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop: conditional
      triggers:
      - abnormal
      - high-value
    audit: required
- path: /api/sam/v1/licenses/{id}/assignments/organizations
  method: delete
  operationId: deleteOrganizationAssignmentCollection
  x-agentic-access:
    action-class: acting
    consequence: write
    subject: required
    scope:
    - sam.license.crud
    audience: null
    token:
      max-ttl: 900
    escalation:
      human-in-the-loop

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