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

# Microsoft Azure GuestConfiguration

Jentic publishes the only available OpenAPI specification for GuestConfiguration, keeping it validated and agent-ready. The Azure Guest Configuration API assigns and audits in-guest configuration policies on Azure VMs through the Microsoft.GuestConfiguration resource provider. It lets operators apply DSC-based configuration packages, read compliance reports per VM, and enumerate the operations the resource provider supports. The API is delivered as part of Azure Resource Manager and authenticated via Azure AD OAuth2 against management.azure.com.

## For AI agents

Assign in-guest configuration policies to Azure VMs and read compliance reports that show whether each VM matches its assigned baseline.

## Scope

Does not author configuration packages, manage Azure Policy assignments, or run runbooks - use for assigning guest configuration baselines to VMs and reading their compliance reports only.

## Capabilities

- Assign a guest configuration package to a specific Azure VM
- List all guest configuration assignments on a given VM
- Retrieve the current state of a single configuration assignment
- Delete a guest configuration assignment to remove the baseline from a VM
- List compliance reports generated by a configuration assignment over time
- Retrieve a specific compliance report by ID for audit and forensics
- Enumerate the operations the Microsoft.GuestConfiguration provider supports

## Use cases

### Apply a security baseline to a VM fleet

Assign a guest configuration package such as a CIS Windows baseline to each VM via PUT on guestConfigurationAssignments. The Microsoft.GuestConfiguration extension on the VM downloads the package, applies it, and reports compliance back to Azure. Suitable for organisations with regulatory baseline requirements.

Example prompt: Create a guestConfigurationAssignment named 'CIS-Windows' on VM 'web01' that references the CIS Windows configuration package.

### Continuous compliance reporting

Read the latest compliance report from each assignment to confirm whether VMs match their assigned baselines. The reports list endpoint returns historical reports; the get-by-ID endpoint pulls a specific report for forensic analysis. Useful for daily automated compliance dashboards.

Example prompt: List GuestConfigurationAssignmentReports for 'CIS-Windows' on VM 'web01' and return any report whose complianceStatus is 'NonCompliant'.

### Decommission a baseline on retired hosts

Delete the guest configuration assignment when a VM is retired or moves out of scope. The DELETE endpoint removes the ARM assignment record so Azure stops requesting compliance reports from that VM. Useful at the end of a workload migration.

Example prompt: Delete the 'CIS-Windows' guestConfigurationAssignment from VM 'web01' as part of decommissioning the host.

### AI agent-driven compliance remediation

A compliance agent uses Jentic to fetch reports for every assignment, identify NonCompliant VMs, and either re-assign the package or escalate to a human. Jentic resolves natural-language intents to the right ARM operation and injects the bearer token at execution, so the agent never holds raw Azure credentials.

Example prompt: Use Jentic to search for 'list azure guest configuration compliance reports', load GuestConfigurationAssignmentReports_List, and flag every VM in resource group 'web-rg' with a NonCompliant report in the last 24 hours.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| PUT | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments/{guestConfigurationAssignmentName} | Create or update a guest configuration assignment on a VM |
| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments | List assignments on a VM |
| DELETE | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments/{guestConfigurationAssignmentName} | Delete an assignment |
| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments/{guestConfigurationAssignmentName}/reports | List compliance reports for an assignment |
| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments/{guestConfigurationAssignmentName}/reports/{reportId} | Get a specific compliance report |
| GET | /providers/Microsoft.GuestConfiguration/operations | List supported provider operations |

## Key resources

- **GuestConfigurationAssignments** — Create, list, get, and delete in-guest configuration assignments on Azure VMs.
- **GuestConfigurationAssignmentReports** — List and retrieve compliance reports generated by an assignment.
- **Operations** — Enumerate the operations supported by the Microsoft.GuestConfiguration provider.

## Why Jentic

- **Setup:** Wiring Guest Configuration by hand means standing up an Azure AD service principal, exchanging its client secret for a bearer token against management.azure.com, and polling long-running assignment operations yourself. Through Jentic you install once, import Guest Configuration from the API Directory, store the service principal credentials once, and your agent calls it.
- **Permission scoping:** The VM and assignment names travel in the URL path (/virtualMachines/{vmName}/.../guestConfigurationAssignments/{guestConfigurationAssignmentName}), so a rule can pin your agent to reading compliance reports on named assignments. You choose the operations it may call, so a destructive one like deleting a guest configuration assignment is not included unless you add it.
- **Credential handling:** Your Azure service principal credentials are stored once, encrypted, by your own Jentic One instance and exchanged for a scoped Azure AD bearer token at execution time. The client secret never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'assign a guest configuration baseline to an azure vm' or 'read vm compliance reports', and Jentic returns the matching guestConfigurationAssignments operation with its input schema so the agent calls the right ARM endpoint without reading Microsoft Learn.

## Related APIs

- **Azure Policy** — Defines policies that can include guest configuration baselines as compliance rules.
- **Azure Compute Management** — Manage the underlying Azure VMs that guest configuration assignments target.
- **Azure Automation** — DSC and runbook-based configuration management as an alternative path to in-guest config.

## FAQ

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

Microsoft Azure does not publish a stand-alone OpenAPI specification for the Guest Configuration API. Jentic generates and maintains this spec from the Microsoft.GuestConfiguration ARM surface so that AI agents and developers can call GuestConfiguration 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 Guest Configuration API use?

It uses Azure AD OAuth2 against management.azure.com, declared as the azure_auth security scheme. Through Jentic, your Azure service principal credentials are stored encrypted and exchanged for a scoped bearer token at execution time.

### Can I read compliance reports for a VM through this API?

Yes. Use GET on /subscriptions/.../guestConfigurationAssignments/{name}/reports to list reports, or .../reports/{reportId} to fetch a specific one. Each report includes the assignment's complianceStatus and the resources it inspected.

### What are the rate limits?

Azure Resource Manager applies subscription-level throttles - roughly 12,000 reads and 1,200 writes per hour per subscription. Compliance report polling should be batched per VM rather than per resource.

### How do I assign a baseline to a VM through Jentic?

Run jentic.search('assign azure guest configuration to a vm'), load the GuestConfigurationAssignments_CreateOrUpdate schema, and execute it with the subscription, resource group, VM name, assignment name, and a body referencing the configuration package. Compliance status appears under the matching reports endpoint within minutes.

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

Yes. Because you run Jentic One yourself, your own rules decide which of the seven Guest Configuration operations the agent may call and which stored Azure service principal credentials it may use. Since the VM name and assignment name travel in the URL path, you can pin the agent to read-only work such as listing and retrieving compliance reports on named assignments, while destructive operations like deleting a guest configuration assignment stay out of scope unless you explicitly add them.
