generated: '2026-07-15' method: generated source: openapi/ampersand-api-openapi-original.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: 81 by_action_class: acting: 44 connected: 37 by_consequence: write: 42 read: 37 safety-critical: 1 physical: 1 human_in_the_loop_required: 1 operations: - path: /oauth-connect method: post operationId: oauthConnect 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: /projects/{projectIdOrName}/connections/{connectionId}:oauth-update method: patch operationId: oauthUpdate 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: /projects method: get operationId: listProjects x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects method: post operationId: createProject 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: /projects/{projectIdOrName} method: get operationId: getProject x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName} method: patch operationId: updateProject 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: /projects/{projectIdOrName}/provider-apps method: get operationId: listProviderApps x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/provider-apps method: post operationId: createProviderApp 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: /projects/{projectIdOrName}/provider-apps/{providerAppId} method: delete operationId: deleteProviderApp 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: /projects/{projectIdOrName}/provider-apps/{providerAppId} method: patch operationId: updateProviderApp 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: /projects/{projectIdOrName}/integrations method: get operationId: listIntegrations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/integrations method: post operationId: createIntegration 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: /projects/{projectIdOrName}/integrations/{integrationIdOrName} method: get operationId: getIntegration x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/integrations/{integrationId} method: delete operationId: deleteIntegration 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: /projects/{projectIdOrName}/integrations:batch method: put operationId: batchUpsertIntegrations 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: /projects/{projectIdOrName}/integrations/{integrationId}/revisions method: post operationId: createRevision 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: /projects/{projectIdOrName}/integrations/{integrationId}/revisions/{revisionId}:hydrate method: get operationId: getHydratedRevision x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/integrations/{integrationId}/installations method: get operationId: listInstallations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/integrations/{integrationId}/installations method: post operationId: createInstallation 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: /projects/{projectIdOrName}/integrations/{integrationId}/installations/{installationId} method: get operationId: getInstallation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/integrations/{integrationId}/installations/{installationId} method: delete operationId: deleteInstallation 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: /projects/{projectIdOrName}/integrations/{integrationId}/installations/{installationId} method: patch operationId: updateInstallation 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: /projects/{projectIdOrName}/integrations/{integrationId}/objects/{objectName}/config-content method: patch operationId: patchObjectConfigContent 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: /projects/{projectIdOrName}/integrations/{integrationId}/objects/{objectName}/metadata method: get operationId: getObjectMetadataForInstallation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/installations method: get operationId: listInstallationsForProject x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/providers/{provider}/objects/{objectName}/metadata method: get operationId: getObjectMetadataForConnection x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/integrations/{integrationId}/object-metadata method: put operationId: upsertMetadataForInstallation 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: /projects/{projectIdOrName}/providers/{provider}/object-metadata method: put operationId: upsertMetadataForConnection 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: /projects/{projectIdOrName}/integrations/{integrationId}/installations/{installationId}/operations method: get operationId: listOperations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/integrations/{integrationId}/installations/{installationId}/objects/{objectName}/backfill-progress method: get operationId: getBackfillProgress x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/operations/{operationId} method: get operationId: getOperation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/operations/{operationId}/logs method: get operationId: listOperationLogs x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /providers method: get operationId: listProviders x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /providers/{provider} method: get operationId: getProvider x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/api-keys method: get operationId: listApiKeys x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/api-keys method: post operationId: createApiKey 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: /projects/{projectIdOrName}/api-keys/{apiKey} method: get operationId: getApiKey x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/api-keys/{apiKey} method: delete operationId: deleteApiKey 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: /projects/{projectIdOrName}/api-keys/{apiKey} method: patch operationId: updateApiKey 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: /projects/{projectIdOrName}/connections method: get operationId: listConnections x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/connections:generate method: post operationId: generateConnection 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: /projects/{projectIdOrName}/connections/{connectionId} method: get operationId: getConnection x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/connections/{connectionId} method: patch operationId: updateConnection 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: /projects/{projectIdOrName}/connections/{connectionId} method: delete operationId: deleteConnection 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: /projects/{projectIdOrName}/destinations method: post operationId: createDestination 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: /projects/{projectIdOrName}/destinations method: get operationId: listDestinations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/destinations/{destination} method: get operationId: getDestination x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/destinations/{destination} method: patch operationId: updateDestination 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: /projects/{projectIdOrName}/destinations/{destination} method: delete operationId: deleteDestination 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: /generate-upload-url method: get operationId: generateUploadUrl x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /orgs method: post operationId: createOrg 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: /orgs/{orgId} method: get operationId: getOrg x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /orgs/{orgId} method: patch operationId: updateOrg 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: /orgs/{orgId}/builders method: get operationId: listOrgBuilders x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /orgs/{orgId}/invites method: post operationId: createOrgInvite 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: /orgs/{orgId}/invites method: get operationId: listOrgInvites x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /orgs/{orgId}/invites/{inviteId} method: get operationId: getOrgInvite x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /orgs/{orgId}/invites/{inviteId} method: delete operationId: deleteOrgInvite 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: /orgs/{orgId}/memberships method: post operationId: addUserToOrg 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: /my-info method: get operationId: getMyInfo x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /invites:accept method: post operationId: acceptInvite 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: /orgs/{orgId}/billingAccount method: get operationId: getOrgBillingAccount x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /billingAccounts/{billingAccountId}/portalSession method: post operationId: createBillingAccountSession 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: /projects/{projectIdOrName}/topics method: post operationId: createTopic 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: /projects/{projectIdOrName}/topics method: get operationId: listTopics x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/topics/{topicId} method: patch operationId: updateTopic 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: /projects/{projectIdOrName}/topics/{topicId} method: delete operationId: deleteTopic 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: /projects/{projectIdOrName}/notification-event-topic-routes method: post operationId: createEventTopicRoute 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: /projects/{projectIdOrName}/notification-event-topic-routes method: get operationId: listEventTopicRoutes x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/notification-event-topic-routes/{routeId} method: delete operationId: deleteEventTopicRoute 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: /projects/{projectIdOrName}/topic-destination-routes method: post operationId: createTopicDestinationRoute 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: /projects/{projectIdOrName}/topic-destination-routes method: get operationId: listTopicDestinationRoutes x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/topic-destination-routes/{routeId} method: delete operationId: deleteTopicDestinationRoute 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: /projects/{projectIdOrName}/jwt-keys method: post operationId: createJWTKey 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: /projects/{projectIdOrName}/jwt-keys method: get operationId: listJWTKeys x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/jwt-keys/{keyId} method: get operationId: getJWTKey x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /projects/{projectIdOrName}/jwt-keys/{keyId} method: patch operationId: updateJWTKey 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: /projects/{projectIdOrName}/jwt-keys/{keyId} method: delete operationId: deleteJWTKey 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: /claimed-domains method: get operationId: checkClaimedDomain x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /claimed-domains method: post operationId: claimDomain 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: /orgs/{orgId}/claimed-domains method: get operationId: listOrgClaimedDomains x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none