"""Async equivalent of `examples/basic.py`. Run with: uv run python examples/basic_async.py """ from __future__ import annotations import asyncio import os from openstatus import AsyncOpenstatusClient from openstatus._gen.openstatus.health.v1.health_pb2 import CheckRequest from openstatus._gen.openstatus.monitor.v1.service_pb2 import ListMonitorsRequest async def main() -> None: print("OpenStatus SDK Example (async)\n") async with AsyncOpenstatusClient() as client: print("1. Checking API health...") health = await client.health.v1.HealthService.check(CheckRequest()) print(f" Status: {health.status}\n") if not os.environ.get("OPENSTATUS_API_KEY"): print("2. Skipping monitor operations (OPENSTATUS_API_KEY not set)") return print("2. Listing monitors...") monitors = await client.monitor.v1.MonitorService.list_monitors(ListMonitorsRequest()) print(f" Found {monitors.total_size} monitors") print(f" - HTTP: {len(monitors.http_monitors)}") print(f" - TCP: {len(monitors.tcp_monitors)}") print(f" - DNS: {len(monitors.dns_monitors)}") if __name__ == "__main__": asyncio.run(main())