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

# Microsoft Azure DevSpacesManagement

Jentic publishes the only available OpenAPI specification for DevSpacesManagement, keeping it validated and agent-ready. The API manages Azure Dev Spaces Controllers under Microsoft.DevSpaces - the legacy preview service that paired with AKS to give developers per-developer namespaces and live debugging. It covers controller create, get, update, delete, listing at subscription and resource-group scope, and the listConnectionDetails action used to bootstrap kubectl access.

## For AI agents

Manage Azure Dev Spaces Controllers - provision controllers, list them, update tags, retrieve connection details, and delete controllers under Microsoft.DevSpaces.

## Scope

Does not manage AKS clusters themselves, deploy applications into Dev Spaces, or run developer-side debugging - use for Microsoft.DevSpaces controller lifecycle only.

## Capabilities

- Provision a Dev Spaces controller in a resource group
- List Dev Spaces controllers at subscription and resource-group scope
- Retrieve a specific Dev Spaces controller and its configuration
- Patch tags and configuration on an existing controller
- Delete a Dev Spaces controller
- List connection details (kubeconfig and endpoint) for a controller

## Use cases

### Per-developer AKS workspaces

Engineering teams using Azure Dev Spaces provision a controller against their AKS cluster so each developer gets an isolated namespace for live debugging and inner-loop testing. The API creates the controller, returns its configuration, and exposes connection details so the developer's tooling can wire up kubectl without manual portal steps.

Example prompt: Create a Dev Spaces controller named 'team-controller' in resource group 'team-rg' targeting the AKS cluster 'team-aks' in West Europe

### Connection details bootstrap

When a new developer joins, their tooling needs the controller's connection details - endpoint and kubeconfig payload - to start operating against their namespace. The listConnectionDetails endpoint returns this information for the named controller so an onboarding script can configure the developer's machine programmatically.

Example prompt: Call listConnectionDetails for controller 'team-controller' in resource group 'team-rg' and return the endpoint and kubeconfig payload

### Decommissioning legacy controllers

Azure Dev Spaces is deprecated and teams need to remove leftover controllers from subscriptions to stop accruing related costs and clutter. A cleanup job lists every Dev Spaces controller in the subscription and deletes those that no longer back an active AKS environment.

Example prompt: List all Dev Spaces controllers in the subscription and delete each controller whose underlying AKS cluster has been removed

### Agent-driven workspace provisioning

An AI agent fronting an internal developer portal accepts a 'give me a workspace' request, searches Jentic for the Dev Spaces controller create operation, provisions the controller, and returns the connection payload. Jentic isolates the operator's Azure credentials so the agent never sees the underlying AAD secret.

Example prompt: Provision a Dev Spaces controller for the requesting developer, then return the connection details so their local tooling can attach

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.DevSpaces/controllers | List Dev Spaces controllers in a subscription |
| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevSpaces/controllers | List controllers in a resource group |
| PUT | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevSpaces/controllers/{name} | Create or update a Dev Spaces controller |
| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevSpaces/controllers/{name} | Get a specific Dev Spaces controller |
| PATCH | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevSpaces/controllers/{name} | Update a Dev Spaces controller |
| DELETE | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevSpaces/controllers/{name} | Delete a Dev Spaces controller |
| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevSpaces/controllers/{name}/listConnectionDetails | List connection details for a controller |

## Key resources

- **Controllers** — Dev Spaces controllers at subscription and resource-group scope, with create, read, update, and delete
- **Connection Details** — Bootstrap payload (endpoint and kubeconfig) for a controller
- **Operations** — List Microsoft.DevSpaces provider operations

## Why Jentic

- **Setup:** Wiring the Microsoft.DevSpaces controllers API by hand means acquiring Azure AD OAuth 2.0 bearer tokens, building the ARM URLs under management.azure.com, and polling the long-running controller provisioning yourself. Through Jentic you install once, import DevSpacesManagement from the API Directory, store the Azure AD credential once, and your agent calls it.
- **Permission scoping:** The controller id sits in the URL path (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevSpaces/controllers/{name}), so a rule can pin your agent to one subscription and resource group. You choose the operations it may call, so destructive ones like deleting a controller are not included unless you add them.
- **Credential handling:** Your Azure AD credential is stored once, encrypted, by your own Jentic One instance and injected as a short-lived bearer token at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'provision an azure dev spaces controller' or 'list connection details for a controller', and Jentic returns the matching operation with its resource-group, controller-name, and location input schema so the agent calls the right endpoint without reading the ARM reference.

## Related APIs

- **DevTestLabsClient** — Manages DevTest Labs environments instead of AKS-backed Dev Spaces
- **DeploymentScriptsClient** — Runs ARM Deployment Scripts that may bootstrap a Dev Spaces controller
- **DeviceServices** — Manages Windows IoT device services rather than developer workspaces

## FAQ

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

Microsoft Azure does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call DevSpacesManagement 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 Dev Spaces Management API use?

The API runs through Azure Resource Manager and uses OAuth 2.0 bearer tokens issued by Azure Active Directory. Through Jentic, the AAD client secret or managed identity refresh token is held in the encrypted vault and a short-lived access token is supplied at execute time so the bearer token never appears in the agent's context.

### Can I retrieve the connection details for a Dev Spaces controller with this API?

Yes. POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevSpaces/controllers/{name}/listConnectionDetails returns the controller endpoint and the kubeconfig payload required to attach a developer's local tooling.

### What are the rate limits for the Dev Spaces Management API?

Azure Resource Manager applies subscription-level read and write throttles (around 12,000 reads per hour and 1,200 writes per hour per region per subscription) and returns 429 with a Retry-After header when exceeded. Controller create and delete are long-running and should be polled with backoff.

### How do I provision a Dev Spaces controller through Jentic?

Search Jentic for 'create azure dev spaces controller', load the schema for PUT .../controllers/{name}, then execute with subscriptionId, resourceGroupName, location, and the target host SKU. The pip install jentic Python SDK uses the async search, load, execute pattern.

### Is the Dev Spaces Management API free?

Azure Dev Spaces was a free preview service that has since been retired in favour of Bridge to Kubernetes; you pay for the underlying AKS cluster, not the controller. The management API itself does not bill per call.

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

Yes. Because you self-host Jentic One, your own rules decide which Microsoft.DevSpaces operations and credentials the agent may use. The subscription, resource group, and controller name all sit in the URL path, so a rule can pin your agent to a single subscription and resource group. You also choose the operations it may call, so destructive actions like deleting a controller are excluded unless you explicitly add them.
