# 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 Optional

from pyVmomi.VmomiSupport import ManagedObject

from pyVmomi.vim import Task

from pyVmomi.vim.cluster import VsanHostCreateVmHealthTestResult

from pyVmomi.vim.host import VsanEncryptionHealthSummary
from pyVmomi.vim.host import VsanFileServiceHealthSummary
from pyVmomi.vim.host import VsanHclFirmwareUpdateSpec
from pyVmomi.vim.host import VsanHealthQuerySpec
from pyVmomi.vim.host import VsanHostEMMSummary
from pyVmomi.vim.host import VsanHostHclInfo
from pyVmomi.vim.host import VsanHostQueryCheckLimitsSpec
from pyVmomi.vim.host import VsanIperfClientSpec
from pyVmomi.vim.host import VsanLimitHealthResult
from pyVmomi.vim.host import VsanNetworkDiagnosticsHealthInfo
from pyVmomi.vim.host import VsanNetworkHealthResult
from pyVmomi.vim.host import VsanNetworkLoadTestResult
from pyVmomi.vim.host import VsanObjectOverallHealth
from pyVmomi.vim.host import VsanPhysicalDiskHealthSummary
from pyVmomi.vim.host import VsanProactiveRebalanceInfoEx
from pyVmomi.vim.host import VsanQueryResultHostInfo
from pyVmomi.vim.host import VsanRepairObjectsResult
from pyVmomi.vim.host import VsanSmartStatsHostSummary
from pyVmomi.vim.host import VsanVmdkLoadTestResult
from pyVmomi.vim.host import VsanVmdkLoadTestSpec

from pyVmomi.vim.option import OptionValue

class VsanHealthSystem(ManagedObject):
   def QueryVerifyNetworkSettings(self, peers: list[str], ROBOStretchedClusterWitnesses: list[str], vMotionPeers: list[str], spec: Optional[VsanHealthQuerySpec]) -> VsanNetworkHealthResult: ...
   def QueryCheckLimits(self, spec: Optional[VsanHostQueryCheckLimitsSpec]) -> VsanLimitHealthResult: ...
   def QueryHostInfoByUuids(self, uuids: list[str]) -> list[VsanQueryResultHostInfo]: ...
   def QueryAdvCfg(self, options: list[str], includeAllAdvOptions: Optional[bool], nonDefaultOnly: Optional[bool]) -> list[OptionValue]: ...
   def QueryRunIperfServer(self, multicast: bool, serverIp: Optional[str], durationSec: Optional[int]) -> VsanNetworkLoadTestResult: ...
   def QueryRunIperfClient(self, multicast: bool, serverIp: str, durationSec: Optional[int], spec: Optional[VsanIperfClientSpec]) -> VsanNetworkLoadTestResult: ...
   def QueryObjectHealthSummary(self, objUuids: list[str], includeObjUuids: Optional[bool], localHostOnly: Optional[bool], includeNonComplianceObjDetail: Optional[bool], spec: Optional[VsanHealthQuerySpec]) -> VsanObjectOverallHealth: ...
   def QueryPhysicalDiskHealthSummary(self) -> VsanPhysicalDiskHealthSummary: ...
   def QueryEncryptionHealthSummary(self) -> VsanEncryptionHealthSummary: ...
   def QueryFileServiceHealthSummary(self) -> VsanFileServiceHealthSummary: ...
   def PrepareVmdkLoadTest(self, runname: str, specs: list[VsanVmdkLoadTestSpec]) -> str: ...
   def RunVmdkLoadTest(self, runname: str, durationSec: int, specs: list[VsanVmdkLoadTestSpec]) -> list[VsanVmdkLoadTestResult]: ...
   def CleanupVmdkLoadTest(self, runname: str, specs: list[VsanVmdkLoadTestSpec]) -> str: ...
   def QueryVersion(self, displayVersion: Optional[bool]) -> str: ...
   def CheckClomdLiveness(self) -> bool: ...
   def RepairImmediateObjects(self, uuids: list[str], repairType: Optional[str]) -> VsanRepairObjectsResult: ...
   def GetHclInfo(self, includeVendorInfo: Optional[bool], vsanEsaEligibleDisksOnly: Optional[bool]) -> VsanHostHclInfo: ...
   def StartProactiveRebalance(self, timeSpan: Optional[int], varianceThreshold: Optional[float], timeThreshold: Optional[int], rateThreshold: Optional[int]) -> bool: ...
   def StopProactiveRebalance(self) -> bool: ...
   def GetProactiveRebalanceInfo(self) -> VsanProactiveRebalanceInfoEx: ...
   def WaitForVsanHealthGenerationIdChange(self, timeout: int) -> bool: ...
   def FlashScsiControllerFirmware(self, spec: VsanHclFirmwareUpdateSpec) -> Task: ...
   def CreateVmHealthTest(self, timeout: int) -> VsanHostCreateVmHealthTestResult: ...
   def QuerySmartStats(self, disks: list[str], includeAllDisks: Optional[bool]) -> VsanSmartStatsHostSummary: ...
   def QueryHostEMMState(self) -> VsanHostEMMSummary: ...
   def GetNetworkDiagnosticsHealthInfo(self) -> VsanNetworkDiagnosticsHealthInfo: ...
