canonical: https://jentic.com/apis/azure.com/cdn-management-client

# Microsoft Azure CdnManagementClient

Jentic publishes the only available OpenAPI specification for CdnManagementClient, keeping it validated and agent-ready. The Azure CDN management API administers CDN profiles, endpoints, custom domains, and origins through Azure Resource Manager. It exposes lifecycle operations plus the operational primitives content teams rely on - purge, prefetch, start, stop, custom HTTPS enable/disable, and SSO URI generation - so a CDN deployment can be fully managed from code.

## For AI agents

Provision Azure CDN profiles and endpoints, manage custom domains and origins, and run purge, prefetch, start, and stop actions on the CDN.

## Scope

Does not handle DNS zone records, WAF rule definitions, or origin storage provisioning - use for CDN profile, endpoint, custom domain, and origin management only.

## Capabilities

- Provision Azure CDN profiles and endpoints scoped to a resource group
- Add custom domains to a CDN endpoint and enable or disable custom HTTPS
- Purge or pre-load content paths on a CDN endpoint to refresh cached assets
- Start, stop, and restart endpoints to control whether they serve traffic
- List supported optimization types and validate custom domain mappings before going live
- Generate SSO URIs to deep-link into the CDN portal for a profile
- Inspect resource usage and enforce profile name availability checks before creation

## Use cases

### Cache invalidation after deployment

Frontend teams call Endpoints_PurgeContent after each deployment to flush old assets from the CDN. The endpoint accepts an array of content paths, supports wildcard purges, and returns an operation handle that can be polled. This is the supported alternative to relying on cache TTL expiration after a release.

Example prompt: Call Endpoints_PurgeContent for the affected profile and endpoint with a list of paths from the deployment manifest

### Custom domain with HTTPS

Marketing teams attach a vanity domain to a CDN endpoint with CustomDomains_Create, then call CustomDomains_EnableCustomHttps to provision a CDN-managed certificate. Validation can be checked first via Endpoints_ValidateCustomDomain so DNS misconfiguration is caught before the create call.

Example prompt: Call Endpoints_ValidateCustomDomain, then CustomDomains_Create, then CustomDomains_EnableCustomHttps with a CDN-managed certificate

### Pre-warm CDN before campaign

Engineering teams call Endpoints_LoadContent the night before a high-traffic campaign to prime the CDN with the assets that will be requested. Combined with optimisation type lookup via Profiles_ListSupportedOptimizationTypes, this ensures the right delivery profile is in place before launch.

Example prompt: Call Endpoints_LoadContent with the list of campaign asset URLs ahead of launch

### AI agent integration via Jentic

A site-reliability agent uses Jentic to orchestrate CDN operations during deployment workflows. The agent searches Jentic for 'purge an Azure CDN endpoint', loads the Endpoints_PurgeContent schema, and executes with the path list. Jentic mints AAD tokens against management.azure.com so credentials never reach the agent prompt.

Example prompt: Use Jentic search 'purge an Azure CDN endpoint' and execute Endpoints_PurgeContent with the deployment manifest paths

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| PUT | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName} | Create or update a CDN profile |
| PUT | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName} | Create or update a CDN endpoint |
| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}/purge | Purge content paths from an endpoint |
| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}/load | Pre-load content paths into the CDN |
| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}/customDomains/{customDomainName}/enableCustomHttps | Enable HTTPS on a custom domain |
| POST | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}/validateCustomDomain | Validate a custom domain before adding it |

## Key resources

- **Profiles** — Top-level CDN profile resource - supports list, get, create, update, delete plus SSO URI generation, optimization type listing, and resource usage.
- **Endpoints** — CDN endpoints under a profile with lifecycle plus purge, load, start, stop, validateCustomDomain, and resource usage operations.
- **CustomDomains** — Custom domains attached to an endpoint with lifecycle plus enable/disable custom HTTPS.
- **Origins** — Backend origins attached to an endpoint - supports list, get, and update.
- **EdgeNodes / Operations / ResourceUsage** — Provider metadata, IP ranges, and usage telemetry.

## Why Jentic

- **Setup:** Wiring the CdnManagementClient by hand means setting up Azure AD OAuth2 against management.azure.com, handling long-running operations for purge, prefetch, and endpoint start and stop, and threading profile, endpoint, and custom domain ids through every Microsoft.Cdn path yourself. Through Jentic you install once, import the CdnManagementClient from the API Directory, store the Azure AD credential once, and your agent calls it.
- **Permission scoping:** This API puts the profile, endpoint, and custom domain ids in the URL path (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/endpoints/{endpointName}), so a rule can pin your agent to one CDN profile and its endpoints. You choose the operations it may call, so ones like purging cached content or stopping an endpoint 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 'purge an Azure CDN endpoint' or 'add a custom domain', and Jentic returns the matching Endpoints or CustomDomains operation with its input schema so the agent calls the right ARM path without browsing the Microsoft.Cdn reference.

## Related APIs

- **Azure CDN Web Application Firewall Management** — WAF policies attached to CDN endpoints for filtering malicious requests.
- **Azure Web Application Firewall Management** — General WAF management for Application Gateway and Front Door deployments.
- **Azure Storage Management** — Provisions blob storage commonly fronted by an Azure CDN endpoint.

## FAQ

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

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

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

### Can I purge multiple paths from a CDN endpoint in one call?

Yes. Endpoints_PurgeContent at /profiles/{profileName}/endpoints/{endpointName}/purge accepts a contentPaths array, including wildcards like /js/* or /images/*. The call returns an async operation handle that can be polled to confirm completion.

### What are the rate limits for the CdnManagementClient 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. CDN purge operations have additional per-day caps documented by Microsoft for cost control.

### How do I purge a CDN endpoint through Jentic?

Run pip install jentic, then use the async client to search 'purge an Azure CDN endpoint', load Endpoints_PurgeContent, and execute with subscriptionId, resourceGroupName, profileName, endpointName, and a contentPaths array. Jentic returns the async operation handle for polling.

### Can I use a CDN-managed certificate for a custom domain?

Yes. Call CustomDomains_EnableCustomHttps with a body indicating the CDN-managed certificate source. The API issues and binds the certificate, and the operation completes asynchronously - typically within minutes for already-validated domains.

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

Yes. Because Jentic One is self-hosted, you set the rules that decide which operations and credentials your agent may use. This API carries the profile, endpoint, and custom domain ids in the URL path, so a rule can pin your agent to a single CDN profile and its endpoints. You choose exactly which operations it may call, so sensitive ones like Endpoints_PurgeContent or stopping an endpoint stay off limits unless you add them.
