generated: '2026-07-15' method: generated source: openapi/azure-devops-artifacts-api-openapi.yml, openapi/azure-devops-builds-api-openapi.yml, openapi/azure-devops-git-api-openapi.yml, openapi/azure-devops-pipelines-api-openapi.yml, openapi/azure-devops-releases-api-openapi.yml, openapi/azure-devops-service-hooks-api-openapi.yml, openapi/azure-devops-test-plans-api-openapi.yml, openapi/azure-devops-wiki-api-openapi.yml, openapi/azure-devops-work-items-api-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: 93 by_action_class: connected: 50 acting: 43 by_consequence: read: 50 write: 42 physical: 1 human_in_the_loop_required: 0 operations: - path: /packaging/feeds method: get operationId: feeds_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /packaging/feeds method: post operationId: feeds_create 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: /packaging/feeds/{feedId} method: get operationId: feeds_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /packaging/feeds/{feedId} method: patch operationId: feeds_update 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: /packaging/feeds/{feedId} method: delete operationId: feeds_delete 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: /packaging/feeds/{feedId}/packages method: get operationId: packages_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /packaging/feeds/{feedId}/packages/{packageId} method: get operationId: packages_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /packaging/feeds/{feedId}/packages/{packageId}/versions/{packageVersionId} method: delete operationId: packageVersions_delete 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: /build/builds method: get operationId: builds_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /build/builds method: post operationId: builds_queue 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: /build/builds/{buildId} method: get operationId: builds_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /build/builds/{buildId} method: delete operationId: builds_delete 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: /build/builds/{buildId}/logs method: get operationId: builds_getLogs x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /build/builds/{buildId}/timeline method: get operationId: builds_getTimeline x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /build/builds/{buildId}/artifacts method: get operationId: builds_listArtifacts x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /build/definitions method: get operationId: definitions_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /build/definitions method: post operationId: definitions_create 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: /build/definitions/{definitionId} method: get operationId: definitions_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /build/definitions/{definitionId} method: put operationId: definitions_update 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: /build/definitions/{definitionId} method: delete operationId: definitions_delete 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: /git/repositories method: get operationId: repositories_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /git/repositories method: post operationId: repositories_create 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: /git/repositories/{repositoryId} method: get operationId: repositories_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /git/repositories/{repositoryId} method: patch operationId: repositories_update 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: /git/repositories/{repositoryId} method: delete operationId: repositories_delete 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: /git/repositories/{repositoryId}/refs method: get operationId: refs_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /git/repositories/{repositoryId}/commits method: get operationId: commits_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /git/repositories/{repositoryId}/items method: get operationId: items_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /git/repositories/{repositoryId}/pullrequests method: get operationId: pullRequests_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /git/repositories/{repositoryId}/pullrequests method: post operationId: pullRequests_create 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: /git/repositories/{repositoryId}/pullrequests/{pullRequestId} method: get operationId: pullRequests_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /git/repositories/{repositoryId}/pullrequests/{pullRequestId} method: patch operationId: pullRequests_update 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: /git/repositories/{repositoryId}/pullrequests/{pullRequestId}/threads method: get operationId: pullRequests_listThreads x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /git/repositories/{repositoryId}/pullrequests/{pullRequestId}/threads method: post operationId: pullRequests_addComment 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: /git/repositories/{repositoryId}/pushes method: get operationId: pushes_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /git/repositories/{repositoryId}/pushes method: post operationId: pushes_create 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: /pipelines method: get operationId: pipelines_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /pipelines method: post operationId: pipelines_create 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: /pipelines/{pipelineId} method: get operationId: pipelines_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /pipelines/{pipelineId}/runs method: get operationId: runs_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /pipelines/{pipelineId}/runs method: post operationId: runs_run 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: /pipelines/{pipelineId}/runs/{runId} method: get operationId: runs_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /pipelines/{pipelineId}/runs/{runId}/artifacts method: get operationId: artifacts_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /release/releases method: get operationId: releases_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /release/releases method: post operationId: releases_create 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: /release/releases/{releaseId} method: get operationId: releases_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /release/releases/{releaseId} method: put operationId: releases_update 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: /release/definitions method: get operationId: releaseDefinitions_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /release/definitions method: post operationId: releaseDefinitions_create 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: /release/definitions/{definitionId} method: get operationId: releaseDefinitions_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /release/definitions/{definitionId} method: put operationId: releaseDefinitions_update 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: /release/definitions/{definitionId} method: delete operationId: releaseDefinitions_delete 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: /release/deployments method: get operationId: deployments_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /hooks/subscriptions method: get operationId: subscriptions_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /hooks/subscriptions method: post operationId: subscriptions_create 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: /hooks/subscriptions/{subscriptionId} method: get operationId: subscriptions_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /hooks/subscriptions/{subscriptionId} method: patch operationId: subscriptions_update 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: /hooks/subscriptions/{subscriptionId} method: delete operationId: subscriptions_delete 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: /hooks/publishers method: get operationId: publishers_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /hooks/publishers/{publisherId}/eventTypes method: get operationId: publishers_listEventTypes x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /hooks/consumers method: get operationId: consumers_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /hooks/testnotifications method: post operationId: notifications_sendTest 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: /testplan/plans method: get operationId: testPlans_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /testplan/plans method: post operationId: testPlans_create 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: /testplan/plans/{planId} method: get operationId: testPlans_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /testplan/plans/{planId} method: patch operationId: testPlans_update 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: /testplan/plans/{planId} method: delete operationId: testPlans_delete 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: /testplan/plans/{planId}/suites method: get operationId: testSuites_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /testplan/plans/{planId}/suites method: post operationId: testSuites_create 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: /testplan/plans/{planId}/suites/{suiteId} method: get operationId: testSuites_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /testplan/plans/{planId}/suites/{suiteId}/testcases method: get operationId: testCases_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /testplan/plans/{planId}/suites/{suiteId}/testcases method: post operationId: testCases_add 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: /wiki/wikis method: get operationId: wikis_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wiki/wikis method: post operationId: wikis_create 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: /wiki/wikis/{wikiIdentifier} method: get operationId: wikis_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wiki/wikis/{wikiIdentifier} method: patch operationId: wikis_update 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: /wiki/wikis/{wikiIdentifier} method: delete operationId: wikis_delete 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: /wiki/wikis/{wikiIdentifier}/pages method: get operationId: pages_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wiki/wikis/{wikiIdentifier}/pages method: put operationId: pages_createOrUpdate 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: /wiki/wikis/{wikiIdentifier}/pages method: delete operationId: pages_delete 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: /wit/workitems method: get operationId: workItems_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wit/workitems/{type} method: post operationId: workItems_create 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: /wit/workitems/{id} method: get operationId: workItems_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wit/workitems/{id} method: patch operationId: workItems_update 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: /wit/workitems/{id} method: delete operationId: workItems_delete 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: /wit/wiql method: post operationId: workItems_queryByWiql 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: /wit/workitemtypes method: get operationId: workItemTypes_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wit/workitemtypes/{type} method: get operationId: workItemTypes_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wit/fields method: get operationId: fields_list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wit/workitems/{id}/comments method: get operationId: workItems_listComments x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wit/workitems/{id}/comments method: post operationId: workItems_addComment 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: /wit/attachments/{id} method: get operationId: attachments_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /wit/attachments method: post operationId: attachments_upload 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