File size: 1,263 Bytes
b404de3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | # Generic Service API Documentation Template
Each AWS service follows the same HTTP pattern: **`POST /step`** with a JSON body matching [`CloudEnvAction`](../../../models.py):
- **`service`** — boto3 client name (e.g. `s3`, `lambda`, `cognito-idp`)
- **`operation`** — PascalCase operation name (e.g. `CreateBucket`, `Invoke`)
- **`payload`** — dict of parameters passed to the boto3 client method (snake_case keys are **not** used here; use **boto3’s PascalCase parameter names** as in AWS API docs)
- **`intent`** *(optional)* — free-text hint for agents
### cURL pattern
```bash
curl -X POST http://localhost:8000/step \
-H "Content-Type: application/json" \
-d @- <<'EOF'
{
"service": "SERVICE_ID",
"operation": "OperationName",
"payload": { }
}
EOF
```
Per-service examples with botocore-derived **required-parameter** payloads live in `*_api.md` files in this folder.
### Regenerating Markdown + OpenAPI
From the repo root (requires `boto3` and `pyyaml`):
```bash
python scripts/generate_aws_api_docs.py
```
This refreshes all `*_api.md` files, `server/actions/*.py`, and [`openapi.yaml`](openapi.yaml) for Insomnia/Yaak import.
### IAM
All services enforce IAM as `service-id:OperationName` (see [`adapter.py`](adapter.py)).
|