Veeam Agentic Access
Veeam exposes 296 API operations that an AI agent could call, of which 160 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: 136 read, 145 write, 2 physical, and 13 safety-critical.
13 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.
By consequence
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.
| Method | Path | Consequence | Human-in-loop |
|---|---|---|---|
| POST | /api/v1/automation/sessions/{id}/stop | safety-critical | required |
| POST | /api/v1/backupInfrastructure/scaleOutRepositories/{id}/disableMaintenanceMode | safety-critical | required |
| POST | /api/v1/backupInfrastructure/scaleOutRepositories/{id}/disableSealedMode | safety-critical | required |
| POST | /api/v1/jobs/{id}/disable | safety-critical | required |
| POST | /api/v1/jobs/{id}/stop | safety-critical | required |
| POST | /api/v1/policies/{policyId}/disable | safety-critical | required |
| POST | /api/v1/policies/{policyId}/stop | safety-critical | required |
| POST | /api/v1/restore/instantRecovery/vmware/fcd/{mountId}/dismount | safety-critical | required |
| POST | /api/v1/restore/instantRecovery/vmware/vm/{mountId}/unmount | safety-critical | required |
| POST | /api/v1/sessions/{id}/stop | safety-critical | required |
| POST | /api/v1/sessions/{sessionId}/stop | safety-critical | required |
| POST | /api/v1/settings/retentionSettings/reset | safety-critical | required |
| POST | /api/v1/users/{userId}/disableMfa | safety-critical | required |
| POST | /api/v1/policies/orderPriorities | physical | conditional |
| POST | /api/v1/settings/emailNotifications/sendTestMessage | physical | conditional |
Source
Agentic Access
generated: '2026-07-15'
method: generated
source: openapi/veeam-backup-aws-openapi.yml, openapi/veeam-backup-replication-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: 296
by_action_class:
acting: 160
connected: 136
by_consequence:
write: 145
read: 136
safety-critical: 13
physical: 2
human_in_the_loop_required: 13
operations:
- path: /api/v1/test
method: post
operationId: Test
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/v1/accounts/standard
method: get
operationId: StandardAccountsGetAll
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/accounts/standard
method: post
operationId: AddStandardAccount
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/v1/accounts/standard/{standardAccountId}
method: get
operationId: StandardAccountsGetOneById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/accounts/standard/{standardAccountId}
method: put
operationId: UpdateStandardAccount
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/v1/accounts/standard/{standardAccountId}
method: delete
operationId: DeleteStandardAccount
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/v1/accounts/standard/validateName
method: post
operationId: ValidateStandardAccountName
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/v1/accounts/standard/export
method: post
operationId: ExportStandardAccounts
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/v1/accounts/amazon
method: get
operationId: AmazonAccountsGetAll
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/accounts/amazon
method: post
operationId: AddAmazonAccount
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/v1/accounts/amazon/validateName
method: post
operationId: ValidateAmazonAccountName
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/v1/accounts/amazon/{amazonAccountId}/validateDelete
method: post
operationId: ValidateDeleteAmazonAccount
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/v1/accounts/amazon/{amazonAccountId}
method: get
operationId: AmazonAccountsGetOneById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/accounts/amazon/{amazonAccountId}
method: put
operationId: UpdateAmazonAccount
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/v1/accounts/amazon/{amazonAccountId}
method: delete
operationId: DeleteAmazonAccount
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/v1/accounts/amazon/{amazonAccountId}/rescan
method: post
operationId: RescanAmazonAccount
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/v1/accounts/amazon/export
method: post
operationId: ExportAmazonAccounts
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/v1/cloudInfrastructure/tags
method: get
operationId: Tags
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/cloudInfrastructure/tags/{tagId}
method: get
operationId: Tag
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/virtualMachines
method: get
operationId: VirtualMachines
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/virtualMachines/{virtualMachineId}
method: get
operationId: VirtualMachineById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/virtualMachines/{virtualMachineId}/takeSnapshot
method: post
operationId: TakeSnapshot
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/v1/virtualMachines/{virtualMachineId}/deleteSnapshots
method: post
operationId: DeleteVirtualMachineSnapshots
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/v1/virtualMachines/{virtualMachineId}/deleteBackups
method: post
operationId: DeleteVirtualMachineBackups
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/v1/virtualMachines/export
method: post
operationId: ExportVirtualMachines
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/v1/cloudInfrastructure/buckets
method: get
operationId: Buckets
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/cloudInfrastructure/buckets/{bucketId}
method: get
operationId: BucketById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/cloudInfrastructure/buckets/rescan/{amazonAccountId}
method: post
operationId: RescanBucket
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/v1/cloudInfrastructure/buckets/{bucketId}/folders
method: get
operationId: GetBucketFolders
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/cloudInfrastructure/buckets/{bucketId}/folders/{folderName}
method: get
operationId: GetBucketFolder
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/cloudInfrastructure/regions
method: get
operationId: GetAllRegions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/cloudInfrastructure/regions/{regionId}
method: get
operationId: GetRegionById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/cloudInfrastructure/regions/{regionId}/zones
method: get
operationId: GetInnerRegions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/cloudInfrastructure/regions/{regionId}/instancesTypes
method: get
operationId: GetInstancesTypesByRegion
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/repositories
method: get
operationId: RepositoriesGetAll
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/repositories
method: post
operationId: CreateRepository
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/v1/repositories/{repositoryId}
method: get
operationId: RepositoriesGetOneById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/repositories/{repositoryId}
method: put
operationId: UpdateRepository
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/v1/repositories/{repositoryId}
method: delete
operationId: DeleteRepository
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/v1/repositories/{repositoryId}/rescan
method: post
operationId: RescanRepository
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/v1/repositories/settings/validate
method: post
operationId: RepositoryValidateSettings
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/v1/repositories/{repositoryId}/checkPassword
method: post
operationId: RepositoryPasswordIsCorrect
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/v1/repositories/export
method: post
operationId: ExportRepositories
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/v1/policies
method: get
operationId: PoliciesGetAll
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/policies
method: post
operationId: CreatePolicy
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/v1/policies/{policyId}
method: get
operationId: PoliciesGetOneById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/policies/{policyId}
method: put
operationId: UpdatePolicy
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/v1/policies/{policyId}
method: delete
operationId: DeletePolicy
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/v1/policies/{policyId}/selectedItems
method: get
operationId: PoliciesGetSelectedItemsById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/policies/{policyId}/regions
method: get
operationId: PoliciesGetRegionsById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/policies/{policyId}/excludedItems
method: get
operationId: PoliciesGetExcludedItemsById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/policies/{policyId}/enable
method: post
operationId: EnablePolicy
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/v1/policies/{policyId}/disable
method: post
operationId: DisablePolicy
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/v1/policies/{policyId}/start
method: post
operationId: StartPolicy
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/v1/policies/{policyId}/stop
method: post
operationId: StopPolicy
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/v1/policies/{policyId}/export
method: get
operationId: ExportPolicy
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/policies/import
method: post
operationId: ImportPolicy
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/v1/policies/validate
method: post
operationId: Validate
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/v1/policies/orderPriorities
method: post
operationId: PolicyOrderPriorityOfPolicies
x-agentic-access:
action-class: acting
consequence: physical
subject: required
audience: null
token:
max-ttl: 300
exchange: true
purpose-required: true
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/v1/policies/export
method: post
operationId: ExportPolicies
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/v1/policies/{policyId}/cost
method: get
operationId: GetPolicyCost
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/costEstimation
method: post
operationId: GetCostEstimation
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/v1/costEstimation/export
method: post
operationId: ExportCostEstimation
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/v1/sessions
method: get
operationId: GetSessions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/sessions/{retentionSessionId}/deletedItems
method: get
operationId: GetRetentionSessionDeletedRestorePoints
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/sessions/{backupSessionId}/protectedItems
method: get
operationId: GetBackupSessionProtectedItems
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/sessions/{restoreSessionId}/restoredItems
method: get
operationId: GetRestoreSessionRestoredItems
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/sessions/{sessionId}
method: get
operationId: GetSessionById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/sessions/{sessionId}/log
method: get
operationId: GetSessionLog
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/sessions/{sessionId}/stop
method: post
operationId: StopJob
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/v1/sessions/export
method: post
operationId: ExportSessions
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/v1/amazonConnections
method: get
operationId: GetAllAmazonConnections
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/amazonConnections
method: post
operationId: CreateAmazonConnection
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/v1/amazonConnections/{amazonConnectionId}
method: get
operationId: GetAmazonConnectionById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/amazonConnections/{amazonConnectionId}
method: delete
operationId: DeleteAmazonConnection
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/v1/amazonConnections/{amazonConnectionId}/cloudNetworks
method: get
operationId: BrowseCloudNetworks
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/amazonConnections/{amazonConnectionId}/cloudSubnetworks
method: get
operationId: BrowseCloudSubnetworks
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/amazonConnections/{amazonConnectionId}/cloudSecurityGroups
method: get
operationId: BrowseCloudSecurityGroups
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/amazonConnections/{amazonConnectionId}/availabilityZones
method: get
operationId: BrowseAvailabilityZones
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/amazonConnections/{amazonConnectionId}/validateS3endpoint
method: get
operationId: ValidateS3Endpoint
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/amazonConnections/{amazonConnectionId}/cloudEncryptionKeys
method: get
operationId: BrowseEncryptionKeys
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/amazonConnections/{amazonConnectionId}/browseBucketFolders/{bucketId}
method: get
operationId: BrowseBucketFolders
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/vmRestorePoints
method: get
operationId: RestorePointsGetAll
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/vmRestorePoints/{vmRestorePointId}
method: get
operationId: RestorePointsGetOneById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/vmRestorePoints/{vmRestorePointId}/restoreDisk
method: post
operationId: RestoreDisk
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/v1/vmRestorePoints/{vmRestorePointId}/validateRestoreDisk
method: post
operationId: ValidateRestoreDisk
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/v1/vmRestorePoints/{vmRestorePointId}/restoreVm
method: post
operationId: RestoreVm
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/v1/vmRestorePoints/{vmRestorePointId}/validateRestoreVm
method: post
operationId: ValidateRestoreVm
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/v1/vmRestorePoints/{vmRestorePointId}/restoreFile
method: post
operationId: startFlr
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/v1/vmRestorePoints/{vmRestorePointId}/defaultNetworkSettings
method: get
operationId: VmRestorePointsGetDefaultNetworkSettings
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/users
method: get
operationId: UsersGetAll
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/users
method: post
operationId: CreateUser
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/v1/users/{userId}
method: get
operationId: UsersGetByName
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/users/{userId}
method: put
operationId: UpdateUser
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/v1/users/{userId}
method: delete
operationId: DeleteUser
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/v1/users/validateName
method: post
operationId: ValidateName
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/v1/users/validateDescription
method: post
operationId: ValidateDescription
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/v1/users/validatePassword
method: post
operationId: ValidatePassword
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/v1/users/{userId}/enableMfa
method: post
operationId: EnableMfa
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/v1/users/{userId}/disableMfa
method: post
operationId: DisableMfa
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/v1/users/{userId}/acceptMfa
method: post
operationId: AcceptMfa
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/v1/users/isFirstLogin
method: get
operationId: IsFirstLogin
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/users/checkInstanceId
method: post
operationId: CheckInstance
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/v1/users/createDefaultUser
method: post
operationId: CreateDefaultUser
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/v1/users/export
method: post
operationId: ExportUsers
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/v1/settings/serviceAccount
method:
# --- truncated at 32 KB (88 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/veeam/refs/heads/main/agentic-access/veeam-agentic-access.yml