Source code for cybsi.api.observable.annotations
from typing import Any, Dict, Optional
from ..internal import BaseAPI
from ..pagination import Cursor, Page
[docs]
class AnnotationsAPI(BaseAPI):
"""Annotations API"""
_path = "/observable/annotation"
[docs]
def filter(
self,
prefix: str,
*,
cursor: Optional[Cursor] = None,
limit: Optional[int] = None,
) -> Page[str]:
"""Filter labels of observable entities.
Note:
Calls `GET /observable/annotation/labels`.
Args:
prefix: Label prefix.
Prefix length must be in range [2, 50].
cursor: Page cursor.
limit: Page limit.
Returns: List of labels.
Labels are sorted in a stable best match order.
"""
params: Dict[str, Any] = {}
if prefix is not None:
params["prefix"] = prefix
if cursor is not None:
params["cursor"] = str(cursor)
if limit is not None:
params["limit"] = str(limit)
path = f"{self._path}/labels"
resp = self._connector.do_get(path=path, params=params)
page = Page(self._connector.do_get, resp, str)
return page