canonical: https://jentic.com/apis/azure.com/azure-machine-learning-workspaces

# Microsoft Azure Azure Machine Learning Workspaces

Jentic publishes the only available OpenAPI specification for Azure Machine Learning Workspaces, keeping it validated and agent-ready. This API manages the Microsoft.MachineLearningServices/workspaces resource and the compute targets attached to it. Operators can provision a workspace, list workspaces across subscriptions or resource groups, attach compute clusters or compute instances, list available VM sizes, manage region quotas, and read or resync the workspace's storage and registry keys. All requests authenticate with Azure AD OAuth 2.0 against Azure Resource Manager.

## For AI agents

Provision Azure Machine Learning workspaces and their compute targets, manage region quotas and VM sizes, and read or rotate the workspace's storage and registry keys.

## Scope

Does not register models, run training jobs, or move data - use for AML workspace, compute, quota, and key management only.

## Capabilities

- Provision a Microsoft.MachineLearningServices workspace inside a resource group
- Attach a compute target such as AKS, AmlCompute, or ComputeInstance to a workspace
- List every workspace across a subscription or scoped to a resource group
- Resync the storage and container registry keys backing a workspace
- Read and update region quotas for AML compute resources
- List supported VM SKUs for AML compute in a region
- List nodes inside an AmlCompute cluster or delete a compute target

## Use cases

### Workspace and Compute Bootstrap

Platform teams provision a Machine Learning workspace and its dependent compute targets in one automated run. The PUT on /workspaces/{workspaceName} creates the workspace with a managed storage account, key vault, container registry, and Application Insights component, and the PUT on /computes/{computeName} attaches an AmlCompute or AKS target for training and inference. Together these calls stand up an ML environment ready for model registration and deployment.

Example prompt: Create workspace 'ml-prod' in resource group 'rg-ml' in West Europe with a system-assigned managed identity, then attach an AmlCompute cluster named 'cpu-cluster' with VM size 'Standard_DS3_v2' and minNodeCount=0, maxNodeCount=4.

### Quota Management Across Regions

AML compute is bounded by per-region quotas on cores per VM family. The GET on /locations/{location}/Quotas returns the current allocation, /usages reports actual consumption, and the POST on /updateQuotas raises or lowers the limit per VM family. Platform teams use this trio to track headroom before launching large training jobs and to request increases when usage approaches the cap.

Example prompt: Read the current AmlCompute quota for 'westeurope' and update the 'standardDSv2Family' quota from 24 to 96 cores.

### Storage Key Resync After Rotation

Each AML workspace ships with a managed storage account and container registry whose keys can rotate at the storage layer. The POST on /workspaces/{workspaceName}/resyncKeys forces the workspace to re-read the latest keys, restoring jobs and pipelines that broke when the underlying credentials changed. Use this after rotating storage account keys outside of AML.

Example prompt: Resync keys on workspace 'ml-prod' in resource group 'rg-ml' after rotating the underlying storage account's primary key, and confirm via listKeys.

### Agent-Driven Workspace Inventory

An AI agent through Jentic can enumerate every Machine Learning workspace across subscriptions, list each workspace's attached compute, and queue actions like quota updates or compute resizing. Jentic returns the operation schema for each call so the agent can drive AML control-plane work end to end without reading the AML SDK reference.

Example prompt: List every workspace in subscription '00000000-0000-0000-0000-000000000000', and for each, list attached computes whose vmSize is 'Standard_NC24'.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| PUT | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName} | Create or update an AML workspace |
| PUT | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/computes/{computeName} | Attach a compute target |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.MachineLearningServices/workspaces | List workspaces in a subscription |
| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/listKeys | List workspace storage and registry keys |
| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/resyncKeys | Resync workspace dependent keys |
| POST | /subscriptions/{subscriptionId}/providers/Microsoft.MachineLearningServices/locations/{location}/updateQuotas | Update region AML quotas |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.MachineLearningServices/locations/{location}/vmSizes | List supported AML VM sizes in a region |

## Key resources

- **Workspaces** — Create, read, update, delete, and list AML workspaces
- **Computes** — Attach, list, and delete compute targets on a workspace
- **Quotas** — Read and update region-level AML compute quotas per VM family
- **VM sizes** — List supported VM SKUs for AML compute in a region
- **Workspace keys** — List and resync storage and registry keys for a workspace

## Why Jentic

- **Setup:** Wiring the Microsoft.MachineLearningServices workspace control plane by hand means registering an Azure AD app, acquiring bearer tokens for management.azure.com, polling the 202 Azure-AsyncOperation responses that workspace and compute provisioning return, and reconciling region quotas and VM sizes yourself. Through Jentic you install once, import Azure Machine Learning Workspaces from the API Directory, store the Azure AD service principal credentials once, and your agent calls it.
- **Permission scoping:** This provider puts the subscription, resource group, workspace, and compute name in the URL path (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/computes/{computeName}), so a rule can pin your agent to one workspace and its compute. You choose the operations it may call, so ones like deleting a compute, resyncing keys, or updating region quotas are not included unless you add them.
- **Credential handling:** Your Azure AD service principal credentials, plus the storage and registry keys this API lists and resyncs, are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create an Azure Machine Learning workspace' or 'attach an AmlCompute cluster', and Jentic returns the matching Microsoft.MachineLearningServices operation with its input schema so the agent calls the right endpoint without reading the AML SDK reference.

## Related APIs

- **Azure Machine Learning Model Management Service** — Manages models, images, and deployed inference services inside the workspace provisioned here.
- **Azure Machine Learning Datastore Management Client** — Registers datastores against the workspace so jobs can mount training data.
- **Azure Machine Learning Compute Management Client** — Newer compute-focused control surface that overlaps with the compute endpoints exposed here.

## FAQ

### Why is there no official OpenAPI spec for Azure Machine Learning Workspaces?

Microsoft Azure does not publish a single consolidated OpenAPI specification for the Microsoft.MachineLearningServices workspace control plane. Jentic generates and maintains this spec so that AI agents and developers can call Azure Machine Learning Workspaces via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Azure Machine Learning Workspaces API use?

The API uses Azure Active Directory OAuth 2.0; agents acquire a token for the https://management.azure.com/ resource and pass it as a Bearer token. Jentic stores the service principal credentials in its vault and injects scoped tokens at call time.

### Can I attach an AKS cluster to a workspace through this API?

Yes. The PUT on /workspaces/{workspaceName}/computes/{computeName} accepts a properties block whose computeType field can be AKS, AmlCompute, ComputeInstance, DataFactory, Databricks, or VirtualMachine. AKS attachment expects an existing cluster's resource ID.

### How do I provision a workspace through Jentic?

Search Jentic for 'create an Azure Machine Learning workspace', load the resulting PUT operation on /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}, then execute it with the workspace name, location, and identity block. Install with pip install jentic and run the async search-load-execute flow.

### What is the difference between listKeys and resyncKeys?

listKeys returns the current values of the workspace's underlying storage and container registry keys; resyncKeys forces the workspace to re-read those values after they have rotated at the storage layer. Use resyncKeys when jobs start failing with auth errors after a key rotation.

### What are the rate limits for this API?

Azure Resource Manager applies subscription-level throttling - typically 12,000 reads and 1,200 writes per hour per subscription. Workspace and compute provisioning are long-running and return 202 with an Azure-AsyncOperation header for polling.

### Can I limit what my agent is allowed to do with the Azure Machine Learning Workspaces API?

Yes. Jentic One is self-hosted, so you run it and your own rules decide which operations and credentials your agent may use. Because this API carries the subscription, resource group, workspace, and compute name in the URL path, you can pin the agent to a single workspace and its compute targets. You also choose which operations it can call, so sensitive ones like deleting a compute, resyncing keys, or updating region quotas stay off unless you add them.
