Microsoft.Cdn profiles/endpoints 2020-04-15

Bicep resource definition

The profiles/endpoints resource type can be deployed with operations that target:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.Cdn/profiles/endpoints resource, add the following Bicep to your template.

resource symbolicname 'Microsoft.Cdn/profiles/endpoints@2020-04-15' = {
  name: 'string'
  location: 'string'
  tags: {
    tagName1: 'tagValue1'
    tagName2: 'tagValue2'
  }
  parent: resourceSymbolicName
  properties: {
    contentTypesToCompress: [
      'string'
    ]
    defaultOriginGroup: {
      id: 'string'
    }
    deliveryPolicy: {
      description: 'string'
      rules: [
        {
          actions: [
            {
              name: 'string'
              // For remaining properties, see DeliveryRuleActionAutoGenerated objects
            }
          ]
          conditions: [
            {
              name: 'string'
              // For remaining properties, see DeliveryRuleCondition objects
            }
          ]
          name: 'string'
          order: int
        }
      ]
    }
    geoFilters: [
      {
        action: 'string'
        countryCodes: [
          'string'
        ]
        relativePath: 'string'
      }
    ]
    isCompressionEnabled: bool
    isHttpAllowed: bool
    isHttpsAllowed: bool
    optimizationType: 'string'
    originGroups: [
      {
        name: 'string'
        properties: {
          healthProbeSettings: {
            probeIntervalInSeconds: int
            probePath: 'string'
            probeProtocol: 'string'
            probeRequestType: 'string'
          }
          origins: [
            {
              id: 'string'
            }
          ]
          responseBasedOriginErrorDetectionSettings: {
            httpErrorRanges: [
              {
                begin: int
                end: int
              }
            ]
            responseBasedDetectedErrorTypes: 'string'
            responseBasedFailoverThresholdPercentage: int
          }
          trafficRestorationTimeToHealedOrNewEndpointsInMinutes: int
        }
      }
    ]
    originHostHeader: 'string'
    originPath: 'string'
    origins: [
      {
        name: 'string'
        properties: {
          enabled: bool
          hostName: 'string'
          httpPort: int
          httpsPort: int
          originHostHeader: 'string'
          priority: int
          privateLinkAlias: 'string'
          privateLinkApprovalMessage: 'string'
          privateLinkLocation: 'string'
          privateLinkResourceId: 'string'
          weight: int
        }
      }
    ]
    probePath: 'string'
    queryStringCachingBehavior: 'string'
    urlSigningKeys: [
      {
        keyId: 'string'
        keySourceParameters: {
          '@odata.type': '#Microsoft.Azure.Cdn.Models.KeyVaultSigningKeyParameters'
          resourceGroupName: 'string'
          secretName: 'string'
          secretVersion: 'string'
          subscriptionId: 'string'
          vaultName: 'string'
        }
      }
    ]
    webApplicationFirewallPolicyLink: {
      id: 'string'
    }
  }
}

DeliveryRuleActionAutoGenerated objects

Set the name property to specify the type of object.

For CacheExpiration, use:

  name: 'CacheExpiration'
  parameters: {
    '@odata.type': '#Microsoft.Azure.Cdn.Models.DeliveryRuleCacheExpirationActionParameters'
    cacheBehavior: 'string'
    cacheDuration: 'string'
    cacheType: 'All'
  }

For CacheKeyQueryString, use:

  name: 'CacheKeyQueryString'
  parameters: {
    '@odata.type': '#Microsoft.Azure.Cdn.Models.DeliveryRuleCacheKeyQueryStringBehaviorActionParameters'
    queryParameters: 'string'
    queryStringBehavior: 'string'
  }

For ModifyRequestHeader, use:

  name: 'ModifyRequestHeader'
  parameters: {
    '@odata.type': '#Microsoft.Azure.Cdn.Models.DeliveryRuleHeaderActionParameters'
    headerAction: 'string'
    headerName: 'string'
    value: 'string'
  }

For ModifyResponseHeader, use:

  name: 'ModifyResponseHeader'
  parameters: {
    '@odata.type': '#Microsoft.Azure.Cdn.Models.DeliveryRuleHeaderActionParameters'
    headerAction: 'string'
    headerName: 'string'
    value: 'string'
  }

For UrlRedirect, use:

  name: 'UrlRedirect'
  parameters: {
    '@odata.type': '#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlRedirectActionParameters'
    customFragment: 'string'
    customHostname: 'string'
    customPath: 'string'
    customQueryString: 'string'
    destinationProtocol: 'string'
    redirectType: 'string'
  }

For UrlRewrite, use:

  name: 'UrlRewrite'
  parameters: {
    '@odata.type': '#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlRewriteActionParameters'
    destination: 'string'
    preserveUnmatchedPath: bool
    sourcePattern: 'string'
  }

For UrlSigning, use:

  name: 'UrlSigning'
  parameters: {
    '@odata.type': '#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlSigningActionParameters'
    algorithm: 'SHA256'
    ipSubnets: [
      'string'
    ]
    keyId: 'string'
    parameterNameOverride: [
      {
        paramIndicator: 'string'
        paramName: 'string'
      }
    ]
  }

DeliveryRuleCondition objects

Set the name property to specify the type of object.

For Cookies, use:

  name: 'Cookies'
  parameters: {
    '@odata.type': '#Microsoft.Azure.Cdn.Models.DeliveryRuleCookiesConditionParameters'
    matchValues: [
      'string'
    ]
    negateCondition: bool
    operator: 'string'
    selector: 'string'
    transforms: [
      'string'
    ]
  }

For HttpVersion, use:

  name: 'HttpVersion'
  parameters: {
    '@odata.type': '#Microsoft.Azure.Cdn.Models.DeliveryRuleHttpVersionConditionParameters'
    matchValues: [
      'string'
    ]
    negateCondition: bool
    operator: 'Equal'
  }

For IsDevice, use:

  name: 'IsDevice'
  parameters: {
    '@odata.type': '#Microsoft.Azure.Cdn.Models.DeliveryRuleIsDeviceConditionParameters'
    matchValues: [
      'string'
    ]
    negateCondition: bool
    operator: 'Equal'
    transforms: [
      'string'
    ]
  }

For PostArgs, use:

  name: 'PostArgs'
  parameters: {
    '@odata.type': '#Microsoft.Azure.Cdn.Models.DeliveryRulePostArgsConditionParameters'
    matchValues: [
      'string'
    ]
    negateCondition: bool
    operator: 'string'
    selector: 'string'
    transforms: [
      'string'
    ]
  }

For QueryString, use:

  name: 'QueryString'
  parameters: {
    '@odata.type': '#Microsoft.Azure.Cdn.Models.DeliveryRuleQueryStringConditionParameters'
    matchValues: [
      'string'
    ]
    negateCondition: bool
    operator: 'string'
    transforms: [
      'string'
    ]
  }

For RemoteAddress, use:

  name: 'RemoteAddress'
  parameters: {
    '@odata.type': '#Microsoft.Azure.Cdn.Models.DeliveryRuleRemoteAddressConditionParameters'
    matchValues: [
      'string'
    ]
    negateCondition: bool
    operator: 'string'
    transforms: [
      'string'
    ]
  }

For RequestBody, use:

  name: 'RequestBody'
  parameters: {
    '@odata.type': '#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestBodyConditionParameters'
    matchValues: [
      'string'
    ]
    negateCondition: bool
    operator: 'string'
    transforms: [
      'string'
    ]
  }

For RequestHeader, use:

  name: 'RequestHeader'
  parameters: {
    '@odata.type': '#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestHeaderConditionParameters'
    matchValues: [
      'string'
    ]
    negateCondition: bool
    operator: 'string'
    selector: 'string'
    transforms: [
      'string'
    ]
  }

For RequestMethod, use:

  name: 'RequestMethod'
  parameters: {
    '@odata.type': '#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestMethodConditionParameters'
    matchValues: [
      'string'
    ]
    negateCondition: bool
    operator: 'Equal'
  }

For RequestScheme, use:

  name: 'RequestScheme'
  parameters: {
    '@odata.type': '#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestSchemeConditionParameters'
    matchValues: [
      'string'
    ]
    negateCondition: bool
    operator: 'Equal'
  }

For RequestUri, use:

  name: 'RequestUri'
  parameters: {
    '@odata.type': '#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestUriConditionParameters'
    matchValues: [
      'string'
    ]
    negateCondition: bool
    operator: 'string'
    transforms: [
      'string'
    ]
  }

For UrlFileExtension, use:

  name: 'UrlFileExtension'
  parameters: {
    '@odata.type': '#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlFileExtensionMatchConditionParameters'
    matchValues: [
      'string'
    ]
    negateCondition: bool
    operator: 'string'
    transforms: [
      'string'
    ]
  }

For UrlFileName, use:

  name: 'UrlFileName'
  parameters: {
    '@odata.type': '#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlFilenameConditionParameters'
    matchValues: [
      'string'
    ]
    negateCondition: bool
    operator: 'string'
    transforms: [
      'string'
    ]
  }

For UrlPath, use:

  name: 'UrlPath'
  parameters: {
    '@odata.type': '#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlPathMatchConditionParameters'
    matchValues: [
      'string'
    ]
    negateCondition: bool
    operator: 'string'
    transforms: [
      'string'
    ]
  }

Property values

profiles/endpoints

Name Description Value
name The resource name

See how to set names and types for child resources in Bicep.
string (required)

Character limit: 1-50

Valid characters:
Alphanumerics and hyphens.

Start and end with alphanumeric.

Resource name must be unique across Azure.
location Resource location. string (required)
tags Resource tags. Dictionary of tag names and values. See Tags in templates
parent In Bicep, you can specify the parent resource for a child resource. You only need to add this property when the child resource is declared outside of the parent resource.

For more information, see Child resource outside parent resource.
Symbolic name for resource of type: profiles
properties The JSON object that contains the properties required to create an endpoint. EndpointProperties

EndpointProperties

Name Description Value
contentTypesToCompress List of content types on which compression applies. The value should be a valid MIME type. string[]
defaultOriginGroup A reference to the origin group. ResourceReference
deliveryPolicy A policy that specifies the delivery rules to be used for an endpoint. EndpointPropertiesUpdateParametersDeliveryPolicy
geoFilters List of rules defining the user's geo access within a CDN endpoint. Each geo filter defines an access rule to a specified path or content, e.g. block APAC for path /pictures/ GeoFilter[]
isCompressionEnabled Indicates whether content compression is enabled on CDN. Default value is false. If compression is enabled, content will be served as compressed if user requests for a compressed version. Content won't be compressed on CDN when requested content is smaller than 1 byte or larger than 1 MB. bool
isHttpAllowed Indicates whether HTTP traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed. bool
isHttpsAllowed Indicates whether HTTPS traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed. bool
optimizationType Specifies what scenario the customer wants this CDN endpoint to optimize for, e.g. Download, Media services. With this information, CDN can apply scenario driven optimization. 'DynamicSiteAcceleration'
'GeneralMediaStreaming'
'GeneralWebDelivery'
'LargeFileDownload'
'VideoOnDemandMediaStreaming'
originGroups The origin groups comprising of origins that are used for load balancing the traffic based on availability. DeepCreatedOriginGroup[]
originHostHeader The host header value sent to the origin with each request. This property at Endpoint is only allowed when endpoint uses single origin and can be overridden by the same property specified at origin.If you leave this blank, the request hostname determines this value. Azure CDN origins, such as Web Apps, Blob Storage, and Cloud Services require this host header value to match the origin hostname by default. string
originPath A directory path on the origin that CDN can use to retrieve content from, e.g. contoso.cloudapp.net/originpath. string
origins The source of the content being delivered via CDN. DeepCreatedOrigin[] (required)
probePath Path to a file hosted on the origin which helps accelerate delivery of the dynamic content and calculate the most optimal routes for the CDN. This is relative to the origin path. This property is only relevant when using a single origin. string
queryStringCachingBehavior Defines how CDN caches requests that include query strings. You can ignore any query strings when caching, bypass caching to prevent requests that contain query strings from being cached, or cache every request with a unique URL. 'BypassCaching'
'IgnoreQueryString'
'NotSet'
'UseQueryString'
urlSigningKeys List of keys used to validate the signed URL hashes. UrlSigningKey[]
webApplicationFirewallPolicyLink Defines the Web Application Firewall policy for the endpoint (if applicable) EndpointPropertiesUpdateParametersWebApplicationFire...

ResourceReference

Name Description Value
id Resource ID. string

EndpointPropertiesUpdateParametersDeliveryPolicy

Name Description Value
description User-friendly description of the policy. string
rules A list of the delivery rules. DeliveryRule[] (required)

DeliveryRule

Name Description Value
actions A list of actions that are executed when all the conditions of a rule are satisfied. DeliveryRuleActionAutoGenerated[] (required)
conditions A list of conditions that must be matched for the actions to be executed DeliveryRuleCondition[]
name Name of the rule string
order The order in which the rules are applied for the endpoint. Possible values {0,1,2,3,………}. A rule with a lesser order will be applied before a rule with a greater order. Rule with order 0 is a special rule. It does not require any condition and actions listed in it will always be applied. int (required)

DeliveryRuleActionAutoGenerated

Name Description Value
name Set the object type CacheExpiration
CacheKeyQueryString
ModifyRequestHeader
ModifyResponseHeader
UrlRedirect
UrlRewrite
UrlSigning (required)

DeliveryRuleCacheExpirationAction

Name Description Value
name The name of the action for the delivery rule. 'CacheExpiration' (required)
parameters Defines the parameters for the action. CacheExpirationActionParameters (required)

CacheExpirationActionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleCacheExpirationActionParameters' (required)
cacheBehavior Caching behavior for the requests 'BypassCache'
'Override'
'SetIfMissing' (required)
cacheDuration The duration for which the content needs to be cached. Allowed format is [d.]hh:mm:ss string
cacheType The level at which the content needs to be cached. 'All' (required)

DeliveryRuleCacheKeyQueryStringAction

Name Description Value
name The name of the action for the delivery rule. 'CacheKeyQueryString' (required)
parameters Defines the parameters for the action. CacheKeyQueryStringActionParameters (required)

CacheKeyQueryStringActionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleCacheKeyQueryStringBehaviorActionParameters' (required)
queryParameters query parameters to include or exclude (comma separated). string
queryStringBehavior Caching behavior for the requests 'Exclude'
'ExcludeAll'
'Include'
'IncludeAll' (required)

DeliveryRuleRequestHeaderAction

Name Description Value
name The name of the action for the delivery rule. 'ModifyRequestHeader' (required)
parameters Defines the parameters for the action. HeaderActionParameters (required)

HeaderActionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleHeaderActionParameters' (required)
headerAction Action to perform 'Append'
'Delete'
'Overwrite' (required)
headerName Name of the header to modify string (required)
value Value for the specified action string

DeliveryRuleResponseHeaderAction

Name Description Value
name The name of the action for the delivery rule. 'ModifyResponseHeader' (required)
parameters Defines the parameters for the action. HeaderActionParameters (required)

UrlRedirectAction

Name Description Value
name The name of the action for the delivery rule. 'UrlRedirect' (required)
parameters Defines the parameters for the action. UrlRedirectActionParameters (required)

UrlRedirectActionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlRedirectActionParameters' (required)
customFragment Fragment to add to the redirect URL. Fragment is the part of the URL that comes after #. Do not include the #. string
customHostname Host to redirect. Leave empty to use the incoming host as the destination host. string
customPath The full path to redirect. Path cannot be empty and must start with /. Leave empty to use the incoming path as destination path. string
customQueryString The set of query strings to be placed in the redirect URL. Setting this value would replace any existing query string; leave empty to preserve the incoming query string. Query string must be in {key}={value} format. ? and & will be added automatically so do not include them. string
destinationProtocol Protocol to use for the redirect. The default value is MatchRequest 'Http'
'Https'
'MatchRequest'
redirectType The redirect type the rule will use when redirecting traffic. 'Found'
'Moved'
'PermanentRedirect'
'TemporaryRedirect' (required)

UrlRewriteAction

Name Description Value
name The name of the action for the delivery rule. 'UrlRewrite' (required)
parameters Defines the parameters for the action. UrlRewriteActionParameters (required)

UrlRewriteActionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlRewriteActionParameters' (required)
destination Define the relative URL to which the above requests will be rewritten by. string (required)
preserveUnmatchedPath Whether to preserve unmatched path. Default value is true. bool
sourcePattern define a request URI pattern that identifies the type of requests that may be rewritten. If value is blank, all strings are matched. string (required)

UrlSigningAction

Name Description Value
name The name of the action for the delivery rule. 'UrlSigning' (required)
parameters Defines the parameters for the action. UrlSigningActionParameters (required)

UrlSigningActionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlSigningActionParameters'
algorithm Algorithm to use for URL signing 'SHA256'
ipSubnets Match values to match against. Supports CIDR ranges (both IPv4 and IPv6). string[]
keyId Id reference of the key to be used to verify the hash and should be defined in UrlSigningKeys string (required)
parameterNameOverride Defines which query string parameters in the url to be considered for expires, key id etc. UrlSigningParamIdentifier[]

UrlSigningParamIdentifier

Name Description Value
paramIndicator Indicates the purpose of the parameter 'Expires'
'KeyId'
'Signature' (required)
paramName Parameter name string (required)

DeliveryRuleCondition

Name Description Value
name Set the object type Cookies
HttpVersion
IsDevice
PostArgs
QueryString
RemoteAddress
RequestBody
RequestHeader
RequestMethod
RequestScheme
RequestUri
UrlFileExtension
UrlFileName
UrlPath (required)

DeliveryRuleCookiesCondition

Name Description Value
name The name of the condition for the delivery rule. 'Cookies' (required)
parameters Defines the parameters for the condition. CookiesMatchConditionParameters (required)

CookiesMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleCookiesConditionParameters' (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GreaterThan'
'GreaterThanOrEqual'
'LessThan'
'LessThanOrEqual' (required)
selector Name of Cookies to be matched string
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

DeliveryRuleHttpVersionCondition

Name Description Value
name The name of the condition for the delivery rule. 'HttpVersion' (required)
parameters Defines the parameters for the condition. HttpVersionMatchConditionParameters (required)

HttpVersionMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleHttpVersionConditionParameters' (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Equal' (required)

DeliveryRuleIsDeviceCondition

Name Description Value
name The name of the condition for the delivery rule. 'IsDevice' (required)
parameters Defines the parameters for the condition. IsDeviceMatchConditionParameters (required)

IsDeviceMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleIsDeviceConditionParameters' (required)
matchValues The match value for the condition of the delivery rule String array containing any of:
'Desktop'
'Mobile'
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Equal' (required)
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

DeliveryRulePostArgsCondition

Name Description Value
name The name of the condition for the delivery rule. 'PostArgs' (required)
parameters Defines the parameters for the condition. PostArgsMatchConditionParameters (required)

PostArgsMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRulePostArgsConditionParameters' (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GreaterThan'
'GreaterThanOrEqual'
'LessThan'
'LessThanOrEqual' (required)
selector Name of PostArg to be matched string
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

DeliveryRuleQueryStringCondition

Name Description Value
name The name of the condition for the delivery rule. 'QueryString' (required)
parameters Defines the parameters for the condition. QueryStringMatchConditionParameters (required)

QueryStringMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleQueryStringConditionParameters' (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GreaterThan'
'GreaterThanOrEqual'
'LessThan'
'LessThanOrEqual' (required)
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

DeliveryRuleRemoteAddressCondition

Name Description Value
name The name of the condition for the delivery rule. 'RemoteAddress' (required)
parameters Defines the parameters for the condition. RemoteAddressMatchConditionParameters (required)

RemoteAddressMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleRemoteAddressConditionParameters' (required)
matchValues Match values to match against. The operator will apply to each value in here with OR semantics. If any of them match the variable with the given operator this match condition is considered a match. string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Any'
'GeoMatch'
'IPMatch' (required)
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

DeliveryRuleRequestBodyCondition

Name Description Value
name The name of the condition for the delivery rule. 'RequestBody' (required)
parameters Defines the parameters for the condition. RequestBodyMatchConditionParameters (required)

RequestBodyMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestBodyConditionParameters' (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GreaterThan'
'GreaterThanOrEqual'
'LessThan'
'LessThanOrEqual' (required)
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

DeliveryRuleRequestHeaderCondition

Name Description Value
name The name of the condition for the delivery rule. 'RequestHeader' (required)
parameters Defines the parameters for the condition. RequestHeaderMatchConditionParameters (required)

RequestHeaderMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestHeaderConditionParameters' (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GreaterThan'
'GreaterThanOrEqual'
'LessThan'
'LessThanOrEqual' (required)
selector Name of Header to be matched string
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

DeliveryRuleRequestMethodCondition

Name Description Value
name The name of the condition for the delivery rule. 'RequestMethod' (required)
parameters Defines the parameters for the condition. RequestMethodMatchConditionParameters (required)

RequestMethodMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestMethodConditionParameters' (required)
matchValues The match value for the condition of the delivery rule String array containing any of:
'DELETE'
'GET'
'HEAD'
'OPTIONS'
'POST'
'PUT'
'TRACE'
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Equal' (required)

DeliveryRuleRequestSchemeCondition

Name Description Value
name The name of the condition for the delivery rule. 'RequestScheme' (required)
parameters Defines the parameters for the condition. RequestSchemeMatchConditionParameters (required)

RequestSchemeMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestSchemeConditionParameters' (required)
matchValues The match value for the condition of the delivery rule String array containing any of:
'HTTP'
'HTTPS'
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Equal' (required)

DeliveryRuleRequestUriCondition

Name Description Value
name The name of the condition for the delivery rule. 'RequestUri' (required)
parameters Defines the parameters for the condition. RequestUriMatchConditionParameters (required)

RequestUriMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestUriConditionParameters' (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GreaterThan'
'GreaterThanOrEqual'
'LessThan'
'LessThanOrEqual' (required)
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

DeliveryRuleUrlFileExtensionCondition

Name Description Value
name The name of the condition for the delivery rule. 'UrlFileExtension' (required)
parameters Defines the parameters for the condition. UrlFileExtensionMatchConditionParameters (required)

UrlFileExtensionMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlFileExtensionMatchConditionParameters' (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GreaterThan'
'GreaterThanOrEqual'
'LessThan'
'LessThanOrEqual' (required)
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

DeliveryRuleUrlFileNameCondition

Name Description Value
name The name of the condition for the delivery rule. 'UrlFileName' (required)
parameters Defines the parameters for the condition. UrlFileNameMatchConditionParameters (required)

UrlFileNameMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlFilenameConditionParameters' (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GreaterThan'
'GreaterThanOrEqual'
'LessThan'
'LessThanOrEqual' (required)
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

DeliveryRuleUrlPathCondition

Name Description Value
name The name of the condition for the delivery rule. 'UrlPath' (required)
parameters Defines the parameters for the condition. UrlPathMatchConditionParameters (required)

UrlPathMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlPathMatchConditionParameters' (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GreaterThan'
'GreaterThanOrEqual'
'LessThan'
'LessThanOrEqual'
'Wildcard' (required)
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

GeoFilter

Name Description Value
action Action of the geo filter, i.e. allow or block access. 'Allow'
'Block' (required)
countryCodes Two letter country codes defining user country access in a geo filter, e.g. AU, MX, US. string[] (required)
relativePath Relative path applicable to geo filter. (e.g. '/mypictures', '/mypicture/kitty.jpg', and etc.) string (required)

DeepCreatedOriginGroup

Name Description Value
name Origin group name which must be unique within the endpoint. string (required)
properties Properties of the origin group created on the CDN endpoint. DeepCreatedOriginGroupProperties

DeepCreatedOriginGroupProperties

Name Description Value
healthProbeSettings Health probe settings to the origin that is used to determine the health of the origin. HealthProbeParameters
origins The source of the content being delivered via CDN within given origin group. ResourceReference[] (required)
responseBasedOriginErrorDetectionSettings The JSON object that contains the properties to determine origin health using real requests/responses.This property is currently not supported. ResponseBasedOriginErrorDetectionParameters
trafficRestorationTimeToHealedOrNewEndpointsInMinutes Time in minutes to shift the traffic to the endpoint gradually when an unhealthy endpoint comes healthy or a new endpoint is added. Default is 10 mins. This property is currently not supported. int

Constraints:
Min value = 0
Max value = 50

HealthProbeParameters

Name Description Value
probeIntervalInSeconds The number of seconds between health probes.Default is 240sec. int

Constraints:
Min value = 1
Max value = 255
probePath The path relative to the origin that is used to determine the health of the origin. string
probeProtocol Protocol to use for health probe. 'Http'
'Https'
'NotSet'
probeRequestType The type of health probe request that is made. 'GET'
'HEAD'
'NotSet'

ResponseBasedOriginErrorDetectionParameters

Name Description Value
httpErrorRanges The list of Http status code ranges that are considered as server errors for origin and it is marked as unhealthy. HttpErrorRangeParameters[]
responseBasedDetectedErrorTypes Type of response errors for real user requests for which origin will be deemed unhealthy 'None'
'TcpAndHttpErrors'
'TcpErrorsOnly'
responseBasedFailoverThresholdPercentage The percentage of failed requests in the sample where failover should trigger. int

Constraints:
Min value = 0
Max value = 100

HttpErrorRangeParameters

Name Description Value
begin The inclusive start of the http status code range. int

Constraints:
Min value = 100
Max value = 999
end The inclusive end of the http status code range. int

Constraints:
Min value = 100
Max value = 999

DeepCreatedOrigin

Name Description Value
name Origin name which must be unique within the endpoint. string (required)
properties Properties of the origin created on the CDN endpoint. DeepCreatedOriginProperties

DeepCreatedOriginProperties

Name Description Value
enabled Origin is enabled for load balancing or not. By default, origin is always enabled. bool
hostName The address of the origin. It can be a domain name, IPv4 address, or IPv6 address. This should be unique across all origins in an endpoint. string (required)
httpPort The value of the HTTP port. Must be between 1 and 65535. int

Constraints:
Min value = 1
Max value = 65535
httpsPort The value of the HTTPS port. Must be between 1 and 65535. int

Constraints:
Min value = 1
Max value = 65535
originHostHeader The host header value sent to the origin with each request. If you leave this blank, the request hostname determines this value. Azure CDN origins, such as Web Apps, Blob Storage, and Cloud Services require this host header value to match the origin hostname by default. string
priority Priority of origin in given origin group for load balancing. Higher priorities will not be used for load balancing if any lower priority origin is healthy.Must be between 1 and 5. int

Constraints:
Min value = 1
Max value = 5
privateLinkAlias The Alias of the Private Link resource. Populating this optional field indicates that this origin is 'Private' string
privateLinkApprovalMessage A custom message to be included in the approval request to connect to the Private Link. string
privateLinkLocation The location of the Private Link resource. Required only if 'privateLinkResourceId' is populated string
privateLinkResourceId The Resource Id of the Private Link resource. Populating this optional field indicates that this backend is 'Private' string
weight Weight of the origin in given origin group for load balancing. Must be between 1 and 1000 int

Constraints:
Min value = 1
Max value = 1000

UrlSigningKey

Name Description Value
keyId Defines the customer defined key Id. This id will exist in the incoming request to indicate the key used to form the hash. string (required)
keySourceParameters Defines the parameters for using customer key vault for Url Signing Key. KeyVaultSigningKeyParameters (required)

KeyVaultSigningKeyParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.KeyVaultSigningKeyParameters' (required)
resourceGroupName Resource group of the user's Key Vault containing the secret string (required)
secretName The name of secret in Key Vault. string (required)
secretVersion The version(GUID) of secret in Key Vault. string (required)
subscriptionId Subscription Id of the user's Key Vault containing the secret string (required)
vaultName The name of the user's Key Vault containing the secret string (required)

EndpointPropertiesUpdateParametersWebApplicationFire...

Name Description Value
id Resource ID. string

Quickstart templates

The following quickstart templates deploy this resource type.

Template Description
eShop Website with ILB ASE

Deploy to Azure
An App Service Environment is a Premium service plan option of Azure App Service that provides a fully isolated and dedicated environment for securely running Azure App Service apps at high scale, including Web Apps, Mobile Apps, and API Apps.
Create a CDN Profile and a CDN Endpoint with parameters

Deploy to Azure
This template creates a CDN Profile and a CDN Endpoint with parameterized configuration settings
Create a CDN Profile and a CDN Endpoint with custom origin

Deploy to Azure
This template creates a CDN Profile and a CDN Endpoint with a user specified origin and all of our most commonly used settings on CDN.
Create a CDN Endpoint with cache override through Rules

Deploy to Azure
This template creates a CDN Profile and a CDN Endpoint with a user specified origin and all of our most commonly used settings on CDN. This template also configures rules engine with a path based rule and overrides cache expiration.
Create a CDN Endpoint with response header addition

Deploy to Azure
This template creates a CDN Profile and a CDN Endpoint with a user specified origin and all of our most commonly used settings on CDN. This template also configures rules engine with Remote address based match and adds corresponding response headers.
Create a CDN Endpoint with rewrite and redirect rules

Deploy to Azure
This template creates a CDN Profile and a CDN Endpoint with a user specified origin and all of our most commonly used settings on CDN. This template also configures rules engine device based path rewrite and request scheme based redirect.
Create a CDN Endpoint with UrlSigning action

Deploy to Azure
This template creates a CDN Profile and a CDN Endpoint with a user specified origin and all of our most commonly used settings on CDN. This template also configures rules engine UrlSigning action for default and override parameters.
Create a CDN Profile, Endpoint and a Storage Account

Deploy to Azure
This template creates a CDN Profile and a CDN Endpoint with origin as a Storage Account. Note that user needs to create a public container in the Storage Account in order for CDN Endpoint to serve content from the Storage Account.
Apply a WAF Policy with custom rules to a CDN Endpoint

Deploy to Azure
This template creates a CDN Profile and a CDN Endpoint with a user specified origin and all of our most commonly used settings on CDN. This template also links a CDN WAF Policy to the Endpoint which applies example custom rules for blocking and redirecting requests based on geo-location, ip address, and SESSIONID header.
Apply a WAF Policy for the OWASP top 10 to a CDN Endpoint

Deploy to Azure
This template creates a CDN Profile and a CDN Endpoint with a user specified origin and all of our most commonly used settings on CDN. This template also links a CDN WAF Policy to the Endpoint which applies the managed rule set DefaultRuleSet_1.0.
Apply a WAF Policy with rate limit rules to a CDN Endpoint

Deploy to Azure
This template creates a CDN Profile and a CDN Endpoint with a user specified origin and all of our most commonly used settings on CDN. This template also links a CDN WAF Policy to the Endpoint which applies example rate limit rules for blocking and redirecting rate-limited requests.
Create a CDN Profile, a CDN Endpoint and a Web App

Deploy to Azure
This template creates a CDN Profile and a CDN Endpoint with a Web App as the origin

ARM template resource definition

The profiles/endpoints resource type can be deployed with operations that target:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.Cdn/profiles/endpoints resource, add the following JSON to your template.

{
  "type": "Microsoft.Cdn/profiles/endpoints",
  "apiVersion": "2020-04-15",
  "name": "string",
  "location": "string",
  "tags": {
    "tagName1": "tagValue1",
    "tagName2": "tagValue2"
  },
  "properties": {
    "contentTypesToCompress": [ "string" ],
    "defaultOriginGroup": {
      "id": "string"
    },
    "deliveryPolicy": {
      "description": "string",
      "rules": [
        {
          "actions": [
            {
              "name": "string"
              // For remaining properties, see DeliveryRuleActionAutoGenerated objects
            }
          ],
          "conditions": [
            {
              "name": "string"
              // For remaining properties, see DeliveryRuleCondition objects
            }
          ],
          "name": "string",
          "order": "int"
        }
      ]
    },
    "geoFilters": [
      {
        "action": "string",
        "countryCodes": [ "string" ],
        "relativePath": "string"
      }
    ],
    "isCompressionEnabled": "bool",
    "isHttpAllowed": "bool",
    "isHttpsAllowed": "bool",
    "optimizationType": "string",
    "originGroups": [
      {
        "name": "string",
        "properties": {
          "healthProbeSettings": {
            "probeIntervalInSeconds": "int",
            "probePath": "string",
            "probeProtocol": "string",
            "probeRequestType": "string"
          },
          "origins": [
            {
              "id": "string"
            }
          ],
          "responseBasedOriginErrorDetectionSettings": {
            "httpErrorRanges": [
              {
                "begin": "int",
                "end": "int"
              }
            ],
            "responseBasedDetectedErrorTypes": "string",
            "responseBasedFailoverThresholdPercentage": "int"
          },
          "trafficRestorationTimeToHealedOrNewEndpointsInMinutes": "int"
        }
      }
    ],
    "originHostHeader": "string",
    "originPath": "string",
    "origins": [
      {
        "name": "string",
        "properties": {
          "enabled": "bool",
          "hostName": "string",
          "httpPort": "int",
          "httpsPort": "int",
          "originHostHeader": "string",
          "priority": "int",
          "privateLinkAlias": "string",
          "privateLinkApprovalMessage": "string",
          "privateLinkLocation": "string",
          "privateLinkResourceId": "string",
          "weight": "int"
        }
      }
    ],
    "probePath": "string",
    "queryStringCachingBehavior": "string",
    "urlSigningKeys": [
      {
        "keyId": "string",
        "keySourceParameters": {
          "@odata.type": "#Microsoft.Azure.Cdn.Models.KeyVaultSigningKeyParameters",
          "resourceGroupName": "string",
          "secretName": "string",
          "secretVersion": "string",
          "subscriptionId": "string",
          "vaultName": "string"
        }
      }
    ],
    "webApplicationFirewallPolicyLink": {
      "id": "string"
    }
  }
}

DeliveryRuleActionAutoGenerated objects

Set the name property to specify the type of object.

For CacheExpiration, use:

  "name": "CacheExpiration",
  "parameters": {
    "@odata.type": "#Microsoft.Azure.Cdn.Models.DeliveryRuleCacheExpirationActionParameters",
    "cacheBehavior": "string",
    "cacheDuration": "string",
    "cacheType": "All"
  }

For CacheKeyQueryString, use:

  "name": "CacheKeyQueryString",
  "parameters": {
    "@odata.type": "#Microsoft.Azure.Cdn.Models.DeliveryRuleCacheKeyQueryStringBehaviorActionParameters",
    "queryParameters": "string",
    "queryStringBehavior": "string"
  }

For ModifyRequestHeader, use:

  "name": "ModifyRequestHeader",
  "parameters": {
    "@odata.type": "#Microsoft.Azure.Cdn.Models.DeliveryRuleHeaderActionParameters",
    "headerAction": "string",
    "headerName": "string",
    "value": "string"
  }

For ModifyResponseHeader, use:

  "name": "ModifyResponseHeader",
  "parameters": {
    "@odata.type": "#Microsoft.Azure.Cdn.Models.DeliveryRuleHeaderActionParameters",
    "headerAction": "string",
    "headerName": "string",
    "value": "string"
  }

For UrlRedirect, use:

  "name": "UrlRedirect",
  "parameters": {
    "@odata.type": "#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlRedirectActionParameters",
    "customFragment": "string",
    "customHostname": "string",
    "customPath": "string",
    "customQueryString": "string",
    "destinationProtocol": "string",
    "redirectType": "string"
  }

For UrlRewrite, use:

  "name": "UrlRewrite",
  "parameters": {
    "@odata.type": "#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlRewriteActionParameters",
    "destination": "string",
    "preserveUnmatchedPath": "bool",
    "sourcePattern": "string"
  }

For UrlSigning, use:

  "name": "UrlSigning",
  "parameters": {
    "@odata.type": "#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlSigningActionParameters",
    "algorithm": "SHA256",
    "ipSubnets": [ "string" ],
    "keyId": "string",
    "parameterNameOverride": [
      {
        "paramIndicator": "string",
        "paramName": "string"
      }
    ]
  }

DeliveryRuleCondition objects

Set the name property to specify the type of object.

For Cookies, use:

  "name": "Cookies",
  "parameters": {
    "@odata.type": "#Microsoft.Azure.Cdn.Models.DeliveryRuleCookiesConditionParameters",
    "matchValues": [ "string" ],
    "negateCondition": "bool",
    "operator": "string",
    "selector": "string",
    "transforms": [ "string" ]
  }

For HttpVersion, use:

  "name": "HttpVersion",
  "parameters": {
    "@odata.type": "#Microsoft.Azure.Cdn.Models.DeliveryRuleHttpVersionConditionParameters",
    "matchValues": [ "string" ],
    "negateCondition": "bool",
    "operator": "Equal"
  }

For IsDevice, use:

  "name": "IsDevice",
  "parameters": {
    "@odata.type": "#Microsoft.Azure.Cdn.Models.DeliveryRuleIsDeviceConditionParameters",
    "matchValues": [ "string" ],
    "negateCondition": "bool",
    "operator": "Equal",
    "transforms": [ "string" ]
  }

For PostArgs, use:

  "name": "PostArgs",
  "parameters": {
    "@odata.type": "#Microsoft.Azure.Cdn.Models.DeliveryRulePostArgsConditionParameters",
    "matchValues": [ "string" ],
    "negateCondition": "bool",
    "operator": "string",
    "selector": "string",
    "transforms": [ "string" ]
  }

For QueryString, use:

  "name": "QueryString",
  "parameters": {
    "@odata.type": "#Microsoft.Azure.Cdn.Models.DeliveryRuleQueryStringConditionParameters",
    "matchValues": [ "string" ],
    "negateCondition": "bool",
    "operator": "string",
    "transforms": [ "string" ]
  }

For RemoteAddress, use:

  "name": "RemoteAddress",
  "parameters": {
    "@odata.type": "#Microsoft.Azure.Cdn.Models.DeliveryRuleRemoteAddressConditionParameters",
    "matchValues": [ "string" ],
    "negateCondition": "bool",
    "operator": "string",
    "transforms": [ "string" ]
  }

For RequestBody, use:

  "name": "RequestBody",
  "parameters": {
    "@odata.type": "#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestBodyConditionParameters",
    "matchValues": [ "string" ],
    "negateCondition": "bool",
    "operator": "string",
    "transforms": [ "string" ]
  }

For RequestHeader, use:

  "name": "RequestHeader",
  "parameters": {
    "@odata.type": "#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestHeaderConditionParameters",
    "matchValues": [ "string" ],
    "negateCondition": "bool",
    "operator": "string",
    "selector": "string",
    "transforms": [ "string" ]
  }

For RequestMethod, use:

  "name": "RequestMethod",
  "parameters": {
    "@odata.type": "#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestMethodConditionParameters",
    "matchValues": [ "string" ],
    "negateCondition": "bool",
    "operator": "Equal"
  }

For RequestScheme, use:

  "name": "RequestScheme",
  "parameters": {
    "@odata.type": "#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestSchemeConditionParameters",
    "matchValues": [ "string" ],
    "negateCondition": "bool",
    "operator": "Equal"
  }

For RequestUri, use:

  "name": "RequestUri",
  "parameters": {
    "@odata.type": "#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestUriConditionParameters",
    "matchValues": [ "string" ],
    "negateCondition": "bool",
    "operator": "string",
    "transforms": [ "string" ]
  }

For UrlFileExtension, use:

  "name": "UrlFileExtension",
  "parameters": {
    "@odata.type": "#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlFileExtensionMatchConditionParameters",
    "matchValues": [ "string" ],
    "negateCondition": "bool",
    "operator": "string",
    "transforms": [ "string" ]
  }

For UrlFileName, use:

  "name": "UrlFileName",
  "parameters": {
    "@odata.type": "#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlFilenameConditionParameters",
    "matchValues": [ "string" ],
    "negateCondition": "bool",
    "operator": "string",
    "transforms": [ "string" ]
  }

For UrlPath, use:

  "name": "UrlPath",
  "parameters": {
    "@odata.type": "#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlPathMatchConditionParameters",
    "matchValues": [ "string" ],
    "negateCondition": "bool",
    "operator": "string",
    "transforms": [ "string" ]
  }

Property values

profiles/endpoints

Name Description Value
type The resource type 'Microsoft.Cdn/profiles/endpoints'
apiVersion The resource api version '2020-04-15'
name The resource name

See how to set names and types for child resources in JSON ARM templates.
string (required)

Character limit: 1-50

Valid characters:
Alphanumerics and hyphens.

Start and end with alphanumeric.

Resource name must be unique across Azure.
location Resource location. string (required)
tags Resource tags. Dictionary of tag names and values. See Tags in templates
properties The JSON object that contains the properties required to create an endpoint. EndpointProperties

EndpointProperties

Name Description Value
contentTypesToCompress List of content types on which compression applies. The value should be a valid MIME type. string[]
defaultOriginGroup A reference to the origin group. ResourceReference
deliveryPolicy A policy that specifies the delivery rules to be used for an endpoint. EndpointPropertiesUpdateParametersDeliveryPolicy
geoFilters List of rules defining the user's geo access within a CDN endpoint. Each geo filter defines an access rule to a specified path or content, e.g. block APAC for path /pictures/ GeoFilter[]
isCompressionEnabled Indicates whether content compression is enabled on CDN. Default value is false. If compression is enabled, content will be served as compressed if user requests for a compressed version. Content won't be compressed on CDN when requested content is smaller than 1 byte or larger than 1 MB. bool
isHttpAllowed Indicates whether HTTP traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed. bool
isHttpsAllowed Indicates whether HTTPS traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed. bool
optimizationType Specifies what scenario the customer wants this CDN endpoint to optimize for, e.g. Download, Media services. With this information, CDN can apply scenario driven optimization. 'DynamicSiteAcceleration'
'GeneralMediaStreaming'
'GeneralWebDelivery'
'LargeFileDownload'
'VideoOnDemandMediaStreaming'
originGroups The origin groups comprising of origins that are used for load balancing the traffic based on availability. DeepCreatedOriginGroup[]
originHostHeader The host header value sent to the origin with each request. This property at Endpoint is only allowed when endpoint uses single origin and can be overridden by the same property specified at origin.If you leave this blank, the request hostname determines this value. Azure CDN origins, such as Web Apps, Blob Storage, and Cloud Services require this host header value to match the origin hostname by default. string
originPath A directory path on the origin that CDN can use to retrieve content from, e.g. contoso.cloudapp.net/originpath. string
origins The source of the content being delivered via CDN. DeepCreatedOrigin[] (required)
probePath Path to a file hosted on the origin which helps accelerate delivery of the dynamic content and calculate the most optimal routes for the CDN. This is relative to the origin path. This property is only relevant when using a single origin. string
queryStringCachingBehavior Defines how CDN caches requests that include query strings. You can ignore any query strings when caching, bypass caching to prevent requests that contain query strings from being cached, or cache every request with a unique URL. 'BypassCaching'
'IgnoreQueryString'
'NotSet'
'UseQueryString'
urlSigningKeys List of keys used to validate the signed URL hashes. UrlSigningKey[]
webApplicationFirewallPolicyLink Defines the Web Application Firewall policy for the endpoint (if applicable) EndpointPropertiesUpdateParametersWebApplicationFire...

ResourceReference

Name Description Value
id Resource ID. string

EndpointPropertiesUpdateParametersDeliveryPolicy

Name Description Value
description User-friendly description of the policy. string
rules A list of the delivery rules. DeliveryRule[] (required)

DeliveryRule

Name Description Value
actions A list of actions that are executed when all the conditions of a rule are satisfied. DeliveryRuleActionAutoGenerated[] (required)
conditions A list of conditions that must be matched for the actions to be executed DeliveryRuleCondition[]
name Name of the rule string
order The order in which the rules are applied for the endpoint. Possible values {0,1,2,3,………}. A rule with a lesser order will be applied before a rule with a greater order. Rule with order 0 is a special rule. It does not require any condition and actions listed in it will always be applied. int (required)

DeliveryRuleActionAutoGenerated

Name Description Value
name Set the object type CacheExpiration
CacheKeyQueryString
ModifyRequestHeader
ModifyResponseHeader
UrlRedirect
UrlRewrite
UrlSigning (required)

DeliveryRuleCacheExpirationAction

Name Description Value
name The name of the action for the delivery rule. 'CacheExpiration' (required)
parameters Defines the parameters for the action. CacheExpirationActionParameters (required)

CacheExpirationActionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleCacheExpirationActionParameters' (required)
cacheBehavior Caching behavior for the requests 'BypassCache'
'Override'
'SetIfMissing' (required)
cacheDuration The duration for which the content needs to be cached. Allowed format is [d.]hh:mm:ss string
cacheType The level at which the content needs to be cached. 'All' (required)

DeliveryRuleCacheKeyQueryStringAction

Name Description Value
name The name of the action for the delivery rule. 'CacheKeyQueryString' (required)
parameters Defines the parameters for the action. CacheKeyQueryStringActionParameters (required)

CacheKeyQueryStringActionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleCacheKeyQueryStringBehaviorActionParameters' (required)
queryParameters query parameters to include or exclude (comma separated). string
queryStringBehavior Caching behavior for the requests 'Exclude'
'ExcludeAll'
'Include'
'IncludeAll' (required)

DeliveryRuleRequestHeaderAction

Name Description Value
name The name of the action for the delivery rule. 'ModifyRequestHeader' (required)
parameters Defines the parameters for the action. HeaderActionParameters (required)

HeaderActionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleHeaderActionParameters' (required)
headerAction Action to perform 'Append'
'Delete'
'Overwrite' (required)
headerName Name of the header to modify string (required)
value Value for the specified action string

DeliveryRuleResponseHeaderAction

Name Description Value
name The name of the action for the delivery rule. 'ModifyResponseHeader' (required)
parameters Defines the parameters for the action. HeaderActionParameters (required)

UrlRedirectAction

Name Description Value
name The name of the action for the delivery rule. 'UrlRedirect' (required)
parameters Defines the parameters for the action. UrlRedirectActionParameters (required)

UrlRedirectActionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlRedirectActionParameters' (required)
customFragment Fragment to add to the redirect URL. Fragment is the part of the URL that comes after #. Do not include the #. string
customHostname Host to redirect. Leave empty to use the incoming host as the destination host. string
customPath The full path to redirect. Path cannot be empty and must start with /. Leave empty to use the incoming path as destination path. string
customQueryString The set of query strings to be placed in the redirect URL. Setting this value would replace any existing query string; leave empty to preserve the incoming query string. Query string must be in {key}={value} format. ? and & will be added automatically so do not include them. string
destinationProtocol Protocol to use for the redirect. The default value is MatchRequest 'Http'
'Https'
'MatchRequest'
redirectType The redirect type the rule will use when redirecting traffic. 'Found'
'Moved'
'PermanentRedirect'
'TemporaryRedirect' (required)

UrlRewriteAction

Name Description Value
name The name of the action for the delivery rule. 'UrlRewrite' (required)
parameters Defines the parameters for the action. UrlRewriteActionParameters (required)

UrlRewriteActionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlRewriteActionParameters' (required)
destination Define the relative URL to which the above requests will be rewritten by. string (required)
preserveUnmatchedPath Whether to preserve unmatched path. Default value is true. bool
sourcePattern define a request URI pattern that identifies the type of requests that may be rewritten. If value is blank, all strings are matched. string (required)

UrlSigningAction

Name Description Value
name The name of the action for the delivery rule. 'UrlSigning' (required)
parameters Defines the parameters for the action. UrlSigningActionParameters (required)

UrlSigningActionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlSigningActionParameters'
algorithm Algorithm to use for URL signing 'SHA256'
ipSubnets Match values to match against. Supports CIDR ranges (both IPv4 and IPv6). string[]
keyId Id reference of the key to be used to verify the hash and should be defined in UrlSigningKeys string (required)
parameterNameOverride Defines which query string parameters in the url to be considered for expires, key id etc. UrlSigningParamIdentifier[]

UrlSigningParamIdentifier

Name Description Value
paramIndicator Indicates the purpose of the parameter 'Expires'
'KeyId'
'Signature' (required)
paramName Parameter name string (required)

DeliveryRuleCondition

Name Description Value
name Set the object type Cookies
HttpVersion
IsDevice
PostArgs
QueryString
RemoteAddress
RequestBody
RequestHeader
RequestMethod
RequestScheme
RequestUri
UrlFileExtension
UrlFileName
UrlPath (required)

DeliveryRuleCookiesCondition

Name Description Value
name The name of the condition for the delivery rule. 'Cookies' (required)
parameters Defines the parameters for the condition. CookiesMatchConditionParameters (required)

CookiesMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleCookiesConditionParameters' (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GreaterThan'
'GreaterThanOrEqual'
'LessThan'
'LessThanOrEqual' (required)
selector Name of Cookies to be matched string
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

DeliveryRuleHttpVersionCondition

Name Description Value
name The name of the condition for the delivery rule. 'HttpVersion' (required)
parameters Defines the parameters for the condition. HttpVersionMatchConditionParameters (required)

HttpVersionMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleHttpVersionConditionParameters' (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Equal' (required)

DeliveryRuleIsDeviceCondition

Name Description Value
name The name of the condition for the delivery rule. 'IsDevice' (required)
parameters Defines the parameters for the condition. IsDeviceMatchConditionParameters (required)

IsDeviceMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleIsDeviceConditionParameters' (required)
matchValues The match value for the condition of the delivery rule String array containing any of:
'Desktop'
'Mobile'
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Equal' (required)
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

DeliveryRulePostArgsCondition

Name Description Value
name The name of the condition for the delivery rule. 'PostArgs' (required)
parameters Defines the parameters for the condition. PostArgsMatchConditionParameters (required)

PostArgsMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRulePostArgsConditionParameters' (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GreaterThan'
'GreaterThanOrEqual'
'LessThan'
'LessThanOrEqual' (required)
selector Name of PostArg to be matched string
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

DeliveryRuleQueryStringCondition

Name Description Value
name The name of the condition for the delivery rule. 'QueryString' (required)
parameters Defines the parameters for the condition. QueryStringMatchConditionParameters (required)

QueryStringMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleQueryStringConditionParameters' (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GreaterThan'
'GreaterThanOrEqual'
'LessThan'
'LessThanOrEqual' (required)
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

DeliveryRuleRemoteAddressCondition

Name Description Value
name The name of the condition for the delivery rule. 'RemoteAddress' (required)
parameters Defines the parameters for the condition. RemoteAddressMatchConditionParameters (required)

RemoteAddressMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleRemoteAddressConditionParameters' (required)
matchValues Match values to match against. The operator will apply to each value in here with OR semantics. If any of them match the variable with the given operator this match condition is considered a match. string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Any'
'GeoMatch'
'IPMatch' (required)
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

DeliveryRuleRequestBodyCondition

Name Description Value
name The name of the condition for the delivery rule. 'RequestBody' (required)
parameters Defines the parameters for the condition. RequestBodyMatchConditionParameters (required)

RequestBodyMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestBodyConditionParameters' (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GreaterThan'
'GreaterThanOrEqual'
'LessThan'
'LessThanOrEqual' (required)
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

DeliveryRuleRequestHeaderCondition

Name Description Value
name The name of the condition for the delivery rule. 'RequestHeader' (required)
parameters Defines the parameters for the condition. RequestHeaderMatchConditionParameters (required)

RequestHeaderMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestHeaderConditionParameters' (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GreaterThan'
'GreaterThanOrEqual'
'LessThan'
'LessThanOrEqual' (required)
selector Name of Header to be matched string
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

DeliveryRuleRequestMethodCondition

Name Description Value
name The name of the condition for the delivery rule. 'RequestMethod' (required)
parameters Defines the parameters for the condition. RequestMethodMatchConditionParameters (required)

RequestMethodMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestMethodConditionParameters' (required)
matchValues The match value for the condition of the delivery rule String array containing any of:
'DELETE'
'GET'
'HEAD'
'OPTIONS'
'POST'
'PUT'
'TRACE'
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Equal' (required)

DeliveryRuleRequestSchemeCondition

Name Description Value
name The name of the condition for the delivery rule. 'RequestScheme' (required)
parameters Defines the parameters for the condition. RequestSchemeMatchConditionParameters (required)

RequestSchemeMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestSchemeConditionParameters' (required)
matchValues The match value for the condition of the delivery rule String array containing any of:
'HTTP'
'HTTPS'
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Equal' (required)

DeliveryRuleRequestUriCondition

Name Description Value
name The name of the condition for the delivery rule. 'RequestUri' (required)
parameters Defines the parameters for the condition. RequestUriMatchConditionParameters (required)

RequestUriMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestUriConditionParameters' (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GreaterThan'
'GreaterThanOrEqual'
'LessThan'
'LessThanOrEqual' (required)
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

DeliveryRuleUrlFileExtensionCondition

Name Description Value
name The name of the condition for the delivery rule. 'UrlFileExtension' (required)
parameters Defines the parameters for the condition. UrlFileExtensionMatchConditionParameters (required)

UrlFileExtensionMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlFileExtensionMatchConditionParameters' (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GreaterThan'
'GreaterThanOrEqual'
'LessThan'
'LessThanOrEqual' (required)
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

DeliveryRuleUrlFileNameCondition

Name Description Value
name The name of the condition for the delivery rule. 'UrlFileName' (required)
parameters Defines the parameters for the condition. UrlFileNameMatchConditionParameters (required)

UrlFileNameMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlFilenameConditionParameters' (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GreaterThan'
'GreaterThanOrEqual'
'LessThan'
'LessThanOrEqual' (required)
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

DeliveryRuleUrlPathCondition

Name Description Value
name The name of the condition for the delivery rule. 'UrlPath' (required)
parameters Defines the parameters for the condition. UrlPathMatchConditionParameters (required)

UrlPathMatchConditionParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlPathMatchConditionParameters' (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GreaterThan'
'GreaterThanOrEqual'
'LessThan'
'LessThanOrEqual'
'Wildcard' (required)
transforms List of transforms String array containing any of:
'Lowercase'
'RemoveNulls'
'Trim'
'Uppercase'
'UrlDecode'
'UrlEncode'

GeoFilter

Name Description Value
action Action of the geo filter, i.e. allow or block access. 'Allow'
'Block' (required)
countryCodes Two letter country codes defining user country access in a geo filter, e.g. AU, MX, US. string[] (required)
relativePath Relative path applicable to geo filter. (e.g. '/mypictures', '/mypicture/kitty.jpg', and etc.) string (required)

DeepCreatedOriginGroup

Name Description Value
name Origin group name which must be unique within the endpoint. string (required)
properties Properties of the origin group created on the CDN endpoint. DeepCreatedOriginGroupProperties

DeepCreatedOriginGroupProperties

Name Description Value
healthProbeSettings Health probe settings to the origin that is used to determine the health of the origin. HealthProbeParameters
origins The source of the content being delivered via CDN within given origin group. ResourceReference[] (required)
responseBasedOriginErrorDetectionSettings The JSON object that contains the properties to determine origin health using real requests/responses.This property is currently not supported. ResponseBasedOriginErrorDetectionParameters
trafficRestorationTimeToHealedOrNewEndpointsInMinutes Time in minutes to shift the traffic to the endpoint gradually when an unhealthy endpoint comes healthy or a new endpoint is added. Default is 10 mins. This property is currently not supported. int

Constraints:
Min value = 0
Max value = 50

HealthProbeParameters

Name Description Value
probeIntervalInSeconds The number of seconds between health probes.Default is 240sec. int

Constraints:
Min value = 1
Max value = 255
probePath The path relative to the origin that is used to determine the health of the origin. string
probeProtocol Protocol to use for health probe. 'Http'
'Https'
'NotSet'
probeRequestType The type of health probe request that is made. 'GET'
'HEAD'
'NotSet'

ResponseBasedOriginErrorDetectionParameters

Name Description Value
httpErrorRanges The list of Http status code ranges that are considered as server errors for origin and it is marked as unhealthy. HttpErrorRangeParameters[]
responseBasedDetectedErrorTypes Type of response errors for real user requests for which origin will be deemed unhealthy 'None'
'TcpAndHttpErrors'
'TcpErrorsOnly'
responseBasedFailoverThresholdPercentage The percentage of failed requests in the sample where failover should trigger. int

Constraints:
Min value = 0
Max value = 100

HttpErrorRangeParameters

Name Description Value
begin The inclusive start of the http status code range. int

Constraints:
Min value = 100
Max value = 999
end The inclusive end of the http status code range. int

Constraints:
Min value = 100
Max value = 999

DeepCreatedOrigin

Name Description Value
name Origin name which must be unique within the endpoint. string (required)
properties Properties of the origin created on the CDN endpoint. DeepCreatedOriginProperties

DeepCreatedOriginProperties

Name Description Value
enabled Origin is enabled for load balancing or not. By default, origin is always enabled. bool
hostName The address of the origin. It can be a domain name, IPv4 address, or IPv6 address. This should be unique across all origins in an endpoint. string (required)
httpPort The value of the HTTP port. Must be between 1 and 65535. int

Constraints:
Min value = 1
Max value = 65535
httpsPort The value of the HTTPS port. Must be between 1 and 65535. int

Constraints:
Min value = 1
Max value = 65535
originHostHeader The host header value sent to the origin with each request. If you leave this blank, the request hostname determines this value. Azure CDN origins, such as Web Apps, Blob Storage, and Cloud Services require this host header value to match the origin hostname by default. string
priority Priority of origin in given origin group for load balancing. Higher priorities will not be used for load balancing if any lower priority origin is healthy.Must be between 1 and 5. int

Constraints:
Min value = 1
Max value = 5
privateLinkAlias The Alias of the Private Link resource. Populating this optional field indicates that this origin is 'Private' string
privateLinkApprovalMessage A custom message to be included in the approval request to connect to the Private Link. string
privateLinkLocation The location of the Private Link resource. Required only if 'privateLinkResourceId' is populated string
privateLinkResourceId The Resource Id of the Private Link resource. Populating this optional field indicates that this backend is 'Private' string
weight Weight of the origin in given origin group for load balancing. Must be between 1 and 1000 int

Constraints:
Min value = 1
Max value = 1000

UrlSigningKey

Name Description Value
keyId Defines the customer defined key Id. This id will exist in the incoming request to indicate the key used to form the hash. string (required)
keySourceParameters Defines the parameters for using customer key vault for Url Signing Key. KeyVaultSigningKeyParameters (required)

KeyVaultSigningKeyParameters

Name Description Value
@odata.type '#Microsoft.Azure.Cdn.Models.KeyVaultSigningKeyParameters' (required)
resourceGroupName Resource group of the user's Key Vault containing the secret string (required)
secretName The name of secret in Key Vault. string (required)
secretVersion The version(GUID) of secret in Key Vault. string (required)
subscriptionId Subscription Id of the user's Key Vault containing the secret string (required)
vaultName The name of the user's Key Vault containing the secret string (required)

EndpointPropertiesUpdateParametersWebApplicationFire...

Name Description Value
id Resource ID. string

Quickstart templates

The following quickstart templates deploy this resource type.

Template Description
eShop Website with ILB ASE

Deploy to Azure
An App Service Environment is a Premium service plan option of Azure App Service that provides a fully isolated and dedicated environment for securely running Azure App Service apps at high scale, including Web Apps, Mobile Apps, and API Apps.
Create a CDN Profile and a CDN Endpoint with parameters

Deploy to Azure
This template creates a CDN Profile and a CDN Endpoint with parameterized configuration settings
Create a CDN Profile and a CDN Endpoint with custom origin

Deploy to Azure
This template creates a CDN Profile and a CDN Endpoint with a user specified origin and all of our most commonly used settings on CDN.
Create a CDN Endpoint with cache override through Rules

Deploy to Azure
This template creates a CDN Profile and a CDN Endpoint with a user specified origin and all of our most commonly used settings on CDN. This template also configures rules engine with a path based rule and overrides cache expiration.
Create a CDN Endpoint with response header addition

Deploy to Azure
This template creates a CDN Profile and a CDN Endpoint with a user specified origin and all of our most commonly used settings on CDN. This template also configures rules engine with Remote address based match and adds corresponding response headers.
Create a CDN Endpoint with rewrite and redirect rules

Deploy to Azure
This template creates a CDN Profile and a CDN Endpoint with a user specified origin and all of our most commonly used settings on CDN. This template also configures rules engine device based path rewrite and request scheme based redirect.
Create a CDN Endpoint with UrlSigning action

Deploy to Azure
This template creates a CDN Profile and a CDN Endpoint with a user specified origin and all of our most commonly used settings on CDN. This template also configures rules engine UrlSigning action for default and override parameters.
Create a CDN Profile, Endpoint and a Storage Account

Deploy to Azure
This template creates a CDN Profile and a CDN Endpoint with origin as a Storage Account. Note that user needs to create a public container in the Storage Account in order for CDN Endpoint to serve content from the Storage Account.
Apply a WAF Policy with custom rules to a CDN Endpoint

Deploy to Azure
This template creates a CDN Profile and a CDN Endpoint with a user specified origin and all of our most commonly used settings on CDN. This template also links a CDN WAF Policy to the Endpoint which applies example custom rules for blocking and redirecting requests based on geo-location, ip address, and SESSIONID header.
Apply a WAF Policy for the OWASP top 10 to a CDN Endpoint

Deploy to Azure
This template creates a CDN Profile and a CDN Endpoint with a user specified origin and all of our most commonly used settings on CDN. This template also links a CDN WAF Policy to the Endpoint which applies the managed rule set DefaultRuleSet_1.0.
Apply a WAF Policy with rate limit rules to a CDN Endpoint

Deploy to Azure
This template creates a CDN Profile and a CDN Endpoint with a user specified origin and all of our most commonly used settings on CDN. This template also links a CDN WAF Policy to the Endpoint which applies example rate limit rules for blocking and redirecting rate-limited requests.
Create a CDN Profile, a CDN Endpoint and a Web App

Deploy to Azure
This template creates a CDN Profile and a CDN Endpoint with a Web App as the origin

Terraform (AzAPI provider) resource definition

The profiles/endpoints resource type can be deployed with operations that target:

  • Resource groups

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.Cdn/profiles/endpoints resource, add the following Terraform to your template.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Cdn/profiles/endpoints@2020-04-15"
  name = "string"
  location = "string"
  parent_id = "string"
  tags = {
    tagName1 = "tagValue1"
    tagName2 = "tagValue2"
  }
  body = jsonencode({
    properties = {
      contentTypesToCompress = [
        "string"
      ]
      defaultOriginGroup = {
        id = "string"
      }
      deliveryPolicy = {
        description = "string"
        rules = [
          {
            actions = [
              {
                name = "string"
                // For remaining properties, see DeliveryRuleActionAutoGenerated objects
              }
            ]
            conditions = [
              {
                name = "string"
                // For remaining properties, see DeliveryRuleCondition objects
              }
            ]
            name = "string"
            order = int
          }
        ]
      }
      geoFilters = [
        {
          action = "string"
          countryCodes = [
            "string"
          ]
          relativePath = "string"
        }
      ]
      isCompressionEnabled = bool
      isHttpAllowed = bool
      isHttpsAllowed = bool
      optimizationType = "string"
      originGroups = [
        {
          name = "string"
          properties = {
            healthProbeSettings = {
              probeIntervalInSeconds = int
              probePath = "string"
              probeProtocol = "string"
              probeRequestType = "string"
            }
            origins = [
              {
                id = "string"
              }
            ]
            responseBasedOriginErrorDetectionSettings = {
              httpErrorRanges = [
                {
                  begin = int
                  end = int
                }
              ]
              responseBasedDetectedErrorTypes = "string"
              responseBasedFailoverThresholdPercentage = int
            }
            trafficRestorationTimeToHealedOrNewEndpointsInMinutes = int
          }
        }
      ]
      originHostHeader = "string"
      originPath = "string"
      origins = [
        {
          name = "string"
          properties = {
            enabled = bool
            hostName = "string"
            httpPort = int
            httpsPort = int
            originHostHeader = "string"
            priority = int
            privateLinkAlias = "string"
            privateLinkApprovalMessage = "string"
            privateLinkLocation = "string"
            privateLinkResourceId = "string"
            weight = int
          }
        }
      ]
      probePath = "string"
      queryStringCachingBehavior = "string"
      urlSigningKeys = [
        {
          keyId = "string"
          keySourceParameters = {
            @odata.type = "#Microsoft.Azure.Cdn.Models.KeyVaultSigningKeyParameters"
            resourceGroupName = "string"
            secretName = "string"
            secretVersion = "string"
            subscriptionId = "string"
            vaultName = "string"
          }
        }
      ]
      webApplicationFirewallPolicyLink = {
        id = "string"
      }
    }
  })
}

DeliveryRuleActionAutoGenerated objects

Set the name property to specify the type of object.

For CacheExpiration, use:

  name = "CacheExpiration"
  parameters = {
    @odata.type = "#Microsoft.Azure.Cdn.Models.DeliveryRuleCacheExpirationActionParameters"
    cacheBehavior = "string"
    cacheDuration = "string"
    cacheType = "All"
  }

For CacheKeyQueryString, use:

  name = "CacheKeyQueryString"
  parameters = {
    @odata.type = "#Microsoft.Azure.Cdn.Models.DeliveryRuleCacheKeyQueryStringBehaviorActionParameters"
    queryParameters = "string"
    queryStringBehavior = "string"
  }

For ModifyRequestHeader, use:

  name = "ModifyRequestHeader"
  parameters = {
    @odata.type = "#Microsoft.Azure.Cdn.Models.DeliveryRuleHeaderActionParameters"
    headerAction = "string"
    headerName = "string"
    value = "string"
  }

For ModifyResponseHeader, use:

  name = "ModifyResponseHeader"
  parameters = {
    @odata.type = "#Microsoft.Azure.Cdn.Models.DeliveryRuleHeaderActionParameters"
    headerAction = "string"
    headerName = "string"
    value = "string"
  }

For UrlRedirect, use:

  name = "UrlRedirect"
  parameters = {
    @odata.type = "#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlRedirectActionParameters"
    customFragment = "string"
    customHostname = "string"
    customPath = "string"
    customQueryString = "string"
    destinationProtocol = "string"
    redirectType = "string"
  }

For UrlRewrite, use:

  name = "UrlRewrite"
  parameters = {
    @odata.type = "#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlRewriteActionParameters"
    destination = "string"
    preserveUnmatchedPath = bool
    sourcePattern = "string"
  }

For UrlSigning, use:

  name = "UrlSigning"
  parameters = {
    @odata.type = "#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlSigningActionParameters"
    algorithm = "SHA256"
    ipSubnets = [
      "string"
    ]
    keyId = "string"
    parameterNameOverride = [
      {
        paramIndicator = "string"
        paramName = "string"
      }
    ]
  }

DeliveryRuleCondition objects

Set the name property to specify the type of object.

For Cookies, use:

  name = "Cookies"
  parameters = {
    @odata.type = "#Microsoft.Azure.Cdn.Models.DeliveryRuleCookiesConditionParameters"
    matchValues = [
      "string"
    ]
    negateCondition = bool
    operator = "string"
    selector = "string"
    transforms = [
      "string"
    ]
  }

For HttpVersion, use:

  name = "HttpVersion"
  parameters = {
    @odata.type = "#Microsoft.Azure.Cdn.Models.DeliveryRuleHttpVersionConditionParameters"
    matchValues = [
      "string"
    ]
    negateCondition = bool
    operator = "Equal"
  }

For IsDevice, use:

  name = "IsDevice"
  parameters = {
    @odata.type = "#Microsoft.Azure.Cdn.Models.DeliveryRuleIsDeviceConditionParameters"
    matchValues = [
      "string"
    ]
    negateCondition = bool
    operator = "Equal"
    transforms = [
      "string"
    ]
  }

For PostArgs, use:

  name = "PostArgs"
  parameters = {
    @odata.type = "#Microsoft.Azure.Cdn.Models.DeliveryRulePostArgsConditionParameters"
    matchValues = [
      "string"
    ]
    negateCondition = bool
    operator = "string"
    selector = "string"
    transforms = [
      "string"
    ]
  }

For QueryString, use:

  name = "QueryString"
  parameters = {
    @odata.type = "#Microsoft.Azure.Cdn.Models.DeliveryRuleQueryStringConditionParameters"
    matchValues = [
      "string"
    ]
    negateCondition = bool
    operator = "string"
    transforms = [
      "string"
    ]
  }

For RemoteAddress, use:

  name = "RemoteAddress"
  parameters = {
    @odata.type = "#Microsoft.Azure.Cdn.Models.DeliveryRuleRemoteAddressConditionParameters"
    matchValues = [
      "string"
    ]
    negateCondition = bool
    operator = "string"
    transforms = [
      "string"
    ]
  }

For RequestBody, use:

  name = "RequestBody"
  parameters = {
    @odata.type = "#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestBodyConditionParameters"
    matchValues = [
      "string"
    ]
    negateCondition = bool
    operator = "string"
    transforms = [
      "string"
    ]
  }

For RequestHeader, use:

  name = "RequestHeader"
  parameters = {
    @odata.type = "#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestHeaderConditionParameters"
    matchValues = [
      "string"
    ]
    negateCondition = bool
    operator = "string"
    selector = "string"
    transforms = [
      "string"
    ]
  }

For RequestMethod, use:

  name = "RequestMethod"
  parameters = {
    @odata.type = "#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestMethodConditionParameters"
    matchValues = [
      "string"
    ]
    negateCondition = bool
    operator = "Equal"
  }

For RequestScheme, use:

  name = "RequestScheme"
  parameters = {
    @odata.type = "#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestSchemeConditionParameters"
    matchValues = [
      "string"
    ]
    negateCondition = bool
    operator = "Equal"
  }

For RequestUri, use:

  name = "RequestUri"
  parameters = {
    @odata.type = "#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestUriConditionParameters"
    matchValues = [
      "string"
    ]
    negateCondition = bool
    operator = "string"
    transforms = [
      "string"
    ]
  }

For UrlFileExtension, use:

  name = "UrlFileExtension"
  parameters = {
    @odata.type = "#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlFileExtensionMatchConditionParameters"
    matchValues = [
      "string"
    ]
    negateCondition = bool
    operator = "string"
    transforms = [
      "string"
    ]
  }

For UrlFileName, use:

  name = "UrlFileName"
  parameters = {
    @odata.type = "#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlFilenameConditionParameters"
    matchValues = [
      "string"
    ]
    negateCondition = bool
    operator = "string"
    transforms = [
      "string"
    ]
  }

For UrlPath, use:

  name = "UrlPath"
  parameters = {
    @odata.type = "#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlPathMatchConditionParameters"
    matchValues = [
      "string"
    ]
    negateCondition = bool
    operator = "string"
    transforms = [
      "string"
    ]
  }

Property values

profiles/endpoints

Name Description Value
type The resource type "Microsoft.Cdn/profiles/endpoints@2020-04-15"
name The resource name string (required)

Character limit: 1-50

Valid characters:
Alphanumerics and hyphens.

Start and end with alphanumeric.

Resource name must be unique across Azure.
location Resource location. string (required)
parent_id The ID of the resource that is the parent for this resource. ID for resource of type: profiles
tags Resource tags. Dictionary of tag names and values.
properties The JSON object that contains the properties required to create an endpoint. EndpointProperties

EndpointProperties

Name Description Value
contentTypesToCompress List of content types on which compression applies. The value should be a valid MIME type. string[]
defaultOriginGroup A reference to the origin group. ResourceReference
deliveryPolicy A policy that specifies the delivery rules to be used for an endpoint. EndpointPropertiesUpdateParametersDeliveryPolicy
geoFilters List of rules defining the user's geo access within a CDN endpoint. Each geo filter defines an access rule to a specified path or content, e.g. block APAC for path /pictures/ GeoFilter[]
isCompressionEnabled Indicates whether content compression is enabled on CDN. Default value is false. If compression is enabled, content will be served as compressed if user requests for a compressed version. Content won't be compressed on CDN when requested content is smaller than 1 byte or larger than 1 MB. bool
isHttpAllowed Indicates whether HTTP traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed. bool
isHttpsAllowed Indicates whether HTTPS traffic is allowed on the endpoint. Default value is true. At least one protocol (HTTP or HTTPS) must be allowed. bool
optimizationType Specifies what scenario the customer wants this CDN endpoint to optimize for, e.g. Download, Media services. With this information, CDN can apply scenario driven optimization. "DynamicSiteAcceleration"
"GeneralMediaStreaming"
"GeneralWebDelivery"
"LargeFileDownload"
"VideoOnDemandMediaStreaming"
originGroups The origin groups comprising of origins that are used for load balancing the traffic based on availability. DeepCreatedOriginGroup[]
originHostHeader The host header value sent to the origin with each request. This property at Endpoint is only allowed when endpoint uses single origin and can be overridden by the same property specified at origin.If you leave this blank, the request hostname determines this value. Azure CDN origins, such as Web Apps, Blob Storage, and Cloud Services require this host header value to match the origin hostname by default. string
originPath A directory path on the origin that CDN can use to retrieve content from, e.g. contoso.cloudapp.net/originpath. string
origins The source of the content being delivered via CDN. DeepCreatedOrigin[] (required)
probePath Path to a file hosted on the origin which helps accelerate delivery of the dynamic content and calculate the most optimal routes for the CDN. This is relative to the origin path. This property is only relevant when using a single origin. string
queryStringCachingBehavior Defines how CDN caches requests that include query strings. You can ignore any query strings when caching, bypass caching to prevent requests that contain query strings from being cached, or cache every request with a unique URL. "BypassCaching"
"IgnoreQueryString"
"NotSet"
"UseQueryString"
urlSigningKeys List of keys used to validate the signed URL hashes. UrlSigningKey[]
webApplicationFirewallPolicyLink Defines the Web Application Firewall policy for the endpoint (if applicable) EndpointPropertiesUpdateParametersWebApplicationFire...

ResourceReference

Name Description Value
id Resource ID. string

EndpointPropertiesUpdateParametersDeliveryPolicy

Name Description Value
description User-friendly description of the policy. string
rules A list of the delivery rules. DeliveryRule[] (required)

DeliveryRule

Name Description Value
actions A list of actions that are executed when all the conditions of a rule are satisfied. DeliveryRuleActionAutoGenerated[] (required)
conditions A list of conditions that must be matched for the actions to be executed DeliveryRuleCondition[]
name Name of the rule string
order The order in which the rules are applied for the endpoint. Possible values {0,1,2,3,………}. A rule with a lesser order will be applied before a rule with a greater order. Rule with order 0 is a special rule. It does not require any condition and actions listed in it will always be applied. int (required)

DeliveryRuleActionAutoGenerated

Name Description Value
name Set the object type CacheExpiration
CacheKeyQueryString
ModifyRequestHeader
ModifyResponseHeader
UrlRedirect
UrlRewrite
UrlSigning (required)

DeliveryRuleCacheExpirationAction

Name Description Value
name The name of the action for the delivery rule. "CacheExpiration" (required)
parameters Defines the parameters for the action. CacheExpirationActionParameters (required)

CacheExpirationActionParameters

Name Description Value
@odata.type "#Microsoft.Azure.Cdn.Models.DeliveryRuleCacheExpirationActionParameters" (required)
cacheBehavior Caching behavior for the requests "BypassCache"
"Override"
"SetIfMissing" (required)
cacheDuration The duration for which the content needs to be cached. Allowed format is [d.]hh:mm:ss string
cacheType The level at which the content needs to be cached. "All" (required)

DeliveryRuleCacheKeyQueryStringAction

Name Description Value
name The name of the action for the delivery rule. "CacheKeyQueryString" (required)
parameters Defines the parameters for the action. CacheKeyQueryStringActionParameters (required)

CacheKeyQueryStringActionParameters

Name Description Value
@odata.type "#Microsoft.Azure.Cdn.Models.DeliveryRuleCacheKeyQueryStringBehaviorActionParameters" (required)
queryParameters query parameters to include or exclude (comma separated). string
queryStringBehavior Caching behavior for the requests "Exclude"
"ExcludeAll"
"Include"
"IncludeAll" (required)

DeliveryRuleRequestHeaderAction

Name Description Value
name The name of the action for the delivery rule. "ModifyRequestHeader" (required)
parameters Defines the parameters for the action. HeaderActionParameters (required)

HeaderActionParameters

Name Description Value
@odata.type "#Microsoft.Azure.Cdn.Models.DeliveryRuleHeaderActionParameters" (required)
headerAction Action to perform "Append"
"Delete"
"Overwrite" (required)
headerName Name of the header to modify string (required)
value Value for the specified action string

DeliveryRuleResponseHeaderAction

Name Description Value
name The name of the action for the delivery rule. "ModifyResponseHeader" (required)
parameters Defines the parameters for the action. HeaderActionParameters (required)

UrlRedirectAction

Name Description Value
name The name of the action for the delivery rule. "UrlRedirect" (required)
parameters Defines the parameters for the action. UrlRedirectActionParameters (required)

UrlRedirectActionParameters

Name Description Value
@odata.type "#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlRedirectActionParameters" (required)
customFragment Fragment to add to the redirect URL. Fragment is the part of the URL that comes after #. Do not include the #. string
customHostname Host to redirect. Leave empty to use the incoming host as the destination host. string
customPath The full path to redirect. Path cannot be empty and must start with /. Leave empty to use the incoming path as destination path. string
customQueryString The set of query strings to be placed in the redirect URL. Setting this value would replace any existing query string; leave empty to preserve the incoming query string. Query string must be in {key}={value} format. ? and & will be added automatically so do not include them. string
destinationProtocol Protocol to use for the redirect. The default value is MatchRequest "Http"
"Https"
"MatchRequest"
redirectType The redirect type the rule will use when redirecting traffic. "Found"
"Moved"
"PermanentRedirect"
"TemporaryRedirect" (required)

UrlRewriteAction

Name Description Value
name The name of the action for the delivery rule. "UrlRewrite" (required)
parameters Defines the parameters for the action. UrlRewriteActionParameters (required)

UrlRewriteActionParameters

Name Description Value
@odata.type "#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlRewriteActionParameters" (required)
destination Define the relative URL to which the above requests will be rewritten by. string (required)
preserveUnmatchedPath Whether to preserve unmatched path. Default value is true. bool
sourcePattern define a request URI pattern that identifies the type of requests that may be rewritten. If value is blank, all strings are matched. string (required)

UrlSigningAction

Name Description Value
name The name of the action for the delivery rule. "UrlSigning" (required)
parameters Defines the parameters for the action. UrlSigningActionParameters (required)

UrlSigningActionParameters

Name Description Value
@odata.type "#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlSigningActionParameters"
algorithm Algorithm to use for URL signing "SHA256"
ipSubnets Match values to match against. Supports CIDR ranges (both IPv4 and IPv6). string[]
keyId Id reference of the key to be used to verify the hash and should be defined in UrlSigningKeys string (required)
parameterNameOverride Defines which query string parameters in the url to be considered for expires, key id etc. UrlSigningParamIdentifier[]

UrlSigningParamIdentifier

Name Description Value
paramIndicator Indicates the purpose of the parameter "Expires"
"KeyId"
"Signature" (required)
paramName Parameter name string (required)

DeliveryRuleCondition

Name Description Value
name Set the object type Cookies
HttpVersion
IsDevice
PostArgs
QueryString
RemoteAddress
RequestBody
RequestHeader
RequestMethod
RequestScheme
RequestUri
UrlFileExtension
UrlFileName
UrlPath (required)

DeliveryRuleCookiesCondition

Name Description Value
name The name of the condition for the delivery rule. "Cookies" (required)
parameters Defines the parameters for the condition. CookiesMatchConditionParameters (required)

CookiesMatchConditionParameters

Name Description Value
@odata.type "#Microsoft.Azure.Cdn.Models.DeliveryRuleCookiesConditionParameters" (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched "Any"
"BeginsWith"
"Contains"
"EndsWith"
"Equal"
"GreaterThan"
"GreaterThanOrEqual"
"LessThan"
"LessThanOrEqual" (required)
selector Name of Cookies to be matched string
transforms List of transforms String array containing any of:
"Lowercase"
"RemoveNulls"
"Trim"
"Uppercase"
"UrlDecode"
"UrlEncode"

DeliveryRuleHttpVersionCondition

Name Description Value
name The name of the condition for the delivery rule. "HttpVersion" (required)
parameters Defines the parameters for the condition. HttpVersionMatchConditionParameters (required)

HttpVersionMatchConditionParameters

Name Description Value
@odata.type "#Microsoft.Azure.Cdn.Models.DeliveryRuleHttpVersionConditionParameters" (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched "Equal" (required)

DeliveryRuleIsDeviceCondition

Name Description Value
name The name of the condition for the delivery rule. "IsDevice" (required)
parameters Defines the parameters for the condition. IsDeviceMatchConditionParameters (required)

IsDeviceMatchConditionParameters

Name Description Value
@odata.type "#Microsoft.Azure.Cdn.Models.DeliveryRuleIsDeviceConditionParameters" (required)
matchValues The match value for the condition of the delivery rule String array containing any of:
"Desktop"
"Mobile"
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched "Equal" (required)
transforms List of transforms String array containing any of:
"Lowercase"
"RemoveNulls"
"Trim"
"Uppercase"
"UrlDecode"
"UrlEncode"

DeliveryRulePostArgsCondition

Name Description Value
name The name of the condition for the delivery rule. "PostArgs" (required)
parameters Defines the parameters for the condition. PostArgsMatchConditionParameters (required)

PostArgsMatchConditionParameters

Name Description Value
@odata.type "#Microsoft.Azure.Cdn.Models.DeliveryRulePostArgsConditionParameters" (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched "Any"
"BeginsWith"
"Contains"
"EndsWith"
"Equal"
"GreaterThan"
"GreaterThanOrEqual"
"LessThan"
"LessThanOrEqual" (required)
selector Name of PostArg to be matched string
transforms List of transforms String array containing any of:
"Lowercase"
"RemoveNulls"
"Trim"
"Uppercase"
"UrlDecode"
"UrlEncode"

DeliveryRuleQueryStringCondition

Name Description Value
name The name of the condition for the delivery rule. "QueryString" (required)
parameters Defines the parameters for the condition. QueryStringMatchConditionParameters (required)

QueryStringMatchConditionParameters

Name Description Value
@odata.type "#Microsoft.Azure.Cdn.Models.DeliveryRuleQueryStringConditionParameters" (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched "Any"
"BeginsWith"
"Contains"
"EndsWith"
"Equal"
"GreaterThan"
"GreaterThanOrEqual"
"LessThan"
"LessThanOrEqual" (required)
transforms List of transforms String array containing any of:
"Lowercase"
"RemoveNulls"
"Trim"
"Uppercase"
"UrlDecode"
"UrlEncode"

DeliveryRuleRemoteAddressCondition

Name Description Value
name The name of the condition for the delivery rule. "RemoteAddress" (required)
parameters Defines the parameters for the condition. RemoteAddressMatchConditionParameters (required)

RemoteAddressMatchConditionParameters

Name Description Value
@odata.type "#Microsoft.Azure.Cdn.Models.DeliveryRuleRemoteAddressConditionParameters" (required)
matchValues Match values to match against. The operator will apply to each value in here with OR semantics. If any of them match the variable with the given operator this match condition is considered a match. string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched "Any"
"GeoMatch"
"IPMatch" (required)
transforms List of transforms String array containing any of:
"Lowercase"
"RemoveNulls"
"Trim"
"Uppercase"
"UrlDecode"
"UrlEncode"

DeliveryRuleRequestBodyCondition

Name Description Value
name The name of the condition for the delivery rule. "RequestBody" (required)
parameters Defines the parameters for the condition. RequestBodyMatchConditionParameters (required)

RequestBodyMatchConditionParameters

Name Description Value
@odata.type "#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestBodyConditionParameters" (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched "Any"
"BeginsWith"
"Contains"
"EndsWith"
"Equal"
"GreaterThan"
"GreaterThanOrEqual"
"LessThan"
"LessThanOrEqual" (required)
transforms List of transforms String array containing any of:
"Lowercase"
"RemoveNulls"
"Trim"
"Uppercase"
"UrlDecode"
"UrlEncode"

DeliveryRuleRequestHeaderCondition

Name Description Value
name The name of the condition for the delivery rule. "RequestHeader" (required)
parameters Defines the parameters for the condition. RequestHeaderMatchConditionParameters (required)

RequestHeaderMatchConditionParameters

Name Description Value
@odata.type "#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestHeaderConditionParameters" (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched "Any"
"BeginsWith"
"Contains"
"EndsWith"
"Equal"
"GreaterThan"
"GreaterThanOrEqual"
"LessThan"
"LessThanOrEqual" (required)
selector Name of Header to be matched string
transforms List of transforms String array containing any of:
"Lowercase"
"RemoveNulls"
"Trim"
"Uppercase"
"UrlDecode"
"UrlEncode"

DeliveryRuleRequestMethodCondition

Name Description Value
name The name of the condition for the delivery rule. "RequestMethod" (required)
parameters Defines the parameters for the condition. RequestMethodMatchConditionParameters (required)

RequestMethodMatchConditionParameters

Name Description Value
@odata.type "#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestMethodConditionParameters" (required)
matchValues The match value for the condition of the delivery rule String array containing any of:
"DELETE"
"GET"
"HEAD"
"OPTIONS"
"POST"
"PUT"
"TRACE"
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched "Equal" (required)

DeliveryRuleRequestSchemeCondition

Name Description Value
name The name of the condition for the delivery rule. "RequestScheme" (required)
parameters Defines the parameters for the condition. RequestSchemeMatchConditionParameters (required)

RequestSchemeMatchConditionParameters

Name Description Value
@odata.type "#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestSchemeConditionParameters" (required)
matchValues The match value for the condition of the delivery rule String array containing any of:
"HTTP"
"HTTPS"
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched "Equal" (required)

DeliveryRuleRequestUriCondition

Name Description Value
name The name of the condition for the delivery rule. "RequestUri" (required)
parameters Defines the parameters for the condition. RequestUriMatchConditionParameters (required)

RequestUriMatchConditionParameters

Name Description Value
@odata.type "#Microsoft.Azure.Cdn.Models.DeliveryRuleRequestUriConditionParameters" (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched "Any"
"BeginsWith"
"Contains"
"EndsWith"
"Equal"
"GreaterThan"
"GreaterThanOrEqual"
"LessThan"
"LessThanOrEqual" (required)
transforms List of transforms String array containing any of:
"Lowercase"
"RemoveNulls"
"Trim"
"Uppercase"
"UrlDecode"
"UrlEncode"

DeliveryRuleUrlFileExtensionCondition

Name Description Value
name The name of the condition for the delivery rule. "UrlFileExtension" (required)
parameters Defines the parameters for the condition. UrlFileExtensionMatchConditionParameters (required)

UrlFileExtensionMatchConditionParameters

Name Description Value
@odata.type "#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlFileExtensionMatchConditionParameters" (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched "Any"
"BeginsWith"
"Contains"
"EndsWith"
"Equal"
"GreaterThan"
"GreaterThanOrEqual"
"LessThan"
"LessThanOrEqual" (required)
transforms List of transforms String array containing any of:
"Lowercase"
"RemoveNulls"
"Trim"
"Uppercase"
"UrlDecode"
"UrlEncode"

DeliveryRuleUrlFileNameCondition

Name Description Value
name The name of the condition for the delivery rule. "UrlFileName" (required)
parameters Defines the parameters for the condition. UrlFileNameMatchConditionParameters (required)

UrlFileNameMatchConditionParameters

Name Description Value
@odata.type "#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlFilenameConditionParameters" (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched "Any"
"BeginsWith"
"Contains"
"EndsWith"
"Equal"
"GreaterThan"
"GreaterThanOrEqual"
"LessThan"
"LessThanOrEqual" (required)
transforms List of transforms String array containing any of:
"Lowercase"
"RemoveNulls"
"Trim"
"Uppercase"
"UrlDecode"
"UrlEncode"

DeliveryRuleUrlPathCondition

Name Description Value
name The name of the condition for the delivery rule. "UrlPath" (required)
parameters Defines the parameters for the condition. UrlPathMatchConditionParameters (required)

UrlPathMatchConditionParameters

Name Description Value
@odata.type "#Microsoft.Azure.Cdn.Models.DeliveryRuleUrlPathMatchConditionParameters" (required)
matchValues The match value for the condition of the delivery rule string[]
negateCondition Describes if this is negate condition or not bool
operator Describes operator to be matched "Any"
"BeginsWith"
"Contains"
"EndsWith"
"Equal"
"GreaterThan"
"GreaterThanOrEqual"
"LessThan"
"LessThanOrEqual"
"Wildcard" (required)
transforms List of transforms String array containing any of:
"Lowercase"
"RemoveNulls"
"Trim"
"Uppercase"
"UrlDecode"
"UrlEncode"

GeoFilter

Name Description Value
action Action of the geo filter, i.e. allow or block access. "Allow"
"Block" (required)
countryCodes Two letter country codes defining user country access in a geo filter, e.g. AU, MX, US. string[] (required)
relativePath Relative path applicable to geo filter. (e.g. '/mypictures', '/mypicture/kitty.jpg', and etc.) string (required)

DeepCreatedOriginGroup

Name Description Value
name Origin group name which must be unique within the endpoint. string (required)
properties Properties of the origin group created on the CDN endpoint. DeepCreatedOriginGroupProperties

DeepCreatedOriginGroupProperties

Name Description Value
healthProbeSettings Health probe settings to the origin that is used to determine the health of the origin. HealthProbeParameters
origins The source of the content being delivered via CDN within given origin group. ResourceReference[] (required)
responseBasedOriginErrorDetectionSettings The JSON object that contains the properties to determine origin health using real requests/responses.This property is currently not supported. ResponseBasedOriginErrorDetectionParameters
trafficRestorationTimeToHealedOrNewEndpointsInMinutes Time in minutes to shift the traffic to the endpoint gradually when an unhealthy endpoint comes healthy or a new endpoint is added. Default is 10 mins. This property is currently not supported. int

Constraints:
Min value = 0
Max value = 50

HealthProbeParameters

Name Description Value
probeIntervalInSeconds The number of seconds between health probes.Default is 240sec. int

Constraints:
Min value = 1
Max value = 255
probePath The path relative to the origin that is used to determine the health of the origin. string
probeProtocol Protocol to use for health probe. "Http"
"Https"
"NotSet"
probeRequestType The type of health probe request that is made. "GET"
"HEAD"
"NotSet"

ResponseBasedOriginErrorDetectionParameters

Name Description Value
httpErrorRanges The list of Http status code ranges that are considered as server errors for origin and it is marked as unhealthy. HttpErrorRangeParameters[]
responseBasedDetectedErrorTypes Type of response errors for real user requests for which origin will be deemed unhealthy "None"
"TcpAndHttpErrors"
"TcpErrorsOnly"
responseBasedFailoverThresholdPercentage The percentage of failed requests in the sample where failover should trigger. int

Constraints:
Min value = 0
Max value = 100

HttpErrorRangeParameters

Name Description Value
begin The inclusive start of the http status code range. int

Constraints:
Min value = 100
Max value = 999
end The inclusive end of the http status code range. int

Constraints:
Min value = 100
Max value = 999

DeepCreatedOrigin

Name Description Value
name Origin name which must be unique within the endpoint. string (required)
properties Properties of the origin created on the CDN endpoint. DeepCreatedOriginProperties

DeepCreatedOriginProperties

Name Description Value
enabled Origin is enabled for load balancing or not. By default, origin is always enabled. bool
hostName The address of the origin. It can be a domain name, IPv4 address, or IPv6 address. This should be unique across all origins in an endpoint. string (required)
httpPort The value of the HTTP port. Must be between 1 and 65535. int

Constraints:
Min value = 1
Max value = 65535
httpsPort The value of the HTTPS port. Must be between 1 and 65535. int

Constraints:
Min value = 1
Max value = 65535
originHostHeader The host header value sent to the origin with each request. If you leave this blank, the request hostname determines this value. Azure CDN origins, such as Web Apps, Blob Storage, and Cloud Services require this host header value to match the origin hostname by default. string
priority Priority of origin in given origin group for load balancing. Higher priorities will not be used for load balancing if any lower priority origin is healthy.Must be between 1 and 5. int

Constraints:
Min value = 1
Max value = 5
privateLinkAlias The Alias of the Private Link resource. Populating this optional field indicates that this origin is 'Private' string
privateLinkApprovalMessage A custom message to be included in the approval request to connect to the Private Link. string
privateLinkLocation The location of the Private Link resource. Required only if 'privateLinkResourceId' is populated string
privateLinkResourceId The Resource Id of the Private Link resource. Populating this optional field indicates that this backend is 'Private' string
weight Weight of the origin in given origin group for load balancing. Must be between 1 and 1000 int

Constraints:
Min value = 1
Max value = 1000

UrlSigningKey

Name Description Value
keyId Defines the customer defined key Id. This id will exist in the incoming request to indicate the key used to form the hash. string (required)
keySourceParameters Defines the parameters for using customer key vault for Url Signing Key. KeyVaultSigningKeyParameters (required)

KeyVaultSigningKeyParameters

Name Description Value
@odata.type "#Microsoft.Azure.Cdn.Models.KeyVaultSigningKeyParameters" (required)
resourceGroupName Resource group of the user's Key Vault containing the secret string (required)
secretName The name of secret in Key Vault. string (required)
secretVersion The version(GUID) of secret in Key Vault. string (required)
subscriptionId Subscription Id of the user's Key Vault containing the secret string (required)
vaultName The name of the user's Key Vault containing the secret string (required)

EndpointPropertiesUpdateParametersWebApplicationFire...

Name Description Value
id Resource ID. string