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 subject: optional token: max-ttl: 3600 audit: none - path: /v2/schema/{proj_id}/{env_id}/groups/{group_instance_key}/users method: get operationId: list_group_users 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}/roles method: get operationId: list_group_roles 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}/roles method: post operationId: assign_role_to_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}/groups/{group_instance_key}/roles method: delete operationId: remove_role_from_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}/groups/{group_instance_key} method: get operationId: get_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} method: delete operationId: delete_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}/groups method: get operationId: list_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 method: post operationId: create_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}/groups/{group_instance_key}/users/{user_id} method: put operationId: assign_user_to_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}/groups/{group_instance_key}/users/{user_id} method: delete operationId: remove_user_from_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}/groups/{group_instance_key}/assign_group method: put operationId: assign_group_to_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}/groups/{group_instance_key}/assign_group method: delete operationId: remove_group_from_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/facts/{proj_id}/{env_id}/users method: get operationId: list_users x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/facts/{proj_id}/{env_id}/users method: post operationId: create_user 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/facts/{proj_id}/{env_id}/users/{user_id} method: get operationId: get_user x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/facts/{proj_id}/{env_id}/users/{user_id} method: put operationId: replace_user 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/facts/{proj_id}/{env_id}/users/{user_id} method: delete operationId: delete_user 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/facts/{proj_id}/{env_id}/users/{user_id} method: patch operationId: update_user 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/facts/{proj_id}/{env_id}/users/{user_id}/roles method: post operationId: assign_role_to_user 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/facts/{proj_id}/{env_id}/users/{user_id}/roles method: delete operationId: unassign_role_from_user 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/facts/{proj_id}/{env_id}/tenants/{tenant_id}/users method: get operationId: list_tenant_users x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/facts/{proj_id}/{env_id}/tenants/{tenant_id}/users method: post operationId: add_user_to_tenant 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/facts/{proj_id}/{env_id}/tenants method: get operationId: list_tenants x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/facts/{proj_id}/{env_id}/tenants method: post operationId: create_tenant 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/facts/{proj_id}/{env_id}/tenants/{tenant_id} method: get operationId: get_tenant x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/facts/{proj_id}/{env_id}/tenants/{tenant_id} method: delete operationId: delete_tenant 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/facts/{proj_id}/{env_id}/tenants/{tenant_id} method: patch operationId: update_tenant 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/facts/{proj_id}/{env_id}/tenants/{tenant_id}/users/{user_id} method: delete operationId: delete_tenant_user 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/facts/{proj_id}/{env_id}/role_assignments/detailed method: get operationId: list_role_assignments_detailed x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/facts/{proj_id}/{env_id}/role_assignments method: get operationId: list_role_assignments x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/facts/{proj_id}/{env_id}/role_assignments method: post operationId: assign_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/facts/{proj_id}/{env_id}/role_assignments method: delete operationId: unassign_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/facts/{proj_id}/{env_id}/role_assignments/bulk method: post operationId: bulk_assign_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/facts/{proj_id}/{env_id}/role_assignments/bulk method: delete operationId: bulk_unassign_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/facts/{proj_id}/{env_id}/set_rules method: get operationId: list_set_permissions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/facts/{proj_id}/{env_id}/set_rules method: post operationId: assign_set_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/facts/{proj_id}/{env_id}/set_rules method: delete operationId: unassign_set_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/facts/{proj_id}/{env_id}/resource_instances/detailed method: get operationId: list_resource_instances_detailed x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/facts/{proj_id}/{env_id}/resource_instances method: get operationId: list_resource_instances x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/facts/{proj_id}/{env_id}/resource_instances method: post operationId: create_resource_instance 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/facts/{proj_id}/{env_id}/resource_instances/{instance_id} method: get operationId: get_resource_instance x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/facts/{proj_id}/{env_id}/resource_instances/{instance_id} method: delete operationId: delete_resource_instance 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/facts/{proj_id}/{env_id}/resource_instances/{instance_id} method: patch operationId: update_resource_instance 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/facts/{proj_id}/{env_id}/proxy_configs method: get operationId: list_proxy_configs x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/facts/{proj_id}/{env_id}/proxy_configs method: post operationId: create_proxy_config 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/facts/{proj_id}/{env_id}/proxy_configs/{proxy_config_id} method: get operationId: get_proxy_config x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/facts/{proj_id}/{env_id}/proxy_configs/{proxy_config_id} method: delete operationId: delete_proxy_config 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/facts/{proj_id}/{env_id}/proxy_configs/{proxy_config_id} method: patch operationId: update_proxy_config 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/facts/{proj_id}/{env_id}/bulk/users method: put operationId: bulk_replace_users 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/facts/{proj_id}/{env_id}/bulk/users method: post operationId: bulk_create_users 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/facts/{proj_id}/{env_id}/bulk/users method: delete operationId: bulk_delete_users 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/facts/{proj_id}/{env_id}/bulk/tenants method: post operationId: bulk_create_tenants 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/facts/{proj_id}/{env_id}/bulk/tenants method: delete operationId: bulk_delete_tenants 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/facts/{proj_id}/{env_id}/bulk/resource_instances method: put operationId: bulk_replace_resource_instances 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/facts/{proj_id}/{env_id}/bulk/resource_instances method: delete operationId: bulk_delete_resource_instances 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/facts/{proj_id}/{env_id}/email_configurations method: get operationId: get_email_configuration x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/facts/{proj_id}/{env_id}/email_configurations method: post operationId: create_or_update_email_configuration 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/facts/{proj_id}/{env_id}/email_configurations/send_test_email method: post operationId: send_test_email 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: /v2/facts/{proj_id}/{env_id}/email_templates/ method: get operationId: list_templates x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/facts/{proj_id}/{env_id}/email_templates/{template_type} method: get operationId: get_template_by_type x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/facts/{proj_id}/{env_id}/email_templates/{template_type} method: post operationId: update_template_by_type 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/facts/{proj_id}/{env_id}/email_templates/{template_type}/send_test_email method: post operationId: send_test_email_by_type 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: /v2/facts/{proj_id}/{env_id}/relationship_tuples/detailed method: get operationId: list_relationship_tuples_detailed x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/facts/{proj_id}/{env_id}/relationship_tuples method: get operationId: list_relationship_tuples x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/facts/{proj_id}/{env_id}/relationship_tuples method: post operationId: create_relationship_tuple 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: /v2/facts/{proj_id}/{env_id}/relationship_tuples method: delete operationId: delete_relationship_tuple 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: /v2/facts/{proj_id}/{env_id}/relationship_tuples/bulk method: post operationId: bulk_create_relationship_tuples 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: /v2/facts/{proj_id}/{env_id}/relationship_tuples/bulk method: delete operationId: bulk_delete_relationship_tuples 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: /v2/facts/{proj_id}/{env_id}/user_invites method: get operationId: list_user_invites x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/facts/{proj_id}/{env_id}/user_invites method: post operationId: create_user_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/facts/{proj_id}/{env_id}/user_invites/{user_invite_id} method: get operationId: get_user_invite x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/facts/{proj_id}/{env_id}/user_invites/{user_invite_id} method: delete operationId: delete_user_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/facts/{proj_id}/{env_id}/user_invites/{user_invite_id} method: patch operationId: update_user_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/facts/{proj_id}/{env_id}/user_invites/{user_invite_id}/approve method: post operationId: approve_user_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/facts/{proj_id}/{env_id}/access_requests/{elements_config_id}/user/{user_id}/tenant/{tenant_id} method: get operationId: list_access_requests x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/facts/{proj_id}/{env_id}/access_requests/{elements_config_id}/user/{user_id}/tenant/{tenant_id} method: post operationId: create_access_request 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/facts/{proj_id}/{env_id}/access_requests/{elements_config_id}/user/{user_id}/tenant/{tenant_id}/{access_request_id} method: get operationId: get_access_request x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/facts/{proj_id}/{env_id}/access_requests/{elements_config_id}/user/{user_id}/tenant/{tenant_id}/{access_request_id}/reviewer method: patch operationId: update_access_request_reviewer 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/facts/{proj_id}/{env_id}/access_requests/{elements_config_id}/user/{user_id}/tenant/{tenant_id}/{access_request_id}/approve method: put operationId: approve_access_request 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/facts/{proj_id}/{env_id}/access_requests/{elements_config_id}/user/{user_id}/tenant/{tenant_id}/{access_request_id}/deny method: put operationId: deny_access_request 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/facts/{proj_id}/{env_id}/access_requests/{elements_config_id}/user/{user_id}/tenant/{tenant_id}/{access_request_id}/cancel method: put operationId: cancel_access_request 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/pdps/{proj_id}/{env_id}/configs method: get operationId: list_pdp_configs x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/pdps/{proj_id}/{env_id}/configs/{pdp_id}/values method: get operationId: get_pdp_config_values x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/pdps/{proj_id}/{env_id}/configs/{pdp_id}/debug-audit-logs/enable method: put operationId: enable_debug_audit_logs 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/pdps/{proj_id}/{env_id}/configs/{pdp_id}/debug-audit-logs/disable method: put operationId: disable_debug_audit_logs 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: /v2/pdps/{proj_id}/{env_id}/configs/{pdp_id}/rotate-api-key method: post operationId: rotate_pdp_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/pdps/{proj_id}/{env_id}/configs/migrate-shards method: post operationId: migrate_shards 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/pdps/{proj_id}/{env_id}/audit_logs method: get operationId: list_audit_logs x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/pdps/{proj_id}/{env_id}/audit_logs/{log_id} method: get operationId: get_detailed_audit_log x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/projects/{proj_id}/repos method: get operationId: list_policy_repos x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/projects/{proj_id}/repos method: post operationId: create_policy_repo 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}/repos/active method: get operationId: get_active_policy_repo x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/projects/{proj_id}/repos/disable method: put operationId: disable_active_policy_repo 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: /v2/projects/{proj_id}/repos/{repo_id}/activate method: put operationId: activate_policy_repo 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}/repos/{repo_id} method: get operationId: get_policy_repo x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/projects/{proj_id}/repos/{repo_id} method: delete operationId: delete_policy_repo 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/elements/{proj_id}/{env_id}/config method: get operationId: list_elements_configs x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/elements/{proj_id}/{env_id}/config method: post operationId: create_elements_config 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/elements/{proj_id}/{env_id}/config/{elements_config_id} method: get operationId: get_elements_config x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/elements/{proj_id}/{env_id}/config/{elements_config_id} method: patch operationId: update_elements_config 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/elements/{proj_id}/{env_id}/config/{elements_config_id}/runtime method: get operationId: get_elements_config_runtime x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/elements/{proj_id}/{env_id}/{elements_config_id} method: delete operationId: delete_elements_config 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/elements/{proj_id}/{env_id}/config/{elements_config_id}/data/users method: get operationId: elements_list_users x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/elements/{proj_id}/{env_id}/config/{elements_config_id}/data/users method: post operationId: elements_create_user 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/elements/{proj_id}/{env_id}/config/{elements_config_id}/data/users/{user_id} method: delete operationId: elements_delete_user 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/elements/{proj_id}/{env_id}/config/{elements_config_id}/data/user-invites method: get operationId: list_elements_user_invites x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/elements/{proj_id}/{env_id}/config/{elements_config_id}/data/roles method: get operationId: elements_list_roles x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/elements/{proj_id}/{env_id}/config/{elements_config_id}/data/users/{user_id}/roles method: post operationId: elements_assign_role_to_user 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/elements/{proj_id}/{env_id}/config/{elements_config_id}/data/users/{user_id}/roles method: delete operationId: elements_unassign_role_from_user 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/elements/{proj_id}/{env_id}/config/{elements_config_id}/data/active method: post operationId: set_config_active 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/elements/{proj_id}/{env_id}/config/{elements_config_id}/data/audit_logs method: get operationId: elements_list_audit_logs x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/elements/{proj_id}/{env_id}/config/{elements_config_id}/access_requests method: get operationId: list_access_requests_v2_elements__proj_id___env_id__config__elements_config_id__access_requests_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/elements/{proj_id}/{env_id}/config/{elements_config_id}/access_requests method: post operationId: create_access_request_v2_elements__proj_id___env_id__config__elements_config_id__access_requests_post 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/elements/{proj_id}/{env_id}/config/{elements_config_id}/access_requests/{access_request_id} method: get operationId: get_access_request_v2_elements__proj_id___env_id__config__elements_config_id__access_requests__access_request_id__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/elements/{proj_id}/{env_id}/config/{elements_config_id}/access_requests/{access_request_id}/reviewer method: patch operationId: update_access_request_reviewer_v2_elements__proj_id___env_id__config__elements_config_id__access_requests__access_request_id__reviewer_patch 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/elements/{proj_id}/{env_id}/config/{elements_config_id}/access_requests/{access_request_id}/approve method: put operationId: approve_access_request_v2_elements__proj_id___env_id__config__elements_config_id__access_requests__access_request_id__approve_put 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/elements/{proj_id}/{env_id}/config/{elements_config_id}/access_requests/{access_request_id}/deny method: put operationId: deny_access_request_v2_elements__proj_id___env_id__config__elements_config_id__access_requests__access_request_id__deny_put 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/elements/{proj_id}/{env_id}/config/{elements_config_id}/access_requests/{access_request_id}/cancel method: put operationId: cancel_access_request_v2_elements__proj_id___env_id__config__elements_config_id__access_requests__access_request_id__cancel_put 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/elements/{proj_id}/{env_id}/config/{elements_config_id}/operation_approval method: get operationId: list_operation_approvals x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/elements/{proj_id}/{env_id}/config/{elements_config_id}/operation_approval method: post operationId: create_operation_approval 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/elements/{proj_id}/{env_id}/config/{elements_config_id}/operation_approval/{operation_approval_id} method: get operationId: get_operation_approval x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/elements/{proj_id}/{env_id}/config/{elements_config_id}/operation_approval/{operation_approval_id}/reviewer method: patch operationId: update_operation_approval_reviewer 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/elements/{proj_id}/{env_id}/config/{elements_config_id}/operation_approval/{operation_approval_id}/approve method: put operationId: approve_operation_approval 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/elements/{proj_id}/{env_id}/config/{elements_config_id}/operation_approval/{operation_approval_id}/deny method: put operationId: deny_operation_approval 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/elements/{proj_id}/{env_id}/config/{elements_config_id}/operation_approval/{operation_approval_id}/cancel method: put operationId: cancel_operation_approval 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/deprecated/history method: get operationId: list_api_events x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/deprecated/history/{event_id} method: get operationId: get_api_event x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/deprecated/history/{event_id}/request method: get operationId: get_request_body x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/deprecated/history/{event_id}/response method: get operationId: get_response_body x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/history method: get operationId: list_api_events_v2_history_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/history/{event_id} method: get operationId: get_api_event_v2_history__event_id__get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/history/{event_id}/request method: get operationId: get_request_body_v2_history__event_id__request_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/history/{event_id}/response method: get operationId: get_response_body_v2_history__event_id__response_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/activity method: get operationId: list_activity_events x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/activity/types method: get operationId: list_activity_types x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/deprecated/activity method: get operationId: list_activity_events_v2_deprecated_activity_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/deprecated/activity/types method: get operationId: list_activity_types_v2_deprecated_activity_types_get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/policy_guards/scopes method: get operationId: list_policy_guard_scopes x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/policy_guards/scopes method: post operationId: create_policy_guard_scope 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/policy_guards/scopes/{policy_guard_scope_id} method: get operationId: get_policy_guard_scope x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/policy_guards/scopes/{policy_guard_scope_id} method: delete operationId: delete_policy_guard_scope 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/policy_guards/scopes/{policy_guard_scope_id}/associate method: post operationId: associate_policy_guard_scope 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/policy_guards/scopes/{policy_guard_scope_id}/disassociate method: delete operationId: disassociate_policy_guard_scope 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/policy_guards/scopes/{policy_guard_scope_id}/rules method: get operationId: list_policy_guard_rules x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/policy_guards/scopes/{policy_guard_scope_id}/rules method: post operationId: create_policy_guard_rule 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/policy_guards/scopes/{policy_guard_scope_id}/rules method: delete operationId: delete_policy_guard_rule 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}/{env_id}/opal_scope method: get operationId: get_scope_config x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/projects/{proj_id}/{env_id}/opal_scope method: put operationId: set_scope_config 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}/{env_id}/opal_scope method: delete operationId: reset_scope_config 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: /v2/audit-log-replay method: post operationId: run_audit_log_replay 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/internal/opal_data/{org_id}/{proj_id}/{env_id}/optimized method: get operationId: get_all_data_optimized x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/internal/opal_data/{org_id}/{proj_id}/{env_id} method: get operationId: get_all_data x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/internal/opal_data/{org_id}/{proj_id}/{env_id}/users method: get operationId: get_all_users_data x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/internal/opal_data/{org_id}/{proj_id}/{env_id}/role_assignments method: get operationId: get_all_role_assignments_data x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/internal/opal_data/{org_id}/{proj_id}/{env_id}/resource_instances method: get operationId: get_all_resource_instances_data x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/internal/opal_data/{org_id}/{proj_id}/{env_id}/relationships method: get operationId: get_all_relationships_data x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none