Source code for cybsi.cloud.auth.limits
from enum_tools import document_enum
from ..enum import CybsiAPIEnum
from ..internal import JsonObjectForm, JsonObjectView
from .permission import ResourceAction
from .resource import ResourceRefView
[docs]
@document_enum
class LimitPeriod(CybsiAPIEnum):
"""Limit time window."""
Day = "Day"
"""Time window with period of one day."""
[docs]
class RequestLimitTargetView(JsonObjectView):
"""Request limit target."""
@property
def resource(self) -> ResourceRefView:
"""Resource."""
return ResourceRefView(self._get("resource"))
@property
def action(self) -> ResourceAction:
"""Limited action."""
return ResourceAction(self._get("action"))
[docs]
class RequestLimitView(JsonObjectView):
"""Request limit."""
@property
def target(self) -> RequestLimitTargetView:
"""Limit target."""
return RequestLimitTargetView(self._get("target"))
@property
def limit(self) -> int:
"""Maximum requests count within time window."""
return self._get("limit")
@property
def period(self) -> LimitPeriod:
"""Time window for limit."""
return LimitPeriod(self._get("period"))