# Copyright (c) 2006-2025 Broadcom. All Rights Reserved.
# Broadcom Confidential. The term "Broadcom" refers to Broadcom Inc.
# and/or its subsidiaries.

# ******* WARNING - AUTO GENERATED CODE - DO NOT EDIT *******

from typing import NoReturn
from typing import Optional

from pyVmomi.VmomiSupport import ManagedObject

from pyVmomi.vim import ClusterComputeResource
from pyVmomi.vim import HealthUpdate
from pyVmomi.vim import HealthUpdateInfo
from pyVmomi.vim import HostSystem
from pyVmomi.vim import ManagedEntity

class HealthUpdateManager(ManagedObject):
   def RegisterProvider(self, name: str, healthUpdateInfo: list[HealthUpdateInfo]) -> str: ...
   def UnregisterProvider(self, providerId: str) -> NoReturn: ...
   def QueryProviderList(self) -> list[str]: ...
   def HasProvider(self, id: str) -> bool: ...
   def QueryProviderName(self, id: str) -> str: ...
   def QueryHealthUpdateInfos(self, providerId: str) -> list[HealthUpdateInfo]: ...
   def AddMonitoredEntities(self, providerId: str, entities: list[ManagedEntity]) -> NoReturn: ...
   def RemoveMonitoredEntities(self, providerId: str, entities: list[ManagedEntity]) -> NoReturn: ...
   def QueryMonitoredEntities(self, providerId: str) -> list[ManagedEntity]: ...
   def HasMonitoredEntity(self, providerId: str, entity: ManagedEntity) -> bool: ...
   def QueryUnmonitoredHosts(self, providerId: str, cluster: ClusterComputeResource) -> list[HostSystem]: ...
   def PostHealthUpdates(self, providerId: str, updates: list[HealthUpdate]) -> NoReturn: ...
   def QueryHealthUpdates(self, providerId: str) -> list[HealthUpdate]: ...
   def AddFilter(self, providerId: str, filterName: str, infoIds: list[str]) -> str: ...
   def QueryFilterList(self, providerId: str) -> list[str]: ...
   def QueryFilterName(self, filterId: str) -> str: ...
   def QueryFilterInfoIds(self, filterId: str) -> list[str]: ...
   def QueryFilterEntities(self, filterId: str) -> list[ManagedEntity]: ...
   def AddFilterEntities(self, filterId: str, entities: list[ManagedEntity]) -> NoReturn: ...
   def RemoveFilterEntities(self, filterId: str, entities: list[ManagedEntity]) -> NoReturn: ...
   def RemoveFilter(self, filterId: str) -> NoReturn: ...
