canonical: https://jentic.com/apis/azure.com/azure-software-plan-rp

# Microsoft Azure Software Plan RP

Jentic publishes the only available OpenAPI specification for Software Plan RP, keeping it validated and agent-ready. The Azure Software Plan API exposes the Microsoft.SoftwarePlan resource provider so agents can register the provider on a subscription and then create, list, and revise Azure Hybrid Use Benefit (AHB) software plans. AHB plans let customers apply existing on-premises Windows Server, SQL Server, and RHEL/SUSE licenses to Azure VMs to reduce billable compute cost - this API is the control plane for those plan assignments and their revisions.

## For AI agents

Register the Microsoft.SoftwarePlan provider and manage Azure Hybrid Use Benefit plan assignments and revisions on a subscription.

## Scope

Does not report cost, manage reservations, or apply license SKUs to individual VMs - use for Hybrid Use Benefit plan registration, listing, and revision reads only.

## Capabilities

- Register the Microsoft.SoftwarePlan resource provider on a subscription
- Create a Hybrid Use Benefit plan that applies on-premises licenses to Azure
- List all Hybrid Use Benefit plans configured at a given scope
- Inspect a specific Hybrid Use Benefit plan by plan ID
- Read the revision history for a Hybrid Use Benefit plan
- List the operations exposed by the Microsoft.SoftwarePlan provider

## Use cases

### License Cost Optimization

FinOps teams reduce Azure compute spend by applying existing Software Assurance Windows Server and SQL Server licenses to Azure VMs through the Hybrid Use Benefit. The hybridUseBenefits endpoint creates the plan assignment and the list endpoint returns every active plan, so an agent can verify coverage and surface VMs that are not yet benefiting from the discount.

Example prompt: List hybridUseBenefits at the subscription scope and return the active planId, sku, and provisioningState for each entry

### Plan Audit Trail

Compliance and audit teams need an accurate trail of when Hybrid Use Benefit plans were created or modified. The hybridUseBenefits/{planId}/revisions endpoint returns the revision history of a plan with timestamps, so an agent can build an audit report that ties license changes to change windows.

Example prompt: GET /.../hybridUseBenefits/{planId}/revisions and return each revision's name and timestamp ordered most recent first

### Bootstrap a New Subscription

Platform teams onboarding a new Azure subscription register the Microsoft.SoftwarePlan provider so that AHB plans can be created on that subscription. The register endpoint enables the provider in one call and the operations list confirms what is exposed, giving an agent a clean bootstrap sequence for new subscriptions.

Example prompt: POST /subscriptions/{subscriptionId}/providers/Microsoft.SoftwarePlan/register, then GET operations to confirm the provider is active

### AI Agent License Coverage Bot

An agent built on Jentic answers an internal question like which subscriptions have Hybrid Use Benefit applied to SQL Server. It iterates through subscriptions, lists hybridUseBenefits at each scope, filters by SKU, and returns a ranked summary - without anyone exporting CSVs from the portal.

Example prompt: Search Jentic for list azure hybrid use benefit plans, load the schema, and call hybridUseBenefits across each subscription scope

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /subscriptions/{subscriptionId}/providers/Microsoft.SoftwarePlan/register | Register the Microsoft.SoftwarePlan provider on a subscription |
| GET | /{scope}/providers/Microsoft.SoftwarePlan/hybridUseBenefits | List Hybrid Use Benefit plans at a given scope |
| PUT | /{scope}/providers/Microsoft.SoftwarePlan/hybridUseBenefits/{planId} | Create or update a Hybrid Use Benefit plan |
| GET | /{scope}/providers/Microsoft.SoftwarePlan/hybridUseBenefits/{planId} | Read a specific Hybrid Use Benefit plan |
| GET | /{scope}/providers/Microsoft.SoftwarePlan/hybridUseBenefits/{planId}/revisions | List the revision history of a Hybrid Use Benefit plan |
| GET | /{scope}/providers/Microsoft.SoftwarePlan/operations | List operations exposed by the provider |

## Key resources

- **register** — Register the Microsoft.SoftwarePlan resource provider on a subscription
- **hybridUseBenefits** — Create, list, and inspect Azure Hybrid Use Benefit plans at a given scope
- **hybridUseBenefits/revisions** — Read the revision history of a Hybrid Use Benefit plan
- **operations** — List the operations exposed by the Microsoft.SoftwarePlan resource provider

## Why Jentic

- **Setup:** Wiring the Microsoft.SoftwarePlan resource provider by hand means registering an Azure AD app, running the OAuth2 token exchange, and handling the provider-registration step before any Hybrid Use Benefit plan call will succeed. Through Jentic you install once, import Software Plan from the API Directory, store the Azure AD service principal credential once, and your agent calls it.
- **Permission scoping:** Software Plan puts the resource scope and plan id in the URL path (/{scope}/providers/Microsoft.SoftwarePlan/hybridUseBenefits/{planId}), so a rule can pin your agent to reading plans and their revisions at a given scope. You choose the operations it may call, so creating or overwriting a Hybrid Use Benefit plan 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, even while it iterates across subscriptions to audit license coverage.
- **Discovery method:** Agents search Jentic by intent such as 'list Azure Hybrid Use Benefit plans' or 'register the Software Plan provider', and Jentic returns the matching Microsoft.SoftwarePlan operation with its input schema so the agent calls the right endpoint without reading the ARM reference.

## Related APIs

- **Azure Cost Management** — Reports the billed compute cost that Hybrid Use Benefit plans reduce
- **Azure Consumption** — Per-meter consumption charges that AHB modifies
- **Azure Reservations** — Reserved capacity discounts on Azure compute

## FAQ

### Why is there no official OpenAPI spec for Software Plan RP?

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

It uses Azure AD OAuth 2.0 with the implicit flow against https://login.microsoftonline.com/common/oauth2/authorize and the user_impersonation scope. When called through Jentic, your AAD service principal credentials live in your Jentic One instance and the agent receives only a short-lived bearer token.

### Can I create a Hybrid Use Benefit plan with this API?

Yes. PUT /{scope}/providers/Microsoft.SoftwarePlan/hybridUseBenefits/{planId} with the SKU (for example SQL_Server_Perpetual) and the resource scope. Make sure the Microsoft.SoftwarePlan provider is registered on the subscription first by POSTing /subscriptions/{subscriptionId}/providers/Microsoft.SoftwarePlan/register.

### How do I see the revision history of a plan?

GET /{scope}/providers/Microsoft.SoftwarePlan/hybridUseBenefits/{planId}/revisions returns each revision in chronological order with the values that changed. Use this for compliance trails when license assignments change.

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

Azure Resource Manager throttles around 12,000 reads and 1,200 writes per hour per principal at subscription scope, surfaced via x-ms-ratelimit-remaining-subscription-reads and x-ms-ratelimit-remaining-subscription-writes response headers. The Software Plan surface is small and write traffic is rare, so quota is rarely a concern.

### How do I audit Hybrid Use Benefit coverage through Jentic?

Search Jentic for list azure hybrid use benefit plans, load the schema for GET /{scope}/providers/Microsoft.SoftwarePlan/hybridUseBenefits, and execute it across each subscription scope. The Jentic Python SDK ships the search, load, execute pattern after pip install jentic.

### Does this API show me the license cost savings?

No - it manages the plan assignment, not the dollar impact. Pair it with the Cost Management API to compare billed compute cost before and after applying a Hybrid Use Benefit plan; the Consumption API exposes the per-meter charges that AHB reduces.

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

Yes. Because Jentic One is self-hosted, the rules you set in your own instance decide which Microsoft.SoftwarePlan operations and which Azure AD service principal credential the agent may use. Since the resource scope and plan id sit in the URL path (/{scope}/providers/Microsoft.SoftwarePlan/hybridUseBenefits/{planId}), you can pin the agent to reading Hybrid Use Benefit plans and their revisions at a given scope. Creating or overwriting a plan with PUT is excluded unless you explicitly add it to the operations you allow.
