# Simulate IAM principal policy

Canonical URL: https://docs.fuse.init.inc/integrations/aws/actions/iam.principal_policy.simulate

Simulate whether a principal is allowed to perform actions. Does not accept caller-supplied policy documents. Requires iam:SimulatePrincipalPolicy.

Action ID: `iam.principal_policy.simulate`
Provider: AWS (`aws`)
Contract version: 1

## Risk and exposure

- Risk: Read
- Idempotency: Safe — Safe to retry without coordination; repeats do not create additional side effects.
- Availability: Default
- Exposure: REST, SDK, MCP
- MCP hints: readOnly=true, destructive=false, idempotent=true, openWorld=true

## Required scopes

- `iam:SimulatePrincipalPolicy`

## Input schema fields

- `policy_source_arn`
- `action_names`
- `action_names[]`
- `resource_arns`
- `resource_arns[]`
- `context_entries`
- `context_entries[]`
- `context_entries[].name`
- `context_entries[].values`
- `context_entries[].values[]`
- `context_entries[].type`
- `page_size`
- `cursor`

## Output schema fields

- `evaluations`
- `evaluations[]`
- `evaluations[].action_name`
- `evaluations[].resource_arn`
- `evaluations[].decision`
- `evaluations[].missing_context_values`
- `evaluations[].missing_context_values[]`
- `evaluations[].matched_statements`
- `evaluations[].matched_statements[]`
- `evaluations[].matched_statements[].source_policy_id`
- `evaluations[].matched_statements[].source_policy_type`
- `evaluations[].permissions_boundary_decision`
- `evaluations[].organizations_decision`
- `next_cursor`

Provider overview: https://docs.fuse.init.inc/integrations/aws
Actions index: https://docs.fuse.init.inc/integrations/aws/actions
Exact canonical JSON contract: https://docs.fuse.init.inc/api/catalog/v1/providers/aws/actions/iam.principal_policy.simulate
Deployment-effective discovery: https://api.fuse.init.inc/v1/tenants/%7Btenant_id%7D/providers/aws/actions
