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

# Microsoft Azure BatchManagement

Jentic publishes the only available OpenAPI specification for BatchManagement, keeping it validated and agent-ready. The Azure Batch management API provisions and operates Batch accounts, the parallel compute service used for HPC, rendering, and stress testing on Azure. It manages account-level concerns like keys and quotas plus the resources inside an account - applications, application packages, certificates, and pools - including pool resizing, auto-scale, and key rotation operations.

## For AI agents

Provision Azure Batch accounts and manage their pools, applications, certificates, and keys for parallel compute workloads.

## Scope

Does not submit Batch jobs or tasks, manage data-plane operations, or run computations - use for Batch account, pool, application, and certificate management only.

## Capabilities

- Provision and tag Batch accounts in any subscription with check-name-availability support
- Rotate primary and secondary account keys via the regenerateKeys operation
- Manage application and application package versions with activation control
- Create, resize, and update Batch pools including disabling auto-scale and stopping resize operations
- Provision certificates in a Batch account and cancel deletion when needed
- Inspect per-region Batch quotas via the Location_GetQuotas operation
- Synchronise auto-storage keys for an account against a linked storage account

## Use cases

### HPC render farm provisioning

Studios provision Batch accounts and large pools to run distributed render jobs. They use BatchAccount_Create to set up the account, Pool_Create to define a pool of render nodes, and ApplicationPackage_Create plus ApplicationPackage_Activate to ship the renderer binaries. When a job ends, Pool_Update scales the pool down to zero to avoid charges.

Example prompt: Create a Batch account in West Europe, provision a 50-node pool with a Linux VM image, upload an application package, and activate it

### Periodic key rotation

Security teams rotate Batch account keys on a schedule. BatchAccount_RegenerateKey rotates either the primary or secondary key, and BatchAccount_GetKeys returns the current pair so dependent services can be updated. This pattern keeps long-lived Batch credentials fresh without downtime.

Example prompt: Call BatchAccount_RegenerateKey for the secondary key, update consuming services to use it, then rotate the primary key

### Quota and capacity audit

FinOps teams audit Batch core quotas across regions to forecast capacity for upcoming workloads. Location_GetQuotas returns per-region core counts, and BatchAccount_ListByResourceGroup walks the accounts in scope so consumed cores can be summed against the quota.

Example prompt: For each region, call Location_GetQuotas and compare the dedicated core count to the sum of pool sizes returned by Pool_ListByBatchAccount

### AI agent integration via Jentic

An infrastructure agent uses Jentic to provision Batch accounts and pools on demand for ad-hoc HPC workloads. The agent searches Jentic for 'create an Azure Batch pool', loads the Pool_Create schema, and executes with structured input. Jentic mints AAD tokens against management.azure.com so credentials never reach the agent.

Example prompt: Use Jentic search 'provision an Azure Batch pool', load Pool_Create, and execute with VM size and target node count

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| PUT | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName} | Create or update a Batch account |
| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/regenerateKeys | Regenerate primary or secondary account keys |
| PUT | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/pools/{poolName} | Create a Batch pool |
| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/pools/{poolName}/disableAutoScale | Disable auto-scale on a pool |
| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationName}/versions/{versionName}/activate | Activate an application package version |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.Batch/locations/{locationName}/quotas | Get Batch quotas for a region |

## Key resources

- **BatchAccount** — Top-level Batch account - supports list, get, create, update, delete plus key listing, key regeneration, and storage key sync.
- **Application** — Logical applications under a Batch account - supports list, get, create, update, delete.
- **ApplicationPackage** — Versioned binary packages under an application with create, activate, and delete operations.
- **Certificate** — Certificates uploaded to a Batch account, including cancelDelete to recover from a pending delete.
- **Pool** — Compute pools with create, update, delete, disable auto-scale, and stop-resize operations.
- **Location** — Per-region quota and name-availability checks for Batch.

## Why Jentic

- **Setup:** Wiring the BatchManagement API by hand means configuring Azure AD OAuth2 against management.azure.com, handling the control-plane and data-plane split so you only manage accounts and pools, and threading account, pool, and application ids through every Microsoft.Batch path yourself. Through Jentic you install once, import BatchManagement from the API Directory, store the Azure AD credential once, and your agent calls it.
- **Permission scoping:** This API puts the account, pool, and application ids in the URL path (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/pools/{poolName}), so a rule can pin your agent to one Batch account and its pools. You choose the operations it may call, so destructive ones like regenerating account keys or disabling pool autoscale 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 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 Batch pool' or 'create a Batch account', and Jentic returns the matching Pool or BatchAccount operation with its input schema so the agent calls the right ARM path without browsing the Microsoft.Batch reference.

## Related APIs

- **Azure BatchAI** — GPU-focused training service rather than general-purpose Batch.
- **Azure Compute Management** — Manages virtual machines and scale sets that often complement Batch pools.
- **Azure Storage Management** — Provisions storage accounts used as auto-storage and input/output for Batch.

## FAQ

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

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

The API uses Azure Active Directory OAuth 2.0 declared as azure_auth with the implicit flow. Tokens are presented as Bearer headers against management.azure.com. Through Jentic, the AAD client secret stays in the vault and the agent only ever sees scoped, short-lived tokens.

### Can I submit Batch jobs and tasks with this API?

No. This is the management plane - it provisions Batch accounts, pools, applications, and certificates. Job and task submission happens on the Batch service data plane (batch.<region>.azure.com), which is a separate API.

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

Azure Resource Manager applies subscription-level throttling, typically 12,000 read and 1,200 write requests per hour, surfaced via x-ms-ratelimit-remaining headers. Batch also has per-region core quotas returned by Location_GetQuotas.

### How do I provision a Batch pool through Jentic?

Run pip install jentic, then use the async client to search 'provision an Azure Batch pool', load Pool_Create, and execute with subscriptionId, resourceGroupName, accountName, poolName, and a body specifying the VM size, image, and target node count. Jentic returns the pool resource once provisioning starts.

### Can I rotate Batch account keys without downtime?

Yes. The standard pattern is to regenerate the secondary key first via BatchAccount_RegenerateKey, update consumers to use it, then rotate the primary key. Both keys remain valid until each individual rotation completes.

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

Yes. Because you run Jentic One yourself, your own rules decide which operations and credentials the agent may use, and this API puts the subscription, resource group, Batch account, and pool ids in the URL path, so a rule can pin the agent to one Batch account and its pools. You choose exactly which operations it can call, so read-only work like listing pools or checking quotas via Location_GetQuotas can be allowed while destructive calls such as BatchAccount_RegenerateKey or disabling pool auto-scale are left out. Your Azure AD credential is stored encrypted by your own instance and injected only at execution time, so the agent never sees it directly.
