canonical: https://jentic.com/apis/azure.com/sqlvirtualmachinemanagementclient

# Microsoft Azure SqlVirtualMachineManagementClient

Jentic publishes the only available OpenAPI specification for SqlVirtualMachineManagementClient, keeping it validated and agent-ready. The SQL virtual machine management API exposes RESTful operations to provision and manage SQL Server installations running on Azure Compute, including individual SQL virtual machines, SQL virtual machine groups, and availability group listeners. It coordinates with Azure Compute, Network, and Storage to install, configure, and tear down SQL Server VMs, and to wire them into Always On availability groups. Use it for IaaS SQL Server lifecycle management, not Azure SQL Database PaaS schemas.

## For AI agents

Provision, configure, and delete SQL Server virtual machines, virtual machine groups, and availability group listeners on Azure.

## Scope

Does not configure SQL Server cluster internals, run T-SQL, or manage Azure SQL Database PaaS - use for Azure-side lifecycle of SQL Server VMs, groups, and listeners only.

## Capabilities

- Create and configure a SQL Server virtual machine in Azure
- List every SQL virtual machine across a subscription or resource group
- Group SQL virtual machines into a SQL virtual machine group for clustering
- Add and remove availability group listeners for Always On groups
- Update the SQL Server license type or storage configuration on a VM
- Delete a SQL virtual machine and its group membership
- Discover available SQL VM management operations supported by the resource provider

## Use cases

### Lift-and-Shift SQL Server to Azure VMs

Teams migrating on-premises SQL Server workloads onto Azure IaaS rather than Azure SQL Database use SqlVirtualMachineManagementClient to register and manage the SQL VM resource that wraps the underlying Azure Compute VM. The API handles the SQL-specific configuration layer - license type, storage layout, and Always On group membership - leaving the base VM lifecycle to Microsoft.Compute. A single migration script can stand up a SQL VM, register it, and join it to an availability group in minutes.

Example prompt: Create a SQL virtual machine resource named 'finance-sql-01' in resource group 'finance-rg' tied to an existing compute VM, with PAYG license type.

### Building Always On Availability Clusters

High-availability SQL Server deployments on Azure require a SQL virtual machine group plus availability group listeners that route traffic to the current primary replica. SqlVirtualMachineManagementClient creates the group resource, registers each SQL VM into it, and provisions the listener with the right load balancer wiring. Failover behaviour is handled by SQL Server itself; this API manages the Azure-side metadata that ties it together.

Example prompt: Create a SQL virtual machine group 'sales-ag' in resource group 'sales-rg', register two existing SQL VMs to it, then add an availability group listener on port 1433.

### Bulk Audit of SQL VM Estate

Operations teams running dozens of SQL VMs across multiple subscriptions need an inventory of license types, group membership, and configuration drift. SqlVirtualMachineManagementClient supports listing SQL VMs by subscription and by resource group, returning the SQL-specific metadata for each. A nightly job can pull the full estate, compare against expected configuration, and raise alerts on drift.

Example prompt: List every SQL virtual machine in subscription 'data-platform', then group results by license type and resource group.

### Agent-Driven SQL VM Provisioning via Jentic

An AI agent that orchestrates infrastructure can provision SQL Server on Azure VMs without learning the full ARM JSON model. Through Jentic, the agent discovers the SqlVirtualMachineManagementClient operations by intent, loads the create-or-update schema for SQL virtual machines, and submits the request with the user's parameters. Azure AD tokens stay inside your Jentic One instance.

Example prompt: Use Jentic to load the SqlVirtualMachineManagementClient create-or-update operation, then create a SQL VM 'reporting-sql-02' tied to an existing compute resource id.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /providers/Microsoft.SqlVirtualMachine/operations | List operations exposed by the resource provider |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachines | List SQL virtual machines in a subscription |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups | List SQL virtual machine groups in a subscription |
| PUT | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/{sqlVirtualMachineGroupName} | Create or update a SQL virtual machine group |
| PUT | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/{sqlVirtualMachineGroupName}/availabilityGroupListeners/{availabilityGroupListenerName} | Create or update an availability group listener |
| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/{sqlVirtualMachineGroupName}/sqlVirtualMachines | List SQL VMs registered to a group |

## Key resources

- **SQL Virtual Machines** — Create, update, list, and delete SQL Server VM resources on Azure
- **SQL Virtual Machine Groups** — Group SQL VMs together for Always On availability clustering
- **Availability Group Listeners** — Provision listeners that route traffic to the active replica in a SQL VM group
- **Operations** — List the management operations exposed by the Microsoft.SqlVirtualMachine resource provider

## Why Jentic

- **Setup:** Wiring the Microsoft.SqlVirtualMachine provider by hand means registering an Azure AD app, running the OAuth2 token exchange, and polling the Azure-AsyncOperation header that create and delete operations return with 202. Through Jentic you install once, import SQL Virtual Machine Management from the API Directory, store the Azure AD service principal credential once, and your agent calls it.
- **Permission scoping:** This API puts the subscription, resource group, and SQL VM or group name in the URL path (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/{sqlVirtualMachineGroupName}/...), so a rule can pin your agent to one SQL VM group and its listeners. You choose the operations it may call, so deleting a SQL virtual machine or removing an availability group listener is not included unless you add it.
- **Credential handling:** Your Azure AD service principal credential is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a SQL Server virtual machine on Azure' or 'add an availability group listener', and Jentic returns the matching Microsoft.SqlVirtualMachine operation with its input schema so the agent calls the right endpoint without reading the ARM reference.

## Related APIs

- **SqlManagementClient** — Manages Azure SQL Database PaaS schema metadata rather than SQL Server on VMs
- **StorageManagementClient** — Manages the storage accounts that hold SQL backups and data files
- **StorageImportExport** — Bulk import and export of disk data into Azure Storage

## FAQ

### Why is there no official OpenAPI spec for SqlVirtualMachineManagementClient?

Microsoft Azure publishes Swagger fragments for individual ARM resource providers but does not publish a consolidated, validated OpenAPI 3 spec for the Microsoft.SqlVirtualMachine provider. Jentic generates and maintains this spec so that AI agents and developers can call SqlVirtualMachineManagementClient via structured tooling. It is validated against the live Azure Resource Manager API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the SqlVirtualMachineManagementClient use?

All endpoints require Azure Active Directory OAuth 2.0, declared as the azure_auth security scheme with the user_impersonation scope against https://login.microsoftonline.com. Through Jentic, Azure access tokens are held in your Jentic One instance and injected at call time so the agent never sees the raw bearer token.

### Can I create a SQL Server availability group with this API?

You can create the Azure-side resources that support an Always On availability group: a SQL virtual machine group and one or more availability group listeners under /providers/Microsoft.SqlVirtualMachine/sqlVirtualMachineGroups/{name}/availabilityGroupListeners. The actual SQL Server cluster configuration still happens inside SQL Server itself.

### What are the rate limits for the SqlVirtualMachineManagementClient?

Calls go through Azure Resource Manager, which throttles writes per subscription (typically 1,200 writes per hour) and reads more generously. Long-running operations like create or delete return 202 with an Azure-AsyncOperation header - poll that URL rather than retrying the original call.

### How do I provision a SQL VM through Jentic?

Run pip install jentic, search Jentic for 'create a sql server virtual machine on azure', load the SqlVirtualMachineManagementClient create-or-update operation, and execute it with subscriptionId, resourceGroupName, sqlVirtualMachineName, and the body containing the linked virtualMachineResourceId and sqlServerLicenseType. Jentic handles the Azure AD token exchange.

### Does this API manage Azure SQL Database (PaaS)?

No. SqlVirtualMachineManagementClient only manages SQL Server running inside Azure Compute VMs. For Azure SQL Database PaaS, use SqlManagementClient or the Microsoft.Sql resource provider APIs.

### Can I limit what my agent is allowed to do with the Azure SQL Virtual Machine Management Client API?

Yes. Jentic One is self-hosted by you, so your own rules decide which operations and credentials the agent may use. Because this API carries the subscription, resource group, and SQL VM or group name in the URL path, you can pin the agent to a single SQL virtual machine group and its availability group listeners. You also choose the operations it may call, so destructive actions like deleting a SQL virtual machine or removing an availability group listener stay out of reach unless you add them.
