Microsoft Azure Compute Management Client Library for programmatic management of Azure compute resources including virtual machines, scale sets, disks, and related infrastructure.
npx @tessl/cli install tessl/pypi-azure-mgmt-compute@36.0.0Microsoft Azure Compute Management Client Library for Python provides programmatic management of Azure compute resources including virtual machines, virtual machine scale sets, disks, images, galleries, availability sets, and other compute infrastructure components. This comprehensive SDK enables developers to create, configure, monitor, and manage compute resources in Azure through REST API calls with both synchronous and asynchronous operations.
pip install azure-mgmt-computeazure-common>=1.1azure-mgmt-core>=1.6.0isodate>=0.6.1typing-extensions>=4.6.0from azure.mgmt.compute import ComputeManagementClientCommon imports for authentication:
from azure.identity import DefaultAzureCredential
from azure.mgmt.compute import ComputeManagementClientFor accessing models and data types:
from azure.mgmt.compute import models
from azure.mgmt.compute.models import (
VirtualMachine,
VirtualMachineScaleSet,
Disk,
VirtualMachineExtension,
VirtualMachineSizeTypes,
OperatingSystemTypes
)For async operations:
from azure.mgmt.compute.aio import ComputeManagementClient as AsyncComputeManagementClient
from azure.identity.aio import DefaultAzureCredential as AsyncDefaultAzureCredentialfrom azure.identity import DefaultAzureCredential
from azure.mgmt.compute import ComputeManagementClient
# Initialize the client
credential = DefaultAzureCredential()
subscription_id = "your-subscription-id"
compute_client = ComputeManagementClient(credential, subscription_id)
# List virtual machines in a resource group
vms = compute_client.virtual_machines.list("my-resource-group")
for vm in vms:
print(f"VM: {vm.name}, Status: {vm.provisioning_state}")
# Get VM details
vm = compute_client.virtual_machines.get("my-resource-group", "my-vm")
print(f"VM Location: {vm.location}")
print(f"VM Size: {vm.hardware_profile.vm_size}")
# Create a simple VM (simplified example)
vm_parameters = {
'location': 'East US',
'hardware_profile': {'vm_size': 'Standard_B1s'},
'storage_profile': {
'image_reference': {
'publisher': 'Canonical',
'offer': 'UbuntuServer',
'sku': '18.04-LTS',
'version': 'latest'
}
},
'os_profile': {
'computer_name': 'myvm',
'admin_username': 'azuser',
'admin_password': 'Password123!'
},
'network_profile': {
'network_interfaces': [{
'id': '/subscriptions/.../networkInterfaces/mynic'
}]
}
}
# This is a long-running operation
operation = compute_client.virtual_machines.begin_create_or_update(
"my-resource-group",
"my-vm",
vm_parameters
)
vm = operation.result() # Wait for completionThe Azure Compute Management Client is organized around resource-specific operation classes, each providing CRUD operations and specialized management functions:
This design provides comprehensive coverage of Azure's compute services while maintaining a consistent programming model across all resource types.
Complete lifecycle management of Azure Virtual Machines including creation, configuration, monitoring, scaling, and deletion. Supports both Windows and Linux VMs with extensive customization options.
class VirtualMachinesOperations:
def list(resource_group_name: str, *, filter: Optional[str] = None, expand: Optional[ExpandTypeForListVMs] = None) -> Iterable[VirtualMachine]: ...
def list_all(*, status_only: Optional[str] = None, filter: Optional[str] = None, expand: Optional[ExpandTypeForListVMs] = None) -> Iterable[VirtualMachine]: ...
def get(resource_group_name: str, vm_name: str, *, expand: Optional[InstanceViewTypes] = None) -> VirtualMachine: ...
def begin_create_or_update(resource_group_name: str, vm_name: str, parameters: VirtualMachine, *, if_match: Optional[str] = None, if_none_match: Optional[str] = None) -> LROPoller[VirtualMachine]: ...
def begin_update(resource_group_name: str, vm_name: str, parameters: VirtualMachineUpdate) -> LROPoller[VirtualMachine]: ...
def begin_delete(resource_group_name: str, vm_name: str, *, force_deletion: Optional[bool] = None) -> LROPoller[None]: ...
def begin_start(resource_group_name: str, vm_name: str) -> LROPoller[None]: ...
def begin_restart(resource_group_name: str, vm_name: str) -> LROPoller[None]: ...
def begin_power_off(resource_group_name: str, vm_name: str, *, skip_shutdown: Optional[bool] = None) -> LROPoller[None]: ...
def begin_deallocate(resource_group_name: str, vm_name: str, *, hibernate: Optional[bool] = None) -> LROPoller[None]: ...
def begin_redeploy(resource_group_name: str, vm_name: str) -> LROPoller[None]: ...
def begin_reimage(resource_group_name: str, vm_name: str, *, parameters: Optional[VirtualMachineReimageParameters] = None) -> LROPoller[None]: ...
def instance_view(resource_group_name: str, vm_name: str) -> VirtualMachineInstanceView: ...
def begin_run_command(resource_group_name: str, vm_name: str, parameters: RunCommandInput) -> LROPoller[RunCommandResult]: ...
def begin_assess_patches(resource_group_name: str, vm_name: str) -> LROPoller[VirtualMachineAssessPatchesResult]: ...
def begin_install_patches(resource_group_name: str, vm_name: str, install_patches_input: VirtualMachineInstallPatchesParameters) -> LROPoller[VirtualMachineInstallPatchesResult]: ...Comprehensive management of Virtual Machine Scale Sets for auto-scaling applications, including orchestration modes, scaling policies, and rolling upgrades.
class VirtualMachineScaleSetsOperations:
def list(resource_group_name: str) -> Iterable[VirtualMachineScaleSet]: ...
def list_all() -> Iterable[VirtualMachineScaleSet]: ...
def get(resource_group_name: str, vm_scale_set_name: str, *, expand: Optional[ExpandTypesForGetVMScaleSets] = None) -> VirtualMachineScaleSet: ...
def begin_create_or_update(resource_group_name: str, vm_scale_set_name: str, parameters: VirtualMachineScaleSet, *, if_match: Optional[str] = None, if_none_match: Optional[str] = None) -> LROPoller[VirtualMachineScaleSet]: ...
def begin_update(resource_group_name: str, vm_scale_set_name: str, parameters: VirtualMachineScaleSetUpdate) -> LROPoller[VirtualMachineScaleSet]: ...
def begin_delete(resource_group_name: str, vm_scale_set_name: str, *, force_deletion: Optional[bool] = None) -> LROPoller[None]: ...
def begin_deallocate(resource_group_name: str, vm_scale_set_name: str, *, vm_instance_i_ds: Optional[VirtualMachineScaleSetVMInstanceIDs] = None) -> LROPoller[None]: ...
def begin_delete_instances(resource_group_name: str, vm_scale_set_name: str, vm_instance_i_ds: VirtualMachineScaleSetVMInstanceRequiredIDs, *, force_deletion: Optional[bool] = None) -> LROPoller[None]: ...
def begin_power_off(resource_group_name: str, vm_scale_set_name: str, *, skip_shutdown: Optional[bool] = None, vm_instance_i_ds: Optional[VirtualMachineScaleSetVMInstanceIDs] = None) -> LROPoller[None]: ...
def begin_restart(resource_group_name: str, vm_scale_set_name: str, *, vm_instance_i_ds: Optional[VirtualMachineScaleSetVMInstanceIDs] = None) -> LROPoller[None]: ...
def begin_start(resource_group_name: str, vm_scale_set_name: str, *, vm_instance_i_ds: Optional[VirtualMachineScaleSetVMInstanceIDs] = None) -> LROPoller[None]: ...
def begin_update_instances(resource_group_name: str, vm_scale_set_name: str, vm_instance_i_ds: VirtualMachineScaleSetVMInstanceRequiredIDs) -> LROPoller[None]: ...
def begin_reimage(resource_group_name: str, vm_scale_set_name: str, *, vm_scale_set_reimage_input: Optional[VirtualMachineScaleSetReimageParameters] = None) -> LROPoller[None]: ...
def begin_reimage_all(resource_group_name: str, vm_scale_set_name: str, *, vm_instance_i_ds: Optional[VirtualMachineScaleSetVMInstanceIDs] = None) -> LROPoller[None]: ...
def begin_perform_maintenance(resource_group_name: str, vm_scale_set_name: str, *, vm_instance_i_ds: Optional[VirtualMachineScaleSetVMInstanceIDs] = None) -> LROPoller[None]: ...
def get_instance_view(resource_group_name: str, vm_scale_set_name: str) -> VirtualMachineScaleSetInstanceView: ...
def list_skus(resource_group_name: str, vm_scale_set_name: str) -> Iterable[VirtualMachineScaleSetSku]: ...
def get_os_upgrade_history(resource_group_name: str, vm_scale_set_name: str) -> Iterable[UpgradeOperationHistoryStatus]: ...
def begin_set_orchestration_service_state(resource_group_name: str, vm_scale_set_name: str, parameters: OrchestrationServiceStateInput) -> LROPoller[None]: ...Management of managed disks, snapshots, disk encryption, and disk access controls for persistent storage solutions.
class DisksOperations:
def list() -> Iterable[Disk]: ...
def list_by_resource_group(resource_group_name: str) -> Iterable[Disk]: ...
def get(resource_group_name: str, disk_name: str) -> Disk: ...
def begin_create_or_update(resource_group_name: str, disk_name: str, disk: Disk) -> LROPoller[Disk]: ...
def begin_update(resource_group_name: str, disk_name: str, disk: DiskUpdate) -> LROPoller[Disk]: ...
def begin_delete(resource_group_name: str, disk_name: str) -> LROPoller[None]: ...
def begin_grant_access(resource_group_name: str, disk_name: str, grant_access_data: GrantAccessData) -> LROPoller[AccessUri]: ...
def begin_revoke_access(resource_group_name: str, disk_name: str) -> LROPoller[None]: ...
class SnapshotsOperations:
def list() -> Iterable[Snapshot]: ...
def list_by_resource_group(resource_group_name: str) -> Iterable[Snapshot]: ...
def get(resource_group_name: str, snapshot_name: str) -> Snapshot: ...
def begin_create_or_update(resource_group_name: str, snapshot_name: str, snapshot: Snapshot) -> LROPoller[Snapshot]: ...
def begin_update(resource_group_name: str, snapshot_name: str, snapshot: SnapshotUpdate) -> LROPoller[Snapshot]: ...
def begin_delete(resource_group_name: str, snapshot_name: str) -> LROPoller[None]: ...
def begin_grant_access(resource_group_name: str, snapshot_name: str, grant_access_data: GrantAccessData) -> LROPoller[AccessUri]: ...
def begin_revoke_access(resource_group_name: str, snapshot_name: str) -> LROPoller[None]: ...Management of custom VM images, shared image galleries, and image versions for standardized deployments across organizations.
class ImagesOperations:
def list() -> Iterable[Image]: ...
def get(resource_group_name: str, image_name: str) -> Image: ...
def begin_create_or_update(resource_group_name: str, image_name: str, parameters: Image) -> LROPoller[Image]: ...
class GalleriesOperations:
def list() -> Iterable[Gallery]: ...
def get(resource_group_name: str, gallery_name: str) -> Gallery: ...
def begin_create_or_update(resource_group_name: str, gallery_name: str, gallery: Gallery) -> LROPoller[Gallery]: ...Management of supporting infrastructure including availability sets, proximity placement groups, dedicated hosts, and capacity reservations.
class AvailabilitySetsOperations:
def list(resource_group_name: str) -> Iterable[AvailabilitySet]: ...
def get(resource_group_name: str, availability_set_name: str) -> AvailabilitySet: ...
def create_or_update(resource_group_name: str, availability_set_name: str, parameters: AvailabilitySet) -> AvailabilitySet: ...
class DedicatedHostsOperations:
def list_by_host_group(resource_group_name: str, host_group_name: str) -> Iterable[DedicatedHost]: ...
def get(resource_group_name: str, host_group_name: str, host_name: str) -> DedicatedHost: ...Management of Azure Cloud Services including roles, update domains, and operating system configurations.
class CloudServicesOperations:
def list(resource_group_name: str) -> Iterable[CloudService]: ...
def get(resource_group_name: str, cloud_service_name: str) -> CloudService: ...
def begin_create_or_update(resource_group_name: str, cloud_service_name: str, parameters: CloudService) -> LROPoller[CloudService]: ...Management of virtual machine extensions for software deployment, configuration, and monitoring.
class VirtualMachineExtensionsOperations:
def begin_create_or_update(resource_group_name: str, vm_name: str, vm_extension_name: str, extension_parameters: VirtualMachineExtension) -> LROPoller[VirtualMachineExtension]: ...
def begin_delete(resource_group_name: str, vm_name: str, vm_extension_name: str) -> LROPoller[None]: ...
def get(resource_group_name: str, vm_name: str, vm_extension_name: str, *, expand: Optional[str] = None) -> VirtualMachineExtension: ...
def list(resource_group_name: str, vm_name: str, *, expand: Optional[str] = None) -> Iterable[VirtualMachineExtension]: ...
class VirtualMachineRunCommandsOperations:
def begin_create_or_update(resource_group_name: str, vm_name: str, run_command_name: str, run_command: VirtualMachineRunCommand) -> LROPoller[VirtualMachineRunCommand]: ...
def begin_delete(resource_group_name: str, vm_name: str, run_command_name: str) -> LROPoller[None]: ...
def get(resource_group_name: str, vm_name: str, run_command_name: str, *, expand: Optional[str] = None) -> VirtualMachineRunCommand: ...
def list(resource_group_name: str, vm_name: str, *, expand: Optional[str] = None) -> Iterable[VirtualMachineRunCommand]: ...Management of VM images from marketplace and custom sources.
class VirtualMachineImagesOperations:
def get(location: str, publisher_name: str, offer: str, skus: str, version: str) -> VirtualMachineImage: ...
def list(location: str, publisher_name: str, offer: str, skus: str, *, filter: Optional[str] = None, top: Optional[int] = None, orderby: Optional[str] = None) -> Iterable[VirtualMachineImageResource]: ...
def list_offers(location: str, publisher_name: str) -> Iterable[VirtualMachineImageResource]: ...
def list_publishers(location: str) -> Iterable[VirtualMachineImageResource]: ...
def list_skus(location: str, publisher_name: str, offer: str) -> Iterable[VirtualMachineImageResource]: ...
class VirtualMachineImagesEdgeZoneOperations:
def list_publishers(location: str, edge_zone: str) -> Iterable[VirtualMachineImageResource]: ...
def list_offers(location: str, edge_zone: str, publisher_name: str) -> Iterable[VirtualMachineImageResource]: ...
def list_skus(location: str, edge_zone: str, publisher_name: str, offer: str) -> Iterable[VirtualMachineImageResource]: ...
def list(location: str, edge_zone: str, publisher_name: str, offer: str, skus: str, *, filter: Optional[str] = None, top: Optional[int] = None, orderby: Optional[str] = None) -> Iterable[VirtualMachineImageResource]: ...
def get(location: str, edge_zone: str, publisher_name: str, offer: str, skus: str, version: str) -> VirtualMachineImage: ...
class VirtualMachineExtensionImagesOperations:
def get(location: str, publisher_name: str, type: str, version: str) -> VirtualMachineExtensionImage: ...
def list_types(location: str, publisher_name: str) -> Iterable[VirtualMachineExtensionImage]: ...
def list_versions(location: str, publisher_name: str, type: str, *, filter: Optional[str] = None, top: Optional[int] = None, orderby: Optional[str] = None) -> Iterable[VirtualMachineExtensionImage]: ...Resource size information, usage metrics, and log analytics capabilities.
class VirtualMachineSizesOperations:
def list(location: str) -> Iterable[VirtualMachineSize]: ...
class ResourceSkusOperations:
def list(*, filter: Optional[str] = None, include_extended_locations: Optional[str] = None) -> Iterable[ResourceSku]: ...
class UsageOperations:
def list(location: str) -> Iterable[Usage]: ...
class LogAnalyticsOperations:
def begin_export_request_rate_by_interval(location: str, parameters: RequestRateByIntervalInput) -> LROPoller[LogAnalyticsOperationResult]: ...
def begin_export_throttled_requests(location: str, parameters: ThrottledRequestsInput) -> LROPoller[LogAnalyticsOperationResult]: ...Management of restore points and restore point collections for VM backup and recovery.
class RestorePointCollectionsOperations:
def create_or_update(resource_group_name: str, restore_point_collection_name: str, parameters: RestorePointCollection) -> RestorePointCollection: ...
def delete(resource_group_name: str, restore_point_collection_name: str) -> None: ...
def get(resource_group_name: str, restore_point_collection_name: str, *, expand: Optional[RestorePointCollectionExpandOptions] = None) -> RestorePointCollection: ...
def list(resource_group_name: str) -> Iterable[RestorePointCollection]: ...
def list_all() -> Iterable[RestorePointCollection]: ...
class RestorePointsOperations:
def begin_create(resource_group_name: str, restore_point_collection_name: str, restore_point_name: str, parameters: RestorePoint) -> LROPoller[RestorePoint]: ...
def begin_delete(resource_group_name: str, restore_point_collection_name: str, restore_point_name: str) -> LROPoller[None]: ...
def get(resource_group_name: str, restore_point_collection_name: str, restore_point_name: str, *, expand: Optional[RestorePointExpandOptions] = None) -> RestorePoint: ...Management of shared galleries, community galleries, and their image versions for broader distribution.
class SharedGalleriesOperations:
def get(location: str, gallery_unique_name: str) -> SharedGallery: ...
def list(location: str, *, shared_to: Optional[SharedToValues] = None) -> Iterable[SharedGallery]: ...
class SharedGalleryImagesOperations:
def get(location: str, gallery_unique_name: str, gallery_image_name: str) -> SharedGalleryImage: ...
def list(location: str, gallery_unique_name: str, *, shared_to: Optional[SharedToValues] = None) -> Iterable[SharedGalleryImage]: ...
class SharedGalleryImageVersionsOperations:
def get(location: str, gallery_unique_name: str, gallery_image_name: str, gallery_image_version_name: str) -> SharedGalleryImageVersion: ...
def list(location: str, gallery_unique_name: str, gallery_image_name: str, *, shared_to: Optional[SharedToValues] = None) -> Iterable[SharedGalleryImageVersion]: ...
class CommunityGalleriesOperations:
def get(location: str, public_gallery_name: str) -> CommunityGallery: ...
class CommunityGalleryImagesOperations:
def get(location: str, public_gallery_name: str, gallery_image_name: str) -> CommunityGalleryImage: ...
def list(location: str, public_gallery_name: str) -> Iterable[CommunityGalleryImage]: ...
class CommunityGalleryImageVersionsOperations:
def get(location: str, public_gallery_name: str, gallery_image_name: str, gallery_image_version_name: str) -> CommunityGalleryImageVersion: ...
def list(location: str, public_gallery_name: str, gallery_image_name: str) -> Iterable[CommunityGalleryImageVersion]: ...
class GallerySharingProfileOperations:
def begin_update(resource_group_name: str, gallery_name: str, sharing_update: SharingUpdate) -> LROPoller[SharingUpdate]: ...Management of disk-level restore points for granular backup and recovery.
class DiskRestorePointOperations:
def get(resource_group_name: str, restore_point_collection_name: str, vm_restore_point_name: str, disk_restore_point_name: str) -> DiskRestorePoint: ...
def list_by_restore_point(resource_group_name: str, restore_point_collection_name: str, vm_restore_point_name: str) -> Iterable[DiskRestorePoint]: ...
def begin_grant_access(resource_group_name: str, restore_point_collection_name: str, vm_restore_point_name: str, disk_restore_point_name: str, grant_access_data: GrantAccessData) -> LROPoller[AccessUri]: ...
def begin_revoke_access(resource_group_name: str, restore_point_collection_name: str, vm_restore_point_name: str, disk_restore_point_name: str) -> LROPoller[None]: ...General operations for listing available compute operations and getting operation status.
class Operations:
def list() -> Iterable[ComputeOperationValue]: ...class ComputeManagementClient:
"""
Main client for Azure Compute Management operations.
Args:
credential: Azure credential for authentication
subscription_id: Azure subscription ID
base_url: Service URL (optional)
polling_interval: LRO polling interval in seconds (optional)
"""
def __init__(
self,
credential: TokenCredential,
subscription_id: str,
base_url: Optional[str] = None,
**kwargs: Any
) -> None: ...
def close(self) -> None: ...
def __enter__(self) -> Self: ...
def __exit__(self, *exc_details: Any) -> None: ...
class VirtualMachine:
"""Describes a Virtual Machine."""
location: str
tags: Optional[Dict[str, str]]
hardware_profile: Optional[HardwareProfile]
storage_profile: Optional[StorageProfile]
os_profile: Optional[OSProfile]
network_profile: Optional[NetworkProfile]
provisioning_state: Optional[str]
instance_view: Optional[VirtualMachineInstanceView]
class VirtualMachineScaleSet:
"""Describes a Virtual Machine Scale Set."""
location: str
tags: Optional[Dict[str, str]]
sku: Optional[Sku]
upgrade_policy: Optional[UpgradePolicy]
virtual_machine_profile: Optional[VirtualMachineScaleSetVMProfile]
provisioning_state: Optional[str]
orchestration_mode: Optional[OrchestrationMode]
class Disk:
"""Disk resource."""
location: str
tags: Optional[Dict[str, str]]
sku: Optional[DiskSku]
creation_data: CreationData
disk_size_gb: Optional[int]
disk_state: Optional[DiskState]
provisioning_state: Optional[str]
# Key Enum Types
class VirtualMachineSizeTypes(str, Enum):
"""Available VM sizes."""
BASIC_A0 = "Basic_A0"
BASIC_A1 = "Basic_A1"
BASIC_A2 = "Basic_A2"
BASIC_A3 = "Basic_A3"
BASIC_A4 = "Basic_A4"
STANDARD_A0 = "Standard_A0"
STANDARD_A1 = "Standard_A1"
STANDARD_A1_V2 = "Standard_A1_v2"
STANDARD_A2 = "Standard_A2"
STANDARD_A2_V2 = "Standard_A2_v2"
STANDARD_A2M_V2 = "Standard_A2m_v2"
STANDARD_A4 = "Standard_A4"
STANDARD_A4_V2 = "Standard_A4_v2"
STANDARD_A4M_V2 = "Standard_A4m_v2"
STANDARD_A8 = "Standard_A8"
STANDARD_A8_V2 = "Standard_A8_v2"
STANDARD_A8M_V2 = "Standard_A8m_v2"
STANDARD_B1MS = "Standard_B1ms"
STANDARD_B1S = "Standard_B1s"
STANDARD_B2MS = "Standard_B2ms"
STANDARD_B2S = "Standard_B2s"
STANDARD_B4MS = "Standard_B4ms"
STANDARD_B8MS = "Standard_B8ms"
STANDARD_D1 = "Standard_D1"
STANDARD_D11 = "Standard_D11"
STANDARD_D11_V2 = "Standard_D11_v2"
STANDARD_D12 = "Standard_D12"
STANDARD_D12_V2 = "Standard_D12_v2"
STANDARD_D13 = "Standard_D13"
STANDARD_D13_V2 = "Standard_D13_v2"
STANDARD_D14 = "Standard_D14"
STANDARD_D14_V2 = "Standard_D14_v2"
STANDARD_D15_V2 = "Standard_D15_v2"
STANDARD_D1_V2 = "Standard_D1_v2"
STANDARD_D2 = "Standard_D2"
STANDARD_D2_V2 = "Standard_D2_v2"
STANDARD_D2_V3 = "Standard_D2_v3"
STANDARD_D2S_V3 = "Standard_D2s_v3"
STANDARD_D3 = "Standard_D3"
STANDARD_D3_V2 = "Standard_D3_v2"
STANDARD_D4 = "Standard_D4"
STANDARD_D4_V2 = "Standard_D4_v2"
STANDARD_D4_V3 = "Standard_D4_v3"
STANDARD_D4S_V3 = "Standard_D4s_v3"
STANDARD_D5_V2 = "Standard_D5_v2"
STANDARD_D8_V3 = "Standard_D8_v3"
STANDARD_D8S_V3 = "Standard_D8s_v3"
STANDARD_D16_V3 = "Standard_D16_v3"
STANDARD_D16S_V3 = "Standard_D16s_v3"
STANDARD_D32_V3 = "Standard_D32_v3"
STANDARD_D32S_V3 = "Standard_D32s_v3"
STANDARD_D64_V3 = "Standard_D64_v3"
STANDARD_D64S_V3 = "Standard_D64s_v3"
class OperatingSystemTypes(str, Enum):
"""Operating system types."""
WINDOWS = "Windows"
LINUX = "Linux"
class DiskCreateOption(str, Enum):
"""Disk creation options."""
FROM_IMAGE = "FromImage"
EMPTY = "Empty"
ATTACH = "Attach"
COPY = "Copy"
RESTORE = "Restore"
IMPORT = "Import"
UPLOAD = "Upload"
COPY_START = "CopyStart"
IMPORT_SECURE = "ImportSecure"
UPLOAD_PREPARED_SECURE = "UploadPreparedSecure"
class DiskState(str, Enum):
"""Disk state."""
UNATTACHED = "Unattached"
ATTACHED = "Attached"
RESERVED = "Reserved"
ACTIVE_SAS = "ActiveSAS"
READY_TO_UPLOAD = "ReadyToUpload"
ACTIVE_UPLOAD = "ActiveUpload"
class VirtualMachineEvictionPolicyTypes(str, Enum):
"""VM eviction policies for Spot VMs."""
DEALLOCATE = "Deallocate"
DELETE = "Delete"
class VirtualMachinePriorityTypes(str, Enum):
"""VM priority types."""
REGULAR = "Regular"
LOW = "Low"
SPOT = "Spot"
class InstanceViewTypes(str, Enum):
"""Instance view expand types."""
INSTANCE_VIEW = "instanceView"
class ExpandTypeForListVMs(str, Enum):
"""Expand types for listing VMs."""
INSTANCE_VIEW = "instanceView"
class ExpandTypesForGetVMScaleSets(str, Enum):
"""Expand types for getting scale sets."""
USER_DATA = "userData"
# Access and Authentication Types
class AccessLevel(str, Enum):
"""Access levels for disk access."""
NONE = "None"
READ = "Read"
WRITE = "Write"
# LRO and Operation Result Types
class LROPoller:
"""Long-running operation poller."""
def result(self, timeout: Optional[float] = None): ...
def done(self) -> bool: ...
def status(self) -> str: ...
def wait(self, timeout: Optional[float] = None) -> None: ...
# Core Model Components
class SubResource:
"""Sub-resource reference."""
id: Optional[str]
class Sku:
"""SKU information."""
name: Optional[str]
tier: Optional[str]
capacity: Optional[int]