canonical: https://jentic.com/apis/azure.com/azure-compute-management

# Microsoft Azure Azure Compute Management

Provision, configure, and operate virtual machines, scale sets, availability sets, and dedicated hosts across Azure regions. The API covers the full VM lifecycle from image selection and disk configuration to power management and diagnostics, plus proximity placement groups and host groups for latency-sensitive workloads.

## For AI agents

Provision and manage Azure virtual machines, VM scale sets, availability sets, and dedicated hosts. Control VM power state, configure disks, and retrieve usage metrics across subscriptions.

## Scope

Does not handle networking (VNets, NSGs), storage accounts, or Azure Kubernetes Service - use for virtual machine and scale set lifecycle management only.

## Capabilities

- Provision virtual machines with specified OS images, VM sizes, and disk configurations across Azure regions
- Scale VM fleets using Virtual Machine Scale Sets with automatic instance distribution across fault domains
- Assign VMs to dedicated hosts for regulatory isolation and single-tenant hardware requirements
- Capture VM images for replication and rapid provisioning of preconfigured environments
- Retrieve compute usage quotas and current utilization per subscription and region
- Configure proximity placement groups to minimize inter-VM network latency for distributed workloads
- Query available VM sizes, publishers, and marketplace image offers for a given Azure region

## Use cases

### AI Agent VM Provisioning

AI agents use the Azure Compute Management API through Jentic to provision virtual machines on demand without navigating the Azure portal. An agent searches for the VM creation operation, receives the request schema with required parameters for location, image reference, hardware profile, and network interface, then executes the call. Azure provisions the VM within minutes, returning the resource ID and public IP for immediate SSH or RDP access.

Example prompt: Create a Standard_D4s_v3 virtual machine in eastus2 from the Ubuntu 22.04 LTS marketplace image with a 128GB OS disk and assign it to an existing subnet

### Auto-Scaling VM Fleets

Manage Virtual Machine Scale Sets (VMSS) to automatically distribute compute capacity across fault domains and availability zones. The API provides operations to adjust instance counts, configure scaling policies, and roll out OS updates across the fleet. Scale sets maintain application availability during zone failures and support both uniform and flexible orchestration modes for different workload patterns.

Example prompt: Scale the VM Scale Set 'web-tier-vmss' in resource group 'production-rg' to 10 instances and verify all instances reach Running state

### Cost Management through VM Deallocation

Deallocate virtual machines during off-hours to eliminate compute charges while preserving disk state and network configuration. The deallocate operation releases the compute host but retains the VM definition, OS disk, and IP assignments. Restart operations bring the VM back with the same configuration, enabling scheduled cost reduction for development and batch-processing workloads.

Example prompt: Deallocate the virtual machine 'dev-server-01' in resource group 'dev-rg' and confirm the power state changes to deallocated

### Marketplace Image Discovery

Query available VM images by publisher, offer, and SKU to select the right operating system and software stack before provisioning. The API lists all publishers in a region, their image offers, and specific SKU versions. This enables agents to find the latest patched image version for compliance requirements or select specialized marketplace images for GPU workloads and database servers.

Example prompt: List all available SKU versions for the 'Canonical' publisher, '0001-com-ubuntu-server-jammy' offer in the westeurope region

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| PUT | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName} | Create or update a virtual machine |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.Compute/virtualMachines | List all VMs in a subscription |
| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/deallocate | Deallocate a VM to stop compute billing |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/vmSizes | List available VM sizes in a region |
| PUT | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName} | Create or update a VM Scale Set |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/usages | Get compute usage quotas for a region |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.Compute/images | List all custom images in a subscription |
| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/capture | Capture a VM as a reusable image |

## Key resources

- **Virtual Machines** — Individual compute instances with configurable sizes, OS images, disks, and network interfaces
- **Virtual Machine Scale Sets** — Groups of identical VMs that scale automatically across fault domains and zones
- **Availability Sets** — Logical groupings ensuring VMs are distributed across fault and update domains
- **Images** — Custom VM images captured from existing VMs for rapid provisioning
- **Dedicated Hosts** — Single-tenant physical servers for compliance and licensing isolation
- **Proximity Placement Groups** — Logical groupings minimizing network latency between co-located VMs

## Why Jentic

- **Setup:** Wiring Azure Compute by hand means an Azure AD app registration for the OAuth implicit flow against management.azure.com, role assignments across subscriptions and resource groups, and building ARM request bodies for VMs and scale sets yourself. Through Jentic you install once, import Azure Compute Management from the API Directory, store the Azure AD credential once, and your agent calls it.
- **Permission scoping:** The subscription, resource group, and VM or scale set name are all URL path parameters (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}), so a rule can pin the agent to one resource group and its machines. You choose the operations it may call, so destructive ones like deallocating a VM or deleting a scale set are not included unless you add them.
- **Credential handling:** Your Azure service principal credentials are stored once, encrypted, by your own Jentic One instance and injected as a scoped bearer token at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'provision a virtual machine in Azure' or 'deallocate a VM to stop billing', and Jentic returns the matching Compute Management operation with its full ARM input schema so the agent calls the right endpoint without loading all 109 paths.

## Related APIs

- **AWS App Runner** — App Runner deploys containers as managed services while Azure Compute provides full IaaS VM control
- **DigitalOcean API** — DigitalOcean offers simpler Droplet VMs with flat pricing vs Azure's enterprise-grade VM configurations
- **Linode API** — Linode provides Linux-focused cloud compute with simpler pricing compared to Azure's broader service catalog

## FAQ

### What authentication does the Azure Compute Management API use?

The API uses OAuth 2.0 with Azure Active Directory implicit flow. Access tokens must include the https://management.azure.com/ audience scope. Through Jentic, your Azure service principal credentials are stored encrypted in your Jentic One instance, and agents receive scoped bearer tokens without handling OAuth flows directly.

### Can I create a virtual machine with the Azure Compute API through Jentic?

Yes. Search Jentic for 'create a virtual machine in Azure' and the agent receives the PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName} schema. Provide the location, hardware profile (VM size), OS image reference, storage profile, and network interface ID to provision the VM.

### What are the rate limits for the Azure Compute Management API?

Azure Resource Manager enforces per-subscription throttling at 12,000 read requests and 1,200 write requests per hour per region. VM operations like create, start, and deallocate count as writes. If you exceed limits, responses return HTTP 429 with a Retry-After header indicating when to retry.

### How do I list available VM sizes in a specific Azure region?

Use the GET /subscriptions/{subscriptionId}/providers/Microsoft.Compute/locations/{location}/vmSizes endpoint. Replace {location} with the region code (e.g., 'eastus2'). The response lists all available sizes with vCPU count, memory, max data disks, and temporary storage capacity for each size.

### Can I deallocate a VM to stop charges but keep its configuration?

Yes. The POST .../virtualMachines/{vmName}/deallocate operation releases the compute host and stops billing for compute. The VM's OS disk, data disks, network interfaces, and public IPs are preserved. Use the start operation to re-provision compute when needed.

### How does Jentic simplify Azure VM management for AI agents?

Agents search by intent (e.g., 'scale out my Azure VM fleet') and Jentic returns the matching operation with the full request schema. No Azure SDK installation, OAuth token exchange, or ARM template authoring required. Install with pip install jentic and run it through Jentic One, the self-hosted execution layer.

### Can I limit what my agent is allowed to do with the Azure Compute Management API?

Yes. Because Jentic One is self-hosted, your own rules decide which operations and credentials the agent may use, and you pick exactly which Compute Management operations it can call, so destructive ones like deallocating a VM or deleting a scale set stay off unless you add them. The subscription, resource group, and VM or scale set name are all URL path parameters, so a rule can pin the agent to a single resource group and only the machines within it. Your Azure service principal credential is stored encrypted by your own instance and injected as a scoped bearer token at execution time, never entering the agent's prompt or logs.
