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:

PurgeQueueResponse

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."
}