purge_queue¶
- SQSQueuesApi.purge_queue(queue_name, action, role_id, _request_timeout=None, _request_auth=None, _content_type=None, _headers=None, _host_index=0)¶
Purge an SQS queue
Purges all messages when CanPurge is true. Requires system-settings.manage. action=purge is required. Not idempotent while a purge is already running.
- Parameters:
queue_name (str) – Exact SQS queue name from the monitored list. (required)
action (str) – Must be purge. Other values are rejected by API Gateway (ValidateAll) or return a 400 Message without a code prefix. (required)
role_id (str) – Amorphic role ID the request is authorized against. Must be a role the user belongs to. Also recorded in audit logs. (required)
_request_timeout (int, tuple(int, int), optional) – timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts.
_request_auth (dict, optional) – set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request.
_content_type (str, Optional) – force content-type for the request.
_headers (dict, optional) – set to override the headers for a single request; this effectively ignores the headers in the spec for a single request.
_host_index (int, optional) – set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request.
- Return type:
- Returns:
Returns the result object.
Request and Response Examples¶
HTTP: PUT /queues/{queue_name}
Success (HTTP 200)¶
Queue was purged. Message is “{DisplayName} ({queue_name}) purged successfully”.
Request / response example
{
"Message": "Failed Jobs DLQ purged successfully"
}
Errors¶
Documented error codes: AUTH-1001, AUTH-1003, AUTH-1030, IPV-1002, GE-1052, RTE-1001.
HTTP 400
Validation or authorization failure. Body is {“Message”: “<CODE> - <text>”} except the router case below. Codes: AUTH-1001, AUTH-1003, AUTH-1030 (missing system-settings.manage), IPV-1002 (role_id). Unknown name, CanPurge false, and purge already in progress are wrapped as GE-1052. Missing or non-purge action (if it reaches Lambda) is {“Message”: “Invalid query parameter. Use ?action=purge”} with no code. GenericFailure is HTTP 400. There is no 403, 404, or 409.
Caller lacks system-settings.manage
{
"Message": "AUTH-1030 - User is not authorized to purge a SQS queue due to the following missing permission(s) - {'System Settings': ['manage']}"
}
action is missing or not purge (Lambda router)
{
"Message": "Invalid query parameter. Use ?action=purge"
}
Queue cannot be purged
{
"Message": "GE-1052 - Unable to purge queue, error - IPV-1002 - Purge not allowed for queue: projectshortname-dev-audit-logs"
}
Purge already in progress
{
"Message": "GE-1052 - Unable to purge queue, error - IPV-1002 - Purge already in progress for queue: projectshortname-dev-failed-jobs-dlq"
}
HTTP 500
Uncaught errors outside this PUT use {“Message”: “RTE-1001 - <exception>.”}.
Uncaught handler failure
{
"Message": "RTE-1001 - 'NoneType' object is not subscriptable."
}