"""Interact with the Censys Clouds API."""
from ..common.types import Datetime
from ..common.utils import format_iso8601
from .api import CensysAsmAPI
[docs]
class Clouds(CensysAsmAPI):
"""Clouds API class."""
base_path = "/v1/clouds"
[docs]
def get_host_counts(
self,
since: Datetime,
) -> dict:
"""Retrieve host counts by cloud.
Hosts found after the date provided in the `since` parameter will be included in the new asset counts.
Args:
since (Datetime): Date to include hosts from.
Returns:
dict: Host count result.
"""
since = format_iso8601(since)
return self._get(f"{self.base_path}/hostCounts/{since}")
[docs]
def get_domain_counts(self, since: Datetime) -> dict:
"""Retrieve domain counts by cloud.
Args:
since (Datetime): Date to include domains from.
Returns:
dict: Domain count result.
"""
since = format_iso8601(since)
return self._get(f"{self.base_path}/domainCounts/{since}")
[docs]
def get_object_store_counts(self, since: Datetime) -> dict:
"""Retrieve object store counts by cloud.
Args:
since (Datetime): Date to include object stores from.
Returns:
dict: Object store count result.
"""
since = format_iso8601(since)
return self._get(f"{self.base_path}/objectStoreCounts/{since}")
[docs]
def get_subdomain_counts(self, since: Datetime) -> dict:
"""Retrieve subdomain counts by cloud.
Args:
since (Datetime): Date to include subdomains from.
Returns:
dict: Subdomain count result.
"""
since = format_iso8601(since)
return self._get(f"{self.base_path}/subdomainCounts/{since}")
[docs]
def get_unknown_counts(self) -> dict:
"""Retrieve known and unknown counts for hosts by cloud.
Returns:
dict: Unknown count result.
"""
return self._get(f"{self.base_path}/unknownCounts")