awswrangler/timestream/_list.py (24 lines of code) (raw):

"""Amazon Timestream List Module.""" from __future__ import annotations import logging import boto3 from awswrangler import _utils _logger: logging.Logger = logging.getLogger(__name__) def list_databases( boto3_session: boto3.Session | None = None, ) -> list[str]: """ List all databases in timestream. Parameters ---------- boto3_session The default boto3 session will be used if **boto3_session** is ``None``. Returns ------- a list of available timestream databases. Examples -------- Querying the list of all available databases >>> import awswrangler as wr >>> wr.timestream.list_databases() ["database1", "database2"] """ client = _utils.client(service_name="timestream-write", session=boto3_session) response = client.list_databases() dbs: list[str] = [db["DatabaseName"] for db in response["Databases"]] while "NextToken" in response: response = client.list_databases(NextToken=response["NextToken"]) dbs += [db["DatabaseName"] for db in response["Databases"]] return dbs def list_tables(database: str | None = None, boto3_session: boto3.Session | None = None) -> list[str]: """ List tables in timestream. Parameters ---------- database Database name. If None, all tables in Timestream will be returned. Otherwise, only the tables inside the given database are returned. boto3_session The default boto3 session will be used if **boto3_session** is ``None``. Returns ------- A list of table names. Examples -------- Listing all tables in timestream across databases >>> import awswrangler as wr >>> wr.timestream.list_tables() ["table1", "table2"] Listing all tables in timestream in a specific database >>> import awswrangler as wr >>> wr.timestream.list_tables(DatabaseName="database1") ["table1"] """ client = _utils.client(service_name="timestream-write", session=boto3_session) args = {} if database is None else {"DatabaseName": database} response = client.list_tables(**args) # type: ignore[arg-type] tables: list[str] = [tbl["TableName"] for tbl in response["Tables"]] while "NextToken" in response: response = client.list_tables(**args, NextToken=response["NextToken"]) # type: ignore[arg-type] tables += [tbl["TableName"] for tbl in response["Tables"]] return tables