# 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 Extension
from pyVmomi.vim import ManagedEntity

from pyVmomi.vmodl import DynamicData

class ExtensionManager(ManagedObject):
   class IpAllocationUsage(DynamicData):
      extensionKey: str
      numAddresses: int

   @property
   def extensionList(self) -> list[Extension]: ...

   def UnregisterExtension(self, extensionKey: str) -> NoReturn: ...
   def FindExtension(self, extensionKey: str) -> Optional[Extension]: ...
   def RegisterExtension(self, extension: Extension) -> NoReturn: ...
   def UpdateExtension(self, extension: Extension) -> NoReturn: ...
   def GetPublicKey(self) -> str: ...
   def SetPublicKey(self, extensionKey: str, publicKey: str) -> NoReturn: ...
   def SetCertificate(self, extensionKey: str, certificatePem: Optional[str]) -> NoReturn: ...
   def SetServiceAccount(self, extensionKey: str, serviceAccount: str) -> NoReturn: ...
   def QueryManagedBy(self, extensionKey: str) -> list[ManagedEntity]: ...
   def QueryExtensionIpAllocationUsage(self, extensionKeys: list[str]) -> list[IpAllocationUsage]: ...
