curl --request DELETE \
--url https://api.example.com/api/proposals/{proposal_id}{
"message": "<string>",
"proposal_code": "<string>",
"cleanup_summary": {
"vectors_deleted": "<string>",
"s3_files_deleted": "<string>",
"dynamodb_deleted": "<string>"
},
"404 Not Found": {},
"403 Forbidden": {}
}Permanently delete a proposal and all associated resources including S3 files, vectors, and DynamoDB records.
curl --request DELETE \
--url https://api.example.com/api/proposals/{proposal_id}{
"message": "<string>",
"proposal_code": "<string>",
"cleanup_summary": {
"vectors_deleted": "<string>",
"s3_files_deleted": "<string>",
"dynamodb_deleted": "<string>"
},
"404 Not Found": {},
"403 Forbidden": {}
}Authorization: Bearer <token>
a1b2c3d4-e5f6-7890-abcd-ef1234567890PROP-20260304-A1B2curl -X DELETE https://api.igadregion.org/api/proposals/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
-H "Authorization: Bearer YOUR_TOKEN"
{
"message": "Proposal deleted successfully",
"proposal_code": "PROP-20260304-A1B2",
"cleanup_summary": {
"vectors_deleted": "attempted",
"s3_files_deleted": "attempted",
"dynamodb_deleted": "completed"
}
}
{
"detail": "Proposal not found"
}
{
"detail": "Access denied"
}
{proposal_code}/ are removed from the S3 bucket.
cleanup_summary shows “attempted” for S3 and vector operations (which may fail gracefully) and “completed” for the guaranteed DynamoDB deletion.