Microsoft Azure Cdn · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Microsoft Azure Cdn Profiles API
29 actions
29 updates
phrasing
extends
openapi/microsoft-azure-cdn-profiles-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Microsoft Azure Cdn's API. It is a proposal applied on top of the contract, not a document Microsoft Azure Cdn publishes.
What the actions change
x-apievangelist-phrasing
Targets 29 · first 16 shown; the file carries all of them
$.info
$.paths['/subscriptions/{subscriptionId}/providers/Microsoft.Cdn/profiles'].get
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles'].get
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}'].get
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}'].put
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}'].delete
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}'].patch
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/cdnCanMigrateToAfd'].post
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/cdnMigrateToAfd'].post
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/checkEndpointNameAvailability'].post
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/checkHostNameAvailability'].post
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/checkResourceUsage'].post
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/generateSsoUri'].post
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/getLogAnalyticsLocations'].get
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/getLogAnalyticsMetrics'].get
$.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/getLogAnalyticsRankings'].get
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Microsoft Azure Cdn Profiles API
version: 1.0.0
extends: openapi/microsoft-azure-cdn-profiles-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 28
- target: $.paths['/subscriptions/{subscriptionId}/providers/Microsoft.Cdn/profiles'].get
update:
x-apievangelist-phrasing:
intent: List all CDN and Front Door profiles in a subscription
effect: read
questions:
- Which CDN and Front Door profiles exist across my whole Azure subscription?
- Can I see every profile in a subscription regardless of resource group?
instructions:
- text: List all CDN and Front Door profiles in my subscription.
- text: Show every profile across the subscription.
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles'].get
update:
x-apievangelist-phrasing:
intent: List CDN and Front Door profiles in a resource group
effect: read
questions:
- Which profiles live in one particular resource group?
- Can I narrow the profile list to a single resource group?
instructions:
- text: List the CDN and Front Door profiles in this resource group.
- text: Show profiles scoped to my current resource group only.
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}'].get
update:
x-apievangelist-phrasing:
intent: Get a CDN or Front Door profile
effect: read
questions:
- What SKU and provisioning state does one of my profiles have?
- Where do I look up a single CDN or Front Door profile by name?
instructions:
- text: Get profile {profile}.
slots:
profile: path.profileName
- text: Show the SKU and state of CDN profile {profile}.
slots:
profile: path.profileName
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}'].put
update:
x-apievangelist-phrasing:
intent: Create a CDN or Front Door profile
effect: write
questions:
- How do I create a new Azure Front Door Premium or CDN profile?
- Which SKU do I have to pick when creating a profile?
instructions:
- text: Create profile {profile} with SKU {sku}.
slots:
profile: path.profileName
sku: requestBody.sku
- text: Set up a new {sku} profile named {profile} with managed identity {identity}.
slots:
profile: path.profileName
sku: requestBody.sku
identity: requestBody.identity
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a profile and all its sub-resources
effect: destructive
questions:
- Does deleting a profile also delete its endpoints, origins and custom domains?
- Can I tear down an entire CDN profile in one call?
instructions:
- text: Delete profile {profile} and everything under it.
slots:
profile: path.profileName
- text: Tear down CDN profile {profile} permanently.
slots:
profile: path.profileName
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}'].patch
update:
x-apievangelist-phrasing:
intent: Update tags or identity on a profile
effect: write
questions:
- Can I change tags or the managed identity on an existing profile?
- Which profile settings can be patched after creation?
instructions:
- text: Update the tags on profile {profile} to {tags}.
slots:
profile: path.profileName
tags: requestBody.tags
- text: Patch profile {profile} with identity {identity}.
slots:
profile: path.profileName
identity: requestBody.identity
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/cdnCanMigrateToAfd'].post
update:
x-apievangelist-phrasing:
intent: Check if a CDN profile can move to Front Door
effect: read
questions:
- Is my existing CDN profile eligible to become a Front Door Standard or Premium profile?
- What would block a named CDN profile from migrating to Front Door?
instructions:
- text: Check whether CDN profile {profile} can migrate to Front Door.
slots:
profile: path.profileName
- text: Run the Front Door migration eligibility check on profile {profile}.
slots:
profile: path.profileName
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/cdnMigrateToAfd'].post
update:
x-apievangelist-phrasing:
intent: Prepare a CDN profile's migration to Front Door
effect: write
questions:
- How do I migrate a CDN profile to Azure Front Door Standard or Premium?
- Can I map my classic CDN endpoints to new Front Door endpoint names during migration?
instructions:
- text: Migrate CDN profile {profile} to Front Door with SKU {sku}.
slots:
profile: path.profileName
sku: requestBody.sku
- text: Prepare {profile} for Front Door migration on {sku} using endpoint mappings {mappings}.
slots:
profile: path.profileName
sku: requestBody.sku
mappings: requestBody.migrationEndpointMappings
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/checkEndpointNameAvailability'].post
update:
x-apievangelist-phrasing:
intent: Check an AFD endpoint name within a profile
effect: read
questions:
- Is the Front Door endpoint name I want free, and what hostname would it get?
- Which globally unique hostname will a new endpoint in my profile receive?
instructions:
- text: Check if endpoint name {name} of type {type} is available in profile {profile}.
slots:
name: requestBody.name
type: requestBody.type
profile: path.profileName
- text: Get the unique hostname for endpoint {name} ({type}) in {profile} with reuse scope {scope}.
slots:
name: requestBody.name
type: requestBody.type
profile: path.profileName
scope: requestBody.autoGeneratedDomainNameLabelScope
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/checkHostNameAvailability'].post
update:
x-apievangelist-phrasing:
intent: Check a custom hostname for a Front Door profile
effect: read
questions:
- Is a custom hostname already in use before I add it to my Front Door profile?
- Can I validate a host name at the profile level rather than per endpoint?
instructions:
- text: Check host name {host} availability for Front Door profile {profile}.
slots:
host: requestBody.hostName
profile: path.profileName
- text: Validate custom host {host} against profile {profile}.
slots:
host: requestBody.hostName
profile: path.profileName
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/checkResourceUsage'].post
update:
x-apievangelist-phrasing:
intent: Check endpoint quota for any CDN or Front Door profile
effect: read
questions:
- How many endpoints does my CDN profile use against its quota?
- What is the endpoint limit for a classic CDN or Front Door profile?
instructions:
- text: Check the endpoint quota and usage of profile {profile}.
slots:
profile: path.profileName
- text: Show how close CDN profile {profile} is to its endpoint limit.
slots:
profile: path.profileName
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/generateSsoUri'].post
update:
x-apievangelist-phrasing:
intent: Get a sign-in link to the CDN supplemental portal
effect: read
questions:
- How do I get into the supplemental portal for advanced HTTP reports and real-time stats?
- How long does a generated SSO URI for the supplemental portal stay valid?
instructions:
- text: Generate an SSO URI for the supplemental portal of profile {profile}.
slots:
profile: path.profileName
- text: Give me a single sign-on link to manage advanced features of {profile}.
slots:
profile: path.profileName
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/getLogAnalyticsLocations'].get
update:
x-apievangelist-phrasing:
intent: List locations available for AFD log reports
effect: read
questions:
- Which continents and countries can I filter my Front Door log reports by?
- Where do I find valid location names for a log analytics report?
instructions:
- text: List the log analytics locations for Front Door profile {profile}.
slots:
profile: path.profileName
- text: Show report location names available on {profile}.
slots:
profile: path.profileName
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/getLogAnalyticsMetrics'].get
update:
x-apievangelist-phrasing:
intent: Get traffic metrics report for a Front Door profile
effect: read
questions:
- How much bandwidth and how many requests did my Front Door domains serve last week?
- Can I break down Front Door traffic metrics by country or protocol?
instructions:
- text: Get {metrics} for {profile} on domains {domains} over {protocols} from {start} to {end} at {granularity} granularity.
slots:
metrics: query.metrics
profile: path.profileName
domains: query.customDomains
protocols: query.protocols
start: query.dateTimeBegin
end: query.dateTimeEnd
granularity: query.granularity
- text: Report {metrics} for profile {profile} grouped by {groupby} between {start} and {end}.
slots:
metrics: query.metrics
profile: path.profileName
groupby: query.groupBy
start: query.dateTimeBegin
end: query.dateTimeEnd
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/getLogAnalyticsRankings'].get
update:
x-apievangelist-phrasing:
intent: Get top-N traffic rankings for a Front Door profile
effect: read
questions:
- What are the top URLs or referrers hitting my Front Door profile?
- Can I limit a traffic ranking report to the top few entries?
instructions:
- text: Rank the top {max} {rankings} by {metrics} for {profile} from {start} to {end}.
slots:
max: query.maxRanking
rankings: query.rankings
metrics: query.metrics
profile: path.profileName
start: query.dateTimeBegin
end: query.dateTimeEnd
- text: Show top {rankings} by {metrics} on domains {domains} of {profile}.
slots:
rankings: query.rankings
metrics: query.metrics
domains: query.customDomains
profile: path.profileName
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/getLogAnalyticsResources'].get
update:
x-apievangelist-phrasing:
intent: List endpoints and domains available for log reports
effect: read
questions:
- Which endpoints and custom domains can I include in a Front Door log report?
- Where do I find the resource names to scope an analytics report?
instructions:
- text: List the endpoints and custom domains available for log reports on {profile}.
slots:
profile: path.profileName
- text: Show reportable resources for Front Door profile {profile}.
slots:
profile: path.profileName
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/getSupportedOptimizationTypes'].post
update:
x-apievangelist-phrasing:
intent: List optimization types a profile supports
effect: read
questions:
- Which optimization types can I pick for a new endpoint on this profile?
- Does my profile support large file download or dynamic site acceleration?
instructions:
- text: List the supported optimization types for profile {profile}.
slots:
profile: path.profileName
- text: Show which endpoint optimizations {profile} allows.
slots:
profile: path.profileName
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/getWafLogAnalyticsMetrics'].get
update:
x-apievangelist-phrasing:
intent: Get WAF metrics report for a Front Door profile
effect: read
questions:
- How many requests did my Front Door WAF block over the past day?
- Can I filter WAF metrics by action or rule type?
instructions:
- text: Get WAF {metrics} for {profile} from {start} to {end} at {granularity} granularity.
slots:
metrics: query.metrics
profile: path.profileName
start: query.dateTimeBegin
end: query.dateTimeEnd
granularity: query.granularity
- text: Report WAF {metrics} on {profile} for actions {actions} and rule types {ruletypes}, {start} to {end}, per {granularity}.
slots:
metrics: query.metrics
profile: path.profileName
actions: query.actions
ruletypes: query.ruleTypes
start: query.dateTimeBegin
end: query.dateTimeEnd
granularity: query.granularity
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/getWafLogAnalyticsRankings'].get
update:
x-apievangelist-phrasing:
intent: Get top-N WAF rankings for a Front Door profile
effect: read
questions:
- Which client IPs or rules trigger my Front Door WAF the most?
- Can I rank WAF hits by rule type or action?
instructions:
- text: List the {max} most frequent firewall {rankings} by {metrics} on {profile}, {start} through {end}.
slots:
max: query.maxRanking
rankings: query.rankings
metrics: query.metrics
profile: path.profileName
start: query.dateTimeBegin
end: query.dateTimeEnd
- text: Show top {max} firewall {rankings} for {profile} filtered to actions {actions}, {start} to {end}, by {metrics}.
slots:
max: query.maxRanking
rankings: query.rankings
profile: path.profileName
actions: query.actions
start: query.dateTimeBegin
end: query.dateTimeEnd
metrics: query.metrics
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/migrationAbort'].post
update:
x-apievangelist-phrasing:
intent: Abort a pending Front Door migration
effect: destructive
questions:
- Can I cancel a CDN to Front Door migration before committing it?
- What does aborting a profile migration roll back?
instructions:
- text: Abort the Front Door migration of profile {profile}.
slots:
profile: path.profileName
- text: Cancel the in-progress migration for {profile}.
slots:
profile: path.profileName
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/migrationCommit'].post
update:
x-apievangelist-phrasing:
intent: Commit a migrated Front Door profile
effect: destructive
questions:
- How do I finalize a migration to Front Door Standard or Premium?
- Is committing a profile migration reversible?
instructions:
- text: Commit the migration of profile {profile}.
slots:
profile: path.profileName
- text: Finalize the migrated Front Door profile {profile}.
slots:
profile: path.profileName
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/upgrade'].post
update:
x-apievangelist-phrasing:
intent: Upgrade a Front Door profile from Standard to Premium
effect: write
questions:
- How do I move my Front Door profile from the Standard tier to Premium?
- What WAF policy mappings are required when upgrading to Premium?
instructions:
- text: Upgrade profile {profile} to Premium with WAF mappings {waf}.
slots:
profile: path.profileName
waf: requestBody.wafMappingList
- text: Move Front Door profile {profile} from Standard to Premium tier using {waf}.
slots:
profile: path.profileName
waf: requestBody.wafMappingList
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/usages'].post
update:
x-apievangelist-phrasing:
intent: Check endpoint usage of a Front Door profile
effect: read
questions:
- How many AFD endpoints have I used against my Front Door profile quota?
- Is my Azure Front Door Standard profile near its endpoint limit?
instructions:
- text: Show Front Door endpoint usages for profile {profile}.
slots:
profile: path.profileName
- text: Get the AFD usages report for {profile}.
slots:
profile: path.profileName
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{profileName}/validateSecret'].post
update:
x-apievangelist-phrasing:
intent: Validate a secret before adding it to a profile
effect: read
questions:
- Can I check that a Key Vault certificate reference is valid for Front Door?
- Will my certificate secret version work before I create the secret?
instructions:
- text: Validate a {type} secret from {source} in profile {profile}.
slots:
type: requestBody.secretType
source: requestBody.secretSource
profile: path.profileName
- text: Check secret source {source} version {version} of type {type} for {profile}.
slots:
source: requestBody.secretSource
version: requestBody.secretVersion
type: requestBody.secretType
profile: path.profileName
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{name}'].get
update:
x-apievangelist-phrasing:
intent: Get a profiles resource by resource group and name
effect: read
questions:
- Can I fetch a profiles resource using just subscription, resource group and name?
- What does the generic profiles resource return for a given name?
instructions:
- text: Get the profiles resource {name} in resource group {rg} of subscription {sub}.
slots:
name: path.name
rg: path.resourceGroupName
sub: path.subscriptionId
- text: Fetch generic profiles resource {name} from {rg}, subscription {sub}.
slots:
name: path.name
rg: path.resourceGroupName
sub: path.subscriptionId
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{name}'].put
update:
x-apievangelist-phrasing:
intent: Create or update a profiles resource
effect: write
questions:
- Can I upsert a profiles resource with a location and tags in one PUT?
- Is there a generic create-or-update for a profiles resource?
instructions:
- text: Create or update profiles resource {name} in {rg}, subscription {sub}, at location {location}.
slots:
name: path.name
rg: path.resourceGroupName
sub: path.subscriptionId
location: requestBody.location
- text: Upsert profiles resource {name} under resource group {rg} of {sub} with tags {tags}.
slots:
name: path.name
rg: path.resourceGroupName
sub: path.subscriptionId
tags: requestBody.tags
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{name}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a profiles resource by resource group
effect: destructive
questions:
- Can I delete a profiles resource by naming its subscription and resource group?
- Is there a generic delete call for a profiles resource?
instructions:
- text: Delete profiles resource {name} in resource group {rg}, subscription {sub}.
slots:
name: path.name
rg: path.resourceGroupName
sub: path.subscriptionId
- text: Remove generic profiles resource {name} from {rg} of {sub}.
slots:
name: path.name
rg: path.resourceGroupName
sub: path.subscriptionId
method: generated
generated: '2026-09-26'
- target: $.paths['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/profiles/{name}'].patch
update:
x-apievangelist-phrasing:
intent: Update a profiles resource by resource group
effect: write
questions:
- Is there a generic PATCH for a profiles resource addressed by resource group?
- Can I patch a profiles resource using subscription, resource group and name?
instructions:
- text: Update profiles resource {name} in resource group {rg}, subscription {sub}.
slots:
name: path.name
rg: path.resourceGroupName
sub: path.subscriptionId
- text: Patch generic profiles resource {name} under {rg} of {sub}.
slots:
name: path.name
rg: path.resourceGroupName
sub: path.subscriptionId
method: generated
generated: '2026-09-26'