openapi: 3.2.0 info: title: CdnManagementClient Subscriptions API version: '2026-07-01' description: Use these APIs to manage Azure Front Door and CDN resources through the Azure Resource Manager. You must make sure that requests made to these resources are secure. x-typespec-generated: - emitter: '@azure-tools/typespec-autorest' servers: - url: https://management.azure.com security: - azure_auth: - user_impersonation tags: - name: Subscriptions paths: /subscriptions/{subscriptionId}/providers/Microsoft.Cdn/cdnWebApplicationFirewallManagedRuleSets: get: operationId: ManagedRuleSets_List description: Lists all available managed rule sets. parameters: - $ref: ../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter - $ref: ../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/ManagedRuleSetDefinitionList' default: description: An unexpected error response. content: application/json: schema: $ref: ../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse x-ms-examples: List Policies in a Resource Group: $ref: ./examples/WafListManagedRuleSets.json x-ms-pageable: nextLinkName: nextLink tags: - Subscriptions summary: Managed rule sets list x-summary-source: derived /subscriptions/{subscriptionId}/providers/Microsoft.Cdn/checkNameAvailability: post: operationId: CheckNameAvailabilityWithSubscription description: Check the availability of a resource name. This is needed for resources where name is globally unique, such as a CDN endpoint. parameters: - $ref: ../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter - $ref: ../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/CheckNameAvailabilityOutput' default: description: An unexpected error response. content: application/json: schema: $ref: ../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse x-ms-examples: CheckNameAvailabilityWithSubscription: $ref: ./examples/CheckNameAvailabilityWithSubscription.json requestBody: content: application/json: schema: $ref: '#/components/schemas/CheckNameAvailabilityInput' description: The request body required: true tags: - Subscriptions summary: Check name availability with subscription x-summary-source: derived /subscriptions/{subscriptionId}/providers/Microsoft.Cdn/checkResourceUsage: post: operationId: ResourceUsage_List description: Check the quota and actual usage of the CDN profiles under the given subscription. parameters: - $ref: ../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter - $ref: ../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/ResourceUsageListResult' default: description: An unexpected error response. content: application/json: schema: $ref: ../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse x-ms-examples: ResourceUsage_List: $ref: ./examples/ResourceUsage_List.json x-ms-pageable: nextLinkName: nextLink tags: - Subscriptions summary: Resource usage list x-summary-source: derived /subscriptions/{subscriptionId}/providers/Microsoft.Cdn/validateProbe: post: operationId: ValidateProbe description: Check if the probe path is a valid path and the file can be accessed. Probe path is the path to a file hosted on the origin server to help accelerate the delivery of dynamic content via the CDN endpoint. This path is relative to the origin path specified in the endpoint configuration. parameters: - $ref: ../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter - $ref: ../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/ValidateProbeOutput' default: description: An unexpected error response. content: application/json: schema: $ref: ../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse x-ms-examples: ValidateProbe: $ref: ./examples/ValidateProbe.json requestBody: content: application/json: schema: $ref: '#/components/schemas/ValidateProbeInput' description: The request body required: true tags: - Subscriptions summary: Validate probe x-summary-source: derived /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/canMigrate: post: operationId: Profiles_CanMigrate description: Checks if CDN profile can be migrated to Azure Frontdoor(Standard/Premium) profile. parameters: - $ref: ../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter - $ref: ../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter - $ref: ../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter responses: '200': description: Azure operation completed successfully. content: application/json: schema: $ref: '#/components/schemas/CanMigrateResult' '202': description: The request has been accepted for processing, but processing has not yet completed. headers: Location: description: The Location header contains the URL where the status of the long running operation can be checked. schema: type: string Retry-After: description: The Retry-After header can indicate how long the client should wait before polling the operation status. schema: type: integer format: int32 default: description: An unexpected error response. content: application/json: schema: $ref: ../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse x-ms-examples: Profiles_CanMigrate: $ref: ./examples/Profiles_CanMigrate.json x-ms-long-running-operation-options: final-state-via: location final-state-schema: '#/definitions/CanMigrateResult' x-ms-long-running-operation: true requestBody: content: application/json: schema: $ref: '#/components/schemas/CanMigrateParameters' description: Properties needed to check if cdn profile or classic frontdoor can be migrated. required: true tags: - Subscriptions summary: Profiles can migrate x-summary-source: derived /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/checkEndpointNameAvailability: post: operationId: CheckEndpointNameAvailability description: Check the availability of a resource name. This is needed for resources where name is globally unique, such as a afdx endpoint. parameters: - $ref: ../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter - $ref: ../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter - $ref: ../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter responses: '200': description: Azure operation completed successfully. content: application/json: schema: $ref: '#/components/schemas/CheckEndpointNameAvailabilityOutput' default: description: An unexpected error response. content: application/json: schema: $ref: ../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse x-ms-examples: CheckEndpointNameAvailability: $ref: ./examples/CheckEndpointNameAvailability.json requestBody: content: application/json: schema: $ref: '#/components/schemas/CheckEndpointNameAvailabilityInput' description: Input to check. required: true tags: - Subscriptions summary: Check endpoint name availability x-summary-source: derived /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Cdn/migrate: post: operationId: Profiles_Migrate description: Migrate the CDN profile to Azure Frontdoor(Standard/Premium) profile. The change need to be committed after this. parameters: - $ref: ../../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter - $ref: ../../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter - $ref: ../../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter responses: '200': description: Azure operation completed successfully. content: application/json: schema: $ref: '#/components/schemas/MigrateResult' '202': description: The request has been accepted for processing, but processing has not yet completed. headers: Location: description: The Location header contains the URL where the status of the long running operation can be checked. schema: type: string content: application/json: schema: $ref: '#/components/schemas/MigrateResult' default: description: An unexpected error response. content: application/json: schema: $ref: ../../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse x-ms-examples: Profiles_Migrate: $ref: ./examples/Profiles_Migrate.json x-ms-long-running-operation-options: final-state-via: location final-state-schema: '#/definitions/MigrateResult' x-ms-long-running-operation: true requestBody: content: application/json: schema: $ref: '#/components/schemas/MigrationParameters' description: Properties needed to migrate the profile. required: true tags: - Subscriptions summary: Profiles migrate x-summary-source: derived components: schemas: CanMigrateDefaultSku: type: string description: Recommended sku for the migration enum: - Standard_AzureFrontDoor - Premium_AzureFrontDoor x-ms-enum: name: CanMigrateDefaultSku modelAsString: true values: - name: Standard_AzureFrontDoor value: Standard_AzureFrontDoor - name: Premium_AzureFrontDoor value: Premium_AzureFrontDoor ManagedRuleSetDefinitionProperties: type: object description: Properties for a managed rule set definition. properties: provisioningState: type: string description: Provisioning state of the managed rule set. readOnly: true ruleSetType: type: string description: Type of the managed rule set. readOnly: true ruleSetVersion: type: string description: Version of the managed rule set type. readOnly: true ruleGroups: type: array description: Rule groups of the managed rule set. items: $ref: '#/components/schemas/ManagedRuleGroupDefinition' readOnly: true x-ms-identifiers: - ruleGroupName ResourceType: type: string description: Type of CDN resource used in CheckNameAvailability. enum: - Microsoft.Cdn/Profiles/Endpoints - Microsoft.Cdn/Profiles/AfdEndpoints x-ms-enum: name: ResourceType modelAsString: true values: - name: Microsoft.Cdn/Profiles/Endpoints value: Microsoft.Cdn/Profiles/Endpoints - name: Microsoft.Cdn/Profiles/AfdEndpoints value: Microsoft.Cdn/Profiles/AfdEndpoints CheckEndpointNameAvailabilityInput: type: object description: Input of CheckNameAvailability API. properties: name: type: string description: The resource name to validate. type: $ref: '#/components/schemas/ResourceType' description: The type of the resource whose name is to be validated. autoGeneratedDomainNameLabelScope: $ref: '#/components/schemas/AutoGeneratedDomainNameLabelScope' description: Indicates the endpoint name reuse scope. The default value is TenantReuse. required: - name - type CanMigrateParameters: type: object description: Request body for CanMigrate operation. properties: classicResourceReference: $ref: '#/components/schemas/ResourceReference' description: Resource reference of the classic cdn profile or classic frontdoor that need to be migrated. required: - classicResourceReference MigrateResultProperties: type: object properties: migratedProfileResourceId: $ref: '#/components/schemas/ResourceReference' description: Arm resource id of the migrated profile readOnly: true SkuName: type: string description: Name of the pricing tier. enum: - Standard_Verizon - Premium_Verizon - Custom_Verizon - Standard_Akamai - Standard_ChinaCdn - Standard_Microsoft - Standard_AzureFrontDoor - Premium_AzureFrontDoor - Standard_955BandWidth_ChinaCdn - Standard_AvgBandWidth_ChinaCdn - StandardPlus_ChinaCdn - StandardPlus_955BandWidth_ChinaCdn - StandardPlus_AvgBandWidth_ChinaCdn x-ms-enum: name: SkuName modelAsString: true values: - name: Standard_Verizon value: Standard_Verizon - name: Premium_Verizon value: Premium_Verizon - name: Custom_Verizon value: Custom_Verizon - name: Standard_Akamai value: Standard_Akamai - name: Standard_ChinaCdn value: Standard_ChinaCdn - name: Standard_Microsoft value: Standard_Microsoft - name: Standard_AzureFrontDoor value: Standard_AzureFrontDoor - name: Premium_AzureFrontDoor value: Premium_AzureFrontDoor - name: Standard_955BandWidth_ChinaCdn value: Standard_955BandWidth_ChinaCdn - name: Standard_AvgBandWidth_ChinaCdn value: Standard_AvgBandWidth_ChinaCdn - name: StandardPlus_ChinaCdn value: StandardPlus_ChinaCdn - name: StandardPlus_955BandWidth_ChinaCdn value: StandardPlus_955BandWidth_ChinaCdn - name: StandardPlus_AvgBandWidth_ChinaCdn value: StandardPlus_AvgBandWidth_ChinaCdn MigrationWebApplicationFirewallMapping: type: object description: Web Application Firewall Mapping properties: migratedFrom: $ref: '#/components/schemas/ResourceReference' description: Migration From Waf policy migratedTo: $ref: '#/components/schemas/ResourceReference' description: Migration to Waf policy ManagedRuleDefinition: type: object description: Describes a managed rule definition. properties: ruleId: type: string description: Identifier for the managed rule. readOnly: true description: type: string description: Describes the functionality of the managed rule. readOnly: true AutoGeneratedDomainNameLabelScope: type: string description: Indicates the endpoint name reuse scope. The default value is TenantReuse. enum: - TenantReuse - SubscriptionReuse - ResourceGroupReuse - NoReuse x-ms-enum: name: AutoGeneratedDomainNameLabelScope modelAsString: true values: - name: TenantReuse value: TenantReuse - name: SubscriptionReuse value: SubscriptionReuse - name: ResourceGroupReuse value: ResourceGroupReuse - name: NoReuse value: NoReuse ManagedRuleGroupDefinition: type: object description: Describes a managed rule group. properties: ruleGroupName: type: string description: Name of the managed rule group. readOnly: true description: type: string description: Description of the managed rule group. readOnly: true rules: type: array description: List of rules within the managed rule group. items: $ref: '#/components/schemas/ManagedRuleDefinition' readOnly: true x-ms-identifiers: - ruleId ValidateProbeOutput: type: object description: Output of the validate probe API. properties: isValid: type: boolean description: Indicates whether the probe URL is accepted or not. readOnly: true errorCode: type: string description: Specifies the error code when the probe url is not accepted. readOnly: true message: type: string description: The detailed error message describing why the probe URL is not accepted. readOnly: true CheckEndpointNameAvailabilityOutput: type: object description: Output of check name availability API. properties: nameAvailable: type: boolean description: Indicates whether the name is available. readOnly: true availableHostname: type: string description: Returns the available hostname generated based on the AutoGeneratedDomainNameLabelScope when the name is available, otherwise it returns empty string readOnly: true reason: type: string description: The reason why the name is not available. readOnly: true message: type: string description: The detailed error message describing why the name is not available. readOnly: true ResourceUsageListResult: type: object description: Output of check resource usage API. properties: value: type: array description: The ResourceUsage items on this page items: $ref: '#/components/schemas/ResourceUsage' nextLink: type: string format: uri description: The link to the next page of items required: - value ResourceUsage: type: object description: Output of check resource usage API. properties: resourceType: type: string description: Resource type for which the usage is provided. readOnly: true unit: $ref: '#/components/schemas/ResourceUsageUnit' description: Unit of the usage. e.g. count. readOnly: true currentValue: type: integer format: int32 description: Actual value of usage on the specified resource type. readOnly: true limit: type: integer format: int32 description: Quota of the specified resource type. readOnly: true Sku: type: object description: 'Standard_Verizon = The SKU name for a Standard Verizon CDN profile. Premium_Verizon = The SKU name for a Premium Verizon CDN profile. Custom_Verizon = The SKU name for a Custom Verizon CDN profile. Standard_Akamai = The SKU name for an Akamai CDN profile. Standard_ChinaCdn = The SKU name for a China CDN profile for VOD, Web and download scenarios using GB based billing model. Standard_Microsoft = The SKU name for a Standard Microsoft CDN profile. Standard_AzureFrontDoor = The SKU name for an Azure Front Door Standard profile. Premium_AzureFrontDoor = The SKU name for an Azure Front Door Premium profile. Standard_955BandWidth_ChinaCdn = The SKU name for a China CDN profile for VOD, Web and download scenarios using 95-5 peak bandwidth billing model. Standard_AvgBandWidth_ChinaCdn = The SKU name for a China CDN profile for VOD, Web and download scenarios using monthly average peak bandwidth billing model. StandardPlus_ChinaCdn = The SKU name for a China CDN profile for live-streaming using GB based billing model. StandardPlus_955BandWidth_ChinaCdn = The SKU name for a China CDN live-streaming profile using 95-5 peak bandwidth billing model. StandardPlus_AvgBandWidth_ChinaCdn = The SKU name for a China CDN live-streaming profile using monthly average peak bandwidth billing model.' properties: name: $ref: '#/components/schemas/SkuName' description: Name of the pricing tier. MigrationParameters: type: object description: Request body for Migrate operation. properties: sku: $ref: '#/components/schemas/Sku' description: Sku for the migration classicResourceReference: $ref: '#/components/schemas/ResourceReference' description: Resource reference of the classic cdn profile or classic frontdoor that need to be migrated. profileName: type: string description: Name of the new profile that need to be created. migrationWebApplicationFirewallMappings: type: array description: Waf mapping for the migrated profile items: $ref: '#/components/schemas/MigrationWebApplicationFirewallMapping' x-ms-identifiers: [] required: - sku - classicResourceReference - profileName ValidateProbeInput: type: object description: Input of the validate probe API. properties: probeURL: type: string description: The probe URL to validate. required: - probeURL ManagedRuleSetDefinitionList: type: object description: List of managed rule set definitions available for use in a policy. properties: value: type: array description: The ManagedRuleSetDefinition items on this page items: $ref: '#/components/schemas/ManagedRuleSetDefinition' nextLink: type: string format: uri description: The link to the next page of items required: - value CheckNameAvailabilityInput: type: object description: Input of CheckNameAvailability API. properties: name: type: string description: The resource name to validate. type: $ref: '#/components/schemas/ResourceType' description: The type of the resource whose name is to be validated. required: - name - type CanMigrateResult: type: object description: Result for canMigrate operation. properties: id: type: string format: arm-id description: Resource ID. readOnly: true type: type: string description: Resource type. readOnly: true properties: $ref: '#/components/schemas/CanMigrateProperties' x-ms-client-flatten: true CheckNameAvailabilityOutput: type: object description: Output of check name availability API. properties: nameAvailable: type: boolean description: Indicates whether the name is available. readOnly: true reason: type: string description: The reason why the name is not available. readOnly: true message: type: string description: The detailed error message describing why the name is not available. readOnly: true MigrateResult: type: object description: Result for migrate operation. properties: id: type: string format: arm-id description: Resource ID. readOnly: true type: type: string description: Resource type. readOnly: true properties: $ref: '#/components/schemas/MigrateResultProperties' x-ms-client-flatten: true ResourceUsageUnit: type: string description: Unit of the usage. e.g. count. enum: - count x-ms-enum: name: ResourceUsageUnit modelAsString: true values: - name: count value: count ResourceReference: type: object description: Reference to another resource. properties: id: type: string description: Resource ID. ManagedRuleSetDefinition: type: object description: Describes a managed rule set definition. properties: properties: $ref: '#/components/schemas/ManagedRuleSetDefinitionProperties' description: Describes managed rule set definition properties. x-ms-client-flatten: true sku: $ref: '#/components/schemas/Sku' description: The pricing tier (defines a CDN provider, feature list and rate) of the CdnWebApplicationFirewallPolicy. allOf: - $ref: ../../../../../../common-types/resource-management/v6/types.json#/definitions/Resource CanMigrateProperties: type: object properties: canMigrate: type: boolean description: Flag that says if the profile can be migrated readOnly: true defaultSku: $ref: '#/components/schemas/CanMigrateDefaultSku' description: Recommended sku for the migration readOnly: true errors: type: array items: $ref: '#/components/schemas/MigrationErrorType' x-ms-identifiers: [] MigrationErrorType: type: object description: Error response indicates CDN service is not able to process the incoming request. The reason is provided in the error message. properties: code: type: string description: Error code. readOnly: true resourceName: type: string description: Resource which has the problem. readOnly: true errorMessage: type: string description: Error message indicating why the operation failed. readOnly: true nextSteps: type: string description: Describes what needs to be done to fix the problem readOnly: true securitySchemes: azure_auth: type: oauth2 flows: implicit: scopes: user_impersonation: impersonate your user account authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize description: Azure Active Directory OAuth2 Flow.