Source code for netbird.resources.geo_locations
"""
Geo locations resource handler for NetBird API.
"""
from typing import Any, Dict, List
from .base import BaseResource
[docs]
class GeoLocationsResource(BaseResource):
"""Handler for NetBird geo locations API endpoints."""
[docs]
def list_countries(self) -> List[str]:
"""List all country codes (ISO 3166-1 alpha-2).
Returns:
List of 2-letter country code strings
"""
data = self.client.get("locations/countries")
return data
[docs]
def list_cities(self, country_code: str) -> List[Dict[str, Any]]:
"""List cities for a given country code.
Args:
country_code: 2-letter ISO country code
Returns:
List of city dictionaries with geoname_id and city_name
"""
data = self.client.get(f"locations/countries/{country_code}/cities")
return self._parse_list_response(data)