Generated from rest_throttles.py on 2022-03-07 17:01:26.860132

# peeringdb_server.rest_throttles

Custom rate limit handlers for the REST API.

# Classes
---

## APIAnonUserThrottle

```
APIAnonUserThrottle(rest_framework.throttling.AnonRateThrottle)
```

Rate limiting for anonymous users.


### Methods

#### allow_request
`def allow_request(self, request, view)`

Implement the check to see if the request should be throttled.

On success calls `throttle_success`.
On failure calls `throttle_failure`.

---

## APIUserThrottle

```
APIUserThrottle(rest_framework.throttling.UserRateThrottle)
```

Rate limiting for authenticated users.


### Methods

#### allow_request
`def allow_request(self, request, view)`

Implement the check to see if the request should be throttled.

On success calls `throttle_success`.
On failure calls `throttle_failure`.

---

## FilterDistanceThrottle

```
FilterDistanceThrottle(peeringdb_server.rest_throttles.FilterThrottle)
```

Rate limiting for ?distance= queries.


## FilterThrottle

```
FilterThrottle(rest_framework.throttling.SimpleRateThrottle)
```

Base class for API throttling targeted at specific query filters.

Scope name will be 'filter_{self.filter_name}'


### Methods

#### \__init__
`def __init__(self)`

Initialize self.  See help(type(self)) for accurate signature.

---
#### allow_request
`def allow_request(self, request, view)`

Implement the check to see if the request should be throttled.

On success calls `throttle_success`.
On failure calls `throttle_failure`.

---
#### get_cache_key
`def get_cache_key(self, request, view)`

Should return a unique cache-key which can be used for throttling.
Must be overridden.

May return `None` if the request should not be throttled.

---

## IXFImportThrottle

```
IXFImportThrottle(rest_framework.throttling.UserRateThrottle)
```

Limits the rate of API calls that may be made by a given user.

The user id will be used as a unique cache key if the user is
authenticated.  For anonymous requests, the IP address of the request will
be used.


### Methods

#### get_cache_key
`def get_cache_key(self, request, view)`

Should return a unique cache-key which can be used for throttling.
Must be overridden.

May return `None` if the request should not be throttled.

---
