User Rate Limits¶
Endpoints¶
UserRateLimits¶
This API allows to override or disable ratelimiting for a specific user. There are specific APIs to set, get and delete a ratelimit.
Source code in matrix_admin_sdk/endpoints/v1/user_rate_limits.py
class UserRateLimits(Endpoint):
"""
This API allows to override or disable ratelimiting for a specific user.
There are specific APIs to set, get and delete a ratelimit.
"""
def __int__(self, user_id: str, **kwargs):
"""
Initialize User endpoint
Args:
user_id: fully-qualified user id: for example, @user:server.com
**kwargs: key
Returns: None
"""
self.user_id = user_id
super().__init__(**kwargs)
async def get_status(self) -> RateLimitsStatusModel:
"""
Get the ratelimit status for a user.
Returns: RateLimitsStatusModel
"""
url = self.url(f"users/{self.user_id}/override_ratelimit")
result = await self.request(RequestMethods.GET, url)
res: RateLimitsStatusModel = RateLimitsStatusModel.from_dict(result)
return res
async def set(
self, messages_per_second: int, burst_count: int
) -> RateLimitsStatusModel:
"""
Set the ratelimit for a user.
Args:
messages_per_second: The number of actions that can be performed in a second
burst_count: How many actions that can be performed before being limited
Returns: RateLimitsStatusModel
"""
url = self.url(f"users/{self.user_id}/override_ratelimit")
data = {"messages_per_second": messages_per_second, "burst_count": burst_count}
result = await self.request(RequestMethods.POST, url, json=data)
res: RateLimitsStatusModel = RateLimitsStatusModel.from_dict(result)
return res
async def delete(self) -> None:
"""
Delete the ratelimit for a user.
Returns: None
"""
url = self.url(f"users/{self.user_id}/override_ratelimit")
await self.request(RequestMethods.DELETE, url)
__int__(self, user_id, **kwargs)
special
¶
Initialize User endpoint
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id |
str |
fully-qualified user id: for example, @user:server.com |
required |
**kwargs |
key |
{} |
Source code in matrix_admin_sdk/endpoints/v1/user_rate_limits.py
def __int__(self, user_id: str, **kwargs):
"""
Initialize User endpoint
Args:
user_id: fully-qualified user id: for example, @user:server.com
**kwargs: key
Returns: None
"""
self.user_id = user_id
super().__init__(**kwargs)
delete(self)
async
¶
Delete the ratelimit for a user. Returns: None
Source code in matrix_admin_sdk/endpoints/v1/user_rate_limits.py
async def delete(self) -> None:
"""
Delete the ratelimit for a user.
Returns: None
"""
url = self.url(f"users/{self.user_id}/override_ratelimit")
await self.request(RequestMethods.DELETE, url)
get_status(self)
async
¶
Get the ratelimit status for a user. Returns: RateLimitsStatusModel
Source code in matrix_admin_sdk/endpoints/v1/user_rate_limits.py
async def get_status(self) -> RateLimitsStatusModel:
"""
Get the ratelimit status for a user.
Returns: RateLimitsStatusModel
"""
url = self.url(f"users/{self.user_id}/override_ratelimit")
result = await self.request(RequestMethods.GET, url)
res: RateLimitsStatusModel = RateLimitsStatusModel.from_dict(result)
return res
set(self, messages_per_second, burst_count)
async
¶
Set the ratelimit for a user.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
messages_per_second |
int |
The number of actions that can be performed in a second |
required |
burst_count |
int |
How many actions that can be performed before being limited |
required |
Source code in matrix_admin_sdk/endpoints/v1/user_rate_limits.py
async def set(
self, messages_per_second: int, burst_count: int
) -> RateLimitsStatusModel:
"""
Set the ratelimit for a user.
Args:
messages_per_second: The number of actions that can be performed in a second
burst_count: How many actions that can be performed before being limited
Returns: RateLimitsStatusModel
"""
url = self.url(f"users/{self.user_id}/override_ratelimit")
data = {"messages_per_second": messages_per_second, "burst_count": burst_count}
result = await self.request(RequestMethods.POST, url, json=data)
res: RateLimitsStatusModel = RateLimitsStatusModel.from_dict(result)
return res
Models¶
RateLimitsStatusModel¶
Class representing the rate limits status model.
Attributes:
| Name | Type | Description |
|---|---|---|
messages_per_second |
int |
The number of actions that can be performed in a second. 0 mean that ratelimiting is disabled for this user |
burst_count |
int |
How many actions that can be performed before being limited. |
Source code in matrix_admin_sdk/models/v1/user_rate_limits.py
class RateLimitsStatusModel(BaseModel):
"""
Class representing the rate limits status model.
Attributes:
messages_per_second (int): The number of actions that can be performed in a second.
0 mean that ratelimiting is disabled for this user
burst_count (int): How many actions that can be performed before being limited.
"""
messages_per_second: Optional[int] = None
burst_count: Optional[int] = None