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

# Microsoft Azure WindowsESU

The Azure WindowsESU API manages Multiple Activation Keys (MAK) that enable Windows Extended Security Updates for end-of-support Windows versions such as Windows Server 2008 and Windows 7. It exposes 7 operations across 4 resource paths under the Microsoft.WindowsESU provider, covering MAK creation, retrieval, listing per resource group or subscription, and deletion. Use it to script ESU key issuance, audit existing keys, and decommission keys that are no longer needed for compliance reporting.

## For AI agents

Provision and manage Multiple Activation Keys (MAKs) for Windows Extended Security Updates so legacy Windows machines can keep receiving security patches.

## Scope

Does not handle Windows patch delivery, OS activation on individual machines, or non-Windows ESU programmes - use for issuing and managing Multiple Activation Keys only.

## Capabilities

- Create Multiple Activation Keys for Windows Extended Security Updates in a chosen region
- Retrieve a MAK by name to inspect its activation count and supported OS type
- List MAKs in a resource group or across the entire subscription for audit
- Delete a Multiple Activation Key when the underlying machines have been retired
- Enumerate available WindowsESU management operations for tooling and discovery

## Use cases

### Issue ESU keys for legacy Windows fleets

Provision Multiple Activation Keys for fleets of end-of-support Windows Server 2008 or Windows 7 machines so they continue receiving security patches under the Extended Security Updates programme. The PUT operation on multipleActivationKeys/{name} creates the key with the appropriate OS type, support type, and agreement number for licensing.

Example prompt: Create a MAK named legacy-srv2008-prod in resource group esu-rg covering Windows Server 2008 R2 with the agreement number on file.

### Compliance audit of ESU coverage

Inventory every Multiple Activation Key across a subscription to confirm legacy machines remain covered by ESU. The list-by-subscription and list-by-resource-group endpoints make it possible to feed audit dashboards with current key counts, OS types, and activation counts without manual portal checks.

Example prompt: List all Multiple Activation Keys in subscription 00000000-0000-0000-0000-000000000000 and report any without remaining activations.

### Retire ESU keys for decommissioned machines

When a legacy Windows machine is decommissioned, an agent can delete its associated Multiple Activation Key with DELETE on /multipleActivationKeys/{name} to keep the licensing inventory tidy and avoid ongoing ESU charges. The list endpoints make it straightforward to find keys that no longer correspond to running fleets.

Example prompt: Delete the MAK named legacy-srv2008-archive in resource group esu-rg and confirm the operation succeeds.

### Agent-driven legacy OS support

Let an AI agent answer questions like 'are all my Windows 2008 machines still covered by ESU?' by listing keys, correlating against inventory, and creating new keys where coverage is missing. Jentic exposes the WindowsESU operations as agent tools so this becomes a single-prompt workflow instead of a manual portal session.

Example prompt: Search Jentic for 'list azure windows esu activation keys', load the schema, and execute it for the target subscription, then report any resource groups missing coverage.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| PUT | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.WindowsESU/multipleActivationKeys/{multipleActivationKeyName} | Create or update a Multiple Activation Key |
| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.WindowsESU/multipleActivationKeys/{multipleActivationKeyName} | Get a Multiple Activation Key by name |
| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.WindowsESU/multipleActivationKeys | List MAKs in a resource group |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.WindowsESU/multipleActivationKeys | List MAKs in a subscription |
| DELETE | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.WindowsESU/multipleActivationKeys/{multipleActivationKeyName} | Delete a Multiple Activation Key |
| GET | /providers/Microsoft.WindowsESU/operations | List available WindowsESU operations |

## Key resources

- **MultipleActivationKeys** — Create, read, update, list, and delete MAKs for Windows ESU
- **Operations** — Enumerate available WindowsESU management operations

## Why Jentic

- **Setup:** Issuing Windows ESU Multiple Activation Keys by hand means acquiring Azure Active Directory OAuth 2.0 tokens, targeting the management.azure.com ARM control plane, and threading subscription, resource group, and key names through every Microsoft.WindowsESU path yourself. Through Jentic you install once, import Windows ESU from the API Directory, store the Azure AD credential once, and your agent calls it.
- **Permission scoping:** This API carries the subscription, resource group, and key name in the URL path (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.WindowsESU/multipleActivationKeys/{multipleActivationKeyName}), so a rule can pin your agent to one activation key or resource group and nothing else. You choose the operations it may call, so key deletion is not included unless you add it.
- **Credential handling:** Your Azure AD token 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 Windows ESU activation key' or 'list multiple activation keys', and Jentic returns the matching MultipleActivationKeys operation with its input schema so the agent calls the right ARM endpoint without hand-coding URIs.

## Related APIs

- **Azure Hybrid Compute Management** — Manage Azure Arc-enabled servers including legacy Windows machines
- **Azure Compute Management Client** — Manage Azure-hosted Windows VMs alongside ESU coverage
- **Azure Alerts Management** — Surface alerts when ESU coverage is incomplete

## FAQ

### What authentication does the WindowsESU API use?

The API uses Azure Active Directory OAuth 2.0 via the implicit flow scheme `azure_auth`, scoped to user_impersonation against https://management.azure.com. Through Jentic the OAuth token stays in the vault and only short-lived scoped bearer tokens are exposed to the agent.

### Can I create a Multiple Activation Key with this API?

Yes. PUT on /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.WindowsESU/multipleActivationKeys/{multipleActivationKeyName} creates a MAK with fields for OS type, support type, agreement number, customer information, and number of installations covered.

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

The spec does not declare explicit rate limits. Calls go through Azure Resource Manager, which applies standard ARM throttling per subscription. Inspect the x-ms-ratelimit-remaining-subscription-* response headers to track quota.

### How do I list all my ESU keys through Jentic?

Search Jentic for 'list azure windows esu activation keys', load the schema for GET /subscriptions/{subscriptionId}/providers/Microsoft.WindowsESU/multipleActivationKeys, and execute it. Install with `pip install jentic` and use the async search/load/execute pattern.

### Does this API actually patch Windows machines?

No. The API issues and manages activation keys only. Patches are delivered through Windows Update or WSUS once the MAK has been applied to a machine using slmgr.vbs or a configuration management tool - that step happens on the machine, not via this API.

### Which OS versions are covered by Windows ESU?

The osType field on a Multiple Activation Key accepts the supported end-of-support Windows versions covered by the ESU programme - primarily Windows Server 2008 / 2008 R2 and Windows 7. The exact accepted enum values are defined in the request schema for the multipleActivationKeys PUT operation.

### Can I limit what my agent is allowed to do with the WindowsESU API?

Yes. Because Jentic One is self-hosted, your own rules decide which WindowsESU operations and which Azure AD credential the agent may use. Since the subscription, resource group, and key name all live in the request path, you can pin the agent to a single Multiple Activation Key or resource group and no other. You also choose the allowed operations, so you can grant create, get, and list while withholding delete unless you explicitly add it.
