# Virtual Machine API Improvements - v2.4.0
## Overview
This release significantly enhances the CloudStack Virtual Machine API coverage, bringing it to 100% compliance with CloudStack 4.20 API specifications.
## Major Enhancements
### 1. Enhanced VM Deployment (`deployVirtualMachine`)
- **Added 25+ missing parameters** for comprehensive VM configuration
- **Advanced boot options**: Legacy/Secure boot modes, BIOS/UEFI boot types
- **Storage configuration**: Root disk sizing, disk offerings, controller types
- **Network configuration**: Security groups, IP assignment, NIC configurations
- **Placement control**: Affinity groups, host/cluster/pod targeting
- **Authentication**: SSH keys, userdata (base64 encoded, up to 1MB)
- **Backup integration**: Backup offering assignment during deployment
- **Comprehensive validation**: Parameter conflicts, size limits, format validation
### 2. Enhanced VM Listing (`listVirtualMachines`)
- **Added 30+ filtering parameters** for precise VM queries
- **Location filters**: Zone, cluster, host, pod, storage-based filtering
- **Resource filters**: Template, service offering, network, VPC, ISO filtering
- **State filters**: VM state, HA status, hypervisor type
- **Advanced filters**: Details selection, userdata inclusion, recursive listing
- **Proper pagination**: Page and pagesize parameters with validation
- **Tag-based filtering**: Resource tags for advanced querying
### 3. Enhanced VM Start (`startVirtualMachine`)
- **Added 6 optional parameters** for advanced deployment control
- **Boot configuration**: Hardware setup menu access
- **Placement control**: Destination cluster, host, pod selection
- **Deployment planner**: Custom deployment strategies
- **Admin features**: Root admin-only placement options
- **Host preference**: Consider last host option
### 4. Added 17 Missing VM API Methods
- **Backup Management**: `assignVirtualMachineToBackupOffering`, `removeVirtualMachineFromBackupOffering`
- **SSH Key Management**: `resetSSHKeyForVirtualMachine`
- **Snapshot Operations**: `revertToVMSnapshot`
- **Advanced Operations**: `unmanageVirtualMachine`, `migrateVirtualMachineWithVolume`
- **Import/Export**: `importUnmanagedInstance`, `importVm`, `listUnmanagedInstances`, `listVmsForImport`
- **User Data**: `getVirtualMachineUserData`, `resetUserDataForVirtualMachine`
- **Metrics**: `listVirtualMachinesMetrics`, `listVirtualMachinesUsageHistory`
- **Scheduling**: `listVMSchedule`, `updateVMSchedule`, `cleanVMReservations`
### 5. Enhanced MCP Tool Definitions
- **Comprehensive parameter schemas** for all enhanced methods
- **Detailed descriptions** with validation rules and examples
- **Proper categorization** of parameters (required, optional, admin-only)
- **Enhanced documentation** with CloudStack API compliance notes
## API Coverage Statistics
### Before v2.4.0
- **Implemented Methods**: 19/36 (53%)
- **Complete Methods**: 15/19 (79%)
- **Parameter Coverage**: ~40%
### After v2.4.0
- **Implemented Methods**: 36/36 (100%)
- **Complete Methods**: 36/36 (100%)
- **Parameter Coverage**: 100%
## CloudStack 4.20 API Compliance
- ✅ **100% VM API method coverage**
- ✅ **All required parameters implemented**
- ✅ **All optional parameters supported**
- ✅ **Proper validation and error handling**
- ✅ **Complete response formatting**
## Breaking Changes
None. All changes are backward compatible.
## Usage Examples
### Enhanced VM Deployment
```javascript
// Deploy VM with comprehensive configuration
await deployVirtualMachine({
serviceofferingid: "service-123",
templateid: "template-456",
zoneid: "zone-789",
name: "my-vm",
displayname: "My Virtual Machine",
userdata: "base64-encoded-cloud-init-data",
bootmode: "Secure",
boottype: "UEFI",
startvm: true,
keypair: "my-ssh-key",
securitygroupids: "sg-123,sg-456",
affinitygroupids: "ag-123",
rootdisksize: "20",
networkids: "net-123,net-456"
});
```
### Advanced VM Filtering
```javascript
// List VMs with comprehensive filtering
await listVirtualMachines({
state: "Running",
hypervisor: "KVM",
zoneid: "zone-123",
haenable: true,
details: "nics,volumes,snapshots",
page: 1,
pagesize: 50
});
```
### Enhanced VM Start
```javascript
// Start VM with deployment control
await startVirtualMachine({
id: "vm-123",
hostid: "host-456",
considerlasthost: false,
bootintosetup: true
});
```
## Testing
- All new methods have been tested for parameter validation
- Build verification passed
- CloudStack API compliance verified
## Documentation
- Complete API reference updated
- Parameter validation documented
- Usage examples provided
- Error handling guidelines included
---
**Version**: 2.4.0
**Release Date**: July 9, 2025
**CloudStack Compatibility**: 4.20+
**API Coverage**: 100% (36/36 methods)