Terraform · Agentic Access
Terraform Agentic Access
x-agentic-access
generated
Terraform exposes 48 API operations that an AI agent could call, of which 23 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: 25 read and 23 write.
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.
Infrastructure As CodeCloud InfrastructureDevOpsOpen SourceHashiCorp
Operations: 48
Acting: 23
Human-in-the-loop: 0
Method: generated
By consequence
read 25
write 23
Source
Agentic Access
generated: '2026-07-15'
method: generated
source: openapi/hcp-terraform-openapi.yml, openapi/terraform-registry-openapi.yml
description: Recommended x-agentic-access execution contracts, classified heuristically from
the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind
audience per deployment. See research/curity/agentic-governance/.
summary:
operations: 48
by_action_class:
connected: 25
acting: 23
by_consequence:
read: 25
write: 23
human_in_the_loop_required: 0
operations:
- path: /organizations
method: get
operationId: ListOrganizations
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations
method: post
operationId: CreateOrganization
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /organizations/{organization_name}
method: get
operationId: GetOrganization
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organization_name}
method: patch
operationId: UpdateOrganization
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /organizations/{organization_name}
method: delete
operationId: DeleteOrganization
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /organizations/{organization_name}/workspaces
method: get
operationId: ListWorkspaces
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organization_name}/workspaces
method: post
operationId: CreateWorkspace
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /workspaces/{workspace_id}
method: get
operationId: GetWorkspace
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /workspaces/{workspace_id}
method: patch
operationId: UpdateWorkspace
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /workspaces/{workspace_id}
method: delete
operationId: DeleteWorkspace
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /workspaces/{workspace_id}/actions/lock
method: post
operationId: LockWorkspace
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /workspaces/{workspace_id}/actions/unlock
method: post
operationId: UnlockWorkspace
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /runs
method: post
operationId: CreateRun
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /runs/{run_id}
method: get
operationId: GetRun
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /runs/{run_id}/actions/apply
method: post
operationId: ApplyRun
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /runs/{run_id}/actions/discard
method: post
operationId: DiscardRun
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /runs/{run_id}/actions/cancel
method: post
operationId: CancelRun
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /workspaces/{workspace_id}/runs
method: get
operationId: ListWorkspaceRuns
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /workspaces/{workspace_id}/state-versions
method: get
operationId: ListStateVersions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /workspaces/{workspace_id}/state-versions
method: post
operationId: CreateStateVersion
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /state-versions/{state_version_id}
method: get
operationId: GetStateVersion
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organization_name}/teams
method: get
operationId: ListTeams
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organization_name}/teams
method: post
operationId: CreateTeam
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /teams/{team_id}
method: get
operationId: GetTeam
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /teams/{team_id}
method: delete
operationId: DeleteTeam
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /organizations/{organization_name}/policies
method: get
operationId: ListPolicies
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organization_name}/policies
method: post
operationId: CreatePolicy
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /policies/{policy_id}
method: get
operationId: GetPolicy
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /policies/{policy_id}
method: delete
operationId: DeletePolicy
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /organizations/{organization_name}/projects
method: get
operationId: ListProjects
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organization_name}/projects
method: post
operationId: CreateProject
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /projects/{project_id}
method: get
operationId: GetProject
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /projects/{project_id}
method: patch
operationId: UpdateProject
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /projects/{project_id}
method: delete
operationId: DeleteProject
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /workspaces/{workspace_id}/vars
method: get
operationId: ListWorkspaceVariables
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /workspaces/{workspace_id}/vars
method: post
operationId: CreateWorkspaceVariable
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /workspaces/{workspace_id}/vars/{variable_id}
method: patch
operationId: UpdateWorkspaceVariable
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /workspaces/{workspace_id}/vars/{variable_id}
method: delete
operationId: DeleteWorkspaceVariable
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/modules
method: get
operationId: ListModules
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/modules/{namespace}
method: get
operationId: ListModulesByNamespace
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/modules/search
method: get
operationId: SearchModules
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/modules/{namespace}/{name}
method: get
operationId: GetModuleLatestVersions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/modules/{namespace}/{name}/{provider}
method: get
operationId: GetModuleLatestVersion
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/modules/{namespace}/{name}/{provider}/versions
method: get
operationId: ListModuleVersions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/modules/{namespace}/{name}/{provider}/{version}
method: get
operationId: GetModuleVersion
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/modules/{namespace}/{name}/{provider}/download
method: get
operationId: DownloadModuleLatestVersion
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/modules/{namespace}/{name}/{provider}/{version}/download
method: get
operationId: DownloadModuleVersion
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/modules/{namespace}/{name}/{provider}/downloads/summary
method: get
operationId: GetModuleDownloadSummary
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none