from ._auth import ControllerAuthMixin
from ._base_controller import BaseController
from ._crud import CRUDCollectionMethod, CRUDEndpoint, CRUDResourceMethod, SecretStr
-from ._docs import APIDoc, EndpointDoc
+from ._docs import APIDoc, EndpointDoc, Param
from ._endpoint import Endpoint, Proxy
from ._helpers import ENDPOINT_MAP, allow_empty_body, \
generate_controller_routes, json_error_page, validate_ceph_type
'Task',
'ControllerAuthMixin',
'EndpointDoc',
+ 'Param',
'APIDoc',
'allow_empty_body',
'ENDPOINT_MAP',
-from typing import Any, Dict, List, Optional, Tuple, Union
+from typing import Any, Dict, List, NamedTuple, Optional, Tuple, Type, Union
from ..api.doc import SchemaInput, SchemaType
return func
+class Param(NamedTuple):
+ type: Union[Type, List[Type]]
+ description: str
+ optional: bool = False
+ default: Optional[Any] = None
+
+
class APIDoc(object):
def __init__(self, description="", group=""):
self.tag = group