"""
Resource managers for Cyberwave API entities.

This module provides the manager layer that wraps the auto-generated REST API
with cleaner, more Pythonic interfaces.

Architecture:
    rest/           # Auto-generated by OpenAPI (NEVER edit manually)
    managers/       # Manual abstractions (safe to edit)
    resources.py    # Re-exports for backwards compatibility

All managers inherit from BaseResourceManager and provide:
- Consistent error handling via _handle_error()
- Type-safe schemas from the auto-generated models
- Simplified method signatures

Usage:
    These managers are typically accessed via the Cyberwave client:
    
    >>> client = Cyberwave(token="...")
    >>> workspaces = client.workspaces.list()
    >>> twin = client.twins.get("uuid")

Direct imports (for advanced use):
    >>> from cyberwave.managers import TwinManager, AssetManager
"""

# Re-export all managers from resources.py for backwards compatibility
# This allows gradual migration to the managers/ structure
from cyberwave.resources import (
    BaseResourceManager,
    WorkspaceManager,
    ProjectManager,
    EnvironmentManager,
    AssetManager,
    EdgeManager,
    TwinManager,
)

__all__ = [
    "BaseResourceManager",
    "WorkspaceManager",
    "ProjectManager",
    "EnvironmentManager",
    "AssetManager",
    "EdgeManager",
    "TwinManager",
]
