# 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'