"""Resource managers for VergeOS API resources."""

from pyvergeos.resources.api_keys import APIKey, APIKeyCreated, APIKeyManager
from pyvergeos.resources.auth_sources import (
    AuthSource,
    AuthSourceManager,
    AuthSourceState,
    AuthSourceStateManager,
)
from pyvergeos.resources.base import ResourceManager, ResourceObject
from pyvergeos.resources.billing import BillingManager, BillingRecord
from pyvergeos.resources.certificates import Certificate, CertificateManager
from pyvergeos.resources.cloud_snapshots import (
    CloudSnapshot,
    CloudSnapshotManager,
    CloudSnapshotTenant,
    CloudSnapshotTenantManager,
    CloudSnapshotVM,
    CloudSnapshotVMManager,
)
from pyvergeos.resources.cloudinit_files import CloudInitFile, CloudInitFileManager
from pyvergeos.resources.cluster_tiers import (
    ClusterTier,
    ClusterTierManager,
    ClusterTierStats,
    ClusterTierStatsHistoryLong,
    ClusterTierStatsHistoryShort,
    ClusterTierStatus,
)
from pyvergeos.resources.devices import Device, DeviceManager
from pyvergeos.resources.gpu import (
    NodeGpu,
    NodeGpuInstance,
    NodeGpuInstanceManager,
    NodeGpuManager,
    NodeGpuStats,
    NodeGpuStatsHistory,
    NodeGpuStatsManager,
    NodeHostGpuDevice,
    NodeHostGpuDeviceManager,
    NodeVgpuDevice,
    NodeVgpuDeviceManager,
    NodeVgpuProfile,
    NodeVgpuProfileManager,
    NvidiaVgpuProfile,
    NvidiaVgpuProfileManager,
)
from pyvergeos.resources.machine_stats import (
    MachineLog,
    MachineLogManager,
    MachineStats,
    MachineStatsHistory,
    MachineStatsManager,
    MachineStatus,
    MachineStatusManager,
)
from pyvergeos.resources.nas_cifs import NASCIFSShare, NASCIFSShareManager
from pyvergeos.resources.nas_nfs import NASNFSShare, NASNFSShareManager
from pyvergeos.resources.nas_services import (
    CIFSSettings,
    NASService,
    NASServiceManager,
    NFSSettings,
)
from pyvergeos.resources.nas_users import NASUser, NASUserManager
from pyvergeos.resources.nas_volume_browser import NASVolumeFile, NASVolumeFileManager
from pyvergeos.resources.nas_volume_syncs import NASVolumeSync, NASVolumeSyncManager
from pyvergeos.resources.nas_volumes import (
    NASVolume,
    NASVolumeManager,
    NASVolumeSnapshot,
    NASVolumeSnapshotManager,
)
from pyvergeos.resources.network_stats import (
    IPSecActiveConnection,
    IPSecActiveConnectionManager,
    NetworkDashboard,
    NetworkDashboardManager,
    NetworkMonitorStats,
    NetworkMonitorStatsHistory,
    NetworkMonitorStatsManager,
    WireGuardPeerStatus,
    WireGuardPeerStatusManager,
)
from pyvergeos.resources.nodes import (
    Node,
    NodeDriver,
    NodeDriverManager,
    NodeManager,
    NodePCIDevice,
    NodePCIDeviceManager,
    NodeSriovNicDevice,
    NodeSriovNicDeviceManager,
    NodeUSBDevice,
    NodeUSBDeviceManager,
)
from pyvergeos.resources.oidc_applications import (
    OidcApplication,
    OidcApplicationGroup,
    OidcApplicationGroupManager,
    OidcApplicationLog,
    OidcApplicationLogManager,
    OidcApplicationManager,
    OidcApplicationUser,
    OidcApplicationUserManager,
)
from pyvergeos.resources.permissions import Permission, PermissionManager
from pyvergeos.resources.recipe_common import (
    RecipeQuestion,
    RecipeQuestionManager,
    RecipeSection,
    RecipeSectionManager,
)
from pyvergeos.resources.resource_groups import (
    ResourceGroup,
    ResourceGroupManager,
    ResourceRule,
    ResourceRuleManager,
)
from pyvergeos.resources.shared_objects import SharedObject, SharedObjectManager
from pyvergeos.resources.site_syncs import (
    SiteSyncIncoming,
    SiteSyncIncomingLogManager,
    SiteSyncIncomingManager,
    SiteSyncIncomingVerified,
    SiteSyncIncomingVerifiedManager,
    SiteSyncLog,
    SiteSyncOutgoing,
    SiteSyncOutgoingLogManager,
    SiteSyncOutgoingManager,
    SiteSyncQueueItem,
    SiteSyncQueueManager,
    SiteSyncRemoteSnap,
    SiteSyncRemoteSnapManager,
    SiteSyncSchedule,
    SiteSyncScheduleManager,
    SiteSyncStats,
    SiteSyncStatsHistory,
    SiteSyncStatsManager,
)
from pyvergeos.resources.sites import Site, SiteManager
from pyvergeos.resources.snapshot_profiles import (
    SnapshotProfile,
    SnapshotProfileManager,
    SnapshotProfilePeriod,
    SnapshotProfilePeriodManager,
)
from pyvergeos.resources.tags import (
    Tag,
    TagCategory,
    TagCategoryManager,
    TagManager,
    TagMember,
    TagMemberManager,
)
from pyvergeos.resources.tenant_external_ips import (
    TenantExternalIP,
    TenantExternalIPManager,
)
from pyvergeos.resources.tenant_layer2 import TenantLayer2Manager, TenantLayer2Network
from pyvergeos.resources.tenant_manager import Tenant, TenantManager
from pyvergeos.resources.tenant_network_blocks import (
    TenantNetworkBlock,
    TenantNetworkBlockManager,
)
from pyvergeos.resources.tenant_recipes import (
    TenantRecipe,
    TenantRecipeInstance,
    TenantRecipeInstanceManager,
    TenantRecipeLog,
    TenantRecipeLogManager,
    TenantRecipeManager,
)
from pyvergeos.resources.tenant_snapshots import TenantSnapshot, TenantSnapshotManager
from pyvergeos.resources.tenant_stats import (
    TenantDashboard,
    TenantDashboardManager,
    TenantLog,
    TenantLogManager,
    TenantStats,
    TenantStatsHistory,
    TenantStatsManager,
)
from pyvergeos.resources.tenant_storage import TenantStorage, TenantStorageManager
from pyvergeos.resources.updates import (
    UpdateBranch,
    UpdateBranchManager,
    UpdateDashboard,
    UpdateDashboardManager,
    UpdateLog,
    UpdateLogManager,
    UpdatePackage,
    UpdatePackageManager,
    UpdateSettings,
    UpdateSettingsManager,
    UpdateSource,
    UpdateSourceManager,
    UpdateSourcePackage,
    UpdateSourcePackageManager,
    UpdateSourceStatus,
    UpdateSourceStatusManager,
)
from pyvergeos.resources.vm_recipes import (
    VmRecipe,
    VmRecipeInstance,
    VmRecipeInstanceManager,
    VmRecipeLog,
    VmRecipeLogManager,
    VmRecipeManager,
)
from pyvergeos.resources.webhooks import Webhook, WebhookHistory, WebhookManager

__all__ = [
    "APIKey",
    "APIKeyCreated",
    "APIKeyManager",
    "AuthSource",
    "AuthSourceManager",
    "AuthSourceState",
    "AuthSourceStateManager",
    "BillingManager",
    "BillingRecord",
    "Certificate",
    "CertificateManager",
    "CIFSSettings",
    "ClusterTier",
    "ClusterTierManager",
    "ClusterTierStats",
    "ClusterTierStatsHistoryLong",
    "ClusterTierStatsHistoryShort",
    "ClusterTierStatus",
    "CloudInitFile",
    "CloudInitFileManager",
    "CloudSnapshot",
    "CloudSnapshotManager",
    "CloudSnapshotTenant",
    "CloudSnapshotTenantManager",
    "CloudSnapshotVM",
    "CloudSnapshotVMManager",
    "Device",
    "DeviceManager",
    "IPSecActiveConnection",
    "IPSecActiveConnectionManager",
    "MachineLog",
    "MachineLogManager",
    "MachineStats",
    "MachineStatsHistory",
    "MachineStatsManager",
    "MachineStatus",
    "MachineStatusManager",
    "NetworkDashboard",
    "NetworkDashboardManager",
    "NetworkMonitorStats",
    "NetworkMonitorStatsHistory",
    "NetworkMonitorStatsManager",
    "NodeGpu",
    "NodeGpuInstance",
    "NodeGpuInstanceManager",
    "NodeGpuManager",
    "NodeGpuStats",
    "NodeGpuStatsHistory",
    "NodeGpuStatsManager",
    "NodeHostGpuDevice",
    "NodeHostGpuDeviceManager",
    "NodeVgpuDevice",
    "NodeVgpuDeviceManager",
    "NodeVgpuProfile",
    "NodeVgpuProfileManager",
    "NvidiaVgpuProfile",
    "NvidiaVgpuProfileManager",
    "Node",
    "NodeDriver",
    "NodeDriverManager",
    "NodeManager",
    "NodePCIDevice",
    "NodePCIDeviceManager",
    "NodeSriovNicDevice",
    "NodeSriovNicDeviceManager",
    "NodeUSBDevice",
    "NodeUSBDeviceManager",
    "NASCIFSShare",
    "NASCIFSShareManager",
    "NASNFSShare",
    "NASNFSShareManager",
    "NASService",
    "NASServiceManager",
    "NASUser",
    "NASUserManager",
    "NASVolume",
    "NASVolumeFile",
    "NASVolumeFileManager",
    "NASVolumeManager",
    "NASVolumeSnapshot",
    "NASVolumeSnapshotManager",
    "NASVolumeSync",
    "NASVolumeSyncManager",
    "NFSSettings",
    "OidcApplication",
    "OidcApplicationGroup",
    "OidcApplicationGroupManager",
    "OidcApplicationLog",
    "OidcApplicationLogManager",
    "OidcApplicationManager",
    "OidcApplicationUser",
    "OidcApplicationUserManager",
    "Permission",
    "PermissionManager",
    "ResourceGroup",
    "ResourceGroupManager",
    "ResourceRule",
    "ResourceRuleManager",
    "ResourceManager",
    "ResourceObject",
    "SharedObject",
    "SharedObjectManager",
    "Site",
    "SiteManager",
    "SiteSyncIncoming",
    "SiteSyncIncomingLogManager",
    "SiteSyncIncomingManager",
    "SiteSyncIncomingVerified",
    "SiteSyncIncomingVerifiedManager",
    "SiteSyncLog",
    "SiteSyncOutgoing",
    "SiteSyncOutgoingLogManager",
    "SiteSyncOutgoingManager",
    "SiteSyncQueueItem",
    "SiteSyncQueueManager",
    "SiteSyncRemoteSnap",
    "SiteSyncRemoteSnapManager",
    "SiteSyncSchedule",
    "SiteSyncScheduleManager",
    "SiteSyncStats",
    "SiteSyncStatsHistory",
    "SiteSyncStatsManager",
    "SnapshotProfile",
    "SnapshotProfileManager",
    "SnapshotProfilePeriod",
    "SnapshotProfilePeriodManager",
    "Tag",
    "TagCategory",
    "TagCategoryManager",
    "TagManager",
    "TagMember",
    "TagMemberManager",
    "Tenant",
    "TenantExternalIP",
    "TenantExternalIPManager",
    "TenantLayer2Manager",
    "TenantLayer2Network",
    "TenantManager",
    "TenantNetworkBlock",
    "TenantNetworkBlockManager",
    "TenantSnapshot",
    "TenantSnapshotManager",
    "TenantStats",
    "TenantStatsHistory",
    "TenantStatsManager",
    "TenantLog",
    "TenantLogManager",
    "TenantDashboard",
    "TenantDashboardManager",
    "TenantStorage",
    "TenantStorageManager",
    "Webhook",
    "WebhookHistory",
    "WebhookManager",
    "WireGuardPeerStatus",
    "WireGuardPeerStatusManager",
    "VmRecipe",
    "VmRecipeInstance",
    "VmRecipeInstanceManager",
    "VmRecipeLog",
    "VmRecipeLogManager",
    "VmRecipeManager",
    "TenantRecipe",
    "TenantRecipeInstance",
    "TenantRecipeInstanceManager",
    "TenantRecipeLog",
    "TenantRecipeLogManager",
    "TenantRecipeManager",
    "RecipeQuestion",
    "RecipeQuestionManager",
    "RecipeSection",
    "RecipeSectionManager",
    "UpdateBranch",
    "UpdateBranchManager",
    "UpdateDashboard",
    "UpdateDashboardManager",
    "UpdateLog",
    "UpdateLogManager",
    "UpdatePackage",
    "UpdatePackageManager",
    "UpdateSettings",
    "UpdateSettingsManager",
    "UpdateSource",
    "UpdateSourceManager",
    "UpdateSourcePackage",
    "UpdateSourcePackageManager",
    "UpdateSourceStatus",
    "UpdateSourceStatusManager",
]
