Permit.io Agentic Access
Permit.io exposes 258 API operations that an AI agent could call, of which 146 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: 112 read, 137 write, 6 physical, and 3 safety-critical.
3 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 |
|---|---|---|---|
| PUT | /v2/pdps/{proj_id}/{env_id}/configs/{pdp_id}/debug-audit-logs/disable | safety-critical | required |
| PUT | /v2/projects/{proj_id}/repos/disable | safety-critical | required |
| DELETE | /v2/projects/{proj_id}/{env_id}/opal_scope | safety-critical | required |
| POST | /v2/facts/{proj_id}/{env_id}/email_configurations/send_test_email | physical | conditional |
| POST | /v2/facts/{proj_id}/{env_id}/email_templates/{template_type}/send_test_email | physical | conditional |
| POST | /v2/facts/{proj_id}/{env_id}/relationship_tuples | physical | conditional |
| DELETE | /v2/facts/{proj_id}/{env_id}/relationship_tuples | physical | conditional |
| POST | /v2/facts/{proj_id}/{env_id}/relationship_tuples/bulk | physical | conditional |
| DELETE | /v2/facts/{proj_id}/{env_id}/relationship_tuples/bulk | physical | conditional |
Source
Agentic Access
generated: '2026-07-15'
method: generated
source: openapi/permit-io-openapi.json
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: 258
by_action_class:
connected: 112
acting: 146
by_consequence:
read: 112
write: 137
physical: 6
safety-critical: 3
human_in_the_loop_required: 3
operations:
- path: /v2/members/me
method: get
operationId: get_authenticated_member
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/members
method: get
operationId: list_organization_members
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/members
method: post
operationId: create_organization_members
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: /v2/members
method: delete
operationId: delete_organization_permissions
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: /v2/members/{member_id}
method: get
operationId: get_organization_member
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/members/{member_id}
method: delete
operationId: delete_organization_member
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: /v2/members/{member_id}
method: patch
operationId: update_organization_member
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: /v2/api-key/{proj_id}/{env_id}
method: get
operationId: get_environment_api_key
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/api-key/scope
method: get
operationId: get_api_key_scope
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/api-key
method: get
operationId: list_api_keys
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/api-key
method: post
operationId: create_api_key
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: /v2/api-key/{api_key_id}
method: get
operationId: get_api_key
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/api-key/{api_key_id}
method: delete
operationId: delete_api_key
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: /v2/api-key/{api_key_id}/rotate-secret
method: post
operationId: rotate_api_key
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: /v2/orgs
method: get
operationId: list_organizations
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/orgs
method: post
operationId: create_organization
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: /v2/orgs/{org_id}
method: get
operationId: get_organization
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/orgs/{org_id}
method: delete
operationId: delete_organization
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: /v2/orgs/{org_id}
method: patch
operationId: update_organization
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: /v2/orgs/active/org
method: get
operationId: get_active_organization
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/orgs/{org_id}/stats
method: get
operationId: stats_organization
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/orgs/{org_id}/invites
method: get
operationId: list_organization_invites
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/orgs/{org_id}/invites
method: post
operationId: invite_members_to_organization
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: /v2/orgs/{org_id}/invites/{invite_id}
method: delete
operationId: cancel_invite
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: /v2/projects
method: get
operationId: list_projects
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/projects
method: post
operationId: create_project
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: /v2/projects/{proj_id}
method: get
operationId: get_project
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/projects/{proj_id}
method: delete
operationId: delete_project
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: /v2/projects/{proj_id}
method: patch
operationId: update_project
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: /v2/projects/{proj_id}/envs/{env_id}/stats
method: get
operationId: stats_environments
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/projects/{proj_id}/envs
method: get
operationId: list_environments
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/projects/{proj_id}/envs
method: post
operationId: create_environment
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: /v2/projects/{proj_id}/envs/{env_id}
method: get
operationId: get_environment
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/projects/{proj_id}/envs/{env_id}
method: delete
operationId: delete_environment
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: /v2/projects/{proj_id}/envs/{env_id}
method: patch
operationId: update_environment
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: /v2/projects/{proj_id}/envs/{env_id}/copy
method: post
operationId: copy_environment
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: /v2/projects/{proj_id}/envs/{env_id}/copy/async
method: post
operationId: copy_environment_async
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: /v2/projects/{proj_id}/envs/{env_id}/copy/async/{task_id}/result
method: get
operationId: get_copy_environment_async_result
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/projects/{proj_id}/envs/{env_id}/test_jwks
method: post
operationId: test_jwks_by_url
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: /v2/schema/{proj_id}/{env_id}/bulk/roles
method: put
operationId: bulk_create_or_replace_roles
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: /v2/schema/{proj_id}/{env_id}/condition_sets
method: get
operationId: list_condition_sets
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/condition_sets
method: post
operationId: create_condition_set
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: /v2/schema/{proj_id}/{env_id}/condition_sets/{condition_set_id}
method: get
operationId: get_condition_set
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/condition_sets/{condition_set_id}
method: delete
operationId: delete_condition_set
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: /v2/schema/{proj_id}/{env_id}/condition_sets/{condition_set_id}
method: patch
operationId: update_condition_set
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: /v2/schema/{proj_id}/{env_id}/condition_sets/{condition_set_id}/ancestors
method: get
operationId: get_condition_set_ancestors
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/condition_sets/{condition_set_id}/descendants
method: get
operationId: get_condition_set_descendants
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/roles/{role_id}/implicit_grants
method: post
operationId: create_implicit_grant
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: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/roles/{role_id}/implicit_grants
method: delete
operationId: delete_implicit_grant
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: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/roles/{role_id}/implicit_grants/conditions
method: put
operationId: update_implicit_grants_conditions
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: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/action_groups
method: get
operationId: list_resource_action_groups
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/action_groups
method: post
operationId: create_resource_action_group
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: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/action_groups/{action_group_id}
method: get
operationId: get_resource_action_group
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/action_groups/{action_group_id}
method: delete
operationId: delete_resource_action_group
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: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/action_groups/{action_group_id}
method: patch
operationId: update_resource_action_group
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: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/actions
method: get
operationId: list_resource_actions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/actions
method: post
operationId: create_resource_action
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: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/actions/{action_id}
method: get
operationId: get_resource_action
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/actions/{action_id}
method: delete
operationId: delete_resource_action
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: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/actions/{action_id}
method: patch
operationId: update_resource_action
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: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/attributes
method: get
operationId: list_resource_attributes
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/attributes
method: post
operationId: create_resource_attribute
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: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/attributes/{attribute_id}
method: get
operationId: get_resource_attribute
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/attributes/{attribute_id}
method: delete
operationId: delete_resource_attribute
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: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/attributes/{attribute_id}
method: patch
operationId: update_resource_attribute
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: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/relations
method: get
operationId: list_resource_relations
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/relations
method: post
operationId: create_resource_relation
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: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/relations/{relation_id}
method: get
operationId: get_resource_relation
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/relations/{relation_id}
method: delete
operationId: delete_resource_relation
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: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/roles
method: get
operationId: list_resource_roles
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/roles
method: post
operationId: create_resource_role
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: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/roles/{role_id}
method: get
operationId: get_resource_role
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/roles/{role_id}
method: delete
operationId: delete_resource_role
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: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/roles/{role_id}
method: patch
operationId: update_resource_role
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: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/roles/{role_id}/permissions
method: post
operationId: assign_permissions_to_resource_role
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: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/roles/{role_id}/permissions
method: delete
operationId: remove_permissions_from_resource_role
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: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/roles/{role_id}/ancestors
method: get
operationId: get_resource_role_ancestors
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}/roles/{role_id}/descendants
method: get
operationId: get_resource_role_descendants
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/resources
method: get
operationId: list_resources
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/resources
method: post
operationId: create_resource
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: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}
method: get
operationId: get_resource
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}
method: put
operationId: replace_resource
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: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}
method: delete
operationId: delete_resource
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: /v2/schema/{proj_id}/{env_id}/resources/{resource_id}
method: patch
operationId: update_resource
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: /v2/schema/{proj_id}/{env_id}/roles
method: get
operationId: list_roles
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/roles
method: post
operationId: create_role
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: /v2/schema/{proj_id}/{env_id}/roles/{role_id}
method: get
operationId: get_role
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/roles/{role_id}
method: delete
operationId: delete_role
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: /v2/schema/{proj_id}/{env_id}/roles/{role_id}
method: patch
operationId: update_role
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: /v2/schema/{proj_id}/{env_id}/roles/{role_id}/permissions
method: post
operationId: assign_permissions_to_role
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: /v2/schema/{proj_id}/{env_id}/roles/{role_id}/permissions
method: delete
operationId: remove_permissions_from_role
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: /v2/schema/{proj_id}/{env_id}/roles/{role_id}/ancestors
method: get
operationId: get_role_ancestors
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/roles/{role_id}/descendants
method: get
operationId: get_role_descendants
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/users/attributes
method: get
operationId: list_user_attributes
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/users/attributes
method: post
operationId: create_user_attribute
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: /v2/schema/{proj_id}/{env_id}/users/attributes/{attribute_id}
method: get
operationId: get_user_attribute
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/users/attributes/{attribute_id}
method: delete
operationId: delete_user_attribute
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: /v2/schema/{proj_id}/{env_id}/users/attributes/{attribute_id}
method: patch
operationId: update_user_attribute
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: /v2/schema/{proj_id}/{env_id}/groups/direct
method: get
operationId: list_direct_group
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/groups/direct/{group_instance_key}
method: get
operationId: get_direct_group
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/groups/{group_instance_key}/children
method: get
operationId: list_group_children
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/schema/{proj_id}/{env_id}/groups/{group_instance_key}/parents
method: get
operationId: list_group_parents
x-agentic-access:
action-class: connected
consequence: read
# --- truncated at 32 KB (83 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/permit-io/refs/heads/main/agentic-access/permit-io-agentic-access.yml