Source code for censys.asm.assets.web_entities

"""Interact with the Censys Web Entities Assets API."""
from typing import Iterator, Optional

from .assets import Assets


[docs] class WebEntitiesAssets(Assets): """Web Entities Assets API class.""" def __init__(self, *args, **kwargs): """Inits WebEntitiesAssets. Args: *args: Variable length argument list. **kwargs: Arbitrary keyword arguments. """ super().__init__("web-entities", *args, **kwargs)
[docs] def get_assets(self, *args, **kwargs): """Requests assets data. This method is not implemented for web entities. Please see the inventory search and aggregation API. Args: *args: Variable length argument list. **kwargs: Arbitrary keyword arguments. Raises: NotImplementedError: This method is not implemented. """ raise NotImplementedError("This method is not implemented.")
[docs] def get_instances( self, name_and_port: str, page_size: Optional[int] = None, cursor: Optional[str] = None, ) -> Iterator[dict]: """List all instances of the web entity. Args: name_and_port: (str): Web entity to query. page_size (int): Optional; Page size for retrieving assets. cursor (str): Optional; Cursor to use for pagination. Yields: dict: The assets result returned. """ args = {"pageSize": page_size, "cursor": cursor} while True: res = self._get(f"{self.base_path}/{name_and_port}/instances", args=args) yield from res.get("instances", []) cursor = res.get("cursor") if not cursor: break args["cursor"] = cursor