or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

cloud-services.mddisks-storage.mdimages-galleries.mdindex.mdinfrastructure.mdscale-sets.mdvirtual-machines.md
tile.json

tessl/pypi-azure-mgmt-compute

Microsoft Azure Compute Management Client Library for programmatic management of Azure compute resources including virtual machines, scale sets, disks, and related infrastructure.

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
pypipkg:pypi/azure-mgmt-compute@36.0.x

To install, run

npx @tessl/cli install tessl/pypi-azure-mgmt-compute@36.0.0

index.mddocs/

Azure Compute Management Client

Microsoft 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.

Package Information

  • Package Name: azure-mgmt-compute
  • Language: Python
  • Version: 36.0.0
  • Python Support: >=3.9
  • Installation: pip install azure-mgmt-compute
  • Dependencies:
    • azure-common>=1.1
    • azure-mgmt-core>=1.6.0
    • isodate>=0.6.1
    • typing-extensions>=4.6.0

Core Imports

from azure.mgmt.compute import ComputeManagementClient

Common imports for authentication:

from azure.identity import DefaultAzureCredential
from azure.mgmt.compute import ComputeManagementClient

For 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 AsyncDefaultAzureCredential

Basic Usage

from 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 completion

Architecture

The Azure Compute Management Client is organized around resource-specific operation classes, each providing CRUD operations and specialized management functions:

  • ComputeManagementClient: Main client class that orchestrates all compute operations
  • Operation Classes: Resource-specific managers (VirtualMachinesOperations, DisksOperations, etc.)
  • Model Classes: Data structures representing Azure compute resources and their properties
  • Long-Running Operations (LRO): Async operations for resource creation, updates, and deletions
  • Instance Views: Real-time status and diagnostic information for compute resources

This design provides comprehensive coverage of Azure's compute services while maintaining a consistent programming model across all resource types.

Capabilities

Virtual Machine Management

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]: ...

Virtual Machine Management

Virtual Machine Scale Set Management

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]: ...

Virtual Machine Scale Sets

Disk and Storage Management

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]: ...

Disk and Storage Management

Image and Gallery Management

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]: ...

Image and Gallery Management

Infrastructure Management

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: ...

Infrastructure Management

Cloud Services Management

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]: ...

Cloud Services Management

VM Extensions Management

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]: ...

VM Images and Marketplace

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 Management and Analytics

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]: ...

Restore Points and Backup

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: ...

Shared and Community Galleries

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]: ...

Disk Restore Points

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

General operations for listing available compute operations and getting operation status.

class Operations:
    def list() -> Iterable[ComputeOperationValue]: ...

Core Types

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]