aws_call
Execute any AWS API operation by specifying a kebab-case service and operation, with parameters as a JSON object. Returns parsed JSON output.
Instructions
Run an arbitrary AWS API operation via the aws CLI. Use kebab-case service and operation names as in aws help (service='s3api', operation='list-buckets'). Pass params as a JSON object using the AWS API's PascalCase keys (e.g. {Bucket: 'foo'}); they go through --cli-input-json. Session profile/region (from aws_session_set) are used by default; override per-call when needed. For high-level wrappers like 'aws s3 cp' or 'aws ec2 wait', use your shell — this tool targets the low-level API. Returns parsed JSON output by default, plus the literal command that was run.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| service | Yes | AWS service name in kebab-case: 's3api', 'ec2', 'iam', 'lambda', 'dynamodb', 'logs', 'sts', 'cloudformation', etc. | |
| operation | Yes | Operation name in kebab-case: 'list-buckets', 'describe-instances', 'get-caller-identity', 'put-object'. | |
| params | No | Operation parameters as a JSON object (AWS API schema, PascalCase keys). E.g. {Bucket: 'foo', Key: 'bar'}. | |
| query | No | JMESPath expression to extract a subset of the response (passed as --query). E.g. 'Buckets[].Name', 'Reservations[].Instances[].{Id:InstanceId,State:State.Name}'. Dramatically reduces output size; reach for this whenever you only need a few fields. | |
| profile | No | Override session profile for this call. | |
| region | No | Override session region for this call. | |
| outputFormat | No | Output format. Default 'json' (parsed into structured data when possible). | |
| timeoutMs | No | Timeout in milliseconds. Default 60000 (60s). Raise for slow ops; lower to fail fast. |